From 3af375d6963531c403668f9fb507ae30d741a99f Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期四, 01 八月 2024 11:16:32 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java                                   |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java                                           |   20 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml                           |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java                                  |   21 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java                                             |   18 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java          |    6 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java                                        |   31 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |   65 +--
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java    |    7 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java                                                |  151 ++++++++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java                                          |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java                                  |   30 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java                                                      |  115 ++++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                         |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java                                     |   39 ++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java                                         |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                        |  131 +++++++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java                                        |   16 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java                                                   |   55 +++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                   |  196 ++++++-----
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                                          |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java                                              |   16 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/mapper/BigStorageCageDetailsMapper.java            |    2 
 23 files changed, 829 insertions(+), 146 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
index 2a8f6ea..f5bda8f 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java
@@ -52,7 +52,7 @@
     public static final Integer GLASS_STATE_SCHEDULE_ING = 104;
     public static final Integer GLASS_STATE_TAKE = 200;
     public static final Integer GLASS_STATE_DAMAGE = 201;
-    public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103);
+    public static final List<Integer> GLASS_STATE_IN_ALL = Arrays.asList(100, 102, 103, 104);
 
     /**
      * 鍗у紡鐞嗙墖绗艰鎯呰〃鐜荤拑鐘舵��
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 118d12e..1e52a35 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -9,6 +9,8 @@
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.pp.entity.BasicDataProduce;
+import com.mes.pp.entity.ReportingWork;
 import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.mapper.WorkAssignmentMapper;
 import org.springframework.beans.BeanUtils;
@@ -18,6 +20,8 @@
 import java.sql.Timestamp;
 import java.time.LocalDateTime;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -58,21 +62,134 @@
      * 鎻愪氦鎶ュ伐
      */
     @Override
-    public void submitDamage(String startTime, String endTime, int type, int status, String workingProcedure){
+    public void submitDamage(String startTime, String endTime, int type, int status, String workingProcedures){
         LambdaUpdateWrapper<Damage> damageUpdateWrapper=new LambdaUpdateWrapper<>();
-        damageUpdateWrapper.between(Damage::getDamageTime,startTime,endTime);
+        LambdaQueryWrapper<Damage> damageLambdaQueryWrapper=new LambdaQueryWrapper<>()
+;       damageUpdateWrapper.between(Damage::getDamageTime,startTime,endTime);
+        damageLambdaQueryWrapper.between(Damage::getDamageTime,startTime,endTime);
         if (type!=0){
             damageUpdateWrapper.eq(Damage::getType,type);
+            damageLambdaQueryWrapper.eq(Damage::getType,type);
         }
         if (status!=0){
             damageUpdateWrapper.eq(Damage::getStatus,status);
+            damageLambdaQueryWrapper.eq(Damage::getStatus,status);
         }
-        if(!"0".equals(workingProcedure)){
-            damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedure);
+        if(!"0".equals(workingProcedures)){
+            damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedures);
+            damageLambdaQueryWrapper.eq(Damage::getWorkingProcedure,workingProcedures);
         }
-        Damage damage=new Damage();
-        damage.setStatus(2);
-        baseMapper.update(damage,damageUpdateWrapper);
+//        Damage damage=new Damage();
+//        damage.setStatus(2);
+//        baseMapper.update(damage,damageUpdateWrapper);
+        List<Damage> damageList = baseMapper.selectList(damageLambdaQueryWrapper);
+        Map<String, Map<String, Map<String, Map<String, List<Damage>>>>> resultMap = damageList.stream()
+                .collect(Collectors.groupingBy(
+                        Damage::getProcessId,
+                        Collectors.groupingBy(
+                                Damage::getWorkingProcedure,
+                                Collectors.groupingBy(
+                                        Damage::getDeviceName,
+                                        Collectors.groupingBy(Damage::getTeamsGroupsName)
+                                )
+                        )
+                ));
+        // 閬嶅巻 resultMap
+        for (Map.Entry<String, Map<String, Map<String, Map<String, List<Damage>>>>> processEntry : resultMap.entrySet()) {
+            String processId = processEntry.getKey();
+            System.out.println("ProcessId: " + processId);
+
+            // 鑾峰彇绗簩灞傜殑 Map锛屾寜 workingProcedure 鍒嗙粍鐨勭粨鏋�
+            Map<String, Map<String, Map<String, List<Damage>>>> workingProcedureMap = processEntry.getValue();
+
+            // 閬嶅巻 workingProcedureMap
+            for (Map.Entry<String, Map<String, Map<String, List<Damage>>>> workingProcedureEntry : workingProcedureMap.entrySet()) {
+                String workingProcedure = workingProcedureEntry.getKey();
+                System.out.println("  WorkingProcedure: " + workingProcedure);
+
+                // 鑾峰彇绗笁灞傜殑 Map锛屾寜 deviceName 鍒嗙粍鐨勭粨鏋�
+                Map<String, Map<String, List<Damage>>> deviceNameMap = workingProcedureEntry.getValue();
+
+                // 閬嶅巻 deviceNameMap
+                for (Map.Entry<String, Map<String, List<Damage>>> deviceNameEntry : deviceNameMap.entrySet()) {
+                    String deviceName = deviceNameEntry.getKey();
+                    System.out.println("    DeviceName: " + deviceName);
+
+                    // 鑾峰彇绗洓灞傜殑 Map锛屾寜 teamsGroupsName 鍒嗙粍鐨勭粨鏋�
+                    Map<String, List<Damage>> teamsGroupsNameMap = deviceNameEntry.getValue();
+
+                    // 閬嶅巻 teamsGroupsNameMap
+                    for (Map.Entry<String, List<Damage>> teamsGroupsNameEntry : teamsGroupsNameMap.entrySet()) {
+                        String teamsGroupsName = teamsGroupsNameEntry.getKey();
+                        System.out.println("      TeamsGroupsName: " + teamsGroupsName);
+
+                        // 鑾峰彇 Damage 鍒楄〃
+                        List<Damage> damageListForTeamsGroupsName = teamsGroupsNameEntry.getValue();
+
+                        // 浣跨敤 stream 瀵� damageListForTeamsGroupsName 杩涜鍐嶆鍒嗙粍
+                        Map<Integer, Map<Integer, Map<String, List<Damage>>>> groupedByOrderTechBreakage = damageListForTeamsGroupsName.stream()
+                                .collect(Collectors.groupingBy(
+                                        Damage::getOrderNumber,
+                                        Collectors.groupingBy(
+                                                Damage::getTechnologyNumber,
+                                                Collectors.groupingBy(
+                                                        Damage::getBreakageType,
+                                                        Collectors.toList()
+                                                )
+                                        )
+                                ));
+
+                        // 閬嶅巻 groupedByOrderTechBreakage
+                        for (Map.Entry<Integer, Map<Integer, Map<String, List<Damage>>>> orderEntry : groupedByOrderTechBreakage.entrySet()) {
+                            Integer orderNumber = orderEntry.getKey();
+                            System.out.println("        OrderNumber: " + orderNumber);
+
+                            // 鑾峰彇绗簩灞傜殑 Map锛屾寜 technologyNumber 鍒嗙粍鐨勭粨鏋�
+                            Map<Integer, Map<String, List<Damage>>> technologyNumberMap = orderEntry.getValue();
+
+                            // 閬嶅巻 technologyNumberMap
+                            for (Map.Entry<Integer, Map<String, List<Damage>>> technologyEntry : technologyNumberMap.entrySet()) {
+                                Integer technologyNumber = technologyEntry.getKey();
+                                System.out.println("          TechnologyNumber: " + technologyNumber);
+
+                                // 鑾峰彇绗笁灞傜殑 Map锛屾寜 breakageType 鍒嗙粍鐨勭粨鏋�
+                                Map<String, List<Damage>> breakageTypeMap = technologyEntry.getValue();
+
+                                // 閬嶅巻 breakageTypeMap
+                                for (Map.Entry<String, List<Damage>> breakageTypeEntry : breakageTypeMap.entrySet()) {
+                                    String breakageType = breakageTypeEntry.getKey();
+                                    System.out.println("            BreakageType: " + breakageType);
+
+                                    ReportingWork reportingWork=new ReportingWork();
+                                    reportingWork.setProcessId(processId);
+                                    reportingWork.setThisProcess(workingProcedure);
+                                    reportingWork.setDeviceName(deviceName);
+                                    reportingWork.setTeamsGroupsName(teamsGroupsName);
+                                    // 鑾峰彇 Damage 鍒楄〃
+                                    List<Damage> damageListForBreakageType = breakageTypeEntry.getValue();
+                                    int completedQuantity=0;
+                                    int breakageQuantity=0;
+                                    // 閬嶅巻 Damage 鍒楄〃
+                                    for (Damage damage : damageListForBreakageType) {
+                                        // 鎵撳嵃鎴栧鐞嗘瘡涓� Damage 瀵硅薄
+                                        System.out.println("              Damage: " + damage.toString());
+                                        if(damage.getType()==1){
+                                            completedQuantity+=1;
+                                        }else if(damage.getType()==2){
+                                            breakageQuantity+=1;
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+
+
+
     }
 
     /**
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java
new file mode 100644
index 0000000..e275d47
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/BasicDataProduceController.java
@@ -0,0 +1,39 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.service.BasicDataProduceService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Api(description = "鐢熶骇鍩虹鏁版嵁")
+@RestController
+@RequestMapping("/basic_data_produce")
+public class BasicDataProduceController {
+
+    @Autowired
+    //鑾峰彇寰呴�夋嫨鐨勫伐绋嬪彿
+    private BasicDataProduceService basicDataProduceService;
+
+    @ApiOperation("鏌ヨ鍩虹鏁版嵁")
+    @PostMapping("/selectBasicDataProduceGroup") //鏄剧ず宸ョ▼閫夋嫨淇℃伅
+    @ResponseBody
+    public Result selectBasicDataProduceGroup() {
+        return Result.build(200, "鏌ヨ鎴愬姛", basicDataProduceService.selectBasicDataProduceGroup());
+    }
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java
new file mode 100644
index 0000000..37515ca
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/DamageDetailsController.java
@@ -0,0 +1,31 @@
+package com.mes.pp.controller;
+
+
+import com.mes.pp.entity.BasicDataProduce;
+import com.mes.pp.entity.OptimizeProject;
+import com.mes.pp.entity.request.OptimizeRequest;
+import com.mes.pp.service.BasicDataProduceService;
+import com.mes.pp.service.OptimizeProjectService;
+import com.mes.utils.Result;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+@RestController
+@RequestMapping("/damage_details")
+public class DamageDetailsController {
+
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java
new file mode 100644
index 0000000..b22f975
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/controller/ReportingWorkDetailController.java
@@ -0,0 +1,21 @@
+package com.mes.pp.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@RestController
+@RequestMapping("/reporting-work-detail")
+public class ReportingWorkDetailController {
+
+}
+
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java
new file mode 100644
index 0000000..7ad36be
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/BasicDataProduce.java
@@ -0,0 +1,55 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class BasicDataProduce implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 鍩虹鏁版嵁绫诲瀷
+     */
+    private String basicType;
+
+    /**
+     * 鍩虹鏁版嵁鍚嶇О
+     */
+    private String basicName;
+
+    /**
+     * 鍩虹鏁版嵁绫诲埆
+     */
+    private String basicCategory;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    private Timestamp createTime;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    private Timestamp updateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java
new file mode 100644
index 0000000..6daf826
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/DamageDetails.java
@@ -0,0 +1,115 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class DamageDetails implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <娆$牬鏄庣粏琛�>
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鎶ュ伐缂栧彿
+     */
+    private String reportingWorkId;
+
+    /**
+     * 娴佺▼鍗″彿
+     */
+    private String processId;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿锛堝眰鍙凤級
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 娆$牬鏁伴噺
+     */
+    private Integer breakageQuantity;
+
+    /**
+     * 娆$牬绫诲瀷
+     */
+    private String breakageType;
+
+    /**
+     * 娆$牬鍘熷洜
+     */
+    private String breakageReason;
+
+    /**
+     * 鍙埄鐢紙榛樿0锛岄渶瑕佽繑宸�1锛�
+     */
+    private Integer available;
+
+    /**
+     * 杩斿伐/琛ョ墖鏁伴噺
+     */
+    private Integer quantity;
+
+    /**
+     * 杩斿伐宸ュ簭
+     */
+    private String returnProcess;
+
+    /**
+     * 璐d换宸ュ簭
+     */
+    private String responsibleProcess;
+
+    /**
+     * 璐d换浜哄憳
+     */
+    private String responsiblePersonnel;
+
+    /**
+     * 璐d换鐝粍
+     */
+    private String responsibleTeam;
+
+    /**
+     * 璐d换璁惧
+     */
+    private String responsibleEquipment;
+
+    /**
+     * 璐ㄦ鍛�
+     */
+    private String qualityInspector;
+
+    /**
+     * 琛ョ墖鐘舵�侊紙榛樿0锛屽凡琛ョ墖1锛�
+     */
+    private Integer patchStatus;
+
+    /**
+     * 璐ㄦ鐘舵�侊紙榛樿0,1寰呰川妫�1锛屽凡璐ㄦ2锛�
+     */
+    private Integer qualityInsStatus;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
new file mode 100644
index 0000000..6dc14df
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWorkDetail.java
@@ -0,0 +1,151 @@
+package com.mes.pp.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class ReportingWorkDetail implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * <鎶ュ伐鏄庣粏>
+     */
+      @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 鎶ュ伐缂栧彿
+     */
+    private String reportingWorkId;
+
+    /**
+     * 搴忓彿
+     */
+    private Integer orderNumber;
+
+    /**
+     * 宸ヨ壓纭搴忓彿
+     */
+    private Integer technologyNumber;
+
+    /**
+     * 瀹屽伐鏁伴噺
+     */
+    private Integer completedQuantity;
+
+    /**
+     * 娆$牬鏁伴噺
+     */
+    private Integer breakageQuantity;
+
+    /**
+     * 娆$牬绫诲瀷
+     */
+    private String breakageType;
+
+    /**
+     * 娆$牬鍘熷洜
+     */
+    private String breakageReason;
+
+    /**
+     * 鍙埄鐢紙1鍙埄鐢�0榛樿锛�
+     */
+    private Integer available;
+
+    /**
+     * 閫�鍥炲伐搴�
+     */
+    private String returnProcess;
+
+    /**
+     * 璐d换宸ュ簭
+     */
+    private String responsibleProcess;
+
+    /**
+     * 璐d换浜哄憳
+     */
+    private String responsiblePersonnel;
+
+    /**
+     * 璐d换鐝粍
+     */
+    private String responsibleTeam;
+
+    /**
+     * 璐d换璁惧
+     */
+    private String responsibleEquipment;
+
+    /**
+     * 璐ㄦ鍛�
+     */
+    private String qualityInspector;
+
+    /**
+     * 琛ョ墖鐘舵��
+     */
+    private Integer patchStatus;
+
+    /**
+     * 鍦ㄥ埗鍝佸悕绉�
+     */
+    private String workProgress;
+
+    /**
+     * 璐ㄦ鐘舵��
+     */
+    private Integer qualityInsStatus;
+
+    /**
+     * 鎶ュ伐绫诲瀷
+     */
+    private Integer type;
+
+    /**
+     * 寰呰繑宸ユ暟閲�
+     */
+    private Integer waitReworkQuantity;
+
+    /**
+     * 杩斿伐鐝粍
+     */
+    private String reworkTeam;
+
+    /**
+     * 杩斿伐瀹℃牳浜�
+     */
+    private String reviewer;
+
+    /**
+     * 杩斿伐瀹℃牳鐘舵��
+     */
+    private String reviewStatus;
+
+    /**
+     * 杩斿伐鏃堕棿
+     */
+    private LocalDateTime reworkTime;
+
+    /**
+     * 杩斿伐淇敼鏃堕棿
+     */
+    private LocalDateTime reworkUpdateTime;
+
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java
new file mode 100644
index 0000000..dc15b3d
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/BasicDataProduceMapper.java
@@ -0,0 +1,18 @@
+package com.mes.pp.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.pp.entity.BasicDataProduce;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@DS("pp")
+public interface BasicDataProduceMapper extends BaseMapper<BasicDataProduce> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java
new file mode 100644
index 0000000..1185b00
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/mapper/ReportingWorkDetailMapper.java
@@ -0,0 +1,16 @@
+package com.mes.pp.mapper;
+
+import com.mes.pp.entity.ReportingWorkDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface ReportingWorkDetailMapper extends BaseMapper<ReportingWorkDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java
new file mode 100644
index 0000000..939dc76
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/BasicDataProduceService.java
@@ -0,0 +1,20 @@
+package com.mes.pp.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.pp.entity.BasicDataProduce;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface BasicDataProduceService extends IService<BasicDataProduce> {
+
+    Map<String, List<BasicDataProduce>> selectBasicDataProduceGroup();
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java
new file mode 100644
index 0000000..6b0eb6f
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/DamageDetailsService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.DamageDetails;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+public interface DamageDetailsService extends IService<DamageDetails> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java
new file mode 100644
index 0000000..5574527
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/ReportingWorkDetailService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service;
+
+import com.mes.pp.entity.ReportingWorkDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface ReportingWorkDetailService extends IService<ReportingWorkDetail> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java
new file mode 100644
index 0000000..143cffb
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/BasicDataProduceServiceImpl.java
@@ -0,0 +1,30 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.pp.entity.BasicDataProduce;
+import com.mes.pp.mapper.BasicDataProduceMapper;
+import com.mes.pp.service.BasicDataProduceService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+@Service
+public class BasicDataProduceServiceImpl extends ServiceImpl<BasicDataProduceMapper, BasicDataProduce> implements BasicDataProduceService {
+
+    @Override
+    public Map<String, List<BasicDataProduce>> selectBasicDataProduceGroup(){
+        List<BasicDataProduce> basicDataProduceList=baseMapper.selectList(null);
+        Map<String, List<BasicDataProduce>> listMap = basicDataProduceList.stream().collect(Collectors.groupingBy(item -> item.getBasicType()));
+        return listMap;
+    }
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java
new file mode 100644
index 0000000..a3b3e5a
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/DamageDetailsService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.pp.entity.DamageDetails;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-26
+ */
+public interface DamageDetailsService extends IService<DamageDetails> {
+
+}
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java
new file mode 100644
index 0000000..0b53228
--- /dev/null
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/service/impl/ReportingWorkDetailService.java
@@ -0,0 +1,16 @@
+package com.mes.pp.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.pp.entity.ReportingWorkDetail;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-07-25
+ */
+public interface ReportingWorkDetailService extends IService<ReportingWorkDetail> {
+
+}
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 7bf0afc..223343a 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
@@ -3,6 +3,7 @@
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
+import com.mes.common.utils.RedisUtil;
 import com.mes.utils.Result;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -12,6 +13,7 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 import java.util.Map;
 
@@ -32,6 +34,8 @@
     private BigStorageCageDetailsService bigStorageCageDetailsService;
     @Autowired
     private BigStorageCageService bigStorageCageService;
+    @Resource
+    private RedisUtil redisUtil;
 
 
     @ApiOperation("鐜荤拑璇︽儏鏌ヨ")
@@ -100,7 +104,8 @@
     @ApiOperation("鏄惁閽㈠寲寮�鍏�")
     @PostMapping("/temperingSwitch")
     public Result temperingSwitch(Boolean flag) {
-        return Result.build(200, "淇敼鎴愬姛", bigStorageCageDetailsService.temperingSwitch(flag));
+        bigStorageCageDetailsService.temperingSwitch(flag);
+        return Result.build(200, "淇敼鎴愬姛", redisUtil.getCacheObject("temperingSwitch"));
     }
 }
 
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 5831a80..f6353ea 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
@@ -32,7 +32,7 @@
      *
      * @return
      */
-    TemperingLayoutDTO queryTemperingOccupySlot(@Param(value = "count") int count);
+    List<TemperingLayoutDTO> queryTemperingOccupySlot(@Param(value = "count") int count);
 
 
     List<SlotSequenceDTO> queryGlassMaxAndMin(@Param(value = "engineerId") String engineerId, @Param(value = "temperingLayoutId") Integer temperingLayoutId);
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 23a4613..83a601d 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
@@ -21,7 +21,9 @@
  */
 public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> {
 
-    List<BigStorageCageDetails> selectTask(int taskType);
+    List<BigStorageCageDetails> selectFeedTask();
+
+    List<BigStorageCageDetails> selectOutTask();
 
     double selectGetBoard(String plcFeedReqLine);
 
@@ -56,7 +58,7 @@
      *
      * @return
      */
-    TemperingLayoutDTO queryTemperingOccupySlot();
+    List<TemperingLayoutDTO> queryTemperingOccupySlot();
 
     /**
      * 鑾峰彇鐗堝浘姣忎釜鏍煎瓙鐨勬渶澶ф渶灏忓簭鍙�
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 6761928..588bc3e 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
@@ -87,56 +87,34 @@
     private boolean sequenceOrder;
 
 
-    /**
-     * 鏌ヨ杩�/鍑虹墖浠诲姟
-     */
     @Override
-    public List<BigStorageCageDetails> selectTask(int taskType) {
-        if (taskType == 1) {
-            //杩涚墖浠诲姟鏁版嵁
-            LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
-            feedWrapper.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
-            List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(feedWrapper);
+    public List<BigStorageCageDetails> selectFeedTask(){
+        //杩涚墖浠诲姟鏁版嵁
+        LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
+        feedWrapper.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW);
+        List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(feedWrapper);
 
-            LambdaQueryWrapper<BigStorageCageFeedTask> feedTaskWrapper = new LambdaQueryWrapper<>();
-            feedTaskWrapper
-                    .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
-                    .isNotNull(BigStorageCageFeedTask::getTargetSlot);
-            List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper);
-
-            Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
-                    .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
+        LambdaQueryWrapper<BigStorageCageFeedTask> feedTaskWrapper = new LambdaQueryWrapper<>();
+        feedTaskWrapper
+                .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+                .isNotNull(BigStorageCageFeedTask::getTargetSlot);
+        List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskMapper.selectList(feedTaskWrapper);
+        Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
+                .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
             Iterator<BigStorageCageDetails> iterator = bigStorageCageDetailsList.iterator();
             while (iterator.hasNext()) {
                 BigStorageCageDetails bigStorageCageDetails = iterator.next();
                 BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
                 bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
-                if (bigStorageCageDetails.getBigStorageCageFeedTask() == null) {
-                    iterator.remove();
-                }
-            }
-            LambdaQueryWrapper<BigStorageCageFeedTask> feedTaskNoTargetWrapper = new LambdaQueryWrapper<>();
-            feedTaskNoTargetWrapper
-                    .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
-                    .isNull(BigStorageCageFeedTask::getTargetSlot);
-            List<BigStorageCageFeedTask> bigStorageCageFeedTaskNoTargetList = bigStorageCageFeedTaskMapper.selectList(feedTaskNoTargetWrapper);
-            for (BigStorageCageFeedTask bigStorageCageFeedTask : bigStorageCageFeedTaskNoTargetList
-            ) {
-                BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
-                LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>();
-                glassInfoWrapper.eq(GlassInfo::getGlassId, bigStorageCageFeedTask.getGlassId());
-                GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper);
-                BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
-                bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
-                bigStorageCageDetailsList.add(bigStorageCageDetails);
             }
             return bigStorageCageDetailsList;
-        } else {
-            //鍑虹墖浠诲姟鏁版嵁
-            LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
-            outWrapper.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
-            List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
+    }
 
+    @Override
+    public List<BigStorageCageDetails> selectOutTask(){
+            LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
+            outWrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING,Const.GLASS_STATE_SCHEDULE_ING);
+            List<BigStorageCageDetails> bigStorageCageDetailsList = baseMapper.selectList(outWrapper);
             LambdaQueryWrapper<BigStorageCageOutTask> outTaskWrapper = new LambdaQueryWrapper<>();
             outTaskWrapper.lt(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS);
             List<BigStorageCageOutTask> bigStorageCageOutTaskList = bigStorageCageOutTaskMapper.selectList(outTaskWrapper);
@@ -152,13 +130,10 @@
                 BigStorageCageDetails bigStorageCageDetails = iterator.next();
                 BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
                 bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
-                if (bigStorageCageDetails.getBigStorageCageOutTask() == null) {
-                    iterator.remove();
-                }
             }
             return bigStorageCageDetailsList;
         }
-    }
+
 
     /**
      * 鍒ゆ柇褰撳墠鐜荤拑鏄惁鑳戒笂杞�
@@ -361,7 +336,7 @@
 
 
     @Override
-    public TemperingLayoutDTO queryTemperingOccupySlot() {
+    public List<TemperingLayoutDTO> queryTemperingOccupySlot() {
         return baseMapper.queryTemperingOccupySlot(minCount);
     }
 
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 a71d249..c6587ca 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
@@ -45,11 +45,11 @@
         jsonObject.append("bigStorageCageInfos", bigStorageCageService.querybigStorageCageDetail());
 
         //杩涚墖浠诲姟鏁版嵁
-        List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectTask(1);
+        List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectFeedTask();
         jsonObject.append("bigStorageCageDetailsFeedTask", bigStorageCageDetailsFeedTask);
 
         //鍑虹墖浠诲姟鏁版嵁
-        List<BigStorageCageDetails> bigStorageCageDetailsOutTask=bigStorageCageDetailsService.selectTask(2);
+        List<BigStorageCageDetails> bigStorageCageDetailsOutTask=bigStorageCageDetailsService.selectOutTask();
         jsonObject.append("bigStorageCageDetailsOutTask", bigStorageCageDetailsOutTask);
 
         //鐞嗙墖绗间娇鐢ㄦ儏鍐�
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 126fbbd..94d89f3 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
@@ -244,7 +244,7 @@
         log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
     }
 
-    @Scheduled(fixedDelay = 5000)
+    @Scheduled(fixedDelay = 2000)
     public void plcToHomeEdgOutTask() {
         Date startDate = new Date();
         log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -311,48 +311,53 @@
             }
         }
         //鎵ц鍐呴儴璋冨害浠诲姟
-        TemperingLayoutDTO temperingOccupySlot = bigStorageCageDetailsService.queryTemperingOccupySlot();
-        if (null != temperingOccupySlot) {
-            List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
-            for (int i = 0; i < slotSequenceList.size() - 1; i++) {
-                SlotSequenceDTO first = slotSequenceList.get(i);
-                SlotSequenceDTO second = slotSequenceList.get(i + 1);
-                int slotWidth = carWidth - first.getRemainWidth() - glassGap;
-                if (first.getMinSequence() == second.getMaxSequence() + 1
-                        && second.getRemainWidth() > slotWidth && slotWidth >= 0) {
-
-                    List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
-                            .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                            .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
-                    if (CollectionUtils.isNotEmpty(list)) {
-                        List<BigStorageCageOutTask> outTasks = new ArrayList<>();
-                        int serialNumber = 1;
-                        for (BigStorageCageDetails item : list) {
-                            outTasks.add(new BigStorageCageOutTask(item.getGlassId(), first.getSlot(), second.getSlot(),
-                                    item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW));
+        List<TemperingLayoutDTO> temperingOccupySlotList = bigStorageCageDetailsService.queryTemperingOccupySlot();
+        if (CollectionUtils.isNotEmpty(temperingOccupySlotList)) {
+            loop:
+            for (TemperingLayoutDTO temperingOccupySlot : temperingOccupySlotList) {
+                List<SlotSequenceDTO> slotSequenceList = bigStorageCageDetailsService.queryGlassMaxAndMin(temperingOccupySlot.getEngineerId(), temperingOccupySlot.getTemperingLayoutId());
+                for (int i = 0; i < slotSequenceList.size() - 1; i++) {
+                    SlotSequenceDTO first = slotSequenceList.get(i);
+                    SlotSequenceDTO second = slotSequenceList.get(i + 1);
+                    int slotWidth = carWidth - first.getRemainWidth() - glassGap;
+                    if (first.getMinSequence() == second.getMaxSequence() + 1
+                            && second.getRemainWidth() > slotWidth && slotWidth >= 0) {
+                        List<BigStorageCageDetails> list = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
+                                .eq(BigStorageCageDetails::getSlot, first.getSlot()).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                                .orderBy(Boolean.TRUE, sequenceOrder, BigStorageCageDetails::getTemperingFeedSequence));
+                        if (CollectionUtils.isNotEmpty(list)) {
+                            List<BigStorageCageOutTask> outTasks = new ArrayList<>();
+                            int serialNumber = 1;
+                            for (BigStorageCageDetails item : list) {
+                                outTasks.add(new BigStorageCageOutTask(item.getGlassId(), first.getSlot(), second.getSlot(),
+                                        item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW));
+                            }
+                            //鏂板璋冨害浠诲姟
+                            bigStorageCageOutTaskService.saveBatch(outTasks);
+                            //鏇存柊鐞嗙墖绗艰鎯呰〃璋冨害鐨勫悗鐨勭幓鐠冧綅缃俊鎭細鐢熸垚浠诲姟鍚庡厛灏嗙幓鐠冩牸瀛愪綅缃繘琛岃皟鏁达紝鐜荤拑鐘舵�佹敼涓鸿皟搴︿腑锛屾柊澧炶皟搴﹀畬鎴愪换鍔★紝澶勭悊璋冨害瀹屾垚鍚庣幓鐠冪姸鎬佹敼涓�100.
+                            List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
+                            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
+                                    .set(BigStorageCageBaseInfo::getSlot, second.getSlot()).in(BigStorageCageDetails::getGlassId, glassList));
+                            //涓ゆ鏇存柊绗煎瓙鐨勫墿浣欏昂瀵革細绗竴娆¢槻姝㈡湁鐜荤拑缁х画杩涜皟搴﹀悗鐨勭瀛愶紝绗簩娆℃洿鏂帮細璁$畻鏍煎瓙鐨勫疄闄呭昂瀵�
+                            // 浠呮洿鏂拌皟搴﹀悗鐨勬牸瀛愪俊鎭細璧峰鏍煎瓙瀹屾垚鍚庢洿鏂帮細闃叉璋冨害鍑虹墖杩囩▼涓湁鏂扮幓鐠冭繘鍏ワ紝
+                            updateSlotRemainBySlots(Arrays.asList(second.getSlot()));
+                            break loop;
                         }
-                        //鏂板璋冨害浠诲姟
-                        bigStorageCageOutTaskService.saveBatch(outTasks);
-                        //鏇存柊鐞嗙墖绗艰鎯呰〃璋冨害鐨勫悗鐨勭幓鐠冧綅缃俊鎭細鐢熸垚浠诲姟鍚庡厛灏嗙幓鐠冩牸瀛愪綅缃繘琛岃皟鏁达紝鐜荤拑鐘舵�佹敼涓鸿皟搴︿腑锛屾柊澧炶皟搴﹀畬鎴愪换鍔★紝澶勭悊璋冨害瀹屾垚鍚庣幓鐠冪姸鎬佹敼涓�100.
-                        List<String> glassList = list.stream().map(BigStorageCageDetails::getGlassId).collect(Collectors.toList());
-                        bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>().set(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING)
-                                .set(BigStorageCageBaseInfo::getSlot, second.getSlot()).eq(BigStorageCageDetails::getGlassId, glassList));
                     }
-
-                    //鍚憄lc鍐欏叆纭瀛�
-                    int returnData = 0;
-                    int count = 1;
-                    while (returnData == 0) {
-                        log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
-                        S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
-                        returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
-                        log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
-                    }
-                    Date endDate = new Date();
-                    log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
-                    return;
                 }
             }
+            //鍚憄lc鍐欏叆纭瀛�
+            int returnData = 0;
+            int count = 1;
+            while (returnData == 0) {
+                log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
+                S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+                returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+                log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+            }
+            Date endDate = new Date();
+            log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+            return;
         }
     }
 
@@ -371,16 +376,16 @@
                     .in(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT));
             if (CollectionUtils.isNotEmpty(inSuccessGlass)) {
                 log.info("3銆佽幏鍙栬繘鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", inSuccessGlass);
-                List<String> inSuccessGlassIds = inSuccessGlass.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList());
+                List<Integer> inSuccessGlassSlot = inSuccessGlass.stream().map(BigStorageCageFeedTask::getTargetSlot).collect(Collectors.toList());
                 List<UpdateBigStorageCageDTO> storageCageDTOList = inSuccessGlass.stream().map(e -> {
                     UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
                     BeanUtils.copyProperties(e, storageCageDTO);
                     return storageCageDTO;
                 }).collect(Collectors.toList());
                 bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
-                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", inSuccessGlassIds);
+                log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", inSuccessGlass);
                 //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
-                updateSlotRemain(inSuccessGlassIds, Boolean.TRUE);
+                updateSlotRemainBySlots(inSuccessGlassSlot);
                 log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
             }
 
@@ -412,10 +417,47 @@
                     return storageCageDTO;
                 }).collect(Collectors.toList());
                 bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
-                List<String> outSuccessGlassIds = outSuccessGlass.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
-                log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlassIds);
+                List<Integer> outSuccessSlotList = outSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).collect(Collectors.toList());
+                log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlass);
                 //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
-                updateSlotRemain(outSuccessGlassIds, Boolean.FALSE);
+                updateSlotRemainBySlots(outSuccessSlotList);
+                log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
+            }
+        }
+        Date endDate = new Date();
+        log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+        return;
+
+    }
+
+    @Scheduled(fixedDelay = 300)
+    public void updateScheduleGlassStateTask() {
+        Date startDate = new Date();
+        log.info("1銆佸ぇ鐞嗙墖绗艰皟搴﹀畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        //鍥犱负澶х悊鐗囩鍜岃皟搴︿换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+        List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_SCHEDULE_ING));
+        if (CollectionUtils.isNotEmpty(list)) {
+            log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
+            List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+            List<BigStorageCageOutTask> scheduleSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
+                    .in(BigStorageCageOutTask::getGlassId, glassIds).eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_SUCCESS)
+                    .notIn(BigStorageCageOutTask::getEndSlot, Const.TEMPERING_OUT_TARGET_POSITION, Const.ARTIFICIAL_OUT_TARGET_POSITION));
+            if (CollectionUtils.isNotEmpty(scheduleSuccessGlass)) {
+                log.info("3銆佽幏鍙栬皟搴﹀凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", scheduleSuccessGlass);
+                List<UpdateBigStorageCageDTO> storageCageDTOList = scheduleSuccessGlass.stream().map(e -> {
+                    UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
+                    storageCageDTO.setGlassId(e.getGlassId());
+                    storageCageDTO.setTargetSlot(e.getEndSlot());
+                    return storageCageDTO;
+                }).collect(Collectors.toList());
+                bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+                List<String> scheduleSuccessGlassIds = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+                log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", scheduleSuccessGlassIds);
+                //鏇存柊鐞嗙墖绗肩幓鐠冨昂瀵�
+                List<Integer> slotList = scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getStartSlot).distinct().collect(Collectors.toList());
+                slotList.addAll(scheduleSuccessGlass.stream().map(BigStorageCageOutTask::getEndSlot).distinct().collect(Collectors.toList()));
+                updateSlotRemainBySlots(slotList);
                 log.info("5銆佸ぇ鐞嗙墖绗艰繘鐗囩洰鏍囨牸瀛愬昂瀵告洿鏂板畬鎴�");
             }
         }
@@ -439,8 +481,8 @@
             log.info("鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", inDamageTaskInfoList);
             bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
             //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
-            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
-                    .set(BigStorageCageDetails::getState, Const.GLASS_STATE_DAMAGE).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
+            bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
+                    .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
             //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
             for (BigStorageCageFeedTask bigStorageCageFeedTask : inDamageTaskInfoList) {
                 Damage damage = new Damage();
@@ -462,9 +504,8 @@
             List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
             //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
             temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
-            //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
-            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
-                    .set(BigStorageCageDetails::getState, Const.GLASS_STATE_DAMAGE).in(BigStorageCageDetails::getGlassId, glassIdList));
+            //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佸垹闄�
+            bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList));
 
             //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
             for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
@@ -623,9 +664,9 @@
             BeanUtils.copyProperties(info, cageDetails);
             //2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭�
             BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
-            //3銆佹洿鏂板ぇ鐞嗙墖绗艰〃鍓╀綑瀹藉害锛堟洿鏂板ぇ鐞嗙墖绗煎墿浣欏昂瀵哥Щ鍒拌繘绗煎畬鎴愬悗鎵ц锛�
-//            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - info.getWidth() - glassGap)
-//                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
+            //3銆佷复鏃舵洿鏂版牸瀛愮殑鍓╀綑灏哄锛氶槻姝㈢浉閭荤幓鐠冭繘鍚屼竴鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
+            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+                    .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
             //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛�  閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴�
             e.setTargetSlot(bigStorageDTO.getSlot());
             bigStorageCageFeedTaskService.updateById(e);
@@ -636,6 +677,7 @@
             cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
             cageDetails.setGap(glassGap);
             bigStorageCageDetailsService.save(cageDetails);
+
         }
         sendTaskListToPLC(taskList, line);
         return Boolean.TRUE;
@@ -716,47 +758,29 @@
         return Boolean.TRUE;
     }
 
-    /**
-     * 鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄
-     *
-     * @param taskGlassIds 鏈浠诲姟鍑哄幓鐨勭幓鐠僫ds
-     * @param flag         鏄惁杩涘嚭鐗� true 杩涚墖  false 鍑虹墖
-     */
-    public void updateSlotRemain(List<String> taskGlassIds, Boolean flag) {
-        //鎸夌収鐜荤拑id鑾峰彇鐜荤拑淇℃伅鍙婄幓鐠冪殑鏍煎瓙鍙�
-        List<BigStorageCageDetails> glassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
-                .in(BigStorageCageDetails::getGlassId, taskGlassIds));
-        //鑾峰彇闇�瑕佸嚭鍘�/杩涚锛堝寘鎷緟鍑哄幓鐨勶級鐨勬墍鏈夌幓鐠冩牸瀛愬彿
-        List<Integer> slotList = glassList.stream().map(BigStorageCageDetails::getSlot).distinct().collect(Collectors.toList());
+    public void updateSlotRemainBySlots(List<Integer> slotList) {
         //鑾峰彇鏍煎瓙鍐呮墍鏈夌殑鐜荤拑淇℃伅
         List<BigStorageCageDetails> inSlotGlassList = bigStorageCageDetailsService.list(new LambdaQueryWrapper<BigStorageCageDetails>()
                 .in(BigStorageCageDetails::getSlot, slotList).in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
-        //鑾峰彇寰呰繘鐗�/鍑哄幓鐨勭幓鐠冧俊鎭�
-        Map<Integer, Double> slotRemainMap = null;
-        if (flag) {
-            slotRemainMap = inSlotGlassList.stream().filter(e -> taskGlassIds.contains(e.getGlassId()))
-                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> item.getWidth() + glassGap)));
-        } else {
-            slotRemainMap = inSlotGlassList.stream().filter(e -> !taskGlassIds.contains(e.getGlassId()))
-                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> item.getWidth() + glassGap)));
-        }
-        //鏍煎瓙鍐呮湁鐜荤拑鐨勶紝璁$畻涓猴細 鏍煎瓙鐨勫搴� - 锛堢粰瀛愬唴鐜荤拑鐨勫昂瀵�+闂磋窛锛�
-        if (CollectionUtils.isNotEmpty(slotRemainMap)) {
+        Map<Integer, Double> slotRemainMap = new HashMap<>();
+        //鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
+        if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
+            //瀛樺湪  灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+            slotRemainMap = inSlotGlassList.stream()
+                    .collect(Collectors.groupingBy(BigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
             slotRemainMap.forEach((e, v) -> {
-                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth - v)
+                double remainWidth = slotWidth - v >= 0 ? slotWidth - v : 0;
+                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, remainWidth)
                         .eq(BigStorageCage::getSlot, e));
             });
         }
-        //鍙洿鏂拌繘绗煎畬鎴愮殑鐘舵�侊紝濡傛灉杩涚瀹屾垚锛屾牸瀛愬唴蹇呭畾鏈夌幓鐠冿紝涓嶅瓨鍦ㄥ嚭鐗囧悗鏍煎瓙鍐呮病鏈夌幓鐠冪殑鎯呭喌锛屾墍鏈夋牸瀛愬昂瀵搁噸缃紝鍙兘瀛樺湪浜庡嚭鐗囦换鍔�
-        if (!flag) {
-            Set<Integer> remainSlotList = slotRemainMap.keySet();
-            slotList.removeAll(remainSlotList);
-            if (CollectionUtils.isNotEmpty(slotList)) {
-                bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
-                        .in(BigStorageCage::getSlot, slotList));
-            }
+        //杩囨护涓嶅瓨鍦ㄧ幓鐠冪殑鏍煎瓙 灏嗗搴﹂噸缃负鍘熷瀹藉害5000
+        Set<Integer> remainSlotList = slotRemainMap.keySet();
+        slotList.removeAll(remainSlotList);
+        if (CollectionUtils.isNotEmpty(slotList)) {
+            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, slotWidth)
+                    .in(BigStorageCage::getSlot, slotList));
         }
-
     }
 
     public Boolean computeIsRun(int line, String glassId) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 24eca61..2c93d87 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -52,7 +52,7 @@
         GROUP BY ENGINEER_ID,
                  TEMPERING_LAYOUT_ID
         HAVING SLOT_COUNT &gt;= #{count}
-        ORDER BY SLOT_COUNT DESC LIMIT 1
+        ORDER BY SLOT_COUNT DESC
     </select>
     <select id="queryGlassMaxAndMin" resultMap="slotSequenceDTO">
         SELECT T.*,

--
Gitblit v1.8.0