From a8e32b8a10bb462bb01f37e3b03d9d9fc3ffdee5 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 10 五月 2024 16:28:59 +0800
Subject: [PATCH] 增加上片模块线程,增加保存工程时的已保存判断

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java                            |   10 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/UpWorkstationService.java          |   12 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java                            |  160 ++++++++++
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/service/impl/UpWorkstationServiceImpl.java |   57 ++-
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java          |   17 +
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java                                   |   29 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java                       |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java                   |    5 
 hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java                    |   30 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/impl/EngineeringServiceImpl.java              |    9 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java             |   34 +
 /dev/null                                                                                                                    |  414 -------------------------
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json                                |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java                      |   20 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java                              |   88 +++++
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java                  |    2 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java                        |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java                   |   15 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java                                   |   30 +
 19 files changed, 456 insertions(+), 482 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
index 79b3b8c..7c01553 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/service/EngineeringService.java
@@ -23,4 +23,6 @@
     List<Engineering> selectEngineering(String engineeringId);
 
     void saveEngineering(List<Engineering> engineerings);
+
+    Engineering selectInitiate(Integer state);
 }
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 4825296..968cd59 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
@@ -81,6 +81,15 @@
     @Override
     public void saveEngineering(List<Engineering> engineerings) {
         this.saveBatch(engineerings);
+        //淇濆瓨閽㈠寲宸ョ▼淇℃伅
+    }
+
+    @Override
+    public  Engineering selectInitiate(Integer state) {
+        //鏌ヨ鏄惁鏈夊紑濮嬩笂鐗囩殑宸ョ▼浠诲姟
+        QueryWrapper<Engineering> wrapper = new QueryWrapper<>();
+            wrapper.eq("state", state);
+        return this.getOne(wrapper);
     }
 
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
index 222759c..6b97fc2 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/OptimizeProjectController.java
@@ -41,16 +41,16 @@
         return Result.build(200, "", glass);
     }
 
-    @ApiOperation("淇濆瓨宸ョ▼淇℃伅")
-    @PostMapping("/saveProject") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
-    public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) {
-        log.info("鑾峰彇閫夋嫨濂界殑宸ョ▼id杩涜鏌ヨ鏁版嵁鍚庝繚瀛�");
-        List<OptimizeProject> glass = optimizeProjectService.selectSaveProject(optimizeRequest);
-        log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅鍚庝繚瀛樺埌upPattenUsage琛�:{}", glass);
-        optimizeProjectService.insetupPattenUsage(glass);
-        //void insetProject(glass);
-        return Result.build(200, "", glass);
-    }
+//    @ApiOperation("淇濆瓨宸ョ▼淇℃伅")
+//    @PostMapping("/saveProject") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+//    public Result<List<OptimizeProject>> saveProject(@RequestBody OptimizeRequest optimizeRequest) {
+//        log.info("鑾峰彇閫夋嫨濂界殑宸ョ▼id杩涜鏌ヨ鏁版嵁鍚庝繚瀛�");
+//        List<OptimizeProject> glass = optimizeProjectService.selectSaveProject(optimizeRequest);
+//        log.info("鏄剧ず宸ョ▼閫夋嫨淇℃伅鍚庝繚瀛樺埌upPattenUsage琛�:{}", glass);
+//        optimizeProjectService.insetupPattenUsage(glass);
+//        //void insetProject(glass);
+//        return Result.build(200, "", glass);
+//    }
 
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
index 0fb765e..e12e67f 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/OptimizeProjectService.java
@@ -23,13 +23,13 @@
      */
     List<OptimizeProject> listByState(OptimizeRequest optimizeRequest);
     /**
-     * 鏌ヨ淇濆瓨鍒板師鐗囦娇鐢ㄨ鎯呰〃鐨勬暟鎹�
-     * @return
-     */
-    List<OptimizeProject> selectSaveProject(OptimizeRequest optimizeRequest);
-    /**
      * 灏嗗伐绋嬩俊鎭繚瀛樺埌鍘熺墖浣跨敤璇︽儏琛�
      * @return
      */
     void insetupPattenUsage(List<OptimizeProject> glass);
+    /**
+     * 灏嗗伐绋嬩俊鎭洿鏂扮姸鎬佷负宸查鍙�
+     * @return
+     */
+    void changeTask(String engineeringId, int i);
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
index 5df4ef4..20a4b32 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/OptimizeProjectServiceImpl.java
@@ -2,8 +2,8 @@
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.mes.pp.entity.OptimizeProject;
 import com.mes.pp.entity.request.OptimizeRequest;
@@ -15,7 +15,6 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -59,11 +58,15 @@
     }
 
     @Override
-    public List<OptimizeProject> selectSaveProject(OptimizeRequest optimizeRequest) {
-        log.info("灏嗗弬鏁颁紶鍏ュ埌鏌ヨ绫婚噷,宸ョ▼鍙峰仛闈炵┖鍒ゆ柇妯$硦鏌ヨ");
+    public void changeTask(String engineeringId, int state) {
+        UpdateWrapper<OptimizeProject> wrapper = new UpdateWrapper<>();
+        wrapper.eq("project_no",engineeringId)
+                .set("state",state);
+        boolean updateSuccess = this.update(wrapper);
+        log.info("宸ョ▼琛ㄦ洿鏂扮姸鎬亄}",updateSuccess);
 
-        log.info("杩斿洖宸ョ▼淇℃伅");
-        return this.baseMapper.saveProject(optimizeRequest);
     }
 
+
+
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
index ab12655..a8a3edf 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/controller/UpPattenUsageController.java
@@ -2,6 +2,8 @@
 import com.mes.engineering.entity.Engineering;
 import com.mes.engineering.service.EngineeringService;
 import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.service.OptimizeProjectService;
 import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.uppattenusage.service.UpPattenUsageService;
@@ -34,6 +36,8 @@
     private  GlassInfoService glassInfoService;
     @Autowired
     private  EngineeringService engineeringService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
     @ApiOperation("鏄剧ず姝e湪鍑虹墖鐨勫伐绋嬩俊鎭�")
     @GetMapping("/prioritylist") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
     public Result<List<UpPattenUsage>> prioritylist() {
@@ -45,16 +49,26 @@
     @ApiOperation("鐐瑰嚮閫夋嫨宸ョ▼淇濆瓨鍚庤繘琛岃皟鐢�,浼犲叆宸ョ▼鍙�")
     @GetMapping("/saveUpPattenUsage") //鏌ヨ鐜板湪涓婄墖鏈虹殑鐜荤拑淇℃伅
     public Result<Integer> saveUpPattenUsage(String engineeringId) {
-        List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
-        log.info("灏嗘煡璇㈠嚭鐨刄pPattenUsage鏁版嵁淇濆瓨鍒版暟鎹簱琛ㄩ噷");
-        upPattenUsageService.saveUpPattenUsage(upPattenUsages);
-        log.info("浠嶱P琛ㄦ煡璇lassinfo鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
-        List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
-        glassInfoService.saveGlassInfo(glassinfo);
-        log.info("浠嶱P琛ㄦ煡璇ngineering鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
-        List<Engineering> engineerings= engineeringService.selectEngineering(engineeringId);
-        engineeringService.saveEngineering(engineerings);
-        return Result.build(200, "", 200);
+        log.info("浼犲叆宸ョ▼鍙峰垽鏂槸鍚﹀凡淇濆瓨:{}", engineeringId);
+        UpPattenUsage upPattenUsage= upPattenUsageService.selectedEngineering(engineeringId);
+        if (upPattenUsage!=null){
+            log.info("宸蹭繚瀛樿繃");
+            return Result.build(200, "宸蹭繚瀛樿繃", 200);
+        }else {
+            List<UpPattenUsage> upPattenUsages = upPattenUsageService.selectSaveUpPattenUsage(engineeringId);
+            log.info("灏嗘煡璇㈠嚭鐨刄pPattenUsage鏁版嵁淇濆瓨鍒版暟鎹簱琛ㄩ噷");
+            upPattenUsageService.saveUpPattenUsage(upPattenUsages);
+            log.info("浠嶱P琛ㄦ煡璇lassinfo鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+            List<GlassInfo> glassinfo=glassInfoService.selectGlassInfo(engineeringId);
+            glassInfoService.saveGlassInfo(glassinfo);
+            log.info("浠嶱P琛ㄦ煡璇ngineering鐨勬暟鎹苟淇濆瓨鍒拌〃閲�");
+            List<Engineering> engineerings= engineeringService.selectEngineering(engineeringId);
+            engineeringService.saveEngineering(engineerings);
+            log.info("鏇存敼pp琛ㄧ姸鎬佷负宸查鍙�");
+            optimizeProjectService.changeTask(engineeringId, 200);
+            return Result.build(200, "", 200);
+        }
+
     }
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
index 37427e8..7bc799b 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/UpPattenUsageService.java
@@ -19,5 +19,10 @@
      List<UpPattenUsage> selectSaveUpPattenUsage(String engineeringId);
 
      void saveUpPattenUsage(List<UpPattenUsage> upPattenUsages);
+
+     void updateupPattenUsageState(UpPattenUsage upPattenUsage, Integer state);
+
+     UpPattenUsage selectedEngineering(String engineeringId);
+
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
index 6b46236..ecff14b 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.mes.pp.entity.OptimizeProject;
@@ -63,7 +64,7 @@
                 optimizeProject.setFilmsId( map.getGlassType());
                 optimizeProject.setWidth(map.getWidth());
                 optimizeProject.setHeight( map.getHeight());
-                optimizeProject.setThickness(map.getHeight());
+                optimizeProject.setThickness(map.getGlassThickness());
                 optimizeProject.setLayoutSequence( map.getStockId());
                 optimizeProject.setState(0);
                 // 灏嗘槧灏勫悗鐨勫璞℃坊鍔犲埌缁撴灉鍒楄〃涓�
@@ -80,7 +81,21 @@
         //淇濆瓨鍘熺墖浣跨敤璇︽儏琛�
     }
 
+    @Override
+    public void updateupPattenUsageState(UpPattenUsage upPattenUsage, Integer state) {
+        upPattenUsage.setState(state);
+        boolean updateSuccess=this.updateById(upPattenUsage);
+        log.info("鏇存柊鐘舵�亄}",updateSuccess);
+        //鏇存柊鐘舵��
+    }
 
+    @Override
+    public UpPattenUsage selectedEngineering(String engineeringId) {
+        QueryWrapper<UpPattenUsage>wrapper = new QueryWrapper<>();
+        wrapper.eq("engineering_id",engineeringId)
+                .last("limit 1");
+        return this.getOne(wrapper);
+    }
 
 
 }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
new file mode 100644
index 0000000..4f6a172
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/AppRunnerConfig.java
@@ -0,0 +1,29 @@
+package com.mes;
+
+import com.mes.common.S7object;
+import com.mes.job.PlcLoadGlassTask;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+@Order(1)
+
+public class AppRunnerConfig implements ApplicationRunner {
+
+    private final PlcLoadGlassTask plcLoadGlassTask;
+
+    public AppRunnerConfig(PlcLoadGlassTask plcLoadGlassTask) {
+        this.plcLoadGlassTask = plcLoadGlassTask;
+    }
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        log.info("鍚姩瀹屾垚");
+        S7object.getinstance().start();
+
+    }
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
index 2634690..593308c 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/LoadGlassModuleApplication.java
@@ -5,6 +5,7 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 /**
@@ -16,6 +17,7 @@
 @SpringBootApplication
 @EnableSwagger2
 @EnableDiscoveryClient
+@EnableScheduling
 @MapperScan(basePackages = "com.mes.*.mapper")
 public class LoadGlassModuleApplication {
     public static void main(String[] args) {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/JsonFile/PlcLoadGlass.json
deleted file mode 100644
index eed5688..0000000
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/JsonFile/PlcLoadGlass.json
+++ /dev/null
@@ -1,414 +0,0 @@
-{
-   "plcAddressBegin":"DB14.0",
-   "plcAddressLenght":"208",
-   "dataType":"word",
-   "parameteInfor":[
-      {
-         "codeId": "PLCToMES",  
-         "addressIndex":"0",
-         "addressLenght":"2", 
-         "ratio":"1", 
-         "unit":"m/min"    
-      },
-      {
-          "codeId": "IDStatus1",
-          "addressIndex":"2",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"      
-       },
-       {
-          "codeId": "IDStatus2",
-          "addressIndex":"4",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"m/min"
-       },
-       {
-          "codeId": "IDStatus3",
-          "addressIndex":"6",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "IDStatus4",
-          "addressIndex":"8",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "IDStatus5",
-          "addressIndex":"10",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-       ,
-       {
-          "codeId": "IDStatus6",
-          "addressIndex":"12",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "StautsID1",
-          "addressIndex":"14",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-       ,
-       {
-          "codeId": "StautsID2",
-          "addressIndex":"16",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-       ,
-       {
-          "codeId": "StautsID3",
-          "addressIndex":"18",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-       ,
-       {
-          "codeId": "StautsID4",
-          "addressIndex":"20",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-       ,
-       {
-          "codeId": "StautsID5",
-          "addressIndex":"22",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "StautsID6",
-          "addressIndex":"24",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "GaToMES",
-          "addressIndex":"26",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "Height",
-          "addressIndex":"28",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "width",
-          "addressIndex":"30",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "ExportTOMES1",
-          "addressIndex":"32",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       }
-       ,
-       {
-          "codeId": "ExportToMES2",
-          "addressIndex":"34",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       } ,
-       {
-          "codeId": "MESToPLC",
-          "addressIndex":"36",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       } ,
-       {
-          "codeId": "MESID1",
-          "addressIndex":"38",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       } ,
-       {
-          "codeId": "MESID2",
-          "addressIndex":"54",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "MESID3",
-          "addressIndex":"70",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "MESID4",
-          "addressIndex":"86",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "MESID5",
-          "addressIndex":"102",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "MESID6",
-          "addressIndex":"118",
-          "addressLenght":"14",
-          "ratio":"1",
-          "unit":"mm/S"
-       },
-       {
-          "codeId": "MESToPLCStart1",
-          "addressIndex":"134",
-          "addressLenght":"2",
-          "ratio":"1",
-          "unit":"mm/S"
-       },{
-         "codeId": "MESToPLCStart2",
-         "addressIndex":"136",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStart3",
-         "addressIndex":"138",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      }
-      ,{
-         "codeId": "MESToPLCStart4",
-         "addressIndex":"140",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      }
-      ,{
-         "codeId": "MESToPLCStart5",
-         "addressIndex":"142",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      }
-      ,{
-         "codeId": "MESToPLCStart6",
-         "addressIndex":"144",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCTarget1",
-         "addressIndex":"146",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCTarget2",
-         "addressIndex":"148",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCTarget3",
-         "addressIndex":"150",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCTarget4",
-         "addressIndex":"152",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCTarget5",
-         "addressIndex":"154",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCTarget6",
-         "addressIndex":"156",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStatus1",
-         "addressIndex":"158",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStatus2",
-         "addressIndex":"160",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStatus3",
-         "addressIndex":"162",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStatus4",
-         "addressIndex":"164",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStatus5",
-         "addressIndex":"166",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToPLCStatus6",
-         "addressIndex":"168",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "MESToGaStatus",
-         "addressIndex":"170",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "A01Err",
-         "addressIndex":"172",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "A02Err",
-         "addressIndex":"174",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "B01Err",
-         "addressIndex":"176",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "C01Err",
-         "addressIndex":"178",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "C02Err",
-         "addressIndex":"180",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "ErrSpace1",
-         "addressIndex":"182",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "ErrSpace2",
-         "addressIndex":"184",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "ErrSpace3",
-         "addressIndex":"186",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "B01Position",
-         "addressIndex":"188",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "C01Position",
-         "addressIndex":"190",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "C02Position",
-         "addressIndex":"192",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "DeviceState",
-         "addressIndex":"194",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "AllFVRun",
-         "addressIndex":"196",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "A01State",
-         "addressIndex":"198",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "A02State",
-         "addressIndex":"200",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "B01State",
-         "addressIndex":"202",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "C01State",
-         "addressIndex":"204",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      },{
-         "codeId": "C02State",
-         "addressIndex":"206",
-         "addressLenght":"2",
-         "ratio":"1",
-         "unit":"mm/S"
-      }
-   ]
-}
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/S7object.java
index 45e5467..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,24 +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;
+
+
 
 /**
  * @Author : zhoush
  * @Date: 2024/4/9 15:13
  * @Description:
  */
-public class S7object {
+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);
         }
     }
 
@@ -33,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/common/WebSocketServer.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java
new file mode 100644
index 0000000..5fabafa
--- /dev/null
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/common/WebSocketServer.java
@@ -0,0 +1,160 @@
+package com.mes.common;
+
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.stereotype.Component;
+
+import javax.websocket.*;
+import javax.websocket.server.PathParam;
+import javax.websocket.server.ServerEndpoint;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+@ServerEndpoint(value = "/api/talk/{username}")
+@Component("webSocketServer")
+public class WebSocketServer {
+
+
+    public static ConfigurableApplicationContext applicationContext;
+
+    // 瑙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/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/PlcLoadGlassTask.java
index d3c4324..4d3f240 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
@@ -1,33 +1,113 @@
 package com.mes.job;
 
 import cn.hutool.json.JSONObject;
+import com.mes.common.S7object;
+import com.mes.device.PlcParameterObject;
+import com.mes.engineering.entity.Engineering;
+import com.mes.engineering.service.EngineeringService;
+import com.mes.uppattenusage.entity.UpPattenUsage;
+import com.mes.uppattenusage.service.UpPattenUsageService;
+import com.mes.workstation.entity.UpWorkstation;
 import com.mes.workstation.service.UpWorkstationService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
+/**
+ * @author SNG-010
+ */
 @Component
 @Slf4j
 public class PlcLoadGlassTask {
 
     @Autowired
     private UpWorkstationService upWorkstationService;
+    @Autowired
+    private EngineeringService  engineeringService;
+    @Autowired
+    private UpPattenUsageService upPattenUsageService;
 
-
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
     /**
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
+
     @Scheduled(fixedDelay = 300)
     public void plcLoadGlassTask() throws InterruptedException {
-        JSONObject jsonObject = new JSONObject();
         try {
-            Thread.sleep(300);
-            upWorkstationService.selectPriority();
+            log.info("寮�濮嬩笂鐗�");
+            //鑾峰彇鏄惁鏈変笂鐗囪姹�
+            String loadRequest = plcParameterObject.getPlcParameter("loadRequest").getValue();
+            //鍒ゆ柇寮�濮嬩笂鐗囩殑宸ョ▼鍙�
+            Engineering engineering=engineeringService.selectInitiate(1);
+            if("1".equals(loadRequest)&&engineering!=null){
+                UpPattenUsage upPattenUsage=upWorkstationService.selectPriority(engineering);
+                log.info("褰撴湁璇锋眰鏃舵煡璇㈠綋鍓嶄笂鐗囬『搴忕殑鐜荤拑淇℃伅{}",upPattenUsage);
+                UpWorkstation upwork=upWorkstationService.selectworkstation(upPattenUsage);
+                log.info("绗﹀悎鐨勫昂瀵哥殑宸ヤ綅鐜荤拑锛歿}",upwork);
+                if(upwork!=null){
+                    int workId=upwork.getWorkstationId();//宸ヤ綅id
+                    double width=upwork.getPatternWidth();//瀹藉害
+                    double height=upwork.getPatternHeight();//楂樺害
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("WorkId").getAddress(),workId);
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassWidth").getAddress(), (long) width);
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("GlassHeight").getAddress(), (long) height);
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlc").getAddress(),1);
+                    //鍑忓皯宸ヤ綅鏁伴噺
+                    upWorkstationService.reduceWorkstationNumber(upwork);
+                    //瀹屾垚涓婄墖琛ㄧ姸鎬�
+                    upPattenUsageService.updateupPattenUsageState(upPattenUsage,1);
+
+                }
+            }
+            //鑾峰彇鏄惁鏈夋眹鎶�
+            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("鏀跺埌姹囨姤鏈畬鎴愪换鍔�");
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
+                } else if ("3".equals(loadStatus)) {
+                    log.info("鏀跺埌姹囨姤鐜荤拑鐮存崯");
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 1);
+                } else {
+                    log.info("鏀跺埌姹囨姤娓�0鐘舵��");
+                    S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(), 0);
+                }
+            }
+            //鎵ц鍚庝紤鐪�300姣
+            //Thread.sleep(300);
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
+//    @Scheduled(fixedDelay = 300)
+//    public void plcLoadGlassOver() throws InterruptedException {
+//        try {
+//            //鑾峰彇鏄惁鏈夋眹鎶�
+//            String loadStatus = plcParameterObject.getPlcParameter("PlcStatus").getValue();
+//            if ("1".equals(loadStatus)){
+//                log.info("鏀跺埌姹囨姤浠诲姟瀹屾垚");
+//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1);
+//            }else if ("2".equals(loadStatus)) {
+//                log.info("鏀跺埌姹囨姤鏈畬鎴愪换鍔�");
+//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1);
+//            }else if("3".equals(loadStatus)){
+//                log.info("鏀跺埌姹囨姤鐜荤拑鐮存崯");
+//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),1);
+//            }else {
+//                log.info("鏀跺埌姹囨姤娓�0鐘舵��");
+//                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("MesToPlcStatus").getAddress(),0);
+//            }
+//
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
index 74f6cce..b5265de 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/workstation/entity/UpWorkstation.java
@@ -56,7 +56,7 @@
     /**
      * 鍘熺墖楂�
      */
-    private Double patternHeigth;
+    private Double patternHeight;
 
     /**
      * 鍘熺墖鍘氬害
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
index 4c2638b..ca6f827 100644
--- 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
@@ -1,6 +1,8 @@
 package com.mes.workstation.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.engineering.entity.Engineering;
+import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.workstation.entity.UpWorkSequence;
 import com.mes.workstation.entity.UpWorkstation;
 
@@ -17,10 +19,12 @@
 
 
 
-    //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
-    UpWorkSequence selectPriority();
-
-    //鏌ヨ姝e湪杩涜鐨勫伐绋�
+    //鍒ゆ柇浼樺厛鍚哥墖鐜荤拑
+    UpPattenUsage selectPriority(Engineering engineering);
+    //鏌ヨ姝e湪杩涜鐨勫崟鐗囦俊鎭�
+    UpWorkstation selectworkstation(UpPattenUsage upPattenUsage);
+    //鍑忓皯宸ヤ綅鏁伴噺
+    void reduceWorkstationNumber(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
index ffd6491..1e24d13 100644
--- 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
@@ -1,7 +1,9 @@
 package com.mes.workstation.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.engineering.entity.Engineering;
 import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import com.mes.workstation.entity.UpWorkSequence;
@@ -27,36 +29,47 @@
 public class UpWorkstationServiceImpl extends ServiceImpl<UpWorkstationMapper, UpWorkstation> implements UpWorkstationService {
     @Resource
     UpPattenUsageMapper upPattenUsageMapper;
-    public static final String DB_100_10 = "DB_100_10";
-
-    //鍒ゆ柇鏄惁鍙互鍚哥墖杩涜浠诲姟
-    public boolean isCanLoadGlass() {
-        String loadstart = "鍚哥墖淇″彿";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
-        return "1".equals(loadstart);
-
-    }
-    //鏄剧ず姝e湪杩涜浠诲姟鐨勫伐绋嬩俊鎭�
+    @Resource
+    UpWorkstationMapper upWorkstationMapper;
 
 
     //鍒ゆ柇浼樺厛鍚哥墖浣嶇疆鍚庡彂閫佸嚭鐗囦换鍔�
 
-    public UpWorkSequence selectPriority() {
-        UpWorkSequence upwork= this.baseMapper.selectPriority(1);
-        String start = "1";//plcmes.getPlcParameter("鍚哥墖淇″彿").getValue();
-        UpPattenUsage uplist=new UpPattenUsage();
-        if(start.equals("1")){
-            //鍙戦�佸嚭鐗囦换鍔�
-            UpdateWrapper<UpPattenUsage> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.eq("state",1).last("LIMIT 1");
-            uplist= upPattenUsageMapper.selectOne(updateWrapper);
-            log.info("鏌ヨ鍑烘湰娆″嚭鐗囩殑鐜荤拑淇℃伅[]",uplist);
-        }
-        return upwork;
+    public UpPattenUsage selectPriority(Engineering engineering) {
+        QueryWrapper<UpPattenUsage> wrapper=new QueryWrapper<>();
+        wrapper.eq("state", 0)
+                .eq("engineering_id",engineering.getEngineerId())
+                .orderByAsc("layout_sequence")
+                .last("limit 1");
+        return upPattenUsageMapper.selectOne(wrapper);
+    }
+
+    //鍒ゆ柇宸ヤ綅鏄惁鏈夌鍚堟潯浠剁殑鐜荤拑
+    @Override
+    public UpWorkstation selectworkstation(UpPattenUsage upPattenUsage) {
+        QueryWrapper<UpWorkstation> wrapper = new QueryWrapper<>();
+        wrapper.eq("pattern_width", upPattenUsage.getWidth())
+                .eq("pattern_height", upPattenUsage.getHeight())
+                .eq("pattern_thickness", upPattenUsage.getThickness())
+                .eq("films_id", upPattenUsage.getFilmsId())
+                .gt("number", 0)
+                .orderByAsc("number")
+                .last("limit 1");
+        return this.baseMapper.selectOne(wrapper);
+    }
+
+    @Override
+    public void reduceWorkstationNumber(UpWorkstation upwork) {
+        UpdateWrapper<UpWorkstation> wrapper = new UpdateWrapper<>();
+        wrapper.eq("id", upwork.getWorkstationId())
+                .setSql("number = number - 1");
+        boolean updateResult = upWorkstationMapper.update(null, wrapper) > 0;
+        log.info("鍑忓皯宸ヤ綅鏁伴噺{}",updateResult);
+
     }
 
     /**
      * 澧炲姞浜哄伐杈撳叆鐨勫伐浣嶇幓鐠冧俊鎭�/鍒犻櫎浜哄伐鎼蛋鐨勭幓鐠冧俊鎭�
-     * @param upwork
      */
     @Override
     public void updateGlassMessage(UpWorkstation upwork) {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
index d2804e1..1a32fde 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/JsonFile/PlcLoadGlass.json
@@ -4,7 +4,7 @@
   "dataType":"word",
   "parameteInfor":[
     {
-      "codeId": "PlcToMes",
+      "codeId": "loadRequest",
       "addressIndex":"0",
       "addressLenght":"2",
       "ratio":"1",
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
index d148295..c4d40db 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/test/java/com/mes/LoadGlassModuleApplicationTest.java
@@ -5,8 +5,11 @@
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.pp.mapper.OptimizeProjectMapper;
+import com.mes.pp.service.OptimizeProjectService;
 import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.uppattenusage.service.impl.UpPattenUsageServiceImpl;
+import com.mes.workstation.entity.UpWorkstation;
+import com.mes.workstation.service.UpWorkstationService;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,6 +37,10 @@
     private GlassInfoService glassInfoService;
     @Autowired
     private EngineeringService engineeringService;
+    @Autowired
+    private UpWorkstationService workstationService;
+    @Autowired
+    private OptimizeProjectService optimizeProjectService;
     @Test
     public void test() {
 //        List<OptimizeProject> list = optimizeProjectMapper.saveProject("P24032204");
@@ -48,9 +55,18 @@
 
     @Test
     public void testFindPa() {
-        List<UpPattenUsage> glass = upPattenUsageService.selectSaveUpPattenUsage("P24032204");
-        log.info("瀹屾暣璺緞锛歿}", Arrays.asList(glass));
+        Engineering  engineering= engineeringService.selectInitiate(1);
+        log.info("寮�濮嬩笂鐗囩殑宸ョ▼锛歿}", Arrays.asList(engineering));
+        UpPattenUsage upPattenUsage = workstationService.selectPriority(engineering);
+        log.info("涓婄墖椤哄簭锛歿}", Arrays.asList(upPattenUsage));
+        UpWorkstation glass2=workstationService.selectworkstation(upPattenUsage);
+        log.info("绗﹀悎鐨勫伐浣嶇幓鐠儃}",glass2);
+        workstationService.reduceWorkstationNumber(glass2);
+        //鍑忓皯鏁伴噺
+        upPattenUsageService.updateupPattenUsageState(upPattenUsage,1);
+        //鏇存柊鐘舵��
     }
+
     @Test
     public  void  textglassinfo(){
         List<GlassInfo> glass= glassInfoService.selectGlassInfo("P24032204");
@@ -63,4 +79,14 @@
         engineeringService.saveEngineering(glass);
         log.info("glassinfo锛歿}", Arrays.asList(glass));
     }
+    @Test
+    public  void  textengineering2(){
+        //鏇存柊宸ョ▼琛ㄧ姸鎬佷负宸查鍙�
+        optimizeProjectService.changeTask("P24050801",200);
+    }
+    @Test
+    public  void  textengineering3(){
+        //鍒ゆ柇鏄惁宸蹭繚瀛樿繃宸ョ▼鍙峰埌涓婄墖琛�
+        upPattenUsageService.selectedEngineering("P24050801");
+    }
 }

--
Gitblit v1.8.0