| | |
| | | // 退回 |
| | | if (back && staProtocol.isInEnable() && staProtocol.isLoading() && staProtocol.isPakMk() && !staProtocol.isEmptyMk() ) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errMsg)); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg,wrkNo); |
| | | News.info("{}入库回退:{},任务号:{}", inSta.getStaNo(), errMsg, staProtocol.getWorkNo()); |
| | | staProtocol.setWorkNo(9999); |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发1:"+wrkNo+","+inSta.getBackSta()); |
| | | log.error("输送线下发1:"+staProtocol.getWorkNo()+","+inSta.getBackSta()); |
| | | return; |
| | | } |
| | | |
| | |
| | | ledThread.errorReset(); |
| | | } |
| | | } else { |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setWorkNo(9999); |
| | | staProtocol.setStaNo(inSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | String errorMsg = jsonObject.getString("msg"); |
| | | log.error("全版入库回退,"+wrkNo+","+errorMsg); |
| | | log.error("全版入库回退,"+staProtocol.getWorkNo()+","+errorMsg); |
| | | if (!Cools.isEmpty(errorMsg)) { |
| | | MessageQueue.offer(SlaveType.Led, inSta.getLed(), new Task(3, errorMsg)); |
| | | } |
| | |
| | | StaDesc staDesc = staDescService.selectOne(wrapper); |
| | | if (Cools.isEmpty(staDesc)) { |
| | | News.error(""+mark+" - 2"+" - 入库路径不存在!type_no={},stn_no={},crn_no={}", wrkMast.getIoType(), pickSta.getStaNo(), wrkMast.getCrnNo()); |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | staProtocol.setWorkNo(9999); |
| | | staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1)); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("输送线下发4:"+wrkNo+","+(pickSta.getStaNo().shortValue()-(short)1)); |
| | | log.error("输送线下发4:"+staProtocol.getWorkNo()+","+(pickSta.getStaNo().shortValue()-(short)1)); |
| | | //LED |
| | | LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed()); |
| | | // led 异常显示 |
| | |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | // 遍历空板入库口 |
| | | for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) { |
| | | // 获取条码扫描仪信息 |
| | | BarcodeThread barcodeThread = null; |
| | | if (!Cools.isEmpty(emptyInSta.getBarcode())) { |
| | | barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, emptyInSta.getBarcode()); |
| | | } |
| | | |
| | | // 获取空板入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo()); |
| | |
| | | continue; |
| | | } |
| | | |
| | | // 检查条码扫描:如果扫描到条码,则存入,扫描不到,则不存 |
| | | String barcode = null; |
| | | if (barcodeThread != null) { |
| | | barcode = barcodeThread.getBarcode(); |
| | | // 如果条码为空、NG、NoRead或00000000 |
| | | if (Cools.isEmpty(barcode) || barcode.endsWith("NG") || "NoRead".equals(barcode) || "00000000".equals(barcode)) { |
| | | barcode=null; |
| | | } |
| | | } |
| | | |
| | | // 站点条件判断 |
| | | if (staProtocol.isAutoing() //自动 |
| | | && staProtocol.isLoading() //有物 |
| | |
| | | && staProtocol.isPakMk() //防止重复下发信号 站点无物 无任务号会自动变成true |
| | | |
| | | ) { |
| | | News.warnNoLog(""+mark+" - 0"+" - 开始执行:空栈板初始化入库,叉车入库站放货"); |
| | | // 判断重复工作档 |
| | | WrkMast wrkMast = null; |
| | | if (!Cools.isEmpty(barcode)) { |
| | | // 有条码时,检查是否有相同站点和条码的空板入库工作档 |
| | | wrkMast = wrkMastMapper.selectPakInStep1(emptyInSta.getStaNo(), barcode); |
| | | } else { |
| | | // 无条码时,检查是否有相同站点且工作状态为2的空板入库工作档 |
| | | wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>() |
| | | .eq("source_sta_no", emptyInSta.getStaNo()) |
| | | .eq("wrk_sts", 2) |
| | | .eq("io_type", 10)); |
| | | } |
| | | if (wrkMast != null) { |
| | | News.info("{}空板入库重复工作档检查:已存在工作档,工作号:{},条码:{}", emptyInSta.getStaNo(), wrkMast.getWrkNo(), barcode); |
| | | continue; |
| | | } |
| | | |
| | | News.warnNoLog(""+mark+" - 0"+" - 开始执行:空栈板初始化入库,叉车入库站放货,条码:{}", barcode); |
| | | |
| | | try { |
| | | LocTypeDto locTypeDto = new LocTypeDto(staProtocol); |
| | |
| | | param.setIoType(10); |
| | | param.setSourceStaNo(emptyInSta.getStaNo()); |
| | | param.setLocType1(locTypeDto.getLocType1()); |
| | | param.setBarcode(barcode); // 设置扫描到的条码 |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/loc/v1") |
| | |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | StartupDto dto = jsonObject.getObject("data", StartupDto.class); |
| | | |
| | | // 清空条码 |
| | | if (barcodeThread != null) { |
| | | barcodeThread.setBarcode(""); |
| | | } |
| | | |
| | | // 更新站点信息 且 下发plc命令 |
| | | staProtocol.setWorkNo(dto.getWorkNo()); |
| | |
| | | String errorMsg = jsonObject.getString("msg"); |
| | | // 如果任务回退,并且站点不是自动状态,则不触发回退 |
| | | if (!staProtocol.isAutoing()) { |
| | | log.error("空板入库回退"+wrkNo+","+errorMsg+",站点不是自动状态,不触发回退"); |
| | | log.error("空板入库回退"+staProtocol.getWorkNo()+","+errorMsg+",站点不是自动状态,不触发回退"); |
| | | continue; |
| | | } |
| | | staProtocol.setWorkNo(wrkNo); |
| | | wrkNo++; |
| | | log.error("空板入库回退"+staProtocol.getWorkNo()+","+errorMsg); |
| | | staProtocol.setWorkNo(9999); |
| | | staProtocol.setStaNo(emptyInSta.getBackSta().shortValue()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | log.error("空板入库回退"+wrkNo+","+errorMsg); |
| | | if (!result) { |
| | | News.errorNoLog(""+mark+" - 2"+" - 更新plc站点信息失败"); |
| | | throw new CoolException("更新plc站点信息失败"); |