From 137ab94168623d78bbc369f41ddaaa6135e114a3 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期三, 15 五月 2024 09:55:21 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/config/TokenWebSecurityConfig.java                                 |    1 
 hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java                           |   77 ++++++----
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java |  109 ++++++---------
 UI-Project/src/views/UnLoadGlass/Landingindication.vue                                                                                  |   50 ++++---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                          |    6 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/mapper/UpWorkstationMapper.java                       |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java                         |    7 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                            |   26 +++
 UI-Project/src/views/UnLoadGlass/loadmachinerack.vue                                                                                    |   13 +
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java                                     |    2 
 UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue                                                                               |   16 +-
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                                         |   70 +++++----
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java                                              |   34 ++++
 13 files changed, 246 insertions(+), 167 deletions(-)

diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index d43f129..ca6a564 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -1,8 +1,9 @@
 <template>
   <div class="glass-rack">
-    <div>
+    <div >
       <svg width="500" height="500" xmlns="http://www.w3.org/2000/svg">
         <g stroke="null" id="Layer_1">
+          <!-- 浣跨敤 v-for 寰幆娓叉煋鏁版嵁 -->
           <g v-for="(rack, index) in racks" :key="index">
             <rect 
               :x="rack.x" 
@@ -33,19 +34,20 @@
 <script setup>
 import Swal from 'sweetalert2'
 import request from "@/utils/request";
-
-// 鍒濆鍖栨暟鎹�
-let racks = [
+const racks = [
   { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
+ 
   { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
+ 
   { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
+  
 ];
 
-// 璁$畻鍏冪礌浣嶇疆鐨勫嚱鏁�
+
 const calculateItemXPosition = (rack, item, index) => {
-  if (index === 0) {
+  if (index === 0 ) {
     return rack.x;
-  } else if (index === 1) {
+  } else if (index === 1 ) {
     return rack.x + rack.width - item.width;
   } else {
     return rack.x + (rack.width - item.width) / 2;
@@ -53,7 +55,7 @@
 };
 
 const calculateItemYPosition = (rack, item, index) => {
-  if (index === 0) {
+  if (index === 0 ) {
     return rack.y + (rack.height - item.height) / 2;
   } else if (index === 1) {
     return rack.y + (rack.height - item.height) / 2;
@@ -62,24 +64,29 @@
   }
 };
 
-// 鑾峰彇鏁版嵁骞舵洿鏂� racks 鏁扮粍
+
 const fetchFlowCardId = async () => {
   try {
     const response = await request.get('unLoadGlass/downWorkStation/getwo');
+    console.log(response)
     if (response.code === 200) {
+      console.log(response.data);
+      // 閬嶅巻鍝嶅簲鏁版嵁骞舵浛鎹acks鏁扮粍涓殑item灞炴��
       response.data.forEach((itemData, index) => {
         if (index < racks.length) {
           const rack = racks[index];
           const newItem = {
             content: itemData.item.content,
             fillColor: itemData.item.fillColor,
-            width: itemData.item.width / 10000,
-            height: itemData.item.height / 10000
+            width: itemData.item.width/10000,
+            height: itemData.item.height/10000
           };
-          // 鏇存柊 racks 鏁扮粍
-          Vue.set(racks, index, { ...rack, item: newItem });
+          rack.item == newItem;
+         
         }
       });
+      
+      console.log(racks); // 鏌ョ湅鏇存柊鍚庣殑racks鏁扮粍
     } else {
       ElMessage.error(response.msg);
     }
@@ -88,16 +95,17 @@
   }
 };
 
-// 鑾峰彇鏁版嵁骞舵洿鏂� racks 鏁扮粍
-fetchFlowCardId();
+fetchFlowCardId()
+// setTimeout(fetchFlowCardId(),1000);
+  
 
-// 鏄剧ず鑷畾涔夎鎶�
+
 const showCustomAlert = (content) => {
-  var str = "鏋跺彿   :      111\n" +
+  var str="鏋跺彿   :      111\n" +
     "闀�     :      111\n" +
     "瀹�     :      111\n" +
-    "鍘�     :      111\n" +
-    "鐜荤拑ID :      111\n" +
+    "鍘�     :      111\n"+
+    "鐜荤拑ID :      111\n"+
     "鑶滅郴   :      111\n";
 
   Swal.fire({
@@ -109,11 +117,11 @@
   });
 };
 
-// 鏄剧ず鍏冪礌淇℃伅
 const showRectInfo = (rectInfo) => {
   const content = rectInfo.item.content;
   showCustomAlert(content);
 };
+
 </script>
 
 <style scoped>
@@ -136,4 +144,4 @@
   padding: 10px;
   font-size: 14px;
 }
-</style>
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index b340c83..1613c01 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -22,7 +22,7 @@
               :height="rack.item.height" 
               :fill="rack.item.fillColor"
             />
-            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 6 }}鍙峰伐浣�</text>
+            <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 4 }}鍙峰伐浣�</text>
             <text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
           </g>
         </g>
@@ -34,18 +34,16 @@
 <script setup>
 import Swal from 'sweetalert2'
 
-const racks = [
+let racks = [
   { x: 50, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 90, width: 10, fillColor: 'yellow', content: 'NG123456' } },
-  { x: 50, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 20, width: 10, fillColor: 'yellow', content: 'NG1234567' } },
   { x: 280, y: 100, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 30, width: 20, fillColor: 'yellow', content: 'NG12345678' } },
-  { x: 280, y: 270, height: 100, width: 60, fillColor: '#6a6da9', item: { height: 35, width: 23, fillColor: 'yellow', content: 'NG123456910' } },
   { x: 140, y: 420, height: 60, width: 110, fillColor: '#6a6da9', item: { height: 30, width: 100, fillColor: 'yellow', content: 'NG1234561454' } }
 ];
-
+// 璁$畻鍏冪礌浣嶇疆鐨勫嚱鏁�
 const calculateItemXPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0) {
     return rack.x;
-  } else if (index === 2 || index === 3) {
+  } else if (index === 1) {
     return rack.x + rack.width - item.width;
   } else {
     return rack.x + (rack.width - item.width) / 2;
@@ -53,9 +51,9 @@
 };
 
 const calculateItemYPosition = (rack, item, index) => {
-  if (index === 0 || index === 1) {
+  if (index === 0) {
     return rack.y + (rack.height - item.height) / 2;
-  } else if (index === 2 || index === 3) {
+  } else if (index === 1) {
     return rack.y + (rack.height - item.height) / 2;
   } else {
     return rack.y + rack.height - item.height;
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index 6f605ad..faf1d53 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -9,6 +9,7 @@
 import Landingindication from "./Landingindication.vue";
 import Landingindicationtwo from "./Landingindicationtwo.vue";
 import request from "@/utils/request";
+
 const dialogFormVisiblea = ref(false)
 
 
@@ -121,7 +122,9 @@
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       console.log('缁戝畾鎴愬姛');
+   
       ElMessage.success(response.message);
+      updatePageData();
       dialogFormVisiblea.value = false;
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -134,6 +137,16 @@
 };
 
 
+const updatePageData = () => {
+  // 鍋囪浣犵殑椤甸潰涓婃湁涓�涓悕涓� tableData 鐨� Vue 缁勪欢
+  // 浣犲彲浠ョ洿鎺ユ洿鏂� tableData 鐨勬暟鎹�
+  tableData.flowCardId = flowCardId.value;
+
+  // 浣跨敤 $forceUpdate() 寮哄埗鏇存柊缁勪欢
+  forceUpdate();
+};
+
+
 
 const handleBindRack2 = (row) => {
   workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
index 32c52a8..908468b 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java
@@ -32,7 +32,12 @@
     //寮�濮�/鏆傚仠浠诲姟
     @Override
     public  boolean  changeTask(String projectId, Integer state) {
-        //浣跨敤projectId浣滀负鏉′欢淇敼state瀛楁
+        //鏆傚仠姝e湪杩涜宸ョ▼
+        LambdaUpdateChainWrapper<Engineering> pauseWrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
+        pauseWrapper.set(Engineering::getState,0);
+        pauseWrapper.eq(Engineering::getState,1);
+        pauseWrapper.update();
+        //浣跨敤projectId浣滀负鏉′欢寮�濮嬪伐绋�
         LambdaUpdateChainWrapper<Engineering> wrapper = new LambdaUpdateChainWrapper<>(this.getBaseMapper());
         wrapper.set(Engineering::getState,state);
         wrapper.eq(Engineering::getEngineerId,projectId);
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
index e5f3071..a130533 100644
--- 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
@@ -72,6 +72,7 @@
                 .antMatchers("/webjars/**").permitAll()
                 .antMatchers("/v2/**").permitAll()
                 .antMatchers("/swagger-resources/**").permitAll()
+                .antMatchers("/**").permitAll()
                 .anyRequest().authenticated()
 
                 // 寮傚父澶勭悊鍣�
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
index 0b8b082..1505d1b 100644
--- 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
@@ -1,9 +1,18 @@
 package com.mes.common.filter;
 
+import com.mes.common.utils.JwtUtil;
 import com.mes.common.utils.RedisUtil;
+import com.mes.common.utils.UserInfoUtils;
+import com.mes.userinfo.entity.LoginUser;
 import com.mes.userinfo.service.SysUserService;
+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;
@@ -12,6 +21,9 @@
 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
@@ -31,39 +43,38 @@
     protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
         //鑾峰彇token
         String token = request.getHeader("token");
-//
-//        if (!StringUtils.hasText(token)) {
-//            //鏀捐
-//            filterChain.doFilter(request, response);
-//            return; // 姝ゅ鍔犱笂return濂藉鏄悗闈㈢粨鏋滆繑鍥炵殑鏃跺�欏氨涓嶄細鍐嶈蛋涓�閬嶆杩囨护鍣ㄧ殑鏂规硶浜�
-//        }
-//        //瑙f瀽token
-//        String userid;
-//        try {
-//            Claims claims = JwtUtil.getClaimByToken(token);
-//            userid = claims.getSubject();
-//        } catch (Exception e) {
-//            e.printStackTrace();
-//            throw new RuntimeException("token闈炴硶");
-//        }
-//        //浠巖edis涓幏鍙栫敤鎴蜂俊鎭�
-//        String redisKey = "login:" + userid;
-//        LoginUser loginUser = redisUtil.getCacheObject(redisKey);
-//        if (Objects.isNull(loginUser)) {
-//            response.setHeader("token", "");
-//            throw new RuntimeException("鐢ㄦ埛鏈櫥褰�");
-//        }
-//        //灏嗙敤鎴蜂俊鎭斁鍏ュ綋鍓嶇嚎绋�
-//        UserInfoUtils.set(loginUser.getUser());
-//        //瀛樺叆SecurityContextHolder锛屼互渚涘悗闈㈢殑杩囨护鍣ㄤ娇鐢�
-//        List<String> permissionKeyList = sysUserService.getUserAuthorityInfo(Long.parseLong(userid));
-//        List<GrantedAuthority> authorities = permissionKeyList.stream().
-//                map(SimpleGrantedAuthority::new)
-//                .collect(Collectors.toList());
-//        UsernamePasswordAuthenticationToken authenticationToken =
-//                new UsernamePasswordAuthenticationToken(loginUser, null, authorities);
-//        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
+        if (!StringUtils.hasText(token)) {
+            //鏀捐
+            filterChain.doFilter(request, response);
+            return; // 姝ゅ鍔犱笂return濂藉鏄悗闈㈢粨鏋滆繑鍥炵殑鏃跺�欏氨涓嶄細鍐嶈蛋涓�閬嶆杩囨护鍣ㄧ殑鏂规硶浜�
+        }
+        //瑙f瀽token
+        String userid;
+        try {
+            Claims claims = JwtUtil.getClaimByToken(token);
+            userid = claims.getSubject();
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException("token闈炴硶");
+        }
+        //浠巖edis涓幏鍙栫敤鎴蜂俊鎭�
+        String redisKey = "login:" + userid;
+        LoginUser loginUser = redisUtil.getCacheObject(redisKey);
+        if (Objects.isNull(loginUser)) {
+            response.setHeader("token", "");
+            throw new RuntimeException("鐢ㄦ埛鏈櫥褰�");
+        }
+        //灏嗙敤鎴蜂俊鎭斁鍏ュ綋鍓嶇嚎绋�
+        UserInfoUtils.set(loginUser.getUser());
+        //瀛樺叆SecurityContextHolder锛屼互渚涘悗闈㈢殑杩囨护鍣ㄤ娇鐢�
+        List<String> permissionKeyList = sysUserService.getUserAuthorityInfo(Long.parseLong(userid));
+        List<GrantedAuthority> authorities = permissionKeyList.stream().
+                map(SimpleGrantedAuthority::new)
+                .collect(Collectors.toList());
+        UsernamePasswordAuthenticationToken authenticationToken =
+                new UsernamePasswordAuthenticationToken(loginUser, null, authorities);
+        SecurityContextHolder.getContext().setAuthentication(authenticationToken);
         //鏀捐
         filterChain.doFilter(request, response);
     }
-}
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 0f0b2a6..500a02a 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -109,15 +109,15 @@
             log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
             //鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘
             int count = edgStorageCageDetailsService.count(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
-            if ("0".equals(out08Glassstate) && "0".equals(out10Glassstate) && count < 9) {
-                inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
-            } else {
+            if (("1".equals(out08Glassstate) || "1".equals(out10Glassstate)) && count > 0) {
                 boolean outFlase = outTo(Integer.parseInt(out08Glassstate),
                         Integer.parseInt(out10Glassstate), confirmationWrodAddress);
                 log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue);
                 if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) {
                     inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
                 }
+            } else {
+                inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
             }
         }
     }
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
index 9ed7dba..2ad66f4 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
@@ -1,22 +1,34 @@
 package com.mes.common;
 
 import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.device.PlcParameterObject;
+import com.mes.tools.InitUtil;
 import com.mes.tools.S7control;
 
 
 
-
-public class S7object {
+/**
+ * @Author : zhoush
+ * @Date: 2024/4/9 15:13
+ * @Description:
+ */
+public class S7object extends Thread {
     public S7control plccontrol; // PLC閫氳绫诲疄渚�
-    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+    private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
     private String ip = "192.168.10.1"; // plc ip鍦板潃
     private int port = 102; // plc 绔彛鍙�
 
+
+    public PlcParameterObject PlcMesObject;
     private static volatile S7object instance = null;
 
     private S7object() {
         if (plccontrol == null) {
             plccontrol = new S7control(plcType, ip, port, 0, 0);
+
+            String PlcLoadGlass=S7object.class.getResource("/JsonFile/PlcLoadGlass.json").getPath();
+            //log.info(PLCAutoMes.class.getResource("").getPath());
+            PlcMesObject = InitUtil.initword(PlcLoadGlass);
         }
     }
 
@@ -31,4 +43,20 @@
         }
         return instance;
     }
+
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(100);
+
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+
+            byte[] getplcvlues=   plccontrol.ReadByte(PlcMesObject.getPlcAddressBegin(),PlcMesObject.getPlcAddressLength());
+            PlcMesObject.setPlcParameterList(getplcvlues);
+
+        }
+    }
 }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index 4110f80..c8bce6f 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
@@ -59,26 +59,9 @@
                     upPattenUsageService.updateUpPattenUsageState(upPattenUsage, workId);
 
                 }
-            }
-            //鑾峰彇鏄惁鏈夋眹鎶�
-            String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
-            if (loadStatus != null) {
-                log.info(loadStatus);
-                if ("1".equals(loadStatus)) {
-                    log.info("鏀跺埌姹囨姤浠诲姟瀹屾垚");
-                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
-                } else if ("2".equals(loadStatus)) {
-                    log.info("鏀跺埌姹囨姤鏈畬鎴愪换鍔�");
-                    //鍑忓皯宸ヤ綅鏁伴噺,鎭㈠浠诲姟鐘舵��
-                    overTask(loadStatus,0);
-                } else if ("3".equals(loadStatus)) {
-                    log.info("鏀跺埌姹囨姤鐜荤拑鐮存崯");
-                    overTask(loadStatus,0);
-                } else if("0".equals(loadStatus)){
-                        log.info("鏀跺埌姹囨姤娓�0鐘舵��");
-                        //鍑忓皯宸ヤ綅鏁伴噺,瀹屾垚浠诲姟鐘舵��
-                        overTask(loadStatus,1);
-                }
+            }else {
+                //璇锋眰瀛椾负闆舵椂锛屼换鍔″瓧娓呴浂
+                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(), 0);
             }
             //鎵ц鍚庝紤鐪�300姣
             //Thread.sleep(300);
@@ -86,16 +69,41 @@
             e.printStackTrace();
         }
     }
-  public  void overTask(String loadStatus,int state) throws InterruptedException {
-      UpPattenUsage upPattenUsage = upPattenUsageService.selectOverTask();
-      if (upPattenUsage != null) {
-          log.info("鏀跺埌姹囨姤娓厈}鐘舵��",loadStatus);
-          //鍑忓皯宸ヤ綅鏁伴噺
-          upWorkstationService.reduceWorkstationNumber(upPattenUsage.getState());
-          //瀹屾垚涓婄墖琛ㄧ姸鎬�
-          upPattenUsageService.updateUpPattenUsageState(upPattenUsage, 100);
-          S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
-      }
-  }
+
+    @Scheduled(fixedDelay = 300)
+    public void plcLoadGlassReport(){
+        //鑾峰彇鏄惁鏈夋眹鎶�
+        String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
+        if (loadStatus != null) {
+            log.info(loadStatus);
+            if ("1".equals(loadStatus)) {
+                log.info("鏀跺埌姹囨姤浠诲姟瀹屾垚");
+                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
+            } else if ("2".equals(loadStatus)) {
+                log.info("鏀跺埌姹囨姤鏈畬鎴愪换鍔�");
+                //鍑忓皯宸ヤ綅鏁伴噺,鎭㈠浠诲姟鐘舵��
+                overTask(loadStatus,0);
+            } else if ("3".equals(loadStatus)) {
+                log.info("鏀跺埌姹囨姤鐜荤拑鐮存崯");
+                overTask(loadStatus,0);
+            } else if("0".equals(loadStatus)){
+                log.info("鏀跺埌姹囨姤娓�0鐘舵��");
+                //鍑忓皯宸ヤ綅鏁伴噺,瀹屾垚浠诲姟鐘舵��
+                overTask(loadStatus,100);
+            }
+        }
+    }
+
+    public void overTask(String loadStatus, int state)  {
+        UpPattenUsage upPattenUsage = upPattenUsageService.selectOverTask();
+        if (upPattenUsage != null) {
+            log.info("鏀跺埌姹囨姤娓厈}鐘舵��", loadStatus);
+            //鍑忓皯宸ヤ綅鏁伴噺
+            upWorkstationService.reduceWorkstationNumber(upPattenUsage.getState());
+            //瀹屾垚涓婄墖琛ㄧ姸鎬�
+            upPattenUsageService.updateUpPattenUsageState(upPattenUsage, state);
+            S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
+        }
+    }
 
 }
\ No newline at end of file
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
index f5358bf..6c44a7d 100644
--- 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
@@ -3,7 +3,7 @@
 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 org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..ddac7f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,26 @@
+package com.mes;
+
+import com.mes.common.S7object;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author SNG-012
+ */
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        log.info("鍚姩瀹屾垚");
+        S7object.getinstance().start();
+
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
index 211dc88..f94df84 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -33,7 +33,7 @@
 @Service
 public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
 
-    @Autowired(required=false)
+    @Autowired(required = false)
     private DownStorageCageMapper downStorageCageMapper;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
@@ -41,6 +41,7 @@
     private GlassInfoMapper glassInfoMapper;
     @Autowired
     private DownWorkstationMapper downWorkstationMapper;
+
     @Override
     public void addDownStorageCageDetails(DownStorageCageDetails details) {
         this.save(details);
@@ -49,7 +50,7 @@
 
     @Override
     //淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
-    public boolean updatedownStorageCageDetails(DownStorageCageDetails details){
+    public boolean updatedownStorageCageDetails(DownStorageCageDetails details) {
         baseMapper.updateById(details);
         return true;
     }
@@ -73,27 +74,6 @@
 
         );
     }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
 
 
 //    @Override
@@ -181,17 +161,14 @@
 //    }
 
 
-
-
     @Override
-    public List<DownStorageCageDetails> CacheOut1(int start,int end) {
-
+    public List<DownStorageCageDetails> CacheOut1(int start, int end) {
 
 
         List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
         // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
         if (cageDetails.size() == 9) {
-       log.info("婊′簡鐨勬椂鍊欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+            log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
             List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
 
 
@@ -199,59 +176,63 @@
             for (DownWorkstation workstation : workstationList) {
                 flowCardIds.add(workstation.getFlowCardId());
             }
+
+            if (flowCardIds.isEmpty()) {
+                log.error("鏈壘鍒板搴旂殑 flow_card_id");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
             LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
 
             anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
             anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
-            anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId,flowCardIds);
+            anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
             anotherQueryWrapper.last("LIMIT 1");
             return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
-        }else
-        {
+        } else {
 
-        // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
-        List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+            // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+            List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
 
 
-        List<String> flowCardIds = new ArrayList<>();
-        for (DownWorkstation workstation : workstationList) {
-            flowCardIds.add(workstation.getFlowCardId());
-        }
+            List<String> flowCardIds = new ArrayList<>();
+            for (DownWorkstation workstation : workstationList) {
+                flowCardIds.add(workstation.getFlowCardId());
+            }
 
-        LambdaQueryWrapper<GlassInfo> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.select(GlassInfo::getFlowCardId,
-                GlassInfo::getGlassId,
-                GlassInfo::getTemperingLayoutId,
-                GlassInfo::getTemperingFeedSequence)
-                .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
-                .orderByAsc(GlassInfo::getTemperingLayoutId)
-                .orderByDesc(GlassInfo::getTemperingFeedSequence)
-                .last("LIMIT 1");
+            if (flowCardIds.isEmpty()) {
+                log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            log.info("娴佺▼鍗�:{}", flowCardIds);
+            LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+            queryWrapper2.select(GlassInfo::getFlowCardId,
+                    GlassInfo::getGlassId,
+                    GlassInfo::getTemperingLayoutId,
+                    GlassInfo::getTemperingFeedSequence)
+                    .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+                    .orderByAsc(GlassInfo::getTemperingLayoutId)
+                    .orderByDesc(GlassInfo::getTemperingFeedSequence)
+                    .last("LIMIT 1");
 
-        // 鏌ヨ GlassInfo 琛�
-        List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper);
-
-        // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
-        List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
-        LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
-        cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
-        cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+            // 鏌ヨ GlassInfo 琛�
+            List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+            if (glassInfos.isEmpty()) {
+                log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+                return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+            }
+            // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+            List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+            LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+            cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+            cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
 
             log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
-        // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
-        return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+            // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+            return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
         }
 
 
     }
-
-
-
-
-
-
-
-
 
 
 }
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
index 8ff0df5..820b173 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java
@@ -63,7 +63,7 @@
 //    @Value("${mes.threshold}")
     private int threshold;
 
-   // @Scheduled(fixedDelay = 1000)
+    //@Scheduled(fixedDelay = 1000)
     public void plcdownGlassTask() {
    //   PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
 //        String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue();

--
Gitblit v1.8.0