| | |
| | | } |
| | | double widths = glasslist.getglasslengthmm(); |
| | | String orderids = glasslist.getordernumber(); |
| | | String FrameBarcode=glasslist.getFrameBarcode(); |
| | | String FrameBarcode = glasslist.getFrameBarcode(); |
| | | |
| | | List<String> adddresslist = new ArrayList<>(); |
| | | adddresslist.add("DB105.0");// 进片车起始位置 |
| | |
| | | |
| | | // String orderid="A001"; |
| | | // 获取订单相关度最高的笼子排序 |
| | | List<StorageCage> storageCage = spianMapper.selectAll(orderids,FrameBarcode); |
| | | List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode); |
| | | if (storageCage.size() == 0) { |
| | | storageCage = spianMapper.selectAll(orderids, FrameBarcode); |
| | | } |
| | | |
| | | if (storageCage == null) { |
| | | return (400); |
| | | } |
| | |
| | | cage1 = storageCage2.getCage(); |
| | | // 判断该笼子号相邻最大的空格数 |
| | | int cages = spianMapper.selectCage(cage1); |
| | | |
| | | |
| | | // 如果相邻笼子没有空格,或者有正在执行的出片任务时返回400 |
| | | if (cages == 0) { |
| | | return (400); |
| | |
| | | int cells; |
| | | double glasswidth = cageout.getGlassWidth(); |
| | | |
| | | |
| | | // 判断玻璃内外片 |
| | | if (tier == 2) { |
| | | int state = spianMapper.selectGlassState(cage, cell);// 获取格子数量 |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) state); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 更改笼子表的玻璃状态 |
| | | |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) 1); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.OverOutSlice(glassid.toString(), 1, 0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1);// 新增任务 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态 |
| | | |
| | | |
| | | System.out.println("出片任务|" + datas); |
| | | outmesid(glassid, "DB105.34");// 派发出片ID |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | |
| | | } else { |
| | | // 玻璃需要调拨时,判断属于哪个半区的笼子 |
| | | if (cage < 6) { |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6,cell); |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 0, 6, cell); |
| | | if (cagecell == null) { |
| | | return (300); |
| | | } |
| | |
| | | return (200); // 结束 |
| | | |
| | | } else {// 笼子号大于5时 |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11,cell); |
| | | StorageCage cagecell = spianMapper.selectGlassCage(cage, glasswidth, 5, 11, cell); |
| | | if (cagecell == null) { |
| | | return (300); |
| | | } |
| | |
| | | public void overtask(String glassid) { |
| | | |
| | | spianMapper.UpdatetaskOut(glassid.toString());// 完成上一次 出片或者进片任务 |
| | | spianMapper.OverOutSlice(glassid.toString(), 2,1);// 完成出片队列任务 |
| | | 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); |
| | | // } |
| | | // int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态 |
| | | // if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据 |
| | | // spianMapper.DeleteQueue(barcode); |
| | | // } |
| | | // } |
| | | |
| | | } |