From 1ae003e21ae53ab05006ca24c8b0473f93dd6912 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期三, 05 六月 2024 08:25: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/TemperingGlassInfoService.java           |    1 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java            |   15 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java  |   10 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java                          |   23 -
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java               |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                           |   21 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java      |   64 ++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java                           |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java  |   83 +++++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java                                                            |    5 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java             |   10 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java                |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                     |   43 ++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java         |    4 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java                                |    2 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml                                                   |    6 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java                 |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java                     |    3 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java          |  201 ++++++++-----
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java   |  120 +++++++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml                                                    |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java      |   41 +-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/TaskCacheService.java                    |    1 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java                                                                  |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java     |   22 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml                                                    |    5 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java                       |    7 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java               |    3 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/impl/TaskCacheServiceImpl.java           |   28 -
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java                                      |   57 +++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java                   |    2 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java                                       |   12 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java |   10 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java            |   29 +
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java                     |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java              |    3 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java                        |   12 
 37 files changed, 637 insertions(+), 228 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
index f427416..9f7cd3f 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
@@ -97,8 +97,9 @@
      * @param param 鍙傛暟瀹炰緥
      */
     public void addPlcBit(PlcBitInfo param) {
-        if (plcBitMap != null)
-            plcBitMap.put(param.getCodeId(),param);
+        if (plcBitMap != null) {
+            plcBitMap.put(param.getCodeId(), param);
+        }
         else {
             plcBitMap = new LinkedHashMap<String,PlcBitInfo>();
             plcBitMap.put(param.getCodeId(),param);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
index 7a3bfe9..66b5c07 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/tools/CodeGet.java
@@ -22,7 +22,7 @@
         // 2銆佸叏灞�閰嶇疆
         // 鍏ㄥ眬閰嶇疆
         GlobalConfig gc = new GlobalConfig();
-        gc.setOutputDir("D:\\Documents\\hangzhoumesParent3\\");
+        gc.setOutputDir("D:\\Documents\\hangzhoumesParent4\\");
 
         gc.setServiceName("%sService");	//鍘绘帀Service鎺ュ彛鐨勯瀛楁瘝I
         gc.setAuthor("wu");
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
index 4daedb5..a868ca4 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java
@@ -1,5 +1,6 @@
 package com.mes.bigstorage.controller;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.service.BigStorageCageService;
 import com.mes.utils.Result;
@@ -28,10 +29,11 @@
     @Autowired
     private BigStorageCageService bigStorageCageService;
 
-    @ApiOperation("鏌ヨ鐞嗙墖绗间俊鎭�")
-    @GetMapping("/bigStorageCage")
-    public Result querybigStorageCageDetail(int deviceId) {
-        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageService.querybigStorageCageDetail(deviceId));
+    @ApiOperation("鐞嗙墖绗煎惎鐢ㄧ鐢�")
+    @GetMapping("/updateStorageCageDisabled")
+    public Result updateStorageCageDisabled(int slot,int enableState) {
+        bigStorageCageService.updateStorageCageDisabled(slot,enableState);
+        return Result.build(200,"鍚敤/绂佺敤鎴愬姛",1);
     }
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
index 10bb881..a9b6525 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java
@@ -1,7 +1,4 @@
 package com.mes.bigstorage.controller;
-
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.utils.Result;
@@ -30,33 +27,47 @@
     @Autowired
     private BigStorageCageDetailsService bigStorageCageDetailsService;
 
-    @ApiOperation("鐞嗙墖绗艰鎯�")
-    @PostMapping("/queryBigStorageCageDetails")
-    public Result queryBigStorageCageDetails() {
-        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetailsService.list());
+
+    @ApiOperation("鐜荤拑璇︽儏鏌ヨ")
+    @PostMapping("/selectBigStorageCageDetails")
+    public Result selectBigStorageCageDetails(String glassId) {
+        BigStorageCageDetails bigStorageCageDetails=bigStorageCageDetailsService.selectBigStorageCageDetails(glassId);
+        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetails);
     }
 
     @ApiOperation("鐞嗙墖绗艰鎯呮坊鍔�")
     @PostMapping("/insertBigStorageCageDetails")
     public Result insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
-        bigStorageCageDetailsService.save(bigStorageCageDetails);
+        bigStorageCageDetailsService.insertBigStorageCageDetails(bigStorageCageDetails);
         return Result.build(200,"娣诲姞鎴愬姛",1);
     }
 
     @ApiOperation("鐞嗙墖绗艰鎯呭垹闄�")
     @PostMapping("/deleteBigStorageCageDetails")
     public Result deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
-        bigStorageCageDetailsService.removeById(bigStorageCageDetails.getId());
+        bigStorageCageDetailsService.deleteBigStorageCageDetails(bigStorageCageDetails);
         return Result.build(200,"鍒犻櫎鎴愬姛",1);
     }
 
-    @ApiOperation("鐞嗙墖绗间换鍔℃煡璇�")
-    @PostMapping("/selectBigStorageCageDetails")
-    public Result selectBigStorageCageDetails(int state) {
-        LambdaQueryWrapper<BigStorageCageDetails> selectWrapper = new LambdaQueryWrapper<>();
-        selectWrapper.eq(BigStorageCageDetails::getState,state);
-        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetailsService.list(selectWrapper));
+    @ApiOperation("鐞嗙墖绗间换鍔$牬鎹�")
+    @PostMapping("/damageBigStorageCageDetails")
+    public Result damageBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.damageBigStorageCageDetails(bigStorageCageDetails.getGlassId());
+        return Result.build(200,"鐮存崯鎴愬姛",1);
     }
 
+    @ApiOperation("鐞嗙墖绗间换鍔″畬鎴�")
+    @PostMapping("/finishBigStorageCageDetails")
+    public Result finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.finishBigStorageCageDetails(bigStorageCageDetails);
+        return Result.build(200,"鐮存崯鎴愬姛",1);
+    }
+
+    @ApiOperation("鐞嗙墖绗间换鍔″嚭鐗�")
+    @PostMapping("/outBigStorageCageDetails")
+    public Result outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
+        bigStorageCageDetailsService.outBigStorageCageDetails(bigStorageCageDetails);
+        return Result.build(200,"鐮存崯鎴愬姛",1);
+    }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
index 5c89cc9..2c7de7c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -49,7 +49,7 @@
      * 鍚敤鐘舵��
      */
     @ApiModelProperty(value = "鍚敤鐘舵��", position = 5)
-    private String enableState;
+    private Integer enableState;
 
     /**
      * 鍓╀綑瀹藉害
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
index d5e380f..3b9bb40 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java
@@ -1,6 +1,7 @@
 package com.mes.bigstorage.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import feign.Param;
 
@@ -13,6 +14,6 @@
  * @author zhoush
  * @since 2024-03-27
  */
-public interface BigStorageCageDetailsMapper extends BaseMapper<BigStorageCageDetails> {
+public interface BigStorageCageDetailsMapper extends MPJBaseMapper<BigStorageCageDetails> {
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
index 67f4cad..0752d30 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageMapper.java
@@ -1,6 +1,7 @@
 package com.mes.bigstorage.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.glassinfo.entity.GlassInfo;
@@ -16,6 +17,6 @@
  * @author zhoush
  * @since 2024-03-27
  */
-public interface BigStorageCageMapper extends BaseMapper<BigStorageCage> {
+public interface BigStorageCageMapper extends MPJBaseMapper<BigStorageCage> {
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
index 7b0a0a4..9d6169f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java
@@ -2,7 +2,6 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
-import com.mes.glassinfo.entity.GlassInfo;
 
 import java.util.List;
 
@@ -18,5 +17,17 @@
 
     List<BigStorageCageDetails> selectTask(int taskType);
 
-    boolean selectGetBoard(GlassInfo glassInfo, String plcFeedReqLine);
+    double selectGetBoard(String plcFeedReqLine);
+
+    void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    void damageBigStorageCageDetails(String glassId);
+
+    BigStorageCageDetails selectBigStorageCageDetails(String glassId);
+
+    void insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
+
+    void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails);
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
index 5f1d50f..f135fa4 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java
@@ -29,5 +29,5 @@
 
     List<Map<String, Object>> selectBigStorageCageUsage();
 
-    boolean selectWidthSufficient(BigStorageCageDetails layoutSlotInfo,double width);
+    void updateStorageCageDisabled(int slot,int enableState);
 }
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 89a9109..012ef6c 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
@@ -1,18 +1,20 @@
 package com.mes.bigstorage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.bigstorage.entity.BigStorageCage;
+import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
-import com.mes.bigstorage.mapper.BigStorageCageMapper;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
 import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
 import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
 import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
 import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
 import com.mes.glassinfo.entity.GlassInfo;
-import org.springframework.beans.factory.annotation.Autowired;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -29,12 +31,18 @@
  * @since 2024-03-27
  */
 @Service
-public class BigStorageCageDetailsServiceImpl extends ServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
+public class BigStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
 
     @Resource
     private BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
     @Resource
     private BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
+    @Resource
+    private TemperingGlassInfoMapper temperingGlassInfoMapper;
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private GlassInfoMapper glassInfoMapper;
 
     /**
      * 鏌ヨ杩�/鍑虹墖浠诲姟
@@ -82,13 +90,18 @@
      * 鍒ゆ柇褰撳墠鐜荤拑鏄惁鑳戒笂杞�
      */
     @Override
-    public boolean selectGetBoard(GlassInfo glassInfo, String plcFeedReqLine){
+    public double selectGetBoard(String plcFeedReqLine){
         double carWidth=5000;
         LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
         feedWrapper.eq(BigStorageCageDetails::getState, plcFeedReqLine);
-
         List<BigStorageCageDetails> bigStorageCageDetailsList=baseMapper.selectList(feedWrapper);
-        List<BigStorageCageFeedTask> bigStorageCageFeedTaskList=bigStorageCageFeedTaskMapper.selectList(null);
+
+        LambdaQueryWrapper<BigStorageCageFeedTask> bigStorageCageFeedTaskWrapper = new LambdaQueryWrapper<>();
+        bigStorageCageFeedTaskWrapper
+                .eq(BigStorageCageFeedTask::getTaskState,plcFeedReqLine)
+                .eq(BigStorageCageFeedTask::getLine,plcFeedReqLine);
+
+        List<BigStorageCageFeedTask> bigStorageCageFeedTaskList=bigStorageCageFeedTaskMapper.selectList(bigStorageCageFeedTaskWrapper);
         Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
                 .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
         for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
@@ -101,11 +114,96 @@
                 carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap();
             }
         }
-        if(carWidth>=0){
-            return true;
+        return carWidth;
+
+    }
+
+
+    //鏍撻櫎鍑虹墖浠诲姟.鏇存柊鏍煎瓙瀹藉害
+    @Override
+    public void deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails){
+        baseMapper.deleteById(bigStorageCageDetails.getId());
+        bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+    }
+
+    //鐞嗙墖绗艰鎯呯牬鎹�
+    @Override
+    public void damageBigStorageCageDetails(String glassId){
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper=new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId,glassId);
+        TemperingGlassInfo temperingGlassInfo=temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
+
+        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper=new LambdaQueryWrapper<>();
+        bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId,glassId);
+        BigStorageCageDetails bigStorageCageDetails=baseMapper.selectOne(bigStorageCageDetailsWrapper);
+
+        if(temperingGlassInfo.getState()==-2){
+            temperingGlassInfoMapper.deleteById(temperingGlassInfo);
         }else{
-            return false;
+            temperingGlassInfo.setState(5);
+            temperingGlassInfoMapper.updateById(temperingGlassInfo);
+        }
+        baseMapper.deleteById(bigStorageCageDetails.getId());
+        bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+        //todo:鎻掑叆鐮存崯鏁版嵁
+
+    }
+
+    //鏌ヨ鐜荤拑淇℃伅
+    @Override
+    public BigStorageCageDetails selectBigStorageCageDetails(String glassId){
+        LambdaQueryWrapper<GlassInfo> glassInfoWrapper=new LambdaQueryWrapper<>();
+        glassInfoWrapper.eq(GlassInfo::getGlassId,glassId);
+        GlassInfo glassInfo=glassInfoMapper.selectOne(glassInfoWrapper);
+        BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails();
+        BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
+        bigStorageCageDetails.setState(0);
+        bigStorageCageDetails.setGap(20);
+        return bigStorageCageDetails;
+    }
+
+    //鐞嗙墖绗艰鎯呮坊鍔�
+    @Override
+    public void insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails){
+        baseMapper.insert(bigStorageCageDetails);
+        bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
+    }
+
+    //鐞嗙墖绗艰鎯呭畬鎴�
+    @Override
+    public void finishBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails){
+        if(bigStorageCageDetails.getState()==1||bigStorageCageDetails.getState()==2){
+            bigStorageCageDetails.setState(0);
+            baseMapper.updateById(bigStorageCageDetails);
+            bigStorageCageFeedTaskMapper.deleteById(bigStorageCageDetails.getBigStorageCageFeedTask().getId());
+        }else{
+            baseMapper.deleteById(bigStorageCageDetails.getId());
+            bigStorageCageOutTaskMapper.deleteById(bigStorageCageDetails.getBigStorageCageOutTask().getId());
         }
 
     }
+
+    //鎵嬪姩鍑虹墖
+    @Override
+    public void outBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails){
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper =new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper
+                .eq(TemperingGlassInfo::getGlassId,bigStorageCageDetails.getGlassId());
+        TemperingGlassInfo temperingGlassInfo=temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
+        if(temperingGlassInfo.getGlassId()==null){
+            LambdaQueryWrapper<GlassInfo> glassInfoWrapper=new LambdaQueryWrapper<>();
+            glassInfoWrapper
+                    .eq(GlassInfo::getGlassId,bigStorageCageDetails.getGlassId());
+            GlassInfo glassInfo=glassInfoMapper.selectOne(glassInfoWrapper);
+            TemperingGlassInfo temperingGlassInfo1=new TemperingGlassInfo();
+            BeanUtils.copyProperties(glassInfo, temperingGlassInfo1);
+
+            if(temperingGlassInfo.getTemperingLayoutId()!=null){
+                temperingGlassInfo1.setState(-1);
+            }else{
+                temperingGlassInfo1.setState(-2);
+            }
+            temperingGlassInfoMapper.insert(temperingGlassInfo1);
+        }
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index c798fc7..a9bfa0c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -3,7 +3,10 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
@@ -36,7 +39,7 @@
  */
 @Service
 @Slf4j
-public class BigStorageCageServiceImpl extends ServiceImpl<BigStorageCageMapper, BigStorageCage> implements BigStorageCageService {
+public class BigStorageCageServiceImpl extends MPJBaseServiceImpl<BigStorageCageMapper, BigStorageCage> implements BigStorageCageService {
     @Resource
     private BigStorageCageMapper bigStorageCageMapper;
 
@@ -52,57 +55,93 @@
     //杩涚墖閫昏緫
     @Override
     public BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) {
-
-        LambdaQueryWrapper<BigStorageCageDetails> wrapper = new LambdaQueryWrapper<>();
-        wrapper.eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
-                .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() - 1);
-        BigStorageCageDetails layoutSlotInfo;
-        layoutSlotInfo= bigStorageCageDetailsMapper.selectOne(wrapper);
-        log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�"+layoutSlotInfo);
         BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
+        //鐜荤拑涓嶉挗鍖栨椂
+        if(glassInfo.getTemperingLayoutId()==null){
 
-        log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂"+layoutSlotInfo.getSlot());
-        if (layoutSlotInfo.getSlot() != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())) {
-            bigStorageCageDetails.setSlot(layoutSlotInfo.getSlot());
-        } else {
-            log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴");
-            LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailslambdaQueryWrapper = new LambdaQueryWrapper<>();
-            bigStorageCageDetailslambdaQueryWrapper
-                    .select(BigStorageCageDetails::getTemperingLayoutId);
-            layoutSlotInfo = bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailslambdaQueryWrapper);
+            BigStorageCage bigStorageCage=baseMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                    .selectAll(BigStorageCage.class)
+                    .leftJoin(BigStorageCageDetails.class, on -> on
+                            .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                            .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                    .isNull(BigStorageCageDetails::getTemperingLayoutId)
+                    .gt(BigStorageCage::getRemainWidth, 2000)
+                    .orderByAsc(BigStorageCage::getDeviceId, BigStorageCage::getSlot)
+                    .last("limit 1")
+            );
 
-            if(layoutSlotInfo != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())){
-                log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�");
-                BigStorageCage bigStorageCage=bigStorageCageSlot(layoutSlotInfo.getDeviceId());
+            if(bigStorageCage.getSlot()!=null){
                 bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
-            }else{
-                log.info("5銆佽幏鍙栨瘡涓瀛愮増鍥緄d鐨勪釜鏁�");
-                QueryWrapper<BigStorageCageDetails> queryWrapper = new QueryWrapper<>();
-                queryWrapper.select("a.device_id", "COUNT(DISTINCT b.tempering_layout_id) AS layoutCount")
-                        .groupBy("a.device_id")
-                        .apply("LEFT JOIN (SELECT device_id, tempering_layout_id FROM big_storage_cage_details) b ON a.device_id = b.device_id AND a.slot = b.slot")
-                        .orderByAsc("layoutCount")
-                        .orderByAsc("a.device_id");
-                List<Map<String, Object>> bigStorageCageDetailsCount= bigStorageCageDetailsMapper.selectMaps(queryWrapper);
+                bigStorageCageDetails.setDeviceId(bigStorageCage.getDeviceId());
+            }
+        }else{
+            //鐜荤拑閽㈠寲鏃�
+            BigStorageCage bigStorageCage=new BigStorageCage();
 
-                log.info("5銆佹煡璇㈢瀛愬唴鏄惁鏈夊悎閫傜殑鏍煎瓙");
-                boolean found=false;
-                for (Map<String, Object> map : bigStorageCageDetailsCount) {
-                    for (Map.Entry<String, Object> entry : map.entrySet()) {
-                        int deviceId = Integer.parseInt(entry.getKey());
-                        BigStorageCage bigStorageCage=bigStorageCageSlot(deviceId);
-                        if(bigStorageCage!=null){
-                            bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
-                            found=true;
+            bigStorageCage=baseMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                    .selectAll(BigStorageCage.class)
+                    .leftJoin(BigStorageCageDetails.class, on -> on
+                            .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                            .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                    .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                    .eq(BigStorageCageDetails::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence() - 1)
+                    .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth())
+            );
+            log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�"+bigStorageCage);
+
+            log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂"+bigStorageCage.getSlot());
+            if (bigStorageCage.getSlot() != null) {
+                bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
+                bigStorageCageDetails.setDeviceId(bigStorageCage.getDeviceId());
+            } else {
+                log.info("3銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓虹┖鏃惰幏鍙栧綋鍓嶇幓鐠冪増鍥緄d鏄惁瀛樺湪鐞嗙墖绗煎唴");
+
+                bigStorageCage=baseMapper.selectJoinOne(BigStorageCage.class, new MPJLambdaWrapper<BigStorageCage>()
+                        .selectAll(BigStorageCage.class)
+                        .leftJoin(BigStorageCageDetails.class, on -> on
+                                .eq(BigStorageCage::getDeviceId, BigStorageCageDetails::getDeviceId)
+                                .eq(BigStorageCage::getSlot, BigStorageCageDetails::getSlot))
+                        .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
+                        .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth())
+                );
+
+                if(bigStorageCage != null){
+                    log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�");
+                    BigStorageCage bigStorageCages=bigStorageCageSlot(bigStorageCage.getDeviceId());
+                    bigStorageCageDetails.setSlot(bigStorageCages.getSlot());
+                    bigStorageCageDetails.setDeviceId(bigStorageCages.getDeviceId());
+                }else{
+                    log.info("5銆佽幏鍙栨瘡涓瀛愮増鍥緄d鐨勪釜鏁�");
+                    QueryWrapper<BigStorageCageDetails> queryWrapper = new QueryWrapper<>();
+                    queryWrapper.select("a.device_id", "COUNT(DISTINCT b.tempering_layout_id) AS layoutCount")
+                            .groupBy("a.device_id")
+                            .apply("LEFT JOIN (SELECT device_id, tempering_layout_id FROM big_storage_cage_details) b ON a.device_id = b.device_id AND a.slot = b.slot")
+                            .orderByAsc("layoutCount")
+                            .orderByAsc("a.device_id");
+                    List<Map<String, Object>> bigStorageCageDetailsCount= bigStorageCageDetailsMapper.selectMaps(queryWrapper);
+
+                    log.info("5銆佹煡璇㈢瀛愬唴鏄惁鏈夊悎閫傜殑鏍煎瓙");
+                    boolean found=false;
+                    for (Map<String, Object> map : bigStorageCageDetailsCount) {
+                        for (Map.Entry<String, Object> entry : map.entrySet()) {
+                            int deviceId = Integer.parseInt(entry.getKey());
+                            BigStorageCage bigStorageCages=bigStorageCageSlot(deviceId);
+                            if(bigStorageCage!=null){
+                                bigStorageCageDetails.setSlot(bigStorageCages.getSlot());
+                                bigStorageCageDetails.setDeviceId(deviceId);
+                                found=true;
+                                break;
+                            }
+                        }
+                        if(found){
                             break;
                         }
-                    }
-                    if(found){
-                        break;
                     }
                 }
             }
         }
+
+
 
         if (bigStorageCageDetails.getSlot() != null) {
             log.info("6銆佸綋鎵惧埌鍚堥�傜殑鏍煎瓙鏃舵坊鍔犵幓鐠冨埌绗煎瓙琛�");
@@ -138,27 +177,34 @@
             return true;
         }else{
             log.info("3銆佹病鏈夊彲鍑虹殑鐜荤拑鏃惰幏鍙栨槸鍚︽湁灏忕墖鍒伴綈鐨勭増鍥�");
-            LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailslambdaQueryWrapper = new LambdaQueryWrapper<>();
-            bigStorageCageDetailslambdaQueryWrapper
-                    .select(BigStorageCageDetails::getTemperingLayoutId)
-                    .groupBy(BigStorageCageDetails::getTemperingLayoutId);
-            List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(bigStorageCageDetailslambdaQueryWrapper);
-            for (Map<String, Object> map : temperingLayoutIdList) {
-                for (Map.Entry<String, Object> entry : map.entrySet()) {
-                    String layoutId = entry.getKey().substring(0, entry.getKey().indexOf('-'));
-                    String layoutNum = entry.getKey().substring(entry.getKey().indexOf('-') + 1);
-                    if (layoutNum.equals(entry.getValue())) {
-                        log.info("4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛�");
+
+            QueryWrapper<BigStorageCageDetails> wrapper = Wrappers.query();
+            wrapper.select("tempering_layout_id", "count(tempering_layout_id)")
+                    .groupBy("tempering_layout_id");
+            List<Map<String, Object>> temperingLayoutIdList = bigStorageCageDetailsMapper.selectMaps(wrapper);
+
+            boolean key=false;
+            for (Map<String, Object> row : temperingLayoutIdList) {
+                for (Map.Entry<String, Object> entry : row.entrySet()) {
+                    String temperingId = entry.getKey();
+                    Object temperingNo = entry.getValue();
+
                         LambdaQueryWrapper<GlassInfo> glassInfoWrapper=new LambdaQueryWrapper<>();
-                        glassInfoWrapper.select(GlassInfo::getTemperingLayoutId)
+                        glassInfoWrapper.eq(GlassInfo::getTemperingLayoutId,temperingId)
                                 .orderByDesc(GlassInfo::getTemperingFeedSequence);
                         List<GlassInfo> glassInfoList= glassInfoService.list(glassInfoWrapper);
-                        for (GlassInfo glassInfo:glassInfoList
-                             ) {
-                            TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
-                            BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
-                            temperingGlassInfoService.save(temperingGlassInfo);
+                        if(glassInfoList.size()==Integer.parseInt(temperingNo.toString())){
+                            for (GlassInfo glassInfo:glassInfoList
+                            ) {
+
+                                TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
+                                BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
+                                temperingGlassInfoService.save(temperingGlassInfo);
+
+                            }
+                            key=true;
                         }
+                    if(key){
                         return false;
                     }
                 }
@@ -188,17 +234,17 @@
     //鏌ヨ澶х悊鐗囦俊鎭紝鍓嶇灞曠ず鐢�
     @Override
     public List<BigStorageCage> querybigStorageCageDetail(int deviceId) {
+        LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper =new LambdaQueryWrapper<>();
+        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
+        if(deviceId!=0){
+            bigStorageCageWrapper.eq(BigStorageCage::getDeviceId,deviceId);
+            bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getDeviceId,deviceId);
+        }
 
-        LambdaQueryWrapper<BigStorageCage> BigStorageCageWrapper =new LambdaQueryWrapper<>();
-        BigStorageCageWrapper.eq(BigStorageCage::getSlot,deviceId);
-
-        LambdaQueryWrapper<BigStorageCageDetails> BigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
-        BigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getSlot,deviceId);
-
-        List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(BigStorageCageWrapper);
+        List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(bigStorageCageWrapper);
         log.info("1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭畬鎴愶紝鑾峰彇鍒扮殑鏁版嵁{}", bigStorageCages.size());
 
-        List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(BigStorageCageDetailsWrapper);
+        List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
 
         Map<Integer, List<BigStorageCageDetails>> listMap = bigStorageCageDetailsList.stream().collect(Collectors.groupingBy(BigStorageCageDetails::getSlot));
         for (BigStorageCage bigStorageCage : bigStorageCages) {
@@ -212,24 +258,21 @@
     @Override
     public List<Map<String, Object>> selectBigStorageCageUsage() {
         QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>();
-        wrapper.select("device_id")
-                .select("ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2) AS percentage")
-                .select("COUNT(device_id) - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count")
+        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2) AS percentage,COUNT(device_id) - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count")
+
                 .groupBy("device_id");
         List<Map<String, Object>> bigStorageCageUsages=baseMapper.selectMaps(wrapper);
+
         return bigStorageCageUsages;
     }
 
-    //鍒ゆ柇绗煎瓙鍓╀綑瀹藉害鏄惁瓒冲
+    //绗煎瓙鐨勫惎鐢�/绂佺敤
     @Override
-    public boolean selectWidthSufficient(BigStorageCageDetails layoutSlotInfo,double width) {
-        LambdaQueryWrapper<BigStorageCage> BigStorageCageWrapper = new LambdaQueryWrapper<>();
-        BigStorageCageWrapper.eq(BigStorageCage::getSlot,layoutSlotInfo.getSlot());
-        BigStorageCage bigStorageCage=baseMapper.selectOne(BigStorageCageWrapper);
-        if(bigStorageCage.getRemainWidth()>width){
-            return true;
-        }else{
-            return false;
-        }
+    public void updateStorageCageDisabled(int slot,int enableState){
+        BigStorageCage bigStorageCage=new BigStorageCage();
+        bigStorageCage.setEnableState(enableState);
+        LambdaQueryWrapper<BigStorageCage> bigStorageCageWrapper = new LambdaQueryWrapper<>();
+        bigStorageCageWrapper.eq(BigStorageCage::getSlot,slot);
+        baseMapper.update(bigStorageCage,bigStorageCageWrapper);
     }
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
index 332c237..dab2e01 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageFeedTaskController.java
@@ -27,10 +27,10 @@
 
     @Autowired
     private BigStorageCageFeedTaskService bigStorageCageFeedTaskService;
-    @ApiOperation("杩涚墖浠诲姟淇℃伅")
-    @GetMapping("/querybigStorageCageTask")
-    public List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState) {
-        return bigStorageCageFeedTaskService.querybigStorageCageFeedTask(taskState);
-    }
+//    @ApiOperation("杩涚墖浠诲姟淇℃伅")
+//    @GetMapping("/querybigStorageCageFeedTask")
+//    public List<BigStorageCageFeedTask> querybigStorageCageFeedTask(int taskState) {
+//        return bigStorageCageFeedTaskService.querybigStorageCageFeedTask(taskState);
+//    }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
index dbdc794..cd4e8db 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/controller/BigStorageCageOutTaskController.java
@@ -27,11 +27,11 @@
 
     @Autowired
     private BigStorageCageOutTaskService bigStorageCageOutTaskService;
-    @ApiOperation("杩涚墖浠诲姟淇℃伅")
-    @GetMapping("/querybigStorageCageTask")
-    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
-        return bigStorageCageOutTaskService.querybigStorageCageOutTask(taskState);
-    }
+//    @ApiOperation("鍑虹墖浠诲姟淇℃伅")
+//    @GetMapping("/querybigStorageCageOutTask")
+//    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
+//        return bigStorageCageOutTaskService.querybigStorageCageOutTask(taskState);
+//    }
 
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
index 41ed73d..18c8c2f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java
@@ -17,7 +17,7 @@
  * @author zhoush
  * @since 2024-04-16
  */
-@ApiModel(description = "<p>  </p>")
+@ApiModel(description = "<p> 鐞嗙墖杩涚浠诲姟 </p>")
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class BigStorageCageFeedTask implements Serializable {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
index 2094530..a9959d5 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java
@@ -17,7 +17,7 @@
  * @author zhoush
  * @since 2024-04-16
  */
-@ApiModel(description = "<p>  </p>")
+@ApiModel(description = "<p> 鐞嗙墖鍑虹浠诲姟 </p>")
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class BigStorageCageOutTask implements Serializable {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
index 52ad531..f6e8f1c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -1,9 +1,11 @@
 package com.mes.edgglasstask.entity;
 
+import cn.hutool.core.date.DateTime;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import net.sf.jsqlparser.expression.DateTimeLiteralExpression;
 
 import java.io.Serializable;
 
@@ -67,5 +69,10 @@
     @ApiModelProperty(value = "绾胯矾", position = 8)
     private Integer line;
 
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "鏃堕棿", position = 9)
+    private DateTime time;
 
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
index 1589b7d..8436faf 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -13,4 +13,7 @@
  */
 public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
 
+    int judgeTasktype(String plcFeedReqLine);
+
+    int startTask();
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
index 34a06f4..899f474 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -1,10 +1,16 @@
 package com.mes.edgglasstask.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
+import com.mes.bigstorage.service.BigStorageCageService;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
 
 /**
  * <p>
@@ -17,4 +23,62 @@
 @Service
 public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
 
+    @Resource
+    BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Override
+    public int judgeTasktype(String plcFeedReqLine){
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassTaskInfoWrapper=new LambdaQueryWrapper<>();
+        edgGlassTaskInfoWrapper
+                .eq(EdgGlassTaskInfo::getLine,plcFeedReqLine)
+                .orderByDesc(EdgGlassTaskInfo::getTime);
+        EdgGlassTaskInfo edgGlassTaskInfo=baseMapper.selectOne(edgGlassTaskInfoWrapper);
+        double width=bigStorageCageDetailsService.selectGetBoard(plcFeedReqLine);
+        if(edgGlassTaskInfo.getWidth()<width){
+            return 0;
+        }else{
+            return 1;
+        }
+    }
+
+    @Override
+    public int startTask(){
+
+        double line1Width=bigStorageCageDetailsService.selectGetBoard("1");
+        double line2Width=bigStorageCageDetailsService.selectGetBoard("2");
+
+        LambdaQueryWrapper<EdgGlassTaskInfo> edgGlassTaskInfoWrapper=new LambdaQueryWrapper<>();
+        edgGlassTaskInfoWrapper
+                .eq(EdgGlassTaskInfo::getLine,1)
+                .orderByDesc(EdgGlassTaskInfo::getTime);
+        List<EdgGlassTaskInfo> edgGlassTaskInfoList1=baseMapper.selectList(edgGlassTaskInfoWrapper);
+        int i=0;
+        for (EdgGlassTaskInfo edgGlassTaskInfo:edgGlassTaskInfoList1
+             ) {
+            if(edgGlassTaskInfo.getWidth()<line1Width){
+                i+=1;
+                line1Width-=edgGlassTaskInfo.getWidth()+20;
+            }
+        }
+        if(i==2){
+            return 2;
+        }
+
+        edgGlassTaskInfoWrapper
+                .eq(EdgGlassTaskInfo::getLine,2)
+                .orderByDesc(EdgGlassTaskInfo::getTime);
+        List<EdgGlassTaskInfo> edgGlassTaskInfoList2=baseMapper.selectList(edgGlassTaskInfoWrapper);
+        i=0;
+        for (EdgGlassTaskInfo edgGlassTaskInfo:edgGlassTaskInfoList2
+        ) {
+            if(edgGlassTaskInfo.getWidth()<line2Width){
+                i+=1;
+                line2Width-=edgGlassTaskInfo.getWidth()+20;
+            }
+        }
+        if(i==2) {
+            return 1;
+        }else{
+            return 2;
+        }
+    }
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/TaskCacheService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/TaskCacheService.java
index 9b066de..337dbb0 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/TaskCacheService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/TaskCacheService.java
@@ -13,5 +13,4 @@
  */
 public interface TaskCacheService extends IService<TaskCache> {
 
-    int judgeTasktype();
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/impl/TaskCacheServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/impl/TaskCacheServiceImpl.java
index 1d82f99..8253eeb 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/impl/TaskCacheServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgstoragetask/service/impl/TaskCacheServiceImpl.java
@@ -24,30 +24,6 @@
 @Qualifier("")
 @Service
 public class TaskCacheServiceImpl extends ServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService {
-    @Resource
-    private BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
-    @Override
-    public int judgeTasktype(){
-        //鍒ゆ柇鏍规嵁褰撳墠鍗ц浆绔嬩换鍔′笌纾ㄨ竟绾夸换鍔″垽鏂槸鍚﹀惎鍔ㄥ崸杞珛
-//        for (int i=1;i<=2;i++){
-//            //鏌ヨ鍗ц浆绔嬪綋鍓嶄换鍔�
-//            int width=5000;
-//            int num=0;
-//            List<BigStorageCageFeedTask> bgStorageCageFeedTask =bigStorageCageFeedTaskMapper.();
-//            //鏌ヨ纾ㄨ竟绾垮綋鍓嶄换鍔�
-//            LambdaQueryWrapper<TaskCache> taskCacheWrapper=new LambdaQueryWrapper<>();
-//            taskCacheWrapper.eq(TaskCache::getTaskStauts,"0");
-//            List<TaskCache> taskCacheList=taskCacheService.list(taskCacheWrapper);
-//            //鍒ゆ柇褰撳墠绾胯矾杩橀渶瑕佸啀涓婂嚑鐗囨墠鑳芥弧瓒冲皬杞﹀搴�
-//            for (TaskCache taskCache:taskCacheList
-//            ) {
-//                if(taskCache.getId().equals("1")){
-//                    //杩涚墖杞﹀搴﹀噺鍘诲皬鐗囧搴�
-//                }
-//            }
-//            //鐗囨暟灏忎簬绛変簬2鏃跺彟涓�鏉$嚎鍗ц浆绔嬪惎鍔�
-//            log.info("鍙戦�佸崸杞珛鍚姩淇″彿");
-//        }
-        return 0;
-    }
+
+
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
index d0c68d0..bc3d222 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -1,22 +1,11 @@
 package com.mes.job;
 
 import cn.hutool.json.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.mes.bigstorage.entity.BigStorageCage;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
-import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
-import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
-import com.mes.bigstoragetask.service.BigStorageCageFeedTaskService;
-import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
 import com.mes.common.S7object;
 import com.mes.device.PlcParameterObject;
-import com.mes.edgstoragetask.service.TaskCacheService;
-import com.mes.glassinfo.entity.GlassInfo;
-import com.mes.glassinfo.service.GlassInfoService;
-import com.mes.menu.service.SysMenuService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.tools.WebSocketServer;
@@ -29,6 +18,9 @@
 import java.util.List;
 import java.util.Map;
 
+/**
+ * @author SNG-015
+ */
 @Component
 @Slf4j
 public class PlcSlicecage {
@@ -40,7 +32,6 @@
     @Resource
     private TemperingGlassInfoService temperingGlassInfoService;
 
-    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
     /**
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
@@ -78,7 +69,11 @@
             //鎶ヨ淇℃伅
             jsonObject.append("bigStorageCageFullAlarm", PlcStorageCageTask.bigStorageCageFullAlarm);
 
-            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+            //鐞嗙墖绗艰〃鏍间俊鎭�
+            jsonObject.append("bigStorageCageInfo", bigStorageCageService.querybigStorageCageDetail(0));
+
+
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
             if (sendwServer != null) {
                 for (WebSocketServer webserver : sendwServer) {
                     if (webserver != null) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index 476151f..e5610a7 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -8,9 +8,11 @@
 import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
 import com.mes.common.S7object;
 import com.mes.device.PlcParameterObject;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import com.mes.edgstoragetask.service.TaskCacheService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -18,6 +20,9 @@
 import javax.annotation.Resource;
 import java.util.List;
 
+/**
+ * @author SNG-015
+ */
 @Component
 @Slf4j
 public class PlcStorageCageTask {
@@ -33,11 +38,17 @@
     @Resource
     private BigStorageCageOutTaskService bigStorageCageOutTaskService;
     @Resource
-    private TaskCacheService taskCacheService;
+    private EdgGlassTaskInfoService edgGlassTaskInfoService;
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
 
     PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
 
     public static boolean bigStorageCageFullAlarm = false;
+
+    private int line1Time=0;
+    private int line2Time=0;
+
     /**
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
@@ -56,16 +67,18 @@
                 plcFeedReqLine = "2";
                 plcFeedGlassid=plcParameterObject.getPlcParameter("D04ID1").getValue();
             }
+            line1Time+=1;
+            line2Time+=1;
 
             if (!("0".equals(plcFeedReqLine))) {
                 log.info("1銆丳lc杩涚墖璇锋眰鏃�");
                 BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
                 GlassInfo glassInfo = glassInfoService.getById(plcFeedGlassid);
                 log.info("2銆佹牴鎹幓鐠僫d鑾峰彇鐜荤拑淇℃伅" + glassInfo);
-                if(bigStorageCageDetailsService.selectGetBoard(glassInfo,plcFeedReqLine)){
+                if(bigStorageCageDetailsService.selectGetBoard(plcFeedReqLine)>=0){
                     BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails);
                     if (slotInfo != null) {
-                        int taskType = taskCacheService.judgeTasktype();
+                        int taskType = edgGlassTaskInfoService.judgeTasktype(plcFeedReqLine);
                         log.info("3銆佹煡璇换鍔¤〃鍒ゆ柇褰撳墠浠诲姟绫诲瀷涓轰笂杞︾瓑鍒拌繕鏄笂杞﹀惎鍔�" + taskType);
                         bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType);
                         log.info("4銆佹坊鍔犱换鍔″埌浠诲姟琛�");
@@ -94,17 +107,39 @@
                     bigStorageCageFeedTaskService.removeById(bigStorageCageFeedTask);
                     log.info("7銆佸垹闄ゅ凡缁忓畬鎴愮殑杩涚墖浠诲姟");
                 }
+                //鍚姩闃堝��
+                if(line1Time>=300){
+                    if("0".equals(plcParameterObject.getPlcParameter("D05Go").getValue())){
+                        S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1);
+                    }
+                }
+                if(line2Time>=300){
+                    if("0".equals(plcParameterObject.getPlcParameter("D02Go").getValue())){
+                        S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1);
+                    }
+                }
             }
 
             //鏌ヨ鍑虹墖琛ㄦ槸鍚︽湁浠诲姟鏈畬鎴愮殑浠诲姟
             List<BigStorageCageOutTask> bigStorageCageOutTask=bigStorageCageOutTaskService.querybigStorageCageOutTask(0);
             if(bigStorageCageOutTask.size()==0){
-                bigStorageCageService.outGlass();
+                boolean result=bigStorageCageService.outGlass();
                 log.info("8銆佹病鏈夋湭瀹屾垚浠诲姟鏃惰皟鐢ㄥ嚭鐗囨帴鍙�");
+                if (result==false){
+                    temperingGlassInfoService.schedulingTask();
+                }
             }
             bigStorageCageOutTaskService.updateOutTask();
             log.info("9銆佹牴鎹换鍔¤〃鐘舵�佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
 
+            //鏉ヤ笉鍙婇�佹椂鐩存帴璧�
+            String line=Integer.toString(edgGlassTaskInfoService.startTask());
+
+            if(!(line.equals(plcFeedReqLine))){
+                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1);
+            }else{
+                S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1);
+            }
 
 
         } catch (Exception e) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index 5418041..ad8b70f 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -2,6 +2,7 @@
 
 
 import com.mes.bigstorage.entity.BigStorageCage;
+import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
@@ -32,18 +33,21 @@
 
     @Autowired
     private TemperingGlassInfoService temperingGlassInfoService;
+    @Autowired
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
 
-    @ApiOperation("閽㈠寲灏忕墖淇℃伅")
-    @GetMapping("/queryTemperingGlassInfo")
-    public Result queryTemperingGlassInfo() {
-        return Result.build(200,"鏌ヨ鎴愬姛",temperingGlassInfoService.list());
+    @ApiOperation("鍑虹墖浠诲姟鍒犻櫎")
+    @PostMapping("/deleteTemperingGlassInfo")
+    public Result deleteTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo) {
+        temperingGlassInfoService.removeById(temperingGlassInfo);
+        return Result.build(200,"鍒犻櫎鎴愬姛",1);
     }
 
-    @ApiOperation("鎵嬪姩娣诲姞鍑虹墖浠诲姟")
-    @PostMapping("/insertTemperingGlassInfo")
-    public Result insertBigStorageCageDetail(TemperingGlassInfo temperingGlassInfo) {
-        temperingGlassInfoService.save(temperingGlassInfo);
-        return Result.build(200,"娣诲姞鎴愬姛",1);
+    @ApiOperation("鍑虹墖浠诲姟鐮存崯")
+    @PostMapping("/damageTemperingGlassInfo")
+    public Result damageTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo) {
+        bigStorageCageDetailsService.damageBigStorageCageDetails(temperingGlassInfo.getGlassId());
+        return Result.build(200,"鐮存崯鎴愬姛",1);
     }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
index 3280efb..5f1a325 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/TemperingGlassInfoService.java
@@ -17,4 +17,5 @@
 
     public void addOutTask(List<TemperingGlassInfo> temperingGlassInfoList);
 
+    void schedulingTask();
 }
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 b9e6e98..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;
@@ -33,7 +50,7 @@
             if((carWidth-temperingGlassInfo.getWidth())>0){
                 carWidth-=temperingGlassInfo.getWidth()+gap;
                 log.info("2銆佹坊鍔犻挗鍖栧皬鐗囪〃淇℃伅鍒颁换鍔¤〃");
-                temperingGlassInfo.setState(0);
+                temperingGlassInfo.setState(-1);
                 baseMapper.updateById(temperingGlassInfo);
                 log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
                 BigStorageCageOutTask bigStorageCageOutTask =new BigStorageCageOutTask();
@@ -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;
+                        }
+                    }
+                }
+            }
+        }
+    }
 }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
index 66aef59..3421f33 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/engineering/controller/EngineeringController.java
@@ -37,7 +37,7 @@
     @Autowired
     private OptimizeProjectService optimizeProjectService;
     @ApiOperation("寮�濮�/鏆傚仠浠诲姟/浼犻�掑伐绋嬪彿鍜岀姸鎬�,寮�濮嬫槸1 鏆傚仠鏄�0")
-    @PostMapping("/pauseTask") //璋冪敤涓婄墖浠诲姟
+    @PostMapping("/pauseTask") //鏆傚仠涓婄墖浠诲姟
     @ResponseBody
     public  Result <List<UpPattenUsage>> pauseTask(@RequestBody Engineering engineering) {
         boolean work=engineeringService.changeTask(engineering.getEngineerId(),engineering.getState());
@@ -46,6 +46,16 @@
         return Result.build(200, engineering.getEngineerId(),glass);
     }
 
+    @ApiOperation("鏆傚仠")
+    @PostMapping("/pause") //鏆傚仠涓婄墖浠诲姟
+    @ResponseBody
+    public  Result <List<UpPattenUsage>> pause(@RequestBody Engineering engineering) {
+        boolean work=engineeringService.changeTask(engineering.getEngineerId(),engineering.getState());
+        List<UpPattenUsage> glass = upPattenUsageService.prioritylist();
+        log.info("StartorStop:{},{}", work,engineering);
+        return Result.build(200, engineering.getEngineerId(),glass);
+    }
+
     @ApiOperation("寮�濮嬩笂鐗�")
     @PostMapping("/changeTask") //璋冪敤涓婄墖浠诲姟
     @ResponseBody
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java
index 489df44..8fb3948 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/TemperingGlassModuleApplication.java
@@ -5,6 +5,7 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 /**
@@ -16,6 +17,7 @@
 @SpringBootApplication
 @EnableSwagger2
 @EnableDiscoveryClient
+@EnableScheduling
 @MapperScan(basePackages = "com.mes.*.mapper")
 public class TemperingGlassModuleApplication {
     public static void main(String[] args) {
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
new file mode 100644
index 0000000..863c349
--- /dev/null
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/PlcTemperingGlassTask.java
@@ -0,0 +1,57 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingAgoService;
+import com.mes.tools.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PlcTemperingGlassTask {
+
+    @Autowired
+    private TemperingAgoService temperingAgoService;
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+
+    @Scheduled(fixedDelay = 1000)
+    public void loadGlassHome(){
+        JSONObject jsonObject = new JSONObject();
+        //姝e湪绛夊緟杩涚墖鐨勭幓鐠�
+        List<TemperingGlassInfo> waitingGlass = temperingAgoService.selectWaitingGlass();
+        jsonObject.append("waitingGlass", waitingGlass);
+        //杩涚倝涓殑鐜荤拑
+        List<TemperingGlassInfo> intoGlass = temperingAgoService.selectIntoGlass();
+        jsonObject.append("intoGlass", intoGlass);
+        //鍑虹倝鍚庣殑鐜荤拑
+        List<TemperingGlassInfo> outGlass = temperingAgoService.selectOutGlass();
+        jsonObject.append("outGlass", outGlass);
+        //杩囨棆杞彴閽㈠寲鍚庣殑鐜荤拑
+        TemperingGlassInfo overGlass = temperingAgoService.selectOverGlass();
+        jsonObject.append("overGlass", overGlass);
+
+        ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("temperingGlass");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    webserver.sendMessage(jsonObject.toString());
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
index 2fbfdcc..23a57e0 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/controller/TemperingGlassInfoController.java
@@ -25,8 +25,6 @@
     @Autowired
     TemperingService temperingService;
     @Autowired
-    private TemperingOverService temperingOverService;
-    @Autowired
     private TemperingAgoService temperingAgoService;
 
     @ApiOperation("鏌ヨ閽㈠寲绛夌墖涓殑鐗堝浘淇℃伅,鐘舵�佷负1鐨勪负宸插埌,鐘舵�佷负0鐨勪负绛夊緟涓�")
@@ -46,7 +44,7 @@
     @ApiOperation("//閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅銆�")
     @GetMapping("/selectOutGlass") //閽㈠寲鍚庢樉绀哄嚭鐐夌殑鐗堝浘淇℃伅
     public Result <List<TemperingGlassInfo>> selectOutGlass() {
-        List<TemperingGlassInfo> glass = temperingAgoService.SelectOutGlass();
+        List<TemperingGlassInfo> glass = temperingAgoService.selectOutGlass();
         log.info("閽㈠寲鍑虹倝鍚庣殑鐜荤拑淇℃伅{}",glass);
         return Result.build(200, "", glass);
     }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
index 16bb9f2..76f6375 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
@@ -1,5 +1,6 @@
 package com.mes.temperingglass.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
@@ -12,6 +13,7 @@
  * @author zhoush
  * @since 2024-04-07
  */
+@DS("salve_hangzhoumes")
 public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo>, MPJBaseMapper<TemperingGlassInfo> {
 
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java
index 3b66b46..2b0a3a7 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingMapper.java
@@ -1,5 +1,6 @@
 package com.mes.temperingglass.mapper;
 
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import org.apache.ibatis.annotations.Mapper;
@@ -8,27 +9,7 @@
 import java.util.List;
 
 @Mapper
+@DS("salve_hangzhoumes")
 public interface TemperingMapper extends BaseMapper<TemperingGlassInfo> {
-
-
-    //鏌ヨ璇ョ幓鐠冪殑灏哄鍜屽潗鏍�
-//@Select("select *from glass_info where id=#{glassid};")
-//GlassInfo SelectGlass(String glassid);
-//鏄惁鍙互鍙戦�佽繘鐐変俊鍙�
-    @Select("select count(*) from glass_info where id=#{glassid};")
-    int SelectTempering(String glassid);
-
-    //鏌ヨ绛夊緟涓殑閽㈠寲鐗堝浘鐜荤拑淇℃伅
-    @Select("select*from tempering_glass_info a left join (select flowcard_id,count(state)state from tempering_glass_info GROUP BY flowcard_id,state)b on a.flowcard_id=b.flowcard_id where b.state=2")
-    List<TemperingGlassInfo> SelectWaitingGlass();
-
-    //鏌ヨ杩涚倝涓殑閽㈠寲鐗堝浘鐜荤拑淇℃伅
-    @Select("select*from tempering_glass_info a left join (select flowcard_id,min(state)state1 from tempering_glass_info GROUP BY flowcard_id having state1=1)b on a.flowcard_id=b.flowcard_id where b.state1=1")
-    List<TemperingGlassInfo> SelectInGlass();
-
-    //鏌ヨ閽㈠寲鍚庣殑閽㈠寲鐗堝浘淇℃伅
-    @Select("select*from tempering_glass_info a left join (select flowcard_id,min(state)state1 from tempering_glass_info GROUP BY flowcard_id having state1=2)b on a.flowcard_id=b.flowcard_id where b.state1=2")
-    List<TemperingGlassInfo> SelectOutGlass();
-
 
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
index af0cfbb..6a1bc50 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/TemperingAgoService.java
@@ -1,6 +1,4 @@
 package com.mes.temperingglass.service;
-
-import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.github.yulichang.base.MPJBaseService;
 import java.util.List;
@@ -19,5 +17,7 @@
 
     List<TemperingGlassInfo> selectIntoGlass();
 
-    List<TemperingGlassInfo> SelectOutGlass();
+    List<TemperingGlassInfo> selectOutGlass();
+
+    TemperingGlassInfo selectOverGlass();
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
index 4e00b7f..592580c 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingAgoServiceImpl.java
@@ -1,9 +1,7 @@
 package com.mes.temperingglass.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.github.yulichang.query.MPJQueryWrapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
 import com.mes.temperingglass.mapper.TemperingMapper;
@@ -11,8 +9,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.github.yulichang.base.MPJBaseServiceImpl;
-
-import java.util.Collections;
 import java.util.List;
 
 /**
@@ -24,6 +20,7 @@
  * @since 2024-04-07
  */
 @Service
+@DS("salve_hangzhoumes")
 public class TemperingAgoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingAgoService {
     @Autowired
     TemperingMapper temperingMapper;
@@ -32,7 +29,8 @@
     public List<TemperingGlassInfo> selectWaitingGlass() {
         //鑾峰彇绛夊緟杩涚倝涓殑鐜荤拑淇℃伅
         QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
-        wrapper.inSql("flowcard_id", "select flowcard_id from tempering_glass_info GROUP BY flowcard_id,state having count(state) = 2");
+        //wrapper.eq("state",1);
+        wrapper.in("state",1,0);
         return temperingMapper.selectList(wrapper);
     }
 
@@ -40,16 +38,27 @@
     public List<TemperingGlassInfo> selectIntoGlass() {
         //鑾峰彇杩涚倝涓殑鐜荤拑淇℃伅
         QueryWrapper<TemperingGlassInfo> wrapper = new QueryWrapper<>();
-        wrapper.inSql("flowcard_id", "select flowcard_id from tempering_glass_info where state=1 GROUP BY flowcard_id,state having count(state) = 1");
-
+        wrapper.eq("state",2)
+                .orderByAsc("tempering_layout_id","tempering_feed_sequence");
         return temperingMapper.selectList(wrapper);
     }
 
     @Override
-    public List<TemperingGlassInfo> SelectOutGlass() {
+    public List<TemperingGlassInfo> selectOutGlass() {
         //鑾峰彇鍑虹倝涓殑鐜荤拑淇℃伅
         QueryWrapper<TemperingGlassInfo> wapper = new QueryWrapper<>();
-        wapper.eq("state", 3);
+        wapper.eq("state", 3)
+                .orderByAsc("tempering_layout_id","tempering_feed_sequence");
         return temperingMapper.selectList(wapper);
     }
+
+    @Override
+    public TemperingGlassInfo selectOverGlass() {
+        //鑾峰彇杩囨棆杞彴鐨勭幓鐠�
+        QueryWrapper<TemperingGlassInfo> wapper = new QueryWrapper<>();
+        wapper.select("top 1 *").eq("state", 4)
+                .orderByAsc("tempering_layout_id")
+                .orderByDesc("tempering_feed_sequence");
+        return temperingMapper.selectOne(wapper);
+    }
 }
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
index f02ebee..a5bc31d 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -9,6 +9,11 @@
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
+        salve_hangzhoumes:
+          url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+          username: sa
+          password: beibo.123/
+          driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
   cloud:
     nacos:
       discovery:
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml
index 1e4042f..06b2222 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-loc.yml
@@ -9,6 +9,12 @@
           username: root
           password: root
           driver-class-name: com.mysql.cj.jdbc.Driver
+
+        salve_hangzhoumes:
+            url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes
+            username: sa
+            password: beibo.123/
+            driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
   cloud:
     nacos:
       discovery:
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
index 9fb2c6f..7aab87f 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-prod.yml
@@ -9,6 +9,12 @@
           username: root
           password: beibo.123/
           driver-class-name: com.mysql.cj.jdbc.Driver
+
+        salve_hangzhoumes:
+            url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes
+            username: sa
+            password: beibo.123/
+            driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
   cloud:
     nacos:
       discovery:
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
index 11fb3d2..42f2cd9 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/test/java/com/mes/TemperingApplicationTest.java
@@ -10,7 +10,6 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
-
 import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.List;
@@ -25,12 +24,8 @@
 @SpringBootTest(classes = TemperingGlassModuleApplication.class)
 public class TemperingApplicationTest {
 
-    @Resource
-    private OptimizeProjectMapper optimizeProjectMapper;
     @Autowired
     private TemperingAgoService temperingAgoService;
-    @Autowired
-    private GlassInfoService glassInfoService;
 
 
     @Test
@@ -40,7 +35,7 @@
     }
     @Test
     public void testFindPa2() {
-        List<TemperingGlassInfo> glass = temperingAgoService.SelectOutGlass();
+        List<TemperingGlassInfo> glass = temperingAgoService.selectOutGlass();
         log.info("宸插嚭涓殑鐜荤拑锛歿}", Arrays.asList(glass));
     }
 
@@ -49,4 +44,9 @@
         List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass();
         log.info("绛夊緟涓殑鐜荤拑锛歿}", Arrays.asList(glass));
     }
+    @Test
+    public void testFindPa4() {
+        TemperingGlassInfo glass = temperingAgoService.selectOverGlass();
+        log.info("绛夊緟涓殑鐜荤拑锛歿}", Arrays.asList(glass));
+    }
 }

--
Gitblit v1.8.0