From b21caa5499c50384f3a3a5dd795a7a0ad197d36f Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 06 十一月 2025 21:26:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java |   41 +++++++++++++++++++++++++++++++++++------
 1 files changed, 35 insertions(+), 6 deletions(-)

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 9553251..07c694b 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
@@ -104,6 +104,8 @@
     private static final String ALARM_TYPE = "閽㈠寲澶х悊鐗�";
     private static final String ALARM_CODE_SIZE = "sizeSame";
     private static final String ALARM_CODE_ID = "idSame";
+    private static final String ALARM_CODE_SLOT = "slotLess";
+    private static final String ALARM_CODE_OVER = "overSize";
 
     @Resource
     private RedisUtil redisUtil;
@@ -140,16 +142,17 @@
         String fromOpcUa = s7DataDLPOne.getFrom1().toString();
 
         List<String> ids = s7DataDLPOne.getIds();
+        log.info("鑾峰彇鍒拌繘鐗囦换鍔� 鐜荤拑id锛歿}", ids);
         List<String> glassIdList = new ArrayList<>();
         for (int i = 0; i < 6; i++) {
             String requestWord = ids.get(i);
-            if (null != requestWord && !requestWord.isEmpty()) {
+            if (StringUtils.isNotBlank(requestWord)) {
+                log.info("鐜荤拑id{}鍔犲叆杩涚墖浠诲姟", requestWord);
                 BigStorageCageTask task = new BigStorageCageTask();
                 task.setGlassId(requestWord);
                 task.setStartSlot(Integer.parseInt(fromOpcUa));
                 inTaskList.add(task);
                 glassIdList.add(requestWord);
-                break;
             }
         }
         if (CollectionUtil.isEmpty(inTaskList)) {
@@ -225,11 +228,18 @@
             for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
                 int count = bigStorageCageService.count(new LambdaQueryWrapper<BigStorageCage>()
                         .eq(BigStorageCage::getEnableState, Const.SLOT_ON).eq(BigStorageCage::getRemainWidth, slotWidth)
-                        .ge(BigStorageCage::getDeviceId, 4)
+                        .le(BigStorageCage::getDeviceId, 4)
                         .le(BigStorageCage::getMinThickness, entry.getKey())
                         .ge(BigStorageCage::getMaxThickness, entry.getKey()));
                 if (count < entry.getValue()) {
                     log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+                    ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
+                    alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
+                    alarmInfo.setAlarmModule(ALARM_MODULE);
+                    alarmInfo.setAlarmType(ALARM_TYPE);
+                    alarmInfo.setAlarmCode(ALARM_CODE_SLOT);
+                    alarmInfo.setAlarmMessage(count + "");
+                    productAlarmInfoService.save(alarmInfo);
                     //鍚憄lc鍙戦�佹姤璀�:绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻
 //                    miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 16));
                     s7DataDLPOne = new S7DataDLPOne();
@@ -246,6 +256,13 @@
                     .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
             if (count > 0) {
                 log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
+                ProductAlarmInfo alarmInfo = new ProductAlarmInfo();
+                alarmInfo.setState(Const.LOAD_RAW_GLASS_NEW);
+                alarmInfo.setAlarmModule(ALARM_MODULE);
+                alarmInfo.setAlarmType(ALARM_TYPE);
+                alarmInfo.setAlarmCode(ALARM_CODE_OVER);
+                alarmInfo.setAlarmMessage("");
+                productAlarmInfoService.save(alarmInfo);
                 //鍚憄lc鍙戦�佹姤璀�:鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝鏃犳硶缁х画鐩撮��
 //                miloService.writeToOpcWord(generateReadWriteEntity("DLP1A.DLP1A.alarmSignal", 64));
                 s7DataDLPOne = new S7DataDLPOne();
@@ -432,10 +449,15 @@
                 cageDetails.setFilmsId(info.getFilmsId());
                 cageDetails.setId(null);
                 bigStorageCageDetailsService.save(cageDetails);
+                info.setState(Const.GLASS_STATE_OUT);
+                bigStorageCageDetailsService.updateById(info);
             }
             //鍘嗗彶鏁版嵁鍏ュ簱
             bigStorageCageHistoryTaskService.saveBatch(historyTasks);
             extracted(taskList);
+            S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo();
+            s7DataDLPTwo.setMesReply(1);
+            s7SerializerDLPTwo.write(s7DataDLPTwo);
             return;
         }
 
@@ -537,11 +559,15 @@
                         .last("limit 1"));
                 List<Integer> slotList = sequenceDTOList.stream().map(BigStorageSequenceDTO::getSlot).collect(Collectors.toList());
                 list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
-                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).in(BigStorageCageDetails::getSlot, slotList));
+                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .in(BigStorageCageDetails::getSlot, slotList)
+                        .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence)
+                );
                 computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
                         bigStorageCage.getSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
                 slotList.add(bigStorageCage.getSlot());
                 updateSlotRemainBySlots(slotList);
+                return;
             }
             //鏈夛細缁熶竴寰�5鍙风瀛愰��
 //            鏃� 4鍙风瀛愪娇鐢ㄦ暟閲忔槸鍚﹁秴杩囬槇鍊� 鏈� 鐢熸垚璋冨害浠诲姟鎸夌収缁勫彿缁勫簭鐢�1寮�濮嬩緷娆″線5鍙风瀛愰�佸皬鐗�
@@ -570,7 +596,10 @@
             BigStorageSlotDTO slotDTO = bigStorageCageDetailsService.queryNeedDispatchSlotBySequence();
             if (null != slotDTO) {
                 list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
-                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN).in(BigStorageCageDetails::getSlot, slotDTO.getStartSlot()));
+                        .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .in(BigStorageCageDetails::getSlot, slotDTO.getStartSlot())
+                        .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence)
+                );
                 computeOutGlassInfoByVirtualSlot(list, "big_storage_cage_out_one_task",
                         slotDTO.getTargetSlot(), Const.GLASS_STATE_SCHEDULE_ING, Const.BIG_STORAGE_BEFORE_DISPATCH);
                 List<Integer> slotList = new ArrayList<>();
@@ -1010,7 +1039,7 @@
      * @return
      */
     private Boolean extracted(List<BigStorageCageTask> bigStorageCageTaskList) {
-        resetOutTask();
+//        resetOutTask();
         S7DataDLPTwo s7DataDLPTwo = new S7DataDLPTwo();
         for (int i = 0; i < bigStorageCageTaskList.size() && i < 6; i++) {
             String glassId = bigStorageCageTaskList.get(i).getGlassId();

--
Gitblit v1.8.0