From 47c19d0819ed29c9e87f914ce8109128a15a70e8 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 09 一月 2025 16:13:08 +0800
Subject: [PATCH] 1、大理片笼详情表新增旋转角度字段 2、原片仓储+上片联调,解决调试过程中的异常情况 3、上片新增定时任务用于扫描正在执行中的工程是否全部上片完成,及完成后的处理

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java               |   11 ++++-
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                            |    6 ++-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java    |    3 +
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java                                 |   46 ++++++++++++----------
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java |    6 +-
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java                                |   26 ++++++++++++-
 hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml                                   |    0 
 7 files changed, 67 insertions(+), 31 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index ea0cda4..26f373f 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -232,11 +232,13 @@
 
     /**
      * 鍘熺墖浠撳偍浠诲姟鐘舵��
-     * 鏂板缓0
-     * 宸插畬鎴�1
+     * 鏂板缓 0
+     * 杩愯涓� 1
+     * 宸插畬鎴�2
      */
     public static final Integer ENGINEERING_NEW = 0;
     public static final Integer ENGINEERING_RUNNING = 1;
+    public static final Integer ENGINEERING_SUCCESS = 2;
 
     /**
      * 鍘熺墖浠撳偍浠诲姟绫诲瀷
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
index d370c64..11e0d09 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -177,9 +177,9 @@
                 .createTime(new Date()).build();
         rawGlassStorageTaskService.save(task);
         List<ReadWriteEntity> list = new ArrayList<>();
-        list.add(generateReadWriteEntity("PLC.CC.taskWord", 1));
-        list.add(generateReadWriteEntity("PLC.CC.startSlot", startSlot));
-        list.add(generateReadWriteEntity("PLC.CC.endSlot", endSlot));
+        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+        list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+        list.add(generateReadWriteEntity("CC.CC.endSlot", endSlot));
         miloService.writeToOpcWord(list);
         return Boolean.TRUE;
     }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml b/hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
similarity index 100%
rename from hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
rename to hangzhoumesParent/common/servicebase/src/main/resources/mapper/LoadGlassDeviceTaskMapper.xml
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
index da3d47e..1f49bde 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -68,6 +68,9 @@
     @ApiModelProperty(value = "鍘氬害", position = 11)
     private double thickness;
 
+    @ApiModelProperty(value = "鏃嬭浆瑙掑害", position = 12)
+    private Integer angle;
+
     /**
      * x鍧愭爣
      */
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
index 2b7be5c..640cf2f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -231,6 +231,7 @@
                 cageDetails.setState(Const.GLASS_STATE_NEW);
                 cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
                 cageDetails.setSequence(bigStorageDTO.getSlotSequence());
+                cageDetails.setAngle((int) info.getAngle());
                 cageDetails.setGap(glassGap);
                 cageDetails.setFilmsId(info.getFilmsid());
                 cageDetails.setId(null);
@@ -255,6 +256,7 @@
             cageDetails.setDeviceId(0);
             cageDetails.setSequence(0);
             cageDetails.setGap(glassGap);
+            cageDetails.setAngle((int) info.getAngle());
             cageDetails.setFilmsId(info.getFilmsid());
             cageDetails.setId(null);
             bigStorageCageDetailsService.save(cageDetails);
@@ -690,9 +692,12 @@
      */
     private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfoByVirtualSlot(List<T> list, String tableName, int targetSlot, int state, int taskType) {
         //浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
-        List<String> glassIdList = bigStorageGlassRelationInfoService.queryNeedOutGlassId(
-                list.get(0).getEngineerId(), list.get(0).getTemperingLayoutId(), list.get(0).getTemperingFeedSequence());
-        List<T> outGlassList = list.stream().filter(e -> glassIdList.contains(e.getGlassId())).collect(Collectors.toList());
+        List<T> outGlassList = list;
+        if (!THROUGH_SLOT.equals(list.get(0).getSlot())) {
+            List<String> glassIdList = bigStorageGlassRelationInfoService.queryNeedOutGlassId(
+                    list.get(0).getEngineerId(), list.get(0).getTemperingLayoutId(), list.get(0).getTemperingFeedSequence());
+            outGlassList = list.stream().filter(e -> glassIdList.contains(e.getGlassId())).collect(Collectors.toList());
+        }
         Assert.isFalse(CollectionUtil.isEmpty(outGlassList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
         log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", outGlassList.size());
         List<BigStorageCageTask> bigStorageCageTaskList = outGlassList.stream()
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
index f2d1129..d4ba068 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -71,22 +71,22 @@
 
     @Scheduled(fixedDelay = 1000)
     public void rawStorageTask() throws Exception {
-        ReadWriteEntity requestWord = miloService.readFromOpcUa("PLC.CC.request");
-        ReadWriteEntity confireWord = miloService.readFromOpcUa("PLC.CC.confirmation");
-        ReadWriteEntity reportWord = miloService.readFromOpcUa("PLC.CC.reportWord");
-        ReadWriteEntity taskWord = miloService.readFromOpcUa("PLC.CC.taskWord");
+        ReadWriteEntity requestWord = miloService.readFromOpcUa("CC.CC.request");
+        ReadWriteEntity confireWord = miloService.readFromOpcUa("CC.CC.confirmation");
+        ReadWriteEntity reportWord = miloService.readFromOpcUa("CC.CC.reportWord");
+        ReadWriteEntity taskWord = miloService.readFromOpcUa("CC.CC.taskWord");
         String requestValue = requestWord.getValue() + "";
         if ("0".equals(requestValue)) {
             if ("1".equals(confireWord.getValue() + "") && "0".equals(reportWord.getValue() + "")) {
                 List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("PLC.CC.confirmation", 0));
+                list.add(generateReadWriteEntity("CC.CC.confirmation", 0));
                 miloService.writeToOpcWord(list);
             }
             if ("1".equals(taskWord.getValue() + "")) {
                 List<ReadWriteEntity> list = new ArrayList<>();
-                list.add(generateReadWriteEntity("PLC.CC.taskWord", 0));
-                list.add(generateReadWriteEntity("PLC.CC.startSlot", 0));
-                list.add(generateReadWriteEntity("PLC.CC.endSlot", 0));
+                list.add(generateReadWriteEntity("CC.CC.taskWord", 0));
+                list.add(generateReadWriteEntity("CC.CC.startSlot", 0));
+                list.add(generateReadWriteEntity("CC.CC.endSlot", 0));
                 miloService.writeToOpcWord(list);
             }
             return;
@@ -122,7 +122,7 @@
 
     @Scheduled(fixedDelay = 1000)
     public void rawStorageInCar() throws Exception {
-        ReadWriteEntity entity = miloService.readFromOpcUa("PLC.CC.inCar");
+        ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.inCar");
         String value = entity.getValue() + "";
         if (!"1".equals(value)) {
             log.info("澶ц溅涓婃病鏈夋灦瀛�");
@@ -142,7 +142,7 @@
 
     @Scheduled(fixedDelay = 1000)
     public void rawStorageFinish() throws Exception {
-        ReadWriteEntity entity = miloService.readFromOpcUa("PLC.CC.reportWord");
+        ReadWriteEntity entity = miloService.readFromOpcUa("CC.CC.reportWord");
         String value = entity.getValue() + "";
         if ("0".equals(value)) {
             log.info("褰撳墠浠诲姟鏈眹鎶ワ紝缁撴潫鏈浠诲姟");
@@ -207,7 +207,7 @@
 
         }
         List<ReadWriteEntity> list = new ArrayList<>();
-        list.add(generateReadWriteEntity("PLC.CC.confirmation", 1));
+        list.add(generateReadWriteEntity("CC.CC.confirmation", 1));
         miloService.writeToOpcWord(list);
     }
 
@@ -266,10 +266,10 @@
         rawGlassStorageDetailsService.generateTask(startSlot, lefting, startSlot, rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
 
 //        List<ReadWriteEntity> list = new ArrayList<>();
-//        list.add(generateReadWriteEntity("PLC.CC.taskWord", 1));
-//        list.add(generateReadWriteEntity("PLC.CC.taskSending", 1));
-//        list.add(generateReadWriteEntity("PLC.CC.startSlot", startSlot));
-//        list.add(generateReadWriteEntity("PLC.CC.endSlot", lefting));
+//        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+//        list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+//        list.add(generateReadWriteEntity("CC.CC.startSlot", startSlot));
+//        list.add(generateReadWriteEntity("CC.CC.endSlot", lefting));
 //        miloService.writeToOpcWord(list);
 
         //淇敼鍑虹墖浠诲姟鐘舵��
@@ -300,10 +300,10 @@
         rawGlassStorageDetailsService.generateTask(details.getSlot(), details.getShelf(), details.getShelf(),
                 details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_IN);
 //        List<ReadWriteEntity> list = new ArrayList<>();
-//        list.add(generateReadWriteEntity("PLC.CC.taskWord", 1));
-//        list.add(generateReadWriteEntity("PLC.CC.taskSending", 1));
-//        list.add(generateReadWriteEntity("PLC.CC.startSlot", details.getSlot()));
-//        list.add(generateReadWriteEntity("PLC.CC.endSlot", details.getShelf()));
+//        list.add(generateReadWriteEntity("CC.CC.taskWord", 1));
+//        list.add(generateReadWriteEntity("CC.CC.taskSending", 1));
+//        list.add(generateReadWriteEntity("CC.CC.startSlot", details.getSlot()));
+//        list.add(generateReadWriteEntity("CC.CC.endSlot", details.getShelf()));
 //        miloService.writeToOpcWord(list);
         //鐢熸垚宸ヤ綅浠诲姟锛屽皢鍚婅浣嶇殑鐜荤拑鐘舵�佹敼浣嶈繘绗间腑
         //淇敼鍚婅浣嶇殑鍘熺墖鐘舵�佷负103 鍑虹墖涓�
@@ -390,11 +390,15 @@
                     log.info("2鍙蜂笂鐗囦綅鐜荤拑灏哄涓嶄竴鑷达紝1鍙蜂笂鐗囦綅鐢熸垚璋冨害浠诲姟");
                     //鎸夌収灏哄鍙婃暟閲忚幏鍙栨暟閲忔渶鎺ヨ繎鐨勬牸瀛愪俊鎭�
                     RawGlassStorageDetails rawDetails = getRawGlassStorageDetailsBySize(usageVOS.get(0), usageVOS.size());
+                    if(null == rawDetails){
+                        log.info("浠撳簱鍐呮棤闇�瑕佷笂鏋剁殑鐜荤拑");
+                        return Boolean.FALSE;
+                    }
                     rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                     //缁撴潫璋冨害浠诲姟 淇敼宸ヤ綅鐘舵��(璧峰浣嶏級鐘舵�佷负103 RAW_GLASS_STATE_RUNNING 浠诲姟瀹屾垚鍚庡皢鐘舵�佹敼涓�101  鐩爣浣嶆柊澧炰竴鏉℃暟鎹紝鏋跺瓙鍙蜂负锛堣捣濮嬩綅锛�
                     rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                             .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
-                            .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
+                            .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
                     return Boolean.TRUE;
                 }
             } else {
@@ -404,7 +408,7 @@
                 rawGlassStorageDetailsService.generateTask(rawDetails.getSlot(), loadStation.get(0), rawDetails.getShelf(), rawDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                 rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                         .eq(RawGlassStorageDetails::getSlot, rawDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
-                        .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
+                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
                 return Boolean.TRUE;
             }
         } else {
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
index 6782761..80ea1bf 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/job/OpcLoadGlassTask.java
@@ -10,6 +10,8 @@
 import com.mes.opctask.entity.LoadGlassDeviceTaskHistory;
 import com.mes.opctask.service.LoadGlassDeviceTaskHistoryService;
 import com.mes.opctask.service.LoadGlassDeviceTaskService;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.service.OptimizeProjectService;
 import com.mes.rawglassdetails.entity.RawGlassStorageDetails;
 import com.mes.rawglassdetails.service.RawGlassStorageDetailsService;
 import com.mes.uppattenusage.entity.UpPattenUsage;
@@ -48,6 +50,8 @@
     private LoadGlassDeviceTaskHistoryService loadGlassDeviceTaskHistoryService;
     @Resource
     private UpPattenUsageMapper upPattenUsageMapper;
+    @Resource
+    private OptimizeProjectService optimizeProjectService;
 
     private static final List<Integer> LOAD_STATION_01 = Arrays.asList(101, 102);
     private static final List<Integer> LOAD_STATION_02 = Arrays.asList(103, 104);
@@ -58,7 +62,6 @@
     private static final String LOAD_GLASS_DEVICE_ONE_TASK = "load_glass_device_one_task";
 
     private static final String LOAD_GLASS_DEVICE_TWO_TASK = "load_glass_device_two_task";
-
 
     //璁惧id   涓婄墖浣嶄俊鎭�   浠诲姟琛ㄤ笉涓�鑷�   鍘嗗彶浠诲姟琛ㄥ叕鐢ㄤ竴寮� 鏂板浠诲姟/浠诲姟缁撴潫锛屽悗浼氬湪鍘嗗彶琛ㄤ腑鏂板涓�鏉¤褰曞苟鍦ㄧ粨鏉熷悗鏇存柊浠诲姟  涓�涓换鍔″嵆鍙�
     //瀹氭椂浠诲姟鎵弿涓婄墖浣嶆湁娌℃湁鍘熺墖
@@ -84,6 +87,25 @@
     @Scheduled(fixedDelay = 300)
     public void opcLoadGlassTwoFinish() {
         opcLoadGlassFinishChid(LOAD_GLASS_DEVICE_TWO_TASK, LOAD_GLASS_TWO_DEVICE);
+    }
+
+    /**
+     * 瀹氭椂浠诲姟鎵爜宸插畬鎴愪笂鐗囩殑宸ョ▼锛屽皢宸ョ▼鐘舵�佹敼涓哄凡瀹屾垚锛屽悓姝p琛ㄧ殑宸ョ▼琛紝鐘舵�佹敼涓�300
+     */
+    @Scheduled(fixedDelay = 3000)
+    public void updateEngineerState() {
+        log.info("淇敼宸插畬鎴愬伐绋嬬姸鎬佷换鍔″紑濮嬫墽琛�");
+        List<Engineering> engineerings = engineeringMapper.selectList(new LambdaQueryWrapper<Engineering>().eq(Engineering::getState, Const.ENGINEERING_RUNNING));
+        for (Engineering engineering : engineerings) {
+            Integer count = upPattenUsageMapper.selectCount(new LambdaQueryWrapper<UpPattenUsage>()
+                    .eq(UpPattenUsage::getEngineeringId, engineering.getEngineerId()).ne(UpPattenUsage::getState, Const.LOAD_RAW_GLASS_SUCCESS));
+            if (count == 0) {
+                engineeringMapper.update(null, new LambdaUpdateWrapper<Engineering>().set(Engineering::getState, Const.ENGINEERING_SUCCESS)
+                        .eq(Engineering::getEngineerId, engineering.getEngineerId()));
+                optimizeProjectService.update(null, new LambdaUpdateWrapper<OptimizeProject>().set(OptimizeProject::getState, 300)
+                        .eq(OptimizeProject::getProjectNo, engineering.getEngineerId()));
+            }
+        }
     }
 
     private void opcLoadGlassChild(String tableName, Integer deviceId) {
@@ -118,7 +140,7 @@
         List<Integer> loadStation = LOAD_GLASS_DEVICE_ONE_TASK.equals(tableName) ? LOAD_STATION_01 : LOAD_STATION_02;
         List<RawGlassStorageDetails> loadStationList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
                 .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1")
-                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
+                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
                 .eq(RawGlassStorageDetails::getDeviceId, deviceId));
         if (CollectionUtils.isEmpty(loadStationList)) {
             log.info("褰撳墠涓婄墖绾胯矾涓や釜涓婄墖浣嶉兘娌℃湁鍘熺墖淇℃伅锛岀粨鏉熸湰娆′笂鐗囦换鍔★紝绛夊緟浠撳偍璋冨害浠诲姟");

--
Gitblit v1.8.0