From b9b44b51b201e2f5a9a1f3665c7fb76b5690f9af Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期一, 23 十二月 2024 16:13:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java |   63 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 2 deletions(-)

diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
index 63438cc..e110c40 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -1,17 +1,28 @@
 package com.mes.hollow.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.common.config.Const;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
 import com.mes.hollow.entity.HollowGlassOutRelationInfo;
 import com.mes.hollow.mapper.HollowGlassOutRelationInfoMapper;
+import com.mes.hollow.service.HollowBigStorageCageDetailsService;
 import com.mes.hollow.service.HollowGlassOutRelationInfoService;
+import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
+import com.mes.hollowqueue.service.HollowGlassQueueInfoService;
+import com.mes.utils.RedisUtil;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * (HollowGlassOutRelationInfo)琛ㄦ湇鍔″疄鐜扮被
@@ -25,21 +36,69 @@
 
     @Resource
     GlassInfoService glassInfoService;
+    @Resource
+    HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService;
+    @Resource
+    HollowGlassQueueInfoService hollowGlassQueueInfoService;
+
+    @Resource
+    RedisUtil redisUtil;
 
     @Override
     public HollowGlassOutRelationInfo receiveTask(String flowCardId, int cell, int totalPairQuantity) {
+        return childrenTask(flowCardId,cell,totalPairQuantity,0);
+    }
+
+    @Override
+    public HollowGlassOutRelationInfo forceOutGlass(String flowCardId, int cell, int totalPairQuantity) {
+        return childrenTask(flowCardId,cell,totalPairQuantity,1);
+    }
+
+    @Override
+    public Boolean dispatchHollowSwitch(Boolean flag) {
+        redisUtil.setCacheObject("dispatchHollowSwitch", flag);
+        return  redisUtil.getCacheObject("dispatchHollowSwitch");
+    }
+
+
+    private HollowGlassOutRelationInfo childrenTask(String flowCardId, int cell, int totalPairQuantity,int isForce) {
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getFlowCardId, flowCardId).last("limit 1"));
         HollowGlassOutRelationInfo info = new HollowGlassOutRelationInfo();
         if (null == glassInfo) {
             log.info("璇ユ祦绋嬪崱淇℃伅绯荤粺鏈壘鍒�");
             return info;
         }
+        List<HollowGlassOutRelationInfo> outRelationInfos = this.list(new LambdaQueryWrapper<HollowGlassOutRelationInfo>().eq(HollowGlassOutRelationInfo::getCell, cell)
+                .in(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START));
+        if (CollectionUtil.isNotEmpty(outRelationInfos)){
+            return null;
+        }
         info.setFlowCardId(flowCardId);
         info.setCell(cell);
+        info.setIsForce(isForce);
         info.setTotalLayer(glassInfo.getTotalLayer());
-        info.setTotalLayer(glassInfo.getTotalLayer());
-        info.setState(Const.HOLLOW_FLOW_CARD_NEW);
+        info.setState(Const.HOLLOW_FLOW_CARD_START);
         info.setTotalPairQuantity(totalPairQuantity);
+        List<HollowBigStorageCageDetails> hollowBigStorageCageDetailsList = hollowBigStorageCageDetailsService.queryOutGlassList(flowCardId, cell);
+        int isPairCount = glassInfo.getTotalLayer() * totalPairQuantity;
+        List<HollowGlassQueueInfo> hollowQueues = new ArrayList<>();
+        loop:
+        for (HollowBigStorageCageDetails queue : hollowBigStorageCageDetailsList) {
+            HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo();
+            BeanUtils.copyProperties(queue, queueInfo);
+            queueInfo.setState(Const.TEMPERING_NEW);
+            queueInfo.setCell(cell);
+            queueInfo.setCreateTime(new Date());
+            queueInfo.setUpdateTime(new Date());
+            hollowQueues.add(queueInfo);
+            if (queue.getIsPair() == 1){
+                isPairCount -=1;
+                if (isPairCount == 0){
+                    break loop;
+                }
+            }
+        }
+        hollowGlassQueueInfoService.saveBatch(hollowQueues);
         this.save(info);
         return info;
     }

--
Gitblit v1.8.0