From 1d9f9bd9afb6e18aa73b456555256564e34b2acc Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期二, 28 五月 2024 13:20:06 +0800
Subject: [PATCH] 卧式理片笼线程改造:1、优化任务查询,每次只获取第一条数据,避免任务表数据过多 2、玻璃尺寸限制改为配置

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java |   90 ++++++++++++++++++++++++++++----------------
 1 files changed, 57 insertions(+), 33 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
index 242ffed..12a13ad 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -1,8 +1,10 @@
 package com.mes.edgstoragecage.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
@@ -19,7 +21,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author zhoush
@@ -34,33 +36,55 @@
     @Autowired
     UpPattenUsageMapper upPattenUsageMapper;
 
+    @Override
+    public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) {
+        List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
+                .selectAll(EdgStorageCage.class)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                .isNull(EdgStorageCageDetails::getSlot)
+                .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
+        );
+        if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+            return emptyList.get(0);
+        }
+        if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
+            return null;
+        }
+        return emptyList.get(0);
+    }
+
     /**
      * 鏌ヨ绗煎唴绌烘牸
+     *
      * @return
      */
     @Override
-    public List<EdgStorageCage> selectCacheEmpty(){
-        return baseMapper.selectJoinList(EdgStorageCage.class,new MPJLambdaWrapper<EdgStorageCage>()
+    public List<EdgStorageCage> selectCacheEmpty() {
+        return baseMapper.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
                 .selectAll(EdgStorageCage.class)
-                .leftJoin(EdgStorageCageDetails.class,on->on
-                        .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)
-                        .eq(EdgStorageCageDetails::getState,"100"))
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+                        .eq(EdgStorageCageDetails::getState, "100"))
                 .isNull(EdgStorageCageDetails::getSlot)
+                .last("order by abs(t.slot - 4)  asc")
         );
     }
 
     /**
      * 鏌ヨ绗煎唴鍑虹墖浠诲姟   鎸夐挗鍖栫増鍥惧彿+鐗堝浘鍐呭簭鍙�
+     *
      * @return
      */
     @Override
-    public List<Map<String, Object>> selectCacheOut(){
+    public List<Map<String, Object>> selectCacheOut() {
 
         return upPattenUsageMapper.selectJoinMaps(JoinWrappers.lambda(UpPattenUsage.class).selectAll(UpPattenUsage.class)
-                .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getGlassId)
-                .leftJoin(EdgStorageCageDetails.class,on->on
-                        .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
-                        .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+                .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getGlassId)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
                 .isNull(EdgStorageCageDetails::getSlot)
         );
 //        return upPattenUsageMapper.selectJoinMaps(new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class)
@@ -73,59 +97,59 @@
 
     /**
      * 鐞嗙墖缂撳瓨璇︽儏
+     *
      * @return
      */
     @Override
-    public List<Map<String, Object>> selectEdgStorageCages(){
+    public List<Map<String, Object>> selectEdgStorageCages() {
         return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class)
                 .selectAll(EdgStorageCage.class)
-                .selectAs(EdgStorageCageDetails::getId,"esdId")
-                .select(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails::getWidth,EdgStorageCageDetails::getHeight,EdgStorageCageDetails::getId)
-                .leftJoin(EdgStorageCageDetails.class,on->on
-                        .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId)
-                        .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot))
+                .selectAs(EdgStorageCageDetails::getId, "esdId")
+                .select(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getId)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
         );
-//        return baseMapper.selectJoinMaps(new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
-//                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
-//                        .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
-//        );
     }
 
     /**
      * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     *
      * @param edgStorageCage
      * @return
      */
     @Override
-    public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage){
-        EdgStorageCage edgItem=baseMapper.selectById(edgStorageCage.getId());
+    public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage) {
+        EdgStorageCage edgItem = baseMapper.selectById(edgStorageCage.getId());
         edgItem.setEnableState(edgStorageCage.getEnableState());
         baseMapper.updateById(edgItem);
         return true;
     }
 
     /**
-     *淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     *
      * @param edgStorageCageId
      * @param edgStorageCageDetails
      * @return
      */
     @Override
-    public boolean updateEdgStorageCageDetails(int edgStorageCageId,EdgStorageCageDetails edgStorageCageDetails){
-        EdgStorageCage edgItem=baseMapper.selectById(edgStorageCageId);
-        log.info("姝e父"+edgItem);
-        EdgStorageCageDetails edgDItem=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
-        if (edgItem!=null){
+    public boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails) {
+        EdgStorageCage edgItem = baseMapper.selectById(edgStorageCageId);
+        log.info("姝e父" + edgItem);
+        EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+        if (edgItem != null) {
             //绉婚櫎
-            EdgStorageCageDetails result=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot,edgStorageCageId));
-            if (result!=null){
+            EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, edgStorageCageId));
+            if (result != null) {
                 result.setSlot(0);
                 edgStorageCageDetailsMapper.updateById(result);
             }
             //娣诲姞
-            if(edgDItem!=null){
+            if (edgDItem != null) {
                 //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
-                EdgStorageCageDetails newresult=edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+                EdgStorageCageDetails newresult = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
                 newresult.setSlot(edgItem.getSlot());
                 edgStorageCageDetailsMapper.updateById(newresult);
             }

--
Gitblit v1.8.0