From 6977fb42d5067f6c938ef3de559a6ad19b542a0b Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期五, 14 六月 2024 11:29:09 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java |   89 ++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 85 insertions(+), 4 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
index 4e4b1c8..5f802b5 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -1,14 +1,26 @@
 package com.mes.temperingglass.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
+import com.mes.bigstorage.mapper.BigStorageCageMapper;
 import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -22,6 +34,11 @@
 @Service
 public class TemperingGlassInfoServiceImpl extends ServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
 
+    @Resource
+    private BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
+    @Resource
+    private BigStorageCageMapper bigStorageCageMapper;
+
     @Override
     public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList) {
         double carWidth=5000;
@@ -31,11 +48,11 @@
         ) {
             log.info("1銆佸綋鍑虹墖杞﹀搴﹀ぇ浜庣幓鐠冨搴︽椂");
             if((carWidth-temperingGlassInfo.getWidth())>0){
-                carWidth-=temperingGlassInfo.getWidth()-gap;
-                log.info("2銆佹坊鍔犲垰灏忕墖琛ㄤ俊鎭埌浠诲姟琛�");
-                temperingGlassInfo.setState(1);
+                carWidth-=temperingGlassInfo.getWidth()+gap;
+                log.info("2銆佹坊鍔犻挗鍖栧皬鐗囪〃淇℃伅鍒颁换鍔¤〃");
+                temperingGlassInfo.setState(-1);
                 baseMapper.updateById(temperingGlassInfo);
-                log.info("3銆佹坊鍔犲垰灏忕墖琛ㄤ俊鎭埌浠诲姟琛�");
+                log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
                 BigStorageCageOutTask bigStorageCageOutTask =new BigStorageCageOutTask();
                 bigStorageCageOutTask.setId(temperingGlassInfo.getId());
             }else{
@@ -44,4 +61,68 @@
         }
     }
 
+    //璋冨害
+    @Override
+    public void schedulingTask(){
+        QueryWrapper<BigStorageCageDetails> detailsWrapper1 = Wrappers.query();
+        detailsWrapper1.select("tempering_layout_id", "count(distinct slot)")
+                .groupBy("tempering_layout_id");
+        List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(detailsWrapper1);
+
+        boolean key=false;
+        for (Map<String, Object> row : temperingLayoutIdList) {
+            for (Map.Entry<String, Object> entry : row.entrySet()) {
+                String temperingId = entry.getKey();
+                int temperingNo = Integer.parseInt(entry.getValue().toString());
+                if(temperingNo>8){
+                    QueryWrapper<BigStorageCageDetails> detailsWrapper2 = Wrappers.query();
+                    detailsWrapper2.select("tempering_layout_id", "slot")
+                            .select("max(tempering_feed_sequence) as max_sequence", "min(tempering_feed_sequence) as min_sequence")
+                            .groupBy("tempering_layout_id", "slot")
+                            .orderByAsc("tempering_layout_id")
+                            .orderByDesc("min_sequence");
+
+                    List<Map<String, Object>> result = bigStorageCageDetailsMapper.selectMaps(detailsWrapper2);
+                    for (Map<String, Object> rows : result) {
+                        // 鑾峰彇姣忚鐨勫��
+                        Object temperingLayoutId = rows.get("tempering_layout_id");
+                        int slot = Integer.parseInt(rows.get("slot").toString());
+                        int maxSequence = Integer.parseInt(rows.get("max_sequence").toString());
+                        int minSequence = Integer.parseInt(rows.get("min_sequence").toString());
+
+                        LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper=new LambdaQueryWrapper<>();
+                        bigStorageCageWrapper.eq(BigStorageCage::getSlot,slot);
+                        BigStorageCage bigStorageCage=bigStorageCageMapper.selectOne(bigStorageCageWrapper);
+                        Integer remainWidth=5000-bigStorageCage.getRemainWidth();
+
+                        BigStorageCage bigStorageCages=bigStorageCageMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                                .selectAll(BigStorageCage.class)
+                                .leftJoin(BigStorageCageDetails.class, on -> on
+                                        .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                                        .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                                .gt(BigStorageCage::getRemainWidth,remainWidth)
+                                .eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
+                                .eq(BigStorageCageDetails::getTemperingFeedSequence,minSequence-1)
+                        );
+
+                        if(bigStorageCages.getSlot()!=null){
+                            LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper=new LambdaQueryWrapper<>();
+                            bigStorageCageDetailsWrapper
+                                    .eq(BigStorageCageDetails::getSlot,slot)
+                                    .orderByDesc(BigStorageCageDetails::getTemperingFeedSequence);
+                            List<BigStorageCageDetails> bigStorageCageDetailsList=bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
+                            for (BigStorageCageDetails bigStorageCageDetails:bigStorageCageDetailsList
+                                 ) {
+                                BigStorageCageOutTask bigStorageCageOutTask=new BigStorageCageOutTask();
+                                bigStorageCageOutTask.setTaskState(-3);
+                                bigStorageCageOutTask.setStartSlot(slot);
+                                bigStorageCageOutTask.setEndSlot(bigStorageCages.getSlot());
+                            }
+                            return;
+                        }
+                    }
+                }
+            }
+        }
+    }
 }

--
Gitblit v1.8.0