#
Junjie
16 小时以前 3c0129480a0493bd87bf38273b23eae3099c3f3d
#
1个文件已修改
80 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -414,15 +414,6 @@
                            continue;
                        }
                        // 拣、盘、并 作业站转换
//                    int stnNo = 0;
//                    if (wrkMast.getStaNo() == 109) {
//                        stnNo = 127;
//                    } else if (wrkMast.getStaNo() == 113) {
//                        stnNo = 128;
//                    } else {
//                        log.error("{}号任务数据异常!", wrkMast.getWrkNo());
//                    }
                        // 获取目标站
                        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                                .eq("type_no", wrkMast.getIoType() - 50)
@@ -446,62 +437,41 @@
                        }
                        try {
                            // 保存工作明细档历史档
                            if (wrkMastMapper.saveWrkDetlLog(wrkMast.getWrkNo()) == 0) {
                                throw new CoolException("保存工作明细档历史档失败");
                            }
                            // 保存工作主档历史档
                            if (wrkMastMapper.saveWrkMastLog(wrkMast.getWrkNo()) == 0) {
                                throw new CoolException("保存工作主档历史档失败");
                            }
                            LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                            Date now = new Date();
                            // 堆垛机站点(目标站)
                            Integer staNo = staDesc.getCrnStn();
                            // 更新工作档数据状态
                            wrkMast.setIoTime(now);
                            wrkMast.setIoType(wrkMast.getIoType() - 50); // 入出库类型: 103->53,104->54,107->57
                            wrkMast.setWrkSts(2L); // 工作状态: 2.设备上走
                            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站
                            wrkMast.setStaNo(staNo); // 目标站
                            wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 目标库位 = 出库时的源库位
                            wrkMast.setSourceLocNo(""); // 源库位清空
                            wrkMast.setModiTime(now);
                            wrkMast.setUpdMk("");//允许再次移库
                            if (wrkMastMapper.updateById(wrkMast) == 0) {
                                throw new CoolException("更新工作档数据状态失败");
                            }
                            // 更新明细档io_time (历史档关联使用)
                            wrkDetlService.updateIoTime(wrkMast.getWrkNo(), now);
                            // 修改库位状态 Q.拣料/盘点/并板再入库
                            LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
                            locMast.setLocSts("Q");
                            locMast.setModiTime(new Date());
                            if (!locMastService.updateById(locMast)) {
                                throw new CoolException("修改库位状态失败");
                            SearchLocParam param = new SearchLocParam();
                            param.setBarcode(wrkMast.getBarcode());
                            param.setSourceStaNo(pickSta.getStaNo());
                            param.setLocType1(locTypeDto.getLocType1());
                            String response = new HttpHandler.Builder()
                                    .setUri(wmsUrl)
                                    .setPath("/rpc/pakin/pick/loc/v1")
                                    .setJson(JSON.toJSONString(param))
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if (jsonObject.getInteger("code").equals(200)) {
                                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
                                // 更新站点信息 且 下发plc命令
                                staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                                staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                                staProtocol.setPalletSize(locMast.getLocType2());
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                if (!result) {
                                    News.error("" + mark + " - 3" + " - 发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId());
                                }
                            } else {
                                News.error("" + mark + " - 5" + " - 请求接口失败!!!url:{};request:{};response:{}", wmsUrl + "/rpc/pakin/pick/loc/v1", JSON.toJSONString(param), response);
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            continue;
                        }
                        LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
                        // 更新站点信息 且 下发plc命令
                        staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
                        staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
                        staProtocol.setPalletSize(locMast.getLocType2());
                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                        boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                        if (!result) {
                            News.error("" + mark + " - 3" + " - 发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId());
                        }
                    } else {
                        News.errorNoLog("" + mark + " - 6" + " - 站点信息不符合入库条件!!!" + " 自动信号:" + staProtocol.isLoading() + "、可入信号:" + staProtocol.isInEnable()
                                + "、空板信号:" + staProtocol.isEmptyMk());
                    }
                }
            }