From b64ef67b6950301c5e808cbb709248e341a3e6a2 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 20 十二月 2024 22:53:14 +0800
Subject: [PATCH] 1、大理片笼及中空大理片笼自动报工,增加过渡台限制(高度超过2500或者厚度超过12) 2、卧理报工

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml                    |    2 
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java                         |   43 ++++++++++++++++++++-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java |    4 +-
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java  |    4 ++
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java                                     |   25 ++++++++----
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java                      |    9 ++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                                           |    1 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                          |    8 ++++
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml                                                 |    2 +
 9 files changed, 83 insertions(+), 15 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 4e5ec39..dfd5bc6 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -27,6 +27,14 @@
     Boolean submitReport(Damage damage);
 
     /**
+     * 鎸夌収鐜荤拑id淇℃伅鑷姩鎶ュ伐
+     * @param glassId
+     * @param deviceId
+     * @param workingProcedure
+     * @param remark
+     */
+    void autoSubmitReport(String glassId, int deviceId,String workingProcedure,String remark);
+    /**
      * 鍗曚釜鐮存崯
      *
      * @param damage
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 5a08b5f..204ef25 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -9,6 +9,7 @@
 import com.kangaroohy.milo.model.ReadWriteEntity;
 import com.kangaroohy.milo.service.MiloService;
 import com.mes.common.config.Const;
+import com.mes.damage.service.DamageService;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
@@ -72,6 +73,8 @@
     EdgStorageCageService edgStorageCageService;
     @Resource
     EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+    @Resource
+    DamageService damageService;
 
     @Value("${mes.glassGap}")
     private int glassGap;
@@ -122,17 +125,17 @@
     private void startOneOpcTaskChild(String tableName, int device) {
         EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
 //        try {
-            if (task == null) {
-                log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
-                return;
-            }
-            if (task.getTaskState() == 2) {
-                //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
-                task.setGlassIdIn("");
-            }
+        if (task == null) {
+            log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+            return;
+        }
+        if (task.getTaskState() == 2) {
+            //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
+            task.setGlassIdIn("");
+        }
         int request = task.getTaskState();
         int taskRunning = task.getTaskRunning();
-            log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
+        log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
         if (request == 0) {
             log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
             log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟");
@@ -487,6 +490,10 @@
                 .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
                 .eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
                 .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        //濡傛灉浠诲姟绫诲瀷涓�1锛�3锛屽皢鍒囧壊瀹屾垚鐨勭幓鐠冭嚜鍔ㄦ姤宸�
+        if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) {
+            damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(),"鍒囧壊","杩涘崸鐞�");
+        }
         updateCellRemainWidth(cell, device, taskHistory);
         edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
                 .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index 959d8b7..57b2a42 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -221,8 +221,8 @@
         MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
                 .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
-                        .eq(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
-                        .eq(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                        .like(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
+                        .like(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
                         .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
                 .eq(BigStorageCage::getDeviceId, query.getDeviceId())
                 .orderByAsc(BigStorageCage::getDeviceId)
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 44d88bd..b506c45 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
@@ -101,6 +101,8 @@
     private Integer artificialOutTargetPosition;
     @Value("${mes.slotMaxHeight}")
     private Integer slotMaxHeight;
+    @Value("${mes.slotMaxthickness}")
+    private Integer slotMaxthickness;
 
     @Scheduled(fixedDelay = 1000)
     public void inBigStorageTask() throws Exception {
@@ -175,7 +177,7 @@
             }
         }
         //todo:瓒呭ぇ灏哄
-        if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight())) {
+        if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
             int count = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>()
                     .eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
                     .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
@@ -189,6 +191,11 @@
         //淇敼纾ㄨ竟瀵瑰垪琛ㄧ殑鐜荤拑鐘舵��
         edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
                 .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
+        //鎶ュ伐
+        for (String glass : glassIdList) {
+            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�");
+        }
+
         Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
         //璁$畻鐩爣鏍煎瓙
         List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 51356c7..c60e249 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -28,6 +28,7 @@
   glassGap: 250  #鐜荤拑闂磋窛
   xMaxSize: 2800
   slotMaxHeight: 2500
+  slotMaxthickness: 12
   temperingOutTargetPosition: 930
   artificialOutTargetPosition: 931
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 61adf41..ebda8bb 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -132,7 +132,7 @@
         </where>
     </update>
     <update id="updateDeviceIdBySlot">
-        update big_storage_cage_details t innser join big_storage_cage t1 on t.slot = t1.slot
+        update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
         set t.device_id = t1.device_id
         where t.slot in (
         <foreach collection="list" item="item" separator=",">
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index a61b3dd..690605a 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -63,6 +63,7 @@
                 .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
                 .eq(HollowGlassRelationInfo::getWidth, width)
                 .eq(HollowGlassRelationInfo::getHeight, height)
+                .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
                 .eq(HollowGlassRelationInfo::getLayer, layer)
                 .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
                 .orderByAsc(HollowGlassRelationInfo::getHollowSequence)
@@ -76,6 +77,7 @@
                     .eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
                     .eq(HollowGlassRelationInfo::getWidth, width)
                     .eq(HollowGlassRelationInfo::getHeight, height)
+                    .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
                     .eq(HollowGlassRelationInfo::getLayer, layer)
                     .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
                     .orderByAsc(HollowGlassRelationInfo::getHollowSequence)
@@ -84,6 +86,7 @@
         }
         HollowBigStorageCageDetails hollowDetails = hollowBigStorageCageDetailsService.getOne(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
                 .eq(HollowBigStorageCageDetails::getFlowCardId, relationInfoOne.getFlowCardId())
+                .eq(HollowBigStorageCageDetails::getTotalLayer, totalLayer)
                 .eq(HollowBigStorageCageDetails::getLayer, layer)
                 .eq(HollowBigStorageCageDetails::getVirtualSlot, relationInfoOne.getVirtualSlot())
                 .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
@@ -102,6 +105,7 @@
         }
         HollowGlassRelationInfo relationInfoBefore = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
                 .eq(HollowGlassRelationInfo::getFlowCardId, relationInfoOne.getFlowCardId())
+                .eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getTotalLayer())
                 .eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getLayer())
                 .eq(HollowGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
                 .eq(HollowGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index dfd6891..d7e8364 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -78,6 +78,10 @@
 
     private static final String BIG_STORAGE_CAGE_IN_TWO_TASK = "big_storage_cage_in_two_task";
     private static final String BIG_STORAGE_CAGE_OUT_TWO_TASK = "big_storage_cage_out_two_task";
+    /**
+     * 鐩撮�氭牸瀛�
+     */
+    private static final Integer THROUGH_SLOT = 920;
     @Autowired(required = false)
     MiloService miloService;
     @Resource
@@ -94,6 +98,11 @@
 
     @Value("${mes.outCarMaxSize}")
     private Integer outCarMaxSize;
+
+    @Value("${mes.slotMaxHeight}")
+    private Integer slotMaxHeight;
+    @Value("${mes.slotMaxthickness}")
+    private Integer slotMaxthickness;
 
     @Scheduled(fixedDelay = 1000)
     public void inBigStorageTask() throws Exception {
@@ -154,10 +163,40 @@
             //todo:鍚憄lc鍙戦�佹姤璀�
             return;
         }
+        //鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
+        Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
+        for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
+            int count = hollowBigStorageCageService.count(new LambdaQueryWrapper<HollowBigStorageCage>()
+                    .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                    .le(HollowBigStorageCage::getMinThickness, entry.getKey())
+                    .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
+            if (count < entry.getValue()) {
+                log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+                //todo:鍚憄lc鍙戦�佹姤璀�
+                return;
+            }
+        }
+        //todo:瓒呭ぇ灏哄
+        if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
+            int count = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+                    .eq(HollowBigStorageCageDetails::getSlot, THROUGH_SLOT)
+                    .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+            if (count > 0) {
+                log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
+                //todo:鍚憄lc鍙戦�佹姤璀�
+                return;
+            }
+        }
+
+        log.info("灏嗛挗鍖栧皬鐗囪〃鍐呯殑鐘舵�佹敼涓洪挗鍖栫粨鏉燂紝鐜荤拑id鏈夛細{}", glassIdList);
         //淇敼閽㈠寲浠诲姟琛ㄤ腑鐨勭姸鎬�
         temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
                 .set(TemperingGlassInfo::getState, Const.TEMPERING_END).in(TemperingGlassInfo::getGlassId, glassIdList));
-
+        //鎶ュ伐
+        log.info("灏嗘帴鏀跺埌鐨勭幓鐠冭繘琛岄挗鍖栬嚜鍔ㄦ姤宸ワ紝鐜荤拑id鏈夛細{}", glassIdList);
+        for (String glass : glassIdList) {
+            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "閽㈠寲", "杩涗腑绌虹悊鐗囩");
+        }
         Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
 
         //璁$畻鐩爣鏍煎瓙
@@ -766,7 +805,7 @@
                 targetSlot = storageCage.getSlot();
                 hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
                         .set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));
-            }else{
+            } else {
                 resultList = tempList;
             }
             totalLayer = 0;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
index d1efe15..71d5812 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
@@ -29,6 +29,8 @@
   xMaxSize: 2800
   temperingOutTargetPosition: 930
   artificialOutTargetPosition: 931
+  slotMaxHeight: 2500
+  slotMaxthickness: 12
 kangaroohy:
   milo:
     enabled: true

--
Gitblit v1.8.0