#
zjj
2024-03-15 dbae31a7a7cd59048ada9b51fe8faff545324c59
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -194,8 +194,7 @@
                        if (Cools.isEmpty(taskWrk)){
                            continue;
                        }
                        List<Integer> list = new ArrayList<>();
                        list.add(taskWrk.getCrnNo());
                        //StaDesc staDesc1 = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no",inSta.getBackSta()));
                        if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null){
                            if ( taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() == workNo ){
@@ -219,7 +218,18 @@
                            toWmsDTO.setWarehouseId("1688469798893297665");
                            toWmsDTO.setContainerCode(barcode);
                            toWmsDTO.setApplyType("TUNNEL_LOCATION");
                            toWmsDTO.setTaskTunnel(taskWrk.getCrnNo());
                            List<Integer> list = new ArrayList<>();
                            if (inSta.getBarcode() == 7 || inSta.getBarcode() == 8){
                                toWmsDTO.setTaskTunnel(taskWrk.getCrnNo());
                                list.add(taskWrk.getCrnNo());
                            }else {
                                toWmsDTO.setTaskTunnel(inSta.getBarcode());
                                list.add(inSta.getBarcode());
                            }
                            toWmsDTO.setCanInboundTunnels(list);
                            String response = null;
                            try {
@@ -323,9 +333,18 @@
                                    log.error("输送线命令下方失败!!! [工作号:{}]", taskWrk.getWrkNo());
                                    continue;//命令下发失败
                                }
                                // 复位堆垛机
                                crnThread.setResetFlag(true);
                                if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){
                                    taskWrk.setWrkSts(4);
                                } else if (taskWrk.getIoType() == 2) {
                                    taskWrk.setWrkSts(14);
                                }
                                if (!taskWrkService.updateById(taskWrk)){
                                    log.error(taskWrk.getTaskNo()+ " 堆垛机任务完成,改变任务状态失败");
                                }
                            }
                        }
@@ -425,6 +444,21 @@
                if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
                    continue;
                }
                // 修改工作档状态 2.设备上走 => 3.吊车入库中
                log.error("进入修改工作档流程");
                Date now = new Date();
                taskWrk.setWrkSts(3);
                taskWrk.setModiTime(now);
                if (taskWrkMapper.updateById(taskWrk) == 0) {
                    log.error("修改工作档状态 2.设备上走 => 3.吊车入库中 失败!!,工作号={}", taskWrk.getWrkNo());
                }
                TaskWrk taskWrk2 = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue());
                if (taskWrk2.getWrkSts() != 3){
                    continue;
                }
                log.error("进入修改工作档流程完成,taskWrk=", JSON.toJSONString(taskWrk));
                //取出命令
                List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
@@ -439,13 +473,6 @@
                if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
                    log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
                } else {
                    // 修改工作档状态 2.设备上走 => 3.吊车入库中
                    Date now = new Date();
                    taskWrk.setWrkSts(3);
                    taskWrk.setModiTime(now);
                    if (taskWrkMapper.updateById(taskWrk) == 0) {
                        log.error("修改工作档状态 2.设备上走 => 3.吊车入库中 失败!!,工作号={}", taskWrk.getWrkNo());
                    }
                    //开始运行
                    String response = CrnStartRunning(taskWrk);
                    JSONObject jsonObject = JSON.parseObject(response);
@@ -785,6 +812,14 @@
                if (commandInfoService.updateById(commandInfo)) {//修改成功后复位堆垛机
                    // 堆垛机复位
                    crnThread.setResetFlag(true);
                    if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){
                        taskWrk.setWrkSts(4);
                    } else if (taskWrk.getIoType() == 2) {
                        taskWrk.setWrkSts(14);
                    }
                    if (!taskWrkService.updateById(taskWrk)){
                        log.error(taskWrk.getTaskNo()+ " 堆垛机任务完成,改变任务状态失败");
                    }
                }
            }
        }
@@ -968,7 +1003,7 @@
            try {
                taskWrkService.distribute(taskWrk.getTaskNo(), 9527L);
            } catch (CoolException e) {
                log.info(e.getMessage());
//                log.info(e.getMessage());
            }
        }
    }
@@ -984,41 +1019,67 @@
            }
            //判断末端命令是否执行完成
            CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1);
            if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) {
                continue;//指令未完成
            if (!commandInfos.isEmpty()){
                CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1);
                if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) {
                    continue;//指令未完成
                }
            }
            Date now = new Date();
            //指令已完成,更新任务
            if (taskWrk.getIoType() == 1) {
                //入库任务
                taskWrk.setWrkSts(4);//3.吊车入库中 => 4.入库完成
                //taskWrk.setStatus(TaskStatusType.COMPLETE.id);
//                taskWrk.setWrkSts(4);//3.吊车入库中 => 4.入库完成
                taskWrk.setStatus(TaskStatusType.OVER.id);
                taskWrk.setModiTime(now);
                taskWrkService.updateById(taskWrk);
                //更新库位状态
                LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
                locMast.setLocSts("F");//F.在库
                locMast.setLocSts("Z");//F.在库
                locMast.setBarcode(taskWrk.getBarcode());//托盘码
                locMast.setModiTime(now);
                locMast.setModiUser(9999L);
                locMastService.updateById(locMast);
            } else if (taskWrk.getIoType() == 2) {
                //出库任务
                taskWrk.setWrkSts(14);//12.吊车出库中 => 14.出库完成
//                taskWrk.setStatus(TaskStatusType.COMPLETE.id);
//                taskWrk.setWrkSts(14);//12.吊车出库中 => 14.出库完成
                taskWrk.setStatus(TaskStatusType.OVER.id);
                taskWrk.setModiTime(now);
                taskWrkService.updateById(taskWrk);
                //更新库位状态
                LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
                locMast.setLocSts("O");//O.空库位
                locMast.setLocSts("K");//O.空库位
                locMast.setBarcode("");//托盘码
                locMast.setModiTime(now);
                locMast.setModiUser(9999L);
                locMastService.updateById(locMast);
            } else if (taskWrk.getIoType() == 3) {
                //更新起始库位状态
                LocMast locMastStart = locMastService.selectByLocNo(taskWrk.getStartPoint());
                locMastStart.setLocSts("K");//O.空库位
                locMastStart.setBarcode("");//托盘码
                locMastStart.setModiTime(now);
                locMastStart.setModiUser(9999L);
                locMastService.updateById(locMastStart);
                //更新目标库位状态
                LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
                locMast.setLocSts("Z");//F.在库
                locMast.setBarcode(taskWrk.getBarcode());//托盘码
                locMast.setModiTime(now);
                locMast.setModiUser(9999L);
                locMastService.updateById(locMast);
                taskWrk.setStatus(TaskStatusType.OVER.id);
                taskWrk.setModiTime(now);
                taskWrkService.updateById(taskWrk);
            }
        }
    }