From c32e18332fc5d062aea27bfcc82105dd73a0a56f Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期四, 11 四月 2024 14:58:06 +0800
Subject: [PATCH] 迁移缓存逻辑代码

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java                          |  470 +++++++++++++++++++++++++++++++++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownGlassCacheLogic.java   |  234 ++++++++++++++++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java    |    4 
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/SelectInfo.java             |   75 +++++
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java |    5 
 5 files changed, 787 insertions(+), 1 deletions(-)

diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java
new file mode 100644
index 0000000..26d30b5
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/common/S7control.java
@@ -0,0 +1,470 @@
+package com.mes.common;
+
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.github.xingshuangs.iot.protocol.s7.service.MultiAddressWrite;
+import com.github.xingshuangs.iot.protocol.s7.service.S7PLC;
+import com.google.common.primitives.Bytes;
+
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.List;
+
+public class S7control {
+
+    S7PLC s7PLC; // PLC閫氳绫诲疄渚�
+    private EPlcType plcType = EPlcType.S1500; // 瑗块棬瀛怭LC绫诲瀷
+    private String ip = "192.168.10.1"; // plc ip鍦板潃
+    private int port = 102; // plc 绔彛鍙�
+
+    private static volatile S7control instance = null;
+
+    private S7control() {
+        if (s7PLC == null)
+            s7PLC = new S7PLC(plcType, ip, port,0,0);
+    }
+
+    // 鍗曚緥妯″紡 鑾峰彇绫荤殑鍞竴瀹炰緥
+    public static S7control getinstance() {
+        if (instance == null) {
+            synchronized (S7control.class) {
+                if (instance == null) {
+                    instance = new S7control();
+                }
+            }
+        }
+        return instance;
+    }
+    
+    /**
+     * 鍏抽棴瑗块棬瀛恠7閫氳杩炴帴
+     */
+    public void CloseS7client() {
+        if (s7PLC == null)
+            s7PLC.close();
+            s7PLC.checkConnected();
+    }
+
+    /**
+     * s7閫氳杩炴帴鐘舵��
+     */
+    public boolean CheckConnected() {
+        return s7PLC.checkConnected();
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓獁ord
+     * 
+     * @param address 鍦板潃
+     * @param data    word鐨勫��
+     */
+    public void WriteWord(String address, short data) {
+        if (s7PLC==null)
+        {
+            return;
+        }
+        s7PLC.writeInt16(address, data);
+    }
+
+    /**
+     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜word
+     * 
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+    public void WriteWord(String address, List<Short> datas) {
+        if (s7PLC==null)
+            return;
+        // s7PLC.write(address, data);
+        List<String> addresslist = GetAddressList(address, datas.size(), 16);
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < datas.size(); i++) {
+            addressWrite.addInt16(addresslist.get(i), datas.get(i));
+        }
+        s7PLC.writeMultiData(addressWrite);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜word
+     * 
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+
+
+
+
+
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓狟it
+     * 
+     * @param address 鍦板潃
+     * @param data    Bit鐨勫��
+     */
+    public void WriteBit(String address, Boolean data) {
+        if (s7PLC==null)
+            return;
+        s7PLC.writeBoolean(address, data);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜bit
+     * 
+     * @param address 鍦板潃
+     * @param datas   bit鐨勫��
+     */
+    public void WriteBit(List<String> address, List<Boolean> datas) {
+        if (s7PLC==null)
+            return;
+        // s7PLC.write(address, data);
+
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < address.size(); i++) {
+            addressWrite.addBoolean(address.get(i), datas.get(i));
+        }
+        s7PLC.writeMultiData(addressWrite);
+    }
+
+    /**
+     * 浠庢煇鍦板潃杩炵画 鍐欏叆澶氫釜bit
+     * 
+     * @param address 鍦板潃
+     * @param datas   word鐨勫��
+     */
+    public void WriteBit(String address, List<Boolean> datas) {
+        if (s7PLC==null)
+            return;
+        // s7PLC.write(address, data);
+        List<String> addresslist = GetAddressList(address, datas.size(), 1);
+        MultiAddressWrite addressWrite = new MultiAddressWrite();
+        for (int i = 0; i < datas.size(); i++) {
+            addressWrite.addBoolean(addresslist.get(i), datas.get(i));
+        }
+        s7PLC.writeMultiData(addressWrite);
+    }
+     /**
+     * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆澶氫釜byte
+     * 
+     * @param address 鍦板潃
+     * @param datas   byte鐨勫��
+     */
+    public void WriteByte(String address, byte[] datas) {
+        if (s7PLC==null)
+            return;
+        // s7PLC.write(address, data); 
+        s7PLC.writeByte(address, datas);
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
+     * 
+     * @param address 鍦板潃
+     * @return 缁撴灉
+     */
+    public List<Short> ReadWord(List<String> address) {
+        if (s7PLC == null)
+            return null;
+
+        try {
+            return s7PLC.readInt16(address);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+    }
+
+
+
+
+    private int getIndexFromAddress(String address) {
+
+        // 鍙互瑙f瀽鍑哄湴鍧�涓殑鏁板瓧閮ㄥ垎锛屽苟杞崲涓烘暣鏁�
+        return 0;
+    }
+
+    private String getAddressFromIndex(int index) {
+
+        // 鏁存暟杞崲涓哄湴鍧�鏍煎紡鐨勫瓧绗︿覆
+        return "";
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
+     * 
+     * @param address 鍦板潃
+     * @param count   杩炵画璇诲灏戜釜word
+     * @return 缁撴灉
+     */
+    public List<Short> ReadWord(String address, int count) {
+        if (s7PLC == null)
+            return null;
+
+        List<String> addresslist = GetAddressList(address, count, 16);
+        try {
+            return s7PLC.readInt16(addresslist);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+
+            return null;
+        }
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 璇诲彇byte缁撴灉闆�
+     * 
+     * @param address 鍦板潃
+     * @param count   杩炵画璇诲灏戜釜byte
+     * @return 缁撴灉
+     */
+    public byte[] ReadByte(String address, int count) {
+        if (s7PLC==null)
+             return null;
+       // List<String> addresslist = GetAddressList(address, count, 16);
+
+        try {
+            return s7PLC.readByte(address, count);
+        }catch (Exception e) {
+            // 澶勭悊寮傚父
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+
+    }
+
+    /**
+     * 鎸夋寚瀹氱殑鍦板潃 鎸塨it浣� 0 flase 1 true 璇诲彇缁撴灉
+     *
+     * @param addresslist 鍦板潃闆�
+     * @return Boolean缁撴灉
+     */
+    public List<Boolean> ReadBits(List<String> addresslist) {
+        if (s7PLC==null)
+             return null;
+        return s7PLC.readBoolean(addresslist);
+    }
+//璇诲彇涓嶈繛缁湴鍧�bit
+public List<Boolean> readBits(List<String> addressList) {
+    if (s7PLC == null || addressList.isEmpty()) {
+        return null;
+    }
+
+    List<Boolean> values = new ArrayList<>();
+    for (String address : addressList) {
+        try {
+            boolean value = s7PLC.readBoolean(address);
+            values.add(value);
+        } catch (Exception e) {
+            // 澶勭悊寮傚父
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        }
+    }
+
+    return values;
+}
+
+
+//璇诲彇String
+public List<String> readStrings(List<String> addressList) {
+    if (s7PLC == null) {
+        return null;
+    }
+    List<String> result = new ArrayList<>();
+    for (String address : addressList) {
+        try {
+            byte[] bytes = s7PLC.readByte(address, 14);
+            if (bytes != null) {
+                String str = new String(bytes, StandardCharsets.UTF_8);
+                result.add(str);
+            }
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            result.add(null);
+        }
+    }
+
+    return result;
+}
+
+
+
+
+
+    public List<String> readStringsandword(List<String> addressList) {
+        if (s7PLC == null) {
+            return null;
+        }
+        List<String> result = new ArrayList<>();
+        for (String address : addressList) {
+            try {
+                if (address.contains("-")) {
+                    address = address.substring(0, address.indexOf("-"));
+
+                    byte[] bytes = s7PLC.readByte(address, 14);
+                    if (bytes != null) {
+                        String str = new String(bytes, StandardCharsets.UTF_8);
+                        result.add(str);
+                    }
+
+                } else {
+                    Short value = s7PLC.readInt16(address);
+                    result.add(value.toString());
+
+                }
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+                result.add(null);
+            }
+        }
+
+        return result;
+    }
+
+
+
+//涓嶈繛缁湴鍧�鍐欏叆Word
+    public void WriteWord(List<String> address, List<Short> datas) {
+        if (s7PLC == null)
+            return;
+
+        for (int i = 0; i < address.size(); i++) {
+            String addr = address.get(i);
+            short data = datas.get(i);
+
+            if (addr.contains("-")) {
+                outmesid(String.valueOf(data),addr); // 鍗曠嫭澶勭悊甯︾牬鎶樺彿鐨勫湴鍧�
+            } else {
+                s7PLC.writeInt16(addr, data); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
+            }
+        }
+    }
+    
+    
+    
+//瀛楃涓插啓鍏�
+    public void outmesid(String data, String addr) {
+//        System.out.println("outmesid: " + data);
+        List<Byte> glassidlist = new ArrayList<>();
+        String[] parts = addr.split("-");
+        if (parts.length == 2) {
+            addr = parts[0]; // 鍙繚鐣� "-" 鍓嶉潰鐨勯儴鍒�
+        }
+        for (char iditem : data.toCharArray()) {
+            glassidlist.add(Byte.valueOf(String.valueOf(iditem)));
+        }
+        byte[] bytes = Bytes.toArray(glassidlist);
+        S7control.getinstance().WriteByte(addr, bytes);
+    }
+
+//璇诲彇涓嶈繛缁瓀ord
+    public List<Short> readWords(List<String> addresses) {
+        if (s7PLC == null) {
+            return null;
+        }
+
+        List<Short> data = new ArrayList<>();
+
+        for (String address : addresses) {
+            try {
+
+                // 鍗曚釜鍦板潃
+                Short value = s7PLC.readInt16(address);
+                data.add(value);
+            } catch (Exception e) {
+                System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+
+            }
+
+        }
+        return data;
+    }
+
+//璇诲彇鏃堕棿
+public Long readtime(String address) {
+    if (s7PLC == null)
+        return null;
+    try {
+        return s7PLC.readTime(address);
+    } catch (Exception e) {
+        System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+        return null;
+    }
+}
+
+
+    public void writetime(String address, long datas) {
+        if (s7PLC == null)
+            return;
+
+
+        s7PLC.writeTime(address, datas); // 灏嗘暟鎹啓鍏ュ崟涓湴鍧�
+    }
+
+
+
+
+
+    private int extractAddressNumber(String address) {
+        String numberStr = address.replaceAll("\\D+", ""); // 浣跨敤姝e垯琛ㄨ揪寮忔彁鍙栨暟瀛楅儴鍒�
+        return Integer.parseInt(numberStr);
+    }
+
+
+    /**
+     * 浠庢寚瀹氱殑鍦板潃寮�濮� 杩炵画鎸塨it浣嶈鍙�
+     *
+     * @param address 鍦板潃
+     * @param count   闀垮害
+     * @return Boolean缁撴灉
+     */
+    public List<Boolean> ReadBits(String address, int count) {
+        if (s7PLC == null)
+            return null;
+        List<String> addresslist = GetAddressList(address, count, 1);
+        try {
+            return s7PLC.readBoolean(addresslist);
+        } catch (Exception e) {
+            System.out.println("璇诲彇 " + address + " 澶辫触锛�" + e.getMessage());
+            return null;
+        }
+
+    };
+
+
+    public void writeString(String addr,String data) {
+        s7PLC.writeString(addr,data);
+    }
+    
+    
+
+    private List<String> GetAddressList(String address, int count, int addedbit) {
+        List<String> addresslist = new ArrayList<String>();
+
+        String[] stringdatas = address.trim().split("\\.");
+        if (stringdatas.length < 2 || !address.startsWith("DB"))
+            return null;
+        int dbwindex = 0;
+        int bitindex = 0;
+        if (stringdatas.length == 2) {
+            dbwindex = Integer.parseInt(stringdatas[1]);
+        } else if (stringdatas.length == 3) {
+            dbwindex = Integer.parseInt(stringdatas[1]);
+            bitindex = Integer.parseInt(stringdatas[2]);
+        } else
+            return null;
+
+            addresslist.add(address);
+        for (int i = 0; i < count-1; i++) {
+
+            int bitcurrent = bitindex + addedbit;
+            if (bitcurrent > 7) {
+                dbwindex += bitcurrent / 8;
+                bitindex = 0;
+            } else
+                bitindex = bitcurrent;
+
+                String endstr=stringdatas.length==3?"." + bitindex:"";
+            addresslist.add(stringdatas[0] + "." + dbwindex + endstr);
+        }
+        return addresslist;
+    }
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
index a24f392..8bd7830 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/entity/DownStorageCageDetails.java
@@ -81,6 +81,11 @@
      */
     private Integer temperingFeedSequence;
 
+
+    /**
+     * 鑶滅郴id
+     */
+    private int filmsid;
     /**
      * 鐘舵��
      */
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/SelectInfo.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/SelectInfo.java
new file mode 100644
index 0000000..5005692
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/mapper/SelectInfo.java
@@ -0,0 +1,75 @@
+package com.mes.downstorage.mapper;
+
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.uppattenusage.entity.GlassInfo;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+import java.util.Map;
+
+@Mapper
+public interface SelectInfo {
+    // 鐜荤拑淇℃伅 鎸塈D鏌ヨ
+    @Select("select * from `glass_info` where id=#{id}")
+    GlassInfo SelectGlassId(String id);
+
+    // 閽㈠寲鎸夊伐绋嬫煡璇�
+ //@Select("select * from `v_optimize_heat_layout` where project_no=#{projeceid} ")
+ //List<Map>  SelectTemperedTerritory(String projeceid);
+//
+//    // 鍒囧壊鐗堝浘鎸夊伐绋嬫煡璇�
+ //  @Select("select * from optimize_detail where project_no=#{projeceid} ")
+ // List<Map> SelectCutTerritory(String projeceid);
+//
+//    // 鏌ヨ纾ㄨ竟淇℃伅
+//    @Select("select * from task_cache where task_type='2' and task_stauts='2' and end_cell=#{EndCell}")
+//    List<Map> SelectEdgInfo(String EndCell);
+
+    // 鏌ヨ绗煎瓙鍐呯┖闂�
+    @Select("select escd.* from down_storage_cage as esc LEFT JOIN down_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is null order by escd.slot")
+    List<DownStorageCageDetails> SelectCacheLeisure();
+
+    // 鏌ヨ绗煎瓙鍐呭嚭鐗囦换鍔�
+    @Select("select escd.* from down_storage_cage as esc LEFT JOIN down_storage_cage_details as escd on esc.slot=escd.slot WHERE escd.slot IS NOT NULL order by escd.tempering_layout_id,escd.tempering_feed_sequence")
+    List<DownStorageCageDetails> SelectCacheOut();
+
+    // 鏌ヨ绗煎瓙鍐呬俊鎭�
+    @Select("select escd.* from down_storage_cage as esc LEFT JOIN down_storage_cage_details as escd on esc.slot=escd.slot order by esc.slot")
+    List<DownStorageCageDetails> SelectCachInfo();
+
+    // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+    @Select("select escd.* from down_storage_cage as esc LEFT JOIN down_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id=#{tempering_layout_id} and escd.tempering_feed_sequence<#{tempering_feed_sequence} and esc.remain_width-#{width}>0 order by escd.tempering_feed_sequence")
+    List<DownStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, Integer tempering_feed_sequence,
+            double width);
+
+    // 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿
+    @Select("select escd.* from down_storage_cage as esc LEFT JOIN down_storage_cage_details as escd on esc.slot=escd.slot where escd.slot is not null escd.tempering_layout_id<#{tempering_layout_id} and esc.remain_width-#{width}>0 order by escd.tempering_layout_id desc,escd.tempering_feed_sequence")
+    List<DownStorageCageDetails> SelectIsExistIntoCache(Integer tempering_layout_id, double width);
+
+    // 鏌ヨ鍏ㄩ儴浠诲姟
+    @Select("select * from down_glass_task")
+    List<DownGlassTask> SelectCacheInfoAll();
+
+    // 鏌ヨ杩涚墖浠诲姟
+    @Select("select * from down_glass_task where task_type='1' and task_stauts='0'")
+    List<DownGlassTask> SelectInputCacheInfo();
+
+    // 鏌ヨ鍑虹墖浠诲姟
+    @Select("select * from down_glass_task where task_type='2' and task_stauts='0'")
+    List<DownGlassTask> SelectOutCacheInfo();
+
+    // 鏌ヨ  A06  鎴� A11 鏈�鏂扮殑涓�鐗� 鍑虹墖浠诲姟
+    @Select("select * from down_glass_task where task_type='2' and task_stauts='2' and end_cell=#{EndCell} limit 1")
+    GlassInfo SelectLastOutCacheInfo(String EndCell);
+
+    // 淇敼绗煎瓙鍐呬俊鎭�
+    @Update("update")
+    Integer UpdateCache(@Param("id") Integer id, @Param("order_id") String order_id);
+
+    // 娣诲姞涓嬬墖浠诲姟
+    @Insert("INSERT into down_glass_task VALUES(#{id},#{start},#{end},#{type},0,)")
+    Integer insertCacheTask(String id, String start, String end, String type,double width,double height,Integer filmsId,double thickness,String flowCardId);
+
+
+}
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownGlassCacheLogic.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownGlassCacheLogic.java
new file mode 100644
index 0000000..67de8c9
--- /dev/null
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/DownGlassCacheLogic.java
@@ -0,0 +1,234 @@
+package com.mes.downstorage.service;
+
+import com.mes.common.PLCAutoMes;
+import com.mes.common.S7control;
+import com.mes.device.PlcParameterObject;
+import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.mapper.SelectInfo;
+import com.mes.uppattenusage.entity.GlassInfo;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Data
+@Service
+public class DownGlassCacheLogic {
+    @Autowired
+    private SelectInfo selectInfo;
+
+    /**
+     * @param Number
+     *    //璇嗗埆閫昏緫    涓嶄氦浜�
+     */
+
+    public void identify(String Number){
+        //鏌ヨ浠诲姟
+        PlcParameterObject plcmes= PLCAutoMes.PlcMesObject;
+        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+        String s=S7control.getinstance().ReadWord("DB14.26", 1).get(0)+"";
+        boolean isexist=isExist(Number);
+        if (isexist) {
+            //瀛樺湪閫昏緫    1.娣诲姞淇℃伅 2.鍥炲PLC瀛樺湪
+            //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+        }else {
+            //涓嶅瓨鍦ㄩ�昏緫  1.鍥炲PLC涓嶅瓨鍦�
+            //S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 2);
+        }
+    }
+    //涓嬬墖鍓嶇悊鐗�
+    public static final String RESULT_IN = "1";
+    public static final String RESULT_OUT = "2";
+    public static final String RESULT_IN_OUT = "3";
+
+    public void process() {
+        String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + "";
+        String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + "";
+
+        // 杩涚墖璇锋眰
+        if (RESULT_IN.equals(result)) {
+            processInto(number);
+        }
+        // 鍑虹墖璇锋眰
+        else if (RESULT_OUT.equals(result)) {
+            processOut();
+        }
+        // 杩涘嚭鐗囪姹�
+        else if (RESULT_IN_OUT.equals(result)) {
+            // 鍏堝嚭鍚庤繘
+            if (!processOut()) {
+                processInto(number);
+            }
+        }
+    }
+
+
+    /**
+     * @param Number
+     * @return
+     *   //涓嬬墖鍓嶇悊鐗� 杩�
+     */
+
+    public boolean processInto(String Number){
+        //鎸塱d鏌ヨ鐜荤拑淇℃伅琛ㄩ噷鐨勭幓鐠�
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        //瀛樺湪姝ょ幓鐠冪紪鍙�
+        if(GlassInfo!=null){
+            //鍚岄挗鍖栫増鍥惧唴鐨勬爡鏍煎彿
+            List<DownStorageCageDetails> list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getTemperingFeedSequence(),GlassInfo.getWidth());
+            //绌烘爡鏍煎彿
+            if (list.size()==0) {
+                list=selectInfo.SelectCacheLeisure();
+            }
+            //灏忎簬姝ょ幓鐠冮挗鍖栫増鍥惧簭鍙风殑鏍呮牸鍙�
+            if(list.size()==0){
+                list=selectInfo.SelectIsExistIntoCache(GlassInfo.getTemperingLayoutId(),GlassInfo.getWidth());
+            }
+            if(list.size()>0){
+                //瀛樺湪绌烘牸  
+                //1.鐢熸垚浠诲姟锛�  璧峰浣嶇疆0   缁撴潫浣嶇疆this.slot  浠诲姟绫诲瀷 1   锛堣繘鐗囦换鍔★級
+                //2.鍥炲 1杩涚墖
+                DownStorageCageDetails item=list.get(0);
+                selectInfo.insertCacheTask(GlassInfo.getId()+"","0",item.getSlot()+"","1",GlassInfo.getWidth(),GlassInfo.getHeight(),GlassInfo.getFilmsid(),GlassInfo.getThickness(),GlassInfo.getFlowcardId());
+                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1);
+                return true;
+            }
+            
+        }else{
+            // ID缂栧彿涓嶅瓨鍦�   涓嶅鐞�/鍥炲PLC  杩涜鎶ヨ鎻愮ず
+        }
+        //杩斿洖缁撴灉
+        return false;
+    }
+    //鐞嗙墖 鍑�
+    public boolean processOut(){
+        //鏌ヨ浠诲姟
+        String G06=S7control.getinstance().ReadWord("DB14.56", 1).get(0)+"";
+        String G11=S7control.getinstance().ReadWord("DB14.58", 1).get(0)+"";
+        String G13=S7control.getinstance().ReadWord("DB14.58", 1).get(0)+"";
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        List<DownStorageCageDetails> list=selectInfo.SelectCacheOut();
+        //鍏朵粬鎯呭喌鏉′欢 濡傦細鍚庣画璁惧鏁呴殰绂佹鐞嗙墖鍑虹墖 绛�
+        boolean isOut=true;
+        if (list.size()>0&&isOut) {
+            DownStorageCageDetails item=list.get(0);
+           //
+            if(G06=="0"&&G11=="1"){
+                //鍑哄埌  G06
+
+                selectInfo.insertCacheTask(item.getGlassId()+"","0","06","2",item.getWidth(),item.getHeight(),item.getFilmsid(),item.getThickness(),item.getFlowCardId());
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+                return true;
+            }else if(G06=="1"&&G11=="0"){
+                //鍑哄埌  G11
+
+                selectInfo.insertCacheTask(item.getGlassId()+"","0","11","2",item.getWidth(),item.getHeight(),item.getFilmsid(),item.getThickness(),item.getFlowCardId());
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+                return true;
+            }else if(G06=="0"&&G11=="0"){
+                //閮藉厑璁�    G04/G05  涓婁竴鐗囨槸鍚﹀拰姝ょ墖鐜荤拑灏哄灏哄鐩稿悓
+                String endcell="06";
+                String SendEndcell="1";
+                boolean If_=false;
+                GlassInfo glassInfo06= selectInfo.SelectLastOutCacheInfo("06");
+                GlassInfo glassInfo11= selectInfo.SelectLastOutCacheInfo("11");
+                GlassInfo glassInfo13= selectInfo.SelectLastOutCacheInfo("13");
+                if(glassInfo06!=null&&glassInfo11.getWidth()==item.getWidth()&&glassInfo06.getHeight()==item.getHeight()){
+                    endcell="11";
+                    SendEndcell="2";
+                }else if(item.getHeight()>=3440&&item.getWidth()>=1440){
+                    //鍏朵粬鏉′欢浜哄伐澶勭悊
+
+                }
+
+                selectInfo.insertCacheTask(item.getGlassId()+"","0",endcell,"2",item.getWidth(),item.getHeight(),item.getFilmsid(),item.getThickness(),item.getFlowCardId());
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+                S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+                return true;
+            }
+        }
+        //杩斿洖缁撴灉
+        return false;
+    }
+
+    /**
+     * @param Number
+     *  //纾ㄨ竟   涓嶄氦浜�  鐞嗙墖鍜岀(杈规満鑷繁浜や簰
+     */
+
+    public void processMb(String Number){
+          //鎸塱d鏌ヨ鐜荤拑淇℃伅琛ㄩ噷鐨勭幓鐠�
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        PlcParameterObject plcmes=PLCAutoMes.PlcMesObject;
+        if(GlassInfo!=null){
+            //鍙戦�佷换鍔�   ID   闀� 瀹� 鍘� 鍊掕 宸ヨ壓鍔熻兘绛�
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.22").getAddress(),"N10000");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.24").getAddress(), "1000");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.26").getAddress(),"800");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(),"60");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.30").getAddress(), "2");  
+            S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");   
+        }
+        //杩斿洖缁撴灉
+    }
+
+
+    /**
+     * @param Number
+     * @return
+     * 鏌ヨ娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹�
+     */
+    public boolean selectMessageId(String Number){
+        //鏌ヨ鏄惁瀛樺湪
+
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        if(GlassInfo==null){
+            //杩斿洖 涓嶅瓨鍦�
+            return false;
+
+        }
+        //杩斿洖 瀛樺湪
+        return true;
+    }
+
+    /**
+     * @param Number
+     * @return
+     *   鍒犻櫎娑堟伅闃熷垪閲屾鐜荤拑ID鐨勬暟鎹�
+     */
+
+    public boolean deleteMessageId(String Number){
+        //鏌ヨ鏄惁瀛樺湪
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        if(GlassInfo==null){
+            //杩斿洖 涓嶅瓨鍦�
+            return false;
+        }
+        //杩斿洖 瀛樺湪
+        return true;
+    }
+
+
+
+    /**
+     * @param Number
+     * @return
+     *   //鏄惁瀛樺湪姝ょ紪鍙风幓鐠�
+     */
+    public boolean isExist(String Number){
+        //鏌ヨ鏄惁瀛樺湪
+        GlassInfo GlassInfo=selectInfo.SelectGlassId(Number);
+        if(GlassInfo==null){
+            //杩斿洖 涓嶅瓨鍦�
+            return false;
+        }
+        //杩斿洖 瀛樺湪
+        return true;
+    }
+    
+}
+
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
index b7cd761..b4889ac 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/service/DownGlassLogic.java
@@ -64,10 +64,11 @@
         downGlassInfoMapper = WebSocketServer.applicationContext.getBean(DownGlassInfoMapper.class);
         List<DownGlassInfo> taskdownGlassInf = downGlassInfoMapper.selectunloadingtaskstate();
 //
+
+
         if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) {
 
 //
-
 
             for (DownGlassInfo downGlassInfo : taskdownGlassInf) {
                 // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬�
@@ -88,6 +89,7 @@
                 // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃
                 downGlassInfoMapper.insert(newdownGlassInfo);
                 //鎻掑叆鏁版嵁鍒版満姊版墜浠诲姟琛�
+
                 downWorkstationMapper.insertdownWorkstationtask(newdownGlassInfo);
                 //鏇存柊涓嬬墖浠诲姟琛ㄧ姸鎬佷负0
                 downGlassInfoMapper.updateTaskStateToZero(downGlassInfo.getFlowCardId());

--
Gitblit v1.8.0