野心家
2025-03-20 95cc083ea58c4db51d0b89184c58ad67bc4f3b12
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -131,38 +131,6 @@
                    }
                    Short workNo = staProtocol.getWorkNo();
                    Short stano = staProtocol.getStaNo();
                    // 尺寸检测异常
                    boolean back = false;
                    String errMsg = "";
                    if (staProtocol.isFrontErr()) {
                        errMsg = "前超限";
                        back = true;
                    }
                    if (!back && staProtocol.isBackErr()) {
                        errMsg = "后超限";
                        back = true;
                    }
                    if (!back && staProtocol.isHighErr()) {
                        errMsg = "高超限";
                        back = true;
                    }
                    if (!back && staProtocol.isLeftErr()) {
                        errMsg = "左超限";
                        back = true;
                    }
                    if (!back && staProtocol.isRightErr()) {
                        errMsg = "右超限";
                        back = true;
                    }
                    if (!back && staProtocol.isWeightErr()) {
                        errMsg = "超重";
                        back = true;
                    }
                    if (!back && staProtocol.isBarcodeErr()) {
                        errMsg = "扫码失败";
                        back = true;
                    }
                    // 判断是否满足入库条件
                    if (staProtocol.isAutoing() && staProtocol.isLoading()
                            && staProtocol.isInEnable()
@@ -174,6 +142,20 @@
                            continue;
                        }
                        String BoxNo = barcodeThread.getBarcode();
                        if (BoxNo.equals("00000000")) {
                            storageEscalationParam.setWCSStatus(1);
                            storageEscalationParam.setWCSErrorMessage("没有扫到码");
                            BasDevp basDevp= basDevpService.selectOne(new EntityWrapper<BasDevp>()
                                    .eq("dev_no",staProtocol.getSiteId()));
                            if(Cools.isEmpty(basDevp)){
                                log.error("扫码失败并且没有找到该站点---"+staProtocol.getSiteId());
                            }else{
                                basDevp.setStaErr(1);//没有扫到码
                                basDevp.setStaErrMsg("没有扫到码!");
                                basDevpService.updateById(basDevp);
                            }
                            continue;
                        }else{
                        TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo));
                        if (!Cools.isEmpty(taskWrk1)) {
                            log.info("托盘码:" + BoxNo + "任务档存在");
@@ -187,12 +169,11 @@
                                }
                            }
                        }
                        if (back) {
                            storageEscalationParam.setWCSStatus(1);
                            storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg);
                        }
                        log.info("组托入库={}", storageEscalationParam);
                        storageEscalationParam.setBoxNo(BoxNo);
                        storageEscalationParam.setWcsIoType(1);//满板
                        storageEscalationParam.setWcsSourceStaNo(staProtocol.getSiteId());
                        String response = "";
                        Boolean success = false;
                        try {
@@ -203,25 +184,13 @@
                                    .build()
                                    .doPost();
                            JSONObject jsonObject = JSON.parseObject(response);
                            if (back) {
                                if (staProtocol.getWorkNo() >= 9801 && staProtocol.getWorkNo() <= 9825) {
                                    staProtocol.setStaNo((short) 105);
                                } else if (staProtocol.getWorkNo() >= 9826 && staProtocol.getWorkNo() <= 9850) {
                                    staProtocol.setStaNo((short) 107);
                                } else if (staProtocol.getWorkNo() >= 9851 && staProtocol.getWorkNo() <= 9875) {
                                    staProtocol.setStaNo((short) 109);
                                } else {
                                    staProtocol.setStaNo((short) 110);
                                }
                                devpThread.setPakMk(staProtocol.getSiteId(), false);
                                MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                            } else {
                                if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) {
                                    Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
                                    // 创新一个入库工作档
                                    TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
                                TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()+"");
                                    if (Cools.isEmpty(taskWrk)) {
                                        taskWrk = createTask1(result, BoxNo);
                                    taskWrk = createTask1(result, BoxNo,staProtocol.getSiteId());
                                        if (Cools.isEmpty(taskWrk)) {
                                            log.error("库位异常,库位号:={}", taskWrk.getOriginTargetPoint());
                                        } else {
@@ -261,26 +230,6 @@
                                                );
                                            }
                                        }
                                    } else {
//                                    staProtocol.setWorkNo((short) 9991);
                                        if (staProtocol.getWorkNo() >= 9801 && staProtocol.getWorkNo() <= 9825) {
                                            staProtocol.setStaNo((short) 105);
                                        } else if (staProtocol.getWorkNo() >= 9826 && staProtocol.getWorkNo() <= 9850) {
                                            staProtocol.setStaNo((short) 107);
                                        } else if (staProtocol.getWorkNo() >= 9851 && staProtocol.getWorkNo() <= 9875) {
                                            staProtocol.setStaNo((short) 109);
                                        } else {
                                            staProtocol.setStaNo((short) 110);
                                        }
                                        devpThread.setPakMk(staProtocol.getSiteId(), false);
                                        MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                    }
                                } else {
//                                staProtocol.setWorkNo((short) 9991);
                                    staProtocol.setStaNo(inSta.getBackSta().shortValue());
                                    devpThread.setPakMk(staProtocol.getSiteId(), false);
                                    MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
                                }
                            }
                        } catch (Exception e) {
@@ -1140,35 +1089,21 @@
        return response;
    }
    private TaskWrk createTask1(Result result, String barcode) {
        String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
    private TaskWrk createTask1(Result result, String barcode,Integer devNo) {
        Date now = new Date();
        TaskWrk taskWrk = new TaskWrk();
        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
        taskWrk.setTaskNo(result.getTaskNo());//任务号
        taskWrk.setWrkNo(workNo1);
//        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号
        taskWrk.setTaskNo(result.getTaskNo()+"");//任务号
        taskWrk.setWrkNo(result.getTaskNo());
        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//任务状态:派发
        taskWrk.setCreateTime(now);
        taskWrk.setIoType(1);//任务类型
        taskWrk.setIoPri(13);//优先级
        taskWrk.setBarcode(barcode);//条码
        LocMast locMast = locMastService.selectByLocNo(locNo);
        taskWrk.setCrnNo(locMast.getCrnNo());
        taskWrk.setTargetPoint(locNo);
        taskWrk.setStartPoint("116");
        if (result.getAlley().equals("1")) {
            taskWrk.setCrnNo(1);
        } else {
            taskWrk.setCrnNo(2);
        }
        if (taskWrk.getIoType() == 1) {
            taskWrk.setWrkSts(2);
            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
            }
        }
        taskWrk.setTargetPoint(devNo+"");//站点终点
        taskWrk.setStartPoint(devNo+"");//站点起点
        taskWrk.setOriginStartPoint("");//源库位
        taskWrk.setOriginTargetPoint(result.getShelfUnitId());//目标库位
        return taskWrk;
    }