From f44f00034483637a48c4cfedf7b6e93b83c8c6af Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 30 十月 2025 03:36:24 +0800
Subject: [PATCH] 1、 中空理片笼任务优化:进片调度增加限制,避免重复生成调度任务

---
 hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java |   88 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 78 insertions(+), 10 deletions(-)

diff --git a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java
index a741745..0ebc1f3 100644
--- a/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/hollowGlassModule/src/main/java/com/mes/hollowqueue/service/impl/HollowGlassQueueInfoServiceImpl.java
@@ -1,10 +1,11 @@
 package com.mes.hollowqueue.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.extension.service.impl.ServiceImpl;
-import com.mes.common.config.Const;
-import com.mes.hollow.entity.HollowGlassOutRelationInfo;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.hollow.service.HollowGlassOutRelationInfoService;
 import com.mes.hollowqueue.entity.HollowGlassQueueInfo;
 import com.mes.hollowqueue.mapper.HollowGlassQueueInfoMapper;
@@ -13,6 +14,8 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -28,19 +31,84 @@
 
     @Resource
     HollowGlassOutRelationInfoService hollowGlassOutRelationInfoService;
+    @Resource
+    DamageService damageService;
 
 
     @Override
-    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfo(int cell) {
-        HollowGlassOutRelationInfo one = hollowGlassOutRelationInfoService.getOne(new LambdaUpdateWrapper<HollowGlassOutRelationInfo>()
-                .eq(HollowGlassOutRelationInfo::getCell, cell)
-                .eq(HollowGlassOutRelationInfo::getState, Const.HOLLOW_FLOW_CARD_START)
+    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByTask(int taskId) {
+        return this.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                .eq(HollowGlassQueueInfo::getRelationId, taskId)
+                .orderByAsc(HollowGlassQueueInfo::getHollowSequence)
+                .orderByAsc(HollowGlassQueueInfo::getLayer));
+    }
+
+    @Override
+    public List<HollowGlassQueueInfo> queryHollowGlassQueueInfoByLine(int cell) {
+        LocalDateTime twoDaysAgo = LocalDate.now().atStartOfDay().minusDays(1);
+        List<String> relationIds = this.listObjs(
+                new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                        .lt(HollowGlassQueueInfo::getState, 1)
+                        .eq(HollowGlassQueueInfo::getCell, cell)
+                        .select(HollowGlassQueueInfo::getRelationId)
+                        .groupBy(HollowGlassQueueInfo::getRelationId),
+                Object::toString
         );
-        this.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
-                .eq(HollowGlassQueueInfo::getFlowCardId, one.getFlowCardId())
-                .eq(HollowGlassQueueInfo::getCell, one.getCell())
+        List<HollowGlassQueueInfo> resultList = this.list(
+                new QueryWrapper<HollowGlassQueueInfo>()
+                        .in("relation_id", relationIds)
+                        .eq("cell", cell)
+                        .eq("is_pair", 1)
+                        .ge("create_time", twoDaysAgo)
+                        .select("width", "height", "flow_card_id", "relation_id", "hollow_sequence", "cell", "MAX(state) as state", "MAX(layer) as layer")
+                        .groupBy("relation_id", "hollow_sequence")
+                        .orderByAsc("relation_id", "hollow_sequence")
         );
-        return null;
+
+        // 淇敼鍐呭瓨涓泦鍚堢殑绗竴鏉� state 涓� 0 鎴� -1 鐨勫璞$殑 state 涓� -2
+        for (HollowGlassQueueInfo item : resultList) {
+            if (item.getState() == 0 || item.getState() == -1) {
+                item.setState(-2);
+                break; // 鍙敼绗竴鏉★紝鏀瑰畬灏遍��鍑哄惊鐜�
+            }
+        }
+        return resultList;
+    }
+
+    @Override
+    public void confirmBorder(HollowGlassQueueInfo hollowGlassQueueInfo) {
+
+        if (hollowGlassQueueInfo.getState() == 8) {
+            HollowGlassQueueInfo hollowGlassQueueInfoDamage = this.getOne(
+                    new LambdaQueryWrapper<HollowGlassQueueInfo>()
+                            .eq(HollowGlassQueueInfo::getLayer, hollowGlassQueueInfo.getLayer())
+                            .eq(HollowGlassQueueInfo::getRelationId, hollowGlassQueueInfo.getRelationId())
+                            .eq(HollowGlassQueueInfo::getHollowSequence, hollowGlassQueueInfo.getHollowSequence())
+            );
+            hollowGlassQueueInfoDamage.setState(hollowGlassQueueInfo.getState());
+            this.updateById(hollowGlassQueueInfoDamage);
+            Damage damage = new Damage();
+            damage.setGlassId(hollowGlassQueueInfoDamage.getGlassId());
+            damage.setLine(hollowGlassQueueInfoDamage.getCell());
+            damage.setWorkingProcedure("涓┖");
+            damage.setRemark("鎶橀摑妗�");
+            damage.setStatus(1);
+            damage.setType(hollowGlassQueueInfoDamage.getState());
+            damageService.insertDamage(damage);
+        } else {
+            this.update(
+                    new LambdaUpdateWrapper<HollowGlassQueueInfo>()
+                            .set(HollowGlassQueueInfo::getState, hollowGlassQueueInfo.getState())
+                            .eq(HollowGlassQueueInfo::getRelationId, hollowGlassQueueInfo.getRelationId())
+                            .eq(HollowGlassQueueInfo::getHollowSequence, hollowGlassQueueInfo.getHollowSequence())
+            );
+
+        }
+    }
+
+    @Override
+    public List<String> queryNeedInCarGlass() {
+        return baseMapper.queryNeedInCarGlass();
     }
 }
 

--
Gitblit v1.8.0