From c933c56aa549ba13dc48bfaeaff683525dc8e146 Mon Sep 17 00:00:00 2001
From: wang <3597712270@qq.com>
Date: 星期一, 15 四月 2024 09:08:22 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java | 76
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json | 371 ++
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java | 33
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml | 26
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java | 94
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingController.java | 51
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java | 108
UI-Project/src/views/LoginView.vue | 39
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java | 20
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java | 54
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java | 10
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java | 128
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitInfo.java | 77
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java | 142
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java | 7
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java | 128
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java | 156
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json | 610 +++
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java | 49
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java | 10
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java | 28
CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java | 3
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 80
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java | 46
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java | 29
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java | 21
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java | 4
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java | 16
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json | 460 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java | 16
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java | 30
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/controller/DownWorkstationController.java | 121
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx | 0
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json | 195 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java | 97
hangzhoumesParent/moduleService/pom.xml | 11
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/component/PlcStorageCage.java | 74
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java | 36
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java | 5
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java | 120
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json | 285 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java | 62
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx | 0
hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml | 26
hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml | 15
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 345 +
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingOverService.java | 30
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/impl/DownWorkstationServiceImpl.java | 48
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/DownGlassInfoService.java | 3
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/LoadGlassMapper.java | 16
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json | 50
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java | 53
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml | 5
UI-Project/config.js | 4
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 19
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 26
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json | 51
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstation.java | 3
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java | 11
hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml | 22
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java | 36
hangzhoumesParent/common/springsecurity/pom.xml | 17
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java | 89
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java | 20
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java | 164 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml | 5
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java | 2
hangzhoumesParent/gateway/src/main/resources/application.yml | 2
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/GlassInfoService.java | 3
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java | 6
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/entity/DownGlassInfo.java | 7
hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/InterceptorConfig.java | 26
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java | 19
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java | 16
hangzhoumesParent/moduleService/LoadGlassModule/pom.xml | 15
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java | 5
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml | 21
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java | 20
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java | 160 +
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java | 21
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitObject.java | 142
UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue | 16
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java | 142
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java | 35
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java | 88
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java | 220 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java | 30
hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml | 27
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java | 205 +
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml | 36
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/mapper/DownGlassInfoMapper.java | 21
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownWorkstationService.java | 14
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java | 30
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java | 68
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java | 14
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java | 56
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java | 39
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 | 27
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java | 95
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java | 20
CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java | 8
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java | 19
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java | 55
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java | 16
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java | 4
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json | 378 ++
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java | 50
hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml | 14
hangzhoumesParent/common/springsecurity/src/main/resources/application.yml | 38
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java | 122
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java | 4
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterObject.java | 202 +
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java | 34
UI-Project/src/layout/MainErpView.vue | 113
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/GlassInfoServiceImpl.java | 22
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java | 202 +
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java | 36
CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java | 67
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx | 0
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/mapper/DownWorkstationMapper.java | 67
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java | 16
hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java | 128
hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java | 75
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java | 66
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java | 28
hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml | 15
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/InitUtil.java | 122
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java | 37
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java | 16
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java | 36
hangzhoumesParent/common/pom.xml | 58
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml | 5
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java | 76
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java | 8
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java | 60
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java | 77
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java | 16
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java | 48
/dev/null | 20
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java | 82
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml | 5
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java | 20
hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java | 128
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java | 66
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java | 1
UI-Project/vite.config.js | 8
152 files changed, 8,976 insertions(+), 388 deletions(-)
diff --git a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
index 70b4c5c..591558a 100644
--- a/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
+++ b/CacheGlassModule/src/main/java/com/mes/controller/TidyUpGlassModuleController.java
@@ -38,11 +38,12 @@
List<Map> h = ppService.selectCutTerritory(ProcessId);
return Result.seccess(h);
}
-
+
@GetMapping("/CurrentCutTerritory") // 璇嗗埆鏄剧ず 褰撳墠鐗堝浘
@ResponseBody
public Result CurrentCutTerritory() {
List<Map> h = ppService.selectCutTerritory();
+ System.out.println(h);
return Result.seccess(h);
}
diff --git a/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java b/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java
index 68f18e6..bca7747 100644
--- a/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java
+++ b/CacheGlassModule/src/main/java/com/mes/mapper/PpMapper.java
@@ -20,7 +20,7 @@
List<Tempered> selectTemperedTerritory(String projeceid);
// 鍒囧壊鐗堝浘 鎸夊伐绋�,鐗堝浘缂栧彿鏌ヨ
- @Select("select * from optimize_detail where project_no=#{projeceid} ")
+ @Select("select * from optimize_detail where project_no=#{projeceid} and stock_id=#{TerritoryId}")
List<Map> selectCutTerritory(String projeceid,String TerritoryId);
// 鍒囧壊鐗堝浘 鎸夊伐绋嬫煡璇�
diff --git a/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java b/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java
index bc3b645..5ba6b38 100644
--- a/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java
+++ b/CacheGlassModule/src/main/java/com/mes/service/pp/PpService.java
@@ -29,10 +29,10 @@
//鍒囧壊鐗堝浘 褰撳墠璇嗗埆鐗堝浘
public List<Map> selectCutTerritory(){
- //1.寰楀埌瑕佹樉绀虹殑 宸ョ▼ID 浠ュ強鐗堝浘ID
- //2.鍦℉angzhoumes鏁版嵁搴撻噷 寰楀埌鐩墠宸茬粡 棰嗗彇浣嗘湭瀹屾垚鐨� 宸ョ▼ID闆嗗悎
- //3.鎷垮伐绋嬮泦鍚堝幓PP鏁版嵁搴撻噷 寰楀埌瀵瑰簲鐨勫皬鐗囬泦鍚�
- //4.鎷垮搴旂殑灏忕墖闆嗗悎 涓� 缂撳瓨浠诲姟琛ㄨ繘琛屽姣� 鏌ユ壘涓嬩竴鐗堝浘鏄剧ず
+ //寰楀埌瑕佹樉绀虹殑 宸ョ▼ID 浠ュ強鐗堝浘ID
+ //1.鍦℉angzhoumes鏁版嵁搴撻噷 寰楀埌鐩墠宸茬粡 棰嗗彇浣嗘湭瀹屾垚鐨� 宸ョ▼ID闆嗗悎
+ //2.鎷垮伐绋嬮泦鍚堝幓PP鏁版嵁搴撻噷 寰楀埌瀵瑰簲鐨勫皬鐗囬泦鍚�
+ //3.鎷垮搴旂殑灏忕墖闆嗗悎 涓� 缂撳瓨浠诲姟琛ㄨ繘琛屽姣� 鏌ユ壘涓嬩竴鐗堝浘鏄剧ず
String process_id = "P24032204";
String territory_id = "1";
return selectInfoMapper.selectCutTerritory(process_id,territory_id);
diff --git a/UI-Project/config.js b/UI-Project/config.js
index ac9f2b1..fea947e 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,5 +1,5 @@
export default {
- serverUrl:"localhost:8080/mesModuleTools",
- serverUrl2:"localhost:8081/mesModuleTools"
+ serverUrl: "localhost:8081",
+ serverUrl2: "localhost:8081/mesModuleTools"
//serverUrl:"res.abeim.cn"
}
\ No newline at end of file
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index 6c2e09c..bc44154 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -1,57 +1,60 @@
<script setup>
-import { RouterLink,useRouter} from 'vue-router'
-import useUserInfoStore from '@/stores/userInfo'
+import {useRouter} from 'vue-router'
+import useUserInfoStore from '@/stores/userInfo'
+import userInfo from '@/stores/userInfo'
import request from "@/utils/request";
import {ElMessage} from "element-plus";
-import {onMounted, reactive, ref, watch} from "vue"
+import {ref, watch} from "vue"
import deepClone from "@/utils/deepClone"
-import userInfo from '@/stores/userInfo'
-import {Close, Grid, Histogram, MessageBox, SwitchButton} from "@element-plus/icons-vue";
-const store=userInfo()
+
+const store = userInfo()
const router = useRouter()
const userStore = useUserInfoStore()
const user = userStore.user.userName
+
// store.createWebSocket();
-function quit(){
+function quit() {
userStore.$patch({
- user:null
+ user: null
})
router.push("/login")
}
//鎻愬彇妯″潡鍒楄〃
-let menuList=$ref([])
-request.get("/menu").then((res) => {
- if(res.code==200){
- menuList= deepClone(res.data)
- }else{
+let menuList = $ref([])
+request.get('/menu/sysMenu/list').then((res) => {
+ if (res.code == 200) {
+ menuList = deepClone(res.data)
+ } else {
ElMessage.warning(res.msg)
- router.push("/login")
+ router.push('/login')
}
})
//鑾峰彇鑿滃崟鍒楄〃
-let menuItemList=$ref([])
-request.get("/menuItem").then((res) => {
- if(res.code==200){
- menuItemList= deepClone(res.data)
- }else{
- ElMessage.warning(res.msg)
- router.push("/login")
- }
-})
+// let menuItemList = $ref([])
+// request.get('/menuItem').then((res) => {
+// if (res.code == 200) {
+// menuItemList = deepClone(res.data)
+// } else {
+// ElMessage.warning(res.msg)
+// router.push('/login')
+// }
+// })
const menu = ref(null)
let indexKey = ref(null)
+
function handleOpen(key) {
- indexKey.value=key
+ indexKey.value = key
}
-watch(indexKey,(newVal,oldVal) => {
- if(oldVal !== newVal && oldVal !== null){
- menu.value.close(oldVal)
- }
+
+watch(indexKey, (newVal, oldVal) => {
+ if (oldVal !== newVal && oldVal !== null) {
+ menu.value.close(oldVal)
+ }
},
{deep:true}
)
@@ -81,39 +84,39 @@
<div style="height: 100%;width: 100%;display: flex;background-color: #fff;">
<img src="../assets/northGlass.ico" alt="" style="max-width: 100%;max-height: 100%">
<h3 style="margin: 1rem ;font-weight: bold;width: 20vw;"> 娆㈣繋{{ user }}浣跨敤鍖楃幓MES绯荤粺锛�</h3>
- <span style="height: 70%;width: 78vw;margin-top: 1rem;" >
- <el-button class="sys-quit" @click="quit" round>
- <el-icon size="large"><SwitchButton size=""/></el-icon>
+ <span style="height: 70%;width: 78vw;margin-top: 1rem;">
+ <el-button class="sys-quit" @click="quit" round>
+ <el-icon size="large"><SwitchButton size=""/></el-icon>
</el-button>
</span>
</div>
</el-header>
<div id="line"></div>
- <el-container >
- <el-aside width="160px" style="height: 99%; background-color: #fff;" >
- <div class="menu" >
- <div v-for="items in menuList">
- <div class='menu_title' @click="openMenu(items.id)" >
- <!-- <span class='indicator' >鈱�</span> -->
- <!-- <span class='indicator' >鈮�</span> -->
- <!-- <img src="../assets/9.png" alt="" style="max-width: 50%;max-height: 50%;"> -->
- <span>鈽�</span>
- {{items.menuName}}
- </div>
- <ul class='enter-x-left' v-show="openFlag==items.id">
-
- <li v-for="menuItem in menuItemList"
- v-show="items.id==menuItem.menuID"
- style="margin-bottom: 2px"
- >
- <router-link
- :to="{path:menuItem.url}">
- {{ menuItem.itemName}}
- </router-link>
-
- </li>
- </ul>
+ <el-container>
+ <el-aside width="160px"
+ style="height: 99%; background-color: #fff;">
+ <div class="menu">
+ <div v-for="items in menuList">
+ <div class='menu_title'
+ @click="openMenu(items.id)">
+ <!-- <span class='indicator' >鈱�</span> -->
+ <!-- <span class='indicator' >鈮�</span> -->
+ <!-- <img src="../assets/9.png" alt="" style="max-width: 50%;max-height: 50%;"> -->
+ <span>鈽�</span>
+ {{ items.menuName }}
</div>
+ <ul class='enter-x-left'
+ v-show="openFlag==items.id">
+
+ <li v-for="menuItem in items.children"
+ style="margin-bottom:2px">
+ <router-link :to="{path:menuItem.url}">
+ {{ menuItem.menuName }}
+ </router-link>
+
+ </li>
+ </ul>
+ </div>
</div>
</el-aside>
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index c1515b9..7ee9b8d 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -1,9 +1,8 @@
<script lang="ts" setup>
import {onMounted, onUnmounted, reactive, ref} from "vue"
-import {useRouter,useRoute } from 'vue-router'
+import {useRoute, useRouter} from 'vue-router'
import type {FormInstance, FormRules} from 'element-plus'
-import { ElMessage } from "element-plus";
-import { Lock,Avatar } from '@element-plus/icons-vue'
+import {ElMessage} from "element-plus";
import request from '@/utils/request'
import userInfo from '@/stores/userInfo'
@@ -48,20 +47,22 @@
if (!formEl) return
formEl.validate((valid) => {
if (valid) {
- loginLoadings.value=true
- request.post('/user/login',
- userForm).then((res) => {
- if(res['code']==200){
- store.$patch({user:res.data})
+ loginLoadings.value = true
+ request
+ .post('/userinfo/login', userForm)
+ .then((res) => {
+ if (res['code'] == 200) {
+ store.$patch({user: res.data})
+ console.log(res.data)
- router.push('/main')
- ElMessage.success(`鐧诲綍鎴愬姛`)
- } else {
- ElMessage.error(res['msg'])
- loginLoadings.value=false
- return false
- }
- }).catch(error => {
+ router.push('/main')
+ ElMessage.success(`鐧诲綍鎴愬姛`)
+ } else {
+ ElMessage.error(res['msg'])
+ loginLoadings.value = false
+ return false
+ }
+ }).catch(error => {
ElMessage.error("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
loginLoadings.value=false
return false
@@ -103,9 +104,9 @@
src="../../src/assets/background.jpg"
/> -->
<div>
- <div style="position: absolute; left: 8vw; top: 6vw; ">
- <img src="../../src/assets/3.png">
- </div>
+ <div style="position: absolute; left: 8vw; top: 6vw; ">
+ <img src="../../src/assets/3.png">
+ </div>
<div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
鍖楃幓MES绯荤粺
</div>
diff --git a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
index 1fd2d32..e1edb80 100644
--- a/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
+++ b/UI-Project/src/views/TL/Temperedlayout/Temperedlayout.vue
@@ -42,14 +42,14 @@
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")
- }
- });
+ // request.get("/TidyUpGlassModule/CurrentCutTerritory").then((res) => {
+ // if (res.code == 200) {
+ // console.log(res.data);
+ // } else {
+ // ElMessage.warning(res.msg)
+ // router.push("/login")
+ // }
+ // });
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 5c43e1d..04dc378 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -1,51 +1,209 @@
<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 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: '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',
- state: '鏈惎鐢�'
- },
-]
+
+
+const dialogFormVisiblea2 = ref(false)
+
+
+const tableData = reactive([]);
+
+
+let socket;
+
+
+const initWebSocket = (token) =>{ //鍒濆鍖杦e
+
+let viewname = "unloadglass";
+
+if (typeof WebSocket === "undefined") {
+ console.log("鎮ㄧ殑娴忚鍣ㄤ笉鏀寔WebSocket");
+} else {
+ let socketUrl = "ws://" + "localhost"+":88" + "/api/unLoadGlass/api/talk/" + viewname;
+ if (socket != null) {
+ socket.close();
+ socket = null;
+ }
+
+ // 寮�鍚竴涓獁ebsocket鏈嶅姟
+ socket = new WebSocket(socketUrl);
+
+ // 鎵撳紑浜嬩欢
+ socket.onopen = function () {
+ console.log("websocket宸叉墦寮�");
+ };
+
+
+
+socket.onmessage = (msg) => {
+if (!msg.data) {
+return; // 濡傛灉鏀跺埌绌烘暟鎹紝鍒欑洿鎺ヨ繑鍥烇紝涓嶆墽琛屽悗缁�昏緫
+}
+
+
+
+ let obj = JSON.parse(msg.data);
+
+
+ console.log('鏀跺埌娑堟伅锛�', obj.data);
+
+ }
+
+ }
+ }
+
+
+
+
+// 鏁版嵁
+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(
'鏄惁鍒犻櫎璇ユ潯淇℃伅?',
@@ -83,17 +241,6 @@
}
}
-const dialogForm = () => {
- ElMessageBox.confirm(
- '鏄惁娓呯┖璇ユ潯淇℃伅?',
- '鎻愮ず',
- {
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
- }
- )
-}
const gridOptions = reactive({
border: "full",//琛ㄦ牸鍔犺竟妗�
keepSource: true,//淇濇寔婧愭暟鎹�
@@ -132,6 +279,10 @@
],
})
+
+
+
+
</script>
<template>
@@ -141,50 +292,80 @@
<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">
- <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>
</el-table-column>
</el-table>
</div>
</el-card>
-
- </div>
- <div style="display: flex;">
- <div id="main-body">
- <Landingindication></Landingindication>
- </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>
@@ -208,7 +389,11 @@
height: 450px;
}
#main-body{
+ margin-top: -20px;
+ margin-left: 300px;
+}
+#main-bodya{
margin-top: -10px;
- margin-left: 450px;
+ margin-left: 100px;
}
</style>
\ No newline at end of file
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index d4d6ee2..fb950f2 100644
--- a/UI-Project/vite.config.js
+++ b/UI-Project/vite.config.js
@@ -1,6 +1,6 @@
-import { fileURLToPath, URL } from 'node:url'
+import {fileURLToPath, URL} from 'node:url'
-import { defineConfig } from 'vite'
+import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
@@ -22,9 +22,9 @@
https: false,
proxy: {
'/api': {
- target: 'http://localhost:8080/mesModuleTools',
+ target: 'http://localhost:8081/',
changeOrigin: true,
- rewrite: (path) => path.replace(/^\/api/, '/mesModuleTools'),
+ rewrite: (path) => path.replace(/^\/api/, '/'),
},
'/api2': {
target: 'http://localhost:8081/mesModuleTools',
diff --git a/hangzhoumesParent/common/pom.xml b/hangzhoumesParent/common/pom.xml
index 874e97e..82e9685 100644
--- a/hangzhoumesParent/common/pom.xml
+++ b/hangzhoumesParent/common/pom.xml
@@ -13,7 +13,7 @@
<packaging>pom</packaging>
<modules>
<module>servicebase</module>
-<!-- <module>springsecurity</module>-->
+ <module>springsecurity</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -43,6 +43,12 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
+ <version>3.2.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>com.baomidou</groupId>
+ <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
@@ -98,6 +104,12 @@
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>2.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>com.alibaba</groupId>
+ <artifactId>fastjson</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
@@ -105,28 +117,17 @@
<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>
+ <exclusions>
+ <exclusion>
+ <groupId>com.alibaba</groupId>
+ <artifactId>fastjson</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<!-- 2.0~2.2 Knife4j 2.0.0 ~ 2.0.6-->
<!-- <dependency>-->
@@ -146,17 +147,6 @@
<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>
@@ -174,15 +164,13 @@
<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>
+ <groupId>com.alibaba</groupId>
+ <artifactId>fastjson</artifactId>
+ <version>1.2.33</version>
</dependency>
+
</dependencies>
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
index 39ffa21..a5ad9af 100644
--- 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
@@ -2,16 +2,17 @@
import com.mes.common.interceptor.JwtInterceptor;
import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
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)
@@ -19,11 +20,26 @@
.excludePathPatterns("/user/login",
"/user/register",
"/swagger-resources/**"
- ,"/webjars/**"
- ,"/v2/**"
- ,"/swagger-ui.html/**"
- ,"/swagger-ui.html#/**");
+ , "/webjars/**"
+ , "/v2/**"
+ , "/swagger-ui.html/**"
+ , "/swagger-ui.html#/**");
}
+ @Override
+ public void addCorsMappings(CorsRegistry registry) {
+ // 璁剧疆鍏佽璺ㄥ煙鐨勮矾寰�
+ registry.addMapping("/**")
+ // 璁剧疆鍏佽璺ㄥ煙璇锋眰鐨勫煙鍚�
+// .allowedOriginPatterns("*")
+ // 鏄惁鍏佽cookie
+ .allowCredentials(true)
+ // 璁剧疆鍏佽鐨勮姹傛柟寮�
+ .allowedMethods("GET", "POST", "DELETE", "PUT")
+ // 璁剧疆鍏佽鐨刪eader灞炴��
+ .allowedHeaders("*")
+ // 璺ㄥ煙鍏佽鏃堕棿
+ .maxAge(3600);
+ }
}
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
deleted file mode 100644
index d5d4756..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/RedisTemplateConfig.java
+++ /dev/null
@@ -1,39 +0,0 @@
-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
deleted file mode 100644
index 84bb05c..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/SessionConfig.java
+++ /dev/null
@@ -1,20 +0,0 @@
-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/device/PLCAutoMes.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
new file mode 100644
index 0000000..cd418c5
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PLCAutoMes.java
@@ -0,0 +1,88 @@
+package com.mes.device;
+
+import com.mes.tools.InitUtil;
+import org.springframework.context.annotation.Configuration;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class PLCAutoMes extends Thread {
+
+ // 鐢ㄤ簬瀛樺偍搴旂敤绋嬪簭鐨勯厤缃俊鎭�
+ private Configuration config;
+ private static InitUtil initUtil;
+
+
+ // 鍗曚緥瀹炰緥
+ private static PLCAutoMes instance;
+ private static String PlcMes = PLCAutoMes.class.getResource("/JsonFile/PlcMes.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 PlcBitObject plcPlcAlarm = initUtil.initbit(PlcAlarm);
+ public static PlcParameterObject PlcMesObject = initUtil.initword(PlcMes);
+ public static PlcParameterObject PlcReadObject = initUtil.initword(PlcRead);
+ public static PlcParameterObject PlcframeObject = initUtil.initword(Plcframe);
+
+ // 绉佹湁鏋勯�犲嚱鏁�
+ public PLCAutoMes() throws IOException {
+
+ 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);
+ InitUtil.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/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
new file mode 100644
index 0000000..7ff0ee3
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitInfo.java
@@ -0,0 +1,75 @@
+package com.mes.device;
+
+public class PlcBitInfo {
+
+ public PlcBitInfo(String startAddress) {
+ this.startAddress = startAddress;
+ }
+ private String startAddress;
+ // 鍙傛暟鏍囪瘑
+ private String codeId;
+
+ // 鍙傛暟鍚嶇О
+ private String name;
+
+ // 璇诲彇 鍙傛暟鍊�
+ private Boolean value;
+ // 鍙傛暟鍦板潃
+ private int addressIndex;
+
+ public String getCodeId() {
+ return this.codeId;
+ }
+
+ public void setCodeId(String codeId) {
+ this.codeId = codeId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Boolean getValue() {
+ return this.value;
+ }
+
+ public void setValue(Boolean value) {
+ this.value = value;
+ }
+
+
+ public int getAddressIndex() {
+ return this.addressIndex;
+ }
+ /**
+ * 鑾峰彇鍦板潃
+ *
+ * @param index 绱㈠紩鍦板潃
+ */
+ public String getAddress(int index) {
+ String[] stringdatas = this.startAddress.trim().split("\\.");
+ if (stringdatas.length < 2 )
+ return null;
+ int dbwindex = 0;
+ int bitindex = 0;
+ if (stringdatas.length == 3) {
+ dbwindex = Integer.parseInt(stringdatas[1]);
+ bitindex = Integer.parseInt(stringdatas[2]);
+ } else
+ return null;
+ dbwindex+=index/8;
+ bitindex+=index%8;
+ return stringdatas[0]+"."+dbwindex+"."+bitindex;
+ }
+
+
+
+
+ public void setAddressIndex(int addressindex) {
+ this.addressIndex = addressindex;
+ }
+ }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
new file mode 100644
index 0000000..e9eb1f7
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.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/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
new file mode 100644
index 0000000..f4f3be0
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.device;
+public class PlcParameterInfo {
+ public PlcParameterInfo(String startAddress) {
+ this.startAddress = startAddress;
+ }
+ private String startAddress;
+ // 鍙傛暟鏍囪瘑
+ private String codeId;
+
+ // 鍙傛暟鍚嶇О
+ private String name;
+
+ // 璇诲彇 鍙傛暟鍊�
+ private String value;
+
+ // // 鍐欏叆 鍙傛暟鍊�
+ // private String writeValue;
+
+ // 鍙傛暟鍗曚綅
+ private String unit;
+
+ // 鍙傛暟鍊艰浆鎹㈢郴鏁�
+ private int ratio;
+
+ // 鍙傛暟鍦板潃
+ private int addressIndex;
+
+ // 鍙傛暟鍦板潃浣嶉暱搴�
+ private int addressLength;
+
+ public String getCodeId() {
+ return this.codeId;
+ }
+
+ public void setCodeId(String codeId) {
+ this.codeId = codeId;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getValue() {
+ return this.value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+
+ // public String getWriteValue() {
+ // return this.writeValue;
+ // }
+
+ // public void setWriteValue(String writeValue) {
+ // this.writeValue = writeValue;
+ // }
+
+ public String getUnit() {
+ return this.unit;
+ }
+
+ public void setUnit(String unit) {
+ this.unit = unit;
+ }
+
+ public int getAddressIndex() {
+ return this.addressIndex;
+ }
+
+ public void setAddressIndex(int addressindex) {
+ this.addressIndex = addressindex;
+ }
+
+ public int getAddressLength() {
+ return this.addressLength;
+ }
+
+ public void setAddressLength(int addresslength) {
+ this.addressLength = addresslength;
+ }
+
+ public int getRatio() {
+ return this.ratio;
+ }
+
+ public void setRatio(int ratio) {
+ this.ratio = ratio;
+ }
+
+ /**
+ * 鑾峰彇鍦板潃
+ *
+ * @param index 绱㈠紩鍦板潃
+ */
+ public String getAddress(int index) {
+ String[] stringdatas = this.startAddress.trim().split("\\.");
+ int addressLength=this.addressLength;
+ if (addressLength < 2 ){
+ return null;
+ }
+
+ if (addressLength == 2 ) {
+ int wordindex = index;
+
+ return stringdatas[0] + "." + wordindex;
+ }
+ if (addressLength == 14 ) {
+ int wordindex = index;
+ int newIndex = wordindex + 13;
+ return stringdatas[0] + "." + wordindex +"-" + newIndex;
+ }
+ return null;
+ }
+
+ public int getPlcAddress() {
+
+ return addressIndex;
+ }
+
+ public String getAddress() {
+ return getAddress(this.addressIndex);
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
new file mode 100644
index 0000000..e4f45f6
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcParameterObject.java
@@ -0,0 +1,205 @@
+package com.mes.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/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java
deleted file mode 100644
index e380bcc..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/ExportToWord.java
+++ /dev/null
@@ -1,313 +0,0 @@
-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/InitUtil.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
new file mode 100644
index 0000000..8888513
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/InitUtil.java
@@ -0,0 +1,128 @@
+package com.mes.tools;
+
+import cn.hutool.json.JSONArray;
+import cn.hutool.json.JSONObject;
+import com.mes.device.PlcBitInfo;
+import com.mes.device.PlcBitObject;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class InitUtil {
+ //鍒濆鍖杦ord
+ public static PlcParameterObject initword(String jsonFilePath) {
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ PlcParameterObject plcParameterObject = new PlcParameterObject();
+ plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+ PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcParameterInfo.setCodeId(codeid);
+ plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+ //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+ plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+ plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+ plcParameterObject.addPlcParameter(plcParameterInfo);
+ }
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ // plcParameterObject.setPlcParameterList(getplcvlues);
+
+ return plcParameterObject;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //鍒濆鍖朾it
+ public static PlcBitObject initbit(String jsonFilePath) {
+ PlcBitObject plcBitObject = new PlcBitObject();
+
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+ PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcBitInfo.setCodeId(codeid);
+ plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+ plcBitObject.addPlcBit(plcBitInfo);
+ }
+ System.out.println("");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+ // false, true ,true };
+ // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+// List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+// plcBitObject.setPlcBitList(getplcvlues);
+ return plcBitObject;
+ }
+
+//
+ 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,0x03};
+ // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ plcParameterObject.setPlcParameterList(getplcvlues);
+ }
+
+
+
+}
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
deleted file mode 100644
index bb35843..0000000
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/TokenTools.java
+++ /dev/null
@@ -1,22 +0,0 @@
-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/springsecurity/pom.xml b/hangzhoumesParent/common/springsecurity/pom.xml
index cca1425..f4e6eed 100644
--- a/hangzhoumesParent/common/springsecurity/pom.xml
+++ b/hangzhoumesParent/common/springsecurity/pom.xml
@@ -23,15 +23,16 @@
<version>1.0-SNAPSHOT</version>
</dependency>
<!-- Spring Security渚濊禆 -->
-<!-- <dependency>-->
-<!-- <groupId>org.springframework.boot</groupId>-->
-<!-- <artifactId>spring-boot-starter-security</artifactId>-->
-<!-- </dependency>-->
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
-<!-- <dependency>-->
-<!-- <groupId>io.jsonwebtoken</groupId>-->
-<!-- <artifactId>jjwt</artifactId>-->
-<!-- </dependency>-->
+ <dependency>
+ <groupId>io.jsonwebtoken</groupId>
+ <artifactId>jjwt</artifactId>
+ <version>0.9.0</version>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java
new file mode 100644
index 0000000..521c147
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/MyCorsConfig.java
@@ -0,0 +1,46 @@
+package com.mes.common.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.reactive.CorsWebFilter;
+import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
+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("/**");
+ }
+ };
+ }
+
+ @Bean
+ public CorsWebFilter corsWebFilter() {
+ UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+
+ CorsConfiguration corsConfiguration = new CorsConfiguration();
+
+ //1銆侀厤缃法鍩�
+ corsConfiguration.addAllowedHeader("*");
+ corsConfiguration.addAllowedMethod("*");
+ corsConfiguration.addAllowedOrigin("*");
+ corsConfiguration.setAllowCredentials(true);
+
+ source.registerCorsConfiguration("/**", corsConfiguration);
+ return new CorsWebFilter(source);
+ }
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java
new file mode 100644
index 0000000..e469272
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/RedisConfig.java
@@ -0,0 +1,37 @@
+package com.mes.common.config;
+
+import com.mes.common.utils.FastJsonRedisSerializer;
+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.StringRedisSerializer;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:13
+ * @Description:
+ */
+@Configuration
+public class RedisConfig {
+
+ @Bean
+ @SuppressWarnings(value = {"unchecked", "rawtypes"})
+ public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
+ RedisTemplate<Object, Object> template = new RedisTemplate<>();
+ template.setConnectionFactory(connectionFactory);
+
+ FastJsonRedisSerializer serializer = new FastJsonRedisSerializer(Object.class);
+
+ // 浣跨敤StringRedisSerializer鏉ュ簭鍒楀寲鍜屽弽搴忓垪鍖杛edis鐨刱ey鍊�
+ template.setKeySerializer(new StringRedisSerializer());
+ template.setValueSerializer(serializer);
+
+ // Hash鐨刱ey涔熼噰鐢⊿tringRedisSerializer鐨勫簭鍒楀寲鏂瑰紡
+ template.setHashKeySerializer(new StringRedisSerializer());
+ template.setHashValueSerializer(serializer);
+
+ template.afterPropertiesSet();
+ return template;
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
new file mode 100644
index 0000000..e4a543e
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java
@@ -0,0 +1,53 @@
+package com.mes.common.config;
+
+
+import com.mes.common.filter.JwtAuthenticationTokenFilter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+@Configuration
+//@EnableWebSecurity
+@EnableGlobalMethodSecurity(prePostEnabled = true)
+public class TokenWebSecurityConfig extends WebSecurityConfigurerAdapter {
+ @Autowired
+ private JwtAuthenticationTokenFilter jwtAuthenticationTokenFilter;
+
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+
+ /**
+ * 閰嶇疆杩囨护瑙勫垯
+ */
+ @Override
+ protected void configure(HttpSecurity http) throws Exception {
+ http
+ //鍏抽棴csrf
+ .csrf().disable()
+ //涓嶉�氳繃Session鑾峰彇SecurityContext
+ .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
+ .and()
+ .authorizeRequests()
+ // 瀵逛簬鐧诲綍鎺ュ彛 鍏佽鍖垮悕璁块棶
+ .antMatchers("/userinfo/login").anonymous()
+ .antMatchers("/hello").permitAll()
+ // 闄や笂闈㈠鐨勬墍鏈夎姹傚叏閮ㄩ渶瑕侀壌鏉冭璇�
+ .anyRequest().permitAll();
+// http.addFilterBefore(jwtAuthenticationTokenFilter, UsernamePasswordAuthenticationFilter.class);
+ }
+
+ @Bean
+ @Override
+ public AuthenticationManager authenticationManagerBean() throws Exception {
+ return super.authenticationManagerBean();
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
new file mode 100644
index 0000000..5be6d66
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -0,0 +1,76 @@
+package com.mes.common.filter;
+
+import com.mes.common.utils.JwtUtil;
+import com.mes.common.utils.RedisUtil;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.userinfo.entity.LoginUser;
+import io.jsonwebtoken.Claims;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
+import org.springframework.web.filter.OncePerRequestFilter;
+
+import javax.annotation.Resource;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/10 9:42
+ * @Description:
+ */
+@Component
+public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
+ // 姝ゅ瑙i噴涓轰粈涔堜笉鍘诲疄鐜癋ilter鎺ュ彛锛屽洜涓哄湪鏌愪簺鎯呭喌涓嬩細杩囨护涓ゆ锛屾墽琛屼袱娆ilter閲岄潰鐨勬柟娉曪紝鎵�浠ユ垜浠�夋嫨缁ф壙SpringSecurity涓殑OncePerRequestFilter
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Resource
+ private SysMenuMapper menuMapper;
+
+ @Override
+ protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
+ //鑾峰彇token
+ String token = request.getHeader("token");
+ if (!StringUtils.hasText(token)) {
+ //鏀捐
+ filterChain.doFilter(request, response);
+ return; // 姝ゅ鍔犱笂return濂藉鏄悗闈㈢粨鏋滆繑鍥炵殑鏃跺�欏氨涓嶄細鍐嶈蛋涓�閬嶆杩囨护鍣ㄧ殑鏂规硶浜�
+ }
+ //瑙f瀽token
+ String userid;
+ try {
+ Claims claims = JwtUtil.parseJWT(token);
+ userid = claims.getSubject();
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException("token闈炴硶");
+ }
+ //浠巖edis涓幏鍙栫敤鎴蜂俊鎭�
+ String redisKey = "login:" + userid;
+ LoginUser loginUser = redisUtil.getCacheObject(redisKey);
+ if (Objects.isNull(loginUser)) {
+ throw new RuntimeException("鐢ㄦ埛鏈櫥褰�");
+ }
+ //瀛樺叆SecurityContextHolder锛屼互渚涘悗闈㈢殑杩囨护鍣ㄤ娇鐢�
+ List<String> permissionKeyList = menuMapper.selectPermsByUserId(Long.parseLong(userid));
+ List<GrantedAuthority> authorities = permissionKeyList.stream().
+ map(SimpleGrantedAuthority::new)
+ .collect(Collectors.toList());
+ UsernamePasswordAuthenticationToken authenticationToken =
+ new UsernamePasswordAuthenticationToken(loginUser, null, authorities);
+ SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+ //鏀捐
+ filterChain.doFilter(request, response);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java
new file mode 100644
index 0000000..302ff52
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AccessDeniedHandlerImpl.java
@@ -0,0 +1,30 @@
+package com.mes.common.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.mes.common.utils.WebUtils;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/12 10:38
+ * @Description:
+ */
+@Component
+public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
+ @Override
+ public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException {
+ Result result = Result.error(HttpStatus.FORBIDDEN.value(), "鏉冮檺涓嶈冻");
+ String json = JSON.toJSONString(result);
+ WebUtils.renderString(response, json);
+
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java
new file mode 100644
index 0000000..6cf146f
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/handler/AuthenticationEntryPointImpl.java
@@ -0,0 +1,29 @@
+package com.mes.common.handler;
+
+import com.alibaba.fastjson.JSON;
+import com.mes.common.utils.WebUtils;
+import com.mes.utils.Result;
+import org.springframework.http.HttpStatus;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/12 10:38
+ * @Description:
+ */
+@Component
+public class AuthenticationEntryPointImpl implements AuthenticationEntryPoint {
+ @Override
+ public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
+ Result result = Result.error(HttpStatus.UNAUTHORIZED.value(), "璁よ瘉澶辫触璇烽噸鏂扮櫥褰�");
+ String json = JSON.toJSONString(result);
+ WebUtils.renderString(response, json);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java
new file mode 100644
index 0000000..f8ab417
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/FastJsonRedisSerializer.java
@@ -0,0 +1,55 @@
+package com.mes.common.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.parser.ParserConfig;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.type.TypeFactory;
+import org.springframework.data.redis.serializer.RedisSerializer;
+import org.springframework.data.redis.serializer.SerializationException;
+
+import java.nio.charset.Charset;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/11 15:28
+ * @Description:
+ */
+public class FastJsonRedisSerializer<T> implements RedisSerializer<T> {
+
+ public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
+
+ private Class<T> clazz;
+
+ static {
+ ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
+ }
+
+ public FastJsonRedisSerializer(Class<T> clazz) {
+ super();
+ this.clazz = clazz;
+ }
+
+ @Override
+ public byte[] serialize(T t) throws SerializationException {
+ if (t == null) {
+ return new byte[0];
+ }
+ return JSON.toJSONString(t, SerializerFeature.WriteClassName).getBytes(DEFAULT_CHARSET);
+ }
+
+ @Override
+ public T deserialize(byte[] bytes) throws SerializationException {
+ if (bytes == null || bytes.length <= 0) {
+ return null;
+ }
+ String str = new String(bytes, DEFAULT_CHARSET);
+
+ return JSON.parseObject(str, clazz);
+ }
+
+
+ protected JavaType getJavaType(Class<?> clazz) {
+ return TypeFactory.defaultInstance().constructType(clazz);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
new file mode 100644
index 0000000..8c8f0d9
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
@@ -0,0 +1,120 @@
+package com.mes.common.utils;
+
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.JwtBuilder;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
+import java.util.Base64;
+import java.util.Date;
+import java.util.UUID;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:15
+ * @Description:
+ */
+public class JwtUtil {
+
+ //鏈夋晥鏈熶负
+ public static final Long JWT_TTL = 60 * 60 * 1000L;// 60 * 60 *1000 涓�涓皬鏃�
+ //璁剧疆绉橀挜鏄庢枃
+ public static final String JWT_KEY = "sangeng";
+
+ public static String getUUID() {
+ String token = UUID.randomUUID().toString().replaceAll("-", "");
+ return token;
+ }
+
+ /**
+ * 鐢熸垚jtw
+ *
+ * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
+ * @return
+ */
+ public static String createJWT(String subject) {
+ JwtBuilder builder = getJwtBuilder(subject, null, getUUID());// 璁剧疆杩囨湡鏃堕棿
+ return builder.compact();
+ }
+
+ /**
+ * 鐢熸垚jtw
+ *
+ * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
+ * @param ttlMillis token瓒呮椂鏃堕棿
+ * @return
+ */
+ public static String createJWT(String subject, Long ttlMillis) {
+ JwtBuilder builder = getJwtBuilder(subject, ttlMillis, getUUID());// 璁剧疆杩囨湡鏃堕棿
+ return builder.compact();
+ }
+
+ private static JwtBuilder getJwtBuilder(String subject, Long ttlMillis, String uuid) {
+ SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
+ SecretKey secretKey = generalKey();
+ long nowMillis = System.currentTimeMillis();
+ Date now = new Date(nowMillis);
+ if (ttlMillis == null) {
+ ttlMillis = JwtUtil.JWT_TTL;
+ }
+ long expMillis = nowMillis + ttlMillis;
+ Date expDate = new Date(expMillis);
+ return Jwts.builder()
+ .setId(uuid) //鍞竴鐨処D
+ .setSubject(subject) // 涓婚 鍙互鏄疛SON鏁版嵁
+ .setIssuer("sg") // 绛惧彂鑰�
+ .setIssuedAt(now) // 绛惧彂鏃堕棿
+ .signWith(signatureAlgorithm, secretKey) //浣跨敤HS256瀵圭О鍔犲瘑绠楁硶绛惧悕, 绗簩涓弬鏁颁负绉橀挜
+ .setExpiration(expDate);
+ }
+
+ /**
+ * 鍒涘缓token
+ *
+ * @param id
+ * @param subject
+ * @param ttlMillis
+ * @return
+ */
+ public static String createJWT(String id, String subject, Long ttlMillis) {
+ JwtBuilder builder = getJwtBuilder(subject, ttlMillis, id);// 璁剧疆杩囨湡鏃堕棿
+ return builder.compact();
+ }
+
+ public static void main(String[] args) throws Exception {
+ String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjYWM2ZDVhZi1mNjVlLTQ0MDAtYjcxMi0zYWEwOGIyOTIwYjQiLCJzdWIiOiJzZyIsImlzcyI6InNnIiwiaWF0IjoxNjM4MTA2NzEyLCJleHAiOjE2MzgxMTAzMTJ9.JVsSbkP94wuczb4QryQbAke3ysBDIL5ou8fWsbt_ebg";
+ Claims claims = parseJWT(token);
+ System.out.println(claims);
+ }
+
+ /**
+ * 鐢熸垚鍔犲瘑鍚庣殑绉橀挜 secretKey
+ *
+ * @return
+ */
+ public static SecretKey generalKey() {
+ byte[] encodedKey = Base64.getDecoder().decode(JwtUtil.JWT_KEY);
+ SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
+ return key;
+ }
+
+ /**
+ * 瑙f瀽
+ *
+ * @param jwt
+ * @return
+ * @throws Exception
+ */
+ public static Claims parseJWT(String jwt) throws Exception {
+ SecretKey secretKey = generalKey();
+ return Jwts.parser()
+ .setSigningKey(secretKey)
+ .parseClaimsJws(jwt)
+ .getBody();
+ }
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java
new file mode 100644
index 0000000..e097010
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/RedisUtil.java
@@ -0,0 +1,220 @@
+package com.mes.common.utils;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.BoundSetOperations;
+import org.springframework.data.redis.core.HashOperations;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Component;
+
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * spring redis 宸ュ叿绫�
+ **/
+@Component
+public class RedisUtil {
+ @Autowired
+ public RedisTemplate redisTemplate;
+
+ /**
+ * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param value 缂撳瓨鐨勫��
+ */
+ public <T> void setCacheObject(final String key, final T value) {
+ redisTemplate.opsForValue().set(key, value);
+ }
+
+ /**
+ * 缂撳瓨鍩烘湰鐨勫璞★紝Integer銆丼tring銆佸疄浣撶被绛�
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param value 缂撳瓨鐨勫��
+ * @param timeout 鏃堕棿
+ * @param timeUnit 鏃堕棿棰楃矑搴�
+ */
+ public <T> void setCacheObject(final String key, final T value, final Integer timeout, final TimeUnit timeUnit) {
+ redisTemplate.opsForValue().set(key, value, timeout, timeUnit);
+ }
+
+ /**
+ * 璁剧疆鏈夋晥鏃堕棿
+ *
+ * @param key Redis閿�
+ * @param timeout 瓒呮椂鏃堕棿
+ * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
+ */
+ public boolean expire(final String key, final long timeout) {
+ return expire(key, timeout, TimeUnit.SECONDS);
+ }
+
+ /**
+ * 璁剧疆鏈夋晥鏃堕棿
+ *
+ * @param key Redis閿�
+ * @param timeout 瓒呮椂鏃堕棿
+ * @param unit 鏃堕棿鍗曚綅
+ * @return true=璁剧疆鎴愬姛锛沠alse=璁剧疆澶辫触
+ */
+ public boolean expire(final String key, final long timeout, final TimeUnit unit) {
+ return redisTemplate.expire(key, timeout, unit);
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨勫熀鏈璞°��
+ *
+ * @param key 缂撳瓨閿��
+ * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+ */
+ public <T> T getCacheObject(final String key) {
+ ValueOperations<String, T> operation = redisTemplate.opsForValue();
+ return operation.get(key);
+ }
+
+ /**
+ * 鍒犻櫎鍗曚釜瀵硅薄
+ *
+ * @param key
+ */
+ public boolean deleteObject(final String key) {
+ return redisTemplate.delete(key);
+ }
+
+ /**
+ * 鍒犻櫎闆嗗悎瀵硅薄
+ *
+ * @param collection 澶氫釜瀵硅薄
+ * @return
+ */
+ public long deleteObject(final Collection collection) {
+ return redisTemplate.delete(collection);
+ }
+
+ /**
+ * 缂撳瓨List鏁版嵁
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @param dataList 寰呯紦瀛樼殑List鏁版嵁
+ * @return 缂撳瓨鐨勫璞�
+ */
+ public <T> long setCacheList(final String key, final List<T> dataList) {
+ Long count = redisTemplate.opsForList().rightPushAll(key, dataList);
+ return count == null ? 0 : count;
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨刲ist瀵硅薄
+ *
+ * @param key 缂撳瓨鐨勯敭鍊�
+ * @return 缂撳瓨閿�煎搴旂殑鏁版嵁
+ */
+ public <T> List<T> getCacheList(final String key) {
+ return redisTemplate.opsForList().range(key, 0, -1);
+ }
+
+ /**
+ * 缂撳瓨Set
+ *
+ * @param key 缂撳瓨閿��
+ * @param dataSet 缂撳瓨鐨勬暟鎹�
+ * @return 缂撳瓨鏁版嵁鐨勫璞�
+ */
+ public <T> BoundSetOperations<String, T> setCacheSet(final String key, final Set<T> dataSet) {
+ BoundSetOperations<String, T> setOperation = redisTemplate.boundSetOps(key);
+ Iterator<T> it = dataSet.iterator();
+ while (it.hasNext()) {
+ setOperation.add(it.next());
+ }
+ return setOperation;
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨剆et
+ *
+ * @param key
+ * @return
+ */
+ public <T> Set<T> getCacheSet(final String key) {
+ return redisTemplate.opsForSet().members(key);
+ }
+
+ /**
+ * 缂撳瓨Map
+ *
+ * @param key
+ * @param dataMap
+ */
+ public <T> void setCacheMap(final String key, final Map<String, T> dataMap) {
+ if (dataMap != null) {
+ redisTemplate.opsForHash().putAll(key, dataMap);
+ }
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨凪ap
+ *
+ * @param key
+ * @return
+ */
+ public <T> Map<String, T> getCacheMap(final String key) {
+ return redisTemplate.opsForHash().entries(key);
+ }
+
+ /**
+ * 寰�Hash涓瓨鍏ユ暟鎹�
+ *
+ * @param key Redis閿�
+ * @param hKey Hash閿�
+ * @param value 鍊�
+ */
+ public <T> void setCacheMapValue(final String key, final String hKey, final T value) {
+ redisTemplate.opsForHash().put(key, hKey, value);
+ }
+
+ /**
+ * 鑾峰彇Hash涓殑鏁版嵁
+ *
+ * @param key Redis閿�
+ * @param hKey Hash閿�
+ * @return Hash涓殑瀵硅薄
+ */
+ public <T> T getCacheMapValue(final String key, final String hKey) {
+ HashOperations<String, String, T> opsForHash = redisTemplate.opsForHash();
+ return opsForHash.get(key, hKey);
+ }
+
+ /**
+ * 鍒犻櫎Hash涓殑鏁版嵁
+ *
+ * @param key
+ * @param hkey
+ */
+ public void delCacheMapValue(final String key, final String hkey) {
+ HashOperations hashOperations = redisTemplate.opsForHash();
+ hashOperations.delete(key, hkey);
+ }
+
+ /**
+ * 鑾峰彇澶氫釜Hash涓殑鏁版嵁
+ *
+ * @param key Redis閿�
+ * @param hKeys Hash閿泦鍚�
+ * @return Hash瀵硅薄闆嗗悎
+ */
+ public <T> List<T> getMultiCacheMapValue(final String key, final Collection<Object> hKeys) {
+ return redisTemplate.opsForHash().multiGet(key, hKeys);
+ }
+
+ /**
+ * 鑾峰緱缂撳瓨鐨勫熀鏈璞″垪琛�
+ *
+ * @param pattern 瀛楃涓插墠缂�
+ * @return 瀵硅薄鍒楄〃
+ */
+ public Collection<String> keys(final String pattern) {
+ return redisTemplate.keys(pattern);
+ }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java
new file mode 100644
index 0000000..618144d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/WebUtils.java
@@ -0,0 +1,30 @@
+package com.mes.common.utils;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 19:16
+ * @Description:
+ */
+public class WebUtils {
+ /**
+ * 灏嗗瓧绗︿覆娓叉煋鍒板鎴风
+ *
+ * @param response 娓叉煋瀵硅薄
+ * @param string 寰呮覆鏌撶殑瀛楃涓�
+ * @return null
+ */
+ public static String renderString(HttpServletResponse response, String string) {
+ try {
+ response.setStatus(200);
+ response.setContentType("application/json");
+ response.setCharacterEncoding("utf-8");
+ response.getWriter().print(string);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
new file mode 100644
index 0000000..131b179
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/controller/SysMenuController.java
@@ -0,0 +1,39 @@
+package com.mes.menu.controller;
+
+
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.service.SysMenuService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@ApiModel("鑾峰彇鑿滃崟淇℃伅")
+@RestController
+@RequestMapping("/menu/sysMenu")
+public class SysMenuController {
+
+ @Autowired
+ SysMenuService sysMenuService;
+
+ @ApiOperation("鑾峰彇鐢ㄦ埛鏈夋潈闄愮殑鎵�鏈夎彍鍗�")
+ @GetMapping("/list")
+ public Result<List<SysMenu>> getMenuTree() {
+ return Result.success(sysMenuService.getMenuTree());
+ }
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
new file mode 100644
index 0000000..9ae6597
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/entity/SysMenu.java
@@ -0,0 +1,82 @@
+package com.mes.menu.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-13
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class SysMenu implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鑷id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+
+ /**
+ * 鐖秈d
+ */
+ private Integer parentId;
+
+ /**
+ * 妯″潡鍚嶇О
+ */
+ private String menuName;
+
+ /**
+ * 鍥炬爣
+ */
+ private String icon;
+
+ /**
+ * 鍦板潃
+ */
+ private String url;
+
+ /**
+ * 璇█绫诲瀷
+ */
+ private String languageType;
+
+ /**
+ * 鐘舵��
+ */
+ private Integer status;
+
+ /**
+ * 鎺掑簭
+ */
+ private String listSort;
+
+ /**
+ * 鍒涘缓鏃堕棿
+ */
+ private Date createTime;
+
+ /**
+ * 瀛愯彍鍗�
+ */
+ @TableField(exist = false)
+ private List<SysMenu> children;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
new file mode 100644
index 0000000..c2fcea5
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/mapper/SysMenuMapper.java
@@ -0,0 +1,19 @@
+package com.mes.menu.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.menu.entity.SysMenu;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysMenuMapper extends BaseMapper<SysMenu> {
+
+ List<String> selectPermsByUserId(long parseLong);
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
new file mode 100644
index 0000000..3b77a2e
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/SysMenuService.java
@@ -0,0 +1,19 @@
+package com.mes.menu.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.menu.entity.SysMenu;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鑿滃崟琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysMenuService extends IService<SysMenu> {
+
+ List<SysMenu> getMenuTree();
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
new file mode 100644
index 0000000..8527a36
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/menu/service/impl/SysMenuServiceImpl.java
@@ -0,0 +1,67 @@
+package com.mes.menu.service.impl;
+
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.menu.entity.SysMenu;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.menu.service.SysMenuService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ * 鑿滃崟琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+@Slf4j
+public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {
+
+ @Override
+ public List<SysMenu> getMenuTree() {
+ List<SysMenu> menuList = this.baseMapper.selectList(null);
+ return create(menuList);
+ }
+
+
+ /**
+ * 灏嗘暟鎹簱涓煡璇㈠嚭鏉ョ殑list闆嗗悎浼犲叆姝ゆ柟娉曞嵆鍙幏寰楁帓鎴愭爲褰㈢粨鏋勭殑list闆嗗悎
+ *
+ * @param lists
+ * @return
+ */
+ public List<SysMenu> create(List<SysMenu> lists) {
+ List<SysMenu> deptTreeList = lists.stream()
+ .filter(item -> item.getParentId() == 0)
+ .map(item -> {
+ item.setChildren(getChildren(item, lists));
+ return item;
+ }).collect(Collectors.toList());
+ return deptTreeList;
+ }
+
+ /**
+ * 姝ゆ柟娉曞皢琚�掑綊璋冪敤
+ *
+ * @param menu
+ * @param menus
+ * @return
+ */
+ private List<SysMenu> getChildren(SysMenu menu, List<SysMenu> menus) {
+ List<SysMenu> res = menus.stream()
+ .filter(item -> item.getParentId().equals(menu.getId()))
+ .map(item -> {
+ item.setChildren(getChildren(item, menus));
+ return item;
+ }).collect(Collectors.toList());
+ log.info("鑿滃崟鏍�:{}", JSONUtil.toJsonStr(res));
+ return res;
+ }
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
new file mode 100644
index 0000000..943ff7d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java
@@ -0,0 +1,20 @@
+package com.mes.role.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/role/sys-role")
+public class SysRoleController {
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java
new file mode 100644
index 0000000..77b3175
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleMenuController.java
@@ -0,0 +1,20 @@
+package com.mes.role.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/role/sys-role-menu")
+public class SysRoleMenuController {
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java
new file mode 100644
index 0000000..14fd4a3
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRole.java
@@ -0,0 +1,50 @@
+package com.mes.role.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 瑙掕壊琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ private String name;
+
+ /**
+ * 瑙掕壊鏉冮檺瀛楃涓�
+ */
+ private String roleKey;
+
+ /**
+ * 瑙掕壊鐘舵�侊紙0姝e父 1鍋滅敤锛�
+ */
+ private String status;
+
+ /**
+ * 鍒犻櫎鏍囧織
+ */
+ private Integer delFlag;
+
+ /**
+ * 澶囨敞
+ */
+ private String remark;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
new file mode 100644
index 0000000..e69af40
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/entity/SysRoleMenu.java
@@ -0,0 +1,36 @@
+package com.mes.role.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysRoleMenu implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 瑙掕壊ID
+ */
+ @TableId(value = "role_id", type = IdType.AUTO)
+ private Long roleId;
+
+ /**
+ * 鑿滃崟id
+ */
+ private Long menuId;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
new file mode 100644
index 0000000..f90596c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMapper.java
@@ -0,0 +1,16 @@
+package com.mes.role.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.role.entity.SysRole;
+
+/**
+ * <p>
+ * 瑙掕壊琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMapper extends BaseMapper<SysRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
new file mode 100644
index 0000000..747f5ac
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/SysRoleMenuMapper.java
@@ -0,0 +1,16 @@
+package com.mes.role.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.role.entity.SysRoleMenu;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml
new file mode 100644
index 0000000..9a0cd27
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.role.mapper.SysRoleMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml
new file mode 100644
index 0000000..af0749b
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/mapper/xml/SysRoleMenuMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.role.mapper.SysRoleMenuMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java
new file mode 100644
index 0000000..e4d23dc
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleMenuService.java
@@ -0,0 +1,16 @@
+package com.mes.role.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.role.entity.SysRoleMenu;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleMenuService extends IService<SysRoleMenu> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
new file mode 100644
index 0000000..6f89b19
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/SysRoleService.java
@@ -0,0 +1,16 @@
+package com.mes.role.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.role.entity.SysRole;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysRoleService extends IService<SysRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java
new file mode 100644
index 0000000..4c8a475
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleMenuServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.role.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.role.entity.SysRoleMenu;
+import com.mes.role.mapper.SysRoleMenuMapper;
+import com.mes.role.service.SysRoleMenuService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper, SysRoleMenu> implements SysRoleMenuService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
new file mode 100644
index 0000000..5b78836
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/service/impl/SysRoleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.role.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.role.entity.SysRole;
+import com.mes.role.mapper.SysRoleMapper;
+import com.mes.role.service.SysRoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 瑙掕壊琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> implements SysRoleService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
new file mode 100644
index 0000000..aa99f77
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserController.java
@@ -0,0 +1,36 @@
+package com.mes.userinfo.controller;
+
+
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@CrossOrigin
+@RequestMapping("/userinfo")
+public class SysUserController {
+
+ @Autowired
+ private SysUserService sysUserService;
+
+ @PostMapping("/login")
+ public Result login(@RequestBody SysUser user) {
+ return sysUserService.login(user);
+ }
+
+ @GetMapping("/hello")
+ public Result hello() {
+ return Result.success("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJlZjMyMjQ4NDcyODE0ZWFlYWRlOTBkYmZjYWFlZmNmZSIsInN1YiI6IjEiLCJpc3MiOiJzZyIsImlhdCI6MTcxMjkwMjI0NCwiZXhwIjoxNzEyOTA1ODQ0fQ.DlJkhkiwjZSqprdLzKaTB3yuyxGukerKeF0FbJK_6HY");
+ }
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java
new file mode 100644
index 0000000..8d6e6a7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/controller/SysUserRoleController.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/userinfo/sys-user-role")
+public class SysUserRoleController {
+
+}
+
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
new file mode 100644
index 0000000..d60a05f
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/LoginUser.java
@@ -0,0 +1,94 @@
+package com.mes.userinfo.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/11 15:46
+ * @Description:
+ */
+public class LoginUser implements UserDetails {
+
+
+ private SysUser user;
+
+ /**
+ * 瀛樺偍鏉冮檺淇℃伅
+ */
+ @JSONField(serialize = false)
+ private List<String> permissions;
+
+ /**
+ * 瀛樺偍SpringSecurity璋冪敤getAuthorities()鏂规硶鑾峰彇鐨勬潈闄愪俊鎭殑闆嗗悎
+ */
+ @JSONField(serialize = false)
+ private List<GrantedAuthority> authorities;
+
+
+ public LoginUser() {
+ }
+
+ public LoginUser(SysUser user, List<String> permissions) {
+ this.user = user;
+ this.permissions = permissions;
+ }
+
+ public SysUser getUser() {
+ return user;
+ }
+
+ public void setUser(SysUser user) {
+ this.user = user;
+ }
+
+ @Override
+ public Collection<? extends GrantedAuthority> getAuthorities() {
+
+ // 浼樺寲涓哄彧闇�瑕佺涓�娆¤幏鍙栫殑鏃跺�欒繘琛岄亶鍘嗭紝鍚庨潰鍐嶇敤灏变細浠巃uthorities杩欎釜鎴愬憳鍙橀噺涓幏鍙栦簡锛屼笉浼氬啀杩涜Stream寰幆閬嶅巻浜�
+ if (authorities != null) {
+ return authorities;
+ }
+ //鎶妏ermissions涓瓧绗︿覆绫诲瀷鐨勬潈闄愪俊鎭浆鎹㈡垚GrantedAuthority瀵硅薄瀛樺叆authorities涓�
+ authorities = permissions.stream().
+ map(SimpleGrantedAuthority::new)
+ .collect(Collectors.toList());
+ return authorities;
+ }
+
+ @Override
+ public String getPassword() {
+ return user.getPassword();
+ }
+
+ @Override
+ public String getUsername() {
+ return user.getUserName();
+ }
+
+ @Override
+ public boolean isAccountNonExpired() {
+ return true;
+ }
+
+ @Override
+ public boolean isAccountNonLocked() {
+ return true;
+ }
+
+ @Override
+ public boolean isCredentialsNonExpired() {
+ return true;
+ }
+
+ @Override
+ public boolean isEnabled() {
+ return true;
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java
new file mode 100644
index 0000000..dcb8384
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUser.java
@@ -0,0 +1,66 @@
+package com.mes.userinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysUser implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 涓婚敭
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Long id;
+
+ /**
+ * 鐢ㄦ埛鍚�
+ */
+ private String userName;
+
+ /**
+ * 鏄电О
+ */
+ private String nickName;
+
+ /**
+ * 瀵嗙爜
+ */
+ private String password;
+
+ /**
+ * 璐﹀彿鐘舵�侊紙0姝e父 1鍋滅敤锛�
+ */
+ private String status;
+
+ /**
+ * 澶村儚
+ */
+ private String avatar;
+
+ /**
+ * 鐢ㄦ埛绫诲瀷锛�0绠$悊鍛橈紝1鏅�氱敤鎴凤級
+ */
+ private String userType;
+
+ /**
+ * 鍒犻櫎鏍囧織
+ */
+ private Integer delFlag;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
new file mode 100644
index 0000000..4d76c57
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/entity/SysUserRole.java
@@ -0,0 +1,36 @@
+package com.mes.userinfo.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SysUserRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 鐢ㄦ埛id
+ */
+ @TableId(value = "user_id", type = IdType.AUTO)
+ private Long userId;
+
+ /**
+ * 瑙掕壊id
+ */
+ private Long roleId;
+
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
new file mode 100644
index 0000000..ca3ef72
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserMapper.java
@@ -0,0 +1,16 @@
+package com.mes.userinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.userinfo.entity.SysUser;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
new file mode 100644
index 0000000..d00106d
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/SysUserRoleMapper.java
@@ -0,0 +1,16 @@
+package com.mes.userinfo.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.userinfo.entity.SysUserRole;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml
new file mode 100644
index 0000000..300e913
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.userinfo.mapper.SysUserMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml
new file mode 100644
index 0000000..0fd2be9
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/mapper/xml/SysUserRoleMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.userinfo.mapper.SysUserRoleMapper">
+
+</mapper>
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
new file mode 100644
index 0000000..0992b6c
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserRoleService.java
@@ -0,0 +1,16 @@
+package com.mes.userinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.userinfo.entity.SysUserRole;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserRoleService extends IService<SysUserRole> {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
new file mode 100644
index 0000000..ca49aa0
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/SysUserService.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.utils.Result;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+public interface SysUserService extends IService<SysUser> {
+
+ Result login(SysUser user);
+
+ Result logout();
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java
new file mode 100644
index 0000000..baa93c2
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserRoleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.userinfo.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.userinfo.entity.SysUserRole;
+import com.mes.userinfo.mapper.SysUserRoleMapper;
+import com.mes.userinfo.service.SysUserRoleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysUserRoleServiceImpl extends ServiceImpl<SysUserRoleMapper, SysUserRole> implements SysUserRoleService {
+
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
new file mode 100644
index 0000000..f6207b7
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -0,0 +1,89 @@
+package com.mes.userinfo.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.utils.JwtUtil;
+import com.mes.common.utils.RedisUtil;
+import com.mes.menu.mapper.SysMenuMapper;
+import com.mes.userinfo.entity.LoginUser;
+import com.mes.userinfo.entity.SysUser;
+import com.mes.userinfo.mapper.SysUserMapper;
+import com.mes.userinfo.service.SysUserService;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 鐢ㄦ埛琛� 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-11
+ */
+@Service
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService, UserDetailsService {
+
+ @Autowired
+ private AuthenticationManager authenticationManager;
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Resource
+ private SysMenuMapper sysMenuMapper;
+
+ @Override
+ public Result login(SysUser user) {
+ UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(user.getUserName(), user.getPassword());
+ Authentication authenticate = authenticationManager.authenticate(authenticationToken);
+ if (Objects.isNull(authenticate)) {
+ throw new RuntimeException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+ }
+ //浣跨敤userid鐢熸垚token
+ LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
+ String userId = loginUser.getUser().getId().toString();
+ String jwt = JwtUtil.createJWT(userId);
+ //authenticate瀛樺叆redis
+ redisUtil.setCacheObject("login:" + userId, loginUser);
+ //鎶妕oken鍝嶅簲缁欏墠绔�
+ HashMap<String, String> map = new HashMap<>();
+ map.put("token", jwt);
+ return Result.success(map);
+ }
+
+ @Override
+ public Result logout() {
+ Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+ LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+ Long userid = loginUser.getUser().getId();
+ redisUtil.deleteObject("login:" + userid);
+ return Result.success("閫�鍑烘垚鍔�");
+ }
+
+ @Override
+ public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+ LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+ lqw.eq(SysUser::getUserName, username);
+ SysUser user = this.baseMapper.selectOne(lqw);
+ //鍒ゆ柇鏄惁涓虹┖
+ if (Objects.isNull(user)) {
+ throw new RuntimeException("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+ }
+ //鏌ヨ鏉冮檺淇℃伅
+ List<String> perms = sysMenuMapper.selectPermsByUserId(user.getId());
+
+ return new LoginUser(user, perms);
+ }
+}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
new file mode 100644
index 0000000..950c0c4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/application.yml
@@ -0,0 +1,38 @@
+server:
+ port: 8089
+spring:
+ datasource:
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ 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
+ slave_1:
+ #閰嶇疆鏁版嵁婧愮被鍨�
+ type: com.zaxxer.hikari.HikariDataSource
+ #閰嶇疆杩炴帴鏁版嵁搴撶殑淇℃伅
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=mybatisTest
+ username: sa
+ password: 'beibo.123/'
+ cloud:
+ nacos:
+ discovery:
+ server-addr: 10.153.19.150:8848
+ application:
+ name: security
+ redis:
+ database: 0
+ host: 10.153.19.150
+ 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/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml b/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml
new file mode 100644
index 0000000..38607e4
--- /dev/null
+++ b/hangzhoumesParent/common/springsecurity/src/main/resources/mapper/SysMenuMapper.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.menu.mapper.SysMenuMapper">
+
+ <select id="selectPermsByUserId" resultType="java.lang.String">
+ SELECT DISTINCT m.perms
+ FROM sys_user_role ur
+ LEFT JOIN sys_role r ON ur.role_id = r.id
+ LEFT JOIN sys_role_menu rm ON ur.role_id = rm.role_id
+ LEFT JOIN sys_menu m ON m.id = rm.menu_id
+ WHERE user_id = #{userid}
+ AND r.status = 0
+ AND m.status = 0
+ </select>
+</mapper>
diff --git a/hangzhoumesParent/gateway/src/main/resources/application.yml b/hangzhoumesParent/gateway/src/main/resources/application.yml
index 2e0b3d4..8776a14 100644
--- a/hangzhoumesParent/gateway/src/main/resources/application.yml
+++ b/hangzhoumesParent/gateway/src/main/resources/application.yml
@@ -6,7 +6,7 @@
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
gateway:
discovery:
locator:
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java
new file mode 100644
index 0000000..96b7996
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/InitUtil.java
@@ -0,0 +1,122 @@
+package com.mes.common;
+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;
+
+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 = S7object.getinstance().plccontrol.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 = S7object.getinstance().plccontrol.ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ plcParameterObject.setPlcParameterList(getplcvlues);
+ }
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
new file mode 100644
index 0000000..06efda5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
@@ -0,0 +1,97 @@
+package com.mes.common;
+
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import static com.mes.common.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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java
new file mode 100644
index 0000000..0c0f241
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitInfo.java
@@ -0,0 +1,77 @@
+package com.mes.common;
+
+
+
+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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java
new file mode 100644
index 0000000..e01cb3c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.common;
+
+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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java
new file mode 100644
index 0000000..2ae2998
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.common;
+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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java
new file mode 100644
index 0000000..26736c3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.common;
+
+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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
similarity index 87%
rename from hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java
rename to hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
index eaf8f44..6635c64 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/controller/GlassInfoController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/controller/GlassInfoController.java
@@ -1,4 +1,4 @@
-package com.mes.temperingglass.controller;
+package com.mes.glassinfo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
similarity index 97%
rename from hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java
rename to hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
index a54cb7b..56fe621 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/entity/GlassInfo.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -1,11 +1,12 @@
-package com.mes.temperingglass.entity;
+package com.mes.glassinfo.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.io.Serializable;
+
/**
* <p>
*
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
similarity index 70%
rename from hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java
rename to hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
index d3a8177..5bb1f2f 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/mapper/GlassInfoMapper.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/mapper/GlassInfoMapper.java
@@ -1,7 +1,7 @@
-package com.mes.temperingglass.mapper;
+package com.mes.glassinfo.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.temperingglass.entity.GlassInfo;
+import com.mes.glassinfo.entity.GlassInfo;
/**
* <p>
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
similarity index 70%
rename from hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java
rename to hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
index b68e13d..e80dff3 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/GlassInfoService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/GlassInfoService.java
@@ -1,7 +1,7 @@
-package com.mes.temperingglass.service;
+package com.mes.glassinfo.service;
import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.temperingglass.entity.GlassInfo;
+import com.mes.glassinfo.entity.GlassInfo;
/**
* <p>
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/glassinfo/service/impl/GlassInfoServiceImpl.java
similarity index 61%
rename from hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/impl/GlassInfoServiceImpl.java
rename to hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
index 3b487ff..422c608 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/temperingglass/service/impl/GlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -1,9 +1,9 @@
-package com.mes.temperingglass.service.impl;
+package com.mes.glassinfo.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 com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.glassinfo.service.GlassInfoService;
import org.springframework.stereotype.Service;
/**
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
index cf3d9d1..be55022 100644
--- 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
@@ -1,7 +1,13 @@
package com.mes.taskcache.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.mes.taskcache.service.HangzhoumesService;
+import com.mes.taskcache.service.PpService;
+import com.mes.utils.Result;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -15,5 +21,61 @@
@RequestMapping("/taskCache")
public class TaskCacheController {
+ @Autowired
+ private PpService ppService;
+
+ @Autowired
+ private HangzhoumesService hangzhoumesService;
+
+// @GetMapping("/SelectTerritoryInfo") // 鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
+// @ResponseBody
+// public Result SelectTerritoryInfo(@RequestParam(name = "ProcessId", required = false) String ProcessId) {
+// List<Tempered> h = ppService.selectTemperedTerritory(ProcessId);
+// return Result.seccess(h);
+// }
+
+ @GetMapping("/CutTerritory") // 鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�
+ @ResponseBody
+ public Result CutTerritory(String ProcessId) {
+ List<Map> h = ppService.selectCutTerritory(ProcessId);
+ return Result.build(200,"鎴愬姛",h);
+ }
+
+ @GetMapping("/CurrentCutTerritory") // 璇嗗埆鏄剧ず 褰撳墠鐗堝浘
+ @ResponseBody
+ public Result CurrentCutTerritory() {
+ List<Map> h = ppService.selectCutTerritory();
+ System.out.println(h);
+ return Result.build(200,"鎴愬姛",h);
+ }
+
+ @GetMapping("/SelectCutTerritory") // 璇嗗埆鏄剧ず 鐗瑰畾鐗堝浘
+ @ResponseBody
+ public Result SelectCutTerritory(String TerritoryId) {
+ List<Map> h = ppService.selectCutTerritory(TerritoryId);
+ return Result.build(200,"鎴愬姛",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.build(200,"鎴愬姛",h);
+ }
+
+ @GetMapping("/SelectCageInfo") // 鏌ヨ绗煎唴淇℃伅
+ @ResponseBody
+ public Result SelectCageInfo(String ProcessId) {
+ List<Map> h = hangzhoumesService.SelectCageInfo();
+ return Result.build(200,"鎴愬姛",h);
+ }
+
+ @GetMapping("/SelectEdgTask") //纾ㄨ竟浠诲姟
+ @ResponseBody
+ public Result SelectEdgTask(String ProcessId) {
+ List<Map> EdgTasks = hangzhoumesService.SelectEdgInfo("1");
+ return Result.build(200,"鎴愬姛",EdgTasks);
+ }
+
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/entity/TaskCache.java
index 1f3a632..2969f2c 100644
--- 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
@@ -1,49 +1,15 @@
package com.mes.taskcache.entity;
-import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableName;
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;
-
-
+@Data //lombok 绠�鍐檍ava浠g爜 瀹炰綋绫荤殑get涓巗et
+@TableName("task_cache")
+public class TaskCache {
+ private String ID;//浠诲姟缂栧彿
+ private String startcell;//璧峰
+ private String endcell;//缁撴潫
+ private String tasktype;//浠诲姟绫诲瀷
+ private String taskstauts;//浠诲姟鐘舵��
+
}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java
new file mode 100644
index 0000000..3839bd5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/HangzhouMesMapper.java
@@ -0,0 +1,76 @@
+package com.mes.taskcache.mapper;
+
+
+
+import java.util.List;
+import java.util.Map;
+
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.taskcache.entity.TaskCache;
+import org.apache.ibatis.annotations.*;
+
+@Mapper
+public interface HangzhouMesMapper {
+
+ // 鐜荤拑淇℃伅 鎸塈D鏌ヨ
+ @Select("select * from `glass_info` where id=#{id}")
+ 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);
+
+ // 鏌ヨ绗煎瓙鍐呯┖闂�
+ @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();
+
+ // 鏌ヨ绗煎瓙鍐呭嚭鐗囦换鍔�
+ @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();
+
+ // 鏌ヨ绗煎瓙鍐呬俊鎭�
+ @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);
+
+ // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+ @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);
+
+ // 鏌ヨ鍏ㄩ儴浠诲姟
+ @Select("select * from task_cache")
+ List<TaskCache> selectCacheInfoAll();
+
+ // 鏌ヨ杩涚墖浠诲姟
+ @Select("select * from task_cache where task_type='1' and task_stauts='0'")
+ List<TaskCache> selectInputCacheInfo();
+
+ // 鏌ヨ鍑虹墖浠诲姟
+ @Select("select * from task_cache where task_type='2' and task_stauts='0'")
+ 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);
+
+ // 淇敼绗煎瓙鍐呬俊鎭�
+ @Update("update")
+ Integer updateCache(@Param("id") Integer id, @Param("order_id") String order_id);
+
+ // 娣诲姞鐞嗙墖浠诲姟
+ @Insert("INSERT into task_cache VALUES(#{id},#{start},#{end},#{type},0)")
+ Integer insertCacheTask(String id, String start, String end, String type);
+
+ //
+ // @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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java
new file mode 100644
index 0000000..4617917
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/mapper/PpMapper.java
@@ -0,0 +1,35 @@
+package com.mes.taskcache.mapper;
+
+
+
+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} and stock_id=#{TerritoryId}")
+ 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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java
new file mode 100644
index 0000000..d4c5166
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/HangzhoumesService.java
@@ -0,0 +1,34 @@
+package com.mes.taskcache.service;
+
+
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.taskcache.mapper.HangzhouMesMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class HangzhoumesService {
+
+ @Autowired
+ private HangzhouMesMapper hangzhouMesMapper;
+ //鏍规嵁缂栧彿 鏌ユ壘鐜荤拑灏忕墖淇℃伅
+ public GlassInfo getUserInfo(String process_id){
+ return hangzhouMesMapper.selectGlassId(process_id);
+ }
+
+ //鐞嗙墖缂撳瓨 绗煎唴淇℃伅
+ public List<Map> SelectCageInfo(){
+ return hangzhouMesMapper.selectCachInfo();
+ }
+
+ //纾ㄨ竟灏忕墖淇℃伅
+ public List<Map> SelectEdgInfo(String line){
+ return hangzhouMesMapper.selectEdgInfo(line);
+ }
+
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java
new file mode 100644
index 0000000..c4334cb
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/LogicService.java
@@ -0,0 +1,160 @@
+package com.mes.taskcache.service;
+
+import java.util.List;
+
+import com.mes.common.PLCAutoMes;
+import com.mes.common.PlcParameterObject;
+import com.mes.common.S7object;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.taskcache.mapper.HangzhouMesMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+
+
+
+@Service
+public class LogicService {
+ @Autowired
+ private HangzhouMesMapper hangzhouMesMapper;
+
+// //鐞嗙墖
+// public void Process(){
+// String Result= S7object.getinstance().plccontrol.ReadWord("DB14.0", 1).get(0)+"";
+// String Number=S7object.getinstance().plccontrol.ReadWord("DB14.2", 1).get(0)+"";
+// if(Result=="1"){//杩涚墖璇锋眰
+// processInto(Number);
+// }else if(Result=="2"){//鍑虹墖璇锋眰
+// processOut();
+// }else if(Result=="3"){//杩涘嚭鐗囪姹�
+// if (!processOut()) { //鍏堝嚭鍚庤繘
+// processInto(Number);
+// }
+// }
+// }
+ //鐞嗙墖 杩�
+ public boolean processInto(String Number){
+ //鏌ヨ娑堟伅闃熷垪閲岀殑鐜荤拑
+ GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
+ PlcParameterObject plcmes= PLCAutoMes.PlcMesObject;
+ if(GlassInfo!=null){//瀛樺湪姝ょ幓鐠冪紪鍙�
+ //鍚岄挗鍖栫増鍥惧唴鐨勬爡鏍煎彿
+ List<EdgStorageCageDetails> list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getTemperingFeedSequence(),GlassInfo.getWidth());
+ //绌烘爡鏍煎彿
+ if (list.size()==0) {
+ list=hangzhouMesMapper.selectCacheLeisure();
+ }
+ //灏忎簬姝ょ幓鐠冮挗鍖栫増鍥惧簭鍙风殑鏍呮牸鍙�
+ if(list.size()==0){
+ list=hangzhouMesMapper.selectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getWidth());
+ }
+ if(list.size()>0){
+ //瀛樺湪绌烘牸
+ //1.鐢熸垚浠诲姟锛� 璧峰浣嶇疆0 缁撴潫浣嶇疆this.slot 浠诲姟绫诲瀷 1 锛堣繘鐗囦换鍔★級
+ //2.鍥炲 1杩涚墖
+ EdgStorageCageDetails item=list.get(0);
+ hangzhouMesMapper.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1");
+ S7object.getinstance().plccontrol.WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+ return true;
+ }
+
+ }else{
+ // ID缂栧彿涓嶅瓨鍦� 涓嶅鐞�/鍥炲PLC 杩涜鎶ヨ鎻愮ず
+ }
+ //杩斿洖缁撴灉
+ return false;
+ }
+// //鐞嗙墖 鍑�
+// public boolean processOut(){
+// //鏌ヨ浠诲姟
+// String A09=S7object.getinstance().plccontrol.ReadWord("DB14.56", 1).get(0)+"";
+// String A10=S7object.getinstance().plccontrol.ReadWord("DB14.58", 1).get(0)+"";
+// PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+// List<EdgStorageCageDetails> list=hangzhouMesMapper.selectCacheOut();
+// boolean isOut=true;//鍏朵粬鎯呭喌鏉′欢 濡傦細鍚庣画璁惧鏁呴殰绂佹鐞嗙墖鍑虹墖 绛�
+// if (list.size()>0&&isOut) {
+// EdgStorageCageDetails item=list.get(0);
+// if(A09=="0"&&A10=="1"){
+// //鍑哄埌 A09
+// hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","09","2");
+// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
+// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+// return true;
+// }else if(A09=="1"&&A10=="0"){
+// //鍑哄埌 A10
+// hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0","10","2");
+// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
+// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+// return true;
+// }else if(A09=="0"&&A10=="0"){
+// //閮藉厑璁� A09/A10 涓婁竴鐗囨槸鍚﹀拰姝ょ墖鐜荤拑灏哄灏哄鐩稿悓
+// String endcell="09";
+// String SendEndcell="1";
+// boolean If_=false;
+// 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_){
+// //鍏朵粬鏉′欢
+// }
+// hangzhouMesMapper.insertCacheTask(item.getGlassid()+"","0",endcell,"2");
+// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+// S7object.getinstance().plccontrol.writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+// return true;
+// }
+// }
+// //杩斿洖缁撴灉
+// return false;
+// }
+
+// //纾ㄨ竟 涓嶄氦浜� 鐞嗙墖鍜岀(杈规満鑷繁浜や簰
+// public void processMb(String Number){
+// //鏌ヨ浠诲姟
+// GlassInfo GlassInfo=hangzhouMesMapper.selectGlassId(Number);
+// PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+// if(GlassInfo!=null){
+// //鍙戦�佷换鍔� ID 闀� 瀹� 鍘� 鍊掕 宸ヨ壓鍔熻兘绛�
+// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000");
+// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000");
+// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800");
+// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60");
+// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2");
+// S7object.getinstance().plccontrol.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+// }
+// //杩斿洖缁撴灉
+// }
+
+ //鏌ヨ娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹�
+ public boolean SelectMessageId(String num){
+ //鏌ヨ鏄惁瀛樺湪
+ GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num);
+ if(glassInfo==null){
+ return false;//杩斿洖 涓嶅瓨鍦�
+ }
+ return true;//杩斿洖 瀛樺湪
+ }
+ //鍒犻櫎娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹�
+ public boolean DeleteMessageId(String num){
+ //鏌ヨ鏄惁瀛樺湪
+ GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num);
+ if(glassInfo==null){
+ return false;//杩斿洖 涓嶅瓨鍦�
+ }
+ return true;//杩斿洖 瀛樺湪
+ }
+
+ //鏄惁瀛樺湪姝ょ紪鍙风幓鐠�
+ public boolean isExist(String num){
+ //鏌ヨ鏄惁瀛樺湪
+ GlassInfo glassInfo=hangzhouMesMapper.selectGlassId(num);
+ if(glassInfo==null){
+ return false;//杩斿洖 涓嶅瓨鍦�
+ }
+ return true;//杩斿洖 瀛樺湪
+ }
+
+}
+
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java
new file mode 100644
index 0000000..6dcb8ff
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/PpService.java
@@ -0,0 +1,49 @@
+package com.mes.taskcache.service;
+
+
+import com.mes.taskcache.mapper.HangzhouMesMapper;
+import com.mes.taskcache.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(){
+ //寰楀埌瑕佹樉绀虹殑 宸ョ▼ID 浠ュ強鐗堝浘ID
+ //1.鍦℉angzhoumes鏁版嵁搴撻噷 寰楀埌鐩墠宸茬粡 棰嗗彇浣嗘湭瀹屾垚鐨� 宸ョ▼ID闆嗗悎
+ //2.鎷垮伐绋嬮泦鍚堝幓PP鏁版嵁搴撻噷 寰楀埌瀵瑰簲鐨勫皬鐗囬泦鍚�
+ //3.鎷垮搴旂殑灏忕墖闆嗗悎 涓� 缂撳瓨浠诲姟琛ㄨ繘琛屽姣� 鏌ユ壘涓嬩竴鐗堝浘鏄剧ず
+ 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/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 437e3eb..45106fa 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -2,21 +2,34 @@
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/
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ 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
+ slave_1:
+ #閰嶇疆鏁版嵁婧愮被鍨�
+ type: com.zaxxer.hikari.HikariDataSource
+ #閰嶇疆杩炴帴鏁版嵁搴撶殑淇℃伅
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=mybatisTest
+ username: sa
+ password: 'beibo.123/'
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
application:
name: cacheGlass
redis:
database: 0
- host: 192.168.56.10
+ host: 10.153.19.150
port: 6379
- password:
+ password: 123456
session:
store-type: redis
mybatis-plus:
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
index f5d5404..cefd469 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/pom.xml
@@ -2,18 +2,18 @@
<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>
+<parent>
+ <artifactId>moduleService</artifactId>
+ <groupId>com.mes</groupId>
+ <version>1.0-SNAPSHOT</version>
+</parent>
+<modelVersion>4.0.0</modelVersion>
- <artifactId>cacheVerticalGlass</artifactId>
+<artifactId>cacheVerticalGlass</artifactId>
- <properties>
- <maven.compiler.source>8</maven.compiler.source>
- <maven.compiler.target>8</maven.compiler.target>
- </properties>
+<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
index 263f81a..b559502 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/CacheVerticalClassModuleApplication.java
@@ -25,6 +25,5 @@
}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
index 746b3ed..bac48b0 100644
--- 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
@@ -1,15 +1,18 @@
package com.mes.bigstorage.controller;
-
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.service.BigStorageCageService;
import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
-
import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
* </p>
*
* @author zhoush
@@ -19,11 +22,26 @@
@RequestMapping("/bigStorageCage")
public class BigStorageCageController {
- //todo: 瀹炰緥浠g爜 寰呭垹闄�
+ @Autowired
+ private BigStorageCageService bigStorageCageService;
+
+ //todo: 瀹炰緥浠g爜 寰呭垹闄�
@ApiOperation("娴嬭瘯")
@GetMapping("/index")
public String index() {
return "hello world";
}
-}
+ @ApiOperation("鐞嗙墖绗间俊鎭�")
+ @GetMapping("/bigStorageCage")
+ public List<BigStorageCage> querybigStorageCageDetail() {
+// return bigStorageCageService.list();
+ return bigStorageCageService.querybigStorageCageDetail();
+ }
+
+ @ApiOperation("鎵嬪姩瀹屾垚浠诲姟")
+ @GetMapping("/FinishTask")
+ public void FinishTask(int type, int id) {
+ // bigStorageCageDetailsService.FinishTask();
+ }
+}
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
index 2dfc440..8af10bc 100644
--- 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
@@ -1,21 +1,44 @@
package com.mes.bigstorage.controller;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
-
import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
/**
* <p>
- * 鍓嶇鎺у埗鍣�
+ * 鍓嶇鎺у埗鍣�
* </p>
*
* @author zhoush
* @since 2024-03-27
*/
+@ApiModel(description = "鐞嗙墖绗艰鎯�")
@RestController
@RequestMapping("/bigStorageCageDetails")
public class BigStorageCageDetailsController {
+ @Autowired
+ private BigStorageCageDetailsService bigStorageCageDetailsService;
+
+ @ApiOperation("鐞嗙墖绗艰鎯�")
+ @GetMapping("/BigStorageCageDetails")
+ public List<BigStorageCageDetails> BigStorageCageDetails() {
+ return bigStorageCageDetailsService.list();
+ }
+
+ @ApiOperation("灏忚溅瀹炴椂浣嶇疆")
+ @GetMapping("/CarPosition")
+ public List<Integer> CarPosition() {
+ return bigStorageCageDetailsService.getCarposition();
+ }
+
}
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
index 76fcb26..f145de5 100644
--- 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
@@ -1,14 +1,17 @@
package com.mes.bigstorage.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
-import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import java.io.Serializable;
+import java.util.List;
+
/**
* <p>
- *
+ *
* </p>
*
* @author zhoush
@@ -46,5 +49,8 @@
*/
private Integer remainWidth;
+ @TableField(exist = false)
+ private List<BigStorageCageDetails> bigStorageCageDetails;
+
}
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
index 852e1f5..a27e26f 100644
--- 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
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.bigstorage.entity.BigStorageCageDetails;
+import feign.Param;
/**
@@ -14,4 +15,7 @@
*/
public interface BigStorageCageDetailsMapper extends BaseMapper<BigStorageCageDetails> {
+ BigStorageCageDetails SelectTemperingFeedSlot(@Param("bigStorageCageDetails") BigStorageCageDetails bigStorageCageDetails);
+
+ BigStorageCageDetails SelectEmptyFeedSlot();
}
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
index 22a9d7b..220ccab 100644
--- 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
@@ -2,6 +2,11 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.uppattenusage.entity.GlassInfo;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +18,15 @@
*/
public interface BigStorageCageMapper extends BaseMapper<BigStorageCage> {
+
+ BigStorageCageDetails SelectEmptyFeedSlot();
+
+ @Update("update big_storage_cage set remain_width = #{width} where slot=#{slot}")
+ public void UpdateRemainWidth(int slot,int width);
+
+ BigStorageCageDetails SelectTemperingFeedSlot(GlassInfo glassInfo);
+
+ BigStorageCageDetails SelectOtherFeedSlot();
+
+ List<String> selectTemperingId();
}
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
index ef46c59..4d4527c 100644
--- 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
@@ -2,6 +2,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.mapper.BigStorageCageMapper;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +16,7 @@
*/
public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> {
+ public boolean getTemperingGlass();
+
+ List<Integer> getCarposition();
}
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
index 00df15c..a9bb2b5 100644
--- 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
@@ -2,10 +2,14 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.uppattenusage.entity.GlassInfo;
+
+import java.util.List;
/**
* <p>
- * 鏈嶅姟绫�
+ * 鏈嶅姟绫�
* </p>
*
* @author zhoush
@@ -13,4 +17,9 @@
*/
public interface BigStorageCageService extends IService<BigStorageCage> {
+ void updateRemainWidth(int Slot);
+
+ BigStorageCageDetails FeedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails);
+
+ List<BigStorageCage> querybigStorageCageDetail();
}
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
index 8949518..c1adf50 100644
--- 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
@@ -3,8 +3,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstorage.mapper.BigStorageCageMapper;
import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* <p>
@@ -16,5 +20,20 @@
*/
@Service
public class BigStorageCageDetailsServiceImpl extends ServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
+ @Autowired
+ private BigStorageCageMapper bigStorageCageMapper;
+ @Override
+ public boolean getTemperingGlass(){
+ //鑾峰彇绗煎瓙鍐呮墍鏈夌増鍥惧彿
+ List<String> temperingIdList=bigStorageCageMapper.selectTemperingId();
+ for (String temperingId:temperingIdList
+ ) {
+ }
+ return true;
+ }
+ @Override
+ public List<Integer> getCarposition(){
+ return null;
+ }
}
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
index 4c88df2..c2b5cff 100644
--- 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
@@ -2,19 +2,97 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
import com.mes.bigstorage.mapper.BigStorageCageMapper;
import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.uppattenusage.entity.GlassInfo;
+import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
- * 鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
* </p>
*
* @author zhoush
* @since 2024-03-27
*/
@Service
+@Slf4j
public class BigStorageCageServiceImpl extends ServiceImpl<BigStorageCageMapper, BigStorageCage> implements BigStorageCageService {
+ @Resource
+ private BigStorageCageMapper bigStorageCageMapper;
+
+ @Resource
+ private BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
+
+ @Override
+ public BigStorageCageDetails FeedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) {
+
+
+ //鑾峰彇鍚岄挗鍖栫増鍥緄d鍙繘鐗囩殑鏍煎瓙
+ BigStorageCageDetails layoutSlotInfo = bigStorageCageMapper.SelectTemperingFeedSlot(glassInfo);
+ //鏈夌鍚堟潯浠剁殑鏍煎瓙鏃�
+ if (layoutSlotInfo != null) {
+ //灏嗙幓鐠冧俊鎭~鍏ョ悊鐗囩璇︽儏琛�
+ bigStorageCageDetails.setSlot(layoutSlotInfo.getSlot());
+ } else {
+ //鑾峰彇涓嶅埌鏃讹細
+
+ //鑾峰彇鍙繘鐗囨牸瀛愪俊鎭�
+ BigStorageCageDetails EmptySlotInfo = bigStorageCageMapper.SelectEmptyFeedSlot();
+ if (EmptySlotInfo != null) {
+ bigStorageCageDetails.setSlot(EmptySlotInfo.getSlot());
+ } else {
+ //鑾峰彇鍏朵粬绗兼牸瀛�-
+ BigStorageCageDetails OtherSlotInfo = bigStorageCageMapper.SelectOtherFeedSlot();
+ bigStorageCageDetails.setSlot(OtherSlotInfo.getSlot());
+ }
+ //灏嗙幓鐠冧俊鎭斁鍏ヨ鏍煎瓙
+
+ }
+
+ updateRemainWidth(bigStorageCageDetails.getSlot());
+ return bigStorageCageDetails;
+ }
+
+ @Override
+ public List<BigStorageCage> querybigStorageCageDetail() {
+ //1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭�
+// List<BigStorageCage> bigStorageCages = bigStorageCageMapper.querybigStorageCageDetail(null);
+ List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(null);
+ log.info("1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭畬鎴愶紝鑾峰彇鍒扮殑鏁版嵁{}", bigStorageCages.size());
+ //2鑾峰彇鐞嗙墖绗兼墍鏈変俊鎭�
+ List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(null);
+ Map<Integer, List<BigStorageCageDetails>> listMap = bigStorageCageDetailsList.stream().collect(Collectors.groupingBy(BigStorageCageDetails::getSlot));
+ for (BigStorageCage bigStorageCage : bigStorageCages) {
+ List<BigStorageCageDetails> bigStorageCageDetails = listMap.get(bigStorageCage.getSlot());
+ bigStorageCage.setBigStorageCageDetails(bigStorageCageDetails);
+ }
+ return bigStorageCages;
+
+ }
+
+ //淇敼鏍煎瓙鍓╀綑瀹藉害
+ @Override
+ public void updateRemainWidth(int Slot) {
+ //鑾峰彇璇ユ牸瀛愬唴鐜荤拑淇℃伅
+ int width = 5000;
+ List<BigStorageCageDetails> bigStorageCageDetailsList = Collections.singletonList(bigStorageCageDetailsMapper.selectById(Slot));
+ for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
+ ) {
+ width -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap();
+ }
+ //淇敼鏍煎瓙鍓╀綑瀹藉害
+ bigStorageCageMapper.UpdateRemainWidth(Slot, width);
+ }
+
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/component/PlcStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/component/PlcStorageCage.java
new file mode 100644
index 0000000..203bcb8
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/component/PlcStorageCage.java
@@ -0,0 +1,74 @@
+package com.mes.component;
+
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.uppattenusage.entity.GlassInfo;
+import com.mes.uppattenusage.service.GlassInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
+public class PlcStorageCage extends Thread {
+
+ @Autowired
+ private BigStorageCageService bigStorageCageService;
+ @Autowired
+ private BigStorageCageDetailsService bigStorageCageDetailsService;
+ @Autowired
+ private TemperingGlassInfoService temperingGlassInfoService;
+ @Autowired
+ private GlassInfoService glassInfoService;
+ @Override
+ public void run() {
+ while (this != null) {
+ try {
+
+ Thread.sleep(500);
+ String plcFeedReq ="0";
+ String plcFeedGlassid ="111";
+ //Plc杩涚墖璇锋眰鏃�
+ if("1".equals(plcFeedReq)){
+ BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails();
+ //浼犲叆鐜荤拑id
+ GlassInfo glassInfo=glassInfoService.getById(plcFeedGlassid);
+
+ BigStorageCageDetails SlotInfo=bigStorageCageService.FeedGlass(glassInfo,bigStorageCageDetails);
+ if(SlotInfo!=null){
+ //plc浠诲姟鍙戦�佸瓧
+ }
+ }
+
+ //鍑虹墖璇锋眰
+ String plcOutReq ="0";
+ boolean result=false;
+ if("1".equals(plcOutReq)){
+ //鑾峰彇閽㈠寲灏忕墖琛ㄦ湭鍑虹淇℃伅
+ List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.SelectTemperingGlassInfo();
+ //娌℃湁鍙嚭鐨勭幓鐠冩椂
+ if(temperingGlassInfoList!=null){
+ //鏌ヨ鏄惁鏈夊皬鐗囧叏閮ㄥ埌榻愮殑閽㈠寲鐗堝浘
+ result = bigStorageCageDetailsService.getTemperingGlass();
+ }else{
+ //缁х画褰撳墠閽㈠寲鐗堝浘鐨勪换鍔�
+
+ temperingGlassInfoService.addOutTask(temperingGlassInfoList);
+ result=true;
+ }
+ if(result==true){
+ //plc浠诲姟鍙戦�佸瓧
+ }
+ }
+
+
+
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+}
\ No newline at end of file
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
index 69d497c..1a737e4 100644
--- 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
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.temperingglass.entity.TemperingGlassInfo;
+import java.util.List;
+
/**
* <p>
* 鏈嶅姟绫�
@@ -12,5 +14,6 @@
* @since 2024-03-27
*/
public interface TemperingGlassInfoService extends IService<TemperingGlassInfo> {
-
+ public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList);
+ public List<TemperingGlassInfo> SelectTemperingGlassInfo();
}
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
index e233e1a..b9fa01f 100644
--- 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
@@ -6,6 +6,8 @@
import com.mes.temperingglass.service.TemperingGlassInfoService;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
* <p>
* 鏈嶅姟绫�
@@ -17,4 +19,23 @@
@Service
public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
+ @Override
+ public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList) {
+ double carwidth=5000;
+ double gay=50;
+ //鍐欏叆浠诲姟鍒颁换鍔¤〃
+ for (TemperingGlassInfo temperingGlassInfo:temperingGlassInfoList
+ ) {
+ if((carwidth-gay-temperingGlassInfo.getWidth())>0){
+ //娣诲姞浠诲姟鍒颁换鍔¤〃
+ }else{
+ break;
+ }
+ }
+ }
+
+ @Override
+ public List<TemperingGlassInfo> SelectTemperingGlassInfo() {
+ return null;
+ }
}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index a537ded..ee14c8c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -3,20 +3,34 @@
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/
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ 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
+ slave_1:
+ #閰嶇疆鏁版嵁婧愮被鍨�
+ type: com.zaxxer.hikari.HikariDataSource
+ #閰嶇疆杩炴帴鏁版嵁搴撶殑淇℃伅
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=mybatisTest
+ username: sa
+ password: 'beibo.123/'
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
application:
name: cacheVerticalGlass
redis:
database: 0
- host: 192.168.56.10
+ host: 10.153.19.150
port: 6379
+ password: 123456
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml b/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml
index 6f6eee9..0f8bb2e 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/pom.xml
@@ -2,7 +2,7 @@
<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>
+<parent>
<artifactId>moduleService</artifactId>
<groupId>com.mes</groupId>
<version>1.0-SNAPSHOT</version>
@@ -10,6 +10,19 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>loadGlass</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.mes</groupId>
+ <artifactId>servicebase</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
index b47e3e7..2634690 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
@@ -19,11 +19,6 @@
@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());
- }
-
+ SpringApplication.run(LoadGlassModuleApplication.class, args);
}
}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/InitUtil.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/InitUtil.java
new file mode 100644
index 0000000..d15c72d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/InitUtil.java
@@ -0,0 +1,122 @@
+package com.mes.common;
+
+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.List;
+
+public class InitUtil {
+ //鍒濆鍖杦ord
+ public static PlcParameterObject initword(String jsonFilePath) {
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ PlcParameterObject plcParameterObject = new PlcParameterObject();
+ plcParameterObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcParameterObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+ PlcParameterInfo plcParameterInfo = new PlcParameterInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcParameterInfo.setCodeId(codeid);
+ plcParameterInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+ //plcParameterInfo.setRatio(Integer.valueOf(parameterObj.getStr("ratio")));
+ plcParameterInfo.setAddressLength(Integer.valueOf(parameterObj.getStr("addressLenght")));
+ plcParameterInfo.setUnit(parameterObj.getStr("unit"));
+ plcParameterObject.addPlcParameter(plcParameterInfo);
+ }
+ // byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02, 0x03, 0x04,0x01, 0x02};
+ // byte[] getplcvlues = S7control.getinstance().ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ // plcParameterObject.setPlcParameterList(getplcvlues);
+
+ return plcParameterObject;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ //鍒濆鍖朾it
+ public static PlcBitObject initbit(String jsonFilePath) {
+ PlcBitObject plcBitObject = new PlcBitObject();
+
+ try {
+ FileReader fileReader = new FileReader(jsonFilePath);
+ BufferedReader bufferedReader = new BufferedReader(fileReader);
+
+ StringBuilder content = new StringBuilder();
+ String line;
+
+ while ((line = bufferedReader.readLine()) != null) {
+ content.append(line);
+ }
+
+ bufferedReader.close();
+ fileReader.close();
+
+ JSONObject jsonfileobj = new JSONObject(content.toString());
+ JSONArray jsonArray = jsonfileobj.getJSONArray("parameteInfor");
+ plcBitObject.setPlcAddressBegin(jsonfileobj.getStr("plcAddressBegin"));//璁剧疆璧峰浣嶅湴鍧�
+ plcBitObject.setPlcAddressLength(Integer.valueOf(jsonfileobj.getStr("plcAddressLenght")));//璁剧疆鍦板潃闀垮害
+
+ for (int i = 0; i < jsonArray.size(); i++) {
+ JSONObject parameterObj = jsonArray.getJSONObject(i);
+
+ PlcBitInfo plcBitInfo = new PlcBitInfo(jsonfileobj.getStr("plcAddressBegin")); //鍙傛暟瀹炰緥
+ String codeid = parameterObj.getStr("codeId");
+ plcBitInfo.setCodeId(codeid);
+ plcBitInfo.setAddressIndex(Integer.valueOf(parameterObj.getStr("addressIndex")));
+
+ plcBitObject.addPlcBit(plcBitInfo);
+ }
+ System.out.println("");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ //Boolean[] values1 = { false, true, true, true, false, false, true, false,
+ // false, true ,true };
+ // List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1));
+
+// List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength());
+// plcBitObject.setPlcBitList(getplcvlues);
+ return plcBitObject;
+ }
+
+//
+ 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 = S7object.getinstance().plccontrol.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 = S7object.getinstance().plccontrol.ReadByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength());
+ plcParameterObject.setPlcParameterList(getplcvlues);
+ }
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
new file mode 100644
index 0000000..7429f4e
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PLCAutoMes.java
@@ -0,0 +1,95 @@
+package com.mes.common;
+
+
+import java.io.IOException;
+
+import static com.mes.common.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/PlcLoadGlass.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/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitInfo.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitInfo.java
new file mode 100644
index 0000000..0c0f241
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitInfo.java
@@ -0,0 +1,77 @@
+package com.mes.common;
+
+
+
+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/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitObject.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitObject.java
new file mode 100644
index 0000000..e01cb3c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcBitObject.java
@@ -0,0 +1,142 @@
+package com.mes.common;
+
+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/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java
new file mode 100644
index 0000000..2ae2998
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterInfo.java
@@ -0,0 +1,128 @@
+package com.mes.common;
+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/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterObject.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterObject.java
new file mode 100644
index 0000000..26736c3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/PlcParameterObject.java
@@ -0,0 +1,202 @@
+package com.mes.common;
+
+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/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
new file mode 100644
index 0000000..4111dfe
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/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/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
deleted file mode 100644
index 30648bf..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-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
deleted file mode 100644
index 808d6dc..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
+++ /dev/null
@@ -1,96 +0,0 @@
-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
deleted file mode 100644
index f8d3860..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-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
deleted file mode 100644
index 0ce1942..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-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
deleted file mode 100644
index d34064a..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-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/upworkstation/controller/UpWorkstationController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/UpWorkstationController.java
deleted file mode 100644
index 9a41288..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/controller/UpWorkstationController.java
+++ /dev/null
@@ -1,21 +0,0 @@
-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/mapper/UpWorkstationMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/UpWorkstationMapper.java
deleted file mode 100644
index 333d195..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/mapper/UpWorkstationMapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-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
deleted file mode 100644
index 369db83..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/UpWorkstationService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-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
deleted file mode 100644
index 22ed61b..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/service/impl/UpWorkstationServiceImpl.java
+++ /dev/null
@@ -1,20 +0,0 @@
-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/java/com/mes/workstation/controller/UpWorkstationController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
new file mode 100644
index 0000000..34ea858
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/controller/UpWorkstationController.java
@@ -0,0 +1,56 @@
+package com.mes.workstation.controller;
+
+
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.service.UpWorkstationService;
+import com.mes.utils.Result;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+@RestController
+@RequestMapping("/LoadGlass")
+@Slf4j
+public class UpWorkstationController {
+ @Autowired
+ private UpWorkstationService upWorkstationService;
+
+ @ApiOperation("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅")
+ @GetMapping("/list") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
+ public Result<List<UpWorkstation>> list() {
+ List<UpWorkstation> glass = upWorkstationService.list();
+ log.info("鏄剧ず宸ヤ綅涓婄殑鐜荤拑淇℃伅:{}", glass);
+ return Result.build(200, "", glass);
+ }
+
+ @PostMapping("/updateGlassMessage") //淇敼涓�鏉″伐浣嶄俊鎭�,鎺ユ敹瀹炰緥绫诲瓧娈典负瀹介珮鍘氳啘绯绘暟閲忓伐浣峣d
+ @ResponseBody
+ public void updateGlassMessage(@RequestBody UpWorkstation upwork) {
+ upWorkstationService.updateGlassMessage(upwork);
+ }
+
+ //todo: 鍜寀pdateGlassMessage绫讳技
+// @PostMapping("/deleteGlass") //淇敼涓�鏉″伐浣嶇殑鐜荤拑淇℃伅锛屼紶杈撳伐浣峣d灏嗙幓鐠冧俊鎭浉鍏冲瓧娈垫洿鏀逛负null
+// @ResponseBody
+// public void selectCutTerritory(int upworkid) {
+// loadGlassService.deleteGlass(upworkid);
+// }
+
+ @PostMapping("/selectPriority") //寮�濮嬩笂鐗囦换鍔�
+ @ResponseBody
+ public void selectPriority() {
+ upWorkstationService.selectPriority();
+ }
+}
+
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
similarity index 96%
rename from hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java
rename to hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
index 88e5523..66a5c48 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/upworkstation/entity/UpWorkstation.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
@@ -1,4 +1,4 @@
-package com.mes.upworkstation.entity;
+package com.mes.workstation.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/LoadGlassMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/LoadGlassMapper.java
new file mode 100644
index 0000000..83bc50b
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/LoadGlassMapper.java
@@ -0,0 +1,16 @@
+package com.mes.workstation.mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.Map;
+
+import org.apache.ibatis.annotations.*;
+import com.mes.workstation.entity.UpWorkstation;
+@Mapper
+public interface LoadGlassMapper extends BaseMapper<UpWorkstation> {
+ //鍒ゆ柇浼樺厛宸ヤ綅鍚哥墖
+ @Select("select b.layout_sequence,a.number 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}")
+ Map<String,Object> selectPriority(int id);
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
new file mode 100644
index 0000000..5731173
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java
@@ -0,0 +1,21 @@
+package com.mes.workstation.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.workstation.entity.UpWorkSequence;
+import com.mes.workstation.entity.UpWorkstation;
+import io.lettuce.core.dynamic.annotation.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpWorkstationMapper extends BaseMapper<UpWorkstation> {
+
+ List<UpWorkSequence> selectPriority(@Param("id") int id);
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
new file mode 100644
index 0000000..7a03568
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java
@@ -0,0 +1,30 @@
+package com.mes.workstation.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.workstation.entity.UpWorkstation;
+
+/**
+ * <p>
+ * 鏈嶅姟绫�
+ * </p>
+ *
+ * @author zhoush
+ * @since 2024-04-07
+ */
+public interface UpWorkstationService extends IService<UpWorkstation> {
+ //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+
+ //鍒犻櫎浜哄伐鎼蛋鐨勭幓鐠冧俊鎭�
+// public void deleteGlass(int id);
+ //鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
+
+ //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
+ public void selectPriority() ;
+
+
+ /**
+ * 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�
+ * @param upwork
+ */
+ void updateGlassMessage(UpWorkstation upwork);
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
new file mode 100644
index 0000000..7e891f6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java
@@ -0,0 +1,68 @@
+package com.mes.workstation.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.common.S7object;
+import com.mes.workstation.entity.UpWorkSequence;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.mapper.UpWorkstationMapper;
+import com.mes.workstation.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 {
+
+ public static final String DB_100_10 = "DB_100_10";
+
+ //鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
+ public boolean isCanLoadGlass() {
+ String loadstart="鍚哥墖淇″彿";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
+ return "1".equals(loadstart);
+
+ }
+ //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
+ public void selectPriority() {
+ //todo:鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
+// String loadstart="鍚哥墖淇″彿";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
+// if (!"1".equals(loadstart)) {
+// return;
+// }
+ UpWorkSequence loadid1 = this.baseMapper.selectPriority(1).get(0);
+ UpWorkSequence loadid2 = this.baseMapper.selectPriority(2).get(0);
+ //鍒ゆ柇涓�浜屽彿宸ヤ綅鍝竟鐨勯『搴忔洿鍏�
+ if(loadid1.getSequence()>loadid2.getSequence()) {
+ S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)2);
+ }else if(loadid1.getSequence()==loadid2.getSequence()){
+ //褰撲袱涓伐浣嶄笂鐨勭幓鐠冩暟鐩稿悓鏃讹紝鍒ゆ柇鍝釜宸ヤ綅涓婄殑鐜荤拑鏁版洿灏�,浼樺厛娓呯┖涓�涓灦瀛�
+ int glassnum1=loadid1.getNumber();//Integer.parseInt(plcmes.getPlcParameter("鐜荤拑鏁�").getValue());
+ int glassnum2=loadid2.getNumber();//Integer.parseInt(plcmes.getPlcParameter("鐜荤拑鏁�").getValue());
+ if(glassnum1>glassnum2){
+ S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)2);
+ }else{
+ S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)1);
+ }
+ }else{
+ S7object.getinstance().plccontrol.WriteWord(DB_100_10, (short)1);
+ }
+ }
+
+ /**
+ * 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�/鍒犻櫎浜哄伐鎼蛋鐨勭幓鐠冧俊鎭�
+ * @param upwork
+ */
+ @Override
+ public void updateGlassMessage(UpWorkstation upwork) {
+ UpdateWrapper<UpWorkstation> updateWrapper = new UpdateWrapper<>();
+ updateWrapper.eq("workstation_id", upwork.getWorkstationId());
+ int update = this.baseMapper.update(upwork, updateWrapper);
+ }
+
+}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
index 9bc95ce..b0fff45 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -3,20 +3,34 @@
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/
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ 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
+ slave_1:
+ #閰嶇疆鏁版嵁婧愮被鍨�
+ type: com.zaxxer.hikari.HikariDataSource
+ #閰嶇疆杩炴帴鏁版嵁搴撶殑淇℃伅
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=mybatisTest
+ username: sa
+ password: 'beibo.123/'
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
application:
name: loadGlass
redis:
database: 0
- host: 192.168.56.10
+ host: 10.153.19.150
port: 6379
+ password: 123456
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml
index 5820052..2c23116 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/pom.xml
@@ -3,13 +3,26 @@
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>
+ <artifactId>moduleService</artifactId>
<groupId>com.mes</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>temperingGlass</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.mes</groupId>
+ <artifactId>servicebase</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingController.java
new file mode 100644
index 0000000..a0f9941
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingController.java
@@ -0,0 +1,51 @@
+package com.mes.temperingglass.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.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingOverService;
+import com.mes.temperingglass.service.TemperingService;
+import com.mes.utils.Result;
+
+
+@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<TemperingGlassInfo> glass = temperingService.SelectWaitingGlass();
+ System.out.println(glass);
+ return Result.build(200,"", glass);
+ }
+
+ @GetMapping("/SelectIntoGlass") // 鏌ヨ杩涚倝涓殑閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佸叏涓�1鐨勪负宸插埌銆�
+ @ResponseBody
+ public Result SelectIntoGlass(String ProcessId) {
+ List<TemperingGlassInfo> glass = temperingService.SelectIntoGlass();
+ System.out.println(glass);
+ return Result.build(200,"", glass);
+ }
+
+ @GetMapping("/SelectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
+ @ResponseBody
+ public Result SelectOutGlass(String ProcessId) {
+ List<TemperingGlassInfo> glass = temperingOverService.SelectOutGlass();
+ System.out.println(glass);
+ return Result.build(200,"", glass);
+ }
+
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java
new file mode 100644
index 0000000..6461969
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java
@@ -0,0 +1,33 @@
+package com.mes.temperingglass.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.temperingglass.entity.GlassInfo;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.*;
+
+@Mapper
+public interface TemperingMapper extends BaseMapper<TemperingGlassInfo> {
+
+
+//鏌ヨ璇ョ幓鐠冪殑灏哄鍜屽潗鏍�
+@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<TemperingGlassInfo> 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<TemperingGlassInfo> 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 <TemperingGlassInfo> SelectOutGlass();
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingOverService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingOverService.java
new file mode 100644
index 0000000..f6d45f3
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingOverService.java
@@ -0,0 +1,30 @@
+package com.mes.temperingglass.service;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingMapper;
+import java.util.List;
+import org.springframework.stereotype.Service;
+
+@Service
+public class TemperingOverService {
+private final TemperingMapper temperingMapper;
+ //PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+ public TemperingOverService(TemperingMapper temperingMapper) {
+ this.temperingMapper = temperingMapper;
+ }
+ //鎺ユ敹鍑虹倝淇″彿鍜岀倝鍙�
+ public String SelectOutSignal () {
+
+ //S7control.getinstance().WriteWord("鍑虹倝淇″彿", (short)1);
+ return "GlassInfo";
+ }
+ //鍙戦�佺‘璁ゆ敹鍒颁俊鍙�
+ public void OverSignal () {
+ //S7control.getinstance().WriteWord("纭瀛�", (short)1);
+ }
+ //鏄剧ず閽㈠寲鍑虹倝鍚庣殑鐗堝浘淇℃伅
+ public List <TemperingGlassInfo> SelectOutGlass () {
+ return temperingMapper.SelectOutGlass();
+ }
+
+
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java
new file mode 100644
index 0000000..bac2fa6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingService.java
@@ -0,0 +1,60 @@
+package com.mes.temperingglass.service;
+//import com.mes.temperingglass.entity.GlassInfo;
+
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingMapper;
+import com.mes.tools.S7control;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class TemperingService {
+
+ private final TemperingMapper temperingMapper;
+ private S7control s7control;
+
+ public TemperingService(TemperingMapper temperingMapper) {
+ this.temperingMapper = temperingMapper;
+ }
+
+ // //鎺ユ敹id杩斿洖鍧愭爣鍜屾暟鎹�
+// public GlassInfo SelectOutGlass (String glassid) {
+// GlassInfo GlassInfo = temperingMapper.SelectGlass(glassid);
+// return GlassInfo;
+// }
+ //鍙戦�佸潗鏍囦俊鎭�
+ public void SendCoordinate(short glassX, short glassY) {
+ s7control.WriteWord("DB100.10", glassX);
+ s7control.WriteWord("DB100.10", glassY);
+ }
+
+ //鍒ゆ柇鏄惁鍙互鍙戦�佽繘鐐変俊鍙�
+ public int SelectTempering(String glassid) {
+ int tempering = temperingMapper.SelectTempering(glassid);
+ if (tempering == 1) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+ }
+ //鍙戦�佽繘鐐変俊鍙�
+ public void SendIntoGlass (short start) {
+ s7control.WriteWord("DB100.10", start);
+ }
+ //鎺ュ彈瀹屾垚瀛楀洖澶嶇‘璁ゅ瓧
+ public void SendIntoGlass () {
+ s7control.WriteWord("DB100.10", (short)1);
+ }
+ //鏄剧ず绛夊緟涓殑鐗堝浘
+ public List <TemperingGlassInfo> SelectWaitingGlass () {
+ List<TemperingGlassInfo> WaitingGlass = temperingMapper.SelectWaitingGlass();
+ return WaitingGlass;
+ }
+ //鏄剧ず姝e湪杩涚倝鐨勭増鍥�
+ public List<TemperingGlassInfo> SelectIntoGlass () {
+ List<TemperingGlassInfo> IntoGlass = temperingMapper.SelectInGlass();
+ return IntoGlass;
+ }
+}
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
index 9cc9488..df52ca5 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -2,20 +2,34 @@
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/
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ 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
+ slave_1:
+ #閰嶇疆鏁版嵁婧愮被鍨�
+ type: com.zaxxer.hikari.HikariDataSource
+ #閰嶇疆杩炴帴鏁版嵁搴撶殑淇℃伅
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=mybatisTest
+ username: sa
+ password: 'beibo.123/'
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
application:
name: temperingGlass
redis:
database: 0
- host: 192.168.56.10
+ host: 10.153.19.150
port: 6379
+ password: 123456
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
configuration:
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
index 4bf831d..d3327cf 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/pom.xml
@@ -10,6 +10,20 @@
<modelVersion>4.0.0</modelVersion>
<artifactId>unLoadGlass</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.poi</groupId>
+ <artifactId>poi-ooxml</artifactId>
+ <version>5.2.4</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.gson</groupId>
+ <artifactId>gson</artifactId>
+ <version>2.8.9</version>
+ <scope>compile</scope>
+ </dependency>
+ </dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
index 361d74e..b909d67 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/UnLoadGlassApplication.java
@@ -1,9 +1,11 @@
package com.mes;
+import com.mes.tools.WebSocketServer;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.context.ConfigurableApplicationContext;
/**
* @Author : zhoush
@@ -14,7 +16,13 @@
@EnableDiscoveryClient
@MapperScan(basePackages = "com.mes.*.mapper")
public class UnLoadGlassApplication {
+
+
+
public static void main(String[] args) {
- SpringApplication.run(UnLoadGlassApplication.class, args);
+ SpringApplication springApplication = new SpringApplication(UnLoadGlassApplication.class);
+ ConfigurableApplicationContext applicationContext = springApplication.run(args);
+ WebSocketServer.setApplicationContext(applicationContext);
}
+
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java
new file mode 100644
index 0000000..32903a6
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/Plchome.java
@@ -0,0 +1,62 @@
+package com.mes.common;
+
+import cn.hutool.json.JSONObject;
+import com.mes.downworkstation.service.DownGlassLogic;
+import com.mes.tools.WebSocketServer;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Component;
+
+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() {
+ this.plcServiceSupplier = () -> WebSocketServer.applicationContext.getBean(DownGlassLogic.class);
+ }
+
+
+
+ @Override
+ public void run() {
+ while (!Thread.currentThread().isInterrupted()) {
+ try {
+ i++;
+ Thread.sleep(100);
+ DownGlassLogic plcService = plcServiceSupplier.get();
+ // plcService.performPlcActions();
+ //plcService.unloadpush();
+
+ //褰撲笅鐗囦换鍔¤〃鐘舵�佷负1鏃跺�欏皢鏁版嵁鎻掑叆鍒颁笅鐗囩幓鐠冧俊鎭〃
+ plcService.insertdownglassinfo();
+
+
+
+ //褰撴満姊版墜浠诲姟琛ㄤ腑鐘舵�佷负1 鏇存柊宸茬粡钀芥灦鏁伴噺锛屽苟涓旀妸涓嬬墖浠诲姟琛ㄧ殑閭f潯璁板綍鍒犳帀 宸ヤ綅琛ㄦ祦绋嬪崱缁戝畾浜嗘灦瀛�
+ plcService.downWorkstation();
+
+
+ } catch (InterruptedException e) {
+ 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/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
new file mode 100644
index 0000000..4fdb170
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/config/AppRunnerConfig.java
@@ -0,0 +1,28 @@
+package com.mes.config;
+
+import com.mes.common.Plchome;
+import com.mes.device.PLCAutoMes;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+ @Override
+ public void run(ApplicationArguments args) throws Exception {
+ // TODO Auto-generated method stub
+ //
+ System.out.println("鍚姩瀹屾垚");
+
+
+
+ new PLCAutoMes().start();
+
+ new Plchome().start();
+
+ }
+}
\ No newline at end of file
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
index 3aa224c..cbabf74 100644
--- 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
@@ -3,6 +3,7 @@
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
+import org.springframework.stereotype.Component;
/**
* <p>
@@ -13,6 +14,7 @@
* @since 2024-03-27
*/
@Data
+@Component
@EqualsAndHashCode(callSuper = false)
public class DownGlassInfo implements Serializable {
@@ -21,7 +23,7 @@
/**
* 涓嬬墖鐜荤拑淇℃伅琛╥d
*/
- private Integer id;
+ private int id;
/**
* 娴佺▼鍗″彿
@@ -49,4 +51,7 @@
private Double thickness;
+ private int Filmsid;
+
+
}
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
index 7762f75..ede1a18 100644
--- 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
@@ -2,15 +2,20 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mes.downglassinfo.entity.DownGlassInfo;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Repository;
-/**
- * <p>
- * Mapper 鎺ュ彛
- * </p>
- *
- * @author zhoush
- * @since 2024-03-27
- */
+import java.util.List;
+
+@Repository
public interface DownGlassInfoMapper extends BaseMapper<DownGlassInfo> {
+ // 鏌ヨ涓嬬墖浠诲姟琛ㄤ腑鐘舵�佷负1鐨勪笅鐗囦俊鎭�
+ List<DownGlassInfo> selectunloadingtaskstate();
+
+ void updateTaskStateToZero(@Param("flowCardId") String flowCardId);
+
+ Integer getMaxSequenceByFlowCardId(@Param("flowCardId") String flowCardId);
+
+ void deletetask(@Param("flowCardId") String flowCardId);
}
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
index 37b6795..656f504 100644
--- 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
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.downglassinfo.entity.DownGlassInfo;
+import org.springframework.beans.factory.annotation.Autowired;
/**
* <p>
@@ -13,4 +14,6 @@
*/
public interface DownGlassInfoService extends IService<DownGlassInfo> {
+
+
}
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
index 9e972ba..a141494 100644
--- 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
@@ -17,4 +17,6 @@
@Service
public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
+
+
}
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
index d46e65e..1483cac 100644
--- 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
@@ -1,9 +1,17 @@
package com.mes.downworkstation.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.service.DownWorkstationService;
+import com.mes.uppattenusage.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 org.springframework.web.bind.annotation.RestController;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -13,9 +21,116 @@
* @author zhoush
* @since 2024-03-27
*/
+
@RestController
-@RequestMapping("/downWorkstation")
+@RequestMapping("/api/downWorkstation")
public class DownWorkstationController {
+ @Autowired
+ private DownWorkstationService downWorkstationService;
+ @Autowired
+ private GlassInfoService glassInfoService;
+
+ @GetMapping("/getone")
+ 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")
+ public List<DownWorkstation> gettwoDownWorkstations() {
+ return downWorkstationService.gettwoDownWorkstations();
+ }
+ @GetMapping("/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 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, workstationId);
+
+ // 鏋勫缓鍝嶅簲鏁版嵁
+ Map<String, Object> responseData = new HashMap<>();
+ responseData.put("message", "updated successfully");
+ responseData.put("code", 200);
+ // 杩斿洖澶勭悊缁撴灉
+ return ResponseEntity.ok(responseData);
+ }
+
+
+ @PostMapping("/clear")
+ public ResponseEntity<Map<String, Object>> clearWorkstationInfo(@RequestBody Map<String, Object> requestData) {
+ // 璋冪敤 DownWorkstationService 涓殑鏂规硶娓呴櫎鎸囧畾宸ヤ綅ID鐨勪俊鎭�
+ 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/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
index 40e582f..802dd59 100644
--- 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
@@ -52,4 +52,7 @@
private Integer workState;
+ private Integer Racksnumber;
+
+
}
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
index b8ddac6..c862190 100644
--- 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
@@ -1,7 +1,15 @@
package com.mes.downworkstation.mapper;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.downworkstation.entity.DownWorkstation;
+import org.apache.ibatis.annotations.*;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
/**
* <p>
@@ -11,6 +19,65 @@
* @author zhoush
* @since 2024-03-27
*/
+@Mapper
+@Repository
+@InterceptorIgnore(tenantLine = "true")
+@DS("salve_1") // 鎸囧畾浣跨敤 hangzhoumes 鏁版嵁婧�
public interface DownWorkstationMapper extends BaseMapper<DownWorkstation> {
+
+//鏌ヨ宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
+ @Select("SELECT dwt.flow_card_id,dw.id,dw.racks_number FROM down_workstation_task dwt JOIN down_workstation dw ON dwt.flow_card_id = dw.flow_card_id WHERE dwt.state = 1 LIMIT 1")
+ List<DownWorkstation> selectdownWorkstationstate();
+ //鏇存柊钀芥灦鏁伴噺
+ @Update("UPDATE down_workstation SET racks_number = #{racksNumber} " +
+ "WHERE flow_card_id = #{flowCardId}")
+ void update_racks_number(@Param("flowCardId") String flowCardId,
+ @Param("racksNumber") Integer racksNumber);
+
+ //鎻掑叆鏈烘浠诲姟琛�
+ @Insert("INSERT INTO down_workstation_task (flow_card_id, width, height, thickness, filmsid,state) " +
+ "VALUES (#{flowCardId}, #{width}, #{height}, #{thickness}, #{filmsid},1)")
+ void insertdownWorkstationtask(DownGlassInfo downGlassInfo);
+
+ //鏍规嵁宸ヤ綅id鏇存柊瀹炰綋绫绘帴鏀剁殑鏁版嵁
+ @Update("UPDATE down_workstation SET width = #{width}, height = #{height}, flow_card_id = #{flowCardId} WHERE workstation_id = #{workstationId}")
+ void updateFlowCardId(DownWorkstation downWorkstation);
+
+
+
+ //婊℃灦鎷夎蛋锛屾竻绌轰俊鎭�
+ @Update("UPDATE down_workstation SET width = null, height = null, flow_card_id = null WHERE workstation_id = #{workstationId}")
+ void clearFlowCardId(DownWorkstation downWorkstation);
+
+
+
+ @Update("UPDATE down_workstation_task SET state = 0 WHERE flow_card_id = #{flowCardId}")
+ void update_task_state_to_zero(@Param("flowCardId") String flowCardId);
+
+
+ @Select(" SELECT * FROM down_workstation WHERE workstation_id >= 1 AND workstation_id <= 5")
+ List<DownWorkstation> getoneDownWorkstations();
+
+
+ @Select(" SELECT * FROM down_workstation WHERE workstation_id >= 6 AND workstation_id <= 10")
+ List<DownWorkstation> gettwoDownWorkstations();
+
+
+
+ @Select("SELECT DISTINCT flowcard_id from glass_info")
+ @ResultType(Map.class)
+ List<Map<String, Object>> getflowCardId();
+
+ @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/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
new file mode 100644
index 0000000..309ac2f
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
@@ -0,0 +1,156 @@
+package com.mes.downworkstation.service;
+
+import com.mes.device.PLCAutoMes;
+import com.mes.device.PlcParameterObject;
+import com.mes.downglassinfo.entity.DownGlassInfo;
+import com.mes.downglassinfo.mapper.DownGlassInfoMapper;
+import com.mes.downglassinfo.service.DownGlassInfoService;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
+import com.mes.tools.WebSocketServer;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Data
+@Service
+public class DownGlassLogic {
+ @Autowired
+ private DownGlassInfo downGlassInfo;
+ private DownWorkstation downWorkstation;
+ private DownGlassInfoMapper downGlassInfoMapper;
+ private DownGlassInfoService downGlassInfoService;
+ private DownWorkstationMapper downWorkstationMapper;
+ PlcParameterObject plcread = PLCAutoMes.PlcReadObject;
+ /**
+ * // 鏈烘鎵�1PLC璇锋眰瀛�
+ */
+ String robot1PLCrequestword = plcread.getPlcParameter("A01Position").getValue();
+ /**
+ * // 鏈烘鎵�2PLC璇锋眰瀛�
+ */
+ String robot2PLCrequestword = plcread.getPlcParameter("A01Position").getValue();
+ /**
+ * // 鐜荤拑id
+ */
+ String glassID = plcread.getPlcParameter("A01Position").getValue();
+ String glasswidth = plcread.getPlcParameter("A01Position").getValue();
+ String glassheight = plcread.getPlcParameter("A01Position").getValue();
+ //
+ String glassthickness = plcread.getPlcParameter("A01Position").getValue();
+ String pLcwancheng = plcread.getPlcParameter("A01Position").getValue();
+
+ /**
+ * // 瀛樻斁寰呭鐞嗙殑鐜荤拑淇℃伅
+ */
+ private List<DownGlassInfo> glassList;
+ /**
+ * 瀛樻斁鐜荤拑鏀剧疆鍦ㄧ紦瀛樼涓殑璇︾粏淇℃伅
+ */
+ private List<DownStorageCageDetails> cageDetailsList;
+
+ /**
+ * //褰撲笅鐗囦换鍔¤〃鐘舵�佷负1鏃跺�欏皢鏁版嵁鎻掑叆鍒颁笅鐗囩幓鐠冧俊鎭〃
+ */
+
+ public void insertdownglassinfo() {
+
+
+ downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
+ downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
+ downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
+ List<DownGlassInfo> taskdownGlassInf = downGlassInfoMapper.selectunloadingtaskstate();
+//
+ if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
+
+//
+
+
+ for (DownGlassInfo downGlassInfo : taskdownGlassInf) {
+ // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
+ DownGlassInfo newdownGlassInfo = new DownGlassInfo();
+
+ newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId());
+ Integer maxSequence = downGlassInfoMapper.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId());
+ // 鍒濆鍖栭『搴忓瓧娈靛��
+ int sequence = maxSequence != null ? maxSequence + 1 : 1;
+
+ newdownGlassInfo.setWidth(downGlassInfo.getWidth());
+ newdownGlassInfo.setHeight(downGlassInfo.getHeight());
+ newdownGlassInfo.setThickness(downGlassInfo.getThickness());
+ newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid());
+ // 璁剧疆椤哄簭瀛楁鍊�
+ newdownGlassInfo.setSequence(sequence);
+
+ // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
+ downGlassInfoMapper.insert(newdownGlassInfo);
+ //鎻掑叆鏁版嵁鍒版満姊版墜浠诲姟琛�
+ downWorkstationMapper.insertdownWorkstationtask(newdownGlassInfo);
+ //鏇存柊涓嬬墖浠诲姟琛ㄧ姸鎬佷负0
+ downGlassInfoMapper.updateTaskStateToZero(downGlassInfo.getFlowCardId());
+
+ sequence++; // 閫掑椤哄簭瀛楁鍊�
+
+
+ }
+ }
+ }
+
+
+ /**
+ * //褰撴満姊版墜浠诲姟琛ㄤ腑鐘舵�佷负1锛屽伐浣嶈〃娴佺▼鍗$粦瀹氫簡鏋跺瓙 鏇存柊宸茬粡钀芥灦鏁伴噺锛屽苟涓旀妸涓嬬墖浠诲姟琛ㄧ殑瀵瑰簲璁板綍鍒犳帀
+ */
+
+ public void downWorkstation() {
+
+
+ try {
+ //鏌ヨ涓嬬墖宸ヤ綅琛ㄤ腑鏋跺瓙鏄惁缁戝畾浜嗘祦绋嬪崱鍙� 宸ヤ綅琛ㄥ拰浠诲姟琛ㄤ腑鐘舵�佷负1鐨勬祦绋嬪崱鍙峰拰宸茶惤鏋舵暟閲�
+ List<DownWorkstation> taskdownWorkstation = downWorkstationMapper.selectdownWorkstationstate();
+ if (taskdownWorkstation != null && !taskdownWorkstation.isEmpty()) {
+ //锛屽鏋滃凡缁忕粦瀹氬垯鏇存柊宸茶惤鏋舵暟閲�,骞朵笖鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
+ for (DownWorkstation downWorkstation : taskdownWorkstation) {
+
+ //鏇存柊涓嬬墖宸ヤ綅琛ㄤ腑宸茶惤鏋舵暟閲�
+ downWorkstationMapper.update_racks_number(downWorkstation.getFlowCardId(), downWorkstation.getRacksnumber() + 1);
+
+ //鏇存柊鏈烘浠诲姟琛ㄤ腑鐘舵�佷负0
+ downWorkstationMapper.update_task_state_to_zero(downWorkstation.getFlowCardId());
+ //鍒犻櫎涓嬬墖浠诲姟琛ㄤ腑鐨勮褰�
+ downGlassInfoMapper.deletetask(downWorkstation.getFlowCardId());
+
+ }
+ }
+ } catch (Exception e) {
+ // 鎵撳嵃寮傚父淇℃伅
+ e.printStackTrace();
+ // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅
+ }
+
+
+ }
+
+
+ /**
+ * @param downWorkstation // 缁戝畾娴佺▼鍗″彿鏋跺瓙
+ */
+
+ public void bindingshelf(DownWorkstation downWorkstation) {
+ downWorkstationMapper.updateFlowCardId(downWorkstation);
+ }
+
+
+ /**
+ * @param downWorkstation // 婊℃灦鎷夎蛋 娓呴櫎娴佺▼鍗′俊鎭�
+ */
+
+ public void clearFlowCardId(DownWorkstation downWorkstation) {
+
+ downWorkstationMapper.clearFlowCardId(downWorkstation);
+ }
+
+
+}
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
index 968ca6e..e26331f 100644
--- 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
@@ -3,6 +3,9 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.mes.downworkstation.entity.DownWorkstation;
+import java.util.List;
+import java.util.Map;
+
/**
* <p>
* 鏈嶅姟绫�
@@ -13,4 +16,15 @@
*/
public interface DownWorkstationService extends IService<DownWorkstation> {
+ List<DownWorkstation> getoneDownWorkstations();
+
+ List<DownWorkstation> gettwoDownWorkstations();
+
+ List<Map<String, Object>> getflowCardId();
+
+ int getTotalQuantity(int workstationId);
+
+ int getRacksNumber(int workstationId);
+
+ void clearFlowCardId(int workstationId);
}
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
index 0cedd56..865c54c 100644
--- 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
@@ -1,20 +1,50 @@
package com.mes.downworkstation.service.impl;
-import com.mes.downworkstation.entity.DownWorkstation;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.downworkstation.entity.DownWorkstation;
import com.mes.downworkstation.mapper.DownWorkstationMapper;
import com.mes.downworkstation.service.DownWorkstationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-/**
- * <p>
- * 鏈嶅姟瀹炵幇绫�
- * </p>
- *
- * @author zhoush
- * @since 2024-03-27
- */
+import java.util.List;
+import java.util.Map;
+
@Service
public class DownWorkstationServiceImpl extends ServiceImpl<DownWorkstationMapper, DownWorkstation> implements DownWorkstationService {
+ @Autowired
+ private DownWorkstationMapper downWorkstationMapper;
+
+ @Override
+ public List<DownWorkstation> getoneDownWorkstations() {
+ return downWorkstationMapper.getoneDownWorkstations();
+ }
+
+ @Override
+ public List<DownWorkstation> gettwoDownWorkstations() {
+ return downWorkstationMapper.gettwoDownWorkstations();
+ }
+
+ @Override
+ public List<Map<String, Object>> getflowCardId() {
+ return downWorkstationMapper.getflowCardId();
+ }
+
+ @Override
+ public int getTotalQuantity(int workstationId) {
+ Integer totalQuantity = downWorkstationMapper.getTotalQuantity(workstationId);
+ return totalQuantity != null ? totalQuantity : 0;
+ }
+
+ @Override
+ public int getRacksNumber(int workstationId) {
+ Integer racksNumber = downWorkstationMapper.getRacksNumber(workstationId);
+ return racksNumber != null ? racksNumber : 0;
+ }
+
+ @Override
+ public void clearFlowCardId(int workstationId) {
+ downWorkstationMapper.clearFlowCardInfoByWorkstationId(workstationId);
+ }
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java
new file mode 100644
index 0000000..1f64390
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/Configuration.java
@@ -0,0 +1,48 @@
+package com.mes.tools;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+/**
+ * @author SNG-012
+ *
+ * Configuration 绫荤敤浜庡姞杞介厤缃枃浠跺苟鎻愪緵璁块棶閰嶇疆椤圭殑鏂规硶銆�
+ */
+public class Configuration {
+
+ /**
+ * // Properties 瀵硅薄锛岀敤浜庡瓨鍌ㄩ厤缃枃浠朵腑鐨勯敭鍊煎銆�
+ */
+ private Properties properties;
+
+ /**
+ * @param fileName
+ * @throws IOException
+ * // 鏋勯�犲嚱鏁帮紝鏍规嵁浼犲叆鐨勬枃浠跺悕鍔犺浇閰嶇疆鏂囦欢銆�
+ */
+
+ public Configuration(String fileName) throws IOException {
+ // 浣跨敤绫诲姞杞藉櫒鑾峰彇璧勬簮鏂囦欢鐨勮緭鍏ユ祦銆�
+ InputStream inputStream = getClass().getClassLoader().getResourceAsStream(fileName);
+ // 濡傛灉杈撳叆娴佷负null锛岃〃绀烘湭鎵惧埌鏂囦欢锛屾姏鍑篎ileNotFoundException銆�
+ if (inputStream == null) {
+ throw new FileNotFoundException("Property file '" + fileName + "' not found in the classpath");
+ }
+ // 瀹炰緥鍖朠roperties瀵硅薄銆�
+ properties = new Properties();
+ // 浠庤緭鍏ユ祦鍔犺浇閰嶇疆椤广��
+ properties.load(inputStream);
+ }
+
+ /**
+ * @param key
+ * @return
+ * // 鏍规嵁閰嶇疆椤圭殑閿幏鍙栧叾瀵瑰簲鐨勫�笺��
+ */
+
+ public String getProperty(String key) {
+ return properties.getProperty(key);
+ }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
new file mode 100644
index 0000000..e1ad35c
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/ExcelToJsonConverter.java
@@ -0,0 +1,108 @@
+package com.mes.tools;
+
+import com.google.gson.Gson;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+
+import java.io.FileInputStream;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+
+public class ExcelToJsonConverter {
+
+ public static void main(String[] args) {
+ String excelFilePath = "src/main/resources/JsonFile/alarm.xlsx";
+ String sheetName = "Sheet1";
+ int addressColumnIndex = 0;
+ int nameColumnIndex = 1;
+
+ //int unitColumnIndex = 2;
+ String outputFilePath = "src/main/resources/JsonFile/PlcAlarm.json";
+
+ try (Workbook workbook = new XSSFWorkbook(new FileInputStream(excelFilePath))) {
+ Sheet sheet = workbook.getSheet(sheetName);
+
+ List<LinkedHashMap<String, Object>> jsonList = new ArrayList<>();
+
+ Iterator<Row> rowIterator = sheet.iterator();
+ // Skip the header row
+ if (rowIterator.hasNext()) {
+ rowIterator.next();
+ }
+
+ int plcAddressLength = 0; // 璁板綍鎵�鏈� addressLenght 鐨勫拰
+ int addressIndex = 0; // 鑷鐨勫湴鍧�绱㈠紩
+ while (rowIterator.hasNext()) {
+ Row row = rowIterator.next();
+
+ Cell nameCell = row.getCell(nameColumnIndex);
+ Cell addressCell = row.getCell(addressColumnIndex);
+ // Cell unitCell = row.getCell(unitColumnIndex);
+
+ String name = nameCell.getStringCellValue();
+ String address = addressCell.getStringCellValue();
+ // String unit = unitCell.getStringCellValue();
+
+ // String addressIndex = extractAddressIndex(address);
+
+ LinkedHashMap<String, Object> jsonObject = new LinkedHashMap<>();
+ jsonObject.put("codeId", name);
+ jsonObject.put("addressIndex", addressIndex);
+
+ int addressLength = 0;
+ if (address.contains("~")) {
+ addressLength = 14;
+ } else {
+ addressLength = 2;
+ }
+ // jsonObject.put("addressLenght", String.valueOf(addressLength));
+
+ //jsonObject.put("unit", unit);
+
+ plcAddressLength += addressLength;
+
+ jsonList.add(jsonObject);
+ addressIndex++;
+ }
+
+ LinkedHashMap<String, Object> resultObject = new LinkedHashMap<>();
+ resultObject.put("plcAddressBegin", "DB100.0");
+ resultObject.put("plcAddressLenght", String.valueOf(plcAddressLength));
+ // resultObject.put("dataType", "word");
+ resultObject.put("dataType", "bit");
+ resultObject.put("parameteInfor", jsonList);
+
+ Gson gson = new Gson();
+ String jsonOutput = gson.toJson(resultObject);
+
+ try (FileWriter fileWriter = new FileWriter(outputFilePath)) {
+ fileWriter.write(jsonOutput);
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+
+
+ private static String extractAddressIndex(String address) {
+ // Assuming the address format is "DB103.DBW0" or "DB103.DBB100~DBB113"
+ if (address.startsWith("DB") && address.contains(".DBW")) {
+ int startIndex = address.indexOf(".DBW") + 4;
+ int endIndex = address.length();
+ return address.substring(startIndex, endIndex);
+ } else if (address.startsWith("DB") && address.contains(".DBB")) {
+ int startIndex2 = address.indexOf(".DBB") + 4;
+ int endIndex2 = address.indexOf("~");
+ return address.substring(startIndex2, endIndex2);
+ }
+ return "";
+ }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
new file mode 100644
index 0000000..13a3bde
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/tools/WebSocketServer.java
@@ -0,0 +1,164 @@
+package com.mes.tools;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@ServerEndpoint(value = "/api/talk/{username}")
+@Component("webSocketServer")
+public class WebSocketServer {
+
+ // @Autowired
+ // HomeMapper homeMapper;
+
+ public static ConfigurableApplicationContext applicationContext;
+
+ // 瑙e喅鏃犳硶娉ㄥ叆mapper闂 //浣跨敤鏂规硶
+ // homeMapper=WebSocketServer.applicationContext.getBean(HomeMapper.class);
+ public static void setApplicationContext(ConfigurableApplicationContext configurableApplicationContext) {
+ WebSocketServer.applicationContext = configurableApplicationContext;
+ }
+
+ private static final Logger log = LoggerFactory.getLogger(WebSocketServer.class);
+ private List<String> messages;
+ /**
+ * 璁板綍褰撳墠鍦ㄧ嚎杩炴帴鏁�
+ */
+ public static final Map<String, ArrayList<WebSocketServer>> sessionMap = new ConcurrentHashMap<>();
+
+ String username;
+ Session session;
+
+ public WebSocketServer() {
+ this.messages = new ArrayList<>();
+ }
+
+ /**
+ * 杩炴帴寤虹珛鎴愬姛璋冪敤鐨勬柟娉�
+ */
+ @OnOpen
+ public void onOpen(Session session, @PathParam("username") String username) {
+ this.username = username;
+ this.session = session;
+ List<WebSocketServer> webSocketServers = sessionMap.get(username);
+ if (webSocketServers == null) {
+ ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+ arrayListwebserver.add(this);
+ sessionMap.put(username, arrayListwebserver);
+ } else {
+ webSocketServers.add(this);
+ }
+
+ log.info("鏈夋柊鐢ㄦ埛鍔犲叆锛寀sername={}, 褰撳墠鍦ㄧ嚎浜烘暟涓猴細{}", username, sessionMap.get(username).size());
+
+ // JSONObject result = new JSONObject();
+ // JSONArray array = new JSONArray();
+ // result.set("users", array);
+ // for (Object key : sessionMap.keySet()) {
+ // JSONObject jsonObject = new JSONObject();
+ // jsonObject.set("username", key);
+ // array.add(jsonObject);
+ // }
+
+ // sendAllMessage(JSONUtil.toJsonStr(result)); // 鍚庡彴鍙戦�佹秷鎭粰鎵�鏈夌殑瀹㈡埛绔�
+ }
+
+ /**
+ * 杩炴帴鍏抽棴璋冪敤鐨勬柟娉�
+ */
+ @OnClose
+ public void onClose(Session session, @PathParam("username") String username) {
+ List<WebSocketServer> webSocketServers = sessionMap.get(username);
+ ArrayList<WebSocketServer> arrayListwebserver = new ArrayList<WebSocketServer>();
+ if (webSocketServers.size()>1) {
+ for (WebSocketServer webSocketServer : webSocketServers) {
+ if(webSocketServer!=this){
+ arrayListwebserver.add(webSocketServer);
+ }
+ }
+ sessionMap.put(username, arrayListwebserver);
+ log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}鐨勫綋鍓嶅湪绾夸汉鏁颁负锛歿}", username, username, sessionMap.get(username).size());
+ }else{
+ sessionMap.remove(username);
+ log.info("绉婚櫎username={}涓�鍚嶇敤鎴穝ession, {}杩炴帴鍏抽棴, 褰撳墠杩炴帴鏁颁负锛歿}", username, username, sessionMap.size());
+ }
+
+ }
+
+ /**
+ * 鏀跺埌瀹㈡埛绔秷鎭悗璋冪敤鐨勬柟娉�
+ * 鍚庡彴鏀跺埌瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+ * onMessage 鏄竴涓秷鎭殑涓浆绔�
+ * 鎺ュ彈 娴忚鍣ㄧ socket.send 鍙戦�佽繃鏉ョ殑 json鏁版嵁
+ *
+ * @param message 瀹㈡埛绔彂閫佽繃鏉ョ殑娑堟伅
+ */
+ @OnMessage
+ public void onMessage(String message, Session session, @PathParam("username") String username) {
+ log.info("鏈嶅姟绔敹鍒扮敤鎴穟sername={}鐨勬秷鎭�:{}", username, message);
+ JSONObject obj = JSONUtil.parseObj(message);
+ String text = obj.getStr("data");
+
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.set("message", text);
+ this.messages.add(text);
+ this.sendMessage(jsonObject.toString()); // JSONUtil.toJsonStr(jsonObject)
+
+ }
+
+ @OnError
+ public void onError(Session session, Throwable error) {
+ log.error("鍙戠敓閿欒");
+ error.printStackTrace();
+ }
+
+ /**
+ * 鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔�
+ */
+ public void sendMessage(String message) {
+ try {
+ // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+ this.session.getBasicRemote().sendText(message);
+ } catch (Exception e) {
+ log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+ }
+ }
+
+ // /**
+ // * 鏈嶅姟绔彂閫佹秷鎭粰鎵�鏈夊鎴风
+ // */
+ // public void sendAllMessage(String message) {
+ // try {
+ // for (WebSocketServer webSocketServer : sessionMap.values()) {
+ // // log.info("鏈嶅姟绔粰瀹㈡埛绔痆{}]鍙戦�佹秷鎭瘂}", this.session.getId(), message);
+ // webSocketServer.sendMessage(message);
+ // }
+ // } catch (Exception e) {
+ // log.error("鏈嶅姟绔彂閫佹秷鎭粰瀹㈡埛绔け璐�", e);
+ // }
+ // }
+
+ public List<String> getMessages() {
+ return messages;
+
+ }
+
+ public void clearMessages() {
+ messages.clear();
+ }
+
+
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/uppattenusage/mapper/GlassInfoMapper.java
index 6acb270..f47d7bc 100644
--- 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
@@ -1,7 +1,14 @@
package com.mes.uppattenusage.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.downglassinfo.entity.DownGlassInfo;
import com.mes.uppattenusage.entity.GlassInfo;
+import org.apache.ibatis.annotations.Delete;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
/**
* <p>
@@ -13,4 +20,11 @@
*/
public interface GlassInfoMapper extends BaseMapper<GlassInfo> {
+
+ @Select("SELECT COUNT(*) FROM glass_info WHERE flowcard_id = #{flowCardId}")
+ int getGlassInfoCountByFlowCardId(@Param("flowCardId") String flowCardId);
+
+ @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);
+
}
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
index 8e380d7..57215a7 100644
--- 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
@@ -13,4 +13,7 @@
*/
public interface GlassInfoService extends IService<GlassInfo> {
+ int getGlassInfoCountByFlowCardId(String flowCardId);
+
+ void updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId);
}
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
index ec38a54..5c1a9b6 100644
--- 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
@@ -4,6 +4,7 @@
import com.mes.uppattenusage.entity.GlassInfo;
import com.mes.uppattenusage.mapper.GlassInfoMapper;
import com.mes.uppattenusage.service.GlassInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@@ -17,4 +18,25 @@
@Service
public class GlassInfoServiceImpl extends ServiceImpl<GlassInfoMapper, GlassInfo> implements GlassInfoService {
+ private GlassInfoMapper glassInfoMapper;
+
+ @Autowired
+ public GlassInfoServiceImpl(GlassInfoMapper glassInfoMapper) {
+ this.glassInfoMapper = glassInfoMapper;
+ }
+
+ @Override
+ public int getGlassInfoCountByFlowCardId(String flowCardId) {
+ return glassInfoMapper.getGlassInfoCountByFlowCardId(flowCardId);
+ }
+
+ @Override
+ public void updateFlowCardIdAndCount(String flowCardId, int glassInfoCount, int workstationId) {
+ int rowsAffected = glassInfoMapper.updateFlowCardIdAndCount(flowCardId, glassInfoCount, workstationId);
+ if (rowsAffected > 0) {
+ System.out.println("鏇存柊鏋跺瓙涓婃祦绋嬪崱 ID 鍜屾暟閲忔垚鍔�");
+ } else {
+ System.out.println("鏇存柊鏋跺瓙涓婃祦绋嬪崱 ID 鍜屾暟閲忓け璐�");
+ }
+ }
}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
new file mode 100644
index 0000000..a840092
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcAlarm.json
@@ -0,0 +1,371 @@
+{
+ "plcAddressBegin": "DB104.0.0",
+ "plcAddressLenght": "91",
+ "dataType": "bit",
+ "parameteInfor": [
+ {
+ "codeId": "D01VFDerror",
+ "addressIndex": 0
+ },
+ {
+ "codeId": "D02VFDerror",
+ "addressIndex": 1
+ },
+ {
+ "codeId": "D03VFDerror",
+ "addressIndex": 2
+ },
+ {
+ "codeId": "D04VFDerror",
+ "addressIndex": 3
+ },
+ {
+ "codeId": "D05VFDerror",
+ "addressIndex": 4
+ },
+ {
+ "codeId": "D06VFDerror",
+ "addressIndex": 5
+ },
+ {
+ "codeId": "B01VFDerror",
+ "addressIndex": 6
+ },
+ {
+ "codeId": "B02VFDerror",
+ "addressIndex": 7
+ },
+ {
+ "codeId": "A01VFDerror",
+ "addressIndex": 8
+ },
+ {
+ "codeId": "A02VFDerror",
+ "addressIndex": 9
+ },
+ {
+ "codeId": "A01servoturnerror",
+ "addressIndex": 10
+ },
+ {
+ "codeId": "A02servoturnerror",
+ "addressIndex": 11
+ },
+ {
+ "codeId": "A01servotravelerror",
+ "addressIndex": 12
+ },
+ {
+ "codeId": "A02servotravelerror",
+ "addressIndex": 13
+ },
+ {
+ "codeId": "B01servotravelerror",
+ "addressIndex": 14
+ },
+ {
+ "codeId": "B02servotravelerror",
+ "addressIndex": 15
+ },
+ {
+ "codeId": "D01DECerror",
+ "addressIndex": 16
+ },
+ {
+ "codeId": "D01poserror",
+ "addressIndex": 17
+ },
+ {
+ "codeId": "D02DECerror",
+ "addressIndex": 18
+ },
+ {
+ "codeId": "D02poserror",
+ "addressIndex": 19
+ },
+ {
+ "codeId": "D03DECerror",
+ "addressIndex": 20
+ },
+ {
+ "codeId": "D03poserror",
+ "addressIndex": 21
+ },
+ {
+ "codeId": "D04DECerror",
+ "addressIndex": 22
+ },
+ {
+ "codeId": "D04poserror",
+ "addressIndex": 23
+ },
+ {
+ "codeId": "D05DECerror",
+ "addressIndex": 24
+ },
+ {
+ "codeId": "D05poserror",
+ "addressIndex": 25
+ },
+ {
+ "codeId": "D06DECerror",
+ "addressIndex": 26
+ },
+ {
+ "codeId": "D06poserror",
+ "addressIndex": 27
+ },
+ {
+ "codeId": "A01DECerror",
+ "addressIndex": 28
+ },
+ {
+ "codeId": "A01poserror",
+ "addressIndex": 29
+ },
+ {
+ "codeId": "A02DECerror",
+ "addressIndex": 30
+ },
+ {
+ "codeId": "A02poserror",
+ "addressIndex": 31
+ },
+ {
+ "codeId": "B01INDECerror",
+ "addressIndex": 32
+ },
+ {
+ "codeId": "B01INposerror",
+ "addressIndex": 33
+ },
+ {
+ "codeId": "B01OUTDECerror",
+ "addressIndex": 34
+ },
+ {
+ "codeId": "B01OUTposerror",
+ "addressIndex": 35
+ },
+ {
+ "codeId": "B02INDECerror",
+ "addressIndex": 36
+ },
+ {
+ "codeId": "B02INposerror",
+ "addressIndex": 37
+ },
+ {
+ "codeId": "B02OUTDECerror",
+ "addressIndex": 38
+ },
+ {
+ "codeId": "B02OUTposerror",
+ "addressIndex": 39
+ },
+ {
+ "codeId": "D01Scanglassexceedinglimit",
+ "addressIndex": 40
+ },
+ {
+ "codeId": "emergencystopalarm",
+ "addressIndex": 41
+ },
+ {
+ "codeId": "Moreglassthanknown",
+ "addressIndex": 42
+ },
+ {
+ "codeId": "lessglassthanknown",
+ "addressIndex": 43
+ },
+ {
+ "codeId": "D01conveyortimeoutalarm",
+ "addressIndex": 44
+ },
+ {
+ "codeId": "D02conveyortimeoutalarm",
+ "addressIndex": 45
+ },
+ {
+ "codeId": "D03conveyortimeoutalarm",
+ "addressIndex": 46
+ },
+ {
+ "codeId": "D04conveyortimeoutalarm",
+ "addressIndex": 47
+ },
+ {
+ "codeId": "D05conveyortimeoutalarm",
+ "addressIndex": 48
+ },
+ {
+ "codeId": "D06conveyortimeoutalarm",
+ "addressIndex": 49
+ },
+ {
+ "codeId": "A01conveyortimeoutalarm",
+ "addressIndex": 50
+ },
+ {
+ "codeId": "A02conveyortimeoutalarm",
+ "addressIndex": 51
+ },
+ {
+ "codeId": "B01conveyortimeoutalarm",
+ "addressIndex": 52
+ },
+ {
+ "codeId": "B02conveyortimeoutalarm",
+ "addressIndex": 53
+ },
+ {
+ "codeId": "A01conveyorLeftsafetyalarm",
+ "addressIndex": 54
+ },
+ {
+ "codeId": "A01conveyorrightsafetyalarm",
+ "addressIndex": 55
+ },
+ {
+ "codeId": "A02conveyorLeftsafetyalarm",
+ "addressIndex": 56
+ },
+ {
+ "codeId": "A02conveyorrightsafetyalarm",
+ "addressIndex": 57
+ },
+ {
+ "codeId": "1#buffersafetyalarm",
+ "addressIndex": 58
+ },
+ {
+ "codeId": "2#buffersafetyalarm",
+ "addressIndex": 59
+ },
+ {
+ "codeId": "3#buffersafetyalarm",
+ "addressIndex": 60
+ },
+ {
+ "codeId": "4#buffersafetyalarm",
+ "addressIndex": 61
+ },
+ {
+ "codeId": "A01.SRrightinposerror",
+ "addressIndex": 62
+ },
+ {
+ "codeId": "A02.SRleftinposerror",
+ "addressIndex": 63
+ },
+ {
+ "codeId": "B01.SRleftinposerror",
+ "addressIndex": 64
+ },
+ {
+ "codeId": "B01.SRleftdecerror",
+ "addressIndex": 65
+ },
+ {
+ "codeId": "B01.SRrightdecerror",
+ "addressIndex": 66
+ },
+ {
+ "codeId": "B01.SRrightinposerror",
+ "addressIndex": 67
+ },
+ {
+ "codeId": "B02.SRleftinposerror",
+ "addressIndex": 68
+ },
+ {
+ "codeId": "B02.SRleftdecerror",
+ "addressIndex": 69
+ },
+ {
+ "codeId": "B02.SRrightdecerror",
+ "addressIndex": 70
+ },
+ {
+ "codeId": "B02.SRrightinposerror",
+ "addressIndex": 71
+ },
+ {
+ "codeId": "A01servoturnhomed",
+ "addressIndex": 72
+ },
+ {
+ "codeId": "A02servoturnhomed",
+ "addressIndex": 73
+ },
+ {
+ "codeId": "A01servotravelhomed",
+ "addressIndex": 74
+ },
+ {
+ "codeId": "A02servotravelhomed",
+ "addressIndex": 75
+ },
+ {
+ "codeId": "B01servotravelhomed",
+ "addressIndex": 76
+ },
+ {
+ "codeId": "B02servotravelhomed",
+ "addressIndex": 77
+ },
+ {
+ "codeId": "resetDelay",
+ "addressIndex": 78
+ },
+ {
+ "codeId": "A01travelNegativelimit",
+ "addressIndex": 79
+ },
+ {
+ "codeId": "A01travelPositivelimit",
+ "addressIndex": 80
+ },
+ {
+ "codeId": "A01turnuplimit",
+ "addressIndex": 81
+ },
+ {
+ "codeId": "A01turndownlimit",
+ "addressIndex": 82
+ },
+ {
+ "codeId": "A02travelNegativelimit",
+ "addressIndex": 83
+ },
+ {
+ "codeId": "A02travelPositivelimit",
+ "addressIndex": 84
+ },
+ {
+ "codeId": "A02turnuplimit",
+ "addressIndex": 85
+ },
+ {
+ "codeId": "A02turndownlimit",
+ "addressIndex": 86
+ },
+ {
+ "codeId": "B01travelNegativelimit",
+ "addressIndex": 87
+ },
+ {
+ "codeId": "B01travelPositivelimit",
+ "addressIndex": 88
+ },
+ {
+ "codeId": "B02travelNegativelimit",
+ "addressIndex": 89
+ },
+ {
+ "codeId": "B02travelPositivelimit",
+ "addressIndex": 90
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
new file mode 100644
index 0000000..ab5d4cd
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcMes.json
@@ -0,0 +1,50 @@
+{
+ "plcAddressBegin":"DB105.0",
+ "plcAddressLenght":"12",
+ "dataType":"word",
+ "parameteInfor":[
+ {
+ "codeId": "OutActivate",
+ "addressIndex":"0",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "Addgoal",
+ "addressIndex":"2",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "AddLength",
+ "addressIndex":"4",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "AddWidth",
+ "addressIndex":"6",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "AddCount",
+ "addressIndex":"8",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "OutStart",
+ "addressIndex":"10",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ }
+
+ ]
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
new file mode 100644
index 0000000..afbe090
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcParameter.json
@@ -0,0 +1,610 @@
+{
+ "plcAddressBegin":"DB100.0",
+ "plcAddressLenght":"198",
+ "dataType":"word",
+ "parameteInfor":[
+ {
+ "codeId": "conveyorVelocity(Max)",
+ "addressIndex":"0",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "conveyorVelocity(AutoFAST)",
+ "addressIndex":"2",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "conveyorVelocity(AutoSLOW)",
+ "addressIndex":"4",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "conveyorVelocity(Manual)",
+ "addressIndex":"6",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01A02TURNJOGVelocity",
+ "addressIndex":"8",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01A02TRAVELJOGVelocity",
+ "addressIndex":"10",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "B01B02TRAVELJOGVelocity",
+ "addressIndex":"12",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01A02TURNPOSVelocityAUTO",
+ "addressIndex":"14",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01TURNPOSVelocitymanual",
+ "addressIndex":"16",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01A02TRAVELPOSVelocityAUTO",
+ "addressIndex":"18",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01TRAVELPOSVelocitymanual",
+ "addressIndex":"20",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "B01B02TRAVELPOSVelocityAUTO",
+ "addressIndex":"22",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "B01TRAVELPOSVelocitymanual",
+ "addressIndex":"24",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "A01A02conveyorVelocity(Max)",
+ "addressIndex":"26",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A01A02conveyorVelocity(AutoFAST)",
+ "addressIndex":"28",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A01A02conveyorVelocity(AutoSLOW)",
+ "addressIndex":"30",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01B02conveyorVelocity(Manual)",
+ "addressIndex":"32",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01B02conveyorVelocity(Max)",
+ "addressIndex":"34",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01B02conveyorVelocity(AutoFAST)",
+ "addressIndex":"36",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01B02conveyorVelocity(AutoSLOW)",
+ "addressIndex":"38",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01B02conveyorVelocity(Manual)",
+ "addressIndex":"40",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "gridspacing",
+ "addressIndex":"42",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01Spliceaddresssetting",
+ "addressIndex":"44",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A02Spliceaddresssetting",
+ "addressIndex":"46",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A011#gridaddress",
+ "addressIndex":"48",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0122#gridaddress",
+ "addressIndex":"50",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0143#gridaddress",
+ "addressIndex":"52",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0164#gridaddress",
+ "addressIndex":"54",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0185#gridaddress",
+ "addressIndex":"56",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01106#gridaddress",
+ "addressIndex":"58",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01127#gridaddress",
+ "addressIndex":"60",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01148#gridaddress",
+ "addressIndex":"62",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01169#gridaddress",
+ "addressIndex":"64",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01190#gridaddress",
+ "addressIndex":"66",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A021#gridaddress",
+ "addressIndex":"68",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0222#gridaddress",
+ "addressIndex":"70",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0243#gridaddress",
+ "addressIndex":"72",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0264#gridaddress",
+ "addressIndex":"74",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A0285#gridaddress",
+ "addressIndex":"76",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A02106#gridaddress",
+ "addressIndex":"78",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A02127#gridaddress",
+ "addressIndex":"80",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A02148#gridaddress",
+ "addressIndex":"82",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A02169#gridaddress",
+ "addressIndex":"84",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A02190#gridaddress",
+ "addressIndex":"86",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B011#gridaddress",
+ "addressIndex":"88",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B0122#gridaddress",
+ "addressIndex":"90",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B0143#gridaddress",
+ "addressIndex":"92",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B0164#gridaddress",
+ "addressIndex":"94",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B0185#gridaddress",
+ "addressIndex":"96",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B02106#gridaddress",
+ "addressIndex":"98",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B02127#gridaddress",
+ "addressIndex":"100",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B02148#gridaddress",
+ "addressIndex":"102",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B02169#gridaddress",
+ "addressIndex":"104",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "B02190#gridaddress",
+ "addressIndex":"106",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm"
+ },
+ {
+ "codeId": "A01Targetgrid(Manual)",
+ "addressIndex":"108",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": " A02Targetgrid(Manual)",
+ "addressIndex":"110",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "B01Targetgrid(Manual)",
+ "addressIndex":"112",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "B02Targetgrid(Manual)",
+ "addressIndex":"114",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "A01turnTargetAngle(Manual)",
+ "addressIndex":"116",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A02turnTargetAngle(Manual)",
+ "addressIndex":"118",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A01turnAngle1",
+ "addressIndex":"120",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A01turnAngle2",
+ "addressIndex":"122",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A01turnAngle3",
+ "addressIndex":"124",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A01turnAngle4",
+ "addressIndex":"126",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A02turnAngle1",
+ "addressIndex":"128",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A02turnAngle2",
+ "addressIndex":"130",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A02turnAngle3",
+ "addressIndex":"132",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "A02turnAngle4",
+ "addressIndex":"134",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"掳"
+ },
+ {
+ "codeId": "Minimumglasslength",
+ "addressIndex":"136",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Minimumglassheight",
+ "addressIndex":"138",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Maximumglasslength",
+ "addressIndex":"140",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Maximumglassheight",
+ "addressIndex":"142",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "A01cellsGlassNum",
+ "addressIndex":"144",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "A02cellsGlassNum",
+ "addressIndex":"146",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "A01ID",
+ "addressIndex":"148",
+ "addressLenght":"14",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "A02ID",
+ "addressIndex":"162",
+ "addressLenght":"14",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "A02TRAVELPOSVelocitymanual",
+ "addressIndex":"176",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "B02TRAVELPOSVelocitymanual",
+ "addressIndex":"178",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Startingpositionofthefeedca",
+ "addressIndex":"180",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Targetpositionofthefeedcar",
+ "addressIndex":"182",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Lengthofincomingglass",
+ "addressIndex":"184",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Widthofincomingglass",
+ "addressIndex":"186",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ },
+ {
+ "codeId": "Startingpositionoftheexitcar",
+ "addressIndex":"188",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ }, {
+ "codeId": "Exitcartargetposition",
+ "addressIndex":"190",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ }
+ , {
+ "codeId": "A02TURNPOSVelocitymanual",
+ "addressIndex":"192",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ }
+ , {
+ "codeId": "A01delayTime",
+ "addressIndex":"194",
+ "addressLenght":"2",
+ "ratio":"1"
+
+ }
+
+
+ ]
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
new file mode 100644
index 0000000..f3ebb33
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcRead.json
@@ -0,0 +1,195 @@
+{
+ "plcAddressBegin": "DB106.0",
+ "plcAddressLenght": "66",
+ "dataType": "word",
+ "parameteInfor": [{
+ "codeId": "A01Position",
+ "addressIndex": "0",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A01FlipPosition",
+ "addressIndex": "2",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A01QuestStartPosition",
+ "addressIndex": "4",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A01EndPosition",
+ "addressIndex": "6",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "FeedCarStatus",
+ "addressIndex": "8",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A02QuestOver",
+ "addressIndex": "10",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A02Position",
+ "addressIndex": "12",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A02FlipPosition",
+ "addressIndex": "14",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A02QuestStartPosition",
+ "addressIndex": "16",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A02EndPosition",
+ "addressIndex": "18",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "ExitCarStatus",
+ "addressIndex": "20",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "A02QuestOver",
+ "addressIndex": "22",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "FeedRequest",
+ "addressIndex": "24",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "FeedID",
+ "addressIndex": "26",
+ "addressLenght":"14",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01Position",
+ "addressIndex": "40",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01QuestPosition",
+ "addressIndex": "42",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01CurrentTaskMode",
+ "addressIndex": "44",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01CarStatus",
+ "addressIndex": "46",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01CarTaskStatus",
+ "addressIndex": "48",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B02Position",
+ "addressIndex": "50",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B02CarCurrentTask",
+ "addressIndex": "52",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B02CurrentTaskMode",
+ "addressIndex": "54",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B02CarStatus",
+ "addressIndex": "56",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B02CarSaskStatus",
+ "addressIndex": "58",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B01CompleteTheReport",
+ "addressIndex": "60",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "B02CompleteTheReport",
+ "addressIndex": "62",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "OutRequest",
+ "addressIndex": "64",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
new file mode 100644
index 0000000..8f9295a
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcSign.json
@@ -0,0 +1,460 @@
+{
+ "plcAddressBegin": "DB102.0.0",
+ "plcAddressLenght": "112",
+ "dataType": "bit",
+ "parameteInfor": [
+ {
+ "codeId": "D01.SRdec",
+ "addressIndex": 0
+ },
+ {
+ "codeId": "D01.SRinpos",
+ "addressIndex": 1
+ },
+ {
+ "codeId": "D02.SRdec",
+ "addressIndex": 2
+ },
+ {
+ "codeId": "D02.SRinpos",
+ "addressIndex": 3
+ },
+ {
+ "codeId": "D03.SRinto",
+ "addressIndex": 4
+ },
+ {
+ "codeId": "D03.SRdec",
+ "addressIndex": 5
+ },
+ {
+ "codeId": "D03.SRinpos",
+ "addressIndex": 6
+ },
+ {
+ "codeId": "D04.SRdec",
+ "addressIndex": 7
+ },
+ {
+ "codeId": "D04.SRinpos",
+ "addressIndex": 8
+ },
+ {
+ "codeId": "D05.SRdec",
+ "addressIndex": 9
+ },
+ {
+ "codeId": "D05.SRinpos",
+ "addressIndex": 10
+ },
+ {
+ "codeId": "D06.SRdec",
+ "addressIndex": 11
+ },
+ {
+ "codeId": "D06.SRinpos",
+ "addressIndex": 12
+ },
+ {
+ "codeId": "B01.SRindec",
+ "addressIndex": 13
+ },
+ {
+ "codeId": "B01.SRininpos",
+ "addressIndex": 14
+ },
+ {
+ "codeId": "B01.SRoutdec",
+ "addressIndex": 15
+ },
+ {
+ "codeId": "B01.SRoutinpos",
+ "addressIndex": 16
+ },
+ {
+ "codeId": "B01.SRturnon",
+ "addressIndex": 17
+ },
+ {
+ "codeId": "B01.SRturnoff",
+ "addressIndex": 18
+ },
+ {
+ "codeId": "B01.SRup",
+ "addressIndex": 19
+ },
+ {
+ "codeId": "B01.SRdown",
+ "addressIndex": 20
+ },
+ {
+ "codeId": "B02.SRoutdec",
+ "addressIndex": 21
+ },
+ {
+ "codeId": "B02.SRoutinpos",
+ "addressIndex": 22
+ },
+ {
+ "codeId": "B02.SRindec",
+ "addressIndex": 23
+ },
+ {
+ "codeId": "B02.SRininpos",
+ "addressIndex": 24
+ },
+ {
+ "codeId": "B02.SRturnon",
+ "addressIndex": 25
+ },
+ {
+ "codeId": "B02.SRturnoff",
+ "addressIndex": 26
+ },
+ {
+ "codeId": "B02.SRup",
+ "addressIndex": 27
+ },
+ {
+ "codeId": "B02.SRdown",
+ "addressIndex": 28
+ },
+ {
+ "codeId": "B01.SRinsafety",
+ "addressIndex": 29
+ },
+ {
+ "codeId": "B01.SRoutsafety",
+ "addressIndex": 30
+ },
+ {
+ "codeId": "B02.SRinsafety",
+ "addressIndex": 31
+ },
+ {
+ "codeId": "SB.start(+)",
+ "addressIndex": 32
+ },
+ {
+ "codeId": "SB.stop(-)",
+ "addressIndex": 33
+ },
+ {
+ "codeId": "SB.reset",
+ "addressIndex": 34
+ },
+ {
+ "codeId": "SB.auto/manul",
+ "addressIndex": 35
+ },
+ {
+ "codeId": "D01.SB.confirm",
+ "addressIndex": 36
+ },
+ {
+ "codeId": "SB.emg",
+ "addressIndex": 37
+ },
+ {
+ "codeId": "D01.SB.start",
+ "addressIndex": 38
+ },
+ {
+ "codeId": "D06.SB.start",
+ "addressIndex": 39
+ },
+ {
+ "codeId": "B02.SRoutsafety",
+ "addressIndex": 40
+ },
+ {
+ "codeId": "SafetyDoor.requset",
+ "addressIndex": 41
+ },
+ {
+ "codeId": "SafetyDoor.confirm",
+ "addressIndex": 42
+ },
+ {
+ "codeId": "SafetyDoor.reset",
+ "addressIndex": 43
+ },
+ {
+ "codeId": "Sspce",
+ "addressIndex": 44
+ },
+ {
+ "codeId": "Sspce",
+ "addressIndex": 45
+ },
+ {
+ "codeId": "Sspce",
+ "addressIndex": 46
+ },
+ {
+ "codeId": "Sspce",
+ "addressIndex": 47
+ },
+ {
+ "codeId": "A01.SRleftdec",
+ "addressIndex": 48
+ },
+ {
+ "codeId": "A01.SRleftinpos",
+ "addressIndex": 49
+ },
+ {
+ "codeId": "A01.SRleftsafety",
+ "addressIndex": 50
+ },
+ {
+ "codeId": "A01.SRrightdec",
+ "addressIndex": 51
+ },
+ {
+ "codeId": "A01.SRrightinpos",
+ "addressIndex": 52
+ },
+ {
+ "codeId": "A01.SRrightsafety",
+ "addressIndex": 53
+ },
+ {
+ "codeId": "A01.SRturnhome",
+ "addressIndex": 54
+ },
+ {
+ "codeId": "A01.SRturnup",
+ "addressIndex": 55
+ },
+ {
+ "codeId": "A01.SRturndown",
+ "addressIndex": 56
+ },
+ {
+ "codeId": "A01.SRtravelhome",
+ "addressIndex": 57
+ },
+ {
+ "codeId": "A01.SRtravelleftdec",
+ "addressIndex": 58
+ },
+ {
+ "codeId": "A01.SRtravelleftlimit",
+ "addressIndex": 59
+ },
+ {
+ "codeId": "A01.SRtravelrightdec",
+ "addressIndex": 60
+ },
+ {
+ "codeId": "A01.SRtravelrightlimit",
+ "addressIndex": 61
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 62
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 63
+ },
+ {
+ "codeId": "A02.SRleftdec",
+ "addressIndex": 64
+ },
+ {
+ "codeId": "A02.SRleftinpos",
+ "addressIndex": 65
+ },
+ {
+ "codeId": "A02.SRleftsafety",
+ "addressIndex": 66
+ },
+ {
+ "codeId": "A02.SRrightdec",
+ "addressIndex": 67
+ },
+ {
+ "codeId": "A02.SRrightinpos",
+ "addressIndex": 68
+ },
+ {
+ "codeId": "A02.SRrightsafety",
+ "addressIndex": 69
+ },
+ {
+ "codeId": "A02.SRturnhome",
+ "addressIndex": 70
+ },
+ {
+ "codeId": "A02.SRturnup",
+ "addressIndex": 71
+ },
+ {
+ "codeId": "A02.SRturndown",
+ "addressIndex": 72
+ },
+ {
+ "codeId": "A02.SRtravelhome",
+ "addressIndex": 73
+ },
+ {
+ "codeId": "A02.SRtravelleftdec",
+ "addressIndex": 74
+ },
+ {
+ "codeId": "A02.SRtravelleftlimit",
+ "addressIndex": 75
+ },
+ {
+ "codeId": "A02.SRtravelrightdec",
+ "addressIndex": 76
+ },
+ {
+ "codeId": "A02.SRtravelrightlimit",
+ "addressIndex": 77
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 78
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 79
+ },
+ {
+ "codeId": "B01.SRorigin",
+ "addressIndex": 80
+ },
+ {
+ "codeId": "B01.SRleftlimit",
+ "addressIndex": 81
+ },
+ {
+ "codeId": "B01.SRrightlimit",
+ "addressIndex": 82
+ },
+ {
+ "codeId": "B02.SRorigin",
+ "addressIndex": 83
+ },
+ {
+ "codeId": "B02.SRleftlimit",
+ "addressIndex": 84
+ },
+ {
+ "codeId": "B02.SRrightlimit",
+ "addressIndex": 85
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 86
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 87
+ },
+ {
+ "codeId": "LED.red",
+ "addressIndex": 88
+ },
+ {
+ "codeId": "LED.green",
+ "addressIndex": 89
+ },
+ {
+ "codeId": "LED.yellow",
+ "addressIndex": 90
+ },
+ {
+ "codeId": "D01.LED.green",
+ "addressIndex": 91
+ },
+ {
+ "codeId": "D06.LED.green",
+ "addressIndex": 92
+ },
+ {
+ "codeId": "B01.YV.turn",
+ "addressIndex": 93
+ },
+ {
+ "codeId": "B01.YV.updown",
+ "addressIndex": 94
+ },
+ {
+ "codeId": "B01.YV.gassing",
+ "addressIndex": 95
+ },
+ {
+ "codeId": "B02.YV.turn",
+ "addressIndex": 96
+ },
+ {
+ "codeId": "B02.YV.updown",
+ "addressIndex": 97
+ },
+ {
+ "codeId": "B02.YV.gassing",
+ "addressIndex": 98
+ },
+ {
+ "codeId": "SafetyDoor.Led",
+ "addressIndex": 99
+ },
+ {
+ "codeId": "SafetyDoor.open",
+ "addressIndex": 100
+ },
+ {
+ "codeId": "D01SB.confirm",
+ "addressIndex": 101
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 102
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 103
+ },
+ {
+ "codeId": "A01oilPump",
+ "addressIndex": 104
+ },
+ {
+ "codeId": "A01motorCtr",
+ "addressIndex": 105
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 106
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 107
+ },
+ {
+ "codeId": "A02oilPump",
+ "addressIndex": 108
+ },
+ {
+ "codeId": "A02motorCtr",
+ "addressIndex": 109
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 110
+ },
+ {
+ "codeId": "space",
+ "addressIndex": 111
+ }
+ ,
+ {
+ "codeId": "space",
+ "addressIndex": 111
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
new file mode 100644
index 0000000..dfdbaec
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcState.json
@@ -0,0 +1,285 @@
+{
+ "plcAddressBegin": "DB103.0",
+ "plcAddressLenght": "258",
+ "dataType": "word",
+ "parameteInfor": [
+ {
+ "codeId": "D01.State",
+ "addressIndex": "0",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "D02.State",
+ "addressIndex": "2",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B01.State",
+ "addressIndex": "4",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B02.State",
+ "addressIndex": "6",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A01.State",
+ "addressIndex": "8",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02.State",
+ "addressIndex": "10",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "D03.State",
+ "addressIndex": "12",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "D04.State",
+ "addressIndex": "14",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "D05.State",
+ "addressIndex": "16",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "D06.State",
+ "addressIndex": "18",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A01tavelActualPosition",
+ "addressIndex": "20",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A01turnActualangle",
+ "addressIndex": "22",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02tavelActualPosition",
+ "addressIndex": "24",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02turnActualangle",
+ "addressIndex": "26",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B01tavelActualPosition",
+ "addressIndex": "28",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B02tavelActualPosition",
+ "addressIndex": "30",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A01CurrentGrid",
+ "addressIndex": "32",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02CurrentGrid",
+ "addressIndex": "34",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B01CurrentGrid",
+ "addressIndex": "36",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B01TargetGrid",
+ "addressIndex": "38",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B02CurrentGrid",
+ "addressIndex": "40",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B02TargetGrid",
+ "addressIndex": "42",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "D01ID",
+ "addressIndex": "44",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "D02ID",
+ "addressIndex": "58",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "D03ID",
+ "addressIndex": "72",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "D04ID",
+ "addressIndex": "86",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "D05ID",
+ "addressIndex": "100",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "D06ID",
+ "addressIndex": "114",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "A01ID1",
+ "addressIndex": "128",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "A01ID2",
+ "addressIndex": "142",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "A02ID1",
+ "addressIndex": "156",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "A02ID2",
+ "addressIndex": "170",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "B01ID1",
+ "addressIndex": "184",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "B01ID2",
+ "addressIndex": "198",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "B02ID1",
+ "addressIndex": "212",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "B02ID2",
+ "addressIndex": "226",
+ "addressLenght": "14",
+ "unit": ""
+ },
+ {
+ "codeId": "A01conveyorFaultcodes",
+ "addressIndex": "240",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A01turnservoFaultcodes",
+ "addressIndex": "242",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A01travelservoFaultcodes",
+ "addressIndex": "244",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02conveyorFaultcodes",
+ "addressIndex": "246",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02turnservoFaultcodes",
+ "addressIndex": "248",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "A02travelservoFaultcodes",
+ "addressIndex": "250",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B01travelservoFaultcodes",
+ "addressIndex": "252",
+ "addressLenght": "2",
+ "unit": ""
+ },
+ {
+ "codeId": "B02travelservoFaultcodes",
+ "addressIndex": "254",
+ "addressLenght": "2",
+ "unit": ""
+ }
+ ,
+ {
+ "codeId": "Scanningguns",
+ "addressIndex": "256",
+ "addressLenght": "2",
+ "unit": ""
+ }
+ ,
+ {
+ "codeId": "Frameid",
+ "addressIndex": "270",
+ "addressLenght": "2",
+ "unit": ""
+ }
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
new file mode 100644
index 0000000..263c782
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/PlcTest.json
@@ -0,0 +1,378 @@
+{
+ "plcAddressBegin": "DB101.0.0",
+ "plcAddressLenght": "93",
+ "dataType": "bit",
+ "parameteInfor": [
+ {
+ "codeId": "D01VFDconveyor",
+ "addressIndex": 0
+ },
+ {
+ "codeId": "D02VFDconveyor",
+ "addressIndex": 1
+ },
+ {
+ "codeId": "D03VFDconveyor",
+ "addressIndex": 2
+ },
+ {
+ "codeId": "D04VFDconveyor",
+ "addressIndex": 3
+ },
+ {
+ "codeId": "D05VFDconveyor",
+ "addressIndex": 4
+ },
+ {
+ "codeId": "D06VFDconveyor",
+ "addressIndex": 5
+ },
+ {
+ "codeId": "A01VFDconveyor",
+ "addressIndex": 6
+ },
+ {
+ "codeId": "A02VFDconveyor",
+ "addressIndex": 7
+ },
+ {
+ "codeId": "B01VFDconveyor",
+ "addressIndex": 8
+ },
+ {
+ "codeId": "B02VFDconveyor",
+ "addressIndex": 9
+ },
+ {
+ "codeId": "A01SERVETURN",
+ "addressIndex": 10
+ },
+ {
+ "codeId": "A02SERVETURN",
+ "addressIndex": 11
+ },
+ {
+ "codeId": "A01SERVETRAVEL",
+ "addressIndex": 12
+ },
+ {
+ "codeId": "A02SERVETRAVEL",
+ "addressIndex": 13
+ },
+ {
+ "codeId": "B01SERVETRAVEL",
+ "addressIndex": 14
+ },
+ {
+ "codeId": "B02SERVETRAVEL",
+ "addressIndex": 15
+ },
+ {
+ "codeId": "A01SERVETURNPOS",
+ "addressIndex": 16
+ },
+ {
+ "codeId": "A02SERVETURNPOS",
+ "addressIndex": 17
+ },
+ {
+ "codeId": "A01SERVETRAVELPOS",
+ "addressIndex": 18
+ },
+ {
+ "codeId": "A02SERVETRAVELPOS",
+ "addressIndex": 19
+ },
+ {
+ "codeId": "B01SERVETRAVELPOS",
+ "addressIndex": 20
+ },
+ {
+ "codeId": "B02SERVETRAVELPOS",
+ "addressIndex": 21
+ },
+ {
+ "codeId": "B01YVTURN",
+ "addressIndex": 22
+ },
+ {
+ "codeId": "B01YVUPDOWN",
+ "addressIndex": 23
+ },
+ {
+ "codeId": "B02YVTURN",
+ "addressIndex": 24
+ },
+ {
+ "codeId": "B02YVUPDOWN",
+ "addressIndex": 25
+ },
+ {
+ "codeId": "B01YVGassing",
+ "addressIndex": 26
+ },
+ {
+ "codeId": "B02YVGassing",
+ "addressIndex": 27
+ },
+ {
+ "codeId": "A01VFDconveyorreverse",
+ "addressIndex": 28
+ },
+ {
+ "codeId": "A02VFDconveyorreverse",
+ "addressIndex": 29
+ },
+ {
+ "codeId": "A01SERVETURNreset",
+ "addressIndex": 30
+ },
+ {
+ "codeId": "A01SERVETURNhome",
+ "addressIndex": 31
+ },
+ {
+ "codeId": "A01SERVETRAVELreset",
+ "addressIndex": 32
+ },
+ {
+ "codeId": "A02SERVETURNreset",
+ "addressIndex": 33
+ },
+ {
+ "codeId": "A02SERVETURNhome",
+ "addressIndex": 34
+ },
+ {
+ "codeId": "A02SERVETRAVELreset",
+ "addressIndex": 35
+ },
+ {
+ "codeId": "B01SERVETRAVELreset",
+ "addressIndex": 36
+ },
+ {
+ "codeId": "B01SERVETRAVELhome",
+ "addressIndex": 37
+ },
+ {
+ "codeId": "B02SERVETRAVELreset",
+ "addressIndex": 38
+ },
+ {
+ "codeId": "B02SERVETRAVELhome",
+ "addressIndex": 39
+ },
+ {
+ "codeId": "Manualstoragestartup",
+ "addressIndex": 40
+ },
+ {
+ "codeId": "Manualoutputstartup",
+ "addressIndex": 41
+ },
+ {
+ "codeId": "A01oilpump",
+ "addressIndex": 42
+ },
+ {
+ "codeId": "A02oilpump",
+ "addressIndex": 43
+ },
+ {
+ "codeId": "A01get1#gridaddress",
+ "addressIndex": 44
+ },
+ {
+ "codeId": "A01get22#gridaddress",
+ "addressIndex": 45
+ },
+ {
+ "codeId": "A01get43#gridaddress",
+ "addressIndex": 46
+ },
+ {
+ "codeId": "A01get64#gridaddress",
+ "addressIndex": 47
+ },
+ {
+ "codeId": "A01get85#gridaddress",
+ "addressIndex": 48
+ },
+ {
+ "codeId": "A01get106#gridaddress",
+ "addressIndex": 49
+ },
+ {
+ "codeId": "A01get127#gridaddress",
+ "addressIndex": 50
+ },
+ {
+ "codeId": "A01get148#gridaddress",
+ "addressIndex": 51
+ },
+ {
+ "codeId": "A01get169#gridaddress",
+ "addressIndex": 52
+ },
+ {
+ "codeId": "A02get190#gridaddress",
+ "addressIndex": 53
+ },
+ {
+ "codeId": "A02get1#gridaddress",
+ "addressIndex": 54
+ },
+ {
+ "codeId": "A02get22#gridaddress",
+ "addressIndex": 55
+ },
+ {
+ "codeId": "A02get43#gridaddress",
+ "addressIndex": 56
+ },
+ {
+ "codeId": "A02get64#gridaddress",
+ "addressIndex": 57
+ },
+ {
+ "codeId": "A02get85#gridaddress",
+ "addressIndex": 58
+ },
+ {
+ "codeId": "A02get106#gridaddress",
+ "addressIndex": 59
+ },
+ {
+ "codeId": "A02get127#gridaddress",
+ "addressIndex": 60
+ },
+ {
+ "codeId": "A02get148#gridaddress",
+ "addressIndex": 61
+ },
+ {
+ "codeId": "A02get169#gridaddress",
+ "addressIndex": 62
+ },
+ {
+ "codeId": "A02get190#gridaddress",
+ "addressIndex": 63
+ },
+ {
+ "codeId": "B01get1#gridaddress",
+ "addressIndex": 64
+ },
+ {
+ "codeId": "B01get22#gridaddress",
+ "addressIndex": 65
+ },
+ {
+ "codeId": "B01get43#gridaddress",
+ "addressIndex": 66
+ },
+ {
+ "codeId": "B01get64#gridaddress",
+ "addressIndex": 67
+ },
+ {
+ "codeId": "B01get85#gridaddress",
+ "addressIndex": 68
+ },
+ {
+ "codeId": "B02get106#gridaddress",
+ "addressIndex": 69
+ },
+ {
+ "codeId": "B02get127#gridaddress",
+ "addressIndex": 70
+ },
+ {
+ "codeId": "B02get148#gridaddress",
+ "addressIndex": 71
+ },
+ {
+ "codeId": "B02get169#gridaddress",
+ "addressIndex": 72
+ },
+ {
+ "codeId": "B02get190#gridaddress",
+ "addressIndex": 73
+ },
+ {
+ "codeId": "D01IDClean",
+ "addressIndex": 74
+ },
+ {
+ "codeId": "D02IDClean",
+ "addressIndex": 75
+ },
+ {
+ "codeId": "D03IDClean",
+ "addressIndex": 76
+ },
+ {
+ "codeId": "D04IDClean",
+ "addressIndex": 77
+ },
+ {
+ "codeId": "D05IDClean",
+ "addressIndex": 78
+ },
+ {
+ "codeId": "D06IDClean",
+ "addressIndex": 79
+ },
+ {
+ "codeId": "A01IDClean",
+ "addressIndex": 80
+ },
+ {
+ "codeId": "A02IDClean",
+ "addressIndex": 81
+ },
+ {
+ "codeId": "B01IDClean",
+ "addressIndex": 82
+ },
+ {
+ "codeId": "B02IDClean",
+ "addressIndex": 83
+ },
+ {
+ "codeId": "abort/resumeTasks",
+ "addressIndex": 84
+ },
+ {
+ "codeId": "A01SERVETRAVELhome",
+ "addressIndex": 85
+ },
+ {
+ "codeId": "A02SERVETRAVELhome",
+ "addressIndex": 86
+ },
+ {
+ "codeId": "A01A02travelHoming",
+ "addressIndex": 87
+ },
+ {
+ "codeId": "A01halfAutoSelect",
+ "addressIndex": 88
+ },
+ {
+ "codeId": "A02halfAutoSelect",
+ "addressIndex": 89
+ },
+ {
+ "codeId": "A02abortTasks",
+ "addressIndex": 90
+ },
+ {
+ "codeId": "emgHMI",
+ "addressIndex": 91
+ },
+ {
+ "codeId": "Scanningmethod",
+ "addressIndex": 92
+ ]
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
new file mode 100644
index 0000000..c270227
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/Plcframe.json
@@ -0,0 +1,51 @@
+{
+ "plcAddressBegin":"DB17.0",
+ "plcAddressLenght":"40",
+ "dataType":"word",
+ "parameteInfor":[
+ {
+ "codeId": "E01id",
+ "addressIndex":"0",
+ "addressLenght":"14",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "E01Quest",
+ "addressIndex":"16",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "E01Reply",
+ "addressIndex":"18",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"m/min"
+ },
+ {
+ "codeId": "J01Quest",
+ "addressIndex":"20",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "J01id",
+ "addressIndex":"22",
+ "addressLenght":"14",
+ "ratio":"1",
+ "unit":"mm/S"
+ },
+ {
+ "codeId": "J01TurnGo",
+ "addressIndex":"38",
+ "addressLenght":"2",
+ "ratio":"1",
+ "unit":"mm/S"
+ }
+
+
+ ]
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
new file mode 100644
index 0000000..50b26dc
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/alarm.xlsx
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
new file mode 100644
index 0000000..3922301
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/sign.xlsx
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
new file mode 100644
index 0000000..9862cf5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/JsonFile/test.xlsx
Binary files differ
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
index 609b5bf..08ef1f5 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -3,21 +3,41 @@
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/
+ dynamic:
+ primary: hangzhoumes #璁剧疆榛樿鐨勬暟鎹簮鎴栬�呮暟鎹簮缁�,榛樿鍊煎嵆涓簃aster
+ strict: false #璁剧疆涓ユ牸妯″紡,榛樿false涓嶅惎鍔�. 鍚姩鍚庡湪鏈尮閰嶅埌鎸囧畾鏁版嵁婧愭椂鍊欏洖鎶涘嚭寮傚父,涓嶅惎鍔ㄤ細浣跨敤榛樿鏁版嵁婧�.
+ datasource:
+ 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
+ slave_1:
+ #閰嶇疆鏁版嵁婧愮被鍨�
+ type: com.zaxxer.hikari.HikariDataSource
+ #閰嶇疆杩炴帴鏁版嵁搴撶殑淇℃伅
+ driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
+ url: jdbc:sqlserver://10.153.19.150:1433;databasename=mybatisTest
+ username: sa
+ password: 'beibo.123/'
cloud:
nacos:
discovery:
- server-addr: 127.0.0.1:8848
+ server-addr: 10.153.19.150:8848
application:
name: unLoadGlass
redis:
database: 0
- host: 192.168.56.10
+ host: 10.153.19.150
port: 6379
+ password: 123456
mybatis-plus:
mapper-locations: classpath*:mapper/*.xml
- configuration:
- log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+
+# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+ # 璁剧疆 MyBatis 鏃ュ織绾у埆涓� ERROR
+logging:
+ level:
+ com:
+ baomidou:
+ mybatisplus=ERROR:
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
new file mode 100644
index 0000000..59e29ae
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/mapper/DownGlassInfoMapper.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.mes.downglassinfo.mapper.DownGlassInfoMapper">
+
+ <select id="selectunloadingtaskstate" resultType="com.mes.downglassinfo.entity.DownGlassInfo">
+ SELECT flow_card_id, filmsid, width, height, thickness FROM down_glass_task WHERE task_stauts = 1
+ </select>
+
+ <update id="updateTaskStateToZero">
+ UPDATE down_glass_task SET task_stauts = 0 WHERE flow_card_id = #{flowCardId}
+ </update>
+
+ <select id="getMaxSequenceByFlowCardId" resultType="java.lang.Integer">
+ SELECT MAX(sequence) FROM down_glass_info WHERE flow_card_id = #{flowCardId}
+ </select>
+
+ <delete id="deletetask">
+ DELETE FROM down_glass_task WHERE flow_card_id = #{flowCardId}
+ </delete>
+
+</mapper>
diff --git a/hangzhoumesParent/moduleService/pom.xml b/hangzhoumesParent/moduleService/pom.xml
index c5d8ab6..1ae04ab 100644
--- a/hangzhoumesParent/moduleService/pom.xml
+++ b/hangzhoumesParent/moduleService/pom.xml
@@ -43,6 +43,17 @@
<version>1.0-SNAPSHOT</version>
</dependency>
+ <dependency>
+ <artifactId>servicebase</artifactId>
+ <groupId>com.mes</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <artifactId>springsecurity</artifactId>
+ <groupId>com.mes</groupId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
<!--寮�鍙戣�呭伐鍏�-->
<dependency>
<groupId>org.springframework.boot</groupId>
--
Gitblit v1.8.0