wuyouming666
2024-01-05 e67b38c4ed42d78a0ab8235f1adcb7eefc011631
Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

# Conflicts:
# CanadaMes-ui/src/layout/index.vue
# springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
8个文件已修改
426 ■■■■■ 已修改文件
CanadaMes-ui/src/layout/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/views/home/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java 293 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/entity/north_glass_buffer1.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CanadaMes-ui/src/layout/index.vue
@@ -274,6 +274,7 @@
            }
            //复位倒计时
            console.log(obj.countdown);
            if (obj.countdown != null) {
              if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
                this.CountDown();
CanadaMes-ui/src/views/home/index.vue
@@ -929,7 +929,7 @@
                    if (obj.D01RequestState != null) {
                        this.D01RequestState = obj.D01RequestState[0];
                    }
                    // this.D01RequestState=true;
                    //是否允许出片
                    this.isAllowQueue = obj.isAllowQueue[0];
@@ -1779,8 +1779,8 @@
                    } else {
                        if (count > 0) {
                            this.PromptSize = 500;
                            this.CountDowns = count;
                            count--;
                            this.CountDowns = count;
                            this.dialogFormCountDown = true;
                        }
                        else {
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -18,7 +18,6 @@
import com.example.springboot.entity.alarmmg;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.SpianMapper;
import com.example.springboot.service.StorageCageService;
public class Plchome extends Thread {
@@ -39,10 +38,7 @@
    private Configuration config;
    private  StorageCageService storageCageService;
    private StorageCageService storageCageService;
    public Plchome() throws IOException {
        config = new Configuration("config.properties");
@@ -112,96 +108,109 @@
            jsonObject.append("isAllowReordering", Plchome.isAllowReordering);
            // 是否需要人工确认上片玻璃
            jsonObject.append("isConfirm", isConfirm);
            // 读去Plc进片车与出片车位置W
            List<String> addressList = new ArrayList<String>();
            addressList.add("DB106.12");
            addressList.add("DB106.0");
            List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
            if (paramlist != null) {
                jsonObject.append("params", paramlist);
            }
            // 获取进片车状态
            List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
                    1);// 获取进片车状态
            boolean exist1 = datas1ListState.contains((short) 0);
            jsonObject.append("zhuangtai", exist1);
            // 获取进片玻璃信息
            List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
            if (inglassInfo != null) {
                if (inglassInfo.size() > 0)
                    jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
            }
            // 获取铝框idDB106.DBW64
            String frameno = spianService.queGlassid("DB103.270", 14).toString();
            // String frameno="X12345611002GV";
            if (!frameno.equals(Plchome.FrameNo)) {
                Plchome.FrameNo = frameno;
                try {
                    north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
            String framenos="X21763329601FB";
                if (!framenos.equals(Plchome.FrameNo)) {
                    Plchome.FrameNo = framenos;
                    try {
                        north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
            }
            if (S7control.getinstance().CheckConnected() == true) {
                // 读去Plc进片车与出片车位置W
                List<String> addressList = new ArrayList<String>();
                addressList.add("DB106.12");
                addressList.add("DB106.0");
                List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
                if (paramlist != null) {
                    jsonObject.append("params", paramlist);
                }
                // 获取进片车状态
                List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
                        1);// 获取进片车状态
                if (datas1ListState != null) {
                    boolean exist1 = datas1ListState.contains((short) 0);
                    jsonObject.append("zhuangtai", exist1);
                }
            // 获取进片请求状态
            List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
            boolean D01RequestState = D01Request.contains((short) 1);
            // boolean D01RequestState =true;
            jsonObject.append("D01RequestState", D01RequestState);
            // 复位倒计时
            // 地址104.9.6
            List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
            for (Boolean countdowns : countdown) {
                jsonObject.append("countdown", countdowns);
            }
            // jsonObject.append("countdown", true);
            // 复位完成信号
            List<Boolean> resets = S7control.getinstance().ReadBits("DB103.284", 1);
            for (Boolean reset : resets) {
                jsonObject.append("reset", reset);
            }
            // 是否急停
            List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
            for (Boolean emergencystop : emergencystops) {
                jsonObject.append("emergencystop", emergencystop);
            }
            //终止继续按钮
            List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
            List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
//            Boolean[] value4 = { false, false};
//    List<Boolean> anniuread = new ArrayList<>(Arrays.asList(value4));
//            Boolean[] value5 = { true};
//            List<Boolean> resets = new ArrayList<>(Arrays.asList(value5));
            short[] anniuparams = new short[anniuread.size()];
            for (int i = 0; i < anniuread.size(); i++) {
                boolean value = anniuread.get(i);
                anniuparams[i] = value ? (short) 1 : (short) 0;
            }
            short[] resets2 = new short[resets.size()];
            for (int i = 0; i < resets.size(); i++) {
                boolean value = resets.get(i);
                resets2[i] = value ? (short) 1 : (short) 0;
            }
           System.out.println(resets);
            for (short number : resets2) {
                if (number == 1) {
                    System.out.println(resets);
                    jsonObject.append("Abort", anniuparams);
                // 获取进片玻璃信息
                List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
                if (inglassInfo != null) {
                    if (inglassInfo.size() > 0) {
                        jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
                    }
                }
            }
                // 获取铝框idDB106.DBW64,添加到出片队列
                String frameno = spianService.queGlassid("DB103.270", 14).toString();
                // String frameno="X12345611002GV";
                frameno="X21763329601FB";
                if (!frameno.equals(Plchome.FrameNo)) {
                    Plchome.FrameNo = frameno;
                    try {
                        north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
                    } catch (SQLException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }
                // 获取进片请求状态
                List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
                boolean D01RequestState = D01Request.contains((short) 1);
                // boolean D01RequestState =true;
                jsonObject.append("D01RequestState", D01RequestState);
                // 复位倒计时
                // 地址104.9.6
                List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
                for (Boolean countdowns : countdown) {
                    jsonObject.append("countdown", countdowns);
                }
                // jsonObject.append("countdown", true);
                // 复位完成信号ss
                List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
                for (Boolean reset : resetss) {
                    jsonObject.append("reset", reset);
                }
                // 是否急停
                List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
                for (Boolean emergencystop : emergencystops) {
                    jsonObject.append("emergencystop", emergencystop);
                }
                // 终止继续按钮
                List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
                List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
                // Boolean[] value4 = { false, false};
                // List<Boolean> anniuread = new ArrayList<>(Arrays.asList(value4));
                Boolean[] value5 = { true };
                List<Boolean> resets = new ArrayList<>(Arrays.asList(value5));
                short[] anniuparams = new short[anniuread.size()];
                for (int i = 0; i < anniuread.size(); i++) {
                    boolean value = anniuread.get(i);
                    anniuparams[i] = value ? (short) 1 : (short) 0;
                }
                short[] resets2 = new short[resets.size()];
                for (int i = 0; i < resets.size(); i++) {
                    boolean value = resets.get(i);
                    resets2[i] = value ? (short) 1 : (short) 0;
                }
                for (short number : resets2) {
                    if (number == 1) {
                        jsonObject.append("Abort", anniuparams);
                    }
                }
            }
            // 铝框线交互
@@ -245,71 +254,69 @@
                    if (webserver != null) {
                        List<String> messages = webserver.getMessages();
                        if (!messages.isEmpty()) {
                            // 将最后一个消息转换为整数类型的列表
                            String lastMessage = messages.get(messages.size() - 1);
//        System.out.println("lastMessage:" + lastMessage);
                            JSONArray messageArray = new JSONArray(lastMessage);
                            // String lastMessage = messages.get(messages.size() - 1);
                            // System.out.println("lastMessage:" + lastMessage);
                            // JSONArray messageArray = new JSONArray(lastMessage);
                            //
                            // try {
                            //     // 检查索引是否有效
                            //     if (messageArray.getJSONArray(0).size() > 0) {
                            //         // 获取消息数组
                            //         JSONArray jsonArray = messageArray.getJSONArray(0);
                            //         // 创建一个布尔值列表
                            //         List<Boolean> sValue = new ArrayList<>();
                            //         // 遍历消息数组
                            //         for (int i = 0; i < jsonArray.size(); i++) {
                            //             // 获取消息数组中的值
                            //             Object value = jsonArray.get(i);
                            //             // 检查值是否有效
                            //             if (value != null && !value.toString().equals("null")) {
                            //                 try {
                            //                     // 移除非数字和数字字符
                            //                     String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
                            //                     // 解析为布尔值
                            //                     boolean val = "1".equals(cleanedValue.trim());
                            //                     // 将布尔值添加到布尔值列表中
                            //                     sValue.add(val);
                            //                     System.out.println(
                            //                             "messageValue: " + Arrays.asList(val) + " added to the list");
                            //                 } catch (NumberFormatException e) {
                            //                     // 如果无法解析为 boolean 类型,则忽略该部分
                            //                     System.err.println("Could not parse value: " + value);
                            //                 }
                            //             }
                            //         }
                            //         // 终止进片任务
                            //         boolean Value1 = sValue.get(0);
                            //         boolean Value2 = sValue.get(1);
                            try {
                                // 检查索引是否有效
                                if (messageArray.getJSONArray(0).size() > 0) {
                                    // 获取消息数组
                                    JSONArray jsonArray = messageArray.getJSONArray(0);
                                    // 创建一个布尔值列表
                                    List<Boolean> sValue = new ArrayList<>();
                                    // 遍历消息数组
                                    for (int i = 0; i < jsonArray.size(); i++) {
                                        // 获取消息数组中的值
                                        Object value = jsonArray.get(i);
                                        // 检查值是否有效
                                        if (value != null && !value.toString().equals("null")) {
                                            try {
                                                // 移除非数字和数字字符
                                                String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
                                                // 解析为布尔值
                                                boolean val = "1".equals(cleanedValue.trim());
                                                // 将布尔值添加到布尔值列表中
                                                sValue.add(val);
                                                System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
                            //         if (Value1) {
                            //             storageCageService.EndTask(0);
                            //         }
                            //         if (Value2) {
                            //             storageCageService.EndTask(1);
                                            } catch (NumberFormatException e) {
                                                // 如果无法解析为 boolean 类型,则忽略该部分
                                                System.err.println("Could not parse value: " + value);
                                            }
                                        }
                                    }
// 终止进片任务
                                    boolean Value1 = sValue.get(0);
                                    boolean Value2 = sValue.get(1);
                            //         }
                            //         // 检查布尔值列表是否为空
                            //         if (!sValue.isEmpty()) {
                                    if (Value1) {
                                        storageCageService.EndTask(0);
                                    }
                                    if (Value2) {
                                        storageCageService.EndTask(1);
                                    }
                                    // 检查布尔值列表是否为空
                                    if (!sValue.isEmpty()) {
                                        // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
                                        S7control.getinstance().WriteBit(niuanaddressList3, sValue);
                                        System.out.println("Values " + sValue + " written to PLC at address " + niuanaddressList3);
                                    }
                                }
                            } catch (Exception e) {
                                System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
                            }
                            //             // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
                            //             S7control.getinstance().WriteBit(niuanaddressList3, sValue);
                            //             System.out.println(
                            //                     "Values " + sValue + " written to PLC at address " + niuanaddressList3);
                            //         }
                            //     }
                            // } catch (Exception e) {
                            //     System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
                            // }
                            webserver.clearMessages();
                        }
                    }
springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -17,24 +17,25 @@
        //
        System.out.println("启动完成");
 //new PlcHold().start();
        // new PlcHold().start();
        new Plchome().start();
           new Plcalarm().start();
        // new Plcalarm().start();
           new Plcsign().start();
        // new Plcsign().start();
        // new Plcstate().start();
        // new PlcPositioning1().start();
           new Plcstate().start();
           new PlcPositioning1().start();
        // new PlcParameter2().start();
          new PlcParameter2().start();
        // new PLCAutomaticParameterSetting().start();
           new PLCAutomaticParameterSetting().start();
           new PlcManualonePosition().start();
           new PlcManualonePosition2().start();
           new PlcServoManualone().start();
           new PLCManualJog().start();
        // new PlcManualonePosition().start();
        // new PlcManualonePosition2().start();
        // new PlcServoManualone().start();
        // new PLCManualJog().start();
        // new Plclog().start();
    }
}
springboot-vue3/src/main/java/com/example/springboot/entity/north_glass_buffer1.java
@@ -1,41 +1,46 @@
package com.example.springboot.entity;
import java.util.Comparator;
//客户玻璃信息表
public class north_glass_buffer1 {
    private Integer id; //自增id
    private String ordernumber;//订单id
    private String listnumber;//集合id
    private String boxnumber;//箱子id
    private String barcode;//玻璃id
    private double glasslength;//玻璃宽
    private double glassheight;//玻璃高
    private double glasslengthmm;//玻璃宽mm
    private double glassheightmm;//玻璃高mm
    private Integer id; // 自增id
    private String ordernumber;// 订单id
    private String listnumber;// 集合id
    private String boxnumber;// 箱子id
    private String barcode;// 玻璃id
    private double glasslength;// 玻璃宽
    private double glassheight;// 玻璃高
    private double glasslengthmm;// 玻璃宽mm
    private double glassheightmm;// 玻璃高mm
    private String glassoutside;//
    private String glassinside;//
    private String glassbetween;//
    private String itemtype;//
    private String slotnumber;//格子
    private String slotnumber;// 格子
    private String datemodified;//
    private String datecreated;//
    private String FrameBarcode;//铝框id
    private String FrameBarcode;// 铝框id
    private StorageCage storageCage;
    public StorageCage storageCage;
    public void setstorageCage(StorageCage storageCage) {
        this.storageCage = storageCage;
    }
    public StorageCage getstorageCage() {
        return storageCage;
    }
    private Out_slice out_slice;
    public void setOut_slice(Out_slice out_slice) {
        this.out_slice = out_slice;
    }
    public Out_slice getOut_slice() {
        return out_slice;
    }
@@ -51,15 +56,19 @@
    public Integer getId() {
        return id;
    }
    public String getordernumber() {
        return ordernumber;
    }
    public void setordernumber(String ordernumber) {
        this.ordernumber = ordernumber;
    }
    public String getlistnumber() {
        return listnumber;
    }
    public void setlistnumber(String listnumber) {
        this.listnumber = listnumber;
    }
@@ -67,22 +76,23 @@
    public String getboxnumber() {
        return boxnumber;
    }
    public void setboxnumber(String boxnumber) {
        this.boxnumber = boxnumber;
    }
    public String getbarcode() {
        return barcode;
    }
    public void setbarcode(String barcode) {
        this.barcode = barcode;
    }
    public Double getglasslength() {
        return glasslength;
    }
    public void setglasslength(Double glasslength) {
        this.glasslength = glasslength;
    }
@@ -90,6 +100,7 @@
    public Double getglassheight() {
        return glassheight;
    }
    public void setglassheight(Double glassheight) {
        this.glassheight = glassheight;
    }
@@ -97,6 +108,7 @@
    public Double getglasslengthmm() {
        return glasslengthmm;
    }
    public void setglasslengthmm(Double glasslengthmm) {
        this.glasslengthmm = glasslengthmm;
    }
@@ -104,6 +116,7 @@
    public Double getglassheightmm() {
        return glassheightmm;
    }
    public void setglassheightmm(Double glassheightmm) {
        this.glassheightmm = glassheightmm;
    }
@@ -111,33 +124,41 @@
    public String getitemtype() {
        return itemtype;
    }
    public void setitemtype(String itemtype) {
        this.itemtype = itemtype;
    }
    public String getslotnumber() {
        return slotnumber;
    }
    public void setslotnumber(String slotnumber) {
        this.slotnumber = slotnumber;
    }
    public String getdatemodified() {
        return datemodified;
    }
    public void setdatemodified(String datemodified) {
        this.datemodified = datemodified;
    }
    public String getdatecreated() {
        return datecreated;
    }
    public void setdatecreated(String datecreated) {
        this.datecreated = datecreated;
    }
    public String getFrameBarcode() {
        return FrameBarcode;
    }
    public void setFrameBarcode(String FrameBarcode) {
        this.FrameBarcode = FrameBarcode;
    }
}
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -16,7 +16,7 @@
    @Select("select COUNT(if(a.state1=0,cell,0))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a  GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(a.cage<6,a.cage>0 and a.cage<6,a.cage>5) and disabled=0 GROUP BY cage ORDER BY cell desc LIMIT 1")
    int selectCage(int cage1);
    // 获取订单号排序的空订单笼子
    @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage  where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c  on a.cage=c.cage where (order_id=#{orderids} or ''='') GROUP BY cage,cell HAVING state1=0 ORDER BY FrameBarcode=#{Fbarcode} desc,shu desc,shu2,cage asc; ")
    @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage  where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c  on a.cage=c.cage where (order_id=#{orderids} or ''='') GROUP BY cage,cell HAVING state1=0 ORDER BY (FrameBarcode=#{Fbarcode} or ''='') desc,shu desc,shu2,cage asc; ")
    List<StorageCage> selectAll(String orderids,String Fbarcode);
    // 获取判断该格子是否需要把外片推入内片位置
@@ -75,8 +75,7 @@
    void UpdataAddCage(String orderid, String glassid, double width, int cage, int cell, int id, int state);
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.FrameBarcode} where id=#{id};")
    void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,
            int state);
    void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,int state);
    // 修改笼子信息(多片进片)
    @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where cage=#{cage} and cell=#{cell} and tier=#{tier};")
@@ -95,7 +94,7 @@
    void UpdataOutCage1(double width, int cage, int cell);
    // 调拨更换笼子信息
    @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=2,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid where a.id=#{id1}")
    @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid where a.id=#{id1}")
    void UpdateDBCage(int id1, int cage, int cell, int tier);
    // @Insert("insert into user(name, date, address, user_no) values (#{name},
springboot-vue3/src/main/java/com/example/springboot/service/North_Glass_Buffer1Service.java
@@ -1,13 +1,17 @@
package com.example.springboot.service;
import java.sql.SQLException;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.north_glass_buffer1;
import com.example.springboot.mapper.HomeMapper;
import java.util.Collections;
@Service
public class North_Glass_Buffer1Service {
@@ -17,6 +21,33 @@
    @Autowired
    private JdbcConnections jdbcConnections;
    class north_glass_buffer1Comparator implements Comparator<north_glass_buffer1> {
        @Override
        public int compare(north_glass_buffer1 n1, north_glass_buffer1 n2) {//对查询到的铝框对应的玻璃数据进行排序,将离出片位置近的,靠近笼子出片侧的玻璃排在前面
            if (n1.getstorageCage() != null) {
                if (n2.getstorageCage() != null) {
                    int cageComparison = n2.getstorageCage().getCage().compareTo(n1.getstorageCage().getCage());
                    if (cageComparison != 0) {
                        return cageComparison;
                    } else {
                        int cellComparison = n2.getstorageCage().getCell().compareTo(n1.getstorageCage().getCell());
                        if (cellComparison != 0) {
                            return cellComparison;
                        } else {
                            return n2.getstorageCage().getTier().compareTo(n1.getstorageCage().getTier());
                        }
                    }
                } else {
                    return -1;
                }
            } else {
                return 1;
            }
        }
    }
    // 获取玻璃是否在笼子,是否在出片队列
    public List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException {
        List<north_glass_buffer1> listAluminumFrame = jdbcConnections
@@ -25,6 +56,8 @@
            north_glass_buffer1.setstorageCage(homeMapper.SelectStorageGlassById(north_glass_buffer1.getbarcode()));
            north_glass_buffer1.setOut_slice(homeMapper.SelectQueueByglassid(north_glass_buffer1.getbarcode()));
        }
        // 对嵌套类的其中一列进行排序
        Collections.sort(listAluminumFrame, new north_glass_buffer1Comparator());
        return listAluminumFrame;
    }
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -96,7 +96,7 @@
                    spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度
                    spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier);// 新增任务
                    S7control.getinstance().WriteWord(adddresslist, datas);
                    System.out.println("出片任务|" + datas);
                    System.out.println("进片任务|" + datas);
                } else {
                    // 数据库修改笼子表新增一条玻璃
@@ -105,7 +105,7 @@
                    spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度
                    spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier);// 新增任务
                    S7control.getinstance().WriteWord(adddresslist, datas);
                    System.out.println("出片任务|" + datas);
                    System.out.println("进片任务|" + datas);
                    // S7control.getinstance().WriteByte("DB105.16",glassid);
                }