| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.core.common.SpringUtils; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.controller.CrnController; |
| | | import com.zy.asrs.controller.TaskWrkController; |
| | | import com.zy.asrs.domain.enums.TaskStatusType; |
| | | import com.zy.asrs.domain.enums.WorkNoType; |
| | | import com.zy.asrs.domain.param.CrnOperatorParam; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.CarryParam; |
| | | import com.zy.asrs.entity.param.TaskCreateParam; |
| | | import com.zy.asrs.mapper.*; |
| | | import com.zy.asrs.service.*; |
| | |
| | | private TaskWrkMapper taskWrkMapper; |
| | | @Autowired |
| | | private TaskWrkService taskWrkService; |
| | | @Autowired |
| | | private TaskWrkController taskWrkController; |
| | | @Autowired |
| | | private StaDescMapper staDescMapper; |
| | | @Autowired |
| | |
| | | continue; |
| | | } |
| | | |
| | | // CrnSlave crn = new CrnSlave(crnSlave); |
| | | // if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ |
| | | // CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "堆垛机巷道号异常!"); |
| | | // continue; |
| | | // } |
| | | // |
| | | // if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { |
| | | // for (CrnSlave crnOther : slaveProperties.getCrn()) { |
| | | // if (crnOther.getId().equals(crnProtocol.getLaneNo())) { |
| | | // crn.updateCrnInStn(crnOther); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | // 只有当堆垛机空闲 并且 无任务时才继续执行 |
| | | if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO |
| | | && crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) { |
| | |
| | | if (Cools.isEmpty(taskWrk1)){ |
| | | continue; |
| | | } |
| | | if (taskWrk1.getWrkSts() == 2){ |
| | | if (taskWrk1.getIoType() == 3 && taskWrk1.getWrkSts()<3){ |
| | | taskWrk = taskWrk1; |
| | | break; |
| | | } |
| | |
| | | if (offer) { |
| | | log.info("下发输送线任务成功:taskWrk:" + JSON.toJSONString(taskWrk)); |
| | | Date now = new Date(); |
| | | taskWrk.setStatus(TaskStatusType.OVER3.id); |
| | | // taskWrk.setStatus(TaskStatusType.OVER3.id); |
| | | taskWrk.setStatus(TaskStatusType.OVER.id);//手动完成任务 |
| | | taskWrk.setWrkSts(14); |
| | | taskWrk.setModiTime(now); |
| | | taskWrk.setCompleteTime(now); |
| | | |
| | | LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint()); |
| | | if(Cools.isEmpty(locMast)){ |
| | | R.error("没有找到该库位") ; |
| | | } |
| | | locMast.setLocSts("O"); |
| | | locMast.setModiTime(now); |
| | | locMast.setModiTime(now); |
| | | |
| | | |
| | | |
| | | locMastService.updateById(locMast); |
| | | taskWrkService.updateById(taskWrk); |
| | | } else { |
| | | log.error("下发输送线任务失败:taskWrk:" + JSON.toJSONString(taskWrk)); |
| | |
| | | continue; |
| | | } |
| | | |
| | | CrnSlave crn = new CrnSlave(crnSlave); |
| | | if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){ |
| | | CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "堆垛机巷道号异常!"); |
| | | continue; |
| | | } |
| | | |
| | | if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) { |
| | | for (CrnSlave crnOther : slaveProperties.getCrn()) { |
| | | if (crnOther.getId().equals(crnProtocol.getLaneNo())) { |
| | | crn.updateCrnInStn(crnOther); |
| | | } |
| | | } |
| | | } |
| | | CrnSlave crn = crnSlave; |
| | | |
| | | // 状态:等待确认 并且 任务完成位 = 1 |
| | | if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { |
| | |
| | | log.error("堆垛机处于等待确认且任务完成状态,但未找到工作档。堆垛机号={},巷道号={},工作号={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo()); |
| | | continue; |
| | | } |
| | | // Thread.sleep(300); |
| | | //确认完成信号 |
| | | // CrnOperatorParam crnOperatorParam = new CrnOperatorParam(); |
| | | // crnOperatorParam.setCrnNo(crn.getId()); |
| | | Date now = new Date(); |
| | | |
| | | // crnController.crnTaskComplete(crnOperatorParam); |
| | | // MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command)) |
| | | crnThread.setResetFlag(true); |
| | | |
| | | if (!Cools.isEmpty(taskWrk)) { |
| | |
| | | taskWrk.setCompleteTime(now); |
| | | taskWrkService.updateById(taskWrk); |
| | | |
| | | |
| | | // try { |
| | | // HashMap<String, Object> headParam = new HashMap<>(); |
| | | // headParam.put("taskNo",taskWrk.getTaskNo()); |
| | | // headParam.put("taskStatus",taskWrk.getStatusWms()); |
| | | // headParam.put("ioType",taskWrk.getIoTypeWms()); |
| | | // headParam.put("barCode",taskWrk.getBarcode()); |
| | | // headParam.put("reportTime", LocalDateTime.now()); |
| | | // headParam.put("weight",taskWrk.getScWeight().doubleValue()); |
| | | // |
| | | // String response; |
| | | // log.error("wcs完结任务上报wms==》", headParam); |
| | | // |
| | | // response = new HttpHandler.Builder() |
| | | // // .setHeaders(headParam) |
| | | // .setUri(wmsUrl) |
| | | // .setPath(taskStatusFeedbackPath) |
| | | // .setJson(JSON.toJSONString(headParam)) |
| | | // .build() |
| | | // .doPost(); |
| | | // log.error("wcs完结任务上报wms==》", response); |
| | | // |
| | | //// JSONObject jsonObject = JSON.parseObject(response); |
| | | //// log.error("wcs完结任务上报wms==》", jsonObject); |
| | | // |
| | | // apiLogService.save("wcs派发入库任务上报wms" |
| | | // , wmsUrl + taskStatusFeedbackPath |
| | | // , null |
| | | // , "127.0.0.1" |
| | | // , JSON.toJSONString(headParam) |
| | | // , response |
| | | // , true |
| | | // ); |
| | | // } catch (Exception e) { |
| | | // log.error("wcs完结任务上报wms失败", taskWrk); |
| | | // log.error("wcs完结任务上报wms失败,报错信息:", e); |
| | | //// throw new CoolException("wcs派发入库任务上报wms失败"); |
| | | // } |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | public void locMastTaskDemo(){ |
| | | try{ |
| | | for (CrnSlave crnSlave : slaveProperties.getCrn()) { |
| | | try{ |
| | | // 获取堆垛机信息 |
| | | CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId()); |
| | | CrnProtocol crnProtocol = crnThread.getCrnProtocol(); |
| | | if (crnProtocol == null) { |
| | | continue; |
| | | } |
| | | if (Cools.isEmpty(crnProtocol.getLocMastDemoList())) { |
| | | continue; |
| | | } |
| | | BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId()); |
| | | if (basCrnp == null) { |
| | | log.error("{}号堆垛机尚未在数据库进行维护!", crnSlave.getId()); |
| | | continue; |
| | | } |
| | | if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){ |
| | | continue; |
| | | } |
| | | for (String locNo : crnProtocol.getLocMastDemoList()){ |
| | | LocMast locMast = locMastService.selectByLocNo(locNo); |
| | | if (locMast.getLocSts().equals("F")){ |
| | | CarryParam carryParam = new CarryParam(); |
| | | carryParam.setTaskNo(locNo); |
| | | carryParam.setBarcode(locNo); |
| | | carryParam.setIoType(1);//任务类型=》1:出库、2:移库、3:入库 ====转换为====> 1:入库,2:出库,3:移库 |
| | | carryParam.setTaskPriority(1); |
| | | carryParam.setTargetPoint("1012"); |
| | | carryParam.setStartPoint(BarcodeUtils.formatCode(locNo)); |
| | | carryParam.setMeno("Demo"); |
| | | taskWrkController.addTaskPoint(carryParam); |
| | | Thread.sleep(50); |
| | | } else if (locMast.getLocSts().equals("O")){ |
| | | CarryParam carryParam = new CarryParam(); |
| | | carryParam.setTaskNo(locNo); |
| | | carryParam.setBarcode(locNo); |
| | | carryParam.setIoType(3);//任务类型=》1:出库、2:移库、3:入库 ====转换为====> 1:入库,2:出库,3:移库 |
| | | carryParam.setTaskPriority(1); |
| | | carryParam.setStartPoint("1012"); |
| | | carryParam.setTargetPoint(BarcodeUtils.formatCode(locNo)); |
| | | carryParam.setMeno("Demo"); |
| | | taskWrkController.addTaskPoint(carryParam); |
| | | Thread.sleep(50); |
| | | } |
| | | } |
| | | |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | } catch (Exception e){ |
| | | |
| | | } |
| | | } |
| | | } |