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/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index c4b4e04..b648bf9 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -30,6 +30,7 @@
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.service.OptimizeProjectService;
 import com.mes.sysconfig.entity.SysConfig;
 import com.mes.sysconfig.service.SysConfigService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
@@ -42,6 +43,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.*;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -70,6 +72,8 @@
     private BigStorageCageService bigStorageCageService;
     @Resource
     private GlassInfoMapper glassInfoMapper;
+    @Resource
+    private OptimizeProjectService optimizeProjectService;
 
     @Resource
     private GlassInfoService glassInfoService;
@@ -284,7 +288,7 @@
                 .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
                 .eq(BigStorageCage::getRemainWidth, slotWidth).orderByAsc(BigStorageCage::getSlot)
                 .inSql(BigStorageCage::getDeviceId,
-                        "select distinct device_id from big_storage_cage_details where engineer_id = '" + EngineerId + "'")
+                        "select distinct device_id from big_storage_cage_details where engineer_id = '" + EngineerId + "' and device_id not in (5,6)")
                 .last("limit 1"));
         if (null != bigStorageCage) {
             log.info("鏍规嵁鐗堝浘id鎵惧埌绗煎瓙鍐呯殑鐩爣鏍煎瓙锛歿},鐜荤拑id锛歿}", bigStorageCage.getSlot(), glassId);
@@ -578,4 +582,42 @@
                 .eq("state", 100);
         return this.list(wrapper);
     }
+
+    @Override
+    public List<BigStorageCageDetails> queryNeedDispatch() {
+        return baseMapper.queryNeedDispatch();
+    }
+
+    @Override
+    public BigStorageSlotDTO queryNeedDispatchSlotBySequence() {
+        return baseMapper.queryNeedDispatchSlotBySequence();
+    }
+
+    @Override
+    public List<OptimizeProject> queryTemperingOrder() {
+        String temperingengineerId = redisUtil.getCacheObject("temperingEngineerId");
+        List<TemperingGlassCountDTO> temperingGlassCountDTOS = baseMapper.queryTemperingGlassCountSummary(1);
+        List<OptimizeProject> projectList = optimizeProjectService.engineerScheduling(new OptimizeProject() {{
+            setType(3);
+        }});
+        Set<String> projectNoSet = projectList.stream()
+                .map(OptimizeProject::getProjectNo)
+                .collect(Collectors.toSet());
+        List<OptimizeProject> resultList= new ArrayList<>();
+        for (TemperingGlassCountDTO dto : temperingGlassCountDTOS) {
+            if (projectNoSet.contains(dto.getEngineerId())) {
+                OptimizeProject project = new OptimizeProject();
+                if (Objects.equals(dto.getEngineerId(), temperingengineerId)) {
+                    project.setState(1);
+                }
+                project.setProjectNo(dto.getEngineerId());
+                project.setGlassType(dto.getFilmsId());
+                project.setGlassThickness(dto.getThickness().intValue());
+                project.setGlassTotal(dto.getTotalCount());
+                project.setGlassTotalArea(dto.getRealCount());
+                resultList.add(project);
+            }
+        }
+        return resultList;
+    }
 }

--
Gitblit v1.8.0