From dcdfc93b50febf61301832d91dfcddcfa1ca5403 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期三, 14 五月 2025 14:06:36 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/ScaleThread.java |   84 ++++++++++++++++++++++++++++++-----------
 1 files changed, 61 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/ScaleThread.java b/src/main/java/com/zy/core/thread/ScaleThread.java
index 0dcae31..e630268 100644
--- a/src/main/java/com/zy/core/thread/ScaleThread.java
+++ b/src/main/java/com/zy/core/thread/ScaleThread.java
@@ -7,9 +7,13 @@
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.DeviceErrorService;
+import com.zy.core.DevpThread;
 import com.zy.core.Slave;
 import com.zy.core.ThreadHandler;
 import com.zy.core.cache.OutputQueue;
+import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.protocol.StaProtocol;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 
@@ -49,29 +53,53 @@
                 byte[] read = read(8, 100);
                 if (null != read) {
                     String s = new String(read);
-                    if (!Cools.isEmpty(s) && s.startsWith("=")) {
-                        scale = Double.parseDouble(s.substring(1));
+                    if (!Cools.isEmpty(s) && s.startsWith("\u0002+")) {
+//                    if (!Cools.isEmpty(s) && s.startsWith("=")) {
+                        scale = Double.parseDouble(s.substring(1))/100;
 
+//                        System.out.println("scale:"+scale+ "ip:"+slave.getIp());
+//                        String substring = s.substring(1);
+//                        String s1 = new StringBuilder(substring).reverse().toString();//閫嗗簭
+//                        scale = Double.parseDouble(s1);
                         //灏嗙О閲嶉噸閲忓啓鍏ヨ澶囧熀纭�鏁版嵁涓殑gross_wt瀛楁
-                        if(scale > 20) {
-                            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
-                            Integer staNo = slave.getId() == 1 ? 101 : 201;
-                            BasDevp basDevp = basDevpService.selectById(staNo);
-                            if(!Cools.isEmpty(basDevp)) {
-                                basDevp.setGrossWt(scale);
-                                if (null != basDevpService && !basDevpService.updateById(basDevp)) {
-                                    throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+//                        if(scale > 20) {
+                            try{
+                                // 鑾峰彇绔欎俊鎭�
+                                DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, slave.getDevpPlcId());
+                                StaProtocol staProtocol = devpThread.getStation().get(slave.getStaNo());
+                                if (staProtocol != null) {
+                                    devpThread.setGrossWt(staProtocol.getSiteId(), scale);
+
+                                    JSONObject jsonObject = new JSONObject();
+                                    jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
+                                    jsonObject.put("id", slave.getStaNo());
+                                    jsonObject.put("scale", scale);
+                                    if (OutputQueue.SCALE.size() >= 32) {
+                                        OutputQueue.SCALE.poll();
+                                    }
+                                    OutputQueue.SCALE.offer(jsonObject);
                                 }
-                                JSONObject jsonObject = new JSONObject();
-                                jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
-                                jsonObject.put("id", staNo);
-                                jsonObject.put("scale", scale);
-                                if (OutputQueue.SCALE.size() >= 32) {
-                                    OutputQueue.SCALE.poll();
-                                }
-                                OutputQueue.SCALE.offer(jsonObject);
+                            } catch (Exception e){
+                                log.error("绉伴噸妯″潡寮傚父"+e .getMessage());
                             }
-                        }
+//                            BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
+//                            BasDevp basDevp = basDevpService.selectById(slave.getStaNo());
+//                            if(!Cools.isEmpty(basDevp)) {
+//                                basDevp.setGrossWt(scale);
+//                                if (null != basDevpService && !basDevpService.updateById(basDevp)) {
+//                                    throw new Exception("鏇存柊鏁版嵁搴撴暟鎹け璐�");
+//                                }
+//                                JSONObject jsonObject = new JSONObject();
+//                                jsonObject.put("time", DateUtils.convert(new Date(), DateUtils.yyyyMMddHHmmss_F));
+//                                jsonObject.put("id", slave.getStaNo());
+//                                jsonObject.put("scale", scale);
+//                                if (OutputQueue.SCALE.size() >= 32) {
+//                                    OutputQueue.SCALE.poll();
+//                                }
+//                                OutputQueue.SCALE.offer(jsonObject);
+//
+//                            }
+//                        }
                     }
                 }
                 Thread.sleep(100);
@@ -94,13 +122,23 @@
             dataOutputStream = new DataOutputStream(socket.getOutputStream());
             dataInputStream = new DataInputStream(socket.getInputStream());
 //            log.info("鏉$爜鎵弿浠繛鎺ユ垚鍔� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-            deviceErrorService.deleteDeviceError("scale", slave.getId());
+            try{
+                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+                deviceErrorService.deleteDeviceError("devp", slave.getId());
+            } catch (Exception e){
+                log.error("e:"+e.getMessage());
+            }
         } catch (Exception e) {
             socket = null;
             log.error("纾呯Г杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
-            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
-            deviceErrorService.addDeviceError("scale", slave.getId(), "纾呯Г杩炴帴澶辫触");
+//            DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+//            deviceErrorService.addDeviceError("scale", slave.getId(), "纾呯Г杩炴帴澶辫触");
+            try{
+                DeviceErrorService deviceErrorService = SpringUtils.getBean(DeviceErrorService.class);
+                deviceErrorService.deleteDeviceError("devp", slave.getId());
+            } catch (Exception e1){
+                log.error("e:"+e1.getMessage());
+            }
             return false;
         }
         return true;

--
Gitblit v1.9.1