springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -228,7 +228,12 @@
    // 增加/减少理片笼玻璃数
    public Result UpdateStroageCageByCell(Integer cell, Integer num) {
        if (num == 0) {
            homeMapper.DeleteStroageCageByCell(cell);
            int sumcell=albaniaMapper.SelectOutTasksum(cell);
            if(sumcell==0){
                homeMapper.DeleteStroageCageByCell(cell);
            }
        }else if(num==-1){
            homeMapper.updateStroageCageByCell(cell, num);
        } else {
            homeMapper.updateStroageCageByCell(cell, num);
            homeMapper.UpdateStroageCageWidthByCell(cell);// 修改笼子宽度
@@ -237,6 +242,22 @@
        map.put("message", "200");
        return Result.success(map);
    }
     // 界面增加/减少理片笼玻璃数
     public Result UpdateStroageCageByCells(Integer cell, Integer num) {
        if (num == 0) {
            int sumcell=albaniaMapper.SelectOutTasksum(cell);
            if(sumcell==0){
                homeMapper.DeleteStroageCageByCell(cell);
            }
        } else {
            homeMapper.updateStroageCageByCell(cell, num);
            homeMapper.UpdateStroageCageWidthByCell(cell);// 修改笼子宽度
        }
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
    }
    // 指定格子出片
    public Result AddOutGlass(Integer cell, Integer glasstype) {
@@ -304,6 +325,13 @@
    // 手动结束任务
    public Result TerminateTask(int id) {
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
          // 清除任务地址
          for (int i = 1; i < 7; i++) {
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), (short) 0);// 清除任务地址
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), (short) 0);// 清除任务地址
          }
          System.out.println("结束任务地址");
        for (int i = 1; i < 7; i++) {
            int taskcont = albaniaMapper.SelectTaskcount(); // 正在进行的任务数量
            System.out.println("任务数量:" + taskcont);
@@ -333,6 +361,13 @@
    // 手动完成任务
    public Result FinishTask() {
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
          // 清除任务地址
          for (int i = 1; i < 7; i++) {
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), (short) 0);// 清除任务地址
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), (short) 0);// 清除任务地址
          }
          System.out.println("结束任务地址");
        for (int i = 1; i < 7; i++) {
            int taskcont = albaniaMapper.SelectTaskcount(); // 正在进行的任务数量
            System.out.println("任务数量:" + taskcont);
@@ -356,6 +391,7 @@
                // storageTask.geTier());// 添加出片完成数量
            }
        }
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
@@ -395,8 +431,8 @@
    }
    // 查询玻璃信息
    public Result SelectGlassInfo(String width, String height, String thickness, String films,String tier) {
        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films,tier);
    public Result SelectGlassInfo(String width, String height, String thickness, String films, String tier) {
        List<GlassInfo> glassInfoList = homeMapper.SelectGlassInfo(width, height, thickness, films, tier);
        Map<String, Object> map = new HashMap<>();
        map.put("StorageCageAddInfo", glassInfoList);
        return Result.success(map);
@@ -405,7 +441,7 @@
    // 添加玻璃到格子内
    public Result StorageCageAddGlass(String cell, GlassInfo glassInfo) {
        homeMapper.StorageCageAddGlass(cell, glassInfo);
        UpdateStroageCageByCell(Integer.parseInt(cell), 1);
        UpdateStroageCageByCells(Integer.parseInt(cell), 1);
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        return Result.success(map);
@@ -449,19 +485,21 @@
        map.put("message", "200");
        return Result.success(map);
    }
    //扫码匹配成功
    public int ScanMatch(String Order, Integer Mateid,Integer tier) {
        GlassInfo glass=homeMapper.SelectCodeGlass(Order,Mateid,tier);
        System.out.println("glass:"+glass);
        System.out.println("order"+Order+"mateid"+Mateid+"tier"+tier);
        if(glass==null){
    // 扫码匹配成功
    public int ScanMatch(String Order, Integer Mateid, Integer tier) {
        GlassInfo glass = homeMapper.SelectCodeGlass(Order, Mateid, tier);
        System.out.println("glass:" + glass);
        System.out.println("order" + Order + "mateid" + Mateid + "tier" + tier);
        if (glass == null) {
            return 0;
        }else{
        int cont= QueueMapper.insertQueueCode(glass.getFlowcard(),glass.getGlassid(),glass.getMateid(),glass.getGlasstype(),glass.getWidth(),glass.getHeight(),glass.getThickness());
        glassInfoMapper.updatemeasurenumber(glass.getId());
        return cont;
     }
        } else {
            int cont = QueueMapper.insertQueueCode(glass.getFlowcard(), glass.getGlassid(), glass.getMateid(),
                    glass.getGlasstype(), glass.getWidth(), glass.getHeight(), glass.getThickness());
            glassInfoMapper.updatemeasurenumber(glass.getId());
            return cont;
        }
    }
    // 人工匹配修改测量信息
@@ -470,24 +508,26 @@
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        Map<String, Object> map = new HashMap<>();
        QueueMapper.DeleteQueue();
        String mestoplc=plcmes.getPlcParameter("MESToGaStatus").getValue();
        String A02Plc=plcmes.getPlcParameter("GaToMES").getValue();
        System.out.println("人工匹配mestoplc:"+mestoplc);
        String mestoplc = plcmes.getPlcParameter("MESToGaStatus").getValue();
        String A02Plc = plcmes.getPlcParameter("GaToMES").getValue();
        System.out.println("人工匹配mestoplc:" + mestoplc);
        // int count = homeMapper.SelectQueue();
        if (("0".equals(mestoplc)&&"0".equals(A02Plc))||("1".equals(A02Plc)&&"4".equals(mestoplc))) {
            // homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
            //         glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
        if (("0".equals(mestoplc) && "0".equals(A02Plc)) || ("1".equals(A02Plc) && "4".equals(mestoplc))) {
            // homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(),
            // glassInfo.getHeight(),
            // glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(),
            // glassInfo.getMateid());
            homeMapper.AddQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
                    glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
            glassInfoMapper.updatemeasurenumber(glassInfo.getId());
           if("0".equals(mestoplc)){
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 1);
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
            System.out.println("提前匹配");
           }else{
            System.out.println("测量匹配");
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
           }
            if ("0".equals(mestoplc)) {
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 1);
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
                System.out.println("提前匹配");
            } else {
                System.out.println("测量匹配");
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
            }
            map.put("message", "200");
        } else {
            map.put("message", "300");
@@ -503,14 +543,35 @@
    public Result ManualTake(String glassInfo) {
        // 读取DB105区文件
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 移除
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
        // 删除数据
        QueueMapper.DeleteErrorQueue();
        // plcmes.getPlcParameter("GaToMES").setValue("3");
        String A02Plc = plcmes.getPlcParameter("GaToMES").getValue();
        String A01Plc = plcmes.getPlcParameter("A01ToMES").getValue();
        String A02Mes = plcmes.getPlcParameter("MESToGaStatus").getValue();
        Map<String, Object> map = new HashMap<>();
        map.put("message", "200");
        // 移除
        if ("1".equals(A02Plc)||"2".equals(A02Plc)||"1".equals(A02Mes)) {
            Queue queue = QueueMapper.selectLastQueue3();
            if (queue != null) {
                // 减少匹配次数
                glassInfoMapper.updateGlassNumber(queue.getglasstype());
            }
            // 删除队列
            QueueMapper.DeletefromQueue();
            if("0".equals(A02Plc)){
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 0);
            }else{
                S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 3);
            }
            System.out.println("人工拿走A02Plc:" + A02Plc);
            map.put("message", "200");
        }else{
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToA01").getAddress(), (short) 3);
            QueueMapper.DeletefromQueue();
            map.put("message", "300");
            System.out.println("人工拿走A01Plc:" + A01Plc);
        }
        // plcmes.getPlcParameter("GaToMES").setValue("3");
        return Result.success(map);
    }
@@ -533,8 +594,7 @@
    // 删除出片队列
    public Result DeleteOutTask(Integer id) {
        int cell=homeMapper.SelectOutTaskId(id);
        int cell = homeMapper.SelectOutTaskId(id);
        UpdateStroageCageByCell(cell, 1);// 玻璃数量+1
        homeMapper.DeleteOutTask(id);
        Map<String, Object> map = new HashMap<>();
@@ -544,12 +604,17 @@
    // 删除工程
    public Result deleteTasks(Map num) {
        String flowcard = (String) num.get("num");
        int aa = homeMapper.deleteFlowcard(flowcard.trim());
        homeMapper.deleteGlassinfo(flowcard.trim());
        System.out.println(flowcard);
        Map<String, Object> map = new HashMap<>();
        map.put("message", flowcard.trim());
        String flowcard = (String) num.get("num");
        int cagenum=homeMapper.selectflowcardCage(flowcard);
        if(cagenum==0){
        int aa = homeMapper.deleteFlowcard(flowcard.trim());
        map.put("message","200");
        homeMapper.deleteGlassinfo(flowcard.trim());
        }else{
        map.put("message", "300");
        }
        System.out.println("删除工程"+flowcard);
        return Result.success(map);
    }
@@ -567,8 +632,8 @@
        PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
        // 重新测量
        String PlcRequest = plcmes.getPlcParameter("GaToMES").getValue();// plc请求字
        if("1".equals(PlcRequest)){
        S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
        if ("1".equals(PlcRequest)) {
            S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 2);
        }
        // 删除数据
        QueueMapper.DeleteErrorQueue();
@@ -628,7 +693,7 @@
        for (Map map : RemoveErrorData) {
            String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
                    + map.get("thickness").toString() + "_" + map.get("films").toString() + "_"
                    + map.get("order").toString() + "_" + map.get("matching").toString()+ map.get("tier").toString();
                    + map.get("order").toString() + "_" + map.get("matching").toString() + map.get("tier").toString();
            String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
            String value = TypeData.get(key);