| | |
| | | Date now = new Date(); |
| | | List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", pickParams.getLocNo())); |
| | | |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); |
| | | |
| | | if (Cools.isEmpty(agvWrkMast)){ |
| | | return "失败,未查到工作主档,工作号:"+pickParams.getWrkNo(); |
| | | } |
| | | for (PickParam.Pick pick : pickParams.getPicks()) { |
| | | if (pick.getCount().equals(0D)) continue; |
| | | Double count = 0.0D; |
| | | AgvWrkDetl agvWrkDetl = agvWrkDetlService.selectOne(new EntityWrapper<AgvWrkDetl>().eq("matnr", pick.getMatnr()).eq("three_code", pick.getThreeCode()).eq("supp_code",pick.getSuppCode())); |
| | | |
| | | if (Cools.isEmpty(agvWrkDetl)) { |
| | | AgvWrkDetl wrkDetl = new AgvWrkDetl(); |
| | | Mat mat = matService.selectByMatnr(pick.getMatnr()); |
| | |
| | | wrkDetl.sync(mat); |
| | | wrkDetl.setWrkNo(pickParams.getWrkNo()); |
| | | wrkDetl.setOrderNo(pick.getOrderNo()); |
| | | wrkDetl.setIoTime(now); |
| | | wrkDetl.setIoTime(agvWrkMast.getIoTime()); |
| | | wrkDetl.setAnfme(pick.getCount()); // 数量 |
| | | wrkDetl.setSuppCode(pick.getSuppCode()); // 货架条码 |
| | | wrkDetl.setAppeUser(userId); |
| | |
| | | } |
| | | } |
| | | if (agvLocDetls.size() == sameNumber) { |
| | | AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); |
| | | agvWrkMast.setIoType(101); |
| | | agvWrkMastService.update(agvWrkMast,new EntityWrapper<AgvWrkMast>().eq("wrk_no", pickParams.getWrkNo())); |
| | | } |
| | |
| | | } |
| | | } else { |
| | | if (agvLocMast.getFloor() != floor) { |
| | | if (floor==1 && agvLocMast.getFloor()!=1){ |
| | | ioType = 121; |
| | | }else { |
| | | // if (floor==1 && agvLocMast.getFloor()!=1){ |
| | | // ioType = 121; |
| | | // }else { |
| | | if (agvLocMast.getFloor() == 1) { |
| | | throw new CoolException("当前库位请选择调拨单调拨!"); |
| | | } else { |
| | | ioType = 12; |
| | | } |
| | | } |
| | | // } |
| | | } else { |
| | | ioType = 11; |
| | | } |
| | |
| | | } |
| | | return; |
| | | |
| | | } else { |
| | | agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"手动完成",userId); |
| | | } else { |
| | | if(wrkMast.getIoType() == 110){ |
| | | agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),206,"手动完成",userId); |
| | | } else { |
| | | agvWrkMastService.updateWrkStsByWrkNo(wrkMast.getWrkNo(),205,"手动完成",userId); |
| | | } |
| | | } |
| | | |
| | | //出库任务 101.出库 || 103.拣料出库 || 107.盘点出库 |
| | |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O","",wrkMast.getWhsType().shortValue()); |
| | | } |
| | | //出库任务 110.空板出库 |
| | | if(wrkMast.getIoType() == 110){ |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); |
| | | } |
| | | |
| | | if (wrkMast.getIoType() == 10) { |
| | | agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getSourceLocNo(),"O",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); |
| | | } |
| | |
| | | .or().eq("io_type", 12) |
| | | .or().eq("io_type", 109) |
| | | .or().eq("io_type", 108) |
| | | .or().eq("io_type", 111) |
| | | .or().eq("io_type", 112) |
| | | .or().eq("io_type", 113)).getRecords(); |
| | | |
| | |
| | | /** |
| | | * 生成agv_wrk_mast_execute任务 |
| | | */ |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | // @Scheduled(cron = "0/2 * * * * ? ") |
| | | private void autoMove(){ |
| | | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 121).eq("wrk_sts",11)); |
| | | for (AgvWrkMast agvWrkMast:agvWrkMastList){ |
| | |
| | | /** |
| | | * 完成agv_wrk_mast_execute任务 |
| | | */ |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | // @Scheduled(cron = "0/2 * * * * ? ") |
| | | private void autoMoveEnd(){ |
| | | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 121).eq("wrk_sts",12)); |
| | | for (AgvWrkMast agvWrkMast:agvWrkMastList){ |
| | |
| | | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() |
| | | .eq("wrk_sts", 22) |
| | | .andNew().eq("io_type",111) |
| | | .orderBy("io_pri",false) |
| | | .orderBy("appe_time",true) |
| | | ); |
| | | if (agvWrkMastList.isEmpty()) { |
| | |
| | | /** |
| | | * 执行agv_wrk_mast_execute任务 |
| | | */ |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | // @Scheduled(cron = "0/2 * * * * ? ") |
| | | private void autoMove(){ |
| | | List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",0L)); |
| | | for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){ |
| | |
| | | /** |
| | | * 下一步agv_wrk_mast_execute任务 |
| | | */ |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | // @Scheduled(cron = "0/2 * * * * ? ") |
| | | private void autoMove2(){ |
| | | List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",3L)); |
| | | for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){ |
| | |
| | | /** |
| | | * 下一步agv_wrk_mast_execute任务 |
| | | */ |
| | | @Scheduled(cron = "0/2 * * * * ? ") |
| | | // @Scheduled(cron = "0/2 * * * * ? ") |
| | | private void autoMove3(){ |
| | | List<WrkMastExecute> wrkMastExecuteList = wrkMastExecuteService.selectList(new EntityWrapper<WrkMastExecute>().eq("io_type", 121).eq("wrk_sts",2L)); |
| | | for (WrkMastExecute wrkMastExecute:wrkMastExecuteList){ |
| | |
| | | @Transactional |
| | | public ReturnT<String> completedCarryWrk(AgvWrkMast agvWrkMast) { |
| | | try{ |
| | | Date now = new Date(); |
| | | int wrkNo = agvWrkMast.getWrkNo(); |
| | | String orderNo = getOrderNoByWrkNo(wrkNo); |
| | | //修改工作档状态为207.库存更新完成 |
| | | agvWrkMast.setWrkSts(207L); |
| | | agvWrkMastService.updateById(agvWrkMast); |
| | | //修改源库位状态为O |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); |
| | | if (agvWrkMast.getIoType() == 110) { |
| | | agvLocMastService.updateLocStsByLocNo(agvWrkMast.getSourceLocNo(),"O","",null); |
| | | } |
| | | if(agvWrkMast.getIoType() == 101){ |
| | | //更新目标库位明细 101.出库 删除源库位库存明细 |
| | | agvLocDetlService.delete(new EntityWrapper<AgvLocDetl>().eq("loc_no",agvWrkMast.getSourceLocNo())); |
| | | //生成空板入库任务 |
| | | Short containerType = Short.valueOf(agvWrkMast.getBarcode().substring(0, 2)); |
| | | try { |
| | | //agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true); |
| | | // agvWorkService.emptyPlateIn(agvWrkMast.getLocNo(),agvWrkMast.getBarcode(),containerType,9527L,true); |
| | | AgvWrkMast wrkMast = new AgvWrkMast(); |
| | | //工作状态 |
| | | wrkMast.setWrkSts(201L); |
| | | //入出库类型 |
| | | wrkMast.setIoType(10); |
| | | wrkMast.setIoTime(new Date()); |
| | | wrkMast.setIoTime(now); |
| | | //优先级 |
| | | wrkMast.setIoPri(300.0); |
| | | //源站点 |
| | |
| | | wrkMast.setWhsType(Integer.valueOf(agvWrkMast.getBarcode().substring(0, 2))); |
| | | |
| | | wrkMast.setAppeUser(9527L); |
| | | wrkMast.setAppeTime(new Date()); |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setModiUser(9527L); |
| | | wrkMast.setModiTime(new Date()); |
| | | wrkMast.setModiTime(now); |
| | | |
| | | if (!agvWrkMastService.insertByIncrease(wrkMast)) { |
| | | throw new CoolException("保存工作档失败"); |
| | | } |
| | | AgvLocMast agvLocMast = agvLocMastService.selectById(agvWrkMast.getSourceLocNo()); |
| | | agvLocMast.setLocSts("S"); |
| | | agvLocMast.setModiTime(now); |
| | | agvLocMastService.updateById(agvLocMast); |
| | | |
| | | AgvBasDevp agvBasDevp = agvBasDevpService.selectById(agvWrkMast.getLocNo()); |
| | | agvBasDevp.setLocSts("R"); |
| | | agvBasDevp.setLocType2(Short.valueOf(agvWrkMast.getBarcode().substring(0, 2))); |
| | | agvBasDevpService.updateById(agvBasDevp); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | log.error(e.getMessage()); |
| | |
| | | } |
| | | |
| | | private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){ |
| | | if (true){ |
| | | apiLogService.save( |
| | | namespace, |
| | | url + path, |
| | | appkey, |
| | | ip, |
| | | JSON.toJSONString(JSONObject.toJSONString(requestParam)), |
| | | "", |
| | | true |
| | | ); |
| | | return 0; |
| | | } |
| | | // if (true){ |
| | | // apiLogService.save( |
| | | // namespace, |
| | | // url + path, |
| | | // appkey, |
| | | // ip, |
| | | // JSON.toJSONString(JSONObject.toJSONString(requestParam)), |
| | | // "", |
| | | // true |
| | | // ); |
| | | // return 0; |
| | | // } |
| | | String response = ""; |
| | | boolean success = false; |
| | | |