From e72ed7fd6ce5a731583ce6edea40a9955644d3db Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 23 十二月 2024 09:36:35 +0800
Subject: [PATCH] 1、切割版图显示 2、中空领任务是玻璃调度同样计算格子的厚度 3、补单的总层数用流程卡表内的layers_number替换

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java                              |   31 +-
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java                                       |   21 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java  |   19 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java           |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java            |    7 
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java                  |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java          |   16 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml                               |   17 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java                    |   35 +++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java                                 |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java                        |   19 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java                                               |    9 
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java                            |    6 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java     |   64 -----
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java     |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java                                       |   14 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java                                        |   15 +
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java |  268 ++++--------------------
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java                    |    4 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                                      |    1 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java                     |   28 +-
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                                                      |    4 
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java           |   11 -
 23 files changed, 256 insertions(+), 349 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
index 261ec06..57fc8dd 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/base/entity/HollowBigStorageCageBaseInfo.java
@@ -45,6 +45,12 @@
     private double height;
 
     /**
+     * 鍘氬害
+     */
+    @ApiModelProperty(value = "鍘氬害")
+    private Double thickness;
+
+    /**
      * 鏍煎瓙鍙�
      */
     @ApiModelProperty(value = "鐜荤拑id")
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 c33869e..ea0cda4 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
@@ -84,6 +84,7 @@
     public static final Integer GLASS_CACHE_TYPE_FINISH = 5;
     public static final Integer GLASS_CACHE_TYPE_OTHER = 6;
     public static final List<Integer> GLASS_CACHE_TYPE_OUT_ALL = Arrays.asList(2, 3);
+    public static final List<Integer> GLASS_CACHE_TYPE_IN_ALL = Arrays.asList(1, 3);
 
     /**
      * 纾ㄨ竟浠诲姟鐜荤拑鐘舵��
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
index d0ff6d9..0a819df 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/GlassInfo.java
@@ -101,6 +101,15 @@
      * 鍘熺墖椤哄簭
      */
     private Integer patternSequence;
+    /**
+     * x鍧愭爣
+     */
+    private Integer xAxis;
+
+    /**
+     * y鍧愭爣
+     */
+    private Integer yAxis;
 
     /**
      * 閽㈠寲鐗堝浘id
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
index db245d8..ce530ac 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/entity/OptimizeGlassinfo.java
@@ -72,9 +72,17 @@
      */
     private double pHeight;
     /**
-     * 鐗堝浘id
+     * 鍘熺墖鐗堝浘id
      */
     private Integer stockId;
+    /**
+     * 鍘熺墖鐗堝浘鐗堝簭
+     */
+    private Integer xAxis;
+    /**
+     * 鍘熺墖鐗堝浘鐗堝簭
+     */
+    private Integer yAxis;
     /**
      * 閽㈠寲鐗堝浘缂栧彿(鏋跺彿)
      */
@@ -86,11 +94,11 @@
     /**
      * x鍧愭爣
      */
-    private Integer xAxis;
+    private Integer xAxisHeat;
     /**
      * y鍧愭爣
      */
-    private  Integer yAxis;
+    private  Integer yAxisHeat;
     /**
      * 宸ョ▼鍙�
      */
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
index a65d0ad..40f9891 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/glassinfo/service/impl/GlassInfoServiceImpl.java
@@ -40,7 +40,9 @@
         List<OptimizeGlassinfo> optimizeGlassinfos = null;
         if (engineeringId != null) {
             optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>()
-                    .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,c.x_axis,c.y_axis,b.project_no,b.glass_id,c.rotate_angle,d.merge as combine ,b.mark_icon")
+                    .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer," +
+                            "d.layers_number AS total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort, b.x_axis,b.y_axis," +
+                            "c.x_axis as x_axis_heat,c.y_axis as y_axis_heat,b.project_no,b.glass_id,c.rotate_angle,d.merge as combine ,b.mark_icon")
                     .leftJoin("optimize_detail b on t.project_no=b.project_no")
                     .leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort")
                     .leftJoin("flow_card d on d.process_id=b.process_id and d.technology_number=b.layer and  d.order_number=b.order_sort ")
@@ -58,19 +60,26 @@
                 glassInfo.setEngineerId(map.getProjectNo());
                 glassInfo.setFlowCardId(map.getProcessId());
                 glassInfo.setFilmsid(map.getGlassType());
-                glassInfo.setGlassType(map.getOrderSort());//璁㈠崟搴忓彿
-                glassInfo.setWidth(map.getOWidth());//璁㈠崟瀹�
-                glassInfo.setHeight(map.getOHeight());//璁㈠崟楂�
+                //璁㈠崟搴忓彿
+                glassInfo.setGlassType(map.getOrderSort());
+                //璁㈠崟瀹�
+                glassInfo.setWidth(map.getOWidth());
+                //璁㈠崟楂�
+                glassInfo.setHeight(map.getOHeight());
                 glassInfo.setEdgWidth(map.getPWidth());
-                glassInfo.setLayer(map.getLayer());
-                glassInfo.setTotalLayer(map.getTotalLayer());
                 glassInfo.setEdgHeight(map.getPHeight());
                 glassInfo.setThickness(map.getGlassThickness());
-                glassInfo.setPatternSequence(map.getStockId());//
-                glassInfo.setTemperingLayoutId(map.getHeatLayoutId());//閽㈠寲鐗堝浘id
-                glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());//閽㈠寲鐗堝浘椤哄簭
-                glassInfo.setXCoordinate(map.getXAxis());
-                glassInfo.setYCoordinate(map.getYAxis());
+                glassInfo.setLayer(map.getLayer());
+                glassInfo.setTotalLayer(map.getTotalLayer());
+                glassInfo.setPatternSequence(map.getStockId());
+                glassInfo.setXAxis(map.getXAxis());
+                glassInfo.setYAxis(map.getYAxis());
+                //閽㈠寲鐗堝浘id
+                glassInfo.setTemperingLayoutId(map.getHeatLayoutId());
+                //閽㈠寲鐗堝浘椤哄簭
+                glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());
+                glassInfo.setXCoordinate(map.getXAxisHeat());
+                glassInfo.setYCoordinate(map.getYAxisHeat());
                 glassInfo.setAngle(map.getRotateAngle());
                 glassInfo.setGlassId(map.getGlassId());
                 glassInfo.setCombine(map.getCombine());
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
index ae7acb3..b86fa90 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/controller/EdgStorageCageController.java
@@ -34,17 +34,8 @@
     @Autowired
     private EdgStorageCageDetailsService edgStorageCageDetailsService;
 
-//    @ApiOperation("鏌ヨ纾ㄨ竟缂撳瓨鐞嗙墖绗煎唴璇︽儏 鍙傛暟()")
-//    @PostMapping("/selectEdgStorageCage")
-//    @ResponseBody
-//    public Result selectEdgStorageCage() {
-//        List<Map<String, Object>> list = edgStorageCageService.selectEdgStorageCages();
-//        return Result.build(200, "鎴愬姛", list);
-//    }
-
     @ApiOperation("淇敼纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸杩涜銆愬惎鐢�/绂佺敤銆�")
     @PostMapping("/updateEdgStorageCage")
-    @ResponseBody
     public Result updateEdgStorageCage(@RequestBody EdgStorageCage edgStorageCage) {
         String isSucess = edgStorageCageService.updateEdgStorageCage(edgStorageCage) ? "鎴愬姛" : "澶辫触";
         return Result.build(200, "銆愬惎鐢�/绂佺敤銆�" + isSucess, 1);
@@ -52,7 +43,6 @@
 
     @ApiOperation("纾ㄨ竟缂撳瓨鐞嗙墖绗间俊鎭�   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愭竻闄�/鏇存崲/缁戝畾銆� EdgStorageCage鏍煎瓙淇℃伅,EdgStorageCageDetails 鐜荤拑淇℃伅 ")
     @PostMapping("/edgStorageCageGlass")
-    @ResponseBody
     public Result edgStorageCageGlass(@RequestBody EdgStorageCageDetails edgStorageCageDetails, int edgStorageCageId) {
 
         String isSucess = edgStorageCageService.updateEdgStorageCageDetails(edgStorageCageId, edgStorageCageDetails) ? "鎴愬姛" : "澶辫触";
@@ -61,7 +51,6 @@
 
     @ApiOperation("纾ㄨ竟妯″潡姹囨姤鐜荤拑鐘舵��   鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑杩涜銆愮牬鎹�/鎷胯蛋銆�  ")
     @PostMapping("/edgReportStatus")
-    @ResponseBody
     public Result edgReportStatus(@RequestBody @Validated IdentWornRequest request) {
         return Result.build(200, "銆愮牬鎹�/鎷胯蛋銆�" + edgStorageCageDetailsService.edgReportStatus(request), 1);
     }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java
new file mode 100644
index 0000000..76770f5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/entity/vo/CutDrawingVO.java
@@ -0,0 +1,19 @@
+package com.mes.edgstoragecage.entity.vo;
+
+import com.mes.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.glassinfo.entity.GlassInfo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/18 20:00
+ * @Description:
+ */
+@Data
+public class CutDrawingVO extends GlassInfo {
+
+    private int state;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
index 8dd8e31..80d8574 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/mapper/EdgStorageCageDetailsMapper.java
@@ -2,6 +2,11 @@
 
 import com.github.yulichang.base.MPJBaseMapper;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.security.core.parameters.P;
+
+import java.util.List;
 
 /**
  * <p>
@@ -14,4 +19,6 @@
 public interface EdgStorageCageDetailsMapper extends MPJBaseMapper<EdgStorageCageDetails> {
 
     EdgStorageCageDetails queryEdgStorageDetailsBySize(int deviceId, int currentSlot, double width, double height);
+
+    List<CutDrawingVO> queryCutDrawingByEngineerId(@Param("engineerId") String engineerId, @Param("patternSequence") int patternSequence, @Param("isAll") int isAll);
 }
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
index 43d2024..2dfceff 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageDetailsService.java
@@ -3,6 +3,7 @@
 import com.github.yulichang.base.MPJBaseService;
 import com.mes.edgglasstask.entity.request.IdentWornRequest;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
 
 import java.util.List;
 import java.util.Map;
@@ -20,19 +21,14 @@
 //    boolean identWorn(Map<String, Object> arguments);
 
     /**
-     * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
-     *
+     * 鎸夌収璁惧鍙婄嚎璺紝鑾峰彇褰撳墠绾胯矾姝e湪鍒囧壊鐨勭増鍥句俊鎭�
+     * @param deviceId
+     * @param stationCell
      * @return
      */
-    List<Map<String, Object>> selectCutTerritory();
+    List<CutDrawingVO> queryCurrentCutDrawing(int deviceId, int stationCell);
 
-    /**
-     * 鑾峰彇 宸ョ▼涓嬬殑褰撳墠鐗堝浘
-     *
-     * @param current
-     * @return
-     */
-    List<List<Map<String, Object>>> selectCurrentCutTerritory(String current);
+    Map<String, Object> queryCutDrawingByEngineerId(String engineerId, int patternSequence);
 
     /**
      * 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
index e01c67f..87ce02b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageDetailsServiceImpl.java
@@ -1,5 +1,6 @@
 package com.mes.edgstoragecage.service.impl;
 
+import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -16,20 +17,20 @@
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
 import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
 import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.engineering.entity.Engineering;
 import com.mes.engineering.mapper.EngineeringMapper;
 import com.mes.glassinfo.entity.GlassInfo;
-import com.mes.glassinfo.mapper.GlassInfoMapper;
-import com.mes.pp.entity.*;
-import com.mes.pp.mapper.OptimizeDetailMapper;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.pp.entity.OptimizeHeatDetail;
+import com.mes.pp.entity.OptimizeHeatLayout;
+import com.mes.pp.entity.OptimizeProject;
 import com.mes.pp.mapper.OptimizeHeatDetailMapper;
 import com.mes.taskcache.entity.TaskCache;
 import com.mes.taskcache.service.TaskCacheService;
-import com.mes.uppattenusage.entity.UpPattenUsage;
-import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -56,13 +57,7 @@
 public class EdgStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<EdgStorageCageDetailsMapper, EdgStorageCageDetails> implements EdgStorageCageDetailsService {
 
     @Resource
-    UpPattenUsageMapper upPattenUsageMapper;
-
-    @Resource
     EngineeringMapper engineeringMapper;
-
-    @Resource
-    OptimizeDetailMapper optimizeDetailMapper;
 
     @Resource
     OptimizeHeatDetailMapper optimizeHeatDetailMapper;
@@ -71,7 +66,7 @@
     EdgStorageCageMapper edgStorageCageMapper;
 
     @Resource
-    GlassInfoMapper glassInfoMapper;
+    GlassInfoService glassInfoService;
 
     @Autowired
     TaskCacheService taskCacheService;
@@ -84,226 +79,51 @@
 
     @Autowired
     EdgGlassTaskInfoService edgGlassTaskInfoService;
-//
-//    @Override
-//    public boolean identWorn(Map<String, Object> arguments) {
-//        String glassId=arguments.get("glassId").toString();
-//        int state=arguments.get("state").toString().isEmpty()?0:Integer.parseInt(arguments.get("state").toString());
-//        int line=arguments.get("line").toString().isEmpty()?0:Integer.parseInt(arguments.get("line").toString());
-//        String workingProcedure=arguments.get("workingProcedure").toString();
-//        if(state==0||line==0||workingProcedure==null||glassId==null||glassId.isEmpty()){
-//            log.info("鍓嶇浼犻�掓暟鎹笉鍏�:{}",arguments);
-//            return false;
-//        }
-//        List<GlassInfo> GlassInfos = glassInfoMapper.selectList(new MPJLambdaQueryWrapper<GlassInfo>()
-//                .selectAll(GlassInfo.class)
-//                .eq(GlassInfo::getGlassId, glassId));
-//        if (GlassInfos.size() == 1) {
-//            Damage damage =new Damage();
-//            damage.setGlassId(glassId);
-//            damage.setLine(line);
-//            damage.setWorkingProcedure(workingProcedure);
-//            damage.setRemark("");
-//            damage.setStatus(state);//8鐮存崯锛�9鎷胯蛋
-//            damageService.insertDamage(damage);
-//        }else{
-//            return false;
-//        }
-//        List<EdgStorageCageDetails> edgStorageCageDetails = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-//                .selectAll(EdgStorageCageDetails.class)
-//                .eq(EdgStorageCageDetails::getGlassId, glassId));
-//        if (edgStorageCageDetails.size() == 1) {
-//            EdgStorageCageDetails item = edgStorageCageDetails.get(0);
-//            item.setState(state);
-//            baseMapper.update(item, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class).eq(EdgStorageCageDetails::getGlassId, glassId));
-//        }
-//        return true;
-//    }
 
-    /**
-     * 鑾峰彇 鍒囧壊褰撳墠鐗堝浘
-     *
-     * @return
-     */
     @Override
-    public List<Map<String, Object>> selectCutTerritory() {
-        //鏌ヨEdgStorageCageDetails鏈�鍚庝竴寮犵幓鐠冩墍灞炵増鍥�
-        List<UpPattenUsage> upPattenUsage = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
-                .selectAll(UpPattenUsage.class)
-                .distinct()
-                .innerJoin(Engineering.class, on -> on
-                        .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
-                .innerJoin(GlassInfo.class, on -> on
-                        .eq(GlassInfo::getEngineerId, UpPattenUsage::getEngineeringId)
-                        .eq(GlassInfo::getPatternSequence, UpPattenUsage::getLayoutSequence))
-                .leftJoin(EdgStorageCageDetails.class, on -> on
-                        .eq(EdgStorageCageDetails::getEngineerId, UpPattenUsage::getEngineeringId)
-                        .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId))
-                .leftJoin(Damage.class, on -> on
-                        .eq(Damage::getEngineerId, UpPattenUsage::getEngineeringId)
-                        .eq(Damage::getGlassId, GlassInfo::getGlassId))
-                .eq(Engineering::getState, 1)
-                .and(wrapper -> wrapper.isNotNull(EdgStorageCageDetails::getId).or().isNotNull(Damage::getId))
-                .orderByDesc(UpPattenUsage::getLayoutSequence)
-                .orderByDesc(GlassInfo::getId)
-        );
-        if (!upPattenUsage.isEmpty()) {
-            //褰撳墠鐗�
-            UpPattenUsage upPattenUsage1 = upPattenUsage.get(0);
-            //鏌ョ湅褰撳墠鐗堟槸鍚﹀瓨鍦ㄦ湭杩涚瀛愭垨鐮存崯鐨勭幓鐠�
-            List<UpPattenUsage> upPattenUsage2 = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
-                    .selectAll(UpPattenUsage.class)
-                    .distinct()
-                    .innerJoin(GlassInfo.class, on -> on
-                            .eq(GlassInfo::getEngineerId, UpPattenUsage::getEngineeringId)
-                            .eq(GlassInfo::getPatternSequence, UpPattenUsage::getLayoutSequence))
-                    .leftJoin(EdgStorageCageDetails.class, on -> on
-                            .eq(EdgStorageCageDetails::getEngineerId, UpPattenUsage::getEngineeringId)
-                            .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId))
-                    .leftJoin(Damage.class, on -> on
-                            .eq(Damage::getEngineerId, UpPattenUsage::getEngineeringId)
-                            .eq(Damage::getGlassId, GlassInfo::getGlassId))
-                    .eq(UpPattenUsage::getEngineeringId, upPattenUsage.get(0).getEngineeringId())
-                    .eq(UpPattenUsage::getLayoutSequence, upPattenUsage.get(0).getLayoutSequence())
-                    .and(wrapper -> wrapper.isNull(EdgStorageCageDetails::getId).or().isNull(Damage::getId))
-                    .orderByDesc(UpPattenUsage::getLayoutSequence)
-                    .orderByDesc(GlassInfo::getId)
-            );
-            //鏄剧ず涓嬩竴鐗�  鍚﹀垯鏄剧ず褰撳墠鐗堝浘
-            if (upPattenUsage2.isEmpty()) {
-                //鍓╀綑鐗堝浘
-                List<UpPattenUsage> upPattenUsage3 = upPattenUsageMapper.selectJoinList(UpPattenUsage.class, new MPJLambdaWrapper<UpPattenUsage>()
-                        .selectAll(UpPattenUsage.class)
-                        .distinct()
-                        .innerJoin(Engineering.class, on -> on
-                                .eq(Engineering::getEngineerId, UpPattenUsage::getEngineeringId))
-                        .eq(Engineering::getState, 1)
-                        .gt(UpPattenUsage::getLayoutSequence, upPattenUsage1.getLayoutSequence())
-                        .orderByAsc(UpPattenUsage::getLayoutSequence)
-                );
-                if (!upPattenUsage3.isEmpty()) {
-                    //鍒囨崲鎴愪笅涓�鐗堝浘
-                    upPattenUsage1 = upPattenUsage3.get(0);
-                }
-            }
-
-            List<Map<String, Object>> cutTerritorys = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
-                    .selectAll(OptimizeDetail.class)
-                    .selectAs(OptimizeLayout::getWidth, "olWidth")
-                    .selectAs(OptimizeLayout::getHeight, "olHeight")
-                    .leftJoin(OptimizeLayout.class, on -> on
-                            .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
-                            .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
-                    .eq(OptimizeDetail::getProjectNo, upPattenUsage1.getEngineeringId())
-                    .eq(OptimizeDetail::getStockId, upPattenUsage1.getLayoutSequence())
-            );
-            Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-                    .selectAll(EdgStorageCageDetails.class)
-                    .eq(EdgStorageCageDetails::getEngineerId, upPattenUsage1.getEngineeringId())
-            ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails));
-
-            Map<String, Damage> damageMaps = damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
-                    .selectAll(Damage.class)
-                    .eq(Damage::getEngineerId, upPattenUsage1.getEngineeringId())
-                    .and(wrapper -> wrapper.eq(Damage::getType, 8)
-                            .or()
-                            .eq(Damage::getType, 9))
-            ).stream().collect(Collectors.toMap(Damage::getGlassId, Damage -> Damage, (V1, V2) -> V2));
-
-            List<Map<String, Object>> resultCutTerritory = new ArrayList<>();
-            for (Map<String, Object> cutTerritory : cutTerritorys) {
-//                log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
-                if (cutTerritory.get("glass_id") == null || "".equals(cutTerritory.get("glass_id"))) {
-                    log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}", cutTerritorys);
-                    return new ArrayList<>();
-                } else if (damageMaps.get(cutTerritory.get("glass_id")) != null) {
-                    //log.info("鐜荤拑宸茬牬鎹�/鎷胯蛋-----鍐呭锛歿}",damageMaps.get(item.get("glass_id")));
-                    cutTerritory.put("glass_state", damageMaps.get(cutTerritory.get("glass_id")).getType());
-                } else if (edgMaps.get(cutTerritory.get("glass_id")) != null) {
-                    cutTerritory.put("glass_state", edgMaps.get(cutTerritory.get("glass_id")).getState());
-                } else {
-                    cutTerritory.put("glass_state", 0);
-                }
-                resultCutTerritory.add(cutTerritory);
-            }
-            return resultCutTerritory;
+    public List<CutDrawingVO> queryCurrentCutDrawing(int deviceId, int stationCell) {
+//         鑾峰彇鏈潯绾垮綋鍓嶆鍦ㄦ墽琛岀殑宸ョ▼
+        Engineering engineering = engineeringMapper.selectOne(new LambdaQueryWrapper<Engineering>()
+                .eq(Engineering::getState, 1).eq(Engineering::getStationCell, stationCell));
+        if (null == engineering) {
+            log.info("褰撳墠绾胯矾娌℃湁闇�瑕佹墽琛岀殑宸ョ▼");
+            return null;
         }
-        return null;
-    }
-
-    /**
-     * 鑾峰彇 宸ョ▼涓嬬殑褰撳墠鐗堝浘
-     *
-     * @param current
-     * @return
-     */
-    @Override
-    public List<List<Map<String, Object>>> selectCurrentCutTerritory(String current) {
-
-        List<Engineering> engineering = engineeringMapper.selectJoinList(Engineering.class, new MPJLambdaWrapper<Engineering>()
-                .selectAll(Engineering.class)
-                .eq(Engineering::getEngineerId, current)
-        );
-        if (engineering.size() == 0) {
-            log.info("褰撳墠宸ョ▼鍙锋湭棰嗗彇杩�:{}", current);
-            return new ArrayList<>();
-        }
-        //缁撴灉
-        List<Map<String, Object>> resultCutTerritory = new ArrayList<>();
-        //姝ゅ伐绋嬬殑鎵�鏈変紭鍖栨暟鎹�
-        List<Map<String, Object>> cutTerritory = optimizeDetailMapper.selectJoinMaps(JoinWrappers.lambda(OptimizeDetail.class)
-                .selectAll(OptimizeDetail.class)
-                .selectAs(OptimizeLayout::getWidth, "olWidth")
-                .selectAs(OptimizeLayout::getHeight, "olHeight")
-                .leftJoin(OptimizeLayout.class, on -> on
-                        .eq(OptimizeLayout::getProjectNo, OptimizeDetail::getProjectNo)
-                        .eq(OptimizeLayout::getStockId, OptimizeDetail::getStockId))
-                .eq(OptimizeDetail::getProjectNo, current)
-        );
-
-        Map<String, EdgStorageCageDetails> edgMaps = baseMapper.selectList(new MPJLambdaQueryWrapper<EdgStorageCageDetails>()
-                .selectAll(EdgStorageCageDetails.class)
-                .eq(EdgStorageCageDetails::getEngineerId, current)
-        ).stream().collect(Collectors.toMap(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails -> EdgStorageCageDetails, (V1, V2) -> V2));
-
-        Map<String, Damage> damageMaps = damageMapper.selectList(new MPJLambdaQueryWrapper<Damage>()
-                .selectAll(Damage.class)
-                .eq(Damage::getEngineerId, current)
-                .and(wrapper -> wrapper.eq(Damage::getType, 8)
-                        .or()
-                        .eq(Damage::getType, 9))
-        ).stream().collect(Collectors.toMap(Damage::getGlassId, Damage -> Damage, (V1, V2) -> V2));
-
-        for (Map<String, Object> item : cutTerritory) {
-//          log.info("鍐呭锛歿}-------{}",cutTerritory,edgStorageCageDetails);
-            if (item.get("glass_id") == null || "".equals(item.get("glass_id"))) {
-                log.info("浼樺寲鏁版嵁涓璯lassId瀛樺湪绌哄��-----鍐呭锛歿}", cutTerritory);
-                return new ArrayList<>();
-            }
-            if (damageMaps.get(item.get("glass_id")) != null) {
-                //log.info("鐜荤拑宸茬牬鎹�/鎷胯蛋-----鍐呭锛歿}",damageMaps.get(item.get("glass_id")));
-                item.put("glass_state", damageMaps.get(item.get("glass_id")).getType());
-            } else if (edgMaps.get(item.get("glass_id")) != null) {
-                item.put("glass_state", edgMaps.get(item.get("glass_id")).getState());
+        List<EdgStorageCageDetails> edgStorageCageDetailsList = this.list(new LambdaQueryWrapper<EdgStorageCageDetails>()
+                .eq(EdgStorageCageDetails::getDeviceId, deviceId)
+                .eq(EdgStorageCageDetails::getEngineerId, engineering.getEngineerId())
+                .orderByDesc(EdgStorageCageDetails::getId));
+        //鎸夌収褰撳墠宸ョ▼鍘荤悊鐗囩鎼滄渶鍚庝竴鍧楃幓鐠� 鑾峰彇宸ョ▼鍙�  鐗堝浘鍙� 娌℃湁鐩存帴鏄剧ず绗竴寮犵増鍥�
+        int patternSequence = 0;
+        if (CollectionUtil.isEmpty(edgStorageCageDetailsList)) {
+            patternSequence = 1;
+        } else {
+            EdgStorageCageDetails lastGlass = edgStorageCageDetailsList.get(0);
+            log.info("鑾峰彇鏈�鍚庝竴鍧楄繘绗肩殑鐜荤拑涓猴細{}", lastGlass);
+            List<CutDrawingVO> drawingVOList = baseMapper.queryCutDrawingByEngineerId(lastGlass.getEngineerId(), lastGlass.getPatternSequence(), 1);
+            if (CollectionUtil.isEmpty(drawingVOList)) {
+                //鏃犲墿浣� 鏄剧ず褰撳墠鐗堝浘鍔�1鐨勫叏閲忕増鍥�
+                patternSequence = lastGlass.getPatternSequence() + 1;
             } else {
-                item.put("glass_state", 0);
+                //褰撳墠鐗堝浘鏄惁鏈夊墿浣欙紝鏈夊墿浣欐樉绀哄綋鍓嶇増鍥�
+                patternSequence = lastGlass.getPatternSequence();
             }
-            resultCutTerritory.add(item);
         }
-        Map<String, List<Map<String, Object>>> groupBy = resultCutTerritory.stream().collect(Collectors.groupingBy(item -> item.get("stock_id").toString()));
-//        List<List<Map<String, Object>>> Result=groupBy.values().stream().collect(Collectors.toList());
-        int count = 1;
-        List<List<Map<String, Object>>> result = new ArrayList<>();
-        for (String item : groupBy.keySet()) {
-            String key = count + "";
-            if (key != null) {
-                result.add(groupBy.get(key));
-            }
-            count++;
-        }
-        return result;
+        return baseMapper.queryCutDrawingByEngineerId(engineering.getEngineerId(), patternSequence, 0);
     }
 
+    @Override
+    public Map<String, Object> queryCutDrawingByEngineerId(String engineerId, int patternSequence) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("currentCutDrawing", baseMapper.queryCutDrawingByEngineerId(engineerId, patternSequence, 0));
+        List<GlassInfo> glassInfoList = glassInfoService.list(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getEngineerId, engineerId));
+        long totalPatternSequence = glassInfoList.stream().map(GlassInfo::getPatternSequence).distinct().count();
+        map.put("totalPatternSequence", totalPatternSequence);
+        return map;
+
+    }
+
+
     /**
      * 鑾峰彇 宸ョ▼涓嬬殑閽㈠寲鐗堝浘
      *
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 204ef25..51d94ae 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -535,10 +535,23 @@
                 .last("Limit 1");
         GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
         if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
+
+            int patternSequence = glassInfo.getPatternSequence();
+            int xAxis = glassInfo.getXAxis();
+            int yAxis = glassInfo.getYAxis();
             String swapGlassId = swapGlassInfo.getGlassId();
-            log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�,杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
+            int swapPatternSequence = swapGlassInfo.getPatternSequence();
+            int swapXAxis = swapGlassInfo.getXAxis();
+            int swapYAxis = swapGlassInfo.getYAxis();
             swapGlassInfo.setGlassId(glassId);
+            swapGlassInfo.setPatternSequence(patternSequence);
+            swapGlassInfo.setXAxis(xAxis);
+            swapGlassInfo.setYAxis(yAxis);
             glassInfo.setGlassId(swapGlassId);
+            glassInfo.setPatternSequence(swapPatternSequence);
+            glassInfo.setXAxis(swapXAxis);
+            glassInfo.setYAxis(swapYAxis);
+            log.info("灏嗙幓鐠儃}鍜岀幓鐠儃}锛屼俊鎭簰鎹�(鍘熺墖搴忓彿鍙婂潗鏍囬櫎澶�),杩涚幓鐠� {}", glassInfo, swapGlassInfo, swapGlassInfo);
             glassInfoService.updateById(swapGlassInfo);
             glassInfoService.updateById(glassInfo);
             return swapGlassId;
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
index 8801ad7..c603a6e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/PushMessageToIndex.java
@@ -1,12 +1,17 @@
 package com.mes.job;
 
 import cn.hutool.json.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.mes.common.config.Const;
 import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
 import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
 import com.mes.edgstoragecage.entity.vo.EdgStorageCageVO;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.edgstoragecage.service.EdgStorageCageService;
 import com.mes.opctask.entity.EdgStorageDeviceTask;
+import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
 import com.mes.opctask.service.EdgStorageDeviceTaskService;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
@@ -35,6 +40,8 @@
     EdgGlassTaskInfoService edgGlassTaskInfoService;
     @Resource
     EdgStorageDeviceTaskService edgStorageDeviceTaskService;
+    @Resource
+    EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
 
 
     private static final String EDG_STORAGE_DEVICE_ONE_TASK = "edg_storage_device_one_task";
@@ -53,14 +60,18 @@
 
     private void CacheGlassTasksChild(String tableName, String webSocketName, int deviceId, int stationCell) {
         JSONObject jsonObject = new JSONObject();
-//        List<Map<String, Object>> currentCutTerritorys = edgStorageCageDetailsService.selectCutTerritory();
-//        jsonObject.append("currentCutTerritory", currentCutTerritorys);
-        //鍗у缂撳瓨绗煎唴淇℃伅0 = {EdgStorageCageVO@11649} "EdgStorageCageVO(details=null)"
+        List<CutDrawingVO> currentCutDrawings = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
+        jsonObject.append("currentCutTerritory", currentCutDrawings);
+        //鍗у缂撳瓨绗煎唴淇℃伅
         List<EdgStorageCageVO> edgStorageCageVOS = edgStorageCageService.selectEdgStorageCagesByDeviceId(deviceId);
         jsonObject.append("EdgStorageCageinfos", edgStorageCageVOS);
 
-        EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
-        jsonObject.append("taskMessage", task);
+        //鑾峰彇姝e湪鏁村舰涓殑浠诲姟
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId,deviceId)
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+        jsonObject.append("taskMessage", taskHistory);
 
         ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get(webSocketName);
         if (sendwServer != null) {
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
index 7eb5d0b..64e3791 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/controller/EdgStorageDeviceTaskHistoryController.java
@@ -1,16 +1,17 @@
 package com.mes.opctask.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
 import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
 import com.mes.utils.Result;
 import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-import java.io.Serializable;
 import java.util.List;
 
 /**
@@ -29,60 +30,11 @@
     @Resource
     private EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
 
-    /**
-     * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�
-     *
-     * @param page                        鍒嗛〉瀵硅薄
-     * @param edgStorageDeviceTaskHistory 鏌ヨ瀹炰綋
-     * @return 鎵�鏈夋暟鎹�
-     */
+    @ApiOperation(value = "鏌ヨ鏈潯绾挎墽琛岃繃鐨勫巻鍙蹭换鍔℃暟鎹�", notes = "鏌ヨ鏈潯绾挎墽琛岃繃鐨勫巻鍙蹭换鍔℃暟鎹�")
     @GetMapping
-    public Result selectAll(Page<EdgStorageDeviceTaskHistory> page, EdgStorageDeviceTaskHistory edgStorageDeviceTaskHistory) {
-        return Result.success(this.edgStorageDeviceTaskHistoryService.page(page, new QueryWrapper<>(edgStorageDeviceTaskHistory)));
+    public Result<List<EdgStorageDeviceTaskHistory>> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request) {
+        return Result.success(edgStorageDeviceTaskHistoryService.queryEdgStorageDeviceTaskHistory(request));
     }
 
-    /**
-     * 閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁
-     *
-     * @param id 涓婚敭
-     * @return 鍗曟潯鏁版嵁
-     */
-    @GetMapping("{id}")
-    public Result selectOne(@PathVariable Serializable id) {
-        return Result.success(this.edgStorageDeviceTaskHistoryService.getById(id));
-    }
-
-    /**
-     * 鏂板鏁版嵁
-     *
-     * @param edgStorageDeviceTaskHistory 瀹炰綋瀵硅薄
-     * @return 鏂板缁撴灉
-     */
-    @PostMapping
-    public Result insert(@RequestBody EdgStorageDeviceTaskHistory edgStorageDeviceTaskHistory) {
-        return Result.success(this.edgStorageDeviceTaskHistoryService.save(edgStorageDeviceTaskHistory));
-    }
-
-    /**
-     * 淇敼鏁版嵁
-     *
-     * @param edgStorageDeviceTaskHistory 瀹炰綋瀵硅薄
-     * @return 淇敼缁撴灉
-     */
-    @PutMapping
-    public Result update(@RequestBody EdgStorageDeviceTaskHistory edgStorageDeviceTaskHistory) {
-        return Result.success(this.edgStorageDeviceTaskHistoryService.updateById(edgStorageDeviceTaskHistory));
-    }
-
-    /**
-     * 鍒犻櫎鏁版嵁
-     *
-     * @param idList 涓婚敭缁撳悎
-     * @return 鍒犻櫎缁撴灉
-     */
-    @DeleteMapping
-    public Result delete(@RequestParam("idList") List<Long> idList) {
-        return Result.success(this.edgStorageDeviceTaskHistoryService.removeByIds(idList));
-    }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java
new file mode 100644
index 0000000..39f8572
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/entity/request/TaskHistoryRequest.java
@@ -0,0 +1,35 @@
+package com.mes.opctask.entity.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @Author : zhoush
+ * @Date: 2024/12/22 16:10
+ * @Description:
+ */
+@Data
+public class TaskHistoryRequest {
+
+    @ApiModelProperty(value = "璁惧id")
+    private Integer deviceId;
+    @ApiModelProperty(value = "鐜荤拑id")
+    private String glassId;
+    @ApiModelProperty(value = "浠诲姟鐘舵�� 0榛樿绌轰换鍔� 1缁撴潫浠诲姟")
+    private Integer taskState;
+    @ApiModelProperty(value = "浠诲姟绫诲瀷锛�1杩涚墖浠诲姟 2鍑虹墖浠诲姟 3鐩撮�氫换鍔�")
+    private Integer taskType;
+    @ApiModelProperty(value = "寮�濮嬫椂闂�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+    @ApiModelProperty(value = "缁撴潫鏃堕棿")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+}
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
index 3eb12cb..13e4038 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/EdgStorageDeviceTaskHistoryService.java
@@ -2,6 +2,9 @@
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
+
+import java.util.List;
 
 /**
  * (EdgStorageDeviceTaskHistory)琛ㄦ湇鍔℃帴鍙�
@@ -11,5 +14,6 @@
  */
 public interface EdgStorageDeviceTaskHistoryService extends IService<EdgStorageDeviceTaskHistory> {
 
+    List<EdgStorageDeviceTaskHistory> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request);
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
index 2eaa927..55a23a7 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/opctask/service/impl/EdgStorageDeviceTaskHistoryServiceImpl.java
@@ -1,10 +1,15 @@
 package com.mes.opctask.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.opctask.entity.EdgStorageDeviceTaskHistory;
+import com.mes.opctask.entity.request.TaskHistoryRequest;
 import com.mes.opctask.mapper.EdgStorageDeviceTaskHistoryMapper;
 import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
 
 /**
  * (EdgStorageDeviceTaskHistory)琛ㄦ湇鍔″疄鐜扮被
@@ -15,5 +20,19 @@
 @Service("edgStorageDeviceTaskHistoryService")
 public class EdgStorageDeviceTaskHistoryServiceImpl extends ServiceImpl<EdgStorageDeviceTaskHistoryMapper, EdgStorageDeviceTaskHistory> implements EdgStorageDeviceTaskHistoryService {
 
+    @Override
+    public List<EdgStorageDeviceTaskHistory> queryEdgStorageDeviceTaskHistory(TaskHistoryRequest request) {
+        LambdaQueryWrapper<EdgStorageDeviceTaskHistory> wrapper = new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getDeviceId, request.getDeviceId())
+                .eq(StringUtils.checkValNotNull(request.getTaskState()), EdgStorageDeviceTaskHistory::getTaskState, request.getTaskState())
+                .eq(StringUtils.checkValNotNull(request.getTaskType()), EdgStorageDeviceTaskHistory::getTaskState, request.getTaskType())
+                .between(StringUtils.checkValNotNull(request.getStartTime()), EdgStorageDeviceTaskHistory::getCreateTime, request.getStartTime(),
+                        request.getEndTime()).orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 20");
+        if (StringUtils.isNotBlank(request.getGlassId())) {
+            wrapper.and(e -> e.like(EdgStorageDeviceTaskHistory::getGlassIdIn, request.getGlassId())
+                    .or().like(EdgStorageDeviceTaskHistory::getGlassIdOut, request.getGlassId()));
+        }
+        return this.list(wrapper);
+    }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
index 577dd92..feefee2 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/controller/TaskCacheController.java
@@ -1,6 +1,7 @@
 package com.mes.taskcache.controller;
 
 import com.mes.edgglasstask.entity.request.IdentWornRequest;
+import com.mes.edgstoragecage.entity.vo.CutDrawingVO;
 import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.taskcache.service.TaskCacheService;
 import com.mes.utils.Result;
@@ -34,39 +35,34 @@
 
     @ApiOperation("鏌ヨ閽㈠寲鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�   鍙傛暟(宸ョ▼鍙�)")
     @PostMapping("/temperingTerritory")
-    @ResponseBody
     public Result temperingTerritory(String current) {
         List<Map<String, Object>> h = edgStorageCageDetailsService.selectTemperingTerritory(current);
         return Result.build(200, "鎴愬姛", h);
     }
 
-    @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁 宸ョ▼鍙�   鍙傛暟(宸ョ▼鍙�)")
-    @PostMapping("/cutTerritory")
-    @ResponseBody
-    public Result cutTerritory(String current) {
-        //engineerId=current;
-        List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
-        return Result.build(200, "鎴愬姛", h);
+    @ApiOperation("鏌ヨ鍒囧壊鐗堝浘淇℃伅-鏍规嵁宸ョ▼鍙峰強鐗堝簭锛岀増搴忛粯璁や负1")
+    @PostMapping("/queryCutDrawingByEngineerId")
+    public Result queryCutDrawingByEngineerId(String engineerId, int patternSequence) {
+//        List<List<Map<String, Object>>> h = edgStorageCageDetailsService.selectCurrentCutTerritory(current);
+        Map<String, Object> map = edgStorageCageDetailsService.queryCutDrawingByEngineerId(engineerId, patternSequence);
+        return Result.build(200, "鎴愬姛", map);
     }
 
-    @ApiOperation("璇嗗埆鏄剧ず  褰撳墠鐗堝浘   鍙傛暟()")
-    @PostMapping("/currentCutTerritory")
-    @ResponseBody
-    public Result currentCutTerritory() {
-        List<Map<String, Object>> h = edgStorageCageDetailsService.selectCutTerritory();
-        return Result.build(200, "鎴愬姛", h);
+    @ApiOperation("璇嗗埆鏄剧ず:褰撳墠鐗堝浘,闇�瑕佸綋鍓嶅崸寮忕悊鐗囪澶噄d銆佷笂鐗囩嚎璺�")
+    @PostMapping("/queryCurrentCutDrawing")
+    public Result queryCurrentCutDrawing(int deviceId, int stationCell) {
+        List<CutDrawingVO> cutDrawingVOS = edgStorageCageDetailsService.queryCurrentCutDrawing(deviceId, stationCell);
+        return Result.build(200, "鎴愬姛", cutDrawingVOS);
     }
 
     @ApiOperation("璇嗗埆鎿嶄綔锛�   鐮存崯/鎷胯蛋     鍙傛暟锛圛D,鍔熻兘[9锛氭嬁璧帮紝8:鐮存崯]锛�")
     @PostMapping("/identControls")
-    @ResponseBody
     public Result<String> identControls(@RequestBody @Validated IdentWornRequest request) {
         return Result.build(200, "鎴愬姛", edgStorageCageDetailsService.identControls(request));
     }
 
     @ApiOperation("纾ㄨ竟浠诲姟 鍙傛暟()")
     @PostMapping("/selectEdgTask")
-    @ResponseBody
     public Result selectEdgTask(@RequestBody Map<String, String> arguments) {
         String line = arguments.get("line");
         List<Map<String, Object>> EdgTasks = taskCacheService.selectEdgInfo(line);
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index 097e078..8861765 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -31,8 +31,8 @@
       firstLength: 460
       secondLength: 390
     two: #绗簩鏉$(杈圭嚎鐨勬渶灏忓昂瀵镐俊鎭�
-      firstLength: 390
-      secondLength: 390
+      firstLength: 300
+      secondLength: 300
   glassGap: 2500
   cellLength: 2500
   sequence:
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
index aae437f..f4f8fc6 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/mapper/EdgStorageCageDetailsMapper.xml
@@ -56,4 +56,21 @@
         select *
         from slot_temp limit 1
     </select>
+    <select id="queryCutDrawingByEngineerId" resultType="com.mes.edgstoragecage.entity.vo.CutDrawingVO">
+        with glass_temp as (
+        select * from glass_info where engineer_id = #{engineerId} and pattern_sequence = #{patternSequence}
+        ), cut_drawing_temp as (
+        select t.*,
+        case when t2.glass_id is not null then t2.type
+        when t1.glass_id is not null then t1.state
+        else 0 end as state
+        from glass_temp t
+        left join edg_storage_cage_details t1 on t.glass_id = t1.glass_id
+        left join damage t2 on t.glass_id = t2.glass_id and t2.type in (8,9)
+        )select * from cut_drawing_temp where 1=1
+        <if test="isAll == 1">
+            and state = 0
+        </if>
+
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
index fb77157..ab67700 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowBigStorageCageDetails.java
@@ -45,10 +45,6 @@
      */
     private String filmsId;
     /**
-     * /*鍘氬害
-     */
-    private Double thickness;
-    /**
      * /*鐘舵��
      */
     private Integer state;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index 690605a..cafa468 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -105,7 +105,7 @@
         }
         HollowGlassRelationInfo relationInfoBefore = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
                 .eq(HollowGlassRelationInfo::getFlowCardId, relationInfoOne.getFlowCardId())
-                .eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getTotalLayer())
+                .eq(HollowGlassRelationInfo::getTotalLayer, relationInfoOne.getTotalLayer())
                 .eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getLayer())
                 .eq(HollowGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
                 .eq(HollowGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
index 0b1049f..a230379 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollowqueue/entity/HollowGlassQueueInfo.java
@@ -49,10 +49,6 @@
      */
     private String filmsId;
     /**
-     * /*鍘氬害
-     */
-    private Double thickness;
-    /**
      * /*鐘舵��
      */
     private Integer state;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index d7e8364..d718fe5 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -801,7 +801,11 @@
             if (totalLayer != 0) {
                 resultList.add(list.get(0));
                 HollowBigStorageCage storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
-                        .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth).last("limit 1"));
+                        .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON)
+                        .le(HollowBigStorageCage::getMinThickness, list.get(0).getThickness())
+                        .ge(HollowBigStorageCage::getMaxThickness, list.get(0).getThickness())
+                        .eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+                        .orderByAsc(HollowBigStorageCage::getMaxThickness).last("limit 1"));
                 targetSlot = storageCage.getSlot();
                 hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
                         .set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));

--
Gitblit v1.8.0