From 9247ea3d414c528ff2210c4b1ccdb38741f52101 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 30 五月 2024 16:50:36 +0800
Subject: [PATCH] 添加新磨边任务表,添加上车宽度判断

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java |   41 +++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java          |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                     |   24 ++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java              |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java            |   69 ++++-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java     |   88 +++++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageFeedTask.java                 |   30 ++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java        |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java               |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java           |   20 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java                         |   71 ++++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java                 |   16 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java                                             |  101 +++++++++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java        |   20 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageService.java                     |    6 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java                                              |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java    |    8 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageController.java               |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/entity/BigStorageCageOutTask.java                  |   34 +++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                       |   60 +---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java                      |   19 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java                   |   18 +
 22 files changed, 574 insertions(+), 73 deletions(-)

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 a81873e..4daedb5 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
@@ -30,8 +30,8 @@
 
     @ApiOperation("鏌ヨ鐞嗙墖绗间俊鎭�")
     @GetMapping("/bigStorageCage")
-    public Result querybigStorageCageDetail() {
-        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageService.querybigStorageCageDetail());
+    public Result querybigStorageCageDetail(int deviceId) {
+        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageService.querybigStorageCageDetail(deviceId));
     }
 
 }
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 3d6708e..10bb881 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
@@ -41,7 +41,6 @@
     public Result insertBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
         bigStorageCageDetailsService.save(bigStorageCageDetails);
         return Result.build(200,"娣诲姞鎴愬姛",1);
-
     }
 
     @ApiOperation("鐞嗙墖绗艰鎯呭垹闄�")
@@ -49,7 +48,6 @@
     public Result deleteBigStorageCageDetails(BigStorageCageDetails bigStorageCageDetails) {
         bigStorageCageDetailsService.removeById(bigStorageCageDetails.getId());
         return Result.build(200,"鍒犻櫎鎴愬姛",1);
-
     }
 
     @ApiOperation("鐞嗙墖绗间换鍔℃煡璇�")
@@ -58,7 +56,7 @@
         LambdaQueryWrapper<BigStorageCageDetails> selectWrapper = new LambdaQueryWrapper<>();
         selectWrapper.eq(BigStorageCageDetails::getState,state);
         return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetailsService.list(selectWrapper));
-
     }
+
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
index 4788f9b..0acc5f2 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCageDetails.java
@@ -1,13 +1,18 @@
 package com.mes.bigstorage.entity;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
+import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * <p>
@@ -17,6 +22,7 @@
  * @author zhoush
  * @since 2024-03-27
  */
+@ApiModel(description = "<p> </p>")
 @Api(description = "澶х悊鐗囩璇︽儏")
 @Data
 @EqualsAndHashCode(callSuper = false)
@@ -109,5 +115,18 @@
     @ApiModelProperty(value = "鐜荤拑闂撮殭", position = 15)
     private Integer gap;
 
+    /**
+     * 杩涚墖浠诲姟
+     */
+    @ApiModelProperty(value = "杩涚墖浠诲姟", position = 16)
+    @TableField(exist = false)
+    private BigStorageCageFeedTask bigStorageCageFeedTask;
+
+    /**
+     * 鍑虹墖浠诲姟
+     */
+    @ApiModelProperty(value = "鍑虹墖浠诲姟", position = 17)
+    @TableField(exist = false)
+    private BigStorageCageOutTask bigStorageCageOutTask;
 
 }
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 ef46c59..7b0a0a4 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,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,7 @@
  */
 public interface BigStorageCageDetailsService extends IService<BigStorageCageDetails> {
 
+    List<BigStorageCageDetails> selectTask(int taskType);
+
+    boolean selectGetBoard(GlassInfo glassInfo, String plcFeedReqLine);
 }
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 60ba4df..5f1d50f 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
@@ -7,6 +7,7 @@
 import com.mes.glassinfo.entity.GlassInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -24,6 +25,9 @@
 
     boolean outGlass();
 
-    List<BigStorageCage> querybigStorageCageDetail();
+    List<BigStorageCage> querybigStorageCageDetail(int deviceId);
 
+    List<Map<String, Object>> selectBigStorageCageUsage();
+
+    boolean selectWidthSufficient(BigStorageCageDetails layoutSlotInfo,double width);
 }
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 298761d..89a9109 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,15 +1,24 @@
 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.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.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 org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -21,7 +30,82 @@
  */
 @Service
 public class BigStorageCageDetailsServiceImpl extends ServiceImpl<BigStorageCageDetailsMapper, BigStorageCageDetails> implements BigStorageCageDetailsService {
-    @Resource
-    private BigStorageCageMapper bigStorageCageMapper;
 
+    @Resource
+    private BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
+    @Resource
+    private BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
+
+    /**
+     * 鏌ヨ杩�/鍑虹墖浠诲姟
+     */
+    @Override
+    public List<BigStorageCageDetails> selectTask(int taskType) {
+        if(taskType==1){
+            //杩涚墖浠诲姟鏁版嵁
+            LambdaQueryWrapper<BigStorageCageDetails> feedWrapper = new LambdaQueryWrapper<>();
+            feedWrapper.eq(BigStorageCageDetails::getState, 1)
+                    .or()
+                    .eq(BigStorageCageDetails::getState, 2);
+            List<BigStorageCageDetails> bigStorageCageDetailsList=baseMapper.selectList(feedWrapper);
+            List<BigStorageCageFeedTask> bigStorageCageFeedTaskList=bigStorageCageFeedTaskMapper.selectList(null);
+
+            Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
+                    .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
+
+            for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+                BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
+                bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
+            }
+            return bigStorageCageDetailsList;
+        }else{
+            //鍑虹墖浠诲姟鏁版嵁
+            LambdaQueryWrapper<BigStorageCageDetails> outWrapper = new LambdaQueryWrapper<>();
+            outWrapper.eq(BigStorageCageDetails::getState, 3)
+                    .or()
+                    .eq(BigStorageCageDetails::getState, 4);
+            List<BigStorageCageDetails> bigStorageCageDetailsList=baseMapper.selectList(outWrapper);
+            List<BigStorageCageOutTask> bigStorageCageOutTaskList=bigStorageCageOutTaskMapper.selectList(null);
+
+            Map<String, BigStorageCageOutTask> listMap = bigStorageCageOutTaskList.stream()
+                    .collect(Collectors.toMap(BigStorageCageOutTask::getGlassId, task -> task));
+            for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+                BigStorageCageOutTask bigStorageCageOutTask = listMap.get(bigStorageCageDetails.getGlassId());
+                bigStorageCageDetails.setBigStorageCageOutTask(bigStorageCageOutTask);
+            }
+            return bigStorageCageDetailsList;
+        }
+
+    }
+
+    /**
+     * 鍒ゆ柇褰撳墠鐜荤拑鏄惁鑳戒笂杞�
+     */
+    @Override
+    public boolean selectGetBoard(GlassInfo glassInfo, 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);
+        Map<String, BigStorageCageFeedTask> listMap = bigStorageCageFeedTaskList.stream()
+                .collect(Collectors.toMap(BigStorageCageFeedTask::getGlassId, task -> task));
+        for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList) {
+            BigStorageCageFeedTask bigStorageCageFeedTask = listMap.get(bigStorageCageDetails.getGlassId());
+            bigStorageCageDetails.setBigStorageCageFeedTask(bigStorageCageFeedTask);
+        }
+        for (BigStorageCageDetails bigStorageCageDetails:bigStorageCageDetailsList
+             ) {
+            if(bigStorageCageDetails.getBigStorageCageFeedTask().getTaskState()==0){
+                carWidth -= Integer.parseInt(bigStorageCageDetails.getWidth().toString()) + bigStorageCageDetails.getGap();
+            }
+        }
+        if(carWidth>=0){
+            return true;
+        }else{
+            return false;
+        }
+
+    }
 }
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 5a1652e..c798fc7 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
@@ -49,20 +49,20 @@
     @Resource
     private GlassInfoService glassInfoService;
 
+    //杩涚墖閫昏緫
     @Override
     public BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) {
 
-        log.info("1銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠�");
         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);
 
-        log.info("2銆佹煡璇㈢悊鐗囩鍐呯墖搴�-1绛変簬褰撳墠鐜荤拑鐗囧簭鐨勭幓鐠冪殑缁撴灉涓嶄负绌烘椂");
-        if (layoutSlotInfo.getSlot() != 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鏄惁瀛樺湪鐞嗙墖绗煎唴");
@@ -71,7 +71,7 @@
                     .select(BigStorageCageDetails::getTemperingLayoutId);
             layoutSlotInfo = bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailslambdaQueryWrapper);
 
-            if(layoutSlotInfo != null){
+            if(layoutSlotInfo != null&&selectWidthSufficient(layoutSlotInfo,bigStorageCageDetails.getWidth())){
                 log.info("4銆佽幏鍙栫瀛愬唴閫傚悎鐨勬牸瀛�");
                 BigStorageCage bigStorageCage=bigStorageCageSlot(layoutSlotInfo.getDeviceId());
                 bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
@@ -86,13 +86,19 @@
                 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 bigStorageCage=bigStorageCageSlot(deviceId);
                         if(bigStorageCage!=null){
                             bigStorageCageDetails.setSlot(bigStorageCage.getSlot());
+                            found=true;
+                            break;
                         }
+                    }
+                    if(found){
+                        break;
                     }
                 }
             }
@@ -119,12 +125,14 @@
                 return bigStorageCageMapper.selectOne(bigStorageCageWrapper);
     }
 
-
+    //鍑虹墖閫昏緫
     @Override
     public boolean outGlass() {
-        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list();
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper=new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getState,-1);
+        List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoService.list(temperingGlassInfoWrapper);
         log.info("1銆佹煡璇㈤挗鍖栧皬鐗囦换鍔¤〃鏄惁鏈夊緟鍑虹幓鐠�"+temperingGlassInfoList.size());
-        if(temperingGlassInfoList!=null){
+        if(temperingGlassInfoList.size()>0){
             temperingGlassInfoService.addOutTask(temperingGlassInfoList);
             log.info("2銆佹坊鍔犱换鍔″埌浠诲姟琛�");
             return true;
@@ -140,7 +148,7 @@
                     String layoutId = entry.getKey().substring(0, entry.getKey().indexOf('-'));
                     String layoutNum = entry.getKey().substring(entry.getKey().indexOf('-') + 1);
                     if (layoutNum.equals(entry.getValue())) {
-                        //4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛�
+                        log.info("4銆佹坊鍔犳閽㈠寲鐗堝浘id鎵�鏈夊皬鐗囧皬鐗囧埌閽㈠寲灏忕墖琛�");
                         LambdaQueryWrapper<GlassInfo> glassInfoWrapper=new LambdaQueryWrapper<>();
                         glassInfoWrapper.select(GlassInfo::getTemperingLayoutId)
                                 .orderByDesc(GlassInfo::getTemperingFeedSequence);
@@ -177,14 +185,21 @@
         bigStorageCageMapper.update(bigStorageCage, bigStorageCageWrapper);
     }
 
-
+    //鏌ヨ澶х悊鐗囦俊鎭紝鍓嶇灞曠ず鐢�
     @Override
-    public List<BigStorageCage> querybigStorageCageDetail() {
-        //1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭�
-        List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectList(null);
+    public List<BigStorageCage> querybigStorageCageDetail(int 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);
         log.info("1銆佽幏鍙栧ぇ鐞嗙墖绗间俊鎭畬鎴愶紝鑾峰彇鍒扮殑鏁版嵁{}", bigStorageCages.size());
-        //2鑾峰彇鐞嗙墖绗兼墍鏈変俊鎭�
-        List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(null);
+
+        List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(BigStorageCageDetailsWrapper);
+
         Map<Integer, List<BigStorageCageDetails>> listMap = bigStorageCageDetailsList.stream().collect(Collectors.groupingBy(BigStorageCageDetails::getSlot));
         for (BigStorageCage bigStorageCage : bigStorageCages) {
             List<BigStorageCageDetails> bigStorageCageDetails = listMap.get(bigStorageCage.getSlot());
@@ -193,4 +208,28 @@
         return bigStorageCages;
     }
 
+    //绗煎瓙浣跨敤鎯呭喌锛岀晫闈㈠睍绀虹敤
+    @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")
+                .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;
+        }
+    }
 }
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 a9f3743..41ed73d 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
@@ -3,6 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -14,21 +17,48 @@
  * @author zhoush
  * @since 2024-04-16
  */
+@ApiModel(description = "<p>  </p>")
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class BigStorageCageFeedTask implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 涓婚敭id
+     */
+      @ApiModelProperty(value = "涓婚敭id", position = 2)
       @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 3)
+    private String glassId;
+
+    /**
+     * 鐩爣浣嶇疆
+     */
+    @ApiModelProperty(value = "鐩爣浣嶇疆", position = 4)
     private Integer tragetSlot;
 
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    @ApiModelProperty(value = "鐜荤拑绫诲瀷", position = 5)
     private Integer taskType;
 
+    /**
+     * 浠诲姟绫诲瀷
+     */
+    @ApiModelProperty(value = "浠诲姟绫诲瀷", position = 6)
     private Integer taskState;
 
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "绾胯矾", position = 7)
     private Integer line;
 
 
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 ffbb1d7..2094530 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
@@ -3,6 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -14,23 +17,54 @@
  * @author zhoush
  * @since 2024-04-16
  */
+@ApiModel(description = "<p>  </p>")
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class BigStorageCageOutTask implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 涓婚敭id
+     */
+      @ApiModelProperty(value = "涓婚敭id", position = 2)
       @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 3)
+    private String glassId;
+
+    /**
+     * 寮�濮嬩綅缃�
+     */
+    @ApiModelProperty(value = "寮�濮嬩綅缃�", position = 4)
     private Integer startSlot;
 
+    /**
+     * 鐩爣浣嶇疆
+     */
+    @ApiModelProperty(value = "鐩爣浣嶇疆", position = 5)
     private Integer endSlot;
 
+    /**
+     * 杞︽
+     */
+    @ApiModelProperty(value = "杞︽", position = 6)
     private Integer trainNumber;
 
+    /**
+     * 搴忓彿
+     */
+    @ApiModelProperty(value = "搴忓彿", position = 7)
     private Integer serialNumber;
 
+    /**
+     * 浠诲姟鐘舵��
+     */
+    @ApiModelProperty(value = "浠诲姟鐘舵��", position = 8)
     private Integer taskState;
 
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java
index 2e10a4d..2c9a9e2 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/BigStorageCageOutTaskService.java
@@ -19,5 +19,5 @@
 
     void updateOutTask();
 
-    void deleteOutTask(Long taskId);
+    void deleteOutTask(String glassId);
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java
index c06a427..32938c2 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java
@@ -1,12 +1,14 @@
 package com.mes.bigstoragetask.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
 import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
 import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
 import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -32,6 +34,10 @@
     BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
     @Resource
     BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
+
+    /**
+     * 鏌ヨ浠诲姟淇℃伅
+     */
     @Override
     public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState){
         log.info("鏍规嵁浼犲叆鐨勪换鍔$姸鎬佹煡璇换鍔′俊鎭細"+taskState);
@@ -40,21 +46,46 @@
         return baseMapper.selectList(getOutTaskWrapper);
     }
 
+    /**
+     * 妫�娴婸LC鏄惁瀹屾垚浠诲姟
+     */
     @Override
     public void updateOutTask(){
         List<BigStorageCageOutTask> bigStorageCageOutTaskList=querybigStorageCageOutTask(1);
         log.info("鏌ヨ浠诲姟琛ㄦ槸鍚︽湁宸插畬鎴愮殑鍑虹墖浠诲姟"+bigStorageCageOutTaskList.size());
         for (BigStorageCageOutTask bigStorageCageOutTask:bigStorageCageOutTaskList
         ) {
-            deleteOutTask(bigStorageCageOutTask.getId());
+            deleteOutTask(bigStorageCageOutTask.getGlassId());
         }
     }
 
+    /**
+     * 瀹屾垚鍑虹墖浠诲姟
+     */
     @Override
-    public void deleteOutTask(Long taskId){
+    public void deleteOutTask(String glassId){
         log.info("鏍规嵁浠诲姟id淇敼閽㈠寲灏忕墖琛ㄧ姸鎬侊紝鍒犻櫎宸插畬鎴愮殑鍑虹墖浠诲姟,鍒犻櫎绗煎瓙琛ㄧ幓鐠�");
-        temperingGlassInfoMapper.deleteById(taskId);
-        bigStorageCageOutTaskMapper.deleteById(taskId);
-        bigStorageCageDetailsMapper.deleteById(taskId);
+
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper =new LambdaQueryWrapper<>();
+        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId,glassId);
+        TemperingGlassInfo temperingGlassInfo=temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
+        //鍒ゆ柇鏄惁鎵嬪姩浠诲姟锛屼笉閽㈠寲浠诲姟瀹屾垚鍚庡垹鎺夛紝閽㈠寲浠诲姟瀹屾垚鍚庢敼鐘舵�佷负0
+        if(temperingGlassInfo.getState()==-2){
+            temperingGlassInfoMapper.deleteById(temperingGlassInfo.getId());
+        }else{
+            temperingGlassInfo.setState(0);
+            temperingGlassInfoMapper.updateById(temperingGlassInfo);
+        }
+
+        LambdaQueryWrapper<BigStorageCageOutTask> bigStorageCageOutTaskWrapper =new LambdaQueryWrapper<>();
+        bigStorageCageOutTaskWrapper.eq(BigStorageCageOutTask::getGlassId,glassId);
+        BigStorageCageOutTask bigStorageCageOutTask=bigStorageCageOutTaskMapper.selectOne(bigStorageCageOutTaskWrapper);
+        bigStorageCageOutTaskMapper.deleteById(bigStorageCageOutTask.getId());
+
+        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
+        bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId,glassId);
+        BigStorageCageDetails bigStorageCageDetails=bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailsWrapper);
+        bigStorageCageDetailsMapper.deleteById(bigStorageCageOutTask.getId());
+
     }
 }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
index ac57db3..304846e 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
@@ -24,7 +24,9 @@
     private S7object() {
         if (plccontrol == null) {
             plccontrol = new S7control(plcType, ip, port, 0, 0);
-            String PlcLoadGlass = System.getProperty("user.dir") + "/JsonFile/PlcCacheVerticalGlass.json";
+
+            String PlcLoadGlass=S7object.class.getResource("/JsonFile/PlcCacheVerticalGlass.json").getPath();
+            //log.info(PLCAutoMes.class.getResource("").getPath());
             PlcMesObject = InitUtil.initword(PlcLoadGlass);
         }
     }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
new file mode 100644
index 0000000..b8b8a9d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/controller/EdgGlassTaskInfoController.java
@@ -0,0 +1,20 @@
+package com.mes.edgglasstask.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@RestController
+@RequestMapping("/edgGlassTaskInfo")
+public class EdgGlassTaskInfoController {
+
+}
+
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
new file mode 100644
index 0000000..52ad531
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/entity/EdgGlassTaskInfo.java
@@ -0,0 +1,71 @@
+package com.mes.edgglasstask.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@ApiModel(description = "<p> </p>")
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class EdgGlassTaskInfo implements Serializable {
+
+    /**
+     * 纾ㄨ竟浠诲姟id
+     */
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 2)
+    private String glassId;
+
+    /**
+     * 瀹�
+     */
+    @ApiModelProperty(value = "瀹�", position = 3)
+    private Integer width;
+
+    /**
+     * 楂�
+     */
+    @ApiModelProperty(value = "楂�", position = 4)
+    private Integer height;
+
+    /**
+     * 鍘氬害
+     */
+    @ApiModelProperty(value = "鍘氬害", position = 5)
+    private Integer thickness;
+
+    /**
+     * 鐜荤拑绫诲瀷
+     */
+    @ApiModelProperty(value = "鐜荤拑绫诲瀷", position = 6)
+    private Integer glassType;
+
+    /**
+     * 鐘舵��
+     */
+    @ApiModelProperty(value = "鐘舵��", position = 7)
+    private Integer status;
+
+    /**
+     * 绾胯矾
+     */
+    @ApiModelProperty(value = "绾胯矾", position = 8)
+    private Integer line;
+
+
+}
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
new file mode 100644
index 0000000..2f6a5be
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/mapper/EdgGlassTaskInfoMapper.java
@@ -0,0 +1,18 @@
+package com.mes.edgglasstask.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@DS("salve_hangzhoumes")
+public interface EdgGlassTaskInfoMapper extends BaseMapper<EdgGlassTaskInfo> {
+
+}
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
new file mode 100644
index 0000000..1589b7d
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/EdgGlassTaskInfoService.java
@@ -0,0 +1,16 @@
+package com.mes.edgglasstask.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+public interface EdgGlassTaskInfoService extends IService<EdgGlassTaskInfo> {
+
+}
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
new file mode 100644
index 0000000..34a06f4
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/edgglasstask/service/impl/EdgGlassTaskInfoServiceImpl.java
@@ -0,0 +1,20 @@
+package com.mes.edgglasstask.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
+import com.mes.edgglasstask.mapper.EdgGlassTaskInfoMapper;
+import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author wu
+ * @since 2024-05-11
+ */
+@Service
+public class EdgGlassTaskInfoServiceImpl extends ServiceImpl<EdgGlassTaskInfoMapper, EdgGlassTaskInfo> implements EdgGlassTaskInfoService {
+
+}
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
new file mode 100644
index 0000000..d0c68d0
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -0,0 +1,101 @@
+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;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+@Component
+@Slf4j
+public class PlcSlicecage {
+
+    @Resource
+    private BigStorageCageService bigStorageCageService;
+    @Resource
+    private BigStorageCageDetailsService bigStorageCageDetailsService;
+    @Resource
+    private TemperingGlassInfoService temperingGlassInfoService;
+
+    PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+    /**
+     * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
+     * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
+     */
+    @Scheduled(fixedDelay = 5000)
+    public void plcStorageCageTask() throws InterruptedException {
+        JSONObject jsonObject = new JSONObject();
+        try {
+            //鐣岄潰灞曠ず绗煎瓙淇℃伅
+            jsonObject.append("bigStorageCageInfo1", bigStorageCageService.querybigStorageCageDetail(1));
+            jsonObject.append("bigStorageCageInfo2", bigStorageCageService.querybigStorageCageDetail(2));
+            jsonObject.append("bigStorageCageInfo3", bigStorageCageService.querybigStorageCageDetail(3));
+            jsonObject.append("bigStorageCageInfo4", bigStorageCageService.querybigStorageCageDetail(4));
+            jsonObject.append("bigStorageCageInfo5", bigStorageCageService.querybigStorageCageDetail(5));
+            jsonObject.append("bigStorageCageInfo6", bigStorageCageService.querybigStorageCageDetail(6));
+            jsonObject.append("bigStorageCageInfo7", bigStorageCageService.querybigStorageCageDetail(7));
+            jsonObject.append("bigStorageCageInfo8", bigStorageCageService.querybigStorageCageDetail(8));
+
+            //杩涚墖浠诲姟鏁版嵁
+            List<BigStorageCageDetails> bigStorageCageDetailsFeedTask=bigStorageCageDetailsService.selectTask(1);
+            jsonObject.append("bigStorageCageDetailsFeedTask", bigStorageCageDetailsFeedTask);
+
+            //鍑虹墖浠诲姟鏁版嵁
+            List<BigStorageCageDetails> bigStorageCageDetailsOutTask=bigStorageCageDetailsService.selectTask(2);
+            jsonObject.append("bigStorageCageDetailsOutTask", bigStorageCageDetailsOutTask);
+
+            //鐞嗙墖绗间娇鐢ㄦ儏鍐�
+            List<Map<String, Object>> bigStorageCageUsage=bigStorageCageService.selectBigStorageCageUsage();
+            jsonObject.append("bigStorageCageUsage", bigStorageCageUsage);
+
+            //鍑虹墖闃熷垪
+            List<TemperingGlassInfo> temperingGlassInfoList= temperingGlassInfoService.list();
+            jsonObject.append("temperingGlassInfoList", temperingGlassInfoList);
+
+            //鎶ヨ淇℃伅
+            jsonObject.append("bigStorageCageFullAlarm", PlcStorageCageTask.bigStorageCageFullAlarm);
+
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    if (webserver != null) {
+                        webserver.sendMessage(jsonObject.toString());
+                        List<String> messages = webserver.getMessages();
+                        if (!messages.isEmpty()) {
+                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            webserver.clearMessages();
+                        }
+                    } else {
+                        log.info("Home is closed");
+                    }
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+}
\ No newline at end of file
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 93c9b80..476151f 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
@@ -1,6 +1,4 @@
 package com.mes.job;
-
-import cn.hutool.json.JSONObject;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
@@ -13,14 +11,11 @@
 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.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
 import java.util.List;
 
 @Component
@@ -40,20 +35,16 @@
     @Resource
     private TaskCacheService taskCacheService;
 
-    @Resource
-    private SysMenuService sysMenuService;
-
     PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+
+    public static boolean bigStorageCageFullAlarm = false;
     /**
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
      * fixedDelay : 涓婁竴涓皟鐢ㄧ粨鏉熷悗鍐嶆璋冪敤鐨勫欢鏃�
      */
-    @Scheduled(fixedDelay = 30000)
+    @Scheduled(fixedDelay = 5000)
     public void plcStorageCageTask() throws InterruptedException {
-        JSONObject jsonObject = new JSONObject();
         try {
-            // 鐖嗙鎶ヨ
-            boolean bigStorageCageFullAlarm = false;
 
             String plcFeedGlassid = "";
             String plcFeedReqLine = "0";
@@ -71,15 +62,24 @@
                 BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
                 GlassInfo glassInfo = glassInfoService.getById(plcFeedGlassid);
                 log.info("2銆佹牴鎹幓鐠僫d鑾峰彇鐜荤拑淇℃伅" + glassInfo);
-                BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails);
-                if (slotInfo != null) {
-                    int taskType = taskCacheService.judgeTasktype();
-                    log.info("3銆佹煡璇换鍔¤〃鍒ゆ柇褰撳墠浠诲姟绫诲瀷涓轰笂杞︾瓑鍒拌繕鏄笂杞﹀惎鍔�" + taskType);
-                    bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType);
-                    log.info("4銆佹坊鍔犱换鍔″埌浠诲姟琛�");
-                    bigStorageCageFullAlarm = false;
-                } else {
-                    bigStorageCageFullAlarm = true;
+                if(bigStorageCageDetailsService.selectGetBoard(glassInfo,plcFeedReqLine)){
+                    BigStorageCageDetails slotInfo = bigStorageCageService.feedGlass(glassInfo, bigStorageCageDetails);
+                    if (slotInfo != null) {
+                        int taskType = taskCacheService.judgeTasktype();
+                        log.info("3銆佹煡璇换鍔¤〃鍒ゆ柇褰撳墠浠诲姟绫诲瀷涓轰笂杞︾瓑鍒拌繕鏄笂杞﹀惎鍔�" + taskType);
+                        bigStorageCageFeedTaskService.addFeedTask(slotInfo, Integer.parseInt(plcFeedReqLine), taskType);
+                        log.info("4銆佹坊鍔犱换鍔″埌浠诲姟琛�");
+                        bigStorageCageFullAlarm = false;
+                    } else {
+                        bigStorageCageFullAlarm = true;
+                    }
+                }else{
+                    log.info("褰撳墠鐜荤拑瀹藉害涓嶅涓婅溅" + glassInfo);
+                    if(!("1".equals(plcFeedReqLine))){
+                        S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D02Go").getAddress(), 1);
+                    }else{
+                        S7object.getinstance().plccontrol.writetime(plcParameterObject.getPlcParameter("D05Go").getAddress(), 1);
+                    }
                 }
             } else {
                 List<BigStorageCageFeedTask> bigStorageCageFeedTaskList = bigStorageCageFeedTaskService.querybigStorageCageFeedTask(1);
@@ -105,26 +105,8 @@
             bigStorageCageOutTaskService.updateOutTask();
             log.info("9銆佹牴鎹换鍔¤〃鐘舵�佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
 
-            //鎶ヨ淇℃伅
-            jsonObject.append("bigStorageCageFullAlarm", bigStorageCageFullAlarm);
 
 
-
-            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
-            if (sendwServer != null) {
-                for (WebSocketServer webserver : sendwServer) {
-                    if (webserver != null) {
-                        webserver.sendMessage(jsonObject.toString());
-                        List<String> messages = webserver.getMessages();
-                        if (!messages.isEmpty()) {
-                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-                            webserver.clearMessages();
-                        }
-                    } else {
-                        log.info("Home is closed");
-                    }
-                }
-            }
         } catch (Exception e) {
             e.printStackTrace();
         }
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
index 3f6b0c9..40878b5 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -3,6 +3,9 @@
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -14,6 +17,7 @@
  * @author zhoush
  * @since 2024-03-27
  */
+@ApiModel(description = "<p> 閽㈠寲灏忕墖淇℃伅琛� </p>")
 @Data
 @EqualsAndHashCode(callSuper = false)
 public class TemperingGlassInfo implements Serializable {
@@ -23,72 +27,92 @@
     /**
      * 閽㈠寲灏忕墖淇℃伅琛╥d
      */
+      @ApiModelProperty(value = "閽㈠寲灏忕墖淇℃伅琛╥d", position = 2)
       @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
+     * 鐜荤拑id
+     */
+    @ApiModelProperty(value = "鐜荤拑id", position = 3)
+    private String glassId;
+
+    /**
      * 娴佺▼鍗�
      */
+    @ApiModelProperty(value = "娴佺▼鍗�", position = 4)
     private String flowcardId;
 
     /**
      * 娴佺▼鍗$幓鐠冪被鍨�
      */
+    @ApiModelProperty(value = "娴佺▼鍗$幓鐠冪被鍨�", position = 5)
     private Integer glassType;
 
     /**
      * 瀹�
      */
+    @ApiModelProperty(value = "瀹�", position = 6)
     private Double width;
 
     /**
      * 楂�
      */
+    @ApiModelProperty(value = "楂�", position = 7)
     private Double height;
 
     /**
      * 鍘氬害
      */
+    @ApiModelProperty(value = "鍘氬害", position = 8)
     private Double thickness;
 
     /**
      * 鑶滅郴
      */
+    @ApiModelProperty(value = "鑶滅郴", position = 9)
     private Integer filmsid;
 
     /**
      * 閽㈠寲鏄惁鎺ュ彈妯斁
      */
+    @ApiModelProperty(value = "閽㈠寲鏄惁鎺ュ彈妯斁", position = 10)
     private Integer ishorizontal;
 
     /**
      * 閽㈠寲鐗堝浘id
      */
+    @ApiModelProperty(value = "閽㈠寲鐗堝浘id", position = 11)
     private Integer temperingLayoutId;
 
     /**
      * 閽㈠寲鐗堝浘鐗囧簭
      */
+    @ApiModelProperty(value = "閽㈠寲鐗堝浘鐗囧簭", position = 12)
     private Integer temperingFeedSequence;
 
     /**
      * x鍧愭爣
      */
+    @ApiModelProperty(value = "x鍧愭爣", position = 13)
     private Integer xCoordinate;
 
     /**
      * y鍧愭爣
      */
+    @ApiModelProperty(value = "y鍧愭爣", position = 14)
     private Integer yCoordinate;
 
     /**
      * 鏃嬭浆瑙掑害锛堥�嗘椂閽堬級
      */
+    @ApiModelProperty(value = "鏃嬭浆瑙掑害锛堥�嗘椂閽堬級", position = 15)
     private Integer angle;
 
     /**
      * 鐘舵��
      */
+    @ApiModelProperty(value = "鐘舵��", position = 16)
     private Integer state;
 
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
index ccf5a4b..bb591f5 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/temperingglass/mapper/TemperingGlassInfoMapper.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/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.mes.temperingglass.entity.TemperingGlassInfo;
 
@@ -11,6 +12,7 @@
  * @author zhoush
  * @since 2024-03-27
  */
+@DS("salve_hangzhoumes")
 public interface TemperingGlassInfoMapper extends BaseMapper<TemperingGlassInfo> {
 
 }
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 4e4b1c8..b9e6e98 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
@@ -31,11 +31,11 @@
         ) {
             log.info("1銆佸綋鍑虹墖杞﹀搴﹀ぇ浜庣幓鐠冨搴︽椂");
             if((carWidth-temperingGlassInfo.getWidth())>0){
-                carWidth-=temperingGlassInfo.getWidth()-gap;
-                log.info("2銆佹坊鍔犲垰灏忕墖琛ㄤ俊鎭埌浠诲姟琛�");
-                temperingGlassInfo.setState(1);
+                carWidth-=temperingGlassInfo.getWidth()+gap;
+                log.info("2銆佹坊鍔犻挗鍖栧皬鐗囪〃淇℃伅鍒颁换鍔¤〃");
+                temperingGlassInfo.setState(0);
                 baseMapper.updateById(temperingGlassInfo);
-                log.info("3銆佹坊鍔犲垰灏忕墖琛ㄤ俊鎭埌浠诲姟琛�");
+                log.info("3銆佷慨鏀归挗鍖栧皬鐗囪〃浠诲姟鐘舵��");
                 BigStorageCageOutTask bigStorageCageOutTask =new BigStorageCageOutTask();
                 bigStorageCageOutTask.setId(temperingGlassInfo.getId());
             }else{

--
Gitblit v1.8.0