自动化立体仓库 - WCS系统
#
Junjie
2023-12-12 d8629bcb6b815c4149f21dadeea11367b1ed19d9
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -537,11 +537,7 @@
        try {
            for (DevpSlave devp : slaveProperties.getDevp()) {
                // 遍历拣料入库口
                for (DevpSlave.Sta pickSta : devp.getPickInSta()) {
                    if (!(pickSta.getStaNo() == 325 || pickSta.getStaNo() == 331 || pickSta.getStaNo() == 333 || pickSta.getStaNo() == 339)) {
                        continue;
                    }
                for (DevpSlave.Sta pickSta : devp.getPickInSta2()) {
                    // 获取拣料入库站信息
                    DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
                    StaProtocol staProtocol = devpThread.getStation().get(pickSta.getStaNo());
@@ -556,93 +552,8 @@
                            && (staProtocol.getWorkNo() > 0)
                            && staProtocol.isPakMk()) {
                        WrkMast wrkMast = wrkMastMapper.selectByWorkNo(staProtocol.getWorkNo().intValue());
                        if (wrkMast == null) {//找不到工作档
                            continue;
                        }
                        if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104)
                                || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) {
                            continue;
                        }
//                        //*********************同库位组校验*********************
//                        boolean flag = false;
//                        String th = "";
//                        List<String> innerLoc = Utils.getGroupInnerLoc(wrkMast.getSourceLocNo());
//                        for (String loc : innerLoc) {
//                            LocMast locMast = locMastService.selectById(loc);
//                            if (locMast == null) {
//                                continue;
//                            }
//
//                            if (!locMast.getLocSts().equals("F")) {
//                                flag = true;
//                                th = loc + "库位存在未回库任务";
//                                break;
//                            }
//                        }
//                        if (flag) {
//                            News.info(th);
//                            continue;
//                        }
//                        //*********************同库位组校验*********************
                        // 保存工作主档历史档
                        if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
                            News.info(wrkMast.getWrkNo() + "保存工作主档历史档失败");
                            continue;
                        }
                        try {
                            LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());//源库位
                            SearchLocParam param = new SearchLocParam();
                            param.setWrkNo(wrkMast.getWrkNo());
                            param.setBarcode(wrkMast.getBarcode());
                            param.setIoType(wrkMast.getIoType());
                            param.setSourceStaNo(pickSta.getStaNo());
                            param.setLocType1(locMast.getLocType1());
                            String response = new HttpHandler.Builder()
                                    .setUri(wmsUrl)
                                    .setPath("/rpc/pakin/loc/v2")
                                    .setJson(JSON.toJSONString(param))
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            Integer code = jsonObject.getInteger("code");
                            if (code.equals(200)) {
                                StartupDto dto = jsonObject.getObject("data", StartupDto.class);
                                //获取回库提升机目标站
                                LiftStaProtocol liftStaProtocol = NyLiftUtils.getLiftStaByLev(pickSta.getLiftNo(), Utils.getLev(dto.getLocNo()));
                                if (liftStaProtocol == null) {
                                    News.info(wrkMast.getWrkNo() + "获取回库提升机目标站失败");
                                    continue;
                                }
                                // 更新工作档数据状态
                                wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54
                                wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
                                wrkMast.setSourceStaNo(dto.getSourceStaNo()); // 源站
                                wrkMast.setStaNo(liftStaProtocol.getStaNo());//目标站
                                wrkMast.setLocNo(dto.getLocNo()); // 目标库位
                                wrkMast.setShuttleNo(null); // 穿梭车清空
                                wrkMast.setLiftNo(null);// 提升机清空
                                wrkMast.setModiTime(new Date());
                                if (wrkMastMapper.updateById(wrkMast) == 0) {
                                    News.info(wrkMast.getWrkNo() + "更新工作档数据状态失败");
                                    continue;
                                }
                                staProtocol.setStaNo(dto.getSourceStaNo().shortValue());//写入目标站
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            } else if (code == 500) {
                                News.error("请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/loc/v1", JSON.toJSONString(param), response);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        }
                        staProtocol.setStaNo((short) 341);//写入目标站
                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                    }
                }