From 083966e731ee3a0d2fca956c66cb4100c2d75c5e Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 18 十月 2024 14:11:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 UI-Project/config.js                                                                                       |    8 
 UI-Project/src/utils/constants.js                                                                          |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml                |    8 +
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java               |    2 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java                  |    2 
 hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml                         |    4 
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java       |   54 +++++++
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml                      |    4 
 UI-Project/src/views/Slicecage/slicecage.vue                                                               |  115 +++++++++++++++-
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java      |   28 ++-
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java |  161 ++++++++++++++++++++---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml                        |    3 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml                       |    3 
 13 files changed, 344 insertions(+), 52 deletions(-)

diff --git a/UI-Project/config.js b/UI-Project/config.js
index 9a4f798..4fc6899 100644
--- a/UI-Project/config.js
+++ b/UI-Project/config.js
@@ -1,9 +1,9 @@
 export default {
- serverUrl: "10.153.19.150:88/api",
-//  serverUrl: "192.168.1.199:88/api",
+//  serverUrl: "10.153.19.150:88/api",
+ serverUrl: "192.168.1.199:88/api",
 //  serverUrl: "127.0.0.1:88/api",
-  serverUrl2: "10.153.19.150:88"
-  // serverUrl2: "192.168.1.199:88"
+  // serverUrl2: "10.153.19.150:88"
+  serverUrl2: "192.168.1.199:88"
     // serverUrl2: "127.0.0.1:88"
 
   //serverUrl:"res.abeim.cn"
diff --git a/UI-Project/src/utils/constants.js b/UI-Project/src/utils/constants.js
index b551cfb..c104075 100644
--- a/UI-Project/src/utils/constants.js
+++ b/UI-Project/src/utils/constants.js
@@ -1,4 +1,4 @@
-//  export const WebSocketHost = "192.168.1.199";
-export const WebSocketHost = "10.153.19.150";
+ export const WebSocketHost = "192.168.1.199";
+// export const WebSocketHost = "10.153.19.150";
 // export const WebSocketHost = "127.0.0.1";
 export const host = "88";
\ No newline at end of file
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 9f9aa3e..c558d2c 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -6,10 +6,13 @@
 import {useRouter} from "vue-router"
 const router = useRouter()
 import request from "@/utils/request"
-import { WebSocketHost ,host} from '@/utils/constants'
-import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue";
-import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
-import { ElMessage, ElMessageBox } from 'element-plus'
+
+import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue";
+const dialogFormVisibleaDownGlasss = ref(false)
+const scanGlass = ref([])
+const {t} = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const router = useRouter()
 import { tr } from "element-plus/es/locale";
 const dialogFormVisible = ref(false)
 const dialoglea = ref(false)
@@ -142,6 +145,61 @@
   if (page >= 1 && page <= totalPages.value) {  
     currentPage.value = page;  
   }  
+}
+const printFlowCardId = ref('')
+const printLayer = ref('')
+const printGlassId = ref('')
+const dialogTableVisible1 = ref(false)
+const open1 = async (row) => {
+
+printFlowCardId.value = row.flowCardId;
+printLayer.value = row.layer
+printGlassId.value = row.glassId
+dialogTableVisible1.value = true;
+setTimeout(() => {
+  printFlowCard1();
+  //dialogTableVisible1.value = false;
+}, 1000);
+}
+
+const printFlowCard1 = () => {
+  // 闇�瑕佹墦鍗扮殑灞�閮ㄥ尯鍩熻祴浜�"print-wrap"鐨刬d
+  let el = document.getElementById("printFlowCard");
+  let doc = document;
+  let body = doc.body || doc.getElementsByTagName("body")[0];
+  let printId = "print-" + Date.now();
+
+  // 鍒涘缓鏃犲壇浣滅敤鐨勬墦鍗板鍣�(鍥犱笉纭畾椤甸潰鐨勬墦鍗板厓绱犳湁鏃犲叾瀹冩牱寮�)
+  let content = doc.createElement("div");
+  content.id = printId;
+
+  // 鏍峰紡鎺у埗涓庢墦鍗版棤鍏崇殑鍏冪礌闅愯棌
+  let style = doc.createElement("style");
+  style.innerHTML =
+    "body>#" +
+    printId +
+    "{display:none}@media print{" +
+    "@page {" +
+    "    size: auto; " +
+    "    margin: 2mm 2mm 2mm 2mm;  " +
+    "  }body>:not(#" +
+    printId +
+    "){display:none !important}body>#" +
+    printId +
+    "{display:block;padding-top:1px}}";
+  //
+  content.innerHTML = el.outerHTML;
+  // // console.log("el.outerHTML", el.outerHTML);
+  body.appendChild(style);
+
+  // 涓巗tyle鍏冪礌璁剧疆鐨勬牱寮忕浉閰嶅悎
+  // 鎶婃墦鍗板唴瀹圭殑鍏冪礌娣诲姞鍒癰ody(浣滀负body鐨勫瓙鍏冪礌锛屽彲鐢╞ody鐨勫瓙閫夋嫨鍣� '>' 鎺у埗鎵撳嵃鏍峰紡)
+  body.appendChild(content);
+  setTimeout(() => {
+    window.print();
+    body.removeChild(content);
+    body.removeChild(style);
+  }, 20);
 }
     // 涓婁竴椤靛拰涓嬩竴椤垫柟娉�
     const prevPage = () => {
@@ -704,6 +762,18 @@
 const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
 // 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
 const handleMessage = (data) => {
+  if (data.scanGlass != null) {
+    scanGlass.value = data.scanGlass[0];
+    let width = scanGlass.value.width;
+    let height = scanGlass.value.height;
+    if (width < height) {
+      scanGlass.value.width = height;
+      scanGlass.value.height = width;
+    }
+    if (autoPrint.value == true && browser.value == true) {
+      open1(scanGlass);
+    }
+  }
   //褰撳墠鎸囧畾宸ョ▼
   if(data.bigStorageCageDetailsOutTask!=null){
     temperingengineerId.value=data.temperingengineerId[0];
@@ -878,6 +948,7 @@
   // console.log("鍏抽棴浜�")
   closeWebSocket();
 });
+
 </script>
  
 <template>
@@ -888,6 +959,9 @@
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
     <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">{{ $t('searchOrder.searchlayout') }}</el-button>
     <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" />
+    <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary"
+      @click="dialogFormVisibleaDownGlasss = true">浜哄伐涓嬬墖
+    </el-button>
     <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
       <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
         <el-table height="100px" ref="table" 
@@ -898,9 +972,9 @@
           <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" :label="$t('searchOrder.trips')" min-width="120" />
           <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" :label="$t('searchOrder.number')" min-width="120" />
           <el-table-column prop="bigStorageCageOutTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
-          <template #default="scope">  
-            <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
-          </template>
+          <!-- <template #default="scope">  
+            <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}111</el-tag>
+          </template> -->
           </el-table-column>
           <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> -->
           <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
@@ -1608,6 +1682,33 @@
         </el-table-column>
         </el-table>
 </el-dialog>
+<el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('浜哄伐涓嬬墖淇℃伅')">
+          <div style="display:flex;justify-content: space-around;">
+            <el-card
+              style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;">
+              <div
+                :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }">
+
+              </div>
+              <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;">
+                <div>鎵爜鏋綋鍓嶇幓鐠冧俊鎭�</div>
+                <div>
+                  <el-button type="primary" @click="open1(scanGlass)">鎵撳嵃鏍囩</el-button>
+                </div>
+                <div>{{ scanGlass.flowCardId }}</div>
+                <div>{{ scanGlass.layer }}</div>
+                <div>{{ scanGlass.glassId }}</div>
+                <div>{{ scanGlass.width }}</div>
+                <div>{{ scanGlass.height }}</div>
+
+              </div>
+            </el-card>
+          </div>
+        </el-dialog>
+        <el-dialog id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close>
+    <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer"
+                 :printGlassId="printGlassId" style=""/>
+  </el-dialog>
 </template>
 <style scoped>
 #dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
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 0113b67..4e5ec39 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
@@ -18,8 +18,6 @@
  */
 public interface DamageService extends MPJBaseService<Damage> {
 
-    List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure);
-
     List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
 
 //    List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure);
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 a27568f..8cb3614 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
@@ -53,10 +53,6 @@
     @Resource
     WorkAssignmentMapper workAssignmentMapper;
 
-    @Override
-    public List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure) {
-        return null;
-    }
 
     /**
      * 鏌ヨ鎶ュ伐淇℃伅
@@ -174,14 +170,22 @@
      */
     @Override
     public void insertDamage(Damage damage) {
-        List<Damage> damage1 = baseMapper.selectList(
-                new LambdaQueryWrapper<Damage>()
-                        .ne(Damage::getType, Const.GLASS_STATE_DAMAGE)
-                        .ne(Damage::getType, Const.GLASS_STATE_TAKE)
-                        .eq(Damage::getLine, damage.getLine())
-                        .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure())
-                        .eq(Damage::getGlassId, damage.getGlassId())
-        );
+        List<Damage> damage1 = null;
+        if (Const.GLASS_STATE_DAMAGE.equals(damage.getType()) || Const.GLASS_STATE_TAKE.equals(damage.getType())) {
+            damage1 = baseMapper.selectList(
+                    new LambdaQueryWrapper<Damage>()
+                            .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+                            .eq(Damage::getGlassId, damage.getGlassId())
+            );
+        } else {
+            damage1 = baseMapper.selectList(
+                    new LambdaQueryWrapper<Damage>()
+                            .notIn(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE)
+                            .eq(Damage::getLine, damage.getLine())
+                            .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure())
+                            .eq(Damage::getGlassId, damage.getGlassId())
+            );
+        }
         if (damage1 == null || damage1.size() == 0) {
             LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>();
             glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId());
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
index eaa6417..1d9a585 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -15,6 +15,9 @@
 mes:
   threshold: 3
   ratio: 10
+cache: # 鍗у紡鐞嗙墖鏈�澶у昂瀵�
+    cacheWidth: 4000
+    cacheHeight: 3000
   max: # 绗簩鏉$嚎鐨勬渶澶у昂瀵镐俊鎭�
     firstLength: 3500
     secondLength: 2500
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
index 7dea372..903d7aa 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -1,19 +1,27 @@
 package com.mes.job;
 
 import cn.hutool.json.JSONObject;
+import cn.smallbun.screw.core.util.CollectionUtils;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.mes.bigstorage.entity.BigStorageCageDetails;
 import com.mes.bigstorage.service.BigStorageCageDetailsService;
 import com.mes.bigstorage.service.BigStorageCageService;
 import com.mes.common.utils.RedisUtil;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
 import com.mes.tools.WebSocketServer;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.net.Socket;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -33,6 +41,14 @@
     private TemperingGlassInfoService temperingGlassInfoService;
     @Resource
     private RedisUtil redisUtil;
+    @Autowired
+    private GlassInfoService glassInfoService;
+
+    @Value("${mes.scan.ip}")
+    private String scanIp;
+
+    @Value("${mes.scan.port}")
+    private Integer scanPort;
 
     private JSONObject jsonObject = new JSONObject();
 
@@ -67,6 +83,14 @@
             temperingSwitch = redisUtil.getCacheObject("temperingSwitch");
         }
         jsonObject.append("temperingSwitch", temperingSwitch);
+        //鎵撳嵃寮�鍏�
+        boolean autoPrint = false;
+        if (redisUtil.getCacheObject("autoPrint") == null) {
+            redisUtil.setCacheObject("autoPrint", false);
+        } else {
+            autoPrint = redisUtil.getCacheObject("autoPrint");
+        }
+        jsonObject.append("autoPrint", autoPrint);
 
         //褰撳墠鎸囧畾宸ョ▼
         String temperingengineerId = "";
@@ -144,4 +168,34 @@
         }
     }
 
+    @Scheduled(fixedDelay = Long.MAX_VALUE)
+    public void scanCodeTask() {
+        log.info("鎵弿浠诲姟宸插惎鍔�");
+        while (true) {
+            JSONObject jsonObject = new JSONObject();
+            try (Socket socket = new Socket(scanIp, scanPort);
+                 BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) {
+                // 鎺ユ敹鏈嶅姟鍣ㄥ搷搴�
+                log.info("绛夊緟鎵爜涓�......");
+                String glassId = in.readLine();
+                log.info("鎵弿鍒扮殑鐜荤拑id锛歿}", glassId);
+                List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage");
+                if (CollectionUtils.isNotEmpty(sendwServer)) {
+                    //鎸夌収鐜荤拑id鑾峰彇鐜荤拑淇℃伅杩斿洖缁欏墠绔晫闈紝鍏蜂綋闇�瑕佸摢浜涙暟鎹緟纭
+                    GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>()
+                            .eq(GlassInfo::getGlassId, glassId).last("limit 1"));
+                    if (null == glassInfo) {
+                        log.info("鎸夌収鐜荤拑id锛歿}锛屾棤娉曟壘鍒扮幓鐠冧俊鎭�", glassId);
+                    } else {
+                        for (WebSocketServer webserver : sendwServer) {
+                            jsonObject.append("scanGlass", glassInfo);
+                            webserver.sendMessage(jsonObject.toString());
+                        }
+                    }
+                }
+            } catch (Exception exception) {
+                log.info("璇诲彇寮傚父锛屽師鍥犱负{}", exception.getMessage());
+            }
+        }
+    }
 }
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index 8ab87a9..61a0a3c 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
@@ -437,13 +437,13 @@
             List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
                     .in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
             if (CollectionUtils.isNotEmpty(outSuccessGlass)) {
-                for (BigStorageCageOutTask bigStorageCageOutTask:outSuccessGlass
-                     ) {
-                    if(bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)){
+                for (BigStorageCageOutTask bigStorageCageOutTask : outSuccessGlass
+                ) {
+                    if (bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)) {
                         temperingGlassInfoService.update(
                                 new LambdaUpdateWrapper<TemperingGlassInfo>()
-                                        .set(TemperingGlassInfo::getState,Const.TEMPERING_END)
-                                        .eq(TemperingGlassInfo::getGlassId,bigStorageCageOutTask.getGlassId())
+                                        .set(TemperingGlassInfo::getState, Const.TEMPERING_END)
+                                        .eq(TemperingGlassInfo::getGlassId, bigStorageCageOutTask.getGlassId())
                         );
                     }
                 }
@@ -527,9 +527,9 @@
                 Damage damage = new Damage();
                 damage.setGlassId(bigStorageCageFeedTask.getGlassId());
                 damage.setLine(bigStorageCageFeedTask.getLine());
-                damage.setWorkingProcedure("鍐峰姞宸�");
+                damage.setWorkingProcedure("纾ㄨ竟");
                 damage.setRemark("杩涚鍓嶅崸杞珛");
-                damage.setStatus(0);
+                damage.setStatus(1);
                 damage.setType(bigStorageCageFeedTask.getTaskState());
                 damageService.insertDamage(damage);
                 slotList.add(bigStorageCageFeedTask.getTargetSlot());
@@ -555,9 +555,9 @@
                 Damage damage = new Damage();
                 damage.setGlassId(bigStorageCageOutTask.getGlassId());
                 damage.setLine(bigStorageCageOutTask.getEndSlot());
-                damage.setWorkingProcedure("鍐峰姞宸�");
+                damage.setWorkingProcedure("閽㈠寲");
                 damage.setRemark("鍑虹墖鍚庡崸杞珛");
-                damage.setStatus(0);
+                damage.setStatus(1);
                 damage.setType(bigStorageCageOutTask.getTaskState());
                 damageService.insertDamage(damage);
                 slotList.add(bigStorageCageOutTask.getStartSlot());
@@ -572,6 +572,104 @@
     }
 
     /**
+     * 纭瀛楁竻绌�
+     */
+//    @Scheduled(fixedDelay = 300)
+    public void confirmClear() {
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue();
+        String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue();
+        String mesD01Address = plcParameterObject.getPlcParameter("MESToD01").getAddress();
+        String mesD04Address = plcParameterObject.getPlcParameter("MESToD04").getAddress();
+        String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue();
+        String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue();
+        String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress();
+        String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress();
+        if (!REQUEST_WORD.equals(d01ToMES)) {
+            S7object.getinstance().plccontrol.writeWord(mesD01Address, 0);
+        }
+        if (!REQUEST_WORD.equals(d04ToMES)) {
+            S7object.getinstance().plccontrol.writeWord(mesD04Address, 0);
+        }
+        if (!REQUEST_WORD.equals(d03ToMES)) {
+            S7object.getinstance().plccontrol.writeWord(mesD03Address, 0);
+        }
+        if (!REQUEST_WORD.equals(d05ToMES)) {
+            S7object.getinstance().plccontrol.writeWord(mesD05Address, 0);
+        }
+    }
+
+    /**
+     * 杩涚墖鐘舵�佷慨鏀�
+     */
+//    @Scheduled(fixedDelay = 300)
+    public void feedStatusUpdate() {
+        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+        List<String> glassIds1 = null;
+        List<String> glassIds2 = null;
+        for (int i = 1; i <= 2; i++) {
+            String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getAddress();
+            if (StringUtils.isEmpty(line1GlassId)) {
+                glassIds1.add(line1GlassId);
+            }
+            String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getAddress();
+            if (StringUtils.isEmpty(line2GlassId)) {
+                glassIds1.add(line2GlassId);
+            }
+        }
+        List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list(
+                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+                        .eq(BigStorageCageFeedTask::getTaskState, 1)
+                        .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION)
+        );
+        List<BigStorageCageFeedTask> bigStorageCageFeedTasks2 = bigStorageCageFeedTaskService.list(
+                new LambdaQueryWrapper<BigStorageCageFeedTask>()
+                        .eq(BigStorageCageFeedTask::getTaskState, 1)
+                        .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
+        );
+        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1)) {
+            List<String> matchingIds1 = bigStorageCageFeedTasks1.stream()
+                    .map(BigStorageCageFeedTask::getGlassId)
+                    .filter(glassIds1::contains)
+                    .distinct()
+                    .collect(Collectors.toList());
+        }
+        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2)) {
+            List<String> matchingIds2 = bigStorageCageFeedTasks2.stream()
+                    .map(BigStorageCageFeedTask::getGlassId)
+                    .filter(glassIds2::contains)
+                    .distinct()
+                    .collect(Collectors.toList());
+        }
+        bigStorageCageFeedTaskService.update(
+                new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+                        .in(BigStorageCageFeedTask::getGlassId, glassIds1, glassIds2)
+                        .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+                        .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+        );
+        if (glassIds1 == null) {
+            bigStorageCageFeedTaskService.update(
+                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+                            .eq(BigStorageCageFeedTask::getLine,Const.A09_OUT_TARGET_POSITION)
+                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+            );
+        }
+        if (glassIds1 == null) {
+            bigStorageCageFeedTaskService.update(
+                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
+                            .eq(BigStorageCageFeedTask::getLine,Const.A10_OUT_TARGET_POSITION)
+                            .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
+                            .gt(BigStorageCageFeedTask::getTargetSlot, 0)
+                            .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
+            );
+        }
+    }
+
+    /**
      * 鎸夌収鐜荤拑id鍒ゆ柇鐜荤拑鐘舵�佸強鍗ц浆绔嬫槸鍚﹀彲鐩存帴鍚姩
      */
     public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) {
@@ -581,14 +679,24 @@
                 .eq(EdgGlassTaskInfo::getLine, line)
                 .apply("time >= (select time from edg_glass_task_info where line='" + line + "' and glass_id = '" + glassId + "' and deleted = 0)")
                 .orderByAsc(EdgGlassTaskInfo::getTime));
-        if (edgGlassTaskInfoList == null) {
-            log.info("绾胯矾锛歿}璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触", line);
-        } else {
+        if (edgGlassTaskInfoList.size() == 0) {
             edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>()
                     .select("Top 1 *")
                     .eq("glass_id", glassId)
             );
             log.info("鍦ㄥ昂瀵歌〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+            if (edgGlassTaskInfoList.size() == 0) {
+                GlassInfo glassInfo = glassInfoService.getOne(
+                        new LambdaQueryWrapper<GlassInfo>()
+                                .eq(GlassInfo::getGlassId, glassId)
+                );
+                EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo();
+                BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo);
+                edgGlassTaskInfo.setWidth((int) glassInfo.getWidth());
+                edgGlassTaskInfo.setHeight((int) glassInfo.getHeight());
+                edgGlassTaskInfoList.add(edgGlassTaskInfo);
+                log.info("鍦ㄧ幓鐠冧俊鎭〃涓幏鍙栫幓鐠冧俊鎭瘂}", edgGlassTaskInfoList);
+            }
         }
         Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "璇嗗埆鐜荤拑淇℃伅鏈嚭鐜板湪灏哄琛ㄤ腑,鑾峰彇鐩搁偦涓ゅ潡鐜荤拑澶辫触");
         //2銆佽幏鍙栧崸杞珛鍓╀綑瀹藉害
@@ -651,11 +759,16 @@
             //鍚憄lc鍐欏叆纭瀛�
             int returnData = 0;
             int count = 1;
-            while (returnData == 0) {
+            while (returnData != 0) {
                 S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
-                returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
-                log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, returnData);
-
+                PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+                if (Const.A10_OUT_TARGET_POSITION.equals(line)) {
+                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue());
+                } else {
+                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D01ToMES").getValue());
+                }
+//                returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
+                log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, 1);
             }
         }
         //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
@@ -775,10 +888,15 @@
         }
         int returnData = 0;
         int count = 1;
-        while (returnData == 0) {
+        while (returnData != 0) {
             s7control.writeWord(outLine, 2);
-            returnData = s7control.readWord(outLine, 1).get(0);
-            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
+            if (line.equals(Const.A09_OUT_TARGET_POSITION)) {
+                returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD03").getValue());
+            } else {
+                returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD05").getValue());
+            }
+//            returnData = s7control.readWord(outLine, 1).get(0);
+            log.info("宸插悜plc绗瑊}娆″彂閫佽繘鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, 2);
         }
     }
 
@@ -844,7 +962,7 @@
      * @param <T>
      * @return
      */
-    private <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+    public <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
         //浠诲姟鏁版嵁  鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�  鐜荤拑闂撮殧
         List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
         //鎵撹溅鍓╀綑灏哄
@@ -891,7 +1009,8 @@
         log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
         bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
                 .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
-                .in(BigStorageCageDetails::getGlassId, glassIds));
+                .in(BigStorageCageDetails::getGlassId, glassIds)
+                .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT));
 //        int returnData = 0;
 //        int count = 1;
 //        while (returnData == 0) {
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 8449550..7de2d4e 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -21,4 +21,10 @@
   inCarMaxSize: 0    #杩涚墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
   outCarMaxSize: 2     #鍑虹墖澶ц溅鏈�澶у瓨鏀剧幓鐠冩暟閲�
   glassGap: 350  #鐜荤拑闂磋窛
-  xMaxSize: 2800
\ No newline at end of file
+  xMaxSize: 2800
+  scan:
+    ip: 192.168.30.199
+    port: 5000
+kangaroohy:
+  milo:
+    enabled: false
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
index d2bd76c..dc2fa5d 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
@@ -14,5 +14,7 @@
   mapper-locations: classpath*:mapper/*.xml
   configuration:
     log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-
+kangaroohy:
+  milo:
+    enabled: false
 
diff --git a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
index d61e1b4..62c6cb8 100644
--- a/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -10,4 +10,6 @@
 mybatis-plus:
   mapper-locations: classpath*:mapper/*.xml
   configuration:
-    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
\ No newline at end of file
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImplkangaroohy:
+  milo:
+    enabled: false
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
index ad8e5a3..9096c98 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -158,7 +158,7 @@
         jsonObject4.append("downGlassInfos", downGlassInfos);
         jsonObject4.append("engineerIdList", engineerIdList);
 
-        //閽㈠寲寮�鍏�
+        //鎵撳嵃寮�鍏�
         boolean autoPrint = false;
         if (redisUtil.getCacheObject("autoPrint") == null) {
             redisUtil.setCacheObject("autoPrint", false);
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
index b4e6af6..5873f82 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -31,3 +31,6 @@
   scan:
     ip: 192.168.30.199
     port: 5000
+kangaroohy:
+  milo:
+    enabled: false
\ No newline at end of file

--
Gitblit v1.8.0