From daed20c553f77fc48695f8523cd57bc56fb5a0fd Mon Sep 17 00:00:00 2001
From: wang <3597712270@qq.com>
Date: 星期三, 10 四月 2024 08:35:29 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java                                                                           |   77 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java                |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/GlobalExceptionHandler.java                                       |   32 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java                 |   30 
 TemperingGlassModule/src/main/JsonFile/PlcAlbania.json                                                                                        |  414 ++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml                                                       |   22 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java                                                      |   30 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MyCorsConfig.java                                                    |   25 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/DatabaseDesignDocUtil.java                                                   |   97 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java                                                |   35 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java                                   |  131 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java                          |   50 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/UpWorkstationController.java                   |   21 
 hangzhoumesParent/gateway/pom.xml                                                                                                             |   31 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java      |   20 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java                                                              |   22 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java                                           |   20 
 UI-Project/src/stores/userInfo.js                                                                                                             |    8 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java                               |   29 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java                            |  130 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/impl/UpWorkstationServiceImpl.java                |   20 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java                |   16 
 CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java                                                            |   41 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java         |   20 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java             |   20 
 TemperingGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java                                                                        |    2 
 UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java                                                                     |   10 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/UpWorkstationMapper.java                           |   16 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                           |   96 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java                     |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java                                                            |  313 +
 hangzhoumesParent/gateway/src/main/java/com/mes/GateWayApplication.java                                                                       |   20 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java             |   21 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java     |   20 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java          |   16 
 LoadGlassModule/src/main/java/com/mes/mapper/LoadGlassMapper.java                                                                             |   22 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResultCodeEnum.java                                                          |   33 
 TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java                                                                      |   77 
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                          |  280 +
 CacheGlassModule/src/main/java/com/mes/MesApplication.java                                                                                    |    2 
 TemperingGlassModule/src/main/java/com/mes/controller/TemperingController.java                                                                |   51 
 UnLoadGlassModule/src/main/java/com/mes/mapper/GlassInfoMapper.java                                                                           |    6 
 UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java                                                                            |    4 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java        |   27 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java               |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java  |   20 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                                   |   23 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassTaskMapper.java                         |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java                                                               |  421 ++
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java                                            |   25 
 hangzhoumesParent/common/springsecurity/pom.xml                                                                                               |   37 
 LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java                                                                     |  128 
 hangzhoumesParent/gateway/src/main/resources/application.yml                                                                                  |   56 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageDetailsController.java         |   19 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java                           |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java           |   16 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/UpWorkstationService.java                         |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java                               |   52 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/Result.java                                                                  |   56 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/impl/GlassInfoServiceImpl.java                  |   20 
 TemperingGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java                                                                     |   89 
 UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java                                                                    |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java |   20 
 UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue                                                                                     |  212 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageController.java                 |   21 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java                  |   16 
 TemperingGlassModule/src/main/java/com/mes/MesApplication.java                                                                                |    3 
 LoadGlassModule/src/main/java/com/mes/controller/userInfo/SysMenuController.java                                                              |    4 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java                        |   95 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MybatisPlusConfig.java                                               |   61 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml                                                          |   23 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java                   |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java                             |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java                    |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java     |   21 
 UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue                                                                                       |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java                        |   16 
 CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java                                                                              |   51 
 CacheGlassModule/src/main/java/com/mes/mapper/HangzhouMesMapper.java                                                                          |   41 
 UI-Project/src/views/PurchaseReturn/purchaseStorage.vue                                                                                       |    2 
 UnLoadGlassModule/src/main/java/com/mes/service/DownWorkstationService.java                                                                   |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java                    |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java                  |   20 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java                 |   16 
 CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java                                                                                   |   39 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java                   |   21 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java                                 |   65 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java                                  |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java                                   |  130 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java                 |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java            |   29 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java          |   20 
 TemperingGlassModule/src/main/java/com/mes/service/TemperingOverService.java                                                                  |   32 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/ResponseUtil.java                                                            |   28 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java                                                  |   18 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java              |   16 
 hangzhoumesParent/common/pom.xml                                                                                                              |  189 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java            |   16 
 TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java                                                                |  128 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java                       |   20 
 LoadGlassModule/src/main/java/com/mes/entity/device/InitUtil.java                                                                             |  124 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java                       |   16 
 UI-Project/src/views/HomeView.vue                                                                                                             |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.java          |   21 
 UnLoadGlassModule/target/classes/application.yml                                                                                              |    1 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.java                                       |   30 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java                                                   |   36 
 UI-Project/vite.config.js                                                                                                                     |   45 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java                                                        |   73 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java                 |   35 
 TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java                                                                    |  142 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java              |   21 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java                                 |   75 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/utils/MD5.java                                                                     |   36 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java                       |   16 
 UI-Project/src/views/LoginView.vue                                                                                                            |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java                      |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java                                        |   49 
 UnLoadGlassModule/src/main/java/com/mes/service/DownGlassCacheLogic.java                                                                      |   19 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java                                                    |   74 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java                                              |   69 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java                                         |   29 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java                   |   95 
 CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java                                                            |   24 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java                     |   19 
 UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java                                                                                  |   18 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCage.java                              |   50 
 LoadGlassModule/src/main/java/com/mes/MesApplication.java                                                                                     |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java                                                                 |   85 
 TemperingGlassModule/src/main/java/com/mes/service/TemperingService.java                                                                      |   20 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java              |   20 
 CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/LogicService.java                                                            |   37 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java                                |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java                                                  |   93 
 hangzhoumesParent/moduleService/pom.xml                                                                                                       |   61 
 hangzhoumesParent/readMe.md                                                                                                                   |   23 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml                                                            |   23 
 hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java                                   |   26 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java          |   20 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java                       |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java                                                   |   20 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java              |   20 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java                         |   16 
 TemperingGlassModule/src/main/java/com/mes/entity/device/InitUtil.java                                                                        |  124 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                  |   95 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                      |   95 
 LoadGlassModule/src/main/java/com/mes/service/LoadGlassService.java                                                                           |   51 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java              |   21 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java                           |   55 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java                  |   16 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/User.java                                                                |   31 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java                               |   50 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/handler/MyMetaObjectHandler.java                                            |   22 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml                                                                              |   19 
 LoadGlassModule/src/main/resources/JsonFile/PlcAlbania.json                                                                                   |  414 ++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java                |   16 
 UnLoadGlassModule/src/main/resources/application.yml                                                                                          |    1 
 LoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java                                                                          |   89 
 UI-Project/src/views/Returns/returns.vue                                                                                                      |    3 
 UnLoadGlassModule/src/main/java/com/mes/service/GlassInfoService.java                                                                         |    8 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java                                               |   29 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageMapper.java                         |   16 
 hangzhoumesParent/moduleService/LoadGlassModule/pom.xml                                                                                       |   19 
 TemperingGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java                                                                      |   95 
 UI-Project/package.json                                                                                                                       |    1 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java                       |   60 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                           |   25 
 TemperingGlassModule/target/classes/application.yml                                                                                           |   24 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java                         |   16 
 LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java                                                                         |  142 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java                                             |   39 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/exception/ServiceException.java                                             |   14 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java    |   21 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java                           |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java                               |   75 
 LoadGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java                                                                           |   95 
 UI-Project/src/router/index.js                                                                                                                |   38 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java           |   20 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java                   |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml                                                                                     |   19 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java                      |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java             |   17 
 LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java                                                                   |  202 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java                             |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java       |   20 
 UI-Project/src/layout/MainErpView.vue                                                                                                         |    2 
 hangzhoumesParent/moduleService/CacheGlassModule/pom.xml                                                                                      |   34 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/interceptor/JwtInterceptor.java                                             |   47 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java                           |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java               |   16 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java                     |   16 
 hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml                                                                                  |   19 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java                     |   20 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java      |   20 
 UnLoadGlassModule/src/main/java/com/mes/mapper/SelectInfo.java                                                                                |   27 
 hangzhoumesParent/common/servicebase/pom.xml                                                                                                  |   19 
 hangzhoumesParent/pom.xml                                                                                                                     |   73 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java             |   27 
 /dev/null                                                                                                                                     |  137 
 TemperingGlassModule/src/main/java/com/mes/mapper/TemperingMapper.java                                                                        |   19 
 UnLoadGlassModule/src/main/java/com/mes/controller/DownWorkstationController.java                                                             |   89 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationTaskController.java         |   21 
 UI-Project/package-lock.json                                                                                                                  |  205 +
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java                                                     |   60 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java                       |  110 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java                          |   19 
 LoadGlassModule/src/main/java/com/mes/controller/LoadGlassController.java                                                                     |   55 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java                       |   30 
 TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java                                                              |  202 +
 hangzhoumesParent/common/servicebase/src/main/resources/banner.txt                                                                            |   32 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java                |   28 
 211 files changed, 9,603 insertions(+), 460 deletions(-)

diff --git a/CacheGlassModule/src/main/java/com/mes/MesApplication.java b/CacheGlassModule/src/main/java/com/mes/MesApplication.java
index 991a752..2c50d25 100644
--- a/CacheGlassModule/src/main/java/com/mes/MesApplication.java
+++ b/CacheGlassModule/src/main/java/com/mes/MesApplication.java
@@ -1,7 +1,7 @@
 package com.mes;
 
 import com.mes.common.PlcTools.S7object;
-import com.mes.mapper.SelectInfo;
+import com.mes.mapper.PpMapper;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.SpringApplication;
diff --git a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
index 99d6d28..70b4c5c 100644
--- a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
+++ b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
@@ -1,6 +1,6 @@
 package com.mes.controller;
 
-import com.mes.mapper.SelectInfo;
+import com.mes.mapper.PpMapper;
 
 import java.util.List;
 import java.util.Map;
@@ -9,7 +9,7 @@
 import org.springframework.web.bind.annotation.*;
 import com.mes.common.Result;
 import com.mes.entity.Tempered;
-import com.mes.service.pp.SelectdppService;
+import com.mes.service.pp.PpService;
 import com.mes.service.hangzhoumes.*;
 
 @RestController
@@ -17,45 +17,53 @@
 
 // TidyUpGlassModule 鐞嗙墖妯″潡
 public class TidyUpGlassModuleController {
-    @Autowired
-    private SelectInfo SelectInfo;
+
 
     @Autowired
-    private SelectdppService SelectppService;
+    private PpService ppService;
 
     @Autowired
-    private hangzhoumesService hangzhoumesService;
+    private HangzhoumesService hangzhoumesService;
 
     @GetMapping("/SelectTerritoryInfo") // 鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
     @ResponseBody
     public Result SelectTerritoryInfo(@RequestParam(name = "ProcessId", required = false) String ProcessId) {
-        List<Tempered> h = SelectppService.SelectTemperedTerritory(ProcessId);
-        System.out.println(h.size()+":"+ProcessId);
+        List<Tempered> h = ppService.selectTemperedTerritory(ProcessId);
         return Result.seccess(h);
     }
 
     @GetMapping("/CutTerritory") // 鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
     @ResponseBody
     public Result CutTerritory(String ProcessId) {
-        List<Map> h = SelectppService.SelectCutTerritory(ProcessId);
-        System.out.println(h.size());
+        List<Map> h = ppService.selectCutTerritory(ProcessId);
         return Result.seccess(h);
     }
 
-    @GetMapping("/SelectCutTerritory") // 璇嗗埆鏄剧ず  褰撳墠鐗堝浘 
+    @GetMapping("/CurrentCutTerritory") // 璇嗗埆鏄剧ず  褰撳墠鐗堝浘 
     @ResponseBody
-    public Result SelectCutTerritory(String ProcessId) {
-        List<Map> h = SelectppService.SelectCutTerritory("P24032508");
-        System.out.println(h.size());
+    public Result CurrentCutTerritory() {
+        List<Map> h = ppService.selectCutTerritory();
         return Result.seccess(h);
     }
 
+    @GetMapping("/SelectCutTerritory") // 璇嗗埆鏄剧ず  鐗瑰畾鐗堝浘 
+    @ResponseBody
+    public Result SelectCutTerritory(String TerritoryId) {
+        List<Map> h = ppService.selectCutTerritory(TerritoryId);
+        return Result.seccess(h);
+    }
+
+    @GetMapping("/IdentControls") //   璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D锛屽姛鑳絒0:鐮存崯锛�1锛氭嬁璧癩锛�
+    @ResponseBody
+    public Result Ident(@RequestParam(name = "IdentId", required = false) String ProcessId,@RequestParam(name = "ControlsId", required = false) String ControlsId) {
+        List<Map> h = ppService.selectCutTerritory("P24032508");
+        return Result.seccess(h);
+    }
 
     @GetMapping("/SelectCageInfo") // 鏌ヨ绗煎唴淇℃伅 
     @ResponseBody
     public Result SelectCageInfo(String ProcessId) {
-        List<Map> h = SelectppService.SelectCutTerritory("P24032508");
-        System.out.println(h.size());
+        List<Map> h = hangzhoumesService.SelectCageInfo();
         return Result.seccess(h);
     }
 
@@ -64,7 +72,6 @@
     @ResponseBody
     public Result SelectEdgTask(String ProcessId) {
         List<Map> EdgTasks = hangzhoumesService.SelectEdgInfo("1");
-        System.out.println(EdgTasks.size());
         return Result.seccess(EdgTasks);
     }
 
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/BigStorageCage.java b/CacheGlassModule/src/main/java/com/mes/entity/BigStorageCage.java
deleted file mode 100644
index cc3e6bf..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/BigStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`big_storage_cage`")
-public class BigStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//澶х悊鐗囩琛╥d
-    private  Integer device_id;//璁惧id
-    private  String slot;//鏍呮牸鍙�
-    private  String enable_state;//鍚敤鐘舵��
-    private  Integer remain_width;//鍓╀綑瀹藉害
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/BigStorageCageDetails.java b/CacheGlassModule/src/main/java/com/mes/entity/BigStorageCageDetails.java
deleted file mode 100644
index 3dd0188..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/BigStorageCageDetails.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`big_storage_cage_details`")
-public class BigStorageCageDetails {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//澶х悊鐗囩璇︽儏琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  Integer glassid;//鐜荤拑id
-    private  Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
-    private  String flowcardid;//娴佺▼鍗″彿
-    private  Integer glasstype;//鐜荤拑绫诲瀷
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer temperinglayoutid;//閽㈠寲鐗堝浘id
-    private  Integer temperingfeedsequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer state;//鐘舵��
-    private  Integer gap;//鐜荤拑闂撮殭
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java b/CacheGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
deleted file mode 100644
index bb1d86e..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_glass_info`")
-public class DownGlassInfo {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鐜荤拑淇℃伅琛╥d
-    private  String flowcardid;//娴佺▼鍗″彿
-    private  Integer sequence;//椤哄簭
-    private  Integer width;//瀹�
-    private  Integer height;//楂�
-    private  Integer thickness;//鍘氬害
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/DownStorageCage.java b/CacheGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
deleted file mode 100644
index 382f336..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_storage_cage`")
-public class DownStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鍓嶇悊鐗囩琛╥d
-    private  Integer deviceid;//璁惧id
-    private  String slot;//鏍呮牸鍙�
-    private  String enablestate;//鍚敤鐘舵��
-    private  Integer remainwidth;//鍓╀綑
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java b/CacheGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java
deleted file mode 100644
index 9e26f5f..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_storage_cage_details`")
-public class DownStorageCagedetails {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鍓嶇悊鐗囩鏄庣粏琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  Integer glassid;//鐜荤拑id
-    private  Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
-    private  String flow_card_id;//娴佺▼鍗″彿
-    private  Integer glass_type;//鐜荤拑绫诲瀷
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer temperinglayoutid;//閽㈠寲鐗堝浘id
-    private  Integer tempering_feed_sequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer state;//鐘舵��
-    private  Integer gap;//鐜荤拑闂撮殭
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/CacheGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
deleted file mode 100644
index 847d157..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_workstation`")
-public class DownWorkstation {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖宸ヤ綅琛╥d
-    private  Integer flowcard_id;//宸ヤ綅id
-    private  String glass_type;//娴佺▼鍗″彿
-    private  Integer width;//璁惧id
-    private  Integer height;//鍚敤鐘舵��
-    private  Integer thickness;//宸ヤ綔鐘舵��
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/OrderTest.java b/CacheGlassModule/src/main/java/com/mes/entity/OrderTest.java
deleted file mode 100644
index e8ea030..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/OrderTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`order`")
-public class OrderTest {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;
-    private  String orderId;
-    private  String recipeNo;
-    private  String largeglassNo;
-    private  String largeglassCompleted;
-    private  String smallglassNo;
-    private  String smallglassCompleted;
-    private  String smallglassProcessing;
-    private  String smallglassWorn;
-    private  String orderStatus;
-    private  String orderMaker;
-    private  String makeTime;
-    private  String updateTime;
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/UpPattenUsage.java b/CacheGlassModule/src/main/java/com/mes/entity/UpPattenUsage.java
deleted file mode 100644
index 461e04d..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/UpPattenUsage.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`up_patten_usage`")
-public class UpPattenUsage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//鍘熺墖浣跨敤鎯呭喌琛╥d
-    private  Integer engineeringid;//宸ョ▼鍙�
-    private  Integer filmsid;//鑶滅郴id
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer layoutsequence;//鍘熺墖鐗堝浘鐗囧簭
-    private  Integer state;//鐘舵��
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/entity/UpWorkstation.java b/CacheGlassModule/src/main/java/com/mes/entity/UpWorkstation.java
deleted file mode 100644
index 1f8cb3b..0000000
--- a/CacheGlassModule/src/main/java/com/mes/entity/UpWorkstation.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`up_workstation`")
-public class UpWorkstation {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓婄墖宸ヤ綅琛╥d
-    private  Integer workstationid;//宸ヤ綅鍙�
-    private  Integer deviceid;//璁惧id
-    private  Integer enablestate;//鍚敤鐘舵��
-    private  Integer workstate;//宸ヤ綔鐘舵��
-    private  Double patternwidth;//鍘熺墖瀹�
-    private  Double patternheigth;//鍘熺墖楂�
-    private  Double patternthickness;//鍘熺墖鍘氬害
-    private  Integer filmsid;//鑶滅郴
-    private  Integer number;//鏁伴噺
-
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java b/CacheGlassModule/src/main/java/com/mes/mapper/HangzhouMesMapper.java
similarity index 69%
rename from CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
rename to CacheGlassModule/src/main/java/com/mes/mapper/HangzhouMesMapper.java
index e8bcfe2..4c4b87a 100644
--- a/CacheGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/HangzhouMesMapper.java
@@ -1,5 +1,6 @@
 package com.mes.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.mes.entity.EdgStorageCageDetails;
 import com.mes.entity.GlassInfo;
 import com.mes.entity.TaskCache;
@@ -10,64 +11,56 @@
 
 import org.apache.ibatis.annotations.*;
 
+@DS("hangzhoumes")
 @Mapper
-public interface SelectInfo {
+public interface HangzhouMesMapper {
+    
     // 鐜荤拑淇℃伅 鎸塈D鏌ヨ
     @Select("select * from `glass_info` where id=#{id}")
-    GlassInfo SelectGlassId(String id);
-
-    // 閽㈠寲鎸夊伐绋嬫煡璇�
-    @Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ")
-    List<Tempered> SelectTemperedTerritory(String projeceid);
-
-    // 鍒囧壊鐗堝浘鎸夊伐绋嬫煡璇�
-    @Select("select * from optimize_detail where project_no=#{projeceid} ")
-    List<Map> SelectCutTerritory(String projeceid);
-
+    GlassInfo selectGlassId(String id);
     // 鏌ヨ纾ㄨ竟淇℃伅
     @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell}")
-    List<Map> SelectEdgInfo(String EndCell);
+    List<Map> selectEdgInfo(String EndCell);
 
     // 鏌ヨ绗煎瓙鍐呯┖闂�
     @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is null order by escd.slot")
-    List<EdgStorageCageDetails> SelectCacheLeisure();
+    List<EdgStorageCageDetails> selectCacheLeisure();
 
     // 鏌ヨ绗煎瓙鍐呭嚭鐗囦换鍔�
     @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot WHERE escd.slot IS NOT NULL order by escd.tempering_layout_id,escd.tempering_feed_sequence")
-    List<EdgStorageCageDetails> SelectCacheOut();
+    List<EdgStorageCageDetails> selectCacheOut();
 
     // 鏌ヨ绗煎瓙鍐呬俊鎭�
-    @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot order by esc.slot")
-    List<EdgStorageCageDetails> SelectCachInfo();
+    @Select("select esc.*,escd.id as detailsID,escd.device_id as details_device_id,escd.glass_id,escd.sequence,escd.flow_card_id,escd.glass_type,escd.width,escd.height,escd.thickness,escd.edg_width,escd.edg_height,escd.tempering_layout_id,escd.tempering_feed_sequence,escd.pattern_sequence,escd.state,escd.gap from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot order by esc.slot")
+    List<Map> selectCachInfo();
 
     // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
     @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id=#{tempering_layout_id} and escd.tempering_feed_sequence<#{tempering_feed_sequence} and esc.remain_width-#{width}>0 order by escd.tempering_feed_sequence")
-    List<EdgStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, Integer tempering_feed_sequence,
-            double width);
+    List<EdgStorageCageDetails> selectIsExistIntoCache(Integer tempering_layout_id, Integer tempering_feed_sequence,double width);
 
     // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
     @Select("select escd.* from edg_storage_cage as esc LEFT JOIN edg_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id<#{tempering_layout_id} and esc.remain_width-#{width}>0 order by escd.tempering_layout_id desc,escd.tempering_feed_sequence")
-    List<EdgStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, double width);
+    List<EdgStorageCageDetails> selectIsExistIntoCache(Integer tempering_layout_id, double width);
 
     // 鏌ヨ鍏ㄩ儴浠诲姟
     @Select("select * from task_cache")
-    List<TaskCache> SelectCacheInfoAll();
+    List<TaskCache> selectCacheInfoAll();
 
     // 鏌ヨ杩涚墖浠诲姟
     @Select("select * from task_cache where task_type='1' and task_stauts='0'")
-    List<TaskCache> SelectInputCacheInfo();
+    List<TaskCache> selectInputCacheInfo();
 
     // 鏌ヨ鍑虹墖浠诲姟
     @Select("select * from task_cache where task_type='2' and task_stauts='0'")
-    List<TaskCache> SelectOutCacheInfo();
+    List<TaskCache> selectOutCacheInfo();
 
     // 鏌ヨ  A09  鎴� A10 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
     @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell} limit 1")
-    GlassInfo SelectLastOutCacheInfo(String EndCell);
+    GlassInfo selectLastOutCacheInfo(String EndCell);
 
     // 淇敼绗煎瓙鍐呬俊鎭�
     @Update("update")
-    Integer UpdateCache(@Param("id") Integer id, @Param("order_id") String order_id);
+    Integer updateCache(@Param("id") Integer id, @Param("order_id") String order_id);
 
     // 娣诲姞鐞嗙墖浠诲姟
     @Insert("INSERT into task_cache VALUES(#{id},#{start},#{end},#{type},0)")
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java b/CacheGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java
deleted file mode 100644
index d12d4ce..0000000
--- a/CacheGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mes.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.entity.OrderTest;
-import org.apache.ibatis.annotations.*;
-
-@Mapper
-public interface OrderTestMapper extends BaseMapper<OrderTest> {
-
-//    @Select("select * from `order`")
-//    List<Order> findAll();
-//
-//    @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
-//    Integer insert(Order order);
-//
-//    @Delete("delete from `order` where id=#{id}")
-//    Integer deleteById(@Param("id") Integer id);
-//
-//    @Update("update `order` set order_id=#{order_id} where id=#{id}")
-//    Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java b/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java
new file mode 100644
index 0000000..68f18e6
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java
@@ -0,0 +1,39 @@
+package com.mes.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.entity.EdgStorageCageDetails;
+import com.mes.entity.GlassInfo;
+import com.mes.entity.TaskCache;
+import com.mes.entity.Tempered;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.*;
+
+@DS("pp")
+@Mapper
+public interface PpMapper {
+    
+    // 閽㈠寲鎸夊伐绋嬫煡璇�
+    @Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ")
+    List<Tempered> selectTemperedTerritory(String projeceid);
+
+    // 鍒囧壊鐗堝浘 鎸夊伐绋�,鐗堝浘缂栧彿鏌ヨ
+    @Select("select * from optimize_detail where project_no=#{projeceid} ")
+    List<Map> selectCutTerritory(String projeceid,String TerritoryId);
+
+    // 鍒囧壊鐗堝浘 鎸夊伐绋嬫煡璇�
+    @Select("select * from optimize_detail where project_no=#{projeceid} ")
+    List<Map> selectCutTerritory(String projeceid);
+
+    //
+    // @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
+    // Integer insert(Order order);
+    //
+    // @Delete("delete from `order` where id=#{id}")
+    // Integer deleteById(@Param("id") Integer id);
+    //
+    // @Update("update `order` set order_id=#{order_id} where id=#{id}")
+    // Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
+}
diff --git a/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java b/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/LogicService.java
similarity index 81%
rename from CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
rename to CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/LogicService.java
index f239f84..990e50e 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/Logic.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/CacheGlassService/LogicService.java
@@ -11,13 +11,14 @@
 import com.mes.entity.TaskCache;
 import com.mes.entity.device.PLCAutoMes;
 import com.mes.entity.device.PlcParameterObject;
-import com.mes.mapper.SelectInfo;
+import com.mes.mapper.HangzhouMesMapper;
+import com.mes.mapper.PpMapper;
 
 
 @Service
-public class Logic {
+public class LogicService {
     @Autowired
-    private SelectInfo selectInfo;
+    private HangzhouMesMapper hangzhouMesMapper;
     //璇嗗埆閫昏緫    涓嶄氦浜�
     public void identify(String Number){
         //鏌ヨ浠诲姟
@@ -50,25 +51,25 @@
     //鐞嗙墖 杩�
     public boolean processInto(String Number){
         //鏌ヨ娑堟伅闃熷垪閲岀殑鐜荤拑
-        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
         PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
         if(GlassInfo!=null){//瀛樺湪姝ょ幓鐠冪紪鍙�  
             //鍚岄挗鍖栫増鍥惧唴鐨勬爡鏍煎彿
-            List<EdgStorageCageDetails> list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getTemperingfeedsequence(),GlassInfo.getWidth());
+            List<EdgStorageCageDetails> list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getTemperingfeedsequence(),GlassInfo.getWidth());
             //绌烘爡鏍煎彿
             if (list.size()==0) {
-                list=selectInfo.SelectCacheLeisure();
+                list=hangzhouMesMapper.selectCacheLeisure();
             }
             //灏忎簬姝ょ幓鐠冮挗鍖栫増鍥惧簭鍙风殑鏍呮牸鍙�
             if(list.size()==0){
-                list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getWidth());
+                list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperinglayoutid(),GlassInfo.getWidth());
             }
             if(list.size()>0){
                 //瀛樺湪绌烘牸  
                 //1.鐢熸垚浠诲姟锛�  璧峰浣嶇疆0   缁撴潫浣嶇疆this.slot  浠诲姟绫诲瀷 1   锛堣繘鐗囦换鍔★級
                 //2.鍥炲 1杩涚墖
                 EdgStorageCageDetails item=list.get(0);
-                selectInfo.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1");
+                hangzhouMesMapper.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1");
                 S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
                 return true;
             }
@@ -85,19 +86,19 @@
         String A09=S7control.getinstance().ReadWord("DB14.56", 1).get(0)+"";
         String A10=S7control.getinstance().ReadWord("DB14.58", 1).get(0)+"";
         PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
-        List<EdgStorageCageDetails> list=selectInfo.SelectCacheOut();
+        List<EdgStorageCageDetails> list=hangzhouMesMapper.selectCacheOut();
         boolean isOut=true;//鍏朵粬鎯呭喌鏉′欢 濡傦細鍚庣画璁惧鏁呴殰绂佹鐞嗙墖鍑虹墖 绛�
         if (list.size()>0&&isOut) {
             EdgStorageCageDetails item=list.get(0);
             if(A09=="0"&&A10=="1"){
                 //鍑哄埌  A09
-                selectInfo.insertCacheTask(item.getGlassid()+"","0","09","2");
+                hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","09","2");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
             }else if(A09=="1"&&A10=="0"){
                 //鍑哄埌  A10
-                selectInfo.insertCacheTask(item.getGlassid()+"","0","10","2");
+                hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","10","2");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
@@ -106,15 +107,15 @@
                 String endcell="09";
                 String SendEndcell="1";
                 boolean If_=false;
-                GlassInfo glassInfo09= selectInfo.SelectLastOutCacheInfo("09");
-                GlassInfo glassInfo10= selectInfo.SelectLastOutCacheInfo("10");
+                GlassInfo glassInfo09= hangzhouMesMapper.selectLastOutCacheInfo("09");
+                GlassInfo glassInfo10= hangzhouMesMapper.selectLastOutCacheInfo("10");
                 if(glassInfo10!=null&&glassInfo10.getWidth()==item.getWidth()&&glassInfo10.getHeight()==item.getHeight()){
                     endcell="10";
                     SendEndcell="2";
                 }else if(glassInfo10!=null&&If_){
                     //鍏朵粬鏉′欢
                 }
-                selectInfo.insertCacheTask(item.getGlassid()+"","0",endcell,"2");
+                hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0",endcell,"2");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
@@ -127,7 +128,7 @@
     //纾ㄨ竟   涓嶄氦浜�  鐞嗙墖鍜岀(杈规満鑷繁浜や簰
     public void processMb(String Number){
         //鏌ヨ浠诲姟
-        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
         PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
         if(GlassInfo!=null){
             //鍙戦�佷换鍔�   ID   闀� 瀹� 鍘� 鍊掕 宸ヨ壓鍔熻兘绛�
@@ -144,7 +145,7 @@
     //鏌ヨ娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹�   
     public boolean SelectMessageId(String Number){
         //鏌ヨ鏄惁瀛樺湪
-        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
         if(GlassInfo==null){
             return false;//杩斿洖 涓嶅瓨鍦�
         }
@@ -153,7 +154,7 @@
     //鍒犻櫎娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹�   
     public boolean DeleteMessageId(String Number){
         //鏌ヨ鏄惁瀛樺湪
-        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
         if(GlassInfo==null){
             return false;//杩斿洖 涓嶅瓨鍦�
         }
@@ -163,7 +164,7 @@
     //鏄惁瀛樺湪姝ょ紪鍙风幓鐠� 
     public boolean isExist(String Number){
         //鏌ヨ鏄惁瀛樺湪
-        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
         if(GlassInfo==null){
             return false;//杩斿洖 涓嶅瓨鍦�
         }
diff --git a/CacheGlassModule/src/main/java/com/mes/service/IOrderService.java b/CacheGlassModule/src/main/java/com/mes/service/IOrderService.java
deleted file mode 100644
index 9e44ceb..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/IOrderService.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package com.mes.service;public interface IOrderService {
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/service/ModuleB.java b/CacheGlassModule/src/main/java/com/mes/service/ModuleB.java
deleted file mode 100644
index fbe2d62..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/ModuleB.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.mes.service;
-
-import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.Connection;
-import com.rabbitmq.client.ConnectionFactory;
-import com.rabbitmq.client.DeliverCallback;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ModuleB {
-    private final static String QUEUE_NAME = "hangzhou2";
-
-    public static void main(String[] argv) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost("10.153.19.150");
-        //factory.setHost("localhost");
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            Map<String, Object> args = new HashMap<>();
-            args.put("x-max-length-bytes",20000);
-//            args.put("x-max-length",5000);
-            channel.queueDeclare(QUEUE_NAME, false, false, false, args);
-
-            // 鍒涘缓娑堣垂鑰�
-            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
-                String receivedMessage = new String(delivery.getBody(), "UTF-8");
-                System.out.println(" [x] Received '" + receivedMessage + "'");
-            };
-            // 寮�濮嬫秷璐规秷鎭�
-          channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
-           });
-        }
-    }
-}
-
diff --git a/CacheGlassModule/src/main/java/com/mes/service/MqMessage.java b/CacheGlassModule/src/main/java/com/mes/service/MqMessage.java
deleted file mode 100644
index 9d4a539..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/MqMessage.java
+++ /dev/null
@@ -1,56 +0,0 @@
-package com.mes.service;
-
-
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-
-
-
-
-
-@Service
-public class MqMessage {
-    @Autowired
-    private RabbitMQUtils rabbitMQUtils;
-
-    public boolean Add(String message, String queueName,String messageId){
-        try {
-            return rabbitMQUtils.sendMessageWithId(message, queueName,messageId);
-        } catch (Exception e) {
-            // TODO: handle exception
-            return false;//寮傚父鏃堕敊璇�
-        }
-    }
-    //鏍规嵁ID鏌ユ壘娑堟伅
-    public String SelectId(String queueName,boolean isDelete,String messageId){
-
-        try {
-            String content=rabbitMQUtils.consumeMessageById(messageId,queueName,isDelete);
-            
-            return content;
-        } catch (Exception e) {
-            // TODO: handle exception
-            return null;//寮傚父鏃堕敊璇�
-        } 
-    }
-    public boolean Delete(String queueName,String messageId){
-        try
-        {
-            rabbitMQUtils.consumeMessageById(messageId,queueName,false);
-            return true;
-        }catch(Exception e){
-            return false;
-        }
-        
-    }
-    //鏃犱慨鏀�
-    public void Update(){
-        
-    }
-    
-    
-}
-
diff --git a/CacheGlassModule/src/main/java/com/mes/service/RabbitMQUtils.java b/CacheGlassModule/src/main/java/com/mes/service/RabbitMQUtils.java
deleted file mode 100644
index 7914d4c..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/RabbitMQUtils.java
+++ /dev/null
@@ -1,264 +0,0 @@
-package com.mes.service;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.rabbitmq.client.*;
-
-import java.util.*;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.BlockingQueue;
-
-import org.springframework.stereotype.Repository;
-
-@Repository
-public class RabbitMQUtils {
-    // ObjectMapper瀵硅薄锛岀敤浜庡簭鍒楀寲鍜屽弽搴忓垪鍖朖SON
-    private static ObjectMapper objectMapper = new ObjectMapper();
-    private static String host = "10.153.19.150"; // RabbitMQ 涓绘満鍚�
-    private static Map<String, Object> args = new HashMap<>(); // 闃熷垪鍙傛暟
-
-    static {
-        // 璁剧疆闃熷垪鍙傛暟
-        args.put("x-max-length-bytes", 1024 * 1024);
-    }
-
-    //    private static  Map<String, Object> args = new HashMap<>();
-//     args.put("x-max-length-bytes",1024 * 1024);
-    // 鍙戦�佹秷鎭埌 RabbitMQ 闃熷垪涓�
-    public String sendMessage(String message, String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鍙戦�佹秷鎭�
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 鍙戝竷娑堟伅鍒伴槦鍒�
-            channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
-            System.out.println(" [x] Sent '" + message + "' to queue '" + queueName + "'");
-        }
-
-        return message;
-    }
-
-
-    // 浠� RabbitMQ 闃熷垪涓帴鏀舵秷鎭�
-    public String receiveMessage(String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 鍒涘缓闃诲闃熷垪
-        BlockingQueue<String> messageQueue = new ArrayBlockingQueue<>(1);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鎺ユ敹娑堟伅
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 璁剧疆娑堟伅鎺ユ敹鍥炶皟
-            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
-                String receivedMessage = new String(delivery.getBody(), "UTF-8");
-               // System.out.println(" [x] Received '" + receivedMessage + "'");
-
-                // 灏嗘帴鏀跺埌鐨勬秷鎭斁鍏ラ樆濉為槦鍒�
-                try {
-                    messageQueue.put(receivedMessage);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            };
-
-            // 娑堣垂闃熷垪涓殑娑堟伅
-            channel.basicConsume(queueName, true, deliverCallback, consumerTag -> {
-
-            });
-
-            // 闃诲骞剁瓑寰呰幏鍙栨秷鎭�
-            return messageQueue.take();
-        }
-    }
-
-
-    //鑾峰彇娑堟伅  骞舵秷璐癸紵
-    public List<String> readMessage(String queueName,boolean is) throws Exception {
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-        List<String> messages = new ArrayList<>();
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            boolean autoAck = false;
-
-            GetResponse response = channel.basicGet(queueName, autoAck);
-            if (response != null) {
-                String message = new String(response.getBody(), "UTF-8");
-                messages.add(message);
-                // 鎵嬪姩纭娑堟伅澶勭悊瀹屾垚
-                if(is){
-                    long deliveryTag = response.getEnvelope().getDeliveryTag();
-                    channel.basicAck(deliveryTag, false);
-                }
-
-            }
-        }
-
-        return messages;
-    }
-
-
-
-    private static Set<String> sentMessageIds = new HashSet<>();
-//鏍规嵁id鍙戦�佹秷鎭�
-    public boolean sendMessageWithId(String queueName, String message, String messageId) throws Exception {
-        if (sentMessageIds.contains(messageId)) {
-            System.err.println("Message with ID " + messageId + " has already been sent.");
-            return false; // 娑堟伅閲嶅锛屽彂閫佸け璐�
-        }
-
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            AMQP.BasicProperties properties = new AMQP.BasicProperties.Builder()
-                    .messageId(messageId)
-                    .build();
-
-            channel.basicPublish("", queueName, properties, message.getBytes("UTF-8"));
-            System.out.println("Sent message with ID: " + messageId);
-
-            sentMessageIds.add(messageId); // 灏� messageId 娣诲姞鍒板凡鍙戦�侀泦鍚堜腑
-
-            return true; // 娑堟伅鎴愬姛鍙戦��
-        } catch (Exception e) {
-            System.err.println("Failed to send message: " + e.getMessage());
-            return false; // 娑堟伅鍙戦�佸け璐�
-        }
-    }
-    //鏍规嵁id鏌ユ壘娑堟伅   鏄惁鍒犻櫎
-    public String consumeMessageById(String messageId,String queueName,boolean isDelete) throws Exception {
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            GetResponse response;
-            while ((response = channel.basicGet(queueName, false)) != null) {
-                String receivedMessage = new String(response.getBody(), "UTF-8");
-                if (response.getProps().getMessageId().equals(messageId)) {
-                    if(isDelete){
-                        long deliveryTag = response.getEnvelope().getDeliveryTag();
-                        channel.basicAck(deliveryTag, false);
-                    }
-                    System.out.println("Selected message: "+messageId+ receivedMessage);
-                    return receivedMessage; // 杩斿洖閫夊畾鐨勬秷鎭唴瀹�
-                } else {
-                    // 瀵逛簬涓嶇鍚堟潯浠剁殑娑堟伅锛岃繘琛� Nack 鎿嶄綔
-//                    long deliveryTag = response.getEnvelope().getDeliveryTag();
-//                    channel.basicNack(deliveryTag, false, true);
-                    return "Specified message not found in the queue.";
-                }
-            }
-
-            return "Specified message not found in the queue.";
-        }
-    }
-
-//     //娑堣垂鎸囧畾娑堟伅
-//     public String consumeSelectedMessage(int messageToConsume, String queueName) throws Exception {
-//         ConnectionFactory factory = new ConnectionFactory();
-//         factory.setHost(host);
-
-//         try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()) {
-//             channel.queueDeclare(queueName, false, false, false, args);
-
-//             for (int i = 0; i < messageToConsume; i++) {
-//                 GetResponse response = channel.basicGet(queueName, false);
-//                 if (response == null) {
-//                     return "Queue does not have enough messages.";
-//                 }
-// //                long deliveryTag = response.getEnvelope().getDeliveryTag();
-// //                channel.basicAck(deliveryTag, false);
-//             }
-
-//             GetResponse selectedResponse = channel.basicGet(queueName, false);
-//             if (selectedResponse != null) {
-//                 byte[] body = selectedResponse.getBody();
-//                 String selectedMessage = new String(body, "UTF-8");
-//                 long deliveryTag = selectedResponse.getEnvelope().getDeliveryTag();
-//                 channel.basicAck(deliveryTag, false);
-//                 return selectedMessage;
-//             } else {
-//                 return "Specified message not found in the queue.";
-//             }
-//         }
-//     }
-
-    // 鍙戦�� JSON 娑堟伅鍒伴槦鍒�
-    public boolean sendJsonMessage(Object message, String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鍙戦�� JSON 娑堟伅
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 灏嗗璞¤浆鎹负 JSON 瀛楃涓�
-            String jsonMessage = objectMapper.writeValueAsString(message);
-
-            // 鍙戝竷 JSON 娑堟伅鍒伴槦鍒�
-            channel.basicPublish("", queueName, null, jsonMessage.getBytes());
-            System.out.println(" [x] Sent JSON message: '" + jsonMessage + "' to queue '" + queueName + "'");
-
-            return true; // 鍙戦�佹秷鎭垚鍔�
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false; // 鍙戦�佹秷鎭け璐�
-        }
-    }
-
-    // 鎺ユ敹 JSON 娑堟伅骞惰浆鎹负瀵硅薄
-    public <T> T receiveJsonMessage(Class<T> valueType, String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鎺ユ敹 JSON 娑堟伅
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 鑾峰彇闃熷垪涓殑娑堟伅
-            GetResponse response = channel.basicGet(queueName, true);
-            if (response != null) {
-                byte[] body = response.getBody();
-                String jsonMessage = new String(body, "UTF-8");
-                System.out.println(" [x] Received JSON message: '" + jsonMessage + "' from queue '" + queueName + "'");
-
-                // 灏� JSON 娑堟伅杞崲涓哄璞�
-                return objectMapper.readValue(jsonMessage, valueType);
-            } else {
-                return null;
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null; // 鎺ユ敹娑堟伅澶辫触
-        }
-    }
-
-}
-
-//    RabbitMQUtils.sendMessage("Hello, world!", "module_queue");
-//RabbitMQUtils.receiveMessage("module_queue");
-//RabbitMQUtils.sendJsonMessage(someObject, "another_queue");
-//RabbitMQUtils.receiveJsonMessage(SomeClass.class, "another_queue");
-// 闇�瑕佸皢 someObject 鏇挎崲涓轰綘瑕佸彂閫佺殑瀵硅薄锛屽苟灏� SomeClass 鏇挎崲涓轰綘瑕佹帴鏀跺苟杞崲鐨勫璞$被鍨嬨��
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/service/RabbitMQUtils33.java b/CacheGlassModule/src/main/java/com/mes/service/RabbitMQUtils33.java
deleted file mode 100644
index 5201c4a..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/RabbitMQUtils33.java
+++ /dev/null
@@ -1,178 +0,0 @@
-package com.mes.service;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.rabbitmq.client.*;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ArrayBlockingQueue;
-import java.util.concurrent.BlockingQueue;
-
-public class RabbitMQUtils33 {
-    // ObjectMapper瀵硅薄锛岀敤浜庡簭鍒楀寲鍜屽弽搴忓垪鍖朖SON
-    private static ObjectMapper objectMapper = new ObjectMapper();
-    private static String host = "10.153.19.150"; // RabbitMQ 涓绘満鍚�
-    private static Map<String, Object> args = new HashMap<>(); // 闃熷垪鍙傛暟
-
-    static {
-        // 璁剧疆闃熷垪鍙傛暟
-        args.put("x-max-length-bytes", 1024 * 1024);
-    }
-
-    //    private static  Map<String, Object> args = new HashMap<>();
-//     args.put("x-max-length-bytes",1024 * 1024);
-    // 鍙戦�佹秷鎭埌 RabbitMQ 闃熷垪涓�
-    public boolean sendMessage(String message, String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鍙戦�佹秷鎭�
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 鍙戝竷娑堟伅鍒伴槦鍒�
-            channel.basicPublish("", queueName, null, message.getBytes("UTF-8"));
-            System.out.println(" [x] Sent '" + message + "' to queue '" + queueName + "'");
-            return true;
-        } catch (Exception e) {
-            // TODO: handle exception
-            return false;
-        }
-        
-        
-    }
-
-
-    // 浠� RabbitMQ 闃熷垪涓帴鏀舵秷鎭�
-    public String receiveMessage(String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 鍒涘缓闃诲闃熷垪
-        BlockingQueue<String> messageQueue = new ArrayBlockingQueue<>(1);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鎺ユ敹娑堟伅
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 璁剧疆娑堟伅鎺ユ敹鍥炶皟
-            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
-                String receivedMessage = new String(delivery.getBody(), "UTF-8");
-               // System.out.println(" [x] Received '" + receivedMessage + "'");
-
-                // 灏嗘帴鏀跺埌鐨勬秷鎭斁鍏ラ樆濉為槦鍒�
-                try {
-                    messageQueue.put(receivedMessage);
-                } catch (InterruptedException e) {
-                    e.printStackTrace();
-                }
-            };
-
-            // 娑堣垂闃熷垪涓殑娑堟伅
-            channel.basicConsume(queueName, true, deliverCallback, consumerTag -> {
-
-            });
-
-            // 闃诲骞剁瓑寰呰幏鍙栨秷鎭�
-            return messageQueue.take();
-        }
-    }
-
-
-
-    public List<String> readMessage(String queueName,boolean isDelete) throws Exception {
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-        List<String> messages = new ArrayList<>();
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            boolean autoAck = false;
-
-            GetResponse response = channel.basicGet(queueName, autoAck);
-            if (response != null) {
-                String message = new String(response.getBody(), "UTF-8");
-                messages.add(message);
-
-                
-                // 鎵嬪姩纭娑堟伅澶勭悊瀹屾垚
-                if (isDelete) {
-                    long deliveryTag = response.getEnvelope().getDeliveryTag();
-                    channel.basicAck(deliveryTag, false);
-                }
-            }
-        }
-
-        return messages;
-    }
-
-    // 鍙戦�� JSON 娑堟伅鍒伴槦鍒�
-    public static boolean sendJsonMessage(Object message, String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鍙戦�� JSON 娑堟伅
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 灏嗗璞¤浆鎹负 JSON 瀛楃涓�
-            String jsonMessage = objectMapper.writeValueAsString(message);
-
-            // 鍙戝竷 JSON 娑堟伅鍒伴槦鍒�
-            channel.basicPublish("", queueName, null, jsonMessage.getBytes());
-            System.out.println(" [x] Sent JSON message: '" + jsonMessage + "' to queue '" + queueName + "'");
-
-            return true; // 鍙戦�佹秷鎭垚鍔�
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false; // 鍙戦�佹秷鎭け璐�
-        }
-    }
-
-    // 鎺ユ敹 JSON 娑堟伅骞惰浆鎹负瀵硅薄
-    public static <T> T receiveJsonMessage(Class<T> valueType, String queueName) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶骞惰缃富鏈哄悕
-        ConnectionFactory factory = new ConnectionFactory();
-        factory.setHost(host);
-
-        // 浣跨敤 try-with-resources 璇彞鍒涘缓杩炴帴鍜岄�氶亾锛屽苟鎺ユ敹 JSON 娑堟伅
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            channel.queueDeclare(queueName, false, false, false, args);
-
-            // 鑾峰彇闃熷垪涓殑娑堟伅
-            GetResponse response = channel.basicGet(queueName, true);
-            if (response != null) {
-                byte[] body = response.getBody();
-                String jsonMessage = new String(body, "UTF-8");
-                System.out.println(" [x] Received JSON message: '" + jsonMessage + "' from queue '" + queueName + "'");
-
-                // 灏� JSON 娑堟伅杞崲涓哄璞�
-                return objectMapper.readValue(jsonMessage, valueType);
-            } else {
-                return null;
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-            return null; // 鎺ユ敹娑堟伅澶辫触
-        }
-    }
-
-}
-
-//    RabbitMQUtils.sendMessage("Hello, world!", "module_queue");
-//RabbitMQUtils.receiveMessage("module_queue");
-//RabbitMQUtils.sendJsonMessage(someObject, "another_queue");
-//RabbitMQUtils.receiveJsonMessage(SomeClass.class, "another_queue");
-// 闇�瑕佸皢 someObject 鏇挎崲涓轰綘瑕佸彂閫佺殑瀵硅薄锛屽苟灏� SomeClass 鏇挎崲涓轰綘瑕佹帴鏀跺苟杞崲鐨勫璞$被鍨嬨��
\ No newline at end of file
diff --git a/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java b/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
index 6ff9ab2..cc29839 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/hangzhoumes/hangzhoumesService.java
@@ -4,7 +4,8 @@
 import com.mes.entity.EdgStorageCageDetails;
 import com.mes.entity.GlassInfo;
 import com.mes.entity.Tempered;
-import com.mes.mapper.SelectInfo;
+import com.mes.mapper.HangzhouMesMapper;
+import com.mes.mapper.PpMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -12,30 +13,25 @@
 import java.util.Map;
 
 @Service
-@DS("hangzhoumes")
-public class hangzhoumesService {
+public class HangzhoumesService {
 
     @Autowired
-    private SelectInfo SelectInfo;
-
+    private HangzhouMesMapper hangzhouMesMapper;
+    //鏍规嵁缂栧彿 鏌ユ壘鐜荤拑灏忕墖淇℃伅
     public GlassInfo getUserInfo(String process_id){
-        return SelectInfo.SelectGlassId(process_id);
+        return hangzhouMesMapper.selectGlassId(process_id);
     }
-    // //璇嗗埆淇℃伅
-    // public List<Map> SelectCutTerritory(String process_id){
-    //     return SelectInfo.SelectCutTerritory(process_id);
-    // }
 
     //鐞嗙墖缂撳瓨 绗煎唴淇℃伅
-    public List<EdgStorageCageDetails> SelectCageInfo(){
-        return SelectInfo.SelectCachInfo();
+    public List<Map> SelectCageInfo(){
+        return hangzhouMesMapper.selectCachInfo();
     }
 
     //纾ㄨ竟灏忕墖淇℃伅
     public List<Map> SelectEdgInfo(String line){
-
-        return SelectInfo.SelectEdgInfo(line);
+        return hangzhouMesMapper.selectEdgInfo(line);
     }
+
     
 }
 
diff --git a/CacheGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java b/CacheGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java
deleted file mode 100644
index 5274aa6..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mes.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.entity.OrderTest;
-import com.mes.mapper.OrderTestMapper;
-import com.mes.service.IOrderService;
-import org.springframework.stereotype.Service;
-
-@Service
-@DS("erp_sd")
-public class OrderServiceImpl extends ServiceImpl<OrderTestMapper, OrderTest> implements IOrderService {
-}
diff --git a/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java b/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java
new file mode 100644
index 0000000..bc3b645
--- /dev/null
+++ b/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java
@@ -0,0 +1,51 @@
+package com.mes.service.pp;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.mes.entity.GlassInfo;
+import com.mes.entity.Tempered;
+import com.mes.mapper.HangzhouMesMapper;
+import com.mes.mapper.PpMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class PpService {
+
+    @Autowired
+    private PpMapper selectInfoMapper;
+    @Autowired
+    private HangzhouMesMapper hangzhouMesMapper;
+
+    // public GlassInfo getUserInfo(String process_id){
+    //     return hangzhouMesMapper.selectGlassId(process_id);
+    // }
+
+    public List<Tempered> selectTemperedTerritory(String process_id){
+        return selectInfoMapper.selectTemperedTerritory(process_id);
+    }
+
+    //鍒囧壊鐗堝浘   褰撳墠璇嗗埆鐗堝浘 
+    public List<Map> selectCutTerritory(){
+        //1.寰楀埌瑕佹樉绀虹殑 宸ョ▼ID 浠ュ強鐗堝浘ID
+        //2.鍦℉angzhoumes鏁版嵁搴撻噷 寰楀埌鐩墠宸茬粡  棰嗗彇浣嗘湭瀹屾垚鐨� 宸ョ▼ID闆嗗悎
+        //3.鎷垮伐绋嬮泦鍚堝幓PP鏁版嵁搴撻噷 寰楀埌瀵瑰簲鐨勫皬鐗囬泦鍚�
+        //4.鎷垮搴旂殑灏忕墖闆嗗悎 涓� 缂撳瓨浠诲姟琛ㄨ繘琛屽姣� 鏌ユ壘涓嬩竴鐗堝浘鏄剧ず   
+        String process_id = "P24032204";
+        String territory_id = "1";
+        return selectInfoMapper.selectCutTerritory(process_id,territory_id);
+    }
+    //鍒囧壊鐗堝浘 鏍规嵁宸ョ▼鍙锋煡璇�   鎵�鏈夌増鍥惧皬鐗囨暟鎹�
+    public List<Map> selectCutTerritory(String process_id){
+        return selectInfoMapper.selectCutTerritory(process_id);
+    }
+    //鍒囧壊鐗堝浘 鏍规嵁宸ョ▼鍙�,鐗堝浘缂栧彿鏌ヨ   鐗堝浘缂栧彿閲屾墍鏈夊皬鐗囨暟鎹�
+    public List<Map> selectCutTerritory(String process_id,String TerritoryId){
+        return selectInfoMapper.selectCutTerritory(process_id,TerritoryId);
+    }
+
+    
+}
+
diff --git a/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java b/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
deleted file mode 100644
index 2eecb75..0000000
--- a/CacheGlassModule/src/main/java/com/mes/service/pp/SelectdppService.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.mes.service.pp;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.mes.entity.GlassInfo;
-import com.mes.entity.Tempered;
-import com.mes.mapper.SelectInfo;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Map;
-
-@Service
-@DS("pp")
-public class SelectdppService {
-
-    @Autowired
-    private SelectInfo SelectInfo;
-
-    public GlassInfo getUserInfo(String process_id){
-        return SelectInfo.SelectGlassId(process_id);
-    }
-
-    public List<Tempered> SelectTemperedTerritory(String process_id){
-        return SelectInfo.SelectTemperedTerritory(process_id);
-    }
-    //鍒囧壊鐗堝浘
-    public List<Map> SelectCutTerritory(String process_id){
-        return SelectInfo.SelectCutTerritory(process_id);
-    }
-
-    
-}
-
diff --git a/LoadGlassModule/src/main/java/com/mes/MesApplication.java b/LoadGlassModule/src/main/java/com/mes/MesApplication.java
index 9cc84b5..14b69cd 100644
--- a/LoadGlassModule/src/main/java/com/mes/MesApplication.java
+++ b/LoadGlassModule/src/main/java/com/mes/MesApplication.java
@@ -1,6 +1,4 @@
 package com.mes;
-
-import com.mes.common.PlcTools.S7object;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cache.annotation.EnableCaching;
diff --git a/LoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java b/LoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
index 9cc9e37..8ffee41 100644
--- a/LoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
+++ b/LoadGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
@@ -1,7 +1,9 @@
 package com.mes.common.PlcTools;
 
-
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.nio.charset.StandardCharsets;
+import java.sql.Time;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -9,15 +11,37 @@
 import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
 import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
 import com.google.common.primitives.Bytes;
+import org.apache.ibatis.jdbc.Null;
 
 public class S7control {
 
     S7PLC s7PLC; // PLC閫氳绫诲疄渚�
-    
-    public S7control(EPlcType plcType, String ip, int port, int rack, int slot) {
+    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+    private static volatile S7control instance = null;
+
+    private S7control() {
         if (s7PLC == null)
             s7PLC = new S7PLC(plcType, ip, port,0,0);
-    } 
+    }
+    public S7control(EPlcType plcType,String ip,int port,int a,int b) {
+        if (s7PLC == null)
+            s7PLC = new S7PLC(plcType, ip, port,a,b);
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7control getinstance() {
+        if (instance == null) {
+            synchronized (S7control.class) {
+                if (instance == null)
+                    instance = new S7control();
+            }
+        }
+        return instance;
+    }
+    
     /**
      * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
      */
@@ -33,7 +57,7 @@
     public boolean CheckConnected() {
         return s7PLC.checkConnected();
     }
-     
+
     /**
      * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
      * 
@@ -156,7 +180,7 @@
         }
     }
 
-
+    
 
 
     private int getIndexFromAddress(String address) {
@@ -181,7 +205,6 @@
     public List<Short> ReadWord(String address, int count) {
         if (s7PLC == null)
             return null;
-
         List<String> addresslist = GetAddressList(address, count, 16);
         try {
             return s7PLC.readInt16(addresslist);
@@ -191,7 +214,13 @@
             return null;
         }
     }
-
+    public byte[] Readbyte(String address, int count) {
+        byte[] byt=new byte[count];
+        int wordcount=((count%2==0)?count/2:count+1);
+        List<Short> word=ReadWord(address,wordcount);
+        
+        return byt;
+    }
     /**
      * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
      * 
@@ -269,6 +298,41 @@
 }
 
 
+
+
+
+    public List<String> readStringsandword(List<String> addressList) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<String> result = new ArrayList<>();
+        for (String address : addressList) {
+            try {
+                if (address.contains("-")) {
+                    address = address.substring(0, address.indexOf("-"));
+
+                    byte[] bytes = s7PLC.readByte(address, 14);
+                    if (bytes != null) {
+                        String str = new String(bytes, StandardCharsets.UTF_8);
+                        result.add(str);
+                    }
+
+                } else {
+                    Short value = s7PLC.readInt16(address);
+                    result.add(value.toString());
+
+                }
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+                result.add(null);
+            }
+        }
+
+        return result;
+    }
+
+
+
 //涓嶈繛缁湴鍧�鍐欏叆Word
     public void WriteWord(List<String> address, List<Short> datas) {
         if (s7PLC == null)
@@ -300,7 +364,7 @@
             glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
         }
         byte[] bytes = Bytes.toArray(glassidlist);
-        WriteByte(addr, bytes);
+        S7control.getinstance().WriteByte(addr, bytes);
     }
 
 //璇诲彇涓嶈繛缁瓀ord
@@ -410,4 +474,11 @@
         }
         return addresslist;
     }
+    public void writeString(String addr,String data) {
+        s7PLC.writeString(addr,data);
+    }
+    
+    public String readStrings(String addr) {
+        return s7PLC.readString(addr);
+    }
 }
diff --git a/LoadGlassModule/src/main/java/com/mes/controller/LoadGlassController.java b/LoadGlassModule/src/main/java/com/mes/controller/LoadGlassController.java
new file mode 100644
index 0000000..57419a0
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/controller/LoadGlassController.java
@@ -0,0 +1,55 @@
+package com.mes.controller;
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.mes.common.Result;
+import com.mes.entity.Tempering;
+import com.mes.entity.UpWorkstation;
+import com.mes.service.LoadGlassService;
+import com.mes.service.TemperingOverService;
+import com.mes.service.TemperingService;
+
+
+@RestController
+@RequestMapping("/LoadGlass")
+
+// TidyUpGlassModule 閽㈠寲妯″潡
+public class LoadGlassController {
+
+    @Autowired
+    private LoadGlassService loadGlassService;
+
+    @PostMapping("/SelectAll") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+    @ResponseBody
+    public Result SelectGlassInfo() {
+        List<UpWorkstation> glass = loadGlassService.selectAll();
+        System.out.println(glass);
+        return Result.seccess(glass);
+    }
+
+    @PostMapping("/insertGlass") //淇敼涓�鏉″伐浣嶄俊鎭�,鎺ユ敹瀹炰緥绫诲瓧娈典负瀹介珮鍘氳啘绯绘暟閲忓伐浣峣d
+    @ResponseBody
+    public void insertGlassinfo(@RequestBody UpWorkstation upwork) {
+        loadGlassService.insertGlass(upwork);
+      
+    }
+
+    @PostMapping("/deleteGlass") //淇敼涓�鏉″伐浣嶇殑鐜荤拑淇℃伅锛屼紶杈撳伐浣峣d灏嗙幓鐠冧俊鎭浉鍏冲瓧娈垫洿鏀逛负null
+    @ResponseBody
+    public void SelectCutTerritory(int upworkid) {
+        loadGlassService.deleteGlass(upworkid);
+    }
+    
+    @PostMapping("/selectPriority") //寮�濮嬩笂鐗囦换鍔�
+    @ResponseBody
+    public void selectPriority() {
+        boolean result = loadGlassService.isCanLoadGlass();
+        if(result==true){
+            loadGlassService.selectPriority();
+        }
+    }
+
+  
+
+}
diff --git a/LoadGlassModule/src/main/java/com/mes/controller/OrderTestController.java b/LoadGlassModule/src/main/java/com/mes/controller/OrderTestController.java
deleted file mode 100644
index aecbd7f..0000000
--- a/LoadGlassModule/src/main/java/com/mes/controller/OrderTestController.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.mes.controller;
-
-import com.mes.mapper.OrderTestMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-//@CrossOrigin  //瑙e喅鍗曚釜controller 璺ㄥ煙闂
-@RestController
-@RequestMapping("/order11111111")
-
-public class OrderTestController {
-    @Autowired
-    private OrderTestMapper orderMapper;
-
-//    @GetMapping //鏌ヨorder琛ㄧ粨鏋滈泦
-//    public Result index(){
-//        return Result.seccess(orderMapper.findAll());
-//
-//    }
-//
-//    @PostMapping  //鎻掑叆
-//    public Integer save(@RequestBody Order order) {
-//        return orderMapper.insert(order);
-//    }
-//
-//    @PostMapping("/update")
-//    public Integer updateOrder(@RequestBody Order order) {
-//        return orderMapper.update(order.getId(),order.getOrderid());
-//    }
-//
-//    @DeleteMapping("/{id}") //鍒犻櫎鏁版嵁
-//    public Integer delete(@PathVariable Integer id) {
-//        return orderMapper.deleteById(id);
-//    }
-
-    
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/controller/userInfo/SysMenuController.java b/LoadGlassModule/src/main/java/com/mes/controller/userInfo/SysMenuController.java
index 6eee09a..aab8fb4 100644
--- a/LoadGlassModule/src/main/java/com/mes/controller/userInfo/SysMenuController.java
+++ b/LoadGlassModule/src/main/java/com/mes/controller/userInfo/SysMenuController.java
@@ -19,9 +19,7 @@
     private SysMenuService sysMenuService;
     @GetMapping
     public Result getMenu(){
-        //MyChannelHandlerPool myChannelHandlerPool = new MyChannelHandlerPool();
-        //myChannelHandlerPool.sendMsg("123");
-        //MyChannelHandlerPool.channelGroup.writeAndFlush( new TextWebSocketFrame("123123"));
+        //鑾峰彇缂撳瓨
         return Result.seccess(sysMenuService.getMenu());
 
     }
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/BigStorageCage.java b/LoadGlassModule/src/main/java/com/mes/entity/BigStorageCage.java
deleted file mode 100644
index d103b46..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/BigStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`big_storage_cage`")
-public class BigStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//澶х悊鐗囩琛╥d
-    private  Integer device_id;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  String enable_state;//鍚敤鐘舵��
-    private  Integer remain_width;//鍓╀綑瀹藉害
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java b/LoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
deleted file mode 100644
index bb1d86e..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_glass_info`")
-public class DownGlassInfo {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鐜荤拑淇℃伅琛╥d
-    private  String flowcardid;//娴佺▼鍗″彿
-    private  Integer sequence;//椤哄簭
-    private  Integer width;//瀹�
-    private  Integer height;//楂�
-    private  Integer thickness;//鍘氬害
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java b/LoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
deleted file mode 100644
index 1e1ff49..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_storage_cage`")
-public class DownStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鍓嶇悊鐗囩琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  String enablestate;//鍚敤鐘舵��
-    private  Integer remainwidth;//鍓╀綑
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java b/LoadGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java
deleted file mode 100644
index 9e26f5f..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_storage_cage_details`")
-public class DownStorageCagedetails {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鍓嶇悊鐗囩鏄庣粏琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  Integer glassid;//鐜荤拑id
-    private  Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
-    private  String flow_card_id;//娴佺▼鍗″彿
-    private  Integer glass_type;//鐜荤拑绫诲瀷
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer temperinglayoutid;//閽㈠寲鐗堝浘id
-    private  Integer tempering_feed_sequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer state;//鐘舵��
-    private  Integer gap;//鐜荤拑闂撮殭
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/LoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
deleted file mode 100644
index 847d157..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_workstation`")
-public class DownWorkstation {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖宸ヤ綅琛╥d
-    private  Integer flowcard_id;//宸ヤ綅id
-    private  String glass_type;//娴佺▼鍗″彿
-    private  Integer width;//璁惧id
-    private  Integer height;//鍚敤鐘舵��
-    private  Integer thickness;//宸ヤ綔鐘舵��
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/OrderTest.java b/LoadGlassModule/src/main/java/com/mes/entity/OrderTest.java
deleted file mode 100644
index e8ea030..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/OrderTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`order`")
-public class OrderTest {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;
-    private  String orderId;
-    private  String recipeNo;
-    private  String largeglassNo;
-    private  String largeglassCompleted;
-    private  String smallglassNo;
-    private  String smallglassCompleted;
-    private  String smallglassProcessing;
-    private  String smallglassWorn;
-    private  String orderStatus;
-    private  String orderMaker;
-    private  String makeTime;
-    private  String updateTime;
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/Tempering.java b/LoadGlassModule/src/main/java/com/mes/entity/Tempering.java
deleted file mode 100644
index 5b61dae..0000000
--- a/LoadGlassModule/src/main/java/com/mes/entity/Tempering.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`tempering_glass_info`")
-public class Tempering {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//閽㈠寲灏忕墖淇℃伅琛╥d
-    private  String flowcard_id;//娴佺▼鍗�
-    private  Integer glass_type;//娴佺▼鍗$幓鐠冪被鍨�
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer filmsid;//鑶滅郴
-    private  Integer ishorizontal;//閽㈠寲鏄惁鎺ュ彈妯斁
-    private  Integer tempering_layout_id;//閽㈠寲鐗堝浘id
-    private  Integer tempering_feed_sequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer x_coordinate;//x鍧愭爣
-    private  Integer y_coordinate;//y鍧愭爣
-    private  Integer angle;//鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
-    private  Integer state;//鐘舵��
-
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/device/InitUtil.java b/LoadGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
new file mode 100644
index 0000000..6d59bd3
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
@@ -0,0 +1,124 @@
+package com.mes.entity.device;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.mes.common.PlcTools.S7control;
+
+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;
+    }
+
+//
+    public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
+
+//        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);
+    }
+
+
+    public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
+
+        // 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);
+    }
+
+
+
+}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java b/LoadGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
new file mode 100644
index 0000000..dcb707e
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
@@ -0,0 +1,95 @@
+package com.mes.entity.device;
+
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import static com.mes.entity.device.InitUtil.readAndUpdateWordValues;
+public class PLCAutoMes extends Thread {
+
+    // // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    // private Configuration config;
+    private static InitUtil initUtil;
+    // public static PlcParameterObject PlcMesObject;
+    // public static PlcParameterObject PlcReadObject;
+    // public static PlcParameterObject PlcframeObject;
+
+    // // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    // MessageHandler customS7Control = new MessageHandler();
+
+    // 鍗曚緥瀹炰緥
+    private static PLCAutoMes instance;
+    // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+    // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+    // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+    // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
+            
+    // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
+            
+    // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
+            
+    // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+
+    // 璋冪敤initword鏂规硶
+
+    // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+    // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+    // public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
+    // public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
+    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+    public static PlcParameterObject PlcMesObject = InitUtil.initword(PlcAlbania);
+    // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+    // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+  
+    // 绉佹湁鏋勯�犲嚱鏁�
+    public PLCAutoMes() throws IOException {
+        //config = new Configuration("config.properties");
+        initUtil = new InitUtil();
+    }
+
+    // 鑾峰彇鍗曚緥瀹炰緥
+    public static synchronized PLCAutoMes getInstance() throws IOException {
+        if (instance == null) {
+            instance = new PLCAutoMes();
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            // System.out.println(jsonFilePath);
+
+            //readAndUpdateWordValues(PlcReadObject);
+            readAndUpdateWordValues(PlcMesObject);
+            //readAndUpdateWordValues(PlcframeObject);
+            // readAndUpdateWordValues(PlcframeObject);
+
+            // readAndUpdateWordValues(plcStateObject);
+            // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
+            // // System.out.println(index);
+            // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
+            // // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
+            // List<String> addresses = new ArrayList<>();
+            // addresses.add("FeedID");
+            // addresses.add("AddStart");
+            // // System.out.println(addresses);
+            // // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
+            // List<String> addresses2 = new ArrayList<>();
+            // addresses2.add("FeedID");
+            // addresses2.add("FeedCarStatus");
+
+            //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
+
+        }
+    }
+}
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
new file mode 100644
index 0000000..78846f9
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
@@ -0,0 +1,77 @@
+package com.mes.entity.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 void setAddressIndex(int addressindex) {
+            this.addressIndex = addressindex;
+        } 
+    }
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
new file mode 100644
index 0000000..977a13c
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.entity.device;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcBitObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    private ArrayList<PlcBitInfo> plcBitList;
+
+    /**
+     * @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 ArrayList<PlcBitInfo> getBitList() {
+        return plcBitList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcBitInfo getPlcBit(String codeid) {
+        if (plcBitList != null) {
+            for (PlcBitInfo plcbitInfo : plcBitList) {
+                if (plcbitInfo.getCodeId().equals(codeid))
+                    return plcbitInfo;
+            }
+            return null;
+        } else
+            return null;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public List<Boolean> getPlcBitValues(List<String> codeids) {
+        List<Boolean> arrayList = new ArrayList<>();
+        if (plcBitList != null) {
+            Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+            for (PlcBitInfo plcBitInfo : plcBitList) {
+                if (codeids.contains(plcBitInfo.getCodeId().toString())) {
+                    resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
+                }
+            }
+            for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+                Boolean value = resultMap.get(codeId);
+                if (value != null) {
+                    arrayList.add(value);
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            for (PlcBitInfo plcBitInfo : plcBitList) {
+                if (plcBitInfo.getCodeId().equals(codeId)) {
+                    int index = plcBitInfo.getAddressIndex();
+                    String address = plcBitInfo.getAddress(index);
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+                }
+            }
+        }
+        return addressList;
+    }
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     * 
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcBit(PlcBitInfo param) {
+        if (plcBitList != null)
+            plcBitList.add(param);
+        else {
+            plcBitList = new ArrayList<PlcBitInfo>();
+            plcBitList.add(param);
+        }
+    }
+
+    /**
+     * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+     * 
+     * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+     */
+    public void setPlcBitList(List<Boolean> plcValueArray) {
+        if (plcBitList != null) {
+            for (PlcBitInfo plcbitInfo : plcBitList) {
+                plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
+            }
+        }
+    }
+   
+
+   
+}
\ No newline at end of file
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
new file mode 100644
index 0000000..b4a2051
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.entity.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;
+        }
+
+        if (addressLength == 2 ) {
+            int wordindex = index;
+
+            return stringdatas[0] + "." + wordindex;
+        }
+        if (addressLength == 14 ) {
+            int wordindex = index;
+            //int newIndex = wordindex + 13;
+            return stringdatas[0] + "." + wordindex ;
+        }
+        return null;
+    }
+
+    public int getPlcAddress() {
+
+        return addressIndex;
+    }
+    public String getAddress() {
+       return getAddress(this.addressIndex);
+    }
+}
\ No newline at end of file
diff --git a/LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
new file mode 100644
index 0000000..5355db5
--- /dev/null
+++ b/LoadGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.entity.device;
+
+import java.lang.reflect.Array;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcParameterObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    private ArrayList<PlcParameterInfo> plcParameterList;
+
+    /**
+     * @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 ArrayList<PlcParameterInfo> getPlcParameterList() {
+        return plcParameterList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcParameterInfo getPlcParameter(String codeid) {
+        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 (plcParameterList != 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 = resultMap.get(codeId);
+                if (plcParameterInfo != null) {
+                    arrayList.add(plcParameterInfo.getValue());
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (plcParameterInfo.getCodeId().equals(codeId)) {
+                    int index = plcParameterInfo.getAddressIndex();
+                    String address = plcParameterInfo.getAddress(index);
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+                }
+            }
+        }
+        return addressList;
+    }
+
+
+
+
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     * 
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcParameter(PlcParameterInfo 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 (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()==14) {
+                    plcParameterInfo.setValue((byteToHexString(valueList)));
+                }
+
+                else
+                {
+                    String valuestr = new String(valueList);
+                    plcParameterInfo.setValue(valuestr);
+                }
+            }
+        }
+    }
+     /**
+     * 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; //鍥犱负byte鍗�4涓瓧鑺傦紝鎵�浠ヨ璁$畻鍋忕Щ閲�
+            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;
+   }
+
+    public static String byteToHexString(byte[] bytes) {
+
+        String str = new String(bytes, StandardCharsets.UTF_8);
+        return str;
+    }
+
+
+}
\ No newline at end of file
diff --git a/LoadGlassModule/src/main/java/com/mes/mapper/LoadGlassMapper.java b/LoadGlassModule/src/main/java/com/mes/mapper/LoadGlassMapper.java
index 8db4eff..cfcb251 100644
--- a/LoadGlassModule/src/main/java/com/mes/mapper/LoadGlassMapper.java
+++ b/LoadGlassModule/src/main/java/com/mes/mapper/LoadGlassMapper.java
@@ -1,18 +1,24 @@
 package com.mes.mapper;
-
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.entity.OrderTest;
+import java.util.List;
 import org.apache.ibatis.annotations.*;
-
+import com.mes.entity.UpWorkstation;
 @Mapper
 public interface LoadGlassMapper extends BaseMapper<UpWorkstation> {
     //鏄剧ず鐩墠宸ヤ綅鐜荤拑淇℃伅
     @Select("SELECT * FROM up_workstation")
-    UpWorkstation SelectALL();
+    List<UpWorkstation> selectALL();
     //鍒犻櫎宸ヤ綅鐨勭幓鐠冧俊鎭�
-    @Delete("DELETE FROM up_workstation where  workstation_id=#{id}")
-    void DeleteALL(int id );
+    @Update("UPDATE `hangzhoumes`.`up_workstation` SET   `pattern_width` =NULL, `pattern_heigth` = NULL, `pattern_thickness` = NULL, `films_id` = NULL, `number` = NULL WHERE `workstation_id`=#{id}")
+    void deleteGlass(int id );
     //澧炲姞涓婄墖淇℃伅
-    @Insert ("INSERT INTO up_workstation (pattern_width,pattern_heigth,pattern_thickness)value(#{patternwidth},#{patternheigth},#{patternthickness}where workstation_id=#{workstationid) ")
-    void InsertALL(Double patternwidth,Double patternheigth,Double patternthickness,int workstationid);
+    @Update ("UPDATE `hangzhoumes`.`up_workstation` SET   `pattern_width` = #{upwork.patternwidth}, `pattern_heigth` = #{upwork.patternheigth}, `pattern_thickness` =#{upwork.patternthickness}, `films_id` =#{upwork.filmsid}, `number` = #{upwork.number} WHERE `id` = #{upwork.workstationid}; ")
+    void insertGlass(UpWorkstation upwork);
+    //鏄惁鍙戣捣鍚哥墖
+    @Select("SELECT * FROM up_workstation where  workstation_id=#{id}")
+    UpWorkstation selectAdd(int id);
+    //鍒ゆ柇浼樺厛宸ヤ綅鍚哥墖
+    @Select("select b.layout_sequence from up_workstation a left join up_patten_usage b on a.pattern_width=b.width and a.pattern_heigth=b.width and a.pattern_thickness=b.thickness where a.workstation_id=#{id}")
+    int selectPriority(int id);
+    
 }
diff --git a/LoadGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java b/LoadGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java
deleted file mode 100644
index d12d4ce..0000000
--- a/LoadGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mes.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.entity.OrderTest;
-import org.apache.ibatis.annotations.*;
-
-@Mapper
-public interface OrderTestMapper extends BaseMapper<OrderTest> {
-
-//    @Select("select * from `order`")
-//    List<Order> findAll();
-//
-//    @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
-//    Integer insert(Order order);
-//
-//    @Delete("delete from `order` where id=#{id}")
-//    Integer deleteById(@Param("id") Integer id);
-//
-//    @Update("update `order` set order_id=#{order_id} where id=#{id}")
-//    Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/service/IOrderService.java b/LoadGlassModule/src/main/java/com/mes/service/IOrderService.java
deleted file mode 100644
index 9e44ceb..0000000
--- a/LoadGlassModule/src/main/java/com/mes/service/IOrderService.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package com.mes.service;public interface IOrderService {
-}
diff --git a/LoadGlassModule/src/main/java/com/mes/service/LoadGlassService.java b/LoadGlassModule/src/main/java/com/mes/service/LoadGlassService.java
index c990244..ae21fd0 100644
--- a/LoadGlassModule/src/main/java/com/mes/service/LoadGlassService.java
+++ b/LoadGlassModule/src/main/java/com/mes/service/LoadGlassService.java
@@ -1,40 +1,69 @@
+package com.mes.service;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.example.springboot.component.PLCAutoMes;
-import com.example.springboot.component.S7control;
-import com.example.springboot.entity.device.PlcParameterObject;
+import com.mes.entity.device.PLCAutoMes;
+import com.mes.common.PlcTools.S7control;
+import com.mes.entity.device.PlcParameterObject;
 import com.google.common.primitives.Bytes;
 import com.mes.entity.GlassInfo;
 import com.mes.entity.UpWorkstation;
 import com.mes.mapper.LoadGlassMapper;
-import com.mes.mapper.TemperingMapper;
 
 @Service
 public class LoadGlassService {
     @Autowired
     private com.mes.common.PlcTools.S7control s7control;
     private LoadGlassMapper LoadGlassMapper;
+    PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
     //鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅
-    public GlassInfo selectAll() {
-        GlassInfo glassInfo = LoadGlassMapper.SelectALL();
+    public List<UpWorkstation> selectAll() {
+        List<UpWorkstation> glassInfo= LoadGlassMapper.selectALL();
         return glassInfo;
     }
     //澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�
-    public void insertGlass(UpWorkstation upwork) {
-        LoadGlassMapper.insertGlass(upwork.Getpatternwidth(),upwork.getPatternheigth(),upwork.getPatternthickness(),1);
+    public void insertGlass(UpWorkstation upwork) { 
+        LoadGlassMapper.insertGlass(upwork.getPatternwidth(),upwork.getPatternheigth(),upwork.getPatternthickness(),upwork.getWorkstationid());
     }  
     //鍒犻櫎浜哄伐鎼蛋鐨勭幓鐠冧俊鎭�
-    public void deleteGlass(String id) {
+    public void deleteGlass(int id) {
         LoadGlassMapper.deleteGlass(id);
     }
     //鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
     public boolean isCanLoadGlass() {
-        boolean result=s7control.WriteWord("100.10", 1);
-        return result;
+        String loadstate=plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
+        if(loadstate.equals("1")) {
+            return true;
+        }else{
+            return false;
+        }
+        
     }
+    //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
+    public void selectPriority() {
+        int loadid1=LoadGlassMapper.selectPriority(1);
+        int loadid2=LoadGlassMapper.selectPriority(2);
+        //鍒ゆ柇涓�浜屽彿宸ヤ綅鍝竟鐨勯『搴忔洿鍏�
+        if(loadid1>loadid2) {
+            s7control.WriteWord("DB100.10", (short)2);
+        }else if(loadid1==loadid2){
+            //褰撲袱涓伐浣嶄笂鐨勭幓鐠冩暟鐩稿悓鏃讹紝鍒ゆ柇鍝釜宸ヤ綅涓婄殑鐜荤拑鏁版洿灏�,浼樺厛娓呯┖涓�涓灦瀛�
+            int glassnum1=plcmes.getPlcParameter("鐜荤拑鏁�").getValue();
+            int glassnum2=plcmes.getPlcParameter("鐜荤拑鏁�").getValue();
+            if(glassnum1>glassnum2){
+                s7control.WriteWord("DB100.10", (short)2);
+            }else{
+                s7control.WriteWord("DB100.10", (short)1);
+            }
+        }else{
+            s7control.WriteWord("DB100.10", (short)1);
+        }
+    }
+   
+
+
 
 
 }
diff --git a/LoadGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java b/LoadGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java
deleted file mode 100644
index 5274aa6..0000000
--- a/LoadGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mes.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.entity.OrderTest;
-import com.mes.mapper.OrderTestMapper;
-import com.mes.service.IOrderService;
-import org.springframework.stereotype.Service;
-
-@Service
-@DS("erp_sd")
-public class OrderServiceImpl extends ServiceImpl<OrderTestMapper, OrderTest> implements IOrderService {
-}
diff --git a/LoadGlassModule/src/main/resources/JsonFile/PlcAlbania.json b/LoadGlassModule/src/main/resources/JsonFile/PlcAlbania.json
new file mode 100644
index 0000000..ab65b19
--- /dev/null
+++ b/LoadGlassModule/src/main/resources/JsonFile/PlcAlbania.json
@@ -0,0 +1,414 @@
+{
+   "plcAddressBegin":"DB14.0",
+   "plcAddressLenght":"208",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "PLCToMES",  
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "IDStatus1",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "IDStatus2",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "IDStatus3",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus4",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus5",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "IDStatus6",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID1",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID2",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID3",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID4",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID5",
+          "addressIndex":"22",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID6",
+          "addressIndex":"24",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "GaToMES",
+          "addressIndex":"26",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "Height",
+          "addressIndex":"28",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "width",
+          "addressIndex":"30",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "ExportTOMES1",
+          "addressIndex":"32",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "ExportToMES2",
+          "addressIndex":"34",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESToPLC",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID1",
+          "addressIndex":"38",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID2",
+          "addressIndex":"54",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID3",
+          "addressIndex":"70",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID4",
+          "addressIndex":"86",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID5",
+          "addressIndex":"102",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID6",
+          "addressIndex":"118",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESToPLCStart1",
+          "addressIndex":"134",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },{
+         "codeId": "MESToPLCStart2",
+         "addressIndex":"136",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStart3",
+         "addressIndex":"138",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart4",
+         "addressIndex":"140",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart5",
+         "addressIndex":"142",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart6",
+         "addressIndex":"144",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget1",
+         "addressIndex":"146",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget2",
+         "addressIndex":"148",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget3",
+         "addressIndex":"150",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget4",
+         "addressIndex":"152",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget5",
+         "addressIndex":"154",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget6",
+         "addressIndex":"156",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus1",
+         "addressIndex":"158",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus2",
+         "addressIndex":"160",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus3",
+         "addressIndex":"162",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus4",
+         "addressIndex":"164",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus5",
+         "addressIndex":"166",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus6",
+         "addressIndex":"168",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToGaStatus",
+         "addressIndex":"170",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01Err",
+         "addressIndex":"172",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02Err",
+         "addressIndex":"174",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Err",
+         "addressIndex":"176",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Err",
+         "addressIndex":"178",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Err",
+         "addressIndex":"180",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace1",
+         "addressIndex":"182",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace2",
+         "addressIndex":"184",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace3",
+         "addressIndex":"186",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Position",
+         "addressIndex":"188",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Position",
+         "addressIndex":"190",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Position",
+         "addressIndex":"192",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "DeviceState",
+         "addressIndex":"194",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "AllFVRun",
+         "addressIndex":"196",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01State",
+         "addressIndex":"198",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02State",
+         "addressIndex":"200",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01State",
+         "addressIndex":"202",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01State",
+         "addressIndex":"204",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02State",
+         "addressIndex":"206",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+   ]
+}
diff --git a/TemperingGlassModule/src/main/JsonFile/PlcAlbania.json b/TemperingGlassModule/src/main/JsonFile/PlcAlbania.json
new file mode 100644
index 0000000..ab65b19
--- /dev/null
+++ b/TemperingGlassModule/src/main/JsonFile/PlcAlbania.json
@@ -0,0 +1,414 @@
+{
+   "plcAddressBegin":"DB14.0",
+   "plcAddressLenght":"208",
+   "dataType":"word",
+   "parameteInfor":[
+      {
+         "codeId": "PLCToMES",  
+         "addressIndex":"0",
+         "addressLenght":"2", 
+         "ratio":"1", 
+         "unit":"m/min"    
+      },
+      {
+          "codeId": "IDStatus1",
+          "addressIndex":"2",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"      
+       },
+       {
+          "codeId": "IDStatus2",
+          "addressIndex":"4",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"m/min"       
+       },
+       {
+          "codeId": "IDStatus3",
+          "addressIndex":"6",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus4",
+          "addressIndex":"8",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "IDStatus5",
+          "addressIndex":"10",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "IDStatus6",
+          "addressIndex":"12",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID1",
+          "addressIndex":"14",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID2",
+          "addressIndex":"16",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID3",
+          "addressIndex":"18",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID4",
+          "addressIndex":"20",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "StautsID5",
+          "addressIndex":"22",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "StautsID6",
+          "addressIndex":"24",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "GaToMES",
+          "addressIndex":"26",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "Height",
+          "addressIndex":"28",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "width",
+          "addressIndex":"30",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "ExportTOMES1",
+          "addressIndex":"32",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       }
+       ,
+       {
+          "codeId": "ExportToMES2",
+          "addressIndex":"34",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESToPLC",
+          "addressIndex":"36",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID1",
+          "addressIndex":"38",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       } ,
+       {
+          "codeId": "MESID2",
+          "addressIndex":"54",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID3",
+          "addressIndex":"70",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID4",
+          "addressIndex":"86",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID5",
+          "addressIndex":"102",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESID6",
+          "addressIndex":"118",
+          "addressLenght":"14",
+          "ratio":"1",
+          "unit":"mm/S"
+       },
+       {
+          "codeId": "MESToPLCStart1",
+          "addressIndex":"134",
+          "addressLenght":"2",
+          "ratio":"1",
+          "unit":"mm/S"
+       },{
+         "codeId": "MESToPLCStart2",
+         "addressIndex":"136",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStart3",
+         "addressIndex":"138",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart4",
+         "addressIndex":"140",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart5",
+         "addressIndex":"142",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+      ,{
+         "codeId": "MESToPLCStart6",
+         "addressIndex":"144",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget1",
+         "addressIndex":"146",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget2",
+         "addressIndex":"148",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget3",
+         "addressIndex":"150",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget4",
+         "addressIndex":"152",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget5",
+         "addressIndex":"154",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCTarget6",
+         "addressIndex":"156",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus1",
+         "addressIndex":"158",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus2",
+         "addressIndex":"160",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus3",
+         "addressIndex":"162",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus4",
+         "addressIndex":"164",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus5",
+         "addressIndex":"166",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToPLCStatus6",
+         "addressIndex":"168",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "MESToGaStatus",
+         "addressIndex":"170",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01Err",
+         "addressIndex":"172",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02Err",
+         "addressIndex":"174",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Err",
+         "addressIndex":"176",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Err",
+         "addressIndex":"178",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Err",
+         "addressIndex":"180",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace1",
+         "addressIndex":"182",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace2",
+         "addressIndex":"184",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "ErrSpace3",
+         "addressIndex":"186",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01Position",
+         "addressIndex":"188",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01Position",
+         "addressIndex":"190",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02Position",
+         "addressIndex":"192",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "DeviceState",
+         "addressIndex":"194",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "AllFVRun",
+         "addressIndex":"196",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A01State",
+         "addressIndex":"198",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "A02State",
+         "addressIndex":"200",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "B01State",
+         "addressIndex":"202",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C01State",
+         "addressIndex":"204",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      },{
+         "codeId": "C02State",
+         "addressIndex":"206",
+         "addressLenght":"2",
+         "ratio":"1",
+         "unit":"mm/S"
+      }
+   ]
+}
diff --git a/TemperingGlassModule/src/main/java/com/mes/MesApplication.java b/TemperingGlassModule/src/main/java/com/mes/MesApplication.java
index 9cc84b5..79565d5 100644
--- a/TemperingGlassModule/src/main/java/com/mes/MesApplication.java
+++ b/TemperingGlassModule/src/main/java/com/mes/MesApplication.java
@@ -1,11 +1,8 @@
 package com.mes;
-
-import com.mes.common.PlcTools.S7object;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
-import org.springframework.transaction.annotation.Transactional;
 
 //springboot 鍚姩鍏ュ彛
 @SpringBootApplication
diff --git a/TemperingGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java b/TemperingGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
index 9cc9e37..8ffee41 100644
--- a/TemperingGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
+++ b/TemperingGlassModule/src/main/java/com/mes/common/PlcTools/S7control.java
@@ -1,7 +1,9 @@
 package com.mes.common.PlcTools;
 
-
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
 import java.nio.charset.StandardCharsets;
+import java.sql.Time;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -9,15 +11,37 @@
 import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
 import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
 import com.google.common.primitives.Bytes;
+import org.apache.ibatis.jdbc.Null;
 
 public class S7control {
 
     S7PLC s7PLC; // PLC閫氳绫诲疄渚�
-    
-    public S7control(EPlcType plcType, String ip, int port, int rack, int slot) {
+    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+    private static volatile S7control instance = null;
+
+    private S7control() {
         if (s7PLC == null)
             s7PLC = new S7PLC(plcType, ip, port,0,0);
-    } 
+    }
+    public S7control(EPlcType plcType,String ip,int port,int a,int b) {
+        if (s7PLC == null)
+            s7PLC = new S7PLC(plcType, ip, port,a,b);
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7control getinstance() {
+        if (instance == null) {
+            synchronized (S7control.class) {
+                if (instance == null)
+                    instance = new S7control();
+            }
+        }
+        return instance;
+    }
+    
     /**
      * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
      */
@@ -33,7 +57,7 @@
     public boolean CheckConnected() {
         return s7PLC.checkConnected();
     }
-     
+
     /**
      * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
      * 
@@ -156,7 +180,7 @@
         }
     }
 
-
+    
 
 
     private int getIndexFromAddress(String address) {
@@ -181,7 +205,6 @@
     public List<Short> ReadWord(String address, int count) {
         if (s7PLC == null)
             return null;
-
         List<String> addresslist = GetAddressList(address, count, 16);
         try {
             return s7PLC.readInt16(addresslist);
@@ -191,7 +214,13 @@
             return null;
         }
     }
-
+    public byte[] Readbyte(String address, int count) {
+        byte[] byt=new byte[count];
+        int wordcount=((count%2==0)?count/2:count+1);
+        List<Short> word=ReadWord(address,wordcount);
+        
+        return byt;
+    }
     /**
      * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
      * 
@@ -269,6 +298,41 @@
 }
 
 
+
+
+
+    public List<String> readStringsandword(List<String> addressList) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<String> result = new ArrayList<>();
+        for (String address : addressList) {
+            try {
+                if (address.contains("-")) {
+                    address = address.substring(0, address.indexOf("-"));
+
+                    byte[] bytes = s7PLC.readByte(address, 14);
+                    if (bytes != null) {
+                        String str = new String(bytes, StandardCharsets.UTF_8);
+                        result.add(str);
+                    }
+
+                } else {
+                    Short value = s7PLC.readInt16(address);
+                    result.add(value.toString());
+
+                }
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+                result.add(null);
+            }
+        }
+
+        return result;
+    }
+
+
+
 //涓嶈繛缁湴鍧�鍐欏叆Word
     public void WriteWord(List<String> address, List<Short> datas) {
         if (s7PLC == null)
@@ -300,7 +364,7 @@
             glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
         }
         byte[] bytes = Bytes.toArray(glassidlist);
-        WriteByte(addr, bytes);
+        S7control.getinstance().WriteByte(addr, bytes);
     }
 
 //璇诲彇涓嶈繛缁瓀ord
@@ -410,4 +474,11 @@
         }
         return addresslist;
     }
+    public void writeString(String addr,String data) {
+        s7PLC.writeString(addr,data);
+    }
+    
+    public String readStrings(String addr) {
+        return s7PLC.readString(addr);
+    }
 }
diff --git a/TemperingGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/TemperingGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
index 1e45c2c..703a863 100644
--- a/TemperingGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
+++ b/TemperingGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
@@ -16,7 +16,7 @@
     public void run(ApplicationArguments args) throws Exception {
         // TODO Auto-generated method stub
         //
-        System.out.println("鍚姩瀹屾垚");
+        System.out.println("鍚姩瀹屾垚Tempering");
  
  
     }
diff --git a/TemperingGlassModule/src/main/java/com/mes/controller/OrderTestController.java b/TemperingGlassModule/src/main/java/com/mes/controller/OrderTestController.java
deleted file mode 100644
index aecbd7f..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/controller/OrderTestController.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package com.mes.controller;
-
-import com.mes.mapper.OrderTestMapper;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-//@CrossOrigin  //瑙e喅鍗曚釜controller 璺ㄥ煙闂
-@RestController
-@RequestMapping("/order11111111")
-
-public class OrderTestController {
-    @Autowired
-    private OrderTestMapper orderMapper;
-
-//    @GetMapping //鏌ヨorder琛ㄧ粨鏋滈泦
-//    public Result index(){
-//        return Result.seccess(orderMapper.findAll());
-//
-//    }
-//
-//    @PostMapping  //鎻掑叆
-//    public Integer save(@RequestBody Order order) {
-//        return orderMapper.insert(order);
-//    }
-//
-//    @PostMapping("/update")
-//    public Integer updateOrder(@RequestBody Order order) {
-//        return orderMapper.update(order.getId(),order.getOrderid());
-//    }
-//
-//    @DeleteMapping("/{id}") //鍒犻櫎鏁版嵁
-//    public Integer delete(@PathVariable Integer id) {
-//        return orderMapper.deleteById(id);
-//    }
-
-    
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/controller/TemperingController.java b/TemperingGlassModule/src/main/java/com/mes/controller/TemperingController.java
new file mode 100644
index 0000000..8fa7876
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/controller/TemperingController.java
@@ -0,0 +1,51 @@
+package com.mes.controller;
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import com.mes.common.Result;
+import com.mes.entity.Tempering;
+import com.mes.service.TemperingOverService;
+import com.mes.service.TemperingService;
+
+
+@RestController
+@RequestMapping("/Tempering")
+
+// TidyUpGlassModule 閽㈠寲妯″潡
+public class TemperingController {
+
+    @Autowired
+    private TemperingService temperingService;
+
+    @Autowired
+    private TemperingOverService temperingOverService;
+
+    @GetMapping("/SelectWaitingGlass") // 鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�
+    @ResponseBody
+    public Result SelectWaitingGlass(@RequestParam(name = "ProcessId", required = false) String ProcessId) {
+        List<Tempering> glass = temperingService.SelectWaitingGlass();
+        System.out.println(glass);
+        return Result.seccess(glass);
+    }
+
+    @GetMapping("/SelectIntoGlass") // 鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�
+    @ResponseBody
+    public Result SelectIntoGlass(String ProcessId) {
+        List<Tempering> glass = temperingService.SelectIntoGlass();
+        System.out.println(glass);
+        return Result.seccess(glass);
+    }
+
+    @GetMapping("/SelectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
+    @ResponseBody
+    public Result SelectOutGlass(String ProcessId) {
+        List<Tempering> glass = temperingOverService.SelectOutGlass();
+        System.out.println(glass);
+        return Result.seccess(glass);
+    }
+
+
+  
+
+}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/BigStorageCage.java b/TemperingGlassModule/src/main/java/com/mes/entity/BigStorageCage.java
deleted file mode 100644
index d103b46..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/BigStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`big_storage_cage`")
-public class BigStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//澶х悊鐗囩琛╥d
-    private  Integer device_id;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  String enable_state;//鍚敤鐘舵��
-    private  Integer remain_width;//鍓╀綑瀹藉害
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/BigStorageCageDetails.java b/TemperingGlassModule/src/main/java/com/mes/entity/BigStorageCageDetails.java
deleted file mode 100644
index 3dd0188..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/BigStorageCageDetails.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`big_storage_cage_details`")
-public class BigStorageCageDetails {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//澶х悊鐗囩璇︽儏琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  Integer glassid;//鐜荤拑id
-    private  Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
-    private  String flowcardid;//娴佺▼鍗″彿
-    private  Integer glasstype;//鐜荤拑绫诲瀷
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer temperinglayoutid;//閽㈠寲鐗堝浘id
-    private  Integer temperingfeedsequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer state;//鐘舵��
-    private  Integer gap;//鐜荤拑闂撮殭
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java b/TemperingGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
deleted file mode 100644
index bb1d86e..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/DownGlassInfo.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_glass_info`")
-public class DownGlassInfo {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鐜荤拑淇℃伅琛╥d
-    private  String flowcardid;//娴佺▼鍗″彿
-    private  Integer sequence;//椤哄簭
-    private  Integer width;//瀹�
-    private  Integer height;//楂�
-    private  Integer thickness;//鍘氬害
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/DownStorageCage.java b/TemperingGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
deleted file mode 100644
index 1e1ff49..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/DownStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_storage_cage`")
-public class DownStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鍓嶇悊鐗囩琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  String enablestate;//鍚敤鐘舵��
-    private  Integer remainwidth;//鍓╀綑
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java b/TemperingGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java
deleted file mode 100644
index 9e26f5f..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/DownStorageCagedetails.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_storage_cage_details`")
-public class DownStorageCagedetails {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖鍓嶇悊鐗囩鏄庣粏琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  Integer glassid;//鐜荤拑id
-    private  Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
-    private  String flow_card_id;//娴佺▼鍗″彿
-    private  Integer glass_type;//鐜荤拑绫诲瀷
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Integer temperinglayoutid;//閽㈠寲鐗堝浘id
-    private  Integer tempering_feed_sequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer state;//鐘舵��
-    private  Integer gap;//鐜荤拑闂撮殭
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/DownWorkstation.java b/TemperingGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
deleted file mode 100644
index 847d157..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/DownWorkstation.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`down_workstation`")
-public class DownWorkstation {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//涓嬬墖宸ヤ綅琛╥d
-    private  Integer flowcard_id;//宸ヤ綅id
-    private  String glass_type;//娴佺▼鍗″彿
-    private  Integer width;//璁惧id
-    private  Integer height;//鍚敤鐘舵��
-    private  Integer thickness;//宸ヤ綔鐘舵��
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/EdgStorageCage.java b/TemperingGlassModule/src/main/java/com/mes/entity/EdgStorageCage.java
deleted file mode 100644
index 9dcf7eb..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/EdgStorageCage.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`edg_storage_cage`")
-public class EdgStorageCage {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//纾ㄨ竟鍓嶇悊鐗囩琛╥d
-    private  Integer flowcard_id;//璁惧id
-    private  Integer glass_type;//鏍呮牸鍙�
-    private  String height;//鍚敤鐘舵��
-    private  Integer thickness;//鍓╀綑
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/EdgStorageCageDetails.java b/TemperingGlassModule/src/main/java/com/mes/entity/EdgStorageCageDetails.java
deleted file mode 100644
index 6cf60bd..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/EdgStorageCageDetails.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`edg_storage_cage_details`")
-public class EdgStorageCageDetails {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;//纾ㄨ竟鍓嶇悊鐗囩璇︽儏琛╥d
-    private  Integer deviceid;//璁惧id
-    private  Integer slot;//鏍呮牸鍙�
-    private  Integer glassid;//鐜荤拑id
-    private  Integer sequence;//灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
-    private  String flowcardid;//娴佺▼鍗″彿
-    private  Integer glasstype;//鐜荤拑绫诲瀷
-    private  Double width;//瀹�
-    private  Double height;//楂�
-    private  Double thickness;//鍘氬害
-    private  Double edgwidth;//纾ㄥ墠瀹�
-    private  Double edgheight;//纾ㄥ墠楂�
-    private  Integer temperinglayoutid;//閽㈠寲鐗堝浘id
-    private  Integer temperingfeedsequence;//閽㈠寲鐗堝浘鐗囧簭
-    private  Integer patternsequence;//鍘熺墖椤哄簭
-    private  Integer state;//鐘舵�� 
-    private  Integer gap;//鐜荤拑闂撮殭
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/OrderTest.java b/TemperingGlassModule/src/main/java/com/mes/entity/OrderTest.java
deleted file mode 100644
index e8ea030..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/entity/OrderTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package com.mes.entity;
-
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import lombok.Data;
-
-@Data  //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
-@TableName("`order`")
-public class OrderTest {
-    @TableId(type = IdType.AUTO)
-    private  Integer id;
-    private  String orderId;
-    private  String recipeNo;
-    private  String largeglassNo;
-    private  String largeglassCompleted;
-    private  String smallglassNo;
-    private  String smallglassCompleted;
-    private  String smallglassProcessing;
-    private  String smallglassWorn;
-    private  String orderStatus;
-    private  String orderMaker;
-    private  String makeTime;
-    private  String updateTime;
-
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/device/InitUtil.java b/TemperingGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
new file mode 100644
index 0000000..6d59bd3
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/entity/device/InitUtil.java
@@ -0,0 +1,124 @@
+package com.mes.entity.device;
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import com.mes.common.PlcTools.S7control;
+
+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;
+    }
+
+//
+    public static void readAndUpdateBitValues(PlcBitObject plcBitObject) {
+
+//        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);
+    }
+
+
+    public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) {
+
+        // 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);
+    }
+
+
+
+}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java b/TemperingGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
new file mode 100644
index 0000000..dcb707e
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/entity/device/PLCAutoMes.java
@@ -0,0 +1,95 @@
+package com.mes.entity.device;
+
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import static com.mes.entity.device.InitUtil.readAndUpdateWordValues;
+public class PLCAutoMes extends Thread {
+
+    // // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+    // private Configuration config;
+    private static InitUtil initUtil;
+    // public static PlcParameterObject PlcMesObject;
+    // public static PlcParameterObject PlcReadObject;
+    // public static PlcParameterObject PlcframeObject;
+
+    // // 鍒涘缓涓�涓嚜瀹氫箟鐨� S7 鎺у埗鍣ㄦ秷鎭鐞嗗櫒瀵硅薄
+    // MessageHandler customS7Control = new MessageHandler();
+
+    // 鍗曚緥瀹炰緥
+    private static PLCAutoMes instance;
+    // private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
+    private static String PlcAlbania = PLCAutoMes.class.getResource("/JsonFile/PlcAlbania.json").getPath();
+    // private static String PlcRead = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
+    // private static String Plcframe = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
+    // private static String PlcParameter = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcParameter.json").getPath();
+            
+    // private static String PlcSign = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcSign.json").getPath();
+            
+    // private static String PlcState = PLCAutomaticParameterSettingReview2.class.getResource("/JsonFile/PlcState.json").getPath();
+            
+    // private static String PlcAlarm = PLCAutoMes.class.getResource("/JsonFile/PlcAlarm.json").getPath();
+    // private static String PlcTest = PLCAutoMes.class.getResource("/JsonFile/PlcTest.json").getPath();
+
+    // 璋冪敤initword鏂规硶
+
+    // public static PlcParameterObject plcParameterObject = initUtil.initword(PlcParameter);
+    // public static PlcBitObject plcPlcTest = initUtil.initbit(PlcTest);
+    // public static PlcBitObject  plcBitObject = initUtil.initbit(PlcSign);
+    // public static PlcParameterObject  plcStateObject= initUtil.initword(PlcState);
+    // public static PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+    public static PlcParameterObject PlcMesObject = InitUtil.initword(PlcAlbania);
+    // public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+    // public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+  
+    // 绉佹湁鏋勯�犲嚱鏁�
+    public PLCAutoMes() throws IOException {
+        //config = new Configuration("config.properties");
+        initUtil = new InitUtil();
+    }
+
+    // 鑾峰彇鍗曚緥瀹炰緥
+    public static synchronized PLCAutoMes getInstance() throws IOException {
+        if (instance == null) {
+            instance = new PLCAutoMes();
+        }
+        return instance;
+    }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            // System.out.println(jsonFilePath);
+
+            //readAndUpdateWordValues(PlcReadObject);
+            readAndUpdateWordValues(PlcMesObject);
+            //readAndUpdateWordValues(PlcframeObject);
+            // readAndUpdateWordValues(PlcframeObject);
+
+            // readAndUpdateWordValues(plcStateObject);
+            // int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
+            // // System.out.println(index);
+            // PlcMesObject.getPlcParameter("AddStart").getAddress(index);
+            // // System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
+            // List<String> addresses = new ArrayList<>();
+            // addresses.add("FeedID");
+            // addresses.add("AddStart");
+            // // System.out.println(addresses);
+            // // System.out.println(PlcMesObject.getPlcParameterValues(addresses));
+            // List<String> addresses2 = new ArrayList<>();
+            // addresses2.add("FeedID");
+            // addresses2.add("FeedCarStatus");
+
+            //System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
+
+        }
+    }
+}
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
new file mode 100644
index 0000000..78846f9
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitInfo.java
@@ -0,0 +1,77 @@
+package com.mes.entity.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 void setAddressIndex(int addressindex) {
+            this.addressIndex = addressindex;
+        } 
+    }
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
new file mode 100644
index 0000000..977a13c
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.entity.device;
+
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcBitObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    private ArrayList<PlcBitInfo> plcBitList;
+
+    /**
+     * @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 ArrayList<PlcBitInfo> getBitList() {
+        return plcBitList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcBitInfo getPlcBit(String codeid) {
+        if (plcBitList != null) {
+            for (PlcBitInfo plcbitInfo : plcBitList) {
+                if (plcbitInfo.getCodeId().equals(codeid))
+                    return plcbitInfo;
+            }
+            return null;
+        } else
+            return null;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public List<Boolean> getPlcBitValues(List<String> codeids) {
+        List<Boolean> arrayList = new ArrayList<>();
+        if (plcBitList != null) {
+            Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
+            for (PlcBitInfo plcBitInfo : plcBitList) {
+                if (codeids.contains(plcBitInfo.getCodeId().toString())) {
+                    resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
+                }
+            }
+            for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
+                Boolean value = resultMap.get(codeId);
+                if (value != null) {
+                    arrayList.add(value);
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            for (PlcBitInfo plcBitInfo : plcBitList) {
+                if (plcBitInfo.getCodeId().equals(codeId)) {
+                    int index = plcBitInfo.getAddressIndex();
+                    String address = plcBitInfo.getAddress(index);
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+                }
+            }
+        }
+        return addressList;
+    }
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     * 
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcBit(PlcBitInfo param) {
+        if (plcBitList != null)
+            plcBitList.add(param);
+        else {
+            plcBitList = new ArrayList<PlcBitInfo>();
+            plcBitList.add(param);
+        }
+    }
+
+    /**
+     * 鏍规嵁PLC杩斿洖鐨勬暟鎹� 缁欏弬鏁板疄渚嬭祴鍊�
+     * 
+     * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
+     */
+    public void setPlcBitList(List<Boolean> plcValueArray) {
+        if (plcBitList != null) {
+            for (PlcBitInfo plcbitInfo : plcBitList) {
+                plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
+            }
+        }
+    }
+   
+
+   
+}
\ No newline at end of file
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
new file mode 100644
index 0000000..b4a2051
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.entity.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;
+        }
+
+        if (addressLength == 2 ) {
+            int wordindex = index;
+
+            return stringdatas[0] + "." + wordindex;
+        }
+        if (addressLength == 14 ) {
+            int wordindex = index;
+            //int newIndex = wordindex + 13;
+            return stringdatas[0] + "." + wordindex ;
+        }
+        return null;
+    }
+
+    public int getPlcAddress() {
+
+        return addressIndex;
+    }
+    public String getAddress() {
+       return getAddress(this.addressIndex);
+    }
+}
\ No newline at end of file
diff --git a/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
new file mode 100644
index 0000000..5355db5
--- /dev/null
+++ b/TemperingGlassModule/src/main/java/com/mes/entity/device/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.entity.device;
+
+import java.lang.reflect.Array;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class PlcParameterObject {
+
+    // 璇ユā鍧楁暟鎹被鍨嬶紝鏁版嵁璧峰浣嶇疆
+    private String plcAddressBegin;
+    // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
+    private int plcAddressLength;
+    private ArrayList<PlcParameterInfo> plcParameterList;
+
+    /**
+     * @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 ArrayList<PlcParameterInfo> getPlcParameterList() {
+        return plcParameterList;
+    }
+
+    /**
+     * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     * 
+     * @param codeid 鍙傛暟鏍囪瘑
+     * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
+     */
+    public PlcParameterInfo getPlcParameter(String codeid) {
+        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 (plcParameterList != 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 = resultMap.get(codeId);
+                if (plcParameterInfo != null) {
+                    arrayList.add(plcParameterInfo.getValue());
+                } else {
+                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
+                }
+            }
+        }
+        return arrayList;
+    }
+
+
+    public List<String> getAddressListByCodeId(List<String> codeIdList) {
+        List<String> addressList = new ArrayList<>();
+        for (String codeId : codeIdList) {
+            for (PlcParameterInfo plcParameterInfo : plcParameterList) {
+                if (plcParameterInfo.getCodeId().equals(codeId)) {
+                    int index = plcParameterInfo.getAddressIndex();
+                    String address = plcParameterInfo.getAddress(index);
+                    if (address != null) {
+                        addressList.add(address);
+                    }
+                }
+            }
+        }
+        return addressList;
+    }
+
+
+
+
+
+
+    /**
+     * 娣诲姞鍙傛暟瀹炰緥
+     * 
+     * @param param 鍙傛暟瀹炰緥
+     */
+    public void addPlcParameter(PlcParameterInfo 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 (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()==14) {
+                    plcParameterInfo.setValue((byteToHexString(valueList)));
+                }
+
+                else
+                {
+                    String valuestr = new String(valueList);
+                    plcParameterInfo.setValue(valuestr);
+                }
+            }
+        }
+    }
+     /**
+     * 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; //鍥犱负byte鍗�4涓瓧鑺傦紝鎵�浠ヨ璁$畻鍋忕Щ閲�
+            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;
+   }
+
+    public static String byteToHexString(byte[] bytes) {
+
+        String str = new String(bytes, StandardCharsets.UTF_8);
+        return str;
+    }
+
+
+}
\ No newline at end of file
diff --git a/TemperingGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java b/TemperingGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java
deleted file mode 100644
index d12d4ce..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/mapper/OrderTestMapper.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.mes.mapper;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.entity.OrderTest;
-import org.apache.ibatis.annotations.*;
-
-@Mapper
-public interface OrderTestMapper extends BaseMapper<OrderTest> {
-
-//    @Select("select * from `order`")
-//    List<Order> findAll();
-//
-//    @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
-//    Integer insert(Order order);
-//
-//    @Delete("delete from `order` where id=#{id}")
-//    Integer deleteById(@Param("id") Integer id);
-//
-//    @Update("update `order` set order_id=#{order_id} where id=#{id}")
-//    Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/mapper/TemperingMapper.java b/TemperingGlassModule/src/main/java/com/mes/mapper/TemperingMapper.java
index 54e486f..5ec7ed8 100644
--- a/TemperingGlassModule/src/main/java/com/mes/mapper/TemperingMapper.java
+++ b/TemperingGlassModule/src/main/java/com/mes/mapper/TemperingMapper.java
@@ -4,6 +4,8 @@
 import com.mes.entity.GlassInfo;
 import com.mes.entity.Tempering;
 
+import java.util.List;
+
 import org.apache.ibatis.annotations.*;
 
 @Mapper
@@ -12,9 +14,20 @@
 
 //鏌ヨ璇ョ幓鐠冪殑灏哄鍜屽潗鏍�
 @Select("select *from glass_info where id=#{glassid};")
-GlassInfo SelectOutGlass(String glassid);
-
-@Select("select *from glass_info where id=#{glassid};")
+GlassInfo SelectGlass(String glassid);
+//鏄惁鍙互鍙戦�佽繘鐐変俊鍙�
+@Select("select count(*) from glass_info where id=#{glassid};")
 int SelectTempering(String glassid);
+//鏌ヨ绛夊緟涓殑閽㈠寲鐗堝浘鐜荤拑淇℃伅
+@Select("select*from tempering_glass_info a left join (select flowcard_id,count(state)state from tempering_glass_info GROUP BY flowcard_id,state)b on a.flowcard_id=b.flowcard_id where b.state=2")
+List<Tempering> SelectWaitingGlass();
+//鏌ヨ杩涚倝涓殑閽㈠寲鐗堝浘鐜荤拑淇℃伅
+@Select("select*from tempering_glass_info a left join (select flowcard_id,min(state)state1 from tempering_glass_info GROUP BY flowcard_id having state1=1)b on a.flowcard_id=b.flowcard_id where b.state1=1")
+List<Tempering> SelectInGlass();
+//鏌ヨ閽㈠寲鍚庣殑閽㈠寲鐗堝浘淇℃伅
+@Select("select*from tempering_glass_info a left join (select flowcard_id,min(state)state1 from tempering_glass_info GROUP BY flowcard_id having state1=2)b on a.flowcard_id=b.flowcard_id where b.state1=2")
+List <Tempering> SelectOutGlass();
+
+
 
 }
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/IOrderService.java b/TemperingGlassModule/src/main/java/com/mes/service/IOrderService.java
deleted file mode 100644
index 9e44ceb..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/service/IOrderService.java
+++ /dev/null
@@ -1,2 +0,0 @@
-package com.mes.service;public interface IOrderService {
-}
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/ModuleA.java b/TemperingGlassModule/src/main/java/com/mes/service/ModuleA.java
deleted file mode 100644
index 3adf2ef..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/service/ModuleA.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.mes.service;
-
-import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.Connection;
-import com.rabbitmq.client.ConnectionFactory;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ModuleA {
-    private static String QUEUE_NAME = "hangzhou2";
-
-    public ModuleA(String QUEUENAME){
-        QUEUE_NAME=QUEUENAME;
-    }
-
-
-   public static void main(String[] argv) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶
-        ConnectionFactory factory = new ConnectionFactory();
-      factory.setHost("10.153.19.150");
-    //factory.setHost("localhost");
-
-        try (Connection connection = factory.newConnection();
-             //channel 鏄�氳繃 connection 鍒涘缓鐨勪竴涓� AMQP 淇¢亾瀵硅薄
-             Channel channel = connection.createChannel()) {
-            // `channel.queueDeclare(QUEUE_NAME, false, false, false, null);` 鏄敤鏉ュ0鏄庝竴涓槦鍒楃殑鏂规硶
-            //璇ユ柟娉曟湁浜斾釜鍙傛暟锛�
-            //1. `QUEUE_NAME`锛氭寚瀹氶槦鍒楃殑鍚嶇О锛岃繖閲屼娇鐢ㄤ簡涔嬪墠澹版槑鐨勫父閲廯"module_queue"`浣滀负闃熷垪鍚嶇О銆�
-            //2. `false`锛氭寚瀹氶槦鍒楁槸鍚︿负鎸佷箙鍖栫殑銆傚湪杩欓噷璁剧疆涓篳false`锛岃〃绀轰笉灏嗛槦鍒楁寔涔呭寲鍒扮鐩橈紝涓�鏃abbitMQ鏈嶅姟鍋滄鎴栧穿婧冿紝闃熷垪灏嗕細涓㈠け銆�
-            //3. `false`锛氭寚瀹氭槸鍚﹀彧鍏佽褰撳墠杩炴帴澹版槑姝ら槦鍒椼�傚湪杩欓噷璁剧疆涓篳false`锛岃〃绀哄彲鍏佽鍏朵粬杩炴帴涔熷0鏄庡悓鍚嶇殑闃熷垪銆�
-            //4. `false`锛氭寚瀹氭槸鍚﹀湪涓嶅啀浣跨敤鏃惰嚜鍔ㄥ垹闄ら槦鍒椼�傚湪杩欓噷璁剧疆涓篳false`锛岃〃绀哄綋娌℃湁娑堣垂鑰呮垨鑰呮墍鏈夋秷璐硅�呮柇寮�杩炴帴鍚庯紝闃熷垪涓嶄細鑷姩鍒犻櫎銆�
-            //5. `null`锛氭寚瀹氬叾浠栭槦鍒楀睘鎬х殑鍙傛暟銆傚湪杩欓噷璁剧疆涓篳null`锛岃〃绀烘病鏈夊叾浠栧睘鎬ч渶瑕佽缃��
-            //鎵ц`channel.queueDeclare()`鏂规硶鍚庯紝濡傛灉闃熷垪涓嶅瓨鍦紝灏嗕細鍒涘缓涓�涓柊鐨勯槦鍒楋紝濡傛灉闃熷垪宸茬粡瀛樺湪锛屽垯涓嶅仛浠讳綍鎿嶄綔銆�
-            Map<String, Object> args = new HashMap<>();
-            args.put("x-max-length-bytes",20000);
-//            args.put("x-max-length",5000);
-            channel.queueDeclare(QUEUE_NAME, false, false, false, args);
-
-            String message = "浣�";
-
-            for ( int i=1;i< 5000;i++)
-            {
-                message+="浣�";
-
-            }
-
-            message+="b";
-
-
-
-            //  灏嗘秷鎭彂甯冨埌鎸囧畾鐨勯槦鍒椾腑銆傜┖瀛楃涓�""琛ㄧず榛樿鐨勪氦鎹㈡満锛孮UEUE_NAME鎸囧畾浜嗙洰鏍囬槦鍒楀悕绉帮紝null琛ㄧず娌℃湁鎸囧畾鍏朵粬灞炴�э紝message.getBytes()灏嗘秷鎭唴瀹硅浆鎹负瀛楄妭鏁扮粍杩涜浼犺緭銆�
-            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
-            System.out.println(" [x] Sent '" + message + "'");
-        }
-    }
-}
-
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/ModuleB.java b/TemperingGlassModule/src/main/java/com/mes/service/ModuleB.java
deleted file mode 100644
index 6a1cd78..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/service/ModuleB.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package com.mes.service;
-
-import com.rabbitmq.client.Channel;
-import com.rabbitmq.client.Connection;
-import com.rabbitmq.client.ConnectionFactory;
-import com.rabbitmq.client.DeliverCallback;
-
-import java.util.HashMap;
-import java.util.Map;
-
-public class ModuleB {
-    private final static String QUEUE_NAME = "hangzhou2";
-
-    public static void main(String[] argv) throws Exception {
-        // 鍒涘缓杩炴帴宸ュ巶
-        ConnectionFactory factory = new ConnectionFactory();
-    factory.setHost("10.153.19.150");
-        //factory.setHost("localhost");
-        try (Connection connection = factory.newConnection();
-             Channel channel = connection.createChannel()) {
-            // 澹版槑闃熷垪
-            Map<String, Object> args = new HashMap<>();
-            args.put("x-max-length-bytes",20000);
-//            args.put("x-max-length",5000);
-            channel.queueDeclare(QUEUE_NAME, false, false, false, args);
-
-            // 鍒涘缓娑堣垂鑰�
-            DeliverCallback deliverCallback = (consumerTag, delivery) -> {
-                String receivedMessage = new String(delivery.getBody(), "UTF-8");
-                System.out.println(" [x] Received '" + receivedMessage + "'");
-            };
-            // 寮�濮嬫秷璐规秷鎭�
-          channel.basicConsume(QUEUE_NAME, true, deliverCallback, consumerTag -> {
-           });
-        }
-    }
-}
-
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/TemperingOverService.java b/TemperingGlassModule/src/main/java/com/mes/service/TemperingOverService.java
index dc2fc19..1cc1983 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/TemperingOverService.java
+++ b/TemperingGlassModule/src/main/java/com/mes/service/TemperingOverService.java
@@ -1,28 +1,36 @@
 package com.mes.service;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.mes.entity.GlassInfo;
-import com.mes.entity.userInfo.SysError;
+import com.mes.common.PlcTools.S7control;
+import com.mes.entity.Tempering;
+import com.mes.entity.device.PLCAutoMes;
+import com.mes.entity.device.PlcParameterObject;
 import com.mes.mapper.TemperingMapper;
-import com.mes.mapper.userInfo.SysErrorMapper;
-import org.springframework.beans.factory.annotation.Autowired;
+import java.util.List;
 import org.springframework.stereotype.Service;
 
 @Service
 @DS("glass_info")
 public class TemperingOverService {
-    private final TemperingMapper temperingMapper;
-
+private final TemperingMapper temperingMapper;
+   //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
     public TemperingOverService(TemperingMapper temperingMapper) {
         this.temperingMapper = temperingMapper;
     }
     //鎺ユ敹鍑虹倝淇″彿鍜岀倝鍙�
-    public GlassInfo SelectOutGlass (String glassid) {
-        GlassInfo GlassInfo = temperingMapper.SelectOutGlass(glassid);
-        return GlassInfo;
+    public String SelectOutSignal () {
+        
+        S7control.getinstance().WriteWord("鍑虹倝淇″彿", (short)1);
+        return "GlassInfo";
     }
-    //鍙戦�佺‘璁ゆ敹鍒�
+    //鍙戦�佺‘璁ゆ敹鍒颁俊鍙�
+    public void OverSignal () {
+        S7control.getinstance().WriteWord("纭瀛�", (short)1);
+    }
+    //鏄剧ず閽㈠寲鍑虹倝鍚庣殑鐗堝浘淇℃伅
+    public List <Tempering> SelectOutGlass () {
+        return temperingMapper.SelectOutGlass();
+    }
 
-   
-    
+       
 }
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/TemperingService.java b/TemperingGlassModule/src/main/java/com/mes/service/TemperingService.java
index bdfd258..362d417 100644
--- a/TemperingGlassModule/src/main/java/com/mes/service/TemperingService.java
+++ b/TemperingGlassModule/src/main/java/com/mes/service/TemperingService.java
@@ -1,12 +1,10 @@
 package com.mes.service;
-
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.mes.common.PlcTools.S7control;
 import com.mes.entity.GlassInfo;
-import com.mes.entity.userInfo.SysError;
+import com.mes.entity.Tempering;
 import com.mes.mapper.TemperingMapper;
-import com.mes.mapper.userInfo.SysErrorMapper;
-import org.springframework.beans.factory.annotation.Autowired;
+import java.util.List;
 import org.springframework.stereotype.Service;
 
 @Service
@@ -21,7 +19,7 @@
     }
     //鎺ユ敹id杩斿洖鍧愭爣鍜屾暟鎹�
     public GlassInfo SelectOutGlass (String glassid) {
-        GlassInfo GlassInfo = temperingMapper.SelectOutGlass(glassid);
+        GlassInfo GlassInfo = temperingMapper.SelectGlass(glassid);
         return GlassInfo;
     }
     //鍙戦�佸潗鏍囦俊鎭�
@@ -38,15 +36,23 @@
         else {
             return 0;
         }
-        
     }
     //鍙戦�佽繘鐐変俊鍙�
     public void SendIntoGlass (short start) {
         s7control.WriteWord("DB100.10", start);
     }
     //鎺ュ彈瀹屾垚瀛楀洖澶嶇‘璁ゅ瓧
-    
     public void SendIntoGlass () {
         s7control.WriteWord("DB100.10", (short)1);
     }
+    //鏄剧ず绛夊緟涓殑鐗堝浘
+    public List <Tempering> SelectWaitingGlass () {
+        List<Tempering> WaitingGlass = temperingMapper.SelectWaitingGlass();
+        return WaitingGlass;
+    }
+    //鏄剧ず姝e湪杩涚倝鐨勭増鍥�
+    public List<Tempering> SelectIntoGlass () {
+        List<Tempering> IntoGlass = temperingMapper.SelectInGlass();
+        return IntoGlass;
+    }
 }
diff --git a/TemperingGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java b/TemperingGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java
deleted file mode 100644
index 5274aa6..0000000
--- a/TemperingGlassModule/src/main/java/com/mes/service/impl/OrderServiceImpl.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package com.mes.service.impl;
-
-import com.baomidou.dynamic.datasource.annotation.DS;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.entity.OrderTest;
-import com.mes.mapper.OrderTestMapper;
-import com.mes.service.IOrderService;
-import org.springframework.stereotype.Service;
-
-@Service
-@DS("erp_sd")
-public class OrderServiceImpl extends ServiceImpl<OrderTestMapper, OrderTest> implements IOrderService {
-}
diff --git a/TemperingGlassModule/target/classes/application.yml b/TemperingGlassModule/target/classes/application.yml
index d74069d..a85e82a 100644
--- a/TemperingGlassModule/target/classes/application.yml
+++ b/TemperingGlassModule/target/classes/application.yml
@@ -2,31 +2,17 @@
 server:
   port: 8080
   servlet:
-   context-path: /mesModuleTools
+    context-path: /mesModuleTools
 
 spring:
   datasource:
     dynamic:
-      primary: user_info #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+      primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-        user_info:
-          url: jdbc:mysql://10.153.19.150:3306/erp_user_info?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
-        mm:
-          url: jdbc:mysql://10.153.19.150:3306/mm?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
+
+        hangzhoumes:
+          url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
\ No newline at end of file
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 098f11b..282cdfa 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -27,6 +27,7 @@
       "devDependencies": {
         "@types/sortablejs": "^1.15.7",
         "@vitejs/plugin-vue": "^4.3.4",
+        "http-proxy-middleware": "^3.0.0",
         "vite": "^4.4.9"
       }
     },
@@ -533,6 +534,15 @@
       "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",
@@ -544,6 +554,15 @@
       "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": {
@@ -964,6 +983,23 @@
       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
       "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
     },
+    "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/delayed-stream": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -1049,6 +1085,12 @@
       "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/fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -1124,6 +1166,37 @@
         "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.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -1160,6 +1233,15 @@
       "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/local-pkg": {
@@ -1220,6 +1302,19 @@
       "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
       "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
     },
+    "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",
@@ -1246,6 +1341,12 @@
       "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",
@@ -1399,6 +1500,12 @@
         "node": ">=8.10.0"
       }
     },
+    "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/rollup": {
       "version": "3.29.4",
       "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
@@ -1462,6 +1569,12 @@
       "engines": {
         "node": ">=8.0"
       }
+    },
+    "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/unplugin": {
       "version": "1.5.0",
@@ -1900,6 +2013,15 @@
       "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",
@@ -1911,6 +2033,15 @@
       "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": {
@@ -2215,6 +2346,15 @@
       "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz",
       "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ=="
     },
+    "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"
+      }
+    },
     "delayed-stream": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
@@ -2287,6 +2427,12 @@
       "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
+    },
     "fill-range": {
       "version": "7.0.1",
       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
@@ -2329,6 +2475,31 @@
         "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.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
@@ -2354,6 +2525,12 @@
       "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
     },
     "local-pkg": {
       "version": "0.4.3",
@@ -2397,6 +2574,16 @@
       "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
       "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
     },
+    "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",
@@ -2414,6 +2601,12 @@
       "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",
@@ -2491,6 +2684,12 @@
         "picomatch": "^2.2.1"
       }
     },
+    "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
+    },
     "rollup": {
       "version": "3.29.4",
       "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
@@ -2536,6 +2735,12 @@
         "is-number": "^7.0.0"
       }
     },
+    "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
+    },
     "unplugin": {
       "version": "1.5.0",
       "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.5.0.tgz",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index 96c83f3..afef130 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -27,6 +27,7 @@
   "devDependencies": {
     "@types/sortablejs": "^1.15.7",
     "@vitejs/plugin-vue": "^4.3.4",
+    "http-proxy-middleware": "^3.0.0",
     "vite": "^4.4.9"
   }
 }
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index d5c18f5..6c2e09c 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -12,7 +12,7 @@
 const router = useRouter()
 const userStore = useUserInfoStore()
 const user = userStore.user.userName
-store.createWebSocket();
+// store.createWebSocket();
 function quit(){
   userStore.$patch({
     user:null
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 8f8902c..297bac1 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -22,6 +22,18 @@
       children:[
         
         
+        {
+          path: 'Temperedlayout',
+          name: 'Temperedlayout',
+          component: () => import('../views/TL/Temperedlayout/Temperedlayout.vue'),
+          children:[
+            {
+             path: 'selectLayout',
+              name: 'selectLayout',
+              component: () => import('../views/TL/Temperedlayout/SelectLayout.vue'),
+            }
+         ]
+        },
       
         /*----------- 涓婄墖鏈� ----------------*/
       {
@@ -133,32 +145,6 @@
               component: () => import('../views/UnLoadGlass/Landingindicationtwo.vue')
             }
           ]
-        },
-        /*----------- 鐢ㄦ埛绠$悊 ----------------*/
-        {
-        path: 'User',
-        name: 'userlist',
-        component: () => import('../views/User/userlist.vue'),
-        children:[
-          {
-            path: '/User/userlist',
-            name: 'userlist',
-            component: () => import('../views/User/userlist.vue')
-          },
-        ]
-        },
-        /*----------- 鏉冮檺绠$悊 ----------------*/
-        {
-        path: 'Permissions',
-        name: 'permissionslist',
-        component: () => import('../views/Permissions/permissionslist.vue'),
-        children:[
-          {
-            path: '/Permissions/permissionslist',
-            name: 'permissionslist',
-            component: () => import('../views/Permissions/permissionslist.vue')
-          },
-        ]
         },
         {
           path: '',
diff --git a/UI-Project/src/stores/userInfo.js b/UI-Project/src/stores/userInfo.js
index eeaefac..bfae4e8 100644
--- a/UI-Project/src/stores/userInfo.js
+++ b/UI-Project/src/stores/userInfo.js
@@ -1,6 +1,6 @@
 import {defineStore} from 'pinia'
 import {ref} from "vue";
-import {createWebSocket, global_callback1} from "@/utils/webSocket";
+// import {createWebSocket, global_callback1} from "@/utils/webSocket";
 
 export  default defineStore("userInfo",{
     state: () =>{
@@ -10,9 +10,9 @@
         }
     },
     actions:{
-        createWebSocket(){
-            createWebSocket(global_callback1)
-        }
+        // createWebSocket(){
+        //     createWebSocket(global_callback1)
+        // }
 
     },
     persist: true//鏁版嵁鎸佷箙鍖栵紝闃叉鍒锋柊鏁版嵁娑堝け
diff --git a/UI-Project/src/utils/webSocket.js b/UI-Project/src/utils/webSocket.js
deleted file mode 100644
index 51e5ede..0000000
--- a/UI-Project/src/utils/webSocket.js
+++ /dev/null
@@ -1,137 +0,0 @@
-var websock = null;
-var global_callback = null;
-let isConnect = false; //杩炴帴鏍囪瘑 閬垮厤閲嶅杩炴帴
-let rec; //鏂嚎閲嶈繛鍚庯紝寤惰繜5绉掗噸鏂板垱寤篧ebSocket杩炴帴  rec鐢ㄦ潵瀛樺偍寤惰繜璇锋眰鐨勪唬鐮�
-let soketparams ='蹇冭烦鍖呮娴�'
-
-
-var serverPort = "/ws"; // webSocket杩炴帴绔彛
-var wsuri = "ws://localhost:8081/mesModuleTools";
-
-function createWebSocket(callback) {
-
-    if (websock == null || typeof websock !== WebSocket) {
-        initWebSocket(callback);
-    }
-}
-
-function global_callback1(msg) {
-    console.log("websocket鐨勫洖璋冨嚱鏁版敹鍒版湇鍔″櫒淇℃伅锛�" + JSON.stringify(msg));
-    // console.log("鏀跺埌鏈嶅姟鍣ㄤ俊鎭細" + msg);
-}
-
-function initWebSocket(callback) {
-    global_callback = callback;
-    // 鍒濆鍖杦ebsocket
-    websock = new WebSocket(wsuri);
-    websock.onmessage = function (e) {
-        websocketonmessage(e);
-    };
-    websock.onclose = function (e) {
-        websocketclose(e);
-    };
-    websock.onopen = function () {
-        websocketOpen();
-    };
-
-    // 杩炴帴鍙戠敓閿欒鐨勫洖璋冩柟娉�
-    websock.onerror = function () {
-        console.log("WebSocket杩炴帴鍙戠敓閿欒");
-    };
-}
-
-
-
-//蹇冭烦璁剧疆
-var heartCheck = {
-    timeout: 20000, //姣忔鏃堕棿鍙戦�佷竴娆″績璺冲寘 杩欓噷璁剧疆涓�20s
-    timeoutObj: null, //寤舵椂鍙戦�佹秷鎭璞★紙鍚姩蹇冭烦鏂板缓杩欎釜瀵硅薄锛屾敹鍒版秷鎭悗閲嶇疆瀵硅薄锛�
-
-    start: function () {
-        this.timeoutObj = setInterval(function () {
-            if (isConnect) websock.send(JSON.stringify(soketparams));
-        }, this.timeout);
-    },
-
-    reset: function () {
-        clearTimeout(this.timeoutObj);
-        this.start();
-    }
-};
-
-//瀹氫箟閲嶈繛鍑芥暟
-let reConnect = () => {
-    console.log("灏濊瘯閲嶆柊杩炴帴");
-    if (isConnect) return; //濡傛灉宸茬粡杩炰笂灏变笉鍦ㄩ噸杩炰簡
-    rec && clearTimeout(rec);
-    rec = setTimeout(function () { // 寤惰繜5绉掗噸杩�  閬垮厤杩囧娆¤繃棰戠箒璇锋眰閲嶈繛
-        initWebSocket();
-    }, 5000);
-};
-
-
-
-// 瀹為檯璋冪敤鐨勬柟娉�
-function sendSock(agentData ) {
-    if (websock.readyState === websock.OPEN) {
-        // 鑻ユ槸ws寮�鍚姸鎬�
-        websocketsend(agentData);
-    } else if (websock.readyState === websock.CONNECTING) {
-        // 鑻ユ槸 姝e湪寮�鍚姸鎬侊紝鍒欑瓑寰�1s鍚庨噸鏂拌皟鐢�
-        setTimeout(function () {
-            sendSock(agentData);
-        }, 1000);
-    } else {
-        // 鑻ユ湭寮�鍚� 锛屽垯绛夊緟1s鍚庨噸鏂拌皟鐢�
-        setTimeout(function () {
-            sendSock(agentData);
-        }, 1000);
-    }
-}
-
-function closeSock() {
-    console.log('鍏抽棴浜�')
-    websock.close();
-}
-
-// 鏁版嵁鎺ユ敹
-function websocketonmessage(msg) {
-    // console.log("鏀跺埌鏁版嵁锛�"+JSON.parse(e.data));
-    // console.log("鏀跺埌鏁版嵁锛�"+msg);
-
-    // global_callback(JSON.parse(msg.data));
-    // 鏀跺埌淇℃伅涓築lob绫诲瀷鏃�
-    let result = null;
-    if (msg.data instanceof Blob) {
-        const reader = new FileReader();
-        reader.readAsText(msg.data, "UTF-8");
-        reader.onload = (e) => {
-            result = JSON.parse(reader.result);
-            //console.log("websocket鏀跺埌", result);
-            global_callback(result);
-        };
-    } else {
-        result = JSON.parse(msg.data);
-        //console.log("websocket鏀跺埌", result);
-        global_callback(result);
-    }
-}
-
-// 鏁版嵁鍙戦��
-function websocketsend(agentData) {
-    // console.log("鍙戦�佹暟鎹細" + agentData);
-    websock.send(agentData);
-}
-
-// 鍏抽棴
-function websocketclose(e) {
-    console.log("connection closed (" + e.code + ")");
-}
-
-function websocketOpen(e) {
-    console.log("杩炴帴鎵撳紑");
-    isConnect = true
-    //heartCheck.start(); //鍙戦�佸績璺� 鐪嬩釜浜洪」鐩渶姹�
-}
-
-export { sendSock, createWebSocket, closeSock ,global_callback1};
\ No newline at end of file
diff --git a/UI-Project/src/views/HomeView.vue b/UI-Project/src/views/HomeView.vue
index 6285749..cdec3b1 100644
--- a/UI-Project/src/views/HomeView.vue
+++ b/UI-Project/src/views/HomeView.vue
@@ -1,8 +1,6 @@
 <script setup>
 import { useRouter, useRoute } from 'vue-router'
 
-import { sendSock, createWebSocket, closeSock } from "@/utils/webSocket"
-
 // function global_callback(msg) {
 //   console.log("websocket鐨勫洖璋冨嚱鏁版敹鍒版湇鍔″櫒淇℃伅锛�" + JSON.stringify(msg));
 //   // console.log("鏀跺埌鏈嶅姟鍣ㄤ俊鎭細" + msg);
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index d949ca3..c1515b9 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -6,7 +6,7 @@
 import { Lock,Avatar } from '@element-plus/icons-vue'
 import request from '@/utils/request'
 import userInfo from '@/stores/userInfo'
-import { sendSock, createWebSocket, closeSock,global_callback1 } from "@/utils/webSocket"
+
 
 const store=userInfo()
 let ruleFormRef  = ref<FormInstance>()
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 96323e9..11f2545 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -66,7 +66,7 @@
       <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
     </div>
     <div>
-            <div id="boxa" style="width: 700px;height: 220px;margin-left: 300px;">
+            <div id="boxa" style="width: 700px;height: 220px;margin-left: 260px;">
               <div style="margin-top: 85px;"> NG202405060798A01-1</div> 
             <div> 500脳1500</div>
           </div>
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index da8355f..a0a97f9 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -233,7 +233,7 @@
       </div>
     </el-card>
       <div id="parent">
-        <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 510px;">
+        <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 130px;">
         <el-button style="margin-top: -830px;margin-left: -40px;"  size="mini" id="searchButton" @click="add = true">娣诲姞鍘熺墖</el-button>
         <el-button style="margin-top: -10px;margin-left: -80px;"  size="mini" id="searchButton"  @click="adda = true">娣诲姞鍘熺墖</el-button>
         <!-- <div id="overlay" v-show="state"></div> -->
@@ -404,7 +404,6 @@
 }
 #parent{
   position: relative;
-  /* margin-left: 250px; */
 }
 #overlay{
   position: absolute;
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..92bde2f
--- /dev/null
+++ b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
@@ -0,0 +1,212 @@
+<!--  鐗╂枡璧勬枡  -->
+
+
+<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=4;//姣忚鏈�澶氭樉绀虹殑鍥炬暟
+        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;//椤甸潰鐗堝浘绾靛悜 鍍忕礌
+        console.log(Font1);
+        
+        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/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index a7c071d..58910c7 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,38 +1,166 @@
 <script setup>
 import {Search} from "@element-plus/icons-vue";
-import {reactive} from "vue";
+import {reactive,  onMounted} from "vue";
 import {useRouter} from "vue-router"
 const router = useRouter()
 
-const dialogFormVisiblea = ref(false)
 import { ref } from 'vue'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import Landingindication from "./Landingindication.vue";
-// import Landingindicationtwo from "./Landingindicationtwo.vue";
+import Landingindicationtwo from "./Landingindicationtwo.vue";
+import unloadrequest from "@/utils/unloadrequest";
+const dialogFormVisiblea = ref(false)
 
-const tableData = [
-  {
-    id: '1',
-    long: '1005',
-    wide: '183.6',
-    thick: '1991',
-    state: '鏈惎鐢�',
-  },
-  {
-    id: '2',
-    long: '105',
-    wide: '183',
-    thick: '191',
-    state: '鏈惎鐢�'
-  },
-  {
-    id: '2',
-    long: '105',
-    wide: '183',
-    thick: '191',
-    state: '鏈惎鐢�'
-  },
-]
+
+
+const dialogFormVisiblea2 = ref(false)
+
+
+const tableData = reactive([]);
+
+
+
+
+
+// 鏁版嵁
+const loading = ref(false);
+
+
+// 寮规鏄剧ず鎺у埗
+
+const dialogFormVisible = ref(false);
+
+// 琛ㄥ崟鏁版嵁
+const workstationId = ref('');
+const flowCardId = ref('');
+const flowCardOptions = ref([]);
+
+
+// 鏂规硶
+const handleSelectionChange = () => {
+  // 澶勭悊琛ㄦ牸琛岄�夋嫨浜嬩欢
+};
+
+const handleBindRack = (row) => {
+  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+
+  // 鍙戣捣鎺ュ彛璇锋眰鑾峰彇娴佺▼鍗″彿
+    fetchFlowCardId(); 
+
+
+  dialogFormVisiblea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+
+
+
+//鑾峰彇娴佺▼鍗″彿
+const fetchFlowCardId = async () => {
+  try {
+    const response = await unloadrequest.get('/api/downWorkstation/getflowCardId');
+    console.log(response)
+    if (response.code === 200) {
+      flowCardOptions.value = response.data.map(item => ({ flowcard_id: item.flowcard_id }));
+    } else {
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+//纭
+const handleConfirm = async () => {
+  try {
+    const response = await unloadrequest.post('/api/downWorkstation/updateFlowCardId', {
+      workstationId: workstationId.value,
+      flowCardId: flowCardId.value
+    }); 
+
+    console.log(response)
+    if (response.code == 200) {
+      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+      console.log('缁戝畾鎴愬姛');
+      ElMessage.success(response.message);
+      dialogFormVisiblea.value = false;
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    // 澶勭悊閿欒
+    console.error(error);
+  }
+};
+
+
+
+const handleBindRack2 = (row) => {
+  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+
+
+
+
+  dialogFormVisiblea2.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+//娓呴櫎鍐呭
+const handleclear = async () => {
+    try {
+        const response = await unloadrequest.post('/api/downWorkstation/clear', {
+            workstationId: workstationId.value,
+        });
+
+        console.log(response);
+
+        if (response.code === 200) {
+            // 娓呴櫎鎴愬姛鐨勯�昏緫
+            console.log('娓呴櫎鎴愬姛');
+            ElMessage.success(response.message);
+            dialogFormVisiblea2.value = false;
+        } else if (response.code === 400) {
+            // 娓呴櫎澶辫触鐨勯�昏緫
+            console.log('娓呴櫎澶辫触');
+            console.log(response.message); // 鎵撳嵃鏈嶅姟鍣ㄨ繑鍥炵殑閿欒淇℃伅
+            ElMessage.error(response.message);
+            dialogFormVisiblea2.value = false;
+        }
+    } catch (error) {
+        // console.log(error);
+         ElMessage.error("娓呴櫎澶辫触");
+            dialogFormVisiblea2.value = false;
+    }
+};
+
+
+
+
+
+// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
+const fetchTableData = async () => {
+  try {
+    // 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰锛屽苟绛夊緟鍝嶅簲
+    const response = await unloadrequest.get('/api/downWorkstation/getone');
+
+    // 妫�鏌ュ搷搴旂姸鎬�
+    if (response.code === 200) {
+      // 鏇存柊琛ㄦ牸鏁版嵁
+      console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
+      tableData.splice(0, tableData.length, ...response.data);
+    } else {
+      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+      ElMessage.error(response.msg);
+    }
+  } catch (error) {
+    // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+    ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+  }
+};
+
+
+
+
+// initWebSocket();
+onMounted(fetchTableData);
+ setInterval(fetchTableData, 2000)
+
 const open = () => {
   ElMessageBox.confirm(
     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -119,6 +247,10 @@
   ],
 })
 
+
+
+
+
 </script>
 
 <template>
@@ -128,53 +260,87 @@
         <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="wide" align="center" label="鎬绘暟閲�" min-width="120" />
-          <el-table-column prop="wide" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
-          <el-table-column prop="state" align="center" label="鍚敤鐘舵��" min-width="120" />
+          <el-table-column prop="workstationId" align="center" label="涓嬬墖浣�" min-width="80" />
+          <el-table-column prop="workstationId" align="center" label="鏋跺彿" min-width="120" />
+          <el-table-column prop="flowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
+          <el-table-column prop="totalquantity" align="center" label="鎬绘暟閲�" min-width="120" />
+          <el-table-column prop="racksnumber" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
+          <el-table-column prop="work_state" align="center" label="鐘舵��" min-width="120" />
+          <el-table-column prop="deviceId" align="center" label="璁惧鍙�" min-width="120" />
+          <el-table-column prop="enableState" align="center" label="鍚敤鐘舵��" min-width="120" />
           <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+<<<<<<< HEAD
             <template #default>
               <el-button size="mini" type="text" plain v-show="state !== '宸插惎鐢�' " @click="dialogFormVisiblea = true">缁戝畾鏋跺瓙</el-button>
               <el-button size="mini" type="text" plain  @click="dialogForm">娓呯┖</el-button>
             </template>
+=======
+            <template #default="scope">
+            <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">缁戝畾鏋跺瓙</el-button>
+            <el-button size="mini" type="text" plain  @click="handleBindRack2(scope.row)">娓呯┖</el-button>
+          </template>
+>>>>>>> 96b63f125687d8ef610745fd9041da2cc77a24af
         </el-table-column>
         </el-table>
       </div>
     </el-card>
-   
-  </div>
-  <div style="display: flex;">
-  <div id="main-body">
-      <Landingindication></Landingindication>
-    </div>
-  <!-- <div id="main-bodya">
-    <Landingindicationtwo></Landingindicationtwo>
-    </div> -->
-    </div>
+
+
     <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
     <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
-            <el-form  size="mini" label-width="150px">
-      <el-form  label-width="100px" label-position="right">
-              <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
-                <el-input  autocomplete="off"/>
-              </el-form-item>
-              <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
-                <el-input autocomplete="off" />
-              </el-form-item>
-        </el-form>
-            </el-form>
-          </div>
+      <el-form  size="mini" label-width="150px">
+        <el-form  label-width="100px" label-position="right">
+          <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
+            <el-input v-model="workstationId" autocomplete="off"/>
+          </el-form-item>
+          <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 18vw;">
+          <el-select v-model="flowCardId" placeholder="璇烽�夋嫨娴佺▼鍗″彿">
+            <el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" :value="item.flowcard_id" />
+          </el-select>
+        </el-form-item>
+      </el-form>
+      </el-form>
+    </div>
     <template #footer>
       <div id="dialog-footer">
-        <el-button type="primary" @click="dialogFormVisiblea = false">
+        <el-button type="primary" @click="handleConfirm">
           纭
         </el-button>
         <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
       </div>
     </template>
   </el-dialog>
+
+
+
+
+  <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" title="娓呴櫎鏋跺瓙鐜荤拑" >
+
+    <template #footer>
+      <div id="dialog-footer">
+        <el-button type="primary" @click="handleclear">
+          纭
+        </el-button>
+        <el-button @click="dialogFormVisiblea2 = false">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+
+
+    <!-- workstationId: '1',
+    workstationId: '1005',
+    flowCardId: '183.6',
+    totalquantity: '1991',
+    racksnumber:"1",
+    work_state: '寰呰瘑鍒�', -->
+  </div>
+  <div style="display: flex;">
+  <div id="main-body">
+      <Landingindication></Landingindication>
+    </div>
+  <div id="main-bodya">
+    <Landingindicationtwo></Landingindicationtwo>
+    </div></div>
 </template>
 
 <style scoped>
@@ -199,6 +365,10 @@
 }
 #main-body{
   margin-top: -20px;
-  margin-left: 450px;
+  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/UnLoadGlass/loadmachineracktwo.vue b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
index a69b6d2..a469701 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachineracktwo.vue
@@ -26,7 +26,21 @@
     state: '鏈惎鐢�'
   },
   {
-    id: '2',
+    id: '3',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '4',
+    long: '105',
+    wide: '183',
+    thick: '191',
+    state: '鏈惎鐢�'
+  },
+  {
+    id: '5',
     long: '105',
     wide: '183',
     thick: '191',
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index b0685b2..d4d6ee2 100644
--- a/UI-Project/vite.config.js
+++ b/UI-Project/vite.config.js
@@ -16,25 +16,36 @@
     }
   }, 
   server: {
-    port: 801,//绔彛鍙�
-    host: true,//ip鍦板潃 鎴� '0.0.0.0' 鎴� "loaclhost"
-    open: false, //鍚姩鍚庢槸鍚﹁嚜鍔ㄦ墦寮�娴忚鍣�
-    https: false, // 鏄惁寮�鍚� https
+    port: 801,
+    host: true,
+    open: false,
+    https: false,
     proxy: {
-      '^/api': {
-        target: 'localhost:8080/mesModuleTools', //鐩爣婧愶紝鐩爣鏈嶅姟鍣紝鐪熷疄璇锋眰鍦板潃
-        changeOrigin: true, //鏀寔璺ㄥ煙
-        rewrite: (path) => path.replace(/^\/api/, "/mesModuleTools"), //閲嶅啓鐪熷疄璺緞,鏇挎崲/api
-      //   pathRewrite: {
-      //     '^/api': ''
-      // }
-        // rewrite: (path) => path.replace(/^\/api/, "/mesModuleTools"), //閲嶅啓鐪熷疄璺緞,鏇挎崲/api
+      '/api': {
+        target: 'http://localhost:8080/mesModuleTools',
+        changeOrigin: true,
+        rewrite: (path) => path.replace(/^\/api/, '/mesModuleTools'),
       },
       '/api2': {
-        target: 'localhost:8080/mesModuleTools',
+        target: 'http://localhost:8081/mesModuleTools',
         changeOrigin: true,
-        rewrite: (path) => path.replace(/^\/api2/, "mesModuleTools"),
+        pathRewrite: {
+          '^/api2': '',
+        },
       },
-    }
-  }
-})
+    },
+  },
+  configureServer: ({ middlewares }) => {
+    middlewares.use(
+      '/mesModuleTools',
+      createProxyMiddleware({
+        target: 'ws://localhost:8081',
+        ws: true,
+        changeOrigin: true,
+        pathRewrite: {
+          '^/mesModuleTools': '',
+        },
+      })
+    );
+  },
+});
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/controller/DownWorkstationController.java b/UnLoadGlassModule/src/main/java/com/mes/controller/DownWorkstationController.java
index 834317e..46f7085 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/controller/DownWorkstationController.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/controller/DownWorkstationController.java
@@ -4,13 +4,16 @@
 import com.mes.service.DownWorkstationService;
 import com.mes.service.GlassInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 @RestController
-@RequestMapping("/downWorkstation")
+@RequestMapping("/api/downWorkstation")
 public class DownWorkstationController {
 
     @Autowired
@@ -19,8 +22,24 @@
     private GlassInfoService glassInfoService;
 
     @GetMapping("/getone")
-    public List<DownWorkstation> getoneDownWorkstations() {
-        return downWorkstationService.getoneDownWorkstations();
+    public ResponseEntity<?> getOneDownWorkstations() {
+        try {
+            List<DownWorkstation> data = downWorkstationService.getoneDownWorkstations();
+            // 鏋勫缓绗﹀悎棰勬湡鏍煎紡鐨勫搷搴旀暟鎹�
+            Map<String, Object> responseData = new HashMap<>();
+            responseData.put("code", 200);
+            responseData.put("msg", "鎴愬姛");
+            responseData.put("data", data);
+            // 杩斿洖 ResponseEntity 瀵硅薄锛屽寘鍚搷搴旀暟鎹拰鐘舵�佺爜
+            return ResponseEntity.ok(responseData);
+        } catch (Exception e) {
+            e.printStackTrace();
+            // 濡傛灉鍑虹幇寮傚父锛岃繑鍥為敊璇俊鎭�
+            Map<String, Object> errorResponse = new HashMap<>();
+            errorResponse.put("code", 500);
+            errorResponse.put("msg", "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�");
+            return ResponseEntity.status(500).body(errorResponse);
+        }
     }
 
     @GetMapping("/gettwo")
@@ -28,37 +47,79 @@
         return downWorkstationService.gettwoDownWorkstations();
     }
     @GetMapping("/getflowCardId")
-    public List<Map<String, Object>> getflowCardId() {
-        return downWorkstationService.getflowCardId();
+    public ResponseEntity<Map<String, Object>> getflowCardId() {
+        Map<String, Object> responseData = new HashMap<>();
+        try {
+            List<Map<String, Object>> data = downWorkstationService.getflowCardId();
+            responseData.put("code", 200);
+            responseData.put("msg", "鎴愬姛");
+            responseData.put("data", data);
+            return ResponseEntity.ok(responseData);
+        } catch (Exception e) {
+            responseData.put("code", 500);
+            responseData.put("msg", "澶辫触");
+            responseData.put("data", null);
+            return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(responseData);
+        }
     }
 
 
+
+
     @PostMapping("/updateFlowCardId")
-    public String updateFlowCardId(@RequestBody Map<String, Object> requestData) {
+    public ResponseEntity<Map<String, Object>> updateFlowCardId(@RequestBody Map<String, Object> requestData) {
         // 浠� requestData 涓幏鍙栦紶鍏ョ殑 flowCardId
         String flowCardId = (String) requestData.get("flowCardId");
+        int workstationId = (int) requestData.get("workstationId");
 
         // 鏌ヨ瀵瑰簲 flowCardId 鐨勭幓鐠冧俊鎭�绘暟閲�
         int glassInfoCount = glassInfoService.getGlassInfoCountByFlowCardId(flowCardId);
 
         // 鏇存柊 down_workstation 琛ㄤ腑鐨勬�绘暟閲�
-        glassInfoService.updateFlowCardIdAndCount(flowCardId, glassInfoCount);
+        glassInfoService.updateFlowCardIdAndCount(flowCardId, glassInfoCount, workstationId);
 
-        // 杩斿洖澶勭悊缁撴灉锛屾瘮濡傛垚鍔熸垨澶辫触淇℃伅
-        return "updated successfully";
+        // 鏋勫缓鍝嶅簲鏁版嵁
+        Map<String, Object> responseData = new HashMap<>();
+        responseData.put("message", "updated successfully");
+        responseData.put("code", 200);
+        // 杩斿洖澶勭悊缁撴灉
+        return ResponseEntity.ok(responseData);
     }
 
 
-    @DeleteMapping("/clear/{workstationId}")
-    public String clearWorkstationInfo(@PathVariable("workstationId") int workstationId) {
+    @PostMapping("/clear")
+    public ResponseEntity<Map<String, Object>> clearWorkstationInfo(@RequestBody Map<String, Object> requestData) {
         // 璋冪敤 DownWorkstationService 涓殑鏂规硶娓呴櫎鎸囧畾宸ヤ綅ID鐨勪俊鎭�
-       downWorkstationService.clearFlowCardId(workstationId);
-        // 杩斿洖澶勭悊缁撴灉锛屾瘮濡傛垚鍔熸垨澶辫触淇℃伅
-        return "cleared successfully";
+        int workstationId = (int) requestData.get("workstationId");
+
+        int totalWorkstations = downWorkstationService.getTotalQuantity(workstationId);
+        int downWorkstations = downWorkstationService.getRacksNumber(workstationId);
+
+
+        if (downWorkstations == totalWorkstations) {
+            downWorkstationService.clearFlowCardId(workstationId);
+            Map<String, Object> responseData = new HashMap<>();
+            responseData.put("message", "cleared successfully");
+            responseData.put("code", 200);
+            // 杩斿洖澶勭悊缁撴灉
+            return ResponseEntity.ok(responseData);
+        }
+        else {
+            // 濡傛灉鎬绘暟閲忓拰钀芥灦鏁伴噺涓嶄竴鑷达紝杩斿洖閿欒鍝嶅簲
+            Map<String, Object> errorResponse = new HashMap<>();
+            errorResponse.put("message", "Total workstations count does not match down workstations count.");
+            errorResponse.put("code", 400);
+            return ResponseEntity.badRequest().body(errorResponse);
+        }
+
+
+        // 鏋勫缓鍝嶅簲鏁版嵁
+
     }
 
 
 
 
 
+
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java b/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java
index e8fa9ab..4f631dc 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/entity/DownStorageCageDetails.java
@@ -44,6 +44,10 @@
     private String flowCardId;
 
     /**
+     * 鑶滅郴id
+     */
+    private int filmsid;
+    /**
      * 鐜荤拑绫诲瀷
      */
     private int glassType;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
index 0f94766..beb867d 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/DownWorkstationMapper.java
@@ -82,7 +82,15 @@
     @ResultType(Map.class)
     List<Map<String, Object>> getflowCardId();
 
-    @Update("UPDATE down_workstation SET flow_card_id = NULL, total_quantity = NULL, racks_number = NULL WHERE workstation_id = #{workstationId}")
+    @Update("UPDATE down_workstation SET flow_card_id = NULL, total_quantity = 0, racks_number = 0 WHERE workstation_id = #{workstationId}")
     void clearFlowCardInfoByWorkstationId(@Param("workstationId") int workstationId);
 
+    // 鑾峰彇鎬绘暟閲�
+    @Select("SELECT total_quantity FROM down_workstation WHERE workstation_id = #{workstationId}")
+    int getTotalQuantity(@Param("workstationId") int workstationId);
+
+    // 鑾峰彇钀芥灦鏁伴噺
+    @Select("SELECT racks_number FROM down_workstation WHERE workstation_id = #{workstationId}")
+    int getRacksNumber(@Param("workstationId") int workstationId);
+
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/GlassInfoMapper.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/GlassInfoMapper.java
index b226112..9dcc0e6 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/GlassInfoMapper.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/GlassInfoMapper.java
@@ -8,11 +8,11 @@
 @Mapper
 public interface GlassInfoMapper {
 
-    @Select("SELECT COUNT(*) FROM glass_info WHERE flow_card_id = #{flowCardId}")
+    @Select("SELECT COUNT(*) FROM glass_info WHERE flowcard_id = #{flowCardId}")
     int getGlassInfoCountByFlowCardId(@Param("flowCardId") String flowCardId);
 
-    @Update("UPDATE down_workstation SET  total_quantity = #{glassInfoCount} WHERE flow_card_id = #{flowCardId}")
-    int updateFlowCardIdAndCount(@Param("flowCardId") String flowCardId, @Param("glassInfoCount") int glassInfoCount);
+    @Update("UPDATE down_workstation SET  total_quantity = #{glassInfoCount},flow_card_id=#{flowCardId} WHERE workstation_id = #{workstationId}")
+    int updateFlowCardIdAndCount(@Param("flowCardId") String flowCardId, @Param("glassInfoCount") int glassInfoCount,@Param("workstationId")int workstationId);
 
     // 杩欓噷鍙互娣诲姞鍏朵粬 SQL 璇彞
 }
\ No newline at end of file
diff --git a/UnLoadGlassModule/src/main/java/com/mes/mapper/SelectInfo.java b/UnLoadGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
index b83c7ca..beee154 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/mapper/SelectInfo.java
@@ -6,7 +6,6 @@
 import org.apache.ibatis.annotations.*;
 
 import java.util.List;
-import java.util.Map;
 
 @Mapper
 public interface SelectInfo {
@@ -18,13 +17,13 @@
   //  @Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ")
 //    List<Tempered> SelectTemperedTerritory(String projeceid);
 //
-    // 鍒囧壊鐗堝浘鎸夊伐绋嬫煡璇�
-    @Select("select * from optimize_detail where project_no=#{projeceid} ")
-    List<Map> SelectCutTerritory(String projeceid);
-
-    // 鏌ヨ纾ㄨ竟淇℃伅
-    @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell}")
-    List<Map> SelectEdgInfo(String EndCell);
+//    // 鍒囧壊鐗堝浘鎸夊伐绋嬫煡璇�
+//    @Select("select * from optimize_detail where project_no=#{projeceid} ")
+//    List<Map> SelectCutTerritory(String projeceid);
+//
+//    // 鏌ヨ纾ㄨ竟淇℃伅
+//    @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell}")
+//    List<Map> SelectEdgInfo(String EndCell);
 
     // 鏌ヨ绗煎瓙鍐呯┖闂�
     @Select("select escd.* from down_storage_cage as esc LEFT JOIN down_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is null order by escd.slot")
@@ -59,7 +58,7 @@
     @Select("select * from down_glass_task where task_type='2' and task_stauts='0'")
     List<TaskCache> SelectOutCacheInfo();
 
-    // 鏌ヨ  A04  鎴� A15 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+    // 鏌ヨ  A06  鎴� A11 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
     @Select("select * from down_glass_task where task_type='2' and task_stauts='2' and end_cell=#{EndCell} limit 1")
     GlassInfo SelectLastOutCacheInfo(String EndCell);
 
@@ -71,13 +70,5 @@
     @Insert("INSERT into down_glass_task VALUES(#{id},#{start},#{end},#{type},0,)")
     Integer insertCacheTask(String id, String start, String end, String type,double width,double height,Integer filmsId,double thickness,String flowCardId);
 
-    //
-    // @Insert("INSERT `order`(order_id)VALUES(#{order_id})")
-    // Integer insert(Order order);
-    //
-    // @Delete("delete from `order` where id=#{id}")
-    // Integer deleteById(@Param("id") Integer id);
-    //
-    // @Update("update `order` set order_id=#{order_id} where id=#{id}")
-    // Integer update(@Param("id") Integer id,@Param("order_id") String order_id);
+
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassCacheLogic.java b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassCacheLogic.java
index e092020..9197e0b 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassCacheLogic.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/DownGlassCacheLogic.java
@@ -113,17 +113,18 @@
         boolean isOut=true;
         if (list.size()>0&&isOut) {
             DownStorageCageDetails item=list.get(0);
+           //
             if(G06=="0"&&G11=="1"){
                 //鍑哄埌  G06
 
-                selectInfo.insertCacheTask(item.getGlassId()+"","0","06","2",item.getWidth(),item.getHeight(),0,item.getThickness(),item.getFlowCardId());
+                selectInfo.insertCacheTask(item.getGlassId()+"","0","06","2",item.getWidth(),item.getHeight(),item.getFilmsid(),item.getThickness(),item.getFlowCardId());
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
             }else if(G06=="1"&&G11=="0"){
                 //鍑哄埌  G11
 
-                selectInfo.insertCacheTask(item.getGlassId()+"","0","11","2",item.getWidth(),item.getHeight(),0,item.getThickness(),item.getFlowCardId());
+                selectInfo.insertCacheTask(item.getGlassId()+"","0","11","2",item.getWidth(),item.getHeight(),item.getFilmsid(),item.getThickness(),item.getFlowCardId());
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
@@ -132,16 +133,18 @@
                 String endcell="06";
                 String SendEndcell="1";
                 boolean If_=false;
-                GlassInfo glassInfo04= selectInfo.SelectLastOutCacheInfo("06");
-                GlassInfo glassInfo05= selectInfo.SelectLastOutCacheInfo("11");
-                if(glassInfo05!=null&&glassInfo05.getWidth()==item.getWidth()&&glassInfo05.getHeight()==item.getHeight()){
+                GlassInfo glassInfo06= selectInfo.SelectLastOutCacheInfo("06");
+                GlassInfo glassInfo11= selectInfo.SelectLastOutCacheInfo("11");
+                GlassInfo glassInfo13= selectInfo.SelectLastOutCacheInfo("13");
+                if(glassInfo06!=null&&glassInfo11.getWidth()==item.getWidth()&&glassInfo06.getHeight()==item.getHeight()){
                     endcell="11";
                     SendEndcell="2";
-                }else if(glassInfo05!=null&&If_){
-                    //鍏朵粬鏉′欢
+                }else if(item.getHeight()>=3440&&item.getWidth()>=1440){
+                    //鍏朵粬鏉′欢浜哄伐澶勭悊
+
                 }
 
-                selectInfo.insertCacheTask(item.getGlassId()+"","0",endcell,"2",item.getWidth(),item.getHeight(),0,item.getThickness(),item.getFlowCardId());
+                selectInfo.insertCacheTask(item.getGlassId()+"","0",endcell,"2",item.getWidth(),item.getHeight(),item.getFilmsid(),item.getThickness(),item.getFlowCardId());
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
                 S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
                 return true;
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/DownWorkstationService.java b/UnLoadGlassModule/src/main/java/com/mes/service/DownWorkstationService.java
index ed801d7..9dca11e 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/DownWorkstationService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/DownWorkstationService.java
@@ -30,13 +30,27 @@
     }
 
 
+    public int getTotalQuantity(int workstationId) {
+        // 鎵ц鑾峰彇鎬绘暟閲忕殑閫昏緫锛屽彲浠ユ槸鏁版嵁搴撴煡璇㈡垨鍏朵粬涓氬姟閫昏緫
+        Integer totalQuantity = DownWorkstationMapper.getTotalQuantity(workstationId);
+        return totalQuantity != null ? totalQuantity : 0;
+    }
+
+    public int getRacksNumber(int workstationId) {
+        // 鎵ц鑾峰彇钀芥灦鏁伴噺鐨勯�昏緫锛屽彲浠ユ槸鏁版嵁搴撴煡璇㈡垨鍏朵粬涓氬姟閫昏緫
+        Integer racksNumber = DownWorkstationMapper.getRacksNumber(workstationId);
+        return racksNumber != null ? racksNumber : 0;
+    }
 
     public void clearFlowCardId(int workstationId) {
         // 鎵ц娓呴櫎鎸囧畾宸ヤ綅ID鐨勬祦绋嬪崱淇℃伅鐨勯�昏緫锛屽彲浠ユ槸鏁版嵁搴撴搷浣滄垨鍏朵粬涓氬姟閫昏緫
-        // 渚嬪锛�
+        // 鍒ゆ柇濡傛灉钀芥灦鏁伴噺绛変簬鎬绘暟閲忔墽琛屾竻闄わ紝鍚﹀垯涓嶆墽琛�
         DownWorkstationMapper.clearFlowCardInfoByWorkstationId(workstationId);
     }
 
 
 
+
+
+
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/GlassInfoService.java b/UnLoadGlassModule/src/main/java/com/mes/service/GlassInfoService.java
index bbe6ff8..83ca461 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/GlassInfoService.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/GlassInfoService.java
@@ -14,13 +14,13 @@
         return glassInfoMapper.getGlassInfoCountByFlowCardId(flowCardId);
     }
 
-    public void updateFlowCardIdAndCount(String flowCardId, int glassInfoCount) {
+    public void updateFlowCardIdAndCount(String flowCardId, int glassInfoCount,int workstationId) {
         // 璋冪敤 GlassInfoMapper 鐨� updateFlowCardIdAndCount 鏂规硶
-        int rowsAffected = glassInfoMapper.updateFlowCardIdAndCount(flowCardId, glassInfoCount);
+        int rowsAffected = glassInfoMapper.updateFlowCardIdAndCount(flowCardId, glassInfoCount,workstationId);
         if (rowsAffected > 0) {
-            System.out.println("鏇存柊娴佺▼鍗� ID 鍜屾暟閲忔垚鍔�");
+            System.out.println("鏇存柊鏋跺瓙涓婃祦绋嬪崱 ID 鍜屾暟閲忔垚鍔�");
         } else {
-            System.out.println("鏇存柊娴佺▼鍗� ID 鍜屾暟閲忓け璐�");
+            System.out.println("鏇存柊鏋跺瓙涓婃祦绋嬪崱 ID 鍜屾暟閲忓け璐�");
         }
     }
 
diff --git a/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java b/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
index d2dc1fa..266169e 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/service/Plchome.java
@@ -1,13 +1,18 @@
 package com.mes.service;
 
+import cn.hutool.json.JSONObject;
 import com.mes.tools.WebSocketServer;
 import org.springframework.stereotype.Component;
-
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import java.util.ArrayList;
 import java.util.function.Supplier;
 
 @Component
 public class Plchome extends Thread {
     private int i = 1;
+    private static final Logger log = LogManager.getLogger(Plchome.class);
+
     private final Supplier<DownGlassLogic> plcServiceSupplier;
 
     public Plchome() {
@@ -39,6 +44,17 @@
                 Thread.currentThread().interrupt();
                 e.printStackTrace();
             }
+
+            JSONObject jsonObject = new JSONObject();
+            // System.out.println(arraylist6);
+            jsonObject.append("data", 1);
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("unloadglass");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
+                    log.info("鍑嗗鍚� WebSocket 鏈嶅姟鍣ㄥ彂閫佹秷鎭�: {}", jsonObject.toString());
+                }}
+
         }
     }
 }
diff --git a/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java b/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
index aa4b161..13a3bde 100644
--- a/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
+++ b/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
@@ -157,4 +157,8 @@
     public void clearMessages() {
         messages.clear();
     }
+
+
+
+
 }
diff --git a/UnLoadGlassModule/src/main/resources/application.yml b/UnLoadGlassModule/src/main/resources/application.yml
index 8ba75c8..328e464 100644
--- a/UnLoadGlassModule/src/main/resources/application.yml
+++ b/UnLoadGlassModule/src/main/resources/application.yml
@@ -10,7 +10,6 @@
       primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-
         hangzhoumes:
             url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
             username: root
diff --git a/UnLoadGlassModule/target/classes/application.yml b/UnLoadGlassModule/target/classes/application.yml
index 8ba75c8..328e464 100644
--- a/UnLoadGlassModule/target/classes/application.yml
+++ b/UnLoadGlassModule/target/classes/application.yml
@@ -10,7 +10,6 @@
       primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
       strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
       datasource:
-
         hangzhoumes:
             url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8
             username: root
diff --git a/hangzhoumesParent/common/pom.xml b/hangzhoumesParent/common/pom.xml
new file mode 100644
index 0000000..874e97e
--- /dev/null
+++ b/hangzhoumesParent/common/pom.xml
@@ -0,0 +1,189 @@
+<?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>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.2.0</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>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>1.1.8</version>
+        </dependency>
+
+        <!--        鏁版嵁搴撴枃妗�-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.60</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>3.17</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>3.17</version>
+        </dependency>
+
+        <!--  鏁版嵁搴撹璁℃枃妗g敓鎴愬伐鍏�-->
+        <dependency>
+            <groupId>cn.smallbun.screw</groupId>
+            <artifactId>screw-core</artifactId>
+            <version>1.0.5</version>
+        </dependency>
+        <!--        2.0~2.2	Knife4j 2.0.0 ~ 2.0.6-->
+        <!--        <dependency>-->
+        <!--            <groupId>com.github.xiaoymin</groupId>-->
+        <!--            <artifactId>knife4j-spring-boot-starter</artifactId>-->
+        <!--            <version>2.0.6</version>-->
+        <!--        </dependency>-->
+
+        <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>
+
+
+        <!--jwt 椤圭洰鐢熸垚token-->
+        <dependency>
+            <groupId>com.auth0</groupId>
+            <artifactId>java-jwt</artifactId>
+            <version>3.10.3</version>
+        </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+        </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>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.session</groupId>
+            <artifactId>spring-session-data-redis</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</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..46c17d9
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/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>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>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java
new file mode 100644
index 0000000..39ffa21
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java
@@ -0,0 +1,29 @@
+package com.mes.common.config;
+
+import com.mes.common.interceptor.JwtInterceptor;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.annotation.Resource;
+
+@Configuration
+
+public class InterceptorConfig implements WebMvcConfigurer {
+    @Resource
+    private JwtInterceptor jwtInterceptor;
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(jwtInterceptor)
+                .addPathPatterns("/**")
+                .excludePathPatterns("/user/login",
+                        "/user/register",
+                        "/swagger-resources/**"
+                        ,"/webjars/**"
+                        ,"/v2/**"
+                        ,"/swagger-ui.html/**"
+                        ,"/swagger-ui.html#/**");
+    }
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MyCorsConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MyCorsConfig.java
new file mode 100644
index 0000000..7b3acd4
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MyCorsConfig.java
@@ -0,0 +1,25 @@
+package com.mes.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 14:13
+ * @Description:
+ */
+@Configuration
+public class MyCorsConfig {
+
+    @Bean
+    public WebMvcConfigurer corsConfigurer() {
+        return new WebMvcConfigurer() {
+            @Override
+            public void addCorsMappings(CorsRegistry registry) {
+                registry.addMapping("/**");
+            }
+        };
+    }
+}
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..440d02b
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/MybatisPlusConfig.java
@@ -0,0 +1,61 @@
+package com.mes.common.config;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.mybatis.spring.SqlSessionFactoryBean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import javax.annotation.Resource;
+import javax.sql.DataSource;
+
+
+/**
+ * @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;
+    }
+
+    @Resource
+    private DataSourceProperties dataSourceProperties;
+
+
+    @Bean(name = "dataSource")
+    public DataSource dataSource() {
+
+        DruidDataSource dataSource = new DruidDataSource();
+        dataSource.setUrl(dataSourceProperties.getUrl());
+        dataSource.setDriverClassName(dataSourceProperties.getDriverClassName());
+        dataSource.setUsername(dataSourceProperties.getUsername());
+        dataSource.setPassword(dataSourceProperties.getPassword());
+
+        return dataSource;
+
+    }
+
+    public SqlSessionFactory sqlSessionFactory() throws Exception {
+        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
+        sqlSessionFactoryBean.setDataSource(dataSource());
+        return sqlSessionFactoryBean.getObject();
+    }
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java
new file mode 100644
index 0000000..d5d4756
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java
@@ -0,0 +1,39 @@
+package com.mes.common.config;
+
+import com.fasterxml.jackson.annotation.JsonAutoDetect;
+import com.fasterxml.jackson.annotation.PropertyAccessor;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.StringRedisSerializer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/8 16:04
+ * @Description:
+ */
+@Configuration
+public class RedisTemplateConfig {
+    @Bean
+    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
+        RedisTemplate<String, Object> template = new RedisTemplate<>();
+        RedisSerializer<String> redisSerializer = new StringRedisSerializer();
+        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
+        ObjectMapper om = new ObjectMapper();
+        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+        om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+        jackson2JsonRedisSerializer.setObjectMapper(om);
+        template.setConnectionFactory(factory);
+        //key搴忓垪鍖栨柟寮�
+        template.setKeySerializer(redisSerializer);
+        //value搴忓垪鍖�
+        template.setValueSerializer(jackson2JsonRedisSerializer);
+        //value hashmap搴忓垪鍖�
+        template.setHashValueSerializer(jackson2JsonRedisSerializer);
+        return template;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java
new file mode 100644
index 0000000..84bb05c
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java
@@ -0,0 +1,20 @@
+package com.mes.common.config;
+
+import com.alibaba.fastjson.support.spring.GenericFastJsonRedisSerializer;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.data.redis.serializer.RedisSerializer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/1 13:16
+ * @Description:spring session 浣跨敤 json 搴忓垪鍖栨満鍒�
+ */
+@Configuration
+public class SessionConfig {
+    @Bean
+    public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
+        return new GenericFastJsonRedisSerializer();
+    }
+}
+
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..df6bfb7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Swagger2Config.java
@@ -0,0 +1,93 @@
+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.ParameterBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.schema.ModelRef;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.service.Parameter;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zhan_py
+ * @Date 2024/1/26 16:11
+ * Swagger2閰嶇疆淇℃伅
+ */
+@Configuration
+public class Swagger2Config {
+
+    @Bean
+    public Docket webApiConfig(){
+        List<Parameter> pars = new ArrayList<>();
+        ParameterBuilder tokenPar = new ParameterBuilder();
+        tokenPar.name("userId")
+                .description("鐢ㄦ埛token")
+                //.defaultValue(JwtHelper.createToken(1L, "admin"))
+                .defaultValue("1")
+                .modelRef(new ModelRef("string"))
+                .parameterType("header")
+                .required(false)
+                .build();
+        pars.add(tokenPar.build());
+
+        return new Docket(DocumentationType.SWAGGER_2)
+                .groupName("webApi")
+                .apiInfo(webApiInfo())
+                .select()
+                //鍙樉绀篴pi璺緞涓嬬殑椤甸潰
+                .apis(RequestHandlerSelectors.basePackage("com.mes"))
+                .paths(PathSelectors.any())
+                .build()
+                .globalOperationParameters(pars);
+    }
+
+    @Bean
+    public Docket adminApiConfig(){
+        List<Parameter> pars = new ArrayList<>();
+        ParameterBuilder tokenPar = new ParameterBuilder();
+        tokenPar.name("adminId")
+                .description("鐢ㄦ埛token")
+                .defaultValue("1")
+                .modelRef(new ModelRef("string"))
+                .parameterType("header")
+                .required(false)
+                .build();
+        pars.add(tokenPar.build());
+
+        return new Docket(DocumentationType.SWAGGER_2)
+                .groupName("adminApi")
+                .apiInfo(adminApiInfo())
+                .select()
+                //鍙樉绀篴dmin璺緞涓嬬殑椤甸潰
+                .apis(RequestHandlerSelectors.basePackage("com.mes"))
+                .paths(PathSelectors.any())
+                .build()
+                .globalOperationParameters(pars);
+    }
+
+    private ApiInfo webApiInfo(){
+        return new ApiInfoBuilder()
+                .title("缃戠珯-API鏂囨。")
+                .description("鏈枃妗f弿杩颁簡mes缃戠珯寰湇鍔℃帴鍙e畾涔�")
+                .version("1.0")
+                .contact(new Contact("zhan_py", "", ""))
+                .build();
+    }
+
+    private ApiInfo adminApiInfo(){
+        return new ApiInfoBuilder()
+                .title("鍚庡彴绠$悊绯荤粺-API鏂囨。")
+                .description("鏈枃妗f弿杩颁簡mes鍚庡彴绯荤粺鏈嶅姟鎺ュ彛瀹氫箟")
+                .version("1.0")
+                .contact(new Contact("zhan_py", "", ""))
+                .build();
+    }
+}
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/common/interceptor/JwtInterceptor.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/interceptor/JwtInterceptor.java
new file mode 100644
index 0000000..b95b9e1
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/interceptor/JwtInterceptor.java
@@ -0,0 +1,47 @@
+package com.mes.common.interceptor;
+
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Component
+public class JwtInterceptor implements HandlerInterceptor {
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        //return HandlerInterceptor.super.preHandle(request, response, handler);
+        /*String token=request.getHeader("token");
+        if(!(handler instanceof HandlerMethod)){
+            return  true;
+        }
+
+        if(StrUtil.isBlank(token)){
+            throw new ServiceException(Constants.Code_401,"鏃爐oken,閲嶆柊鐧婚檰");
+        }
+        String userId;
+        try{
+            userId = JWT.decode(token).getAudience().get(0);
+        }catch (Exception e){
+            throw new ServiceException(Constants.Code_500,"token鏍煎紡閿欒");
+        }
+
+        UserDTO getUserDTO = cacheUtil.getCacheData(userId);
+
+        if(getUserDTO != null && !getUserDTO.getToken().equals(token)){
+            throw new ServiceException(Constants.Code_600,"鐢ㄦ埛鍦ㄥ叾浠栦綅缃櫥闄�");
+        }
+
+
+        String password=userService.getUserByID(userId).toLowerCase();
+        //鐢ㄦ埛瀵嗙爜鍔犵楠岃瘉
+        JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(password)).build();
+        try {
+            jwtVerifier.verify(token);
+        } catch (JWTVerificationException e) {
+            throw new ServiceException(Constants.Code_401,"token楠岃瘉澶辫触,璇烽噸鏂扮櫥闄�");
+        }*/
+        return true;
+    }
+
+}
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..218263e
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -0,0 +1,85 @@
+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:\\workspace\\hangzhoumesParent1\\");
+
+        gc.setServiceName("%sService");	//鍘绘帀Service鎺ュ彛鐨勯瀛楁瘝I
+        gc.setAuthor("zhoush");
+        gc.setOpen(false);
+        mpg.setGlobalConfig(gc);
+
+        // 3銆佹暟鎹簮閰嶇疆
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setUrl("jdbc:mysql://10.153.19.150:3306/hangzhoumes?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("userinfo"); //妯″潡鍚�
+        pc.setController("controller");
+        pc.setService("service");
+        pc.setMapper("mapper");
+        mpg.setPackageInfo(pc);
+
+        // 5銆佺瓥鐣ラ厤缃�
+        StrategyConfig strategy = new StrategyConfig();
+
+//        strategy.setInclude("activity_info", "activity_rule", "activity_sku", "coupon_info", "coupon_range",
+//                "coupon_use");
+
+        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..4352331
--- /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.mysql.cj.jdbc.Driver");
+        hikariConfig.setJdbcUrl("jdbc:mysql://10.153.19.150:3306/hangzhoumes"+"?serverTimezone=GMT%2B8");
+        hikariConfig.setUsername("root");
+        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:\\椤圭洰\\椤圭洰鏂囨。\\鏉窞鍒╂潵1")
+                //鎵撳紑鐩綍
+                .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/ExportToWord.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java
new file mode 100644
index 0000000..e380bcc
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java
@@ -0,0 +1,313 @@
+package com.mes.tools;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/26 8:16
+ * @Description:
+ */
+import com.alibaba.fastjson.JSONObject;
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFParagraph;
+import org.apache.poi.xwpf.usermodel.XWPFRun;
+import org.apache.poi.xwpf.usermodel.XWPFTable;
+
+import java.io.FileOutputStream;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.PreparedStatement;
+import java.sql.ResultSet;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @Method: 鏁版嵁搴撹〃缁撴瀯word瀵煎嚭
+ * @Description: 鏁版嵁搴撹〃缁撴瀯word瀵煎嚭
+ **/
+public class ExportToWord {
+
+    //    private final String DRIVER = "com.mysql.jdbc.Driver";  //MySQL5.0
+    private final String DRIVER = "com.mysql.cj.jdbc.Driver";
+    private final String URL = "jdbc:mysql://10.153.19.150:3306/hangzhoumes"+"?serverTimezone=GMT%2B8";
+    //鏁版嵁搴撹处鍙�
+    private final String USER_NAME = "root";
+    //鏁版嵁搴撳瘑鐮�
+    private final String PASS_WORD = "beibo.123/";
+    //瀵瑰簲鏁版嵁搴�  姝ゅ鏄綘鏈湴瀵瑰簲鐨勬暟鎹簱鍚嶇О
+    private final String database = "hangzhoumes";
+    //瀵瑰簲杈撳嚭鍦板潃
+    private final String reportPath = "E:\\椤圭洰\\椤圭洰鏂囨。\\鏉窞鍒╂潵\\";
+
+    // 鍚姩鏂规硶
+    public static void main(String[] args) {
+
+        try {
+            ExportToWord rd = new ExportToWord ();
+            rd.report();
+        }catch (Exception e){
+            System.out.println("寮傚父锛氳嚜琛屽鐞嗘垨鑰呰仈绯绘垜閮介様浠�.");
+            e.printStackTrace();
+        }
+
+    }
+
+
+    Connection conn = null;
+    PreparedStatement pst = null;
+    ResultSet rs = null;
+
+    // 鑾峰彇鏌ヨ鏁版嵁
+    public Map<String,List<TableColumn>> getData() throws Exception{
+
+        System.out.println("鏁版嵁鐢熸垚涓紝璇风◢绛�...");
+        Map<String,List<TableColumn>> map = new HashMap<>();
+
+        List<Table> tables = getTables(database);
+
+        for (Table table : tables) {
+            List<TableColumn> columns = getColumns(database,table.getTableName());
+            map.put(table.getTableName(),columns);
+        }
+
+        return map;
+
+    }
+
+
+    // 鑾峰彇琛ㄥ瓧娈典俊鎭�
+    public List<TableColumn>  getColumns(String database,String tableName) throws Exception{
+
+        String sql = "select column_name,column_comment,column_type,is_nullable, column_key from information_schema.columns  where  table_schema=? and table_name=? ";// group by column_name
+        ResultSet rs = getConn(database,tableName,sql);
+
+        List<TableColumn> tableColumns = new ArrayList<>();
+
+        while (rs.next()){
+
+            TableColumn tc = new TableColumn();
+            tc.setTableName(tableName);
+            tc.setColumnName(rs.getString("column_name"));
+            tc.setColumnType(rs.getString("column_type"));
+            tc.setColumnKey(rs.getString("column_key"));
+            tc.setIsNullable(rs.getString("is_nullable"));
+            tc.setColumnComment(rs.getString("column_comment"));
+            tableColumns.add(tc);
+
+        }
+
+        releaseConn();
+
+        return tableColumns;
+
+    }
+
+
+    // 鑾峰彇鎵�鏈夎〃
+    public List<Table> getTables(String database) throws Exception{
+
+        String  sql = "select table_name,table_comment from information_schema.tables where table_schema=?";
+        ResultSet rs = getConn(database, "",sql);
+
+        List<Table> tables = new ArrayList<>();
+        while(rs.next()){
+            Table table = new Table();
+            table.setTableName(rs.getString( "table_name"));
+            table.setTableCommont(rs.getString("table_comment"));
+            tables.add(table);
+        }
+
+        releaseConn();
+        return  tables;
+
+    }
+
+    // 杩炴帴鏁版嵁搴�
+    private ResultSet getConn(String dataBase,String tableName,String sql){
+
+        try{
+
+            Class.forName(DRIVER);
+            conn = DriverManager.getConnection(URL,USER_NAME,PASS_WORD);
+            pst = conn.prepareStatement(sql);
+            pst.setString(1,dataBase);
+            if(!"".equals(tableName)){
+                pst.setString(2,tableName);
+            }
+            rs = pst.executeQuery();
+            return  rs;
+
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+
+        return null;
+
+    }
+
+    // 閲婃斁杩炴帴
+    private void  releaseConn(){
+        try{
+            if(rs != null ){
+                rs.close();
+            }
+            if(pst != null){
+                pst.close();
+            }
+            if(conn != null){
+                conn.close();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+    }
+
+
+    // 瀵煎嚭鏁版嵁
+    public void report()  throws  Exception{
+
+        Map<String, List<TableColumn>> data = this.getData();       // 琛ㄥ悕锛氳〃浣�
+        List<Table> tables = this.getTables(this.database);         // 琛ㄤ綋(鍒楀悕銆佺被鍨嬨�佹敞閲�)
+        Map<String,String> tableMap = new HashMap<>();              // 琛ㄥ悕:涓枃鍚�
+
+        JSONObject json = new JSONObject((HashMap)data);
+
+        for (Table table : tables) {
+            tableMap.put(table.getTableName(),table.getTableCommont());
+        }
+
+        // 鏋勫缓琛ㄦ牸鏁版嵁
+        XWPFDocument document = new XWPFDocument();
+
+        Integer i = 1;
+        for (String tableName : data.keySet()) {
+
+            XWPFParagraph paragraph = document.createParagraph();                // 鍒涘缓鏍囬瀵硅薄
+            XWPFRun run = paragraph.createRun();                                 // 鍒涘缓鏂囨湰瀵硅薄
+            run.setText((i+"銆�"+tableName+"    "+tableMap.get(tableName)));      // 鏍囬鍚嶇О
+            run.setFontSize(14);                                                 // 瀛椾綋澶у皬
+            run.setBold(true);                                                   // 瀛椾綋鍔犵矖
+
+            int j = 0;
+            XWPFTable table = document.createTable(data.get(tableName).size()+1,5);
+            // 绗竴琛�
+            table.setCellMargins(50,400,50,400);
+            table.getRow(j).getCell(0).setText("瀛楁鍚嶇О");
+            table.getRow(j).getCell(1).setText("瀛楁绫诲瀷");
+            table.getRow(j).getCell(2).setText("绾︽潫");
+            table.getRow(j).getCell(3).setText("涓虹┖");
+            table.getRow(j).getCell(4).setText("瀛楁鍚箟");
+            j++;
+
+            for (TableColumn tableColumn : data.get(tableName)) {
+
+                table.getRow(j).getCell(0).setText(tableColumn.getColumnName());
+                table.getRow(j).getCell(1).setText(tableColumn.getColumnType());
+                table.getRow(j).getCell(2).setText(tableColumn.getColumnKey());
+                table.getRow(j).getCell(3).setText(tableColumn.getIsNullable());
+                table.getRow(j).getCell(4).setText(tableColumn.getColumnComment());
+                j++;
+
+            }
+            i++;
+        }
+
+        // 鏂囨。杈撳嚭
+        FileOutputStream out = new FileOutputStream(reportPath + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()).toString()+"_"+database +".docx");
+        document.write(out);
+        out.close();
+        System.out.println("Word鐢熸垚瀹屾垚!!!");
+
+    }
+
+    // 琛�
+    class Table{
+
+        private String tableName;
+
+        private String tableCommont;
+
+        public String getTableName() {
+            return tableName;
+        }
+
+        public void setTableName(String tableName) {
+            this.tableName = tableName;
+        }
+
+        public String getTableCommont() {
+            return tableCommont;
+        }
+
+        public void setTableCommont(String tableCommont) {
+            this.tableCommont = tableCommont;
+        }
+
+    }
+
+    // 琛ㄥ垪淇℃伅
+    class TableColumn{
+        // 琛ㄥ悕
+        private String tableName;
+        // 瀛楁鍚�
+        private String columnName;
+        // 瀛楁绫诲瀷
+        private String columnType;
+        // 瀛楁娉ㄩ噴
+        private String columnComment;
+        // 鍙惁涓虹┖
+        private String isNullable;
+        // 绾︽潫
+        private String columnKey;
+
+        public String getTableName() {
+            return tableName;
+        }
+
+        public void setTableName(String tableName) {
+            this.tableName = tableName;
+        }
+
+        public String getColumnName() {
+            return columnName;
+        }
+
+        public void setColumnName(String columnName) {
+            this.columnName = columnName;
+        }
+
+        public String getColumnType() {
+            return columnType;
+        }
+
+        public void setColumnType(String columnType) {
+            this.columnType = columnType;
+        }
+
+        public String getColumnComment() {
+            return columnComment;
+        }
+
+        public void setColumnComment(String columnComment) {
+            this.columnComment = columnComment;
+        }
+
+        public String getIsNullable() {
+            return isNullable;
+        }
+
+        public void setIsNullable(String isNullable) {
+            this.isNullable = isNullable;
+        }
+
+        public String getColumnKey() {
+            return columnKey;
+        }
+
+        public void setColumnKey(String columnKey) {
+            this.columnKey = columnKey;
+        }
+
+    }
+
+
+}
+
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..fafbd45
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/S7control.java
@@ -0,0 +1,421 @@
+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 com.google.common.primitives.Bytes;
+
+import java.nio.charset.StandardCharsets;
+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();
+        }
+        s7PLC.checkConnected();
+    }
+
+    /**
+     * s7閫氳杩炴帴鐘舵��
+     */
+    public boolean CheckConnected() {
+        return s7PLC.checkConnected();
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
+     *
+     * @param address 鍦板潃
+     * @param data    word鐨勫��
+     */
+    public void WriteWord(String address, short data) {
+        if (s7PLC == null) {
+            return;
+        }
+        s7PLC.writeInt16(address, data);
+    }
+
+    /**
+     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜word
+     *
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+    public void WriteWord(String address, List<Short> datas) {
+        if (s7PLC == null) {
+            return;
+        }
+        // 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.addInt16(addresslist.get(i), datas.get(i));
+        }
+        s7PLC.writeMultiData(addressWrite);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜word
+     *
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓狟it
+     *
+     * @param address 鍦板潃
+     * @param data    Bit鐨勫��
+     */
+    public void WriteBit(String address, Boolean data) {
+        if (s7PLC == null) {
+            return;
+        }
+        s7PLC.writeBoolean(address, data);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜bit
+     *
+     * @param address 鍦板潃
+     * @param datas   bit鐨勫��
+     */
+    public void WriteBit(List<String> address, List<Boolean> datas) {
+        if (s7PLC == null) {
+            return;
+        }
+        // s7PLC.write(address, data);
+
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < address.size(); i++) {
+            addressWrite.addBoolean(address.get(i), datas.get(i));
+        }
+        s7PLC.writeMultiData(addressWrite);
+    }
+
+    /**
+     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜bit
+     *
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+    public void WriteBit(String address, List<Boolean> datas) {
+        if (s7PLC == null) {
+            return;
+        }
+        // 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));
+        }
+        s7PLC.writeMultiData(addressWrite);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜byte
+     *
+     * @param address 鍦板潃
+     * @param datas   byte鐨勫��
+     */
+    public void WriteByte(String address, byte[] datas) {
+        if (s7PLC == null) {
+            return;
+        }
+        // s7PLC.write(address, data); 
+        s7PLC.writeByte(address, datas);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
+     *
+     * @param address 鍦板潃
+     * @return 缁撴灉
+     */
+    public List<Short> ReadWord(List<String> address) {
+        if (s7PLC == null) {
+            return null;
+        }
+
+        try {
+            return s7PLC.readInt16(address);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+    }
+
+
+    private int getIndexFromAddress(String address) {
+
+        // 鍙互瑙f瀽鍑哄湴鍧�涓殑鏁板瓧閮ㄥ垎锛屽苟杞崲涓烘暣鏁�
+        return 0;
+    }
+
+    private String getAddressFromIndex(int index) {
+
+        // 鏁存暟杞崲涓哄湴鍧�鏍煎紡鐨勫瓧绗︿覆
+        return "";
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
+     *
+     * @param address 鍦板潃
+     * @param count   杩炵画璇诲灏戜釜word
+     * @return 缁撴灉
+     */
+    public List<Short> ReadWord(String address, int count) {
+        if (s7PLC == null) {
+            return null;
+        }
+
+        List<String> addresslist = GetAddressList(address, count, 16);
+        try {
+            return s7PLC.readInt16(addresslist);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+
+            return null;
+        }
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇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);
+
+        try {
+            return s7PLC.readByte(address, count);
+        } catch (Exception e) {
+            // 澶勭悊寮傚父
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鎸塨it浣� 0 flase 1 true 璇诲彇缁撴灉
+     *
+     * @param addresslist 鍦板潃闆�
+     * @return Boolean缁撴灉
+     */
+    public List<Boolean> ReadBits(List<String> addresslist) {
+        if (s7PLC == null) {
+            return null;
+        }
+        return s7PLC.readBoolean(addresslist);
+    }
+
+    //璇诲彇涓嶈繛缁湴鍧�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;
+    }
+
+
+    //璇诲彇String
+    public List<String> readStrings(List<String> addressList) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<String> result = new ArrayList<>();
+        for (String address : addressList) {
+            try {
+                byte[] bytes = s7PLC.readByte(address, 14);
+                if (bytes != null) {
+                    String str = new String(bytes, StandardCharsets.UTF_8);
+                    result.add(str);
+                }
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+                result.add(null);
+            }
+        }
+
+        return result;
+    }
+
+
+    //涓嶈繛缁湴鍧�鍐欏叆Word
+    public void WriteWord(List<String> address, List<Short> datas) {
+        if (s7PLC == null) {
+            return;
+        }
+
+        for (int i = 0; i < address.size(); i++) {
+            String addr = address.get(i);
+            short data = datas.get(i);
+
+            if (addr.contains("-")) {
+                outmesid(String.valueOf(data), addr); // 鍗曠嫭澶勭悊甯︾牬鎶樺彿鐨勫湴鍧�
+            } else {
+                s7PLC.writeInt16(addr, data); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
+            }
+        }
+    }
+
+
+    //瀛楃涓插啓鍏�
+    public void outmesid(String data, String addr) {
+//        System.out.println("outmesid: " + data);
+        List<Byte> glassidlist = new ArrayList<>();
+        String[] parts = addr.split("-");
+        if (parts.length == 2) {
+            addr = parts[0]; // 鍙繚鐣� "-" 鍓嶉潰鐨勯儴鍒�
+        }
+        for (char iditem : data.toCharArray()) {
+            glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
+        }
+        byte[] bytes = Bytes.toArray(glassidlist);
+        WriteByte(addr, bytes);
+    }
+
+    //璇诲彇涓嶈繛缁瓀ord
+    public List<Short> readWords(List<String> addresses) {
+        if (s7PLC == null) {
+            return null;
+        }
+
+        List<Short> data = new ArrayList<>();
+
+        for (String address : addresses) {
+            try {
+
+                // 鍗曚釜鍦板潃
+                Short value = s7PLC.readInt16(address);
+                data.add(value);
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+
+            }
+
+        }
+        return data;
+    }
+
+    //璇诲彇鏃堕棿
+    public Long readtime(String address) {
+        if (s7PLC == null) {
+            return null;
+        }
+        try {
+            return s7PLC.readTime(address);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+    }
+
+
+    public void writetime(String address, long datas) {
+        if (s7PLC == null)
+            return;
+
+
+        s7PLC.writeTime(address, datas); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
+    }
+
+
+    private int extractAddressNumber(String address) {
+        String numberStr = address.replaceAll("\\D+", ""); // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒�
+        return Integer.parseInt(numberStr);
+    }
+
+
+    /**
+     * 浠庢寚瀹氱殑鍦板潃寮�濮� 杩炵画鎸塨it浣嶈鍙�
+     *
+     * @param address 鍦板潃
+     * @param count   闀垮害
+     * @return Boolean缁撴灉
+     */
+    public List<Boolean> ReadBits(String address, int count) {
+        if (s7PLC == null)
+            return null;
+        List<String> addresslist = GetAddressList(address, count, 1);
+        try {
+            return s7PLC.readBoolean(addresslist);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+
+    }
+
+    ;
+
+
+    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/TokenTools.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java
new file mode 100644
index 0000000..bb35843
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java
@@ -0,0 +1,22 @@
+package com.mes.tools;
+
+import cn.hutool.core.date.DateUtil;
+import com.auth0.jwt.JWT;
+import com.auth0.jwt.algorithms.Algorithm;
+
+import java.util.Date;
+
+public class TokenTools {
+
+    /**
+     * 鐢熸垚token
+     *
+     * @return
+     */
+    public static String getToken(String userid, String sign) {
+        return JWT.create().withAudience(userid) // 灏� user id 淇濆瓨鍒� token 閲岄潰,浣滀负杞借嵎
+                .withExpiresAt(DateUtil.offsetHour(new Date(), 24)) // 2灏忔椂鍚巘oken杩囨湡
+                .sign(Algorithm.HMAC256(sign)); // 浠� password 浣滀负 token 鐨勫瘑閽�
+
+    }
+}
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..653275e
--- /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/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..539967c
--- /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/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/springsecurity/pom.xml b/hangzhoumesParent/common/springsecurity/pom.xml
new file mode 100644
index 0000000..cca1425
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/pom.xml
@@ -0,0 +1,37 @@
+<?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>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>-->
+<!--        </dependency>-->
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java
new file mode 100644
index 0000000..610451e
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/config/TokenWebSecurityConfig.java
@@ -0,0 +1,69 @@
+//package com.mes.config;
+//
+//
+//import com.mes.filter.TokenAuthFilter;
+//import com.mes.filter.TokenLoginFilter;
+//import com.mes.security.DefaultPasswordEncoder;
+//import com.mes.security.TokenLogoutHandler;
+//import com.mes.security.TokenManager;
+//import com.mes.security.UnauthEntryPoint;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+//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.builders.WebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//import org.springframework.security.core.userdetails.UserDetailsService;
+//
+//@Configuration
+//@EnableWebSecurity
+//@EnableGlobalMethodSecurity(prePostEnabled = true)
+//public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
+//
+//    private TokenManager tokenManager;
+//    private RedisTemplate redisTemplate;
+//    private DefaultPasswordEncoder defaultPasswordEncoder;
+//    private UserDetailsService userDetailsService;
+//
+//    @Autowired
+//    public TokenWebSecurityConfig(UserDetailsService userDetailsService, DefaultPasswordEncoder defaultPasswordEncoder,
+//                                  TokenManager tokenManager, RedisTemplate redisTemplate) {
+//        this.userDetailsService = userDetailsService;
+//        this.defaultPasswordEncoder = defaultPasswordEncoder;
+//        this.tokenManager = tokenManager;
+//        this.redisTemplate = redisTemplate;
+//    }
+//
+//    /**
+//     * 閰嶇疆璁剧疆
+//     * @param http
+//     * @throws Exception
+//     */
+//    //璁剧疆閫�鍑虹殑鍦板潃鍜宼oken锛宺edis鎿嶄綔鍦板潃
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//        http.exceptionHandling()
+//                .authenticationEntryPoint(new UnauthEntryPoint())//娌℃湁鏉冮檺璁块棶
+//                .and().csrf().disable()
+//                .authorizeRequests()
+//                .anyRequest().authenticated()
+//                .and().logout().logoutUrl("/admin/acl/index/logout")//閫�鍑鸿矾寰�
+//                .addLogoutHandler(new TokenLogoutHandler(tokenManager,redisTemplate)).and()
+//                .addFilter(new TokenLoginFilter(authenticationManager(), tokenManager, redisTemplate))
+//                .addFilter(new TokenAuthFilter(authenticationManager(), tokenManager, redisTemplate)).httpBasic();
+//    }
+//
+//    //璋冪敤userDetailsService鍜屽瘑鐮佸鐞�
+//    @Override
+//    public void configure(AuthenticationManagerBuilder auth) throws Exception {
+//        auth.userDetailsService(userDetailsService).passwordEncoder(defaultPasswordEncoder);
+//    }
+//    //涓嶈繘琛岃璇佺殑璺緞锛屽彲浠ョ洿鎺ヨ闂�
+//    @Override
+//    public void configure(WebSecurity web) throws Exception {
+//        web.ignoring().antMatchers("/api/**");
+//    }
+//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java
new file mode 100644
index 0000000..b0f9c1a
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/SecurityUser.java
@@ -0,0 +1,73 @@
+//package com.mes.entity;
+//
+//import lombok.Data;
+//import org.springframework.security.core.GrantedAuthority;
+//import org.springframework.security.core.authority.SimpleGrantedAuthority;
+//import org.springframework.security.core.userdetails.UserDetails;
+//import org.springframework.util.StringUtils;
+//
+//import java.util.ArrayList;
+//import java.util.Collection;
+//import java.util.List;
+//
+//@Data
+//public class SecurityUser implements UserDetails {
+//
+//    //褰撳墠鐧诲綍鐢ㄦ埛
+//    private transient User currentUserInfo;
+//
+//    //褰撳墠鏉冮檺
+//    private List<String> permissionValueList;
+//
+//    public SecurityUser() {
+//    }
+//
+//    public SecurityUser(User user) {
+//        if (user != null) {
+//            this.currentUserInfo = user;
+//        }
+//    }
+//
+//    @Override
+//    public Collection<? extends GrantedAuthority> getAuthorities() {
+//        Collection<GrantedAuthority> authorities = new ArrayList<>();
+//        for(String permissionValue : permissionValueList) {
+//            if(StringUtils.isEmpty(permissionValue)) continue;
+//            SimpleGrantedAuthority authority = new SimpleGrantedAuthority(permissionValue);
+//            authorities.add(authority);
+//        }
+//
+//        return authorities;
+//    }
+//
+//    @Override
+//    public String getPassword() {
+//        return currentUserInfo.getPassword();
+//    }
+//
+//    @Override
+//    public String getUsername() {
+//        return currentUserInfo.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/entity/User.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/User.java
new file mode 100644
index 0000000..2e3ec7e
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/entity/User.java
@@ -0,0 +1,31 @@
+//package com.mes.entity;
+//
+//import io.swagger.annotations.ApiModel;
+//import io.swagger.annotations.ApiModelProperty;
+//import lombok.Data;
+//
+//import java.io.Serializable;
+//
+//@Data
+//@ApiModel(description = "鐢ㄦ埛瀹炰綋绫�")
+//public class User implements Serializable {
+//
+//    private static final long serialVersionUID = 1L;
+//
+//    @ApiModelProperty(value = "寰俊openid")
+//    private String username;
+//
+//    @ApiModelProperty(value = "瀵嗙爜")
+//    private String password;
+//
+//    @ApiModelProperty(value = "鏄电О")
+//    private String nickName;
+//
+//    @ApiModelProperty(value = "鐢ㄦ埛澶村儚")
+//    private String salt;
+//
+//    @ApiModelProperty(value = "鐢ㄦ埛绛惧悕")
+//    private String token;
+//
+//}
+//
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java
new file mode 100644
index 0000000..5b1fd72
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenAuthFilter.java
@@ -0,0 +1,60 @@
+//package com.mes.filter;
+//
+//import com.mes.security.TokenManager;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.security.authentication.AuthenticationManager;
+//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.security.web.authentication.www.BasicAuthenticationFilter;
+//
+//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.ArrayList;
+//import java.util.Collection;
+//import java.util.List;
+//
+//public class TokenAuthFilter extends BasicAuthenticationFilter {
+//
+//    private TokenManager tokenManager;
+//    private RedisTemplate redisTemplate;
+//    public TokenAuthFilter(AuthenticationManager authenticationManager,TokenManager tokenManager,RedisTemplate redisTemplate) {
+//        super(authenticationManager);
+//        this.tokenManager = tokenManager;
+//        this.redisTemplate = redisTemplate;
+//    }
+//
+//    @Override
+//    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException {
+//        //鑾峰彇褰撳墠璁よ瘉鎴愬姛鐢ㄦ埛鏉冮檺淇℃伅
+//        UsernamePasswordAuthenticationToken authRequest = getAuthentication(request);
+//        //鍒ゆ柇濡傛灉鏈夋潈闄愪俊鎭紝鏀惧埌鏉冮檺涓婁笅鏂囦腑
+//        if(authRequest != null) {
+//            SecurityContextHolder.getContext().setAuthentication(authRequest);
+//        }
+//        chain.doFilter(request,response);
+//    }
+//
+//    private UsernamePasswordAuthenticationToken getAuthentication(HttpServletRequest request) {
+//        //浠巋eader鑾峰彇token
+//        String token = request.getHeader("token");
+//        if(token != null) {
+//            //浠巘oken鑾峰彇鐢ㄦ埛鍚�
+//            String username = tokenManager.getUserInfoFromToken(token);
+//            //浠巖edis鑾峰彇瀵瑰簲鏉冮檺鍒楄〃
+//            List<String> permissionValueList = (List<String>)redisTemplate.opsForValue().get(username);
+//            Collection<GrantedAuthority> authority = new ArrayList<>();
+//            for(String permissionValue : permissionValueList) {
+//                SimpleGrantedAuthority auth = new SimpleGrantedAuthority(permissionValue);
+//                authority.add(auth);
+//            }
+//            return new UsernamePasswordAuthenticationToken(username,token,authority);
+//        }
+//        return null;
+//    }
+//
+//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java
new file mode 100644
index 0000000..d3f5f4c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/filter/TokenLoginFilter.java
@@ -0,0 +1,74 @@
+//package com.mes.filter;
+//
+//import com.fasterxml.jackson.databind.ObjectMapper;
+//import com.mes.utils.Result;
+//import com.mes.entity.SecurityUser;
+//import com.mes.entity.User;
+//import com.mes.security.TokenManager;
+//import com.mes.utils.ResponseUtil;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.security.authentication.AuthenticationManager;
+//import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+//import org.springframework.security.core.Authentication;
+//import org.springframework.security.core.AuthenticationException;
+//import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
+//import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
+//
+//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.ArrayList;
+//
+//public class TokenLoginFilter extends UsernamePasswordAuthenticationFilter {
+//
+//    private TokenManager tokenManager;
+//    private RedisTemplate redisTemplate;
+//    private AuthenticationManager authenticationManager;
+//
+//    public TokenLoginFilter(AuthenticationManager authenticationManager, TokenManager tokenManager, RedisTemplate redisTemplate) {
+//        this.authenticationManager = authenticationManager;
+//        this.tokenManager = tokenManager;
+//        this.redisTemplate = redisTemplate;
+//        this.setPostOnly(false);
+//        this.setRequiresAuthenticationRequestMatcher(new AntPathRequestMatcher("/admin/acl/login","POST"));
+//    }
+//
+//    //1 鑾峰彇琛ㄥ崟鎻愪氦鐢ㄦ埛鍚嶅拰瀵嗙爜
+//    @Override
+//    public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response)
+//            throws AuthenticationException {
+//        //鑾峰彇琛ㄥ崟鎻愪氦鏁版嵁
+//        try {
+//            User user = new ObjectMapper().readValue(request.getInputStream(), User.class);
+//            return authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(user.getUsername(),user.getPassword(),
+//                    new ArrayList<>()));
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//            throw new RuntimeException();
+//        }
+//    }
+//
+//    //2 璁よ瘉鎴愬姛璋冪敤鐨勬柟娉�
+//    @Override
+//    protected void successfulAuthentication(HttpServletRequest request,
+//                                            HttpServletResponse response, FilterChain chain, Authentication authResult)
+//            throws IOException, ServletException {
+//        //璁よ瘉鎴愬姛锛屽緱鍒拌璇佹垚鍔熶箣鍚庣敤鎴蜂俊鎭�
+//        SecurityUser user = (SecurityUser)authResult.getPrincipal();
+//        //鏍规嵁鐢ㄦ埛鍚嶇敓鎴恡oken
+//        String token = tokenManager.createToken(user.getCurrentUserInfo().getUsername());
+//        //鎶婄敤鎴峰悕绉板拰鐢ㄦ埛鏉冮檺鍒楄〃鏀惧埌redis
+//        redisTemplate.opsForValue().set(user.getCurrentUserInfo().getUsername(),user.getPermissionValueList());
+//        //杩斿洖token
+//        ResponseUtil.out(response, Result.success(token));
+//    }
+//
+//    //3 璁よ瘉澶辫触璋冪敤鐨勬柟娉�
+//    @Override
+//    protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed)
+//            throws IOException, ServletException {
+//        ResponseUtil.out(response, Result.error());
+//    }
+//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java
new file mode 100644
index 0000000..fe7efc7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/DefaultPasswordEncoder.java
@@ -0,0 +1,25 @@
+//package com.mes.security;
+//
+//import com.mes.utils.MD5;
+//import org.springframework.security.crypto.password.PasswordEncoder;
+//import org.springframework.stereotype.Component;
+//
+//@Component
+//public class DefaultPasswordEncoder implements PasswordEncoder {
+//
+//    public DefaultPasswordEncoder() {
+//        this(-1);
+//    }
+//    public DefaultPasswordEncoder(int strength) {
+//    }
+//    //杩涜MD5鍔犲瘑
+//    @Override
+//    public String encode(CharSequence charSequence) {
+//        return MD5.encrypt(charSequence.toString());
+//    }
+//    //杩涜瀵嗙爜姣斿
+//    @Override
+//    public boolean matches(CharSequence charSequence, String encodedPassword) {
+//        return encodedPassword.equals(MD5.encrypt(charSequence.toString()));
+//    }
+//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java
new file mode 100644
index 0000000..e696abc
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenLogoutHandler.java
@@ -0,0 +1,35 @@
+//package com.mes.security;
+//
+//import com.mes.utils.Result;
+//import com.mes.utils.ResponseUtil;
+//import org.springframework.data.redis.core.RedisTemplate;
+//import org.springframework.security.core.Authentication;
+//import org.springframework.security.web.authentication.logout.LogoutHandler;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//
+////閫�鍑哄鐞嗗櫒
+//public class TokenLogoutHandler implements LogoutHandler {
+//    private TokenManager tokenManager;
+//    private RedisTemplate redisTemplate;
+//
+//    public TokenLogoutHandler(TokenManager tokenManager,RedisTemplate redisTemplate) {
+//        this.tokenManager = tokenManager;
+//        this.redisTemplate = redisTemplate;
+//    }
+//    @Override
+//    public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
+//        //1 浠巋eader閲岄潰鑾峰彇token
+//        //2 token涓嶄负绌猴紝绉婚櫎token锛屼粠redis鍒犻櫎token
+//        String token = request.getHeader("token");
+//        if(token != null) {
+//            //绉婚櫎
+//            tokenManager.removeToken(token);
+//            //浠巘oken鑾峰彇鐢ㄦ埛鍚�
+//            String username = tokenManager.getUserInfoFromToken(token);
+//            redisTemplate.delete(username);
+//        }
+//        ResponseUtil.out(response, Result.success());
+//    }
+//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java
new file mode 100644
index 0000000..61cf3ee
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/TokenManager.java
@@ -0,0 +1,30 @@
+//package com.mes.security;
+//
+//import io.jsonwebtoken.CompressionCodecs;
+//import io.jsonwebtoken.Jwts;
+//import io.jsonwebtoken.SignatureAlgorithm;
+//import org.springframework.stereotype.Component;
+//
+//import java.util.Date;
+//
+//@Component
+//public class TokenManager {
+//    //token鏈夋晥鏃堕暱
+//    private long tokenEcpiration = 24*60*60*1000;
+//    //缂栫爜绉橀挜
+//    private String tokenSignKey = "123456";
+//    //1 浣跨敤jwt鏍规嵁鐢ㄦ埛鍚嶇敓鎴恡oken
+//    public String createToken(String username) {
+//        String token = Jwts.builder().setSubject(username)
+//                .setExpiration(new Date(System.currentTimeMillis()+tokenEcpiration))
+//                .signWith(SignatureAlgorithm.HS512, tokenSignKey).compressWith(CompressionCodecs.GZIP).compact();
+//        return token;
+//    }
+//    //2 鏍规嵁token瀛楃涓插緱鍒扮敤鎴蜂俊鎭�
+//    public String getUserInfoFromToken(String token) {
+//        String userinfo = Jwts.parser().setSigningKey(tokenSignKey).parseClaimsJws(token).getBody().getSubject();
+//        return userinfo;
+//    }
+//    //3 鍒犻櫎token
+//    public void removeToken(String token) { }
+//}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java
new file mode 100644
index 0000000..bc09439
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/security/UnauthEntryPoint.java
@@ -0,0 +1,18 @@
+//package com.mes.security;
+//
+//import com.mes.utils.Result;
+//import com.mes.utils.ResponseUtil;
+//import org.springframework.security.core.AuthenticationException;
+//import org.springframework.security.web.AuthenticationEntryPoint;
+//
+//import javax.servlet.ServletException;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//
+//public class UnauthEntryPoint implements AuthenticationEntryPoint {
+//    @Override
+//    public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException {
+//        ResponseUtil.out(httpServletResponse, Result.error());
+//    }
+//}
diff --git a/hangzhoumesParent/gateway/pom.xml b/hangzhoumesParent/gateway/pom.xml
new file mode 100644
index 0000000..5125cf1
--- /dev/null
+++ b/hangzhoumesParent/gateway/pom.xml
@@ -0,0 +1,31 @@
+<?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>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>
+
+</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/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
new file mode 100644
index 0000000..2e0b3d4
--- /dev/null
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -0,0 +1,56 @@
+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: http://127.0.0.1:8082
+          predicates:
+            - Path=/api/cacheVerticalGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: loadGlass
+          uri: http://127.0.0.1:8083
+          predicates:
+            - Path=/api/loadGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: temperingGlass
+          uri: http://127.0.0.1:8084
+          predicates:
+            - Path=/api/temperingGlass/**
+          filters:
+            - StripPrefix=2
+
+        - id: unLoadGlass
+          uri: http://127.0.0.1:8085
+          predicates:
+            - Path=/api/unLoadGlass/**
+          filters:
+            - StripPrefix=2
+
+#        - id: unLoadGlass
+#          uri: lb://unLoadGlass
+#          predicates:
+#            - Path=/unLoadGlass/**
+#          filters:
+#            - RewritePath=/unLoadGlass/(?<segment>.*), /$\{segment}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheGlassModule/pom.xml
new file mode 100644
index 0000000..b5bc8a0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/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>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>cacheGlass</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/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..da046e0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/CacheGlassModuleApplication.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 springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 10:49
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@MapperScan("com.mes.*.mapper")
+@EnableDiscoveryClient
+@EnableSwagger2
+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..4111dfe
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/S7object.java
@@ -0,0 +1,36 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.tools.S7control;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object {
+    public S7control plccontrol; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+    private static volatile S7object instance = null;
+
+    private S7object() {
+        if (plccontrol == null) {
+            plccontrol = new S7control(plcType, ip, port,0,0);
+        }
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7object getinstance() {
+        if (instance == null) {
+            synchronized (S7object.class) {
+                if (instance == null) {
+                    instance = new S7object();
+                }
+            }
+        }
+        return instance;
+    }
+}
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..020a22d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -0,0 +1,28 @@
+package com.mes.edgstoragecage.controller;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@RestController
+@RequestMapping("/edgStorageCage")
+public class EdgStorageCageController {
+
+        //todo: 瀹炰緥浠g爜 寰呭垹闄�
+    @ApiOperation("娴嬭瘯")
+    @GetMapping("/index")
+    public String index() {
+        return "hello world";
+    }
+
+}
+
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..088a7fd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageDetailsController.java
@@ -0,0 +1,19 @@
+package com.mes.edgstoragecage.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("/edgStorageCageDetails")
+public class EdgStorageCageDetailsController {
+
+}
+
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..66a1712
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCage.java
@@ -0,0 +1,50 @@
+package com.mes.edgstoragecage.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 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 String 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..b30af45
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/EdgStorageCageDetails.java
@@ -0,0 +1,110 @@
+package com.mes.edgstoragecage.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 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 Integer id;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+
+    /**
+     * 鐜荤拑id
+     */
+    private Integer glassId;
+
+    /**
+     * 灏忕墖鍦ㄦ牸鍐呯殑椤哄簭
+     */
+    private Integer sequence;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    private Integer glassType;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鍘氬害
+     */
+    private Double thickness;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private Double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private Double edgHeight;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    private Integer gap;
+
+
+}
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..22e7512
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
@@ -0,0 +1,16 @@
+package com.mes.edgstoragecage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageDetailsMapper extends BaseMapper<EdgStorageCageDetails> {
+
+}
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..743808f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageMapper.java
@@ -0,0 +1,16 @@
+package com.mes.edgstoragecage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageMapper extends BaseMapper<EdgStorageCage> {
+
+}
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..5bf28ac
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -0,0 +1,16 @@
+package com.mes.edgstoragecage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageDetailsService extends IService<EdgStorageCageDetails> {
+
+}
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..0fb2faa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
@@ -0,0 +1,16 @@
+package com.mes.edgstoragecage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface EdgStorageCageService extends IService<EdgStorageCage> {
+
+}
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..78a5a2e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.edgstoragecage.service.impl;
+
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class EdgStorageCageDetailsServiceImpl extends ServiceImpl<EdgStorageCageDetailsMapper, EdgStorageCageDetails> implements EdgStorageCageDetailsService {
+
+}
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..245e2be
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.edgstoragecage.service.impl;
+
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class EdgStorageCageServiceImpl extends ServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
+
+}
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..cf3d9d1
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -0,0 +1,19 @@
+package com.mes.taskcache.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("/taskCache")
+public class TaskCacheController {
+
+}
+
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..1f3a632
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
@@ -0,0 +1,49 @@
+package com.mes.taskcache.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TaskCache implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID缂栧彿
+     */
+      @TableId("ID")
+    private String id;
+
+    /**
+     * 璧峰
+     */
+    private String startCell;
+
+    /**
+     * 鐩爣
+     */
+    private String endCell;
+
+    /**
+     * 浠诲姟绫诲瀷 1:杩�   2锛氬嚭
+     */
+    private String taskType;
+
+    /**
+     * 浠诲姟鐘舵�� 0 鏈紑濮�  1姝e湪杩涜   2瀹屾垚
+     */
+    private String taskStauts;
+
+
+}
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..751feda
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/TaskCacheMapper.java
@@ -0,0 +1,16 @@
+package com.mes.taskcache.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.taskcache.entity.TaskCache;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TaskCacheMapper extends BaseMapper<TaskCache> {
+
+}
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..e57f663
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/TaskCacheService.java
@@ -0,0 +1,16 @@
+package com.mes.taskcache.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.taskcache.entity.TaskCache;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TaskCacheService extends IService<TaskCache> {
+
+}
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..87ba952
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.taskcache.service.impl;
+
+import com.mes.taskcache.entity.TaskCache;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.taskcache.mapper.TaskCacheMapper;
+import com.mes.taskcache.service.TaskCacheService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class TaskCacheServiceImpl extends ServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java
new file mode 100644
index 0000000..eaf8f44
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java
@@ -0,0 +1,19 @@
+package com.mes.temperingglass.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("/glassInfo")
+public class GlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java
new file mode 100644
index 0000000..a54cb7b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java
@@ -0,0 +1,130 @@
+package com.mes.temperingglass.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 zhoush
+ * @since 2024-04-07
+ */
+@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 Integer filmsid;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private Double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private Double edgHeight;
+
+    /**
+     * 鏄惁閰嶇墖
+     */
+    private Integer ismultiple;
+
+    /**
+     * 閰嶇墖鏈�澶у
+     */
+    private Double maxWidth;
+
+    /**
+     * 閰嶇墖鏈�澶ч珮
+     */
+    private Double maxHeight;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private Integer engineerId;
+
+    /**
+     * 鐢熶骇瑙勫垯id
+     */
+    private Integer ruleId;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java
new file mode 100644
index 0000000..d3a8177
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.temperingglass.entity.GlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java
new file mode 100644
index 0000000..b68e13d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.temperingglass.entity.GlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface GlassInfoService extends IService<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/impl/GlassInfoServiceImpl.java
new file mode 100644
index 0000000..3b487ff
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/impl/GlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.temperingglass.service.impl;
+
+import com.mes.temperingglass.entity.GlassInfo;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.temperingglass.mapper.GlassInfoMapper;
+import com.mes.temperingglass.service.GlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
+
+}
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..437e3eb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -0,0 +1,25 @@
+server:
+  port: 8081
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheGlass
+  redis:
+    database: 0
+    host: 192.168.56.10
+    port: 6379
+    password:
+  session:
+    store-type: redis
+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/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..9593dcd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/test/java/com/mes/CacheGlassModuleApplicationTest.java
@@ -0,0 +1,26 @@
+package com.mes;
+
+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 java.util.Arrays;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/27 16:37
+ * @Description:
+ */
+@Slf4j
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = CacheGlassModuleApplication.class)
+public class CacheGlassModuleApplicationTest {
+
+
+    @Test
+    public void testFindPath() {
+        log.info("瀹屾暣璺緞锛歿}", Arrays.asList("123"));
+    }
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
new file mode 100644
index 0000000..f5d5404
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/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>cacheVerticalGlass</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/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..263f81a
--- /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 springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/3/25 10:49
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+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..746b3ed
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
@@ -0,0 +1,29 @@
+package com.mes.bigstorage.controller;
+
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@RestController
+@RequestMapping("/bigStorageCage")
+public class BigStorageCageController {
+
+        //todo: 瀹炰緥浠g爜 寰呭垹闄�
+    @ApiOperation("娴嬭瘯")
+    @GetMapping("/index")
+    public String index() {
+        return "hello world";
+    }
+}
+
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..2dfc440
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -0,0 +1,21 @@
+package com.mes.bigstorage.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("/bigStorageCageDetails")
+public class BigStorageCageDetailsController {
+
+}
+
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..76fcb26
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -0,0 +1,50 @@
+package com.mes.bigstorage.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 zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BigStorageCage 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 String enableState;
+
+    /**
+     * 鍓╀綑瀹藉害
+     */
+    private Integer remainWidth;
+
+
+}
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..029d7e0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -0,0 +1,95 @@
+package com.mes.bigstorage.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 zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BigStorageCageDetails 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;
+
+    /**
+     * 鐜荤拑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;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    private Integer gap;
+
+
+}
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..852e1f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -0,0 +1,17 @@
+package com.mes.bigstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageDetailsMapper extends BaseMapper<BigStorageCageDetails> {
+
+}
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..22a9d7b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -0,0 +1,16 @@
+package com.mes.bigstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.bigstorage.entity.BigStorageCage;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageMapper extends BaseMapper<BigStorageCage> {
+
+}
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..ef46c59
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -0,0 +1,16 @@
+package com.mes.bigstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> {
+
+}
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..00df15c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -0,0 +1,16 @@
+package com.mes.bigstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.bigstorage.entity.BigStorageCage;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface BigStorageCageService extends IService<BigStorageCage> {
+
+}
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..8949518
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.bigstorage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class BigStorageCageDetailsServiceImpl extends ServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
+
+}
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..4c88df2
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.bigstorage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.mapper.BigStorageCageMapper;
+import com.mes.bigstorage.service.BigStorageCageService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class BigStorageCageServiceImpl extends ServiceImpl<BigStorageCageMapper, BigStorageCage> implements BigStorageCageService {
+
+}
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..3178446
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -0,0 +1,21 @@
+package com.mes.temperingglass.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("/temperingGlassInfo")
+public class TemperingGlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
new file mode 100644
index 0000000..3f6b0c9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -0,0 +1,95 @@
+package com.mes.temperingglass.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 zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TemperingGlassInfo 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 Integer filmsid;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
new file mode 100644
index 0000000..ccf5a4b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> {
+
+}
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..69d497c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> {
+
+}
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..e233e1a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.temperingglass.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java
new file mode 100644
index 0000000..fe7ec7c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java
@@ -0,0 +1,21 @@
+package com.mes.uppattenusage.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("/glassInfo")
+public class GlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java
new file mode 100644
index 0000000..948b3a4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java
@@ -0,0 +1,130 @@
+package com.mes.uppattenusage.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 zhoush
+ * @since 2024-03-27
+ */
+@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 Integer filmsid;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private Double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private Double edgHeight;
+
+    /**
+     * 鏄惁閰嶇墖
+     */
+    private Integer ismultiple;
+
+    /**
+     * 閰嶇墖鏈�澶у
+     */
+    private Double maxWidth;
+
+    /**
+     * 閰嶇墖鏈�澶ч珮
+     */
+    private Double maxHeight;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private Integer engineerId;
+
+    /**
+     * 鐢熶骇瑙勫垯id
+     */
+    private Integer ruleId;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java
new file mode 100644
index 0000000..6acb270
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.uppattenusage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.uppattenusage.entity.GlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java
new file mode 100644
index 0000000..8e380d7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.uppattenusage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.uppattenusage.entity.GlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface GlassInfoService extends IService<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java
new file mode 100644
index 0000000..7bab2ad
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.uppattenusage.service.impl;
+
+import com.mes.uppattenusage.entity.GlassInfo;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.uppattenusage.mapper.GlassInfoMapper;
+import com.mes.uppattenusage.service.GlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
+
+}
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..a537ded
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+server:
+  port: 8082
+
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: cacheVerticalGlass
+  redis:
+    database: 0
+    host: 192.168.56.10
+    port: 6379
+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/pom.xml b/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml
new file mode 100644
index 0000000..6f6eee9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/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>loadGlass</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/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..b47e3e7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
@@ -0,0 +1,29 @@
+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 springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/8 13:26
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+public class LoadGlassModuleApplication {
+    public static void main(String[] args) {
+        try {
+            SpringApplication.run(LoadGlassModuleApplication.class, args);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+
+    }
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
new file mode 100644
index 0000000..30648bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -0,0 +1,27 @@
+package com.mes.temperingglass.controller;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@RestController
+@RequestMapping("/temperingGlassInfo")
+public class TemperingGlassInfoController {
+
+        //todo: 瀹炰緥浠g爜 寰呭垹闄�
+    @ApiOperation("娴嬭瘯")
+    @GetMapping("/index")
+    public String index() {
+        return "hello world";
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
new file mode 100644
index 0000000..808d6dc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -0,0 +1,96 @@
+package com.mes.temperingglass.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 TemperingGlassInfo 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 Integer filmsid;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
new file mode 100644
index 0000000..f8d3860
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
new file mode 100644
index 0000000..0ce1942
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
new file mode 100644
index 0000000..d34064a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.temperingglass.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
+
+}
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..49e6d15
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -0,0 +1,21 @@
+package com.mes.uppattenusage.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("/upPattenUsage")
+public class UpPattenUsageController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java
new file mode 100644
index 0000000..8cb7a31
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/entity/UpPattenUsage.java
@@ -0,0 +1,65 @@
+package com.mes.uppattenusage.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 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 Integer id;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private Integer engineeringId;
+
+    /**
+     * 鑶滅郴id
+     */
+    private Integer filmsId;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鍘氬害
+     */
+    private Double thickness;
+
+    /**
+     * 鍘熺墖鐗堝浘鐗囧簭
+     */
+    private Integer layoutSequence;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
new file mode 100644
index 0000000..fda84e4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/UpPattenUsageMapper.java
@@ -0,0 +1,16 @@
+package com.mes.uppattenusage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpPattenUsageMapper extends BaseMapper<UpPattenUsage> {
+
+}
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..55fb773
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -0,0 +1,16 @@
+package com.mes.uppattenusage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpPattenUsageService extends IService<UpPattenUsage> {
+
+}
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..008b424
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.uppattenusage.service.impl;
+
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class UpPattenUsageServiceImpl extends ServiceImpl<UpPattenUsageMapper, UpPattenUsage> implements UpPattenUsageService {
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/UpWorkstationController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/UpWorkstationController.java
new file mode 100644
index 0000000..9a41288
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/UpWorkstationController.java
@@ -0,0 +1,21 @@
+package com.mes.upworkstation.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("/upWorkstation")
+public class UpWorkstationController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java
new file mode 100644
index 0000000..88e5523
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java
@@ -0,0 +1,75 @@
+package com.mes.upworkstation.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 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 patternHeigth;
+
+    /**
+     * 鍘熺墖鍘氬害
+     */
+    private Double patternThickness;
+
+    /**
+     * 鑶滅郴
+     */
+    private Integer filmsId;
+
+    /**
+     * 鏁伴噺
+     */
+    private Integer number;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/UpWorkstationMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/UpWorkstationMapper.java
new file mode 100644
index 0000000..333d195
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/UpWorkstationMapper.java
@@ -0,0 +1,16 @@
+package com.mes.upworkstation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.upworkstation.entity.UpWorkstation;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpWorkstationMapper extends BaseMapper<UpWorkstation> {
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/UpWorkstationService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/UpWorkstationService.java
new file mode 100644
index 0000000..369db83
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/UpWorkstationService.java
@@ -0,0 +1,16 @@
+package com.mes.upworkstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.upworkstation.entity.UpWorkstation;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpWorkstationService extends IService<UpWorkstation> {
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/impl/UpWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/impl/UpWorkstationServiceImpl.java
new file mode 100644
index 0000000..22ed61b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/impl/UpWorkstationServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.upworkstation.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.upworkstation.entity.UpWorkstation;
+import com.mes.upworkstation.mapper.UpWorkstationMapper;
+import com.mes.upworkstation.service.UpWorkstationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService {
+
+}
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..9bc95ce
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+server:
+  port: 8083
+
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: loadGlass
+  redis:
+    database: 0
+    host: 192.168.56.10
+    port: 6379
+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/TemperingGlassModule/pom.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml
new file mode 100644
index 0000000..5820052
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/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>temperingGlass</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/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..489df44
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java
@@ -0,0 +1,29 @@
+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 springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/8 13:26
+ * @Description:
+ */
+@Slf4j
+@SpringBootApplication
+@EnableSwagger2
+@EnableDiscoveryClient
+@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/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
new file mode 100644
index 0000000..30648bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -0,0 +1,27 @@
+package com.mes.temperingglass.controller;
+
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@RestController
+@RequestMapping("/temperingGlassInfo")
+public class TemperingGlassInfoController {
+
+        //todo: 瀹炰緥浠g爜 寰呭垹闄�
+    @ApiOperation("娴嬭瘯")
+    @GetMapping("/index")
+    public String index() {
+        return "hello world";
+    }
+}
+
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
new file mode 100644
index 0000000..ba66fca
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -0,0 +1,95 @@
+package com.mes.temperingglass.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 zhoush
+ * @since 2024-04-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class TemperingGlassInfo 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 Integer filmsid;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
new file mode 100644
index 0000000..f8d3860
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
new file mode 100644
index 0000000..0ce1942
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.temperingglass.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
new file mode 100644
index 0000000..d34064a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.temperingglass.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
+
+}
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..9cc9488
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -0,0 +1,22 @@
+server:
+  port: 8084
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: temperingGlass
+  redis:
+    database: 0
+    host: 192.168.56.10
+    port: 6379
+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/UnLoadGlassModule/pom.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
new file mode 100644
index 0000000..4bf831d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/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>unLoadGlass</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/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..361d74e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
@@ -0,0 +1,20 @@
+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;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/7 14:36
+ * @Description:
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+@MapperScan(basePackages = "com.mes.*.mapper")
+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/downglassinfo/controller/DownGlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
new file mode 100644
index 0000000..b678660
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassInfoController.java
@@ -0,0 +1,30 @@
+package com.mes.downglassinfo.controller;
+
+
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+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.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Api(tags = "涓嬫枡淇℃伅")
+@RestController
+@RequestMapping("/downGlassInfo")
+public class DownGlassInfoController {
+
+
+}
+
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..b96214d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/controller/DownGlassTaskController.java
@@ -0,0 +1,35 @@
+package com.mes.downglassinfo.controller;
+
+
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.uppattenusage.service.GlassInfoService;
+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 zhoush
+ * @since 2024-04-07
+ */
+@Api(tags = "涓嬫枡浠诲姟")
+@RestController
+@RequestMapping("/downGlassTask")
+public class DownGlassTaskController {
+
+    //todo: 瀹炰緥浠g爜 寰呭垹闄�
+    @ApiOperation("娴嬭瘯")
+    @GetMapping("/index")
+    public String index() {
+        return "hello world";
+    }
+}
+
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..3aa224c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java
@@ -0,0 +1,52 @@
+package com.mes.downglassinfo.entity;
+
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownGlassInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 涓嬬墖鐜荤拑淇℃伅琛╥d
+     */
+      private Integer id;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 椤哄簭
+     */
+    private Integer sequence;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鍘氬害
+     */
+    private Double thickness;
+
+
+}
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..6f70c14
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassTask.java
@@ -0,0 +1,75 @@
+package com.mes.downglassinfo.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 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 Integer id;
+
+    /**
+     * 璧峰
+     */
+    private String startCell;
+
+    /**
+     * 鐩爣
+     */
+    private String endCell;
+
+    /**
+     * 浠诲姟绫诲瀷 1:杩�   2锛氬嚭
+     */
+    private String taskType;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 鍘氬害
+     */
+    private Double thickness;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 浠诲姟鐘舵�� 0 鏈紑濮�  1姝e湪杩涜   2瀹屾垚
+     */
+    private Integer taskStauts;
+
+
+}
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..7762f75
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.downglassinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> {
+
+}
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..159421b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassTaskMapper.java
@@ -0,0 +1,16 @@
+package com.mes.downglassinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downglassinfo.entity.DownGlassTask;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+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..37b6795
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.downglassinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownGlassInfoService extends IService<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..db99ff9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassTaskService.java
@@ -0,0 +1,16 @@
+package com.mes.downglassinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downglassinfo.entity.DownGlassTask;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface DownGlassTaskService extends IService<DownGlassTask> {
+
+}
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..9e972ba
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.downglassinfo.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
+
+}
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..1fb724b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassTaskServiceImpl.java
@@ -0,0 +1,21 @@
+package com.mes.downglassinfo.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.mapper.DownGlassTaskMapper;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class DownGlassTaskServiceImpl extends ServiceImpl<DownGlassTaskMapper, DownGlassTask> implements DownGlassTaskService {
+
+}
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..4f8253b
--- /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..bf31d83
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/controller/DownStorageCageDetailsController.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("/downStorageCageDetails")
+public class DownStorageCageDetailsController {
+
+}
+
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..833e9d8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCage.java
@@ -0,0 +1,50 @@
+package com.mes.downstorage.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 zhoush
+ * @since 2024-03-27
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DownStorageCage 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 String enableState;
+
+    /**
+     * 鍓╀綑
+     */
+    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..a24f392
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -0,0 +1,95 @@
+package com.mes.downstorage.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 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 Integer id;
+
+    /**
+     * 璁惧id
+     */
+    private Integer deviceId;
+
+    /**
+     * 鏍呮牸鍙�
+     */
+    private Integer slot;
+
+    /**
+     * 鐜荤拑id
+     */
+    private Integer 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;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+
+    /**
+     * 鐜荤拑闂撮殭
+     */
+    private Integer gap;
+
+
+}
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..e8c5d15
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageDetailsMapper.java
@@ -0,0 +1,16 @@
+package com.mes.downstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownStorageCageDetailsMapper extends BaseMapper<DownStorageCageDetails> {
+
+}
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..7e42ee7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/DownStorageCageMapper.java
@@ -0,0 +1,16 @@
+package com.mes.downstorage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downstorage.entity.DownStorageCage;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownStorageCageMapper extends BaseMapper<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..1dfaec9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageDetailsService.java
@@ -0,0 +1,16 @@
+package com.mes.downstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownStorageCageDetailsService extends IService<DownStorageCageDetails> {
+
+}
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..588071f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownStorageCageService.java
@@ -0,0 +1,16 @@
+package com.mes.downstorage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downstorage.entity.DownStorageCage;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownStorageCageService extends IService<DownStorageCage> {
+
+}
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..b28c67a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.downstorage.service.impl;
+
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
+import com.mes.downstorage.service.DownStorageCageDetailsService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
+
+}
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..1ace668
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.downstorage.service.impl;
+
+import com.mes.downstorage.entity.DownStorageCage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downstorage.mapper.DownStorageCageMapper;
+import com.mes.downstorage.service.DownStorageCageService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
+
+}
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..d46e65e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java
@@ -0,0 +1,21 @@
+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-03-27
+ */
+@RestController
+@RequestMapping("/downWorkstation")
+public class DownWorkstationController {
+
+}
+
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..713d8db
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationTaskController.java
@@ -0,0 +1,21 @@
+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..40e582f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java
@@ -0,0 +1,55 @@
+package com.mes.downworkstation.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 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;
+
+
+}
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..54fe265
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -0,0 +1,60 @@
+package com.mes.downworkstation.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 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 Integer id;
+
+    /**
+     * 瀹�
+     */
+    private Double width;
+
+    /**
+     * 楂�
+     */
+    private Double height;
+
+    /**
+     * 鑶滅郴
+     */
+    private String filmsid;
+
+    /**
+     * 鍘氬害
+     */
+    private Double thickness;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String flowCardId;
+
+    /**
+     * 浠诲姟鐘舵��
+     */
+    private Integer state;
+
+
+}
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..b8ddac6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java
@@ -0,0 +1,16 @@
+package com.mes.downworkstation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downworkstation.entity.DownWorkstation;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownWorkstationMapper extends BaseMapper<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..076b258
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationTaskMapper.java
@@ -0,0 +1,16 @@
+package com.mes.downworkstation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface DownWorkstationTaskMapper extends BaseMapper<DownWorkstationTask> {
+
+}
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..968ca6e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java
@@ -0,0 +1,16 @@
+package com.mes.downworkstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downworkstation.entity.DownWorkstation;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface DownWorkstationService extends IService<DownWorkstation> {
+
+}
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..a60ce62
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationTaskService.java
@@ -0,0 +1,16 @@
+package com.mes.downworkstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface DownWorkstationTaskService extends IService<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..0cedd56
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.downworkstation.service.impl;
+
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
+import com.mes.downworkstation.service.DownWorkstationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class DownWorkstationServiceImpl extends ServiceImpl<DownWorkstationMapper, DownWorkstation> implements DownWorkstationService {
+
+}
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..5814861
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationTaskServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.downworkstation.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downworkstation.entity.DownWorkstationTask;
+import com.mes.downworkstation.mapper.DownWorkstationTaskMapper;
+import com.mes.downworkstation.service.DownWorkstationTaskService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@Service
+public class DownWorkstationTaskServiceImpl extends ServiceImpl<DownWorkstationTaskMapper, DownWorkstationTask> implements DownWorkstationTaskService {
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java
new file mode 100644
index 0000000..66adb58
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/controller/GlassInfoController.java
@@ -0,0 +1,20 @@
+package com.mes.uppattenusage.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("/glassInfo")
+public class GlassInfoController {
+
+}
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java
new file mode 100644
index 0000000..3c6eb37
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/entity/GlassInfo.java
@@ -0,0 +1,131 @@
+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-03-27
+ */
+@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 Integer filmsid;
+
+    /**
+     * 纾ㄥ墠瀹�
+     */
+    private Double edgWidth;
+
+    /**
+     * 纾ㄥ墠楂�
+     */
+    private Double edgHeight;
+
+    /**
+     * 鏄惁閰嶇墖
+     */
+    private Integer ismultiple;
+
+    /**
+     * 閰嶇墖鏈�澶у
+     */
+    private Double maxWidth;
+
+    /**
+     * 閰嶇墖鏈�澶ч珮
+     */
+    private Double maxHeight;
+
+    /**
+     * 閽㈠寲鏄惁鎺ュ彈妯斁
+     */
+    private Integer ishorizontal;
+
+    /**
+     * 鍘熺墖椤哄簭
+     */
+    private Integer patternSequence;
+
+    /**
+     * 閽㈠寲鐗堝浘id
+     */
+    private Integer temperingLayoutId;
+
+    /**
+     * 閽㈠寲鐗堝浘鐗囧簭
+     */
+    private Integer temperingFeedSequence;
+
+    /**
+     * x鍧愭爣
+     */
+    private Integer xCoordinate;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yCoordinate;
+
+    /**
+     * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
+     */
+    private Integer angle;
+
+    /**
+     * 宸ョ▼鍙�
+     */
+    private Integer engineerId;
+
+    /**
+     * 鐢熶骇瑙勫垯id
+     */
+    private Integer ruleId;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java
new file mode 100644
index 0000000..6acb270
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java
@@ -0,0 +1,16 @@
+package com.mes.uppattenusage.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.uppattenusage.entity.GlassInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java
new file mode 100644
index 0000000..8e380d7
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.uppattenusage.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.uppattenusage.entity.GlassInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+public interface GlassInfoService extends IService<GlassInfo> {
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java
new file mode 100644
index 0000000..ec38a54
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.uppattenusage.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.uppattenusage.entity.GlassInfo;
+import com.mes.uppattenusage.mapper.GlassInfoMapper;
+import com.mes.uppattenusage.service.GlassInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-03-27
+ */
+@Service
+public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
+
+}
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..609b5bf
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+server:
+  port: 8085
+
+spring:
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8&characterEncoding=utf-8&useSSL=false
+    username: root
+    password: beibo.123/
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 127.0.0.1:8848
+  application:
+    name: unLoadGlass
+  redis:
+    database: 0
+    host: 192.168.56.10
+    port: 6379
+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/pom.xml b/hangzhoumesParent/moduleService/pom.xml
new file mode 100644
index 0000000..c5d8ab6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/pom.xml
@@ -0,0 +1,61 @@
+<?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>moduleService</artifactId>
+    <packaging>pom</packaging>
+    <modules>
+        <module>CacheGlassModule</module>
+        <module>CacheVerticalGlassModule</module>
+        <module>LoadGlassModule</module>
+        <module>TemperingGlassModule</module>
+        <module>UnLoadGlassModule</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>com.mes</groupId>
+            <artifactId>common</artifactId>
+            <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>
+
+
+</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/pom.xml b/hangzhoumesParent/pom.xml
new file mode 100644
index 0000000..d0f498c
--- /dev/null
+++ b/hangzhoumesParent/pom.xml
@@ -0,0 +1,73 @@
+<?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>
+    </modules>
+    <packaging>pom</packaging>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.1.8.RELEASE</version>
+    </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>
+        </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..7b29abf
--- /dev/null
+++ b/hangzhoumesParent/readMe.md
@@ -0,0 +1,23 @@
+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

--
Gitblit v1.8.0