From 1e862ae4a11072451fa9b0449f13f48c0d98e91d Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期一, 22 七月 2024 10:06:12 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java                                               |    9 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml                           |    2 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/BigStorageCageDetailsService.java          |    5 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java                  |   10 +
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java               |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java        |   14 +
 UI-Project/src/views/ReportWork/reportWork.vue                                                                                               |   63 ++++---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |   92 ++++++++++-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/controller/BigStorageCageDetailsController.java    |   23 ++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java         |    2 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java                                                 |    4 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java                 |    4 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml              |    0 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java      |    8 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java                                            |   53 ++++++
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java                       |    6 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/controller/DamageController.java                                           |   24 ++
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java                          |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java                                        |   10 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java                          |   15 +
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java                                   |   60 ++++++
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java                                     |    5 
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/common/config/Const.java                                                          |    5 
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java               |    4 
 24 files changed, 337 insertions(+), 90 deletions(-)

diff --git a/UI-Project/src/views/ReportWork/reportWork.vue b/UI-Project/src/views/ReportWork/reportWork.vue
index cd22ee2..f28dac1 100644
--- a/UI-Project/src/views/ReportWork/reportWork.vue
+++ b/UI-Project/src/views/ReportWork/reportWork.vue
@@ -15,7 +15,7 @@
       <el-option label="寰呮姤宸�" value="2"></el-option>
       <el-option label="宸叉姤宸�" value="3"></el-option>
     </el-select>
-    <el-select v-model="report.workProcedure" placeholder="娓呴�夋嫨宸ュ簭">
+    <el-select v-model="report.workingProcedure" placeholder="娓呴�夋嫨宸ュ簭">
       <el-option label="鍏ㄩ儴" value="0"></el-option>
       <el-option label="鍒囧壊" value="1"></el-option>
       <el-option label="纾ㄨ竟" value="2"></el-option>
@@ -25,26 +25,26 @@
     <el-button type="success">鎶ュ伐</el-button>
     <el-table height="100%" ref="table" :data="reportData"
       :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
-      <el-table-column prop="reportData.line" align="center" label="绾胯矾" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="宸ュ簭" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鐜荤拑id" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="宸ョ▼鍙�" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="閽㈠寲鐗堝浘id" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鐢熶骇鏃堕棿" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="澶囨敞" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="绫诲瀷" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鐘舵��" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="娴佺▼鍗�" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="搴忓彿" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="灞�" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鐮存崯绫诲瀷" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鐮存崯鍘熷洜" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="璐d换宸ュ簭" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="璐d换浜哄憳" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="璐d换鐝粍" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="璐d换璁惧" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鎶ュ伐鐝粍" min-width="120" />
-      <el-table-column prop="reportData.line" align="center" label="鎶ュ伐璁惧" min-width="120" />
+      <el-table-column prop="teamsGroupsName" align="center" label="鎶ュ伐鐝粍" min-width="120" />
+      <el-table-column prop="deviceName" align="center" label="鎶ュ伐璁惧" min-width="120" />
+      <el-table-column prop="line" align="center" label="绾胯矾" min-width="120" />
+      <el-table-column prop="workingProcedure" align="center" label="宸ュ簭" min-width="120" />
+      <el-table-column prop="glassId" align="center" label="鐜荤拑id" min-width="120" />
+      <el-table-column prop="engineerId" align="center" label="宸ョ▼鍙�" min-width="120" />
+      <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘id" min-width="120" />
+      <el-table-column prop="damageTime" align="center" label="鐢熶骇鏃堕棿" min-width="120" />
+      <el-table-column prop="type" align="center" label="绫诲瀷" min-width="120" />
+      <el-table-column prop="status" align="center" label="鐘舵��" min-width="120" />
+      <el-table-column prop="processId" align="center" label="娴佺▼鍗�" min-width="120" />
+      <el-table-column prop="orderNumber" align="center" label="搴忓彿" min-width="120" />
+      <el-table-column prop="technologyNumber" align="center" label="灞�" min-width="120" />
+      <el-table-column prop="breakageType" align="center" label="鐮存崯绫诲瀷" min-width="120" />
+      <el-table-column prop="breakageReason" align="center" label="鐮存崯鍘熷洜" min-width="120" />
+      <el-table-column prop="responsibleProcess" align="center" label="璐d换宸ュ簭" min-width="120" />
+      <el-table-column prop="responsiblePersonnel" align="center" label="璐d换浜哄憳" min-width="120" />
+      <el-table-column prop="responsibleTeam" align="center" label="璐d换鐝粍" min-width="120" />
+      <el-table-column prop="responsibleEquipment" align="center" label="璐d换璁惧" min-width="120" />
+      <el-table-column prop="remark" align="center" label="澶囨敞" min-width="120" />
     </el-table>
   </div>
 </template>
@@ -58,23 +58,22 @@
 import { useI18n } from 'vue-i18n'
 const { t } = useI18n()
 const report = ref({
-  type: '',
-  status: '',
-  workProcedure: '',
+  type: '0',
+  status: '0',
+  workingProcedure: '0',
 });
 const reportData = ref([])
-const timeRange = ref([new Date(2000, 10, 10), new Date(2200, 10, 11)])
+const timeRange = ref(["2022-01-01", "2022-01-01"])
 
 
 // 鏌ヨ鏁版嵁
 const selectReportData = async () => {
-  console.log(timeRange.value[0])
-  const response = await request.post("/loadGlass/damage/selectDamage", {
+  const response = await request.post("/cacheVerticalGlass/damage/selectDamage", {
     startTime: timeRange.value[0],
     endTime: timeRange.value[1],
     type: report.value.type,
     status: report.value.status,
-    workProcedure: report.value.workProcedure,
+    workingProcedure: report.value.workingProcedure
   })
   if (response.code === 200) {
     reportData.value = response.data;
@@ -82,6 +81,14 @@
   } else {
     ElMessage.error(response.message);
   }
+
+  const responses = await request.post("/cacheVerticalGlass/damage/insertDamage", {
+    glassId:"P24060403|3|6",
+    line:"2001",
+    workingProcedure:"鍐峰姞宸�",
+    remark:"",
+    status:"2"
+  })
 };
 
 const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/screen`;
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 f8a310c..fe5c038 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
@@ -30,7 +30,7 @@
      * A09鍑虹墖鐩爣浣嶇疆  d02鍗ц浆绔� 閽㈠寲鍑虹墖    3001
      * A10鍑虹墖鐩爣浣嶇疆  d05鍗ц浆绔� 浜哄伐鍑虹墖    3002
      */
-    public static final Integer TEMPERING_OUT_TARGET_POSITION = 3002;
+    public static final Integer TEMPERING_OUT_TARGET_POSITION = 3001;
     public static final Integer ARTIFICIAL_OUT_TARGET_POSITION = 3002;
 
     /**
@@ -38,12 +38,14 @@
      * 璇嗗埆鍚庢垚鍔熺姸鎬�100
      * 鍑虹墖浠诲姟101
      * 浜哄伐涓嬬墖102
+     * 鍑虹墖涓�103
      * 鎷胯蛋200
      * 鐮存崯201
      */
     public static final Integer GLASS_STATE_IN = 100;
     public static final Integer GLASS_STATE_OUT = 101;
     public static final Integer GLASS_STATE_ARTIFICIAL = 102;
+    public static final Integer GLASS_STATE_OUT_ING = 103;
     public static final Integer GLASS_STATE_TAKE = 200;
     public static final Integer GLASS_STATE_DAMAGE = 201;
 
@@ -113,6 +115,7 @@
     public static final Integer BIG_STORAGE_OUT_SUCCESS = 3;
     public static final Integer BIG_STORAGE_OUT_ERROR = 4;
     public static final Integer BIG_STORAGE_OUT_DAMAGE = 5;
+    public static final List<Integer> BIG_STORAGE_OUT_ALL = Arrays.asList(2, 3);
 
     /**
      * 鍗ц浆绔嬪嚭鐗囪姹�
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 9cd2ca4..ea9bcb2 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
@@ -25,35 +25,47 @@
 @Api(description = "鎶ュ伐淇℃伅")
 @RestController
 @RequestMapping("/damage")
+@ResponseBody
 public class DamageController {
 
     @Autowired
     private DamageService damageService;
     @ApiOperation("鎶ュ伐鏁版嵁鏌ヨ")
-    @ResponseBody
     @PostMapping("/selectDamage")
     public Result selectDamage(@RequestBody Map map) {
         String startTime=map.get("startTime").toString();
         String endTime=map.get("endTime").toString();
         int type =Integer.parseInt(map.get("type").toString());
         int status =Integer.parseInt(map.get("status").toString());
-        int workingProcedure =Integer.parseInt(map.get("workingProcedure").toString());
-//        String startTime , String endTime, int type, int status, int workingProcedure
+        String workingProcedure =map.get("workingProcedure").toString();
         return Result.build(200,"鏌ヨ鎴愬姛",damageService.selectDamage(startTime,endTime,type,status,workingProcedure));
     }
 
     @ApiOperation("鎶ュ伐")
     @PostMapping("/submitDamage")
-    public Result submitDamage(DateTime startTime , DateTime endTime,int type,int status,int workingProcedureId) {
-        damageService.submitDamage(startTime,endTime,type,status,workingProcedureId);
+    public Result submitDamage(@RequestBody Map map) {
+        String startTime=map.get("startTime").toString();
+        String endTime=map.get("endTime").toString();
+        int type =Integer.parseInt(map.get("type").toString());
+        int status =Integer.parseInt(map.get("status").toString());
+        String workingProcedure =map.get("workingProcedure").toString();
+        damageService.submitDamage(startTime,endTime,type,status,workingProcedure);
         return Result.build(200,"鎶ュ伐鎴愬姛",1);
     }
 
     @ApiOperation("鎶ュ伐鏁版嵁淇敼")
     @PostMapping("/updateDamage")
-    public Result updateDamage(List<Damage> damageList) {
+    public Result updateDamage(@RequestBody List<Damage> damageList) {
         damageService.updateBatchById(damageList);
         return Result.build(200,"淇敼鎴愬姛",1);
     }
+
+    @ApiOperation("鎶ュ伐鏁版嵁鏂板")
+    @PostMapping("/insertDamage")
+    public Result insertDamage(@RequestBody Damage damage) {
+        damageService.insertDamage(damage);
+        return Result.build(200,"鏂板鎴愬姛",1);
+    }
+
 }
 
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index e5acd8b..1fba706 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -17,9 +17,9 @@
  */
 public interface DamageService extends IService<Damage> {
 
-    List<Damage> selectDamage(String startTime, String endTime, int type, int status, int workingProcedureId);
+    List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
 
-    void submitDamage(DateTime startTime, DateTime endTime, int type, int status, int workingProcedureId);
+    void submitDamage(String startTime, String endTime, int type, int status, String workingProcedure);
 
     void insertDamage(Damage damage);
 }
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 d3aa888..118d12e 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
@@ -39,7 +39,7 @@
      * 鏌ヨ鎶ュ伐淇℃伅
      */
     @Override
-    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, int workingProcedure){
+    public List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure){
         LambdaQueryWrapper<Damage> damageSelectWrapper =new LambdaQueryWrapper<>();
         damageSelectWrapper.between(Damage::getDamageTime,startTime,endTime);
         if (type!=0){
@@ -48,7 +48,7 @@
         if (status!=0){
             damageSelectWrapper.eq(Damage::getStatus,status);
         }
-        if(workingProcedure!=0){
+        if(!"0".equals(workingProcedure)){
             damageSelectWrapper.eq(Damage::getWorkingProcedure,workingProcedure);
         }
         return baseMapper.selectList(damageSelectWrapper);
@@ -58,7 +58,7 @@
      * 鎻愪氦鎶ュ伐
      */
     @Override
-    public void submitDamage(DateTime startTime, DateTime endTime, int type, int status, int workingProcedureId){
+    public void submitDamage(String startTime, String endTime, int type, int status, String workingProcedure){
         LambdaUpdateWrapper<Damage> damageUpdateWrapper=new LambdaUpdateWrapper<>();
         damageUpdateWrapper.between(Damage::getDamageTime,startTime,endTime);
         if (type!=0){
@@ -67,8 +67,8 @@
         if (status!=0){
             damageUpdateWrapper.eq(Damage::getStatus,status);
         }
-        if(workingProcedureId!=0){
-            damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedureId);
+        if(!"0".equals(workingProcedure)){
+            damageUpdateWrapper.eq(Damage::getWorkingProcedure,workingProcedure);
         }
         Damage damage=new Damage();
         damage.setStatus(2);
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
index d3d7b75..120a0d1 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/entity/TemperingGlassInfo.java
@@ -103,4 +103,9 @@
     @ApiModelProperty(value = "鐘舵��", position = 16)
     private Integer state;
 
+    /**
+     * 宸ョ▼id
+     */
+    @ApiModelProperty(value = "宸ョ▼id", position = 17)
+    private String engineerId;
 }
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
index 9b35277..582dafe 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/work_assignment/controller/WorkAssignmentController.java
@@ -1,18 +1,15 @@
 package com.mes.work_assignment.controller;
 
 
-import cn.hutool.core.date.DateTime;
-import com.mes.damage.service.DamageService;
 import com.mes.utils.Result;
+import com.mes.work_assignment.entity.WorkAssignment;
 import com.mes.work_assignment.service.WorkAssignmentService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 
-import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
 
 /**
  * <p>
@@ -35,5 +32,11 @@
         return Result.build(200,"鏌ヨ鎴愬姛",workAssignmentService.selectWorkAssignment(line,workingProcedure));
     }
 
+    @ApiOperation("鍊肩彮鏁版嵁淇敼")
+    @PostMapping("/updateWorkAssignment")
+    public Result updateWorkAssignment(@RequestBody List<WorkAssignment> workAssignmentList) {
+        workAssignmentService.saveOrUpdateBatch(workAssignmentList);
+        return Result.build(200,"淇敼鎴愬姛",1);
+    }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index c48b407..772a88b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -5,6 +5,7 @@
 import cn.hutool.json.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.github.yulichang.query.MPJQueryWrapper;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.common.S7object;
@@ -587,11 +588,9 @@
                 log.info("6銆佹坊鍔犲嚭鐗囦换鍔℃槸鍚﹀畬鎴愶細{}", taskCacheStatus);
             } else {
                 log.info("5銆侀潪鐩撮�氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
-                LambdaQueryWrapper<EdgStorageCageDetails> wrapper = new LambdaQueryWrapper<>();
-                wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId());
-                EdgStorageCageDetails updateDetail = new EdgStorageCageDetails();
-                updateDetail.setState(Const.GLASS_STATE_OUT);
-                edgStorageCageDetailsService.update(updateDetail, wrapper);
+                LambdaUpdateWrapper<EdgStorageCageDetails> wrapper = new LambdaUpdateWrapper<>();
+                wrapper.eq(EdgStorageCageDetails::getGlassId, glassInfo.getGlassId()).set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT);
+                edgStorageCageDetailsService.update(wrapper);
                 log.info("5銆佹洿鏂板嚭鐗囩幓鐠冪殑鐘舵�佷负{}", Const.GLASS_STATE_OUT);
 
                 boolean taskCacheStatus = saveTaskCache(glassInfo.getGlassId(), glassInfo.getSlot(), endcell, Const.GLASS_CACHE_TYPE_OUT);
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 deed23a..d83399e 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
@@ -34,7 +34,11 @@
     @PostMapping("/selectBigStorageCageDetails")
     public Result selectBigStorageCageDetails(@RequestBody Map map) {
         List<BigStorageCageDetails> bigStorageCageDetails=bigStorageCageDetailsService.selectBigStorageCageDetails(map.get("glassId").toString());
-        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetails);
+        if (bigStorageCageDetails.size()>0){
+            return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetails);
+        }else{
+            return Result.build(200,"鏌ヨ澶辫触锛屾棤姝ょ幓鐠僫d",bigStorageCageDetails);
+        }
     }
 
     @ApiOperation("鐞嗙墖绗艰鎯呮坊鍔�")
@@ -68,10 +72,25 @@
     @ApiOperation("鐞嗙墖绗间换鍔″嚭鐗�")
     @PostMapping("/outBigStorageCageDetails")
     public Result outBigStorageCageDetails(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
-
         bigStorageCageDetailsService.outBigStorageCageDetails(bigStorageCageDetails);
         return Result.build(200,"鍑虹墖娣诲姞鎴愬姛",1);
     }
 
+    @ApiOperation("鎸囧畾閽㈠寲")
+    @PostMapping("/TemperingGlass")
+    public Result TemperingGlass(@RequestBody BigStorageCageDetails bigStorageCageDetails) {
+        boolean result=bigStorageCageDetailsService.TemperingGlass(bigStorageCageDetails.getTemperingLayoutId().toString(),bigStorageCageDetails.getEngineerId());
+        if(result==true){
+            return Result.build(200,"鎸囧畾閽㈠寲鎴愬姛",1);
+        }else {
+            return Result.build(200, "宸插瓨鍦ㄩ挗鍖栦换鍔�", 1);
+        }
+    }
+
+    @ApiOperation("閽㈠寲鏌ヨ")
+    @PostMapping("/selectTemperingGlass")
+    public Result selectTemperingGlass() {
+        return Result.build(200,"鏌ヨ鎴愬姛",bigStorageCageDetailsService.selectTemperingGlass());
+    }
 }
 
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java
index a2df9ab..465c7a2 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageDTO.java
@@ -22,4 +22,9 @@
      * 鐜荤拑鏁伴噺
      */
     private Integer glassCount;
+
+    /**
+     * 绗煎瓙鍙�
+     */
+    private Integer deviceId;
 }
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 5fbc212..cab1f09 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
@@ -8,6 +8,7 @@
 import com.mes.glassinfo.entity.GlassInfo;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -64,4 +65,8 @@
      * @return
      */
     List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId);
+
+    boolean TemperingGlass(String temperingLayoutId, String engineerId);
+
+    List<Map<String, Object>> selectTemperingGlass();
 }
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 96d4e3b..118e6ac 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
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.lang.Assert;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.mes.bigstorage.entity.BigStorageCage;
@@ -17,6 +18,8 @@
 import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper;
 import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
 import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
@@ -53,6 +56,9 @@
     private BigStorageCageService bigStorageCageService;
     @Resource
     private GlassInfoMapper glassInfoMapper;
+
+    @Resource
+    private DamageService damageService;
 
     @Value("${mes.minCount}")
     private int minCount;
@@ -197,14 +203,19 @@
             temperingGlassInfoMapper.updateById(temperingGlassInfo);
         }
         if (status == 0) {
-            bigStorageCageDetails.setState(Const.GLASS_STATE_TAKE);
-        } else {
             bigStorageCageDetails.setState(Const.GLASS_STATE_DAMAGE);
+        } else {
+            bigStorageCageDetails.setState(Const.GLASS_STATE_TAKE);
         }
         baseMapper.updateById(bigStorageCageDetails);
         bigStorageCageService.updateRemainWidth(bigStorageCageDetails.getSlot());
         //todo:鎻掑叆鐮存崯鏁版嵁
-
+        Damage damage = new Damage();
+        damage.setGlassId(bigStorageCageDetails.getGlassId());
+        damage.setWorkingProcedure("鍐峰姞宸�");
+        damage.setRemark("澶х悊鐗囩鐮存崯");
+        damage.setStatus(2);
+        damageService.insertDamage(damage);
     }
 
     //鏌ヨ鐜荤拑淇℃伅
@@ -218,10 +229,13 @@
             BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
             bigStorageCageDetails.setState(1);
             bigStorageCageDetails.setGap(glassGap);
+            List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>();
+            bigStorageCageDetailsList.add(bigStorageCageDetails);
+            return bigStorageCageDetailsList;
+        }else{
+            return null;
         }
-        List<BigStorageCageDetails> bigStorageCageDetailsList = new ArrayList<>();
-        bigStorageCageDetailsList.add(bigStorageCageDetails);
-        return bigStorageCageDetailsList;
+
     }
 
     //鐞嗙墖绗艰鎯呮坊鍔�
@@ -260,7 +274,7 @@
                 .leftJoin(BigStorageCageDetails.class, BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
                 .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
                 .eq(BigStorageCageDetails::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
-                .gt(BigStorageCage::getRemainWidth, glassInfo.getWidth())
+                .gt(BigStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight()))
                 .last("limit 1");
         if (glassInfo.getTemperingLayoutId() == 0) {
             wrapper.eq(BigStorageCageDetails::getWidth, glassInfo.getWidth()).eq(BigStorageCageDetails::getHeight, glassInfo.getHeight());
@@ -272,6 +286,7 @@
             bigStorageDTO = new BigStorageDTO();
             bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
             bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
             return bigStorageDTO;
         }
         bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
@@ -284,9 +299,26 @@
             bigStorageDTO = new BigStorageDTO();
             bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
             bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
             return bigStorageDTO;
         }
-        //todo:鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
+
+        //鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
+        bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
+                .eq(BigStorageCage::getRemainWidth, slotWidth)
+                .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+                .notInSql(BigStorageCage::getDeviceId,
+                        "select distinct device_id from big_storage_cage_details where tempering_layout_id = " + glassInfo.getTemperingLayoutId())
+                .gt(BigStorageCage::getMaxThickness, glassInfo.getThickness())
+                .orderByAsc(BigStorageCage::getDeviceId)
+                .last("limit 1"));
+        if (null != bigStorageCage) {
+            bigStorageDTO = new BigStorageDTO();
+            bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
+            bigStorageDTO.setSlot(bigStorageCage.getSlot());
+            bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
+            return bigStorageDTO;
+        }
         bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
                 .eq(BigStorageCage::getRemainWidth, slotWidth)
                 .eq(BigStorageCage::getEnableState, Const.SLOT_ON)
@@ -297,6 +329,7 @@
         bigStorageDTO = new BigStorageDTO();
         bigStorageDTO.setWidth(bigStorageCage.getRemainWidth());
         bigStorageDTO.setSlot(bigStorageCage.getSlot());
+        bigStorageDTO.setDeviceId(bigStorageCage.getDeviceId());
         return bigStorageDTO;
     }
 
@@ -315,4 +348,47 @@
     public List<SlotSequenceDTO> queryGlassMaxAndMin(String engineerId, Integer temperingLayoutId) {
         return baseMapper.queryGlassMaxAndMin(engineerId, temperingLayoutId);
     }
+
+    @Override
+    public boolean TemperingGlass(String temperingLayoutId, String engineerId){
+        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoLambdaQueryWrapper=new LambdaQueryWrapper<>();
+        temperingGlassInfoLambdaQueryWrapper
+                .eq(TemperingGlassInfo::getTemperingLayoutId,temperingLayoutId)
+                .eq(TemperingGlassInfo::getEngineerId,engineerId);
+        List<TemperingGlassInfo> temperingGlassInfoList=temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
+        if(temperingGlassInfoList.size()==0){
+            LambdaQueryWrapper<BigStorageCageDetails> wrapper =new LambdaQueryWrapper<>();
+            wrapper.eq(BigStorageCageDetails::getTemperingLayoutId,temperingLayoutId)
+                    .eq(BigStorageCageDetails::getEngineerId,engineerId)
+                    .in(BigStorageCageDetails::getState,Const.GLASS_STATE_IN,Const.GLASS_STATE_ARTIFICIAL);
+            List<BigStorageCageDetails> bigStorageCageDetailsList=baseMapper.selectList(wrapper);
+
+            for (BigStorageCageDetails bigStorageCageDetails:bigStorageCageDetailsList
+            ) {
+                TemperingGlassInfo temperingGlassInfo=new TemperingGlassInfo();
+                LambdaQueryWrapper<GlassInfo> glassInfoLambdaQueryWrapper=new LambdaQueryWrapper<>();
+                glassInfoLambdaQueryWrapper.eq(GlassInfo::getGlassId,bigStorageCageDetails.getGlassId());
+                GlassInfo glassInfo=glassInfoMapper.selectOne(glassInfoLambdaQueryWrapper);
+
+                BeanUtils.copyProperties(glassInfo, temperingGlassInfo);
+                temperingGlassInfo.setState(Const.TEMPERING_NEW);
+                temperingGlassInfo.setSlot(bigStorageCageDetails.getSlot());
+                temperingGlassInfoMapper.insert(temperingGlassInfo);
+            }
+            return true;
+        }else{
+            return false;
+        }
+
+
+    }
+
+    @Override
+    public List<Map<String, Object>> selectTemperingGlass(){
+        QueryWrapper<BigStorageCageDetails> wrapper = new QueryWrapper<>();
+        wrapper.select("engineer_id,tempering_layout_id,count(*) as count")
+                .groupBy("engineer_id,tempering_layout_id");
+        List<Map<String, Object>> TemperingGlass = baseMapper.selectMaps(wrapper);
+        return TemperingGlass;
+    }
 }
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 baa9974..44e8033 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
@@ -18,6 +18,7 @@
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -48,6 +49,9 @@
 
     @Resource
     private GlassInfoService glassInfoService;
+
+    @Value("${mes.glassGap}")
+    private Integer glassGap;
 
     //杩涚墖閫昏緫
     @Override
@@ -217,15 +221,13 @@
         LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper = new LambdaQueryWrapper();
         bigStorageCageDetailsWrapper
                 .eq(BigStorageCageDetails::getSlot, slot)
-                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_ARTIFICIAL);
+                .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL);
 
         List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper);
         for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList
         ) {
             double widths = bigStorageCageDetails.getWidth();
-            double gap = bigStorageCageDetails.getGap();
-            width -= widths + gap;
+            width = width - widths - glassGap;
         }
         //淇敼鏍煎瓙鍓╀綑瀹藉害
         BigStorageCage bigStorageCage = new BigStorageCage();
@@ -241,7 +243,7 @@
         MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
                 .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
-                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL))
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL,Const.GLASS_STATE_OUT_ING))
                         .orderByAsc(BigStorageCage::getDeviceId)
                         .orderByAsc(BigStorageCage::getSlot);
         return bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
@@ -254,7 +256,7 @@
         MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
         wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
                 .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
-                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL));
+                        .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL,Const.GLASS_STATE_OUT_ING));
         List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper);
         Map<Integer, List<BigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
         return listMap;
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 12ebb88..007eab3 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
@@ -85,6 +85,9 @@
     @Value("${mes.glassGap}")
     private Integer glassGap;
 
+    private String d01GlassId = "";
+    private String d04GlassId = "";
+
     @Scheduled(fixedDelay = 300)
     public void plcToHomeEdgScan() {
         Date startDate = new Date();
@@ -114,11 +117,17 @@
         }
         //鎸夌収绾胯矾鍙婄幓鐠僫d鑾峰彇鐩搁偦涓ゅ潡鐜荤拑 鍗ц浆绔嬩笂鐨勭幓鐠�:  鐘舵�佷负0涓嶆搷浣滐紙D01閫佺墖锛�0涓嶆搷浣滐紝1鍏佽閫佺墖锛夛紝璇锋眰瀛椾负1锛� 锛�02鐜荤拑id涓虹┖鎴栬�呭崸杞珛鏈惎鍔級
         if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) {
-            judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address);
+            if (!d01GlassId.equals(d01Id)) {
+                judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address);
+                d01GlassId = d01Id;
+            }
         }
 //        鐘舵�佷负0涓嶆搷浣滐紙D01閫佺墖锛�0涓嶆搷浣滐紝1鍏佽閫佺墖锛夛紝璇锋眰瀛椾负1锛� 鍗ц浆绔嬫湭鍚姩
         if (!REQUEST_WORD.equals(mesD04Value) && REQUEST_WORD.equals(d04ToMES) && !REQUEST_WORD.equals(d05State)) {
-            judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address);
+            if (!d04GlassId.equals(d04Id)) {
+                judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address);
+                d04GlassId = d04Id;
+            }
         }
         Date endDate = new Date();
         log.info("澶х悊鐗囩鎵爜浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
@@ -311,6 +320,32 @@
         }
     }
 
+    @Scheduled(fixedDelay = 300)
+    public void updateOutGlassStateTask() {
+        Date startDate = new Date();
+        log.info("1銆佸ぇ鐞嗙墖绗煎嚭鐗囧畬鎴愬悗鏇存柊澶х悊鐗囩鏁版嵁浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        //鍥犱负澶х悊鐗囩鍜屽嚭鐗囦换鍔℃槸涓や釜搴撶殑鏁版嵁锛屾墍浠ヨ鍒嗗紑鏌ユ壘
+        List<Object> list = bigStorageCageDetailsService.listObjs(new LambdaQueryWrapper<BigStorageCageDetails>()
+                .select(BigStorageCageDetails::getGlassId).eq(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING));
+        if (CollectionUtils.isNotEmpty(list)) {
+            log.info("2銆佽幏鍙栨墍鏈夋鍦ㄥ嚭鐗囩殑鐜荤拑淇℃伅id:{}", list);
+            List<String> glassIds = list.stream().map(String::valueOf).collect(Collectors.toList());
+            List<Object> outSuccessGlassIdsObj = bigStorageCageOutTaskService.listObjs(new LambdaQueryWrapper<BigStorageCageOutTask>()
+                    .select(BigStorageCageOutTask::getGlassId).in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
+            List<String> outSuccessGlassIds = outSuccessGlassIdsObj.stream().map(String::valueOf).collect(Collectors.toList());
+            if (CollectionUtils.isNotEmpty(outSuccessGlassIds)) {
+                log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlassIdsObj);
+                bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                        .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT).in(BigStorageCageDetails::getGlassId, outSuccessGlassIds));
+                log.info("4銆佸ぇ鐞嗙墖绗煎嚭鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", outSuccessGlassIdsObj);
+            }
+        }
+        Date endDate = new Date();
+        log.info("end:澶х悊鐗囩鍑虹墖瀹屾垚鍚庢洿鏂板ぇ鐞嗙墖绗兼暟鎹换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+        return;
+
+    }
+
     /**
      * 澶勭悊鐮存崯琛ㄤ换鍔�
      */
@@ -322,7 +357,11 @@
         List<BigStorageCageFeedTask> inDamageTaskInfoList = bigStorageCageFeedTaskService.list(new LambdaQueryWrapper<BigStorageCageFeedTask>()
                 .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
         if (CollectionUtils.isNotEmpty(inDamageTaskInfoList)) {
+            log.info("鑾峰彇杩涚墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", inDamageTaskInfoList);
             bigStorageCageFeedTaskService.remove(new LambdaQueryWrapper<BigStorageCageFeedTask>().eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
+            //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
+            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                    .set(BigStorageCageDetails::getState, Const.GLASS_STATE_DAMAGE).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
             //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
             for (BigStorageCageFeedTask bigStorageCageFeedTask : inDamageTaskInfoList) {
                 Damage damage = new Damage();
@@ -333,14 +372,21 @@
                 damage.setStatus(2);
                 damageService.insertDamage(damage);
             }
+            log.info("杩涚墖浠诲姟鎵ц瀹屾垚");
         }
         //鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
         List<BigStorageCageOutTask> outDamageTaskInfoList = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
                 .eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_DAMAGE));
         if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
+            log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
             bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
             List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+            //绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
             temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
+            //鐞嗙墖绗艰鎯呰〃鏁版嵁鐘舵�佹洿鏂�
+            bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+                    .set(BigStorageCageDetails::getState, Const.GLASS_STATE_DAMAGE).in(BigStorageCageDetails::getGlassId, glassIdList));
+
             //灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
             for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
                 Damage damage = new Damage();
@@ -351,6 +397,7 @@
                 damage.setStatus(2);
                 damageService.insertDamage(damage);
             }
+            log.info("鍑虹墖浠诲姟鎵ц瀹屾垚");
         }
         Date endDate = new Date();
         log.info("澶х悊鐗囩鐮存崯鐜荤拑娓呴櫎浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
@@ -413,6 +460,7 @@
         //鍚憄lc鍙戦�佽繘鐗囩‘璁�
         if (flag) {
             S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
+            log.info("杩涘崸杞珛鍙戦�佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓簕}", mesAddress);
         }
         //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
         return flag;
@@ -490,7 +538,7 @@
             //2銆佽幏鍙栫洰鏍囨牸瀛愪俊鎭�
             BigStorageDTO bigStorageDTO = bigStorageCageDetailsService.queryTargetSlotByTempering(info);
             //3銆佹洿鏂板ぇ鐞嗙墖绗艰〃鍓╀綑瀹藉害
-            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - info.getWidth())
+            bigStorageCageService.update(new LambdaUpdateWrapper<BigStorageCage>().set(BigStorageCage::getRemainWidth, bigStorageDTO.getWidth() - info.getWidth() - glassGap)
                     .eq(BigStorageCage::getSlot, bigStorageDTO.getSlot()));
             //4銆佹洿鏂拌繘鐗囦换鍔¤〃锛岀洰鏍囨牸瀛愬強鐘舵�侊紙鐘舵�佹敼涓�2 鐢垫皵鎵埌鑷澶勭悊锛�  閬囧埌闂锛氭棤娉曟壒閲忔洿鏂帮紝鎵归噺鏇存柊鏃犳硶璧版寚瀹氫粠搴�
             e.setTargetSlot(bigStorageDTO.getSlot());
@@ -500,6 +548,8 @@
             //5銆佸皢杩涚墖淇℃伅瀛樺叆澶х悊鐗囩璇︽儏琛�
             cageDetails.setSlot(bigStorageDTO.getSlot());
             cageDetails.setState(Const.GLASS_STATE_IN);
+            cageDetails.setDeviceId(bigStorageDTO.getDeviceId());
+            cageDetails.setGap(glassGap);
             bigStorageCageDetailsService.save(cageDetails);
         }
         sendTaskListToPLC(taskList, line);
@@ -546,7 +596,7 @@
         List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
         log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
         bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
-                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
                 .in(BigStorageCageDetails::getGlassId, glassIds));
         //鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄
         updateSlotRemain(list, glassIds);
@@ -591,7 +641,7 @@
         }
         //鑾峰彇鐜荤拑淇℃伅
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
-        return sitToUpRemainWidth.getWidth() < glassInfo.getWidth();
+        return sitToUpRemainWidth.getWidth() < Math.max(glassInfo.getWidth(), glassInfo.getHeight());
     }
 
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 8306c6f..b49e679 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -37,7 +37,7 @@
              ) T2
                  INNER JOIN (SELECT ENGINEER_ID, TEMPERING_LAYOUT_ID, COUNT(TEMPERING_FEED_SEQUENCE) AS COUNT
                              FROM BIG_STORAGE_CAGE_DETAILS
-                             WHERE STATE in (100, 101, 102)
+                             WHERE STATE in (100, 101, 102, 103)
                              GROUP BY ENGINEER_ID, TEMPERING_LAYOUT_ID) T3 ON T2.ENGINEER_ID = T3.ENGINEER_ID
             AND T2.TEMPERING_LAYOUT_ID = T3.TEMPERING_LAYOUT_ID
             AND T2.COUNT = T3.COUNT
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
index 6e45b69..d9a451e 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -38,8 +38,8 @@
     @Autowired
     DamageService damageService;
 
-    @Autowired
-    BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
+//    @Autowired
+//    BigStorageCageFeedTaskMapper bigStorageCageFeedTaskMapper;
 
     @Test
     public void testInsertSlot() {
@@ -161,4 +161,10 @@
         damage.setStatus(2);
         damageService.insertDamage(damage);
     }
+
+    @Test
+    public void updateOutGlassStateTask() {
+        plcStorageCageTask.updateOutGlassStateTask();
+    }
+
 }
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
index 9d93d35..cf4443d 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/java/com/mes/uppattenusage/service/impl/UpPattenUsageServiceImpl.java
@@ -66,8 +66,8 @@
         List<OptimizeUpPattenUsage> upPattenUsageList = null;
         if (engineeringId != null) {
             upPattenUsageList = optimizeProjectMapper.selectJoinList(OptimizeUpPattenUsage.class, new MPJQueryWrapper<OptimizeProject>()
-                    .select("t.project_no,t.glass_type,b.o_width as width,b.o_height as height ,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.stock_number")
-                    .leftJoin("optimize_detail b on t.project_no=b.project_no")
+                    .select("t.project_no,t.glass_type,b.width,b.height ,REGEXP_REPLACE(t.glass_thickness,'\\D','')as glass_thickness,b.count")
+                    .leftJoin("optimize_layout b on t.project_no=b.project_no")
                     .eq("b.project_no", engineeringId));
         }
         // 鍒涘缓涓�涓� List 鐢ㄤ簬淇濆瓨鏄犲皠鍚庣殑瀹炰綋瀵硅薄
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
index 6b27ad0..8646b79 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -1,25 +1,76 @@
 package com.mes.job;
 
-import com.mes.tempering_record.service.TemperingRecordService;
+import cn.smallbun.screw.core.util.CollectionUtils;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mes.common.S7object;
+import com.mes.common.config.Const;
+import com.mes.device.PlcParameterObject;
+import com.mes.temperingglass.entity.TemperingGlassInfo;
+import com.mes.temperingglass.service.TemperingGlassInfoService;
+import com.mes.temperingrecord.entity.TemperingRecord;
+import com.mes.temperingrecord.service.TemperingRecordService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @Author : zhoush
  * @Date: 2024/7/17 12:47
  * @Description:
  */
+@Component
+@Slf4j
 public class TemperingTask {
 
     @Autowired
     private TemperingRecordService temporalRecordService;
 
+    @Autowired
+    private TemperingGlassInfoService temporaryGlassInfoService;
+    private static final String ALONE_STATE = "0";
+
 
     @Scheduled(fixedDelay = 1000)
     public void temperingGlassBefore() {
+        Date startDate = new Date();
+        log.info("鏈浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        String state = plcParameterObject.getPlcParameter("state").getValue();
+//        褰撳墠杩炵嚎鐘舵�佷负
+        if (ALONE_STATE.equals(state)) {
+            log.info("褰撳墠閽㈠寲鐐夎繛绾挎ā寮忎负锛歿},涓嶆墽琛岃浠诲姟", state);
+            return;
+        }
+        //灏嗙‘璁ゅ瓧缃负0
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("confirmationWord").getAddress(), 0);
+
         //todo:鑾峰彇閽㈠寲鐗堝浘涓姸鎬佷负2鐨勶紙杩涚倝瀹屾垚鐨勭幓鐠冧俊鎭級  涓斾笉瀛樺湪閽㈠寲璁板綍琛ㄥ唴鐨�
+        List<Object> temperRecordIdListObj = temporalRecordService.listObjs(new QueryWrapper<TemperingRecord>().select("distinct tempering_layout_id"));
 
+        List<String> temperRecordIdList = temperRecordIdListObj.stream().map(String::valueOf).collect(Collectors.toList());
+        List<TemperingGlassInfo> list = temporaryGlassInfoService.list(new LambdaQueryWrapper<TemperingGlassInfo>()
+                .eq(TemperingGlassInfo::getState, Const.TEMPERING_START).notIn(TemperingGlassInfo::getTemperingLayoutId, temperRecordIdList));
+        if (CollectionUtils.isEmpty(list)) {
+            log.info("褰撳墠绯荤粺娌℃湁闇�瑕侀挗鍖栫殑鐜荤拑淇℃伅");
+            return;
+        }
+        List<Integer> temperingLayoutIdList = list.stream().map(TemperingGlassInfo::getTemperingLayoutId).distinct().collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(temperRecordIdList)) {
+            temperingLayoutIdList.removeAll(temperRecordIdList);
+        }
+        if (CollectionUtils.isEmpty(temperingLayoutIdList)) {
+            log.info("褰撳墠鐜荤拑鏈夋鍦ㄩ挗鍖栫殑浠诲姟");
+        }
+//        鑾峰彇閽㈠寲涓嬬墖琛ㄧ姸鎬佷负2鐨勭幓鐠冧俊鎭�
 
+        //瀹屾垚浠诲姟灏嗙‘璁ゅ瓧缃负1
+        S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("confirmationWord").getAddress(), 1);
     }
 
     @Scheduled(fixedDelay = 1000)
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java
similarity index 87%
rename from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java
rename to hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java
index 774f5ae..ea8b73b 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/controller/TemperingRecordController.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/controller/TemperingRecordController.java
@@ -1,4 +1,4 @@
-package com.mes.tempering_record.controller;
+package com.mes.temperingrecord.controller;
 
 
 import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java
similarity index 91%
rename from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java
rename to hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java
index b11715c..0049269 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/entity/TemperingRecord.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/entity/TemperingRecord.java
@@ -1,4 +1,4 @@
-package com.mes.tempering_record.entity;
+package com.mes.temperingrecord.entity;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -20,6 +20,10 @@
     private static final long serialVersionUID = 1L;
 
     /**
+     * 宸ョ▼id
+     */
+    private String engineerId;
+    /**
      * 閽㈠寲鐗堝浘
      */
     private Integer temperingLayoutId;
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java
similarity index 69%
rename from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java
rename to hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java
index c163cb3..d12a20a 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/TemperingRecordMapper.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/TemperingRecordMapper.java
@@ -1,7 +1,7 @@
-package com.mes.tempering_record.mapper;
+package com.mes.temperingrecord.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.mes.tempering_record.entity.TemperingRecord;
+import com.mes.temperingrecord.entity.TemperingRecord;
 
 /**
  * <p>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/xml/TemperingRecordMapper.xml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml
similarity index 100%
rename from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/mapper/xml/TemperingRecordMapper.xml
rename to hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/mapper/xml/TemperingRecordMapper.xml
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java
similarity index 69%
rename from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java
rename to hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java
index 49137c5..daeb9a4 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/TemperingRecordService.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/TemperingRecordService.java
@@ -1,7 +1,7 @@
-package com.mes.tempering_record.service;
+package com.mes.temperingrecord.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.mes.tempering_record.entity.TemperingRecord;
+import com.mes.temperingrecord.entity.TemperingRecord;
 
 /**
  * <p>
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java
similarity index 60%
rename from hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java
rename to hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java
index 1596f57..ea39a21 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/tempering_record/service/impl/TemperingRecordServiceImpl.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/temperingrecord/service/impl/TemperingRecordServiceImpl.java
@@ -1,9 +1,9 @@
-package com.mes.tempering_record.service.impl;
+package com.mes.temperingrecord.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.tempering_record.entity.TemperingRecord;
-import com.mes.tempering_record.mapper.TemperingRecordMapper;
-import com.mes.tempering_record.service.TemperingRecordService;
+import com.mes.temperingrecord.entity.TemperingRecord;
+import com.mes.temperingrecord.mapper.TemperingRecordMapper;
+import com.mes.temperingrecord.service.TemperingRecordService;
 import org.springframework.stereotype.Service;
 
 /**

--
Gitblit v1.8.0