From 91d7afedf3ea51ee87ee47d4da2e1b6243f8fb84 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 05 一月 2025 21:50:21 +0800
Subject: [PATCH] 1、大理片笼进片任务新增数量校验,当收到进片请求时,拿电气的玻璃数量与mes接收到的数量作比较,相同继续执行,不相同结束本次任务 2、李赛克文件优化,合中空玻璃每个间隔框的类型可能不同,需要在界面上做选择 3、中空设备号与格子号不匹配bug解决 4、自动报工存在接口调用异常,临时将调用接口回退原版本,待最新接口调用无异常后更新接口 5、fixbug:中空大理片详情界面删除接口异常

---
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java |    7 ++
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl                                          |    6 +-
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java                  |    7 ++
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java            |    2 
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java  |   31 ++++++---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                       |    6 ++
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java          |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                    |   18 ++++-
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java                            |    3 +
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java                         |   30 ++++++++--
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java                                                  |   40 ++++++------
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java                         |    9 ++
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml                       |    9 +++
 13 files changed, 123 insertions(+), 47 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
index 5ff144b..ffa1cc8 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java
@@ -75,6 +75,12 @@
         List<DamagePrint> damage2=damageService.selectDamagePrintDetails(damage);
         return Result.build(200,"鏌ヨ鎴愬姛",damage2);
     }
+    @ApiOperation("鑷姩鎶ュ伐")
+    @PostMapping("/autoSubmitReport")
+    public Result autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type) {
+        damageService.autoSubmitReport(glassId,deviceId,workingProcedure,remark,type);
+        return Result.build(200,"鏌ヨ鎴愬姛","");
+    }
 
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index b916d9e..61f6836 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -19,6 +19,7 @@
 import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.mapper.WorkAssignmentMapper;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
@@ -96,7 +97,12 @@
             reportingWork.setOrderId(damages.get(0).getProcessId().substring(0, 10));
             reportingWork.setProductionId(damages.get(0).getProcessId().substring(0, 11));
             reportingWork.setProcessId(damages.get(0).getProcessId() + "/" + damages.get(0).getTechnologyNumber());
-            reportingWork.setDeviceName(damages.get(0).getDeviceName());
+//            reportingWork.setDeviceName(damages.get(0).getDeviceName());
+            if (StringUtils.isBlank(damages.get(0).getDeviceName())){
+                reportingWork.setDeviceName("auto");
+            }else{
+                reportingWork.setDeviceName(damages.get(0).getDeviceName());
+            }
             reportingWork.setThisProcess(damages.get(0).getWorkingProcedure());
             reportingWork.setThisCompletedQuantity(0);
             reportingWork.setThisWornQuantity(0);
@@ -148,9 +154,12 @@
         reportingWork.setOrderId(damage.getProcessId().substring(0, 10));
         reportingWork.setProductionId(damage.getProcessId().substring(0, 11));
         reportingWork.setProcessId(damage.getProcessId() + "/" + damage.getTechnologyNumber());
-        reportingWork.setDeviceName(damage.getDeviceName());
+        if (StringUtils.isBlank(damage.getDeviceName())){
+            reportingWork.setDeviceName("auto");
+        }else{
+            reportingWork.setDeviceName(damage.getDeviceName());
+        }
         reportingWork.setThisProcess(damage.getWorkingProcedure());
-//        reportingWork.setNextProcess("纾ㄨ竟");
         reportingWork.setThisCompletedQuantity(1);
         reportingWork.setThisWornQuantity(0);
         reportingWork.setClasses("鏃╃彮");
@@ -307,7 +316,8 @@
         log.info("鎶ュ伐鏁版嵁reportingWork锛歿}锛宺eportingWorkDetails锛歿}", reportingWork, reportingWorkDetails);
         try {
             // 鐩爣绯荤粺鐨凙PI URL
-            String url = ERP_URL + "/reportingWork/mesReportingWork";
+//            String url = ERP_URL + "/reportingWork/mesReportingWork";
+            String url = ERP_URL + "/reportingWork/mesSaveReportingWorkWorn";
             URL obj = new URL(url);
             HttpURLConnection con = (HttpURLConnection) obj.openConnection();
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
index 561b27a..68fc92e 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/pp/entity/ReportingWork.java
@@ -2,16 +2,16 @@
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
-import java.time.LocalDateTime;
-import java.io.Serializable;
-
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
 /**
  * <p>
- * 
+ *
  * </p>
  *
  * @author wu
@@ -26,13 +26,13 @@
     /**
      * <鎶ュ伐涓昏〃>
      */
-      @TableId(value = "id", type = IdType.AUTO)
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /**
      * 鎶ュ伐缂栧彿
      */
-    private String reportingWorkId;
+    private String reportingWorkId = "";
 
     /**
      * 閿�鍞崟鍙�
@@ -54,10 +54,10 @@
      */
     private String thisProcess;
 
-    /**
-     * 璁惧缂栧彿
-     */
-    private byte[] deviceId;
+//    /**
+//     * 璁惧缂栧彿
+//     */
+//    private byte[] deviceId;
 
     /**
      * 璁惧鍚嶇О
@@ -67,12 +67,12 @@
     /**
      * 涓婂伐搴�
      */
-    private String previousProcess;
+//    private String previousProcess;
 
     /**
      * 涓婂伐搴忔暟閲�
      */
-    private Integer previousProcessQuantity;
+//    private Integer previousProcessQuantity;
 
     /**
      * 鏈伐搴忔暟閲�
@@ -112,32 +112,32 @@
     /**
      * 鎶ュ伐鐘舵��
      */
-    private Integer reportingWorkState;
+//    private Integer reportingWorkState;
 
     /**
      * 瀹℃牳浜�
      */
-    private String reviewed;
+//    private String reviewed;
 
     /**
      * 瀹℃牳鐘舵��(榛樿0,瀹℃牳閫氳繃1锛屼笉閫氳繃2,灏忎簬0鍒犻櫎)
      */
-    private Integer reviewedState;
+//    private Integer reviewedState;
 
     /**
      * 澶囨敞
      */
-    private String notes;
+//    private String notes;
 
     /**
      * 璐ㄦ鍛�
      */
-    private String qualityInspector;
+//    private String qualityInspector;
 
     /**
      * 鍖呰鏂瑰紡
      */
-    private String packagingMethod;
+//    private String packagingMethod;
 
     /**
      * 鎶ュ伐鏃堕棿
@@ -147,12 +147,12 @@
     /**
      * 瀹℃牳鏃堕棿
      */
-    private LocalDateTime examineTime;
+//    private LocalDateTime examineTime;
 
     /**
      * 璐ㄦ鏃堕棿
      */
-    private LocalDateTime qualityInsTime;
+//    private LocalDateTime qualityInsTime;
 
     /**
      * 鍒涘缓鑰卛d
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
index a176f0f..2b7be5c 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -141,6 +141,11 @@
             return;
         }
         log.info("鑾峰彇浠诲姟鐨勭幓鐠僫d锛歿}", glassIdList);
+        ReadWriteEntity countEntity = miloService.readFromOpcUa("DLP1A.DLP1A.glassCount");
+        if (null == countEntity.getValue() || Integer.parseInt(countEntity.getValue() + "") != glassIdList.size()) {
+            log.info("褰撳墠澶ц溅杩涚墖鐜荤拑鏁伴噺{}涓巑es璇诲彇鍒扮殑鏁伴噺{}涓嶅尮閰嶏紝缁撴潫杩涚墖浠诲姟", countEntity.getValue(), glassIdList.size());
+            return;
+        }
         Map<String, Long> glassCountMap = glassIdList.stream().collect(Collectors.groupingBy(e -> e, Collectors.counting()));
         for (Map.Entry<String, Long> entry : glassCountMap.entrySet()) {
             if (entry.getValue() > 1) {
@@ -193,7 +198,7 @@
                 .set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
         //鎶ュ伐
         for (String glass : glassIdList) {
-            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�",1);
+            damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�", 1);
         }
 
         Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
@@ -532,7 +537,7 @@
                     bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
                 } else {
                     bigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
-                    //todo:鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
+                    //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
                     List<Integer> slotList = storageCageDTOList.stream().map(UpdateBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
                     bigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
 
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java
index 46d723c..2291580 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/HollowFormulaDetails.java
@@ -51,12 +51,30 @@
     private String casThree;
     @ApiModelProperty(value = "姘斾綋4(0鏃� 1鏈�) 930涓撶敤")
     private String casFour;
-    @ApiModelProperty(value = "闂撮殧妗嗙被鍨嬶紙tps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
-    private String intervalFrameType;
-    @ApiModelProperty(value = "闂撮殧妗嗗搴� 930涓撶敤")
-    private String intervalFrameWidth;
-    @ApiModelProperty(value = "闂撮殧妗嗛珮搴� 930涓撶敤")
-    private String intervalFrameHeight;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�1锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeOne;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�1 930涓撶敤")
+    private String intervalFrameWidthOne;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�1 930涓撶敤")
+    private String intervalFrameHeightOne;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�2锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeTwo;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�2 930涓撶敤")
+    private String intervalFrameWidthTwo;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�2 930涓撶敤")
+    private String intervalFrameHeightTwo;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�3锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeThree;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�3 930涓撶敤")
+    private String intervalFrameWidthThree;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�3 930涓撶敤")
+    private String intervalFrameHeightThree;
+    @ApiModelProperty(value = "闂撮殧妗嗙被鍨�4锛坱ps鑳朵负05 閾濋棿闅旀潯01锛� 930涓撶敤")
+    private String intervalFrameTypeFour;
+    @ApiModelProperty(value = "闂撮殧妗嗗搴�4 930涓撶敤")
+    private String intervalFrameWidthFour;
+    @ApiModelProperty(value = "闂撮殧妗嗛珮搴�4 930涓撶敤")
+    private String intervalFrameHeightFour;
     /**
      * 鍒涘缓鏃堕棿
      */
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java
index 0e05330..a33ee8b 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/entity/dto/LisecHollowFrameDetails.java
@@ -10,6 +10,13 @@
 @Data
 public class LisecHollowFrameDetails {
 
+    public LisecHollowFrameDetails(String recType, String type, String width, String height) {
+        this.recType = recType;
+        this.type = type;
+        this.width = width;
+        this.height = height;
+    }
+
     private String recType;
     //椤圭洰鏁伴噺鎸囨暟锛堝鏋滄墍鏈夎褰曠浉鍚岋紝鍒欎负0锛�	鐢�0濉厖鍗冲彲
     private String itemInx = "0";
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java
index d515bd5..5533b4b 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/mapper/HollowBigStorageCageDetailsMapper.java
@@ -32,5 +32,7 @@
     List<BigStorageVO> queryHollowbigStorageCageDetail();
 
     List<HollowBigStorageCageDetails> querySlotMaxSequence(@Param("flowCardId") String flowCardId, @Param("totalLayer") Integer totalLayer, @Param("layer") Integer layer, @Param("virtualSlot") Integer virtualSlot);
+
+    void updateDeviceIdBySlot(@Param("list") List<Integer> slotList);
 }
 
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java
index f0de077..3854102 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/HollowBigStorageCageDetailsService.java
@@ -44,5 +44,7 @@
     List<HollowBigStorageAndDetailsDTO> deleteHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot);
 
     List<HollowBigStorageAndDetailsDTO> damageHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot, int state);
+
+    void updateDeviceIdBySlot(List<Integer> slotList);
 }
 
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
index 25e0566..56a2d9a 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
@@ -119,6 +119,11 @@
         return hollowBigStorageCageDetailsChild(glassId, deviceId, slot, state);
     }
 
+    @Override
+    public void updateDeviceIdBySlot(List<Integer> slotList) {
+        baseMapper.updateDeviceIdBySlot(slotList);
+    }
+
     private List<HollowBigStorageAndDetailsDTO> hollowBigStorageCageDetailsChild(String glassId, Integer deviceId, Integer slot, int state) {
         //灏嗗搴旀牸瀛愬彿鐨勭幓鐠僫d缃负101
         this.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
@@ -126,7 +131,7 @@
                 .eq(HollowBigStorageCageDetails::getSlot, slot)
                 .eq(HollowBigStorageCageDetails::getGlassId, glassId)
         );
-        //灏嗘祦绋嬪崱骞胯タ琛ㄥ唴瀵瑰簲鐨勭幓鐠冧俊鎭竻闄�
+        //灏嗘祦绋嬪崱鍏崇郴琛ㄥ唴瀵瑰簲鐨勭幓鐠冧俊鎭竻闄�
         hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
                 .set(HollowGlassRelationInfo::getGlassId, null)
                 .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
index 4360c22..6872823 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassOutRelationInfoServiceImpl.java
@@ -198,19 +198,20 @@
         Map<Integer, List<HollowGlassRelationInfo>> listMap = hollowGlassRelationInfos.stream().collect(Collectors.groupingBy(HollowGlassRelationInfo::getHollowSequence));
 
         //璁剧疆闂撮殧鏉挎暟鎹叡鎵�鏈夐厤瀵圭幓鐠冧娇鐢�
-        List<LisecHollowFrameDetails> frameList = new ArrayList<>();
-        for (int i = 1; i < relationInfo.getTotalLayer(); i++) {
-            LisecHollowFrameDetails frameDetails = new LisecHollowFrameDetails();
-            frameDetails.setRecType("<FR" + i + ">");
-            frameDetails.setType(formulaDetails.getIntervalFrameType());
-            frameDetails.setWidth(formulaDetails.getIntervalFrameWidth());
-            frameDetails.setHeight(formulaDetails.getIntervalFrameHeight());
-            frameList.add(frameDetails);
-        }
+
+//        for (int i = 1; i < relationInfo.getTotalLayer(); i++) {
+//            LisecHollowFrameDetails frameDetails = new LisecHollowFrameDetails();
+//            frameDetails.setRecType("<FR" + i + ">");
+//            frameDetails.setType(formulaDetails.getIntervalFrameType());
+//            frameDetails.setWidth(formulaDetails.getIntervalFrameWidth());
+//            frameDetails.setHeight(formulaDetails.getIntervalFrameHeight());
+//            frameList.add(frameDetails);
+//        }
         List<LisecHollowGlassAndFrameDetails> glassAndFrameList = new ArrayList<>();
         listMap.forEach((e, v) -> {
             LisecHollowGlassAndFrameDetails glassAndFrame = new LisecHollowGlassAndFrameDetails();
             List<LisecHollowGlassDetails> glassList = new ArrayList<>();
+            List<LisecHollowFrameDetails> frameList = new ArrayList<>();
             for (int i = 1; i <= v.size(); i++) {
                 LisecHollowGlassDetails hollowGlassDetails = new LisecHollowGlassDetails();
                 hollowGlassDetails.setRecType("<GL" + i + ">");
@@ -219,7 +220,7 @@
                 glassList.add(hollowGlassDetails);
             }
             glassAndFrame.setGlassList(glassList);
-            glassAndFrame.setFrameList(frameList);
+
             glassAndFrame.setItemNum(e + "");
             glassAndFrame.setIdNum(e + "");
             glassAndFrame.setBarcode(randomNumber.substring(randomNumber.length() - 3));
@@ -227,35 +228,43 @@
             glassAndFrame.setHeight((int) (v.get(0).getHeight() * 10) + "");
             glassAndFrame.setGlass1(e * ID_RATIO + 1 + "");
             glassAndFrame.setFrame1(formulaDetails.getFrameOne());
+            frameList.add(new LisecHollowFrameDetails("<FR1",formulaDetails.getIntervalFrameTypeOne(), formulaDetails.getIntervalFrameWidthOne(), formulaDetails.getIntervalFrameHeightOne()));
             glassAndFrame.setGasCode1(formulaDetails.getCasOne());
             if (relationInfo.getTotalLayer() == 2) {
                 glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
             } else if (relationInfo.getTotalLayer() == 3) {
                 glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
                 glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
+                frameList.add(new LisecHollowFrameDetails("<FR2",formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
                 glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
                 glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
             } else if (relationInfo.getTotalLayer() == 4) {
                 glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
                 glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
+                frameList.add(new LisecHollowFrameDetails("<FR2",formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
                 glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
                 glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
                 glassAndFrame.setFrame3(formulaDetails.getFrameThree());
+                frameList.add(new LisecHollowFrameDetails("<FR3",formulaDetails.getIntervalFrameTypeThree(), formulaDetails.getIntervalFrameWidthThree(), formulaDetails.getIntervalFrameHeightThree()));
                 glassAndFrame.setGasCode3(formulaDetails.getCasThree());
                 glassAndFrame.setGlass4(e * ID_RATIO + 4 + "");
             } else {
                 glassAndFrame.setGlass2(e * ID_RATIO + 2 + "");
                 glassAndFrame.setFrame2(formulaDetails.getFrameTwo());
+                frameList.add(new LisecHollowFrameDetails("<FR2",formulaDetails.getIntervalFrameTypeTwo(), formulaDetails.getIntervalFrameWidthTwo(), formulaDetails.getIntervalFrameHeightTwo()));
                 glassAndFrame.setGasCode2(formulaDetails.getCasTwo());
                 glassAndFrame.setGlass3(e * ID_RATIO + 3 + "");
                 glassAndFrame.setFrame3(formulaDetails.getFrameThree());
+                frameList.add(new LisecHollowFrameDetails("<FR3",formulaDetails.getIntervalFrameTypeThree(), formulaDetails.getIntervalFrameWidthThree(), formulaDetails.getIntervalFrameHeightThree()));
                 glassAndFrame.setGasCode3(formulaDetails.getCasThree());
                 glassAndFrame.setGlass4(e * ID_RATIO + 4 + "");
                 glassAndFrame.setFrame3(formulaDetails.getFrameFour());
+                frameList.add(new LisecHollowFrameDetails("<FR4",formulaDetails.getIntervalFrameTypeFour(), formulaDetails.getIntervalFrameWidthFour(), formulaDetails.getIntervalFrameHeightFour()));
                 glassAndFrame.setGasCode4(formulaDetails.getCasFour());
                 glassAndFrame.setGlass4(e * ID_RATIO + 5 + "");
             }
             glassAndFrame.setInset(formulaDetails.getSealInsert());
+            glassAndFrame.setFrameList(frameList);
             glassAndFrameList.add(glassAndFrame);
         });
         details.setGlassAndFrameList(glassAndFrameList);
@@ -279,7 +288,7 @@
         // 灏嗙敓鎴愮殑鏂囦欢瀛樺叆鎸囧畾璺緞
         //璁$畻鐢熸垚鏉庤禌鍏嬮渶瑕佺殑鏁版嵁缁欏埌姣忎釜灞炴��
         StringWriter out = new StringWriter();
-        File file = new File("D:\\temp", relationInfo.getFlowCardId() + randomNumber.substring(randomNumber.length() - 3) + ".trf");
+        File file = new File(System.getProperty("user.dir")+"/lisec", relationInfo.getFlowCardId() + randomNumber.substring(randomNumber.length() - 3) + ".trf");
         try (BufferedWriter writer = new BufferedWriter(new FileWriter(file))) {
             temp.process(root, out);
             writer.write(out.toString());
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 55e15b0..f412f58 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
@@ -540,6 +540,9 @@
                     hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_OUT);
                 } else {
                     hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
+                    //鎸夌収鏍煎瓙淇℃伅鏇存柊瀵瑰簲鐨勮澶噄d
+                    List<Integer> slotList = storageCageDTOList.stream().map(UpdateHollowBigStorageCageDTO::getTargetSlot).distinct().collect(Collectors.toList());
+                    hollowBigStorageCageDetailsService.updateDeviceIdBySlot(slotList);
                 }
                 log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
                 updateSlotRemainBySlots(outSuccessGlassSlot);
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
index febd8e7..e0f1306 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/mapper/HollowBigStorageCageDetailsMapper.xml
@@ -39,6 +39,15 @@
             and state !=101
         </where>
     </update>
+    <update id="updateDeviceIdBySlot">
+        update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
+        set t.device_id = t1.device_id
+        where t.slot in (
+        <foreach collection="list" item="item" separator=",">
+            #{item}
+        </foreach>
+        )
+    </update>
 
     <select id="hollowIsAll" resultMap="baseMap">
         WITH sum_flow_layer_count AS ( SELECT flow_card_id, layer, min( films_id ) AS films_id, min(thickness) as
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl
index 0964704..e4ffa44 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/templates/hollowGlass.ftl
@@ -2,11 +2,11 @@
 ${details.bthRecType}|${blank.computeBlank(details.bathInfo,10)}|${blank.computeBlank(details.bcdStart,6)}|${blank.computeZero(details.batchNo,8)}
 ${details.ordRecType}|${blank.computeZero(details.ord,10)}|${blank.computeBlank(details.custNum,10)}|${blank.computeBlank(details.custNam,40)}|${blank.computeBlank(details.text1,40)}|${blank.computeBlank(details.text2,40)}|${blank.computeBlank(details.text3,40)}|${blank.computeBlank(details.text4,40)}|${blank.computeBlank(details.text5,40)}|${details.proDate}|${details.delDate}|${blank.computeBlank(details.delArea,10)}
 <#list details.glassAndFrameList as item>
-    ${item.recType}|${blank.computeZero(item.itemNum,5)}|${blank.computeBlank(item.idNum,8)}|${blank.computeZero(item.barcode,4)}|${item.qty}|${blank.computeZero(item.width,6)}|${blank.computeZero(item.height,6)}|${blank.computeBlank(item.glass1,9)}|${blank.computeBlank(item.frame1,9)}|${blank.computeBlank(item.glass2,9)}|${blank.computeBlank(item.frame2,9)}|${blank.computeBlank(item.glass3,9)}|${blank.computeBlank(item.frame3,9)}|${blank.computeBlank(item.glass4,9)}|${blank.computeBlank(item.frame4,9)}|${blank.computeBlank(item.glass5,9)}|${blank.computeZero(item.inset,4)}|${blank.computeZero(item.frameTxt,2)}|${blank.computeZero(item.gasCode1,9)}|${blank.computeZero(item.gasCode2,9)}|${blank.computeZero(item.gasCode3,9)}|${blank.computeZero(item.gasCode4,9)}|${blank.computeZero(item.sealType,9)}|${blank.computeZero(item.frahType,1)}|${blank.computeZero(item.frahHoe,6)}|${blank.computeZero(item.pattDir,1)}|${blank.computeZero(item.dguPane,1)}
+${item.recType}|${blank.computeZero(item.itemNum,5)}|${blank.computeBlank(item.idNum,8)}|${blank.computeZero(item.barcode,4)}|${item.qty}|${blank.computeZero(item.width,6)}|${blank.computeZero(item.height,6)}|${blank.computeBlank(item.glass1,9)}|${blank.computeBlank(item.frame1,9)}|${blank.computeBlank(item.glass2,9)}|${blank.computeBlank(item.frame2,9)}|${blank.computeBlank(item.glass3,9)}|${blank.computeBlank(item.frame3,9)}|${blank.computeBlank(item.glass4,9)}|${blank.computeBlank(item.frame4,9)}|${blank.computeBlank(item.glass5,9)}|${blank.computeZero(item.inset,4)}|${blank.computeZero(item.frameTxt,2)}|${blank.computeZero(item.gasCode1,9)}|${blank.computeZero(item.gasCode2,9)}|${blank.computeZero(item.gasCode3,9)}|${blank.computeZero(item.gasCode4,9)}|${blank.computeZero(item.sealType,9)}|${blank.computeZero(item.frahType,1)}|${blank.computeZero(item.frahHoe,6)}|${blank.computeZero(item.pattDir,1)}|${blank.computeZero(item.dguPane,1)}
     <#list item.glassList as glass>
-        ${glass.recType}|${blank.computeZero(glass.itemInx,5)}|${blank.computeBlank(glass.descript,40)}|${blank.computeZero(glass.surface,1)}|${blank.computeZero(glass.thickness,5)}|${blank.computeZero(glass.faceSide,1)}|${blank.computeBlank(glass.ident,10)}|${blank.computeZero(glass.pattDir,1)}|${blank.computeBlank(glass.paneBcd,10)}|${blank.computeZero(glass.prodPane,1)}|${blank.computeZero(glass.prodComp,2)}|${blank.computeZero(glass.gategory,2)}
+${glass.recType}|${blank.computeZero(glass.itemInx,5)}|${blank.computeBlank(glass.descript,40)}|${blank.computeZero(glass.surface,1)}|${blank.computeZero(glass.thickness,5)}|${blank.computeZero(glass.faceSide,1)}|${blank.computeBlank(glass.ident,10)}|${blank.computeZero(glass.pattDir,1)}|${blank.computeBlank(glass.paneBcd,10)}|${blank.computeZero(glass.prodPane,1)}|${blank.computeZero(glass.prodComp,2)}|${blank.computeZero(glass.gategory,2)}
     </#list>
     <#list item.frameList as frame>
-        ${frame.recType}|${blank.computeZero(frame.itemInx,5)}|${blank.computeBlank(frame.descript,40)}|${blank.computeZero(frame.type,2)}|${blank.computeZero(frame.color,2)}|${blank.computeZero(frame.width,5)}|${blank.computeZero(frame.height,5)}|${blank.computeBlank(frame.ident,10)}|${blank.computeBlank(frame.frameBcd,10)}
+${frame.recType}|${blank.computeZero(frame.itemInx,5)}|${blank.computeBlank(frame.descript,40)}|${blank.computeZero(frame.type,2)}|${blank.computeZero(frame.color,2)}|${blank.computeZero(frame.width,5)}|${blank.computeZero(frame.height,5)}|${blank.computeBlank(frame.ident,10)}|${blank.computeBlank(frame.frameBcd,10)}
     </#list>
 </#list>
\ No newline at end of file

--
Gitblit v1.8.0