wuyouming666
2023-12-25 c49dc2f40279bcc360948cea68dec69cf213b85f
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);
        }
@@ -55,7 +56,9 @@
            cage1 = storageCage2.getCage();
            // 判断该笼子号相邻最大的空格数
            int cages = spianMapper.selectCage(cage1);
            if(cages==0){
            // 如果相邻笼子没有空格,或者有正在执行的出片任务时返回400
            if (cages == 0) {
                return (400);
            }
            StorageCage cages1;
@@ -141,6 +144,8 @@
        int cages;
        int cells;
        double glasswidth = cageout.getGlassWidth();
        // 判断玻璃内外片
        if (tier == 2) {
            int state = spianMapper.selectGlassState(cage, cell);// 获取格子数量
@@ -189,7 +194,7 @@
            } else {
                // 玻璃需要调拨时,判断属于哪个半区的笼子
                if (cage < 6) {
                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6);
                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6,cell);
                    if (cagecell == null) {
                        return (300);
                    }
@@ -219,7 +224,7 @@
                    return (200); // 结束
                } else {// 笼子号大于5时
                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11);
                    StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11,cell);
                    if (cagecell == null) {
                        return (300);
                    }
@@ -239,7 +244,7 @@
                    // spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid);// 新增出片任务
                    spianMapper.UpdateDBCage(ids, cage, cell, 2);// 将原格子数据更新到新格子里
                    spianMapper.UpdataAddCage1(glasswidth, cages, cells);// 减少新格子宽度
                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度
                    spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度
                    // 传输mes数据,坐标,数据
                    System.out.println("出片任务|" + datas);
                    S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务
@@ -300,20 +305,20 @@
    // 根据玻璃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);// 更改笼子表进片状态
        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);
            }
        }
        // if (barcode != null) {
        //     int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态
        //     if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据
        //         spianMapper.DeleteQueue(barcode);
        //     }
        // }
    }
}