wuyouming666
2024-01-16 f49de44b69924fc3c4dfea159b13a412983b8f93
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -34,6 +34,7 @@
        }
        double widths = glasslist.getglasslengthmm();
        String orderids = glasslist.getordernumber();
        String FrameBarcode=glasslist.getFrameBarcode();
        List<String> adddresslist = new ArrayList<>();
        adddresslist.add("DB105.0");// 进片车起始位置
@@ -46,7 +47,7 @@
        // String orderid="A001";
        // 获取订单相关度最高的笼子排序
        List<StorageCage> storageCage = spianMapper.selectAll(orderids.toString());
        List<StorageCage> storageCage = spianMapper.selectAll(orderids,FrameBarcode);
        if (storageCage == null) {
            return (400);
        }
@@ -95,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 {
                    // 数据库修改笼子表新增一条玻璃
@@ -104,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);
                }
@@ -154,9 +155,9 @@
            datas.add((short) 1000);
            datas.add((short) state);
            datas.add((short) 1);
            spianMapper.OverOutSlice(glassid, 1);// 更新出片队列任务状态为进行中
            spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中
            spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度
            spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态
            spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 更改笼子表的玻璃状态
            spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, state);// 新增任务
            // int state = spianMapper.selectGlassState(cage, cell);//获取格子数量
@@ -179,11 +180,11 @@
                datas.add((short) 1000);
                datas.add((short) 1);
                datas.add((short) 1);
                spianMapper.OverOutSlice(glassid, 1);// 更新出片队列任务状态为进行中
                spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中
                spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1);// 新增任务
                spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度
                spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态
                spianMapper.OverOutSlice(glassid, 1);// 更新出片队列任务
                System.out.println("出片任务|" + datas);
                outmesid(glassid, "DB105.34");// 派发出片ID
                S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务
@@ -305,19 +306,19 @@
    // 根据玻璃id完成在进行中的任务
    public void overtask(String glassid) {
        spianMapper.UpdatetaskOut(glassid);// 完成上一次 出片或者进片任务
        spianMapper.OverOutSlice(glassid, 2);// 完成出片队列任务
        spianMapper.UpdataGlassCage(glassid, 0);// 清除出片格子玻璃信息
        spianMapper.UpdateCageOver(glassid, 0);// 更改笼子表出片状态
        spianMapper.UpdateCageadd(glassid, 1);// 更改笼子表进片状态
        String barcode = spianMapper.SelectBarcode(glassid);// 获取该玻璃的铝框id
        spianMapper.UpdateAddQueue(glassid);// 把进片的玻璃更新到出片队列中
        if (barcode != null) {
            int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态
            if (barcodeState == 2) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
                spianMapper.DeleteQueue(barcode);
            }
        }
        spianMapper.UpdatetaskOut(glassid.toString());// 完成上一次 出片或者进片任务
        spianMapper.OverOutSlice(glassid.toString(), 2,1);// 完成出片队列任务
        spianMapper.UpdataGlassCage(glassid.toString(), 0);// 清除出片格子玻璃信息
        spianMapper.UpdateCageOver(glassid.toString(), 0);// 更改笼子表出片状态
        spianMapper.UpdateCageadd(glassid.toString(), 1);// 更改笼子表进片状态
        String barcode = spianMapper.SelectBarcode(glassid.toString());// 获取该玻璃的铝框id
        spianMapper.UpdateAddQueue(glassid.toString());// 把进片的玻璃更新到出片队列中
        // if (barcode != null) {
        //     int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态
        //     if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
        //         spianMapper.DeleteQueue(barcode);
        //     }
        // }
    }
}