|  |  |  | 
|---|
|  |  |  | List<AgvWaitPakin> agvWaitPakinList = agvWaitPakinService.selectList(new EntityWrapper<AgvWaitPakin>().eq("supp_code", agvBasDevp.getBarcode())); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //检索库位,选择合适的库位 | 
|---|
|  |  |  | AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(), agvBasDevp.getFloor(), false, false, null); | 
|---|
|  |  |  | AgvLocMast agvLocMast = agvCommonService.getLocNo(agvBasDevp.getLocType1(), agvBasDevp.getFloor(), false, false); | 
|---|
|  |  |  | //生成工作档 | 
|---|
|  |  |  | AgvWrkMast wrkMast = createWrkMast(1, 201L, agvBasDevp.getDevNo(), agvLocMast.getLocNo(), agvBasDevp.getBarcode(), now, userId, agvBasDevp.getLocType2(), agvLocMast.getPltType()); | 
|---|
|  |  |  | //标记是否为输送线入库 | 
|---|
|  |  |  | 
|---|
|  |  |  | Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "elevatorTasks")); | 
|---|
|  |  |  | if (Cools.isEmpty(config)) { | 
|---|
|  |  |  | if (isCurrLev.get()) { | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true, factory); | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false, factory); | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1")); | 
|---|
|  |  |  | if (Integer.parseInt(config.getValue()) <= agvWrkMasts.size()) { | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true, factory); | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if (isCurrLev.get()) { | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true, factory); | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, true); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false, factory); | 
|---|
|  |  |  | agvLocMast = agvCommonService.getLocNo(locType, agvBasDevp.getFloor(), false, false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //agvLocMast = agvCommonService.getLocNo(locType,agvBasDevp.getFloor(),false,false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
|---|
|  |  |  | import com.core.common.Cools; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.AgvBasDevp; | 
|---|
|  |  |  | import com.zy.asrs.entity.AgvLocMast; | 
|---|
|  |  |  | import com.zy.asrs.entity.AgvWrkMast; | 
|---|
|  |  |  | import com.zy.asrs.service.AgvBasDevpService; | 
|---|
|  |  |  | import com.zy.asrs.service.AgvLocMastService; | 
|---|
|  |  |  | import com.zy.asrs.service.AgvWrkMastService; | 
|---|
|  |  |  | import com.zy.asrs.task.core.ReturnT; | 
|---|
|  |  |  | import com.zy.asrs.task.handler.AutoMoveHandler; | 
|---|
|  |  |  | import com.zy.system.entity.Config; | 
|---|
|  |  |  | import com.zy.system.service.ConfigService; | 
|---|
|  |  |  | 
|---|
|  |  |  | * crnNo :2目标楼层 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/1 * * * * ? ") | 
|---|
|  |  |  | private synchronized void execute2(){ | 
|---|
|  |  |  | private synchronized void execute2() { | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() | 
|---|
|  |  |  | .eq("wrk_sts", 22) | 
|---|
|  |  |  | .andNew().eq("io_type",108) | 
|---|
|  |  |  | .andNew() | 
|---|
|  |  |  | .eq("crn_no",2).or().eq("crn_no",3) | 
|---|
|  |  |  | .orderBy("io_pri",false).orderBy("appe_time",true) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | .andNew().eq("io_type", 108) | 
|---|
|  |  |  | .andNew() | 
|---|
|  |  |  | .eq("crn_no", 2).or().eq("crn_no", 3) | 
|---|
|  |  |  | .orderBy("io_pri", false).orderBy("appe_time", true) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (agvWrkMastList.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvWrkMast agvWrkMast : agvWrkMastList) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | // TODO 自动回流 | 
|---|
|  |  |  | autoMoveHandler.start2(agvWrkMast); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | //log.error("工作号"+agvWrkMast.getWrkNo()+"调拨出库,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * ioType 111.手动调拨 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void execute3(){ | 
|---|
|  |  |  | private void execute3() { | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | .andNew().eq("io_type", 111) | 
|---|
|  |  |  | .orderBy("io_pri", false) | 
|---|
|  |  |  | .orderBy("appe_time", true) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (agvWrkMastList.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvWrkMast agvWrkMast : agvWrkMastList) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.start3(agvWrkMast); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | //log.error("工作号"+agvWrkMast.getWrkNo()+"调拨出库,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void execute4(){ | 
|---|
|  |  |  | private void execute4() { | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() | 
|---|
|  |  |  | .eq("wrk_sts", 22) | 
|---|
|  |  |  | .andNew().eq("io_type",114) | 
|---|
|  |  |  | .orderBy("io_pri",false) | 
|---|
|  |  |  | .orderBy("appe_time",true) | 
|---|
|  |  |  | .andNew().eq("io_type", 114) | 
|---|
|  |  |  | .orderBy("io_pri", false) | 
|---|
|  |  |  | .orderBy("appe_time", true) | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (agvWrkMastList.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvWrkMast agvWrkMast : agvWrkMastList) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.start4(agvWrkMast); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("工作号"+agvWrkMast.getWrkNo()+"调拨出库,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("工作号" + agvWrkMast.getWrkNo() + "调拨出库,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | * ioType 113.空托盘手动回流 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack3(){ | 
|---|
|  |  |  | private void autoEmptyBack3() { | 
|---|
|  |  |  | // 工作档为201 且 入出库类型为109 | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMastList = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>() | 
|---|
|  |  |  | .eq("wrk_sts", 214) | 
|---|
|  |  |  | .eq("loc_no","") | 
|---|
|  |  |  | .eq("io_type",113) | 
|---|
|  |  |  | .orderBy("io_pri",false)); | 
|---|
|  |  |  | .eq("loc_no", "") | 
|---|
|  |  |  | .eq("io_type", 113) | 
|---|
|  |  |  | .orderBy("io_pri", false)); | 
|---|
|  |  |  | if (agvWrkMastList.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvWrkMast agvWrkMast : agvWrkMastList) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoEmptyBack3(agvWrkMast); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("工作号"+agvWrkMast.getWrkNo()+"空板自动回库  接驳点 - 1楼库位,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("工作号" + agvWrkMast.getWrkNo() + "空板自动回库  接驳点 - 1楼库位,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * 2楼或3楼站点可入信号全部没有,代表走电梯自动搬运模式 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack4(){ | 
|---|
|  |  |  | private void autoEmptyBack4() { | 
|---|
|  |  |  | // 查询 不为1楼的空货架 | 
|---|
|  |  |  | List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( | 
|---|
|  |  |  | new EntityWrapper<AgvLocMast>() | 
|---|
|  |  |  | // TODO 四期 | 
|---|
|  |  |  | .eq("loc_sts", "D") | 
|---|
|  |  |  | .eq("loc_type1", 3) | 
|---|
|  |  |  | .ne("floor", 1) | 
|---|
|  |  |  | .eq("loc_sts","D") | 
|---|
|  |  |  | .eq("loc_type1",3)); | 
|---|
|  |  |  | .ne("lve1", 1)); | 
|---|
|  |  |  | if (agvLocMasts.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvLocMast agvLocMast : agvLocMasts) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoEmptyBack4(agvLocMast); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("库位号"+agvLocMast.getLocNo()+"空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("库位号" + agvLocMast.getLocNo() + "空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private boolean determineFloorConnection(Integer floor){ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | // TODO 四期 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBackSiqi() { | 
|---|
|  |  |  | // 查询 二厂的的半成品箱壳类型的空货架 | 
|---|
|  |  |  | List<AgvLocMast> agvLocMasts = agvLocMastService.selectList( | 
|---|
|  |  |  | new EntityWrapper<AgvLocMast>() | 
|---|
|  |  |  | .eq("loc_sts", "D") | 
|---|
|  |  |  | .eq("loc_type1", 6) | 
|---|
|  |  |  | .eq("floor", 2)); | 
|---|
|  |  |  | if (agvLocMasts.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvLocMast agvLocMast : agvLocMasts) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoEmptyBackSiqi(agvLocMast); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("库位号" + agvLocMast.getLocNo() + "空板自动回库 库位-接驳点  库位-吸塑车间,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private boolean determineFloorConnection(Integer floor) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("floor", floor).like("dev_no", "DB_")); | 
|---|
|  |  |  | if (!agvBasDevps.isEmpty()){ | 
|---|
|  |  |  | for (AgvBasDevp agvBasDevp:agvBasDevps){ | 
|---|
|  |  |  | if (agvBasDevp.getInEnable().equals("Y")){ | 
|---|
|  |  |  | if (!agvBasDevps.isEmpty()) { | 
|---|
|  |  |  | for (AgvBasDevp agvBasDevp : agvBasDevps) { | 
|---|
|  |  |  | if (agvBasDevp.getInEnable().equals("Y")) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | log.error("判断当前楼层接驳位是否全部关闭,异常"+e.getMessage()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("判断当前楼层接驳位是否全部关闭,异常" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack5(){ | 
|---|
|  |  |  | private void autoEmptyBack5() { | 
|---|
|  |  |  | List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() | 
|---|
|  |  |  | .ne("floor", 1) | 
|---|
|  |  |  | .eq("loc_sts", "F") | 
|---|
|  |  |  | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvBasDevp agvBasDevp : agvBasDevps) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoEmptyBack5(agvBasDevp); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("站点号"+agvBasDevp.getDevNo()+"站点是否自动 优先选择先到接驳位(接驳位可入) 后选择直接回库,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("站点号" + agvBasDevp.getDevNo() + "站点是否自动 优先选择先到接驳位(接驳位可入) 后选择直接回库,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | * 手动: 生成 113 手动回流 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Scheduled(cron = "0/2 * * * * ? ") | 
|---|
|  |  |  | private void autoEmptyBack6(){ | 
|---|
|  |  |  | private void autoEmptyBack6() { | 
|---|
|  |  |  | List<AgvBasDevp> agvBasDevps = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>() | 
|---|
|  |  |  | .eq("floor", 1) | 
|---|
|  |  |  | .eq("loc_sts", "F") | 
|---|
|  |  |  | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvBasDevp agvBasDevp : agvBasDevps) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoEmptyBack6(agvBasDevp); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("站点号"+agvBasDevp.getDevNo()+"检测1楼接驳点 生成 113 手动回流,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("站点号" + agvBasDevp.getDevNo() + "检测1楼接驳点 生成 113 手动回流,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | long time3 = time - time1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (time3 > 0 && time3 < (1000 * 60 * 10)) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (time3 > 0 && time3 < (1000* 60 * 10)) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type",12)); | 
|---|
|  |  |  | if (maxTansk <= agvWrkMasts.size()){ | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().like("loc_no", "02F1").like("source_loc_no", "F1").eq("io_type", 12)); | 
|---|
|  |  |  | if (maxTansk <= agvWrkMasts.size()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | new EntityWrapper<AgvLocMast>() | 
|---|
|  |  |  | .eq("floor", 1) | 
|---|
|  |  |  | .eq("lev1", 1) | 
|---|
|  |  |  | .eq("loc_sts","F") | 
|---|
|  |  |  | .eq("loc_type1",3)); | 
|---|
|  |  |  | .eq("loc_sts", "F") | 
|---|
|  |  |  | .eq("loc_type1", 3)); | 
|---|
|  |  |  | if (agvLocMasts.isEmpty()) { | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (AgvLocMast agvLocMast : agvLocMasts) { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | autoMoveHandler.autoTransfers(agvLocMast,maxTansk); | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("库位号"+agvLocMast.getLocNo()+"定时移库任务 吸塑一楼 --> 吸塑二楼,处理失败:===》异常原因:"+e.getMessage()); | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | autoMoveHandler.autoTransfers(agvLocMast, maxTansk); | 
|---|
|  |  |  | } catch (Exception e) { | 
|---|
|  |  |  | log.error("库位号" + agvLocMast.getLocNo() + "定时移库任务 吸塑一楼 --> 吸塑二楼,处理失败:===》异常原因:" + e.getMessage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | private ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | //检索库位,选择合适的库位 | 
|---|
|  |  |  | AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false,null); | 
|---|
|  |  |  | AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false); | 
|---|
|  |  |  | if (Cools.isEmpty(locMast)) { | 
|---|
|  |  |  | log.info("暂无库位"); | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo()); | 
|---|
|  |  |  | //检索空闲接驳位,选择合适的接驳位 | 
|---|
|  |  |  | AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true,null); | 
|---|
|  |  |  | AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true); | 
|---|
|  |  |  | if (Cools.isEmpty(locMast)) { | 
|---|
|  |  |  | throw new CoolException("1楼暂无空库位"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | ioType = 109; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //检索库位,选择合适的库位 | 
|---|
|  |  |  | locMast = agvCommonService.getLocNo(3,1,true,true,null); | 
|---|
|  |  |  | locMast = agvCommonService.getLocNo(3,1,true,true); | 
|---|
|  |  |  | locNo = locMast.getLocNo(); | 
|---|
|  |  |  | wrkSts = 201L; | 
|---|
|  |  |  | ioType = 109; | 
|---|
|  |  |  | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ReturnT<String> autoEmptyBackSiqi(AgvLocMast agvLocMast) { | 
|---|
|  |  |  | Date now = new Date(); | 
|---|
|  |  |  | //查询工作档 | 
|---|
|  |  |  | AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode()); | 
|---|
|  |  |  | if(!Cools.isEmpty(agvWrkMast)){ | 
|---|
|  |  |  | throw new CoolException("当前"+agvLocMast.getBarcode()+"货架码已在工作档中"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | String floor = ""; | 
|---|
|  |  |  | String locNo = ""; | 
|---|
|  |  |  | Long wrkSts = 0L; | 
|---|
|  |  |  | Integer ioType = 0; | 
|---|
|  |  |  | AgvLocMast locMast = new AgvLocMast(); | 
|---|
|  |  |  | if (agvLocMast.getFloor() == 3) { | 
|---|
|  |  |  | floor = "F3"; | 
|---|
|  |  |  | } else if(agvLocMast.getFloor() == 2) { | 
|---|
|  |  |  | floor = "F2"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<AgvWrkMast> agvWrkMasts = agvWrkMastService.selectList(new EntityWrapper<AgvWrkMast>().eq("io_type", 109).like("source_loc_no", floor).or().eq("io_type", 113)); | 
|---|
|  |  |  | if (agvWrkMasts.size() >= 5) { | 
|---|
|  |  |  | //log.error("暂停回流"); | 
|---|
|  |  |  | return FAIL; | 
|---|
|  |  |  | //throw new CoolException("暂停回流"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //检索空闲可入接驳位 没有空闲可入接驳位 直接找库位 | 
|---|
|  |  |  | AgvBasDevp devpNo = agvCommonService.getDevpNo(6, agvLocMast.getFloor(),"Y","Y"); | 
|---|
|  |  |  | if (!Cools.isEmpty(devpNo)) { | 
|---|
|  |  |  | locNo = devpNo.getDevNo(); | 
|---|
|  |  |  | wrkSts = 21L; | 
|---|
|  |  |  | ioType = 109; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | //检索库位,选择合适的库位 | 
|---|
|  |  |  | locMast = agvCommonService.getLocNo(6,1,true,true); | 
|---|
|  |  |  | locNo = locMast.getLocNo(); | 
|---|
|  |  |  | wrkSts = 201L; | 
|---|
|  |  |  | ioType = 109; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //生成工作档 | 
|---|
|  |  |  | AgvWrkMast mast = new AgvWrkMast(); | 
|---|
|  |  |  | //工作状态 | 
|---|
|  |  |  | mast.setWrkSts(wrkSts); | 
|---|
|  |  |  | //入出库类型 | 
|---|
|  |  |  | mast.setIoType(ioType); | 
|---|
|  |  |  | mast.setIoTime(now); | 
|---|
|  |  |  | //优先级 | 
|---|
|  |  |  | mast.setIoPri(300.0); | 
|---|
|  |  |  | //源站点 | 
|---|
|  |  |  | mast.setSourceLocNo(agvLocMast.getLocNo()); | 
|---|
|  |  |  | //目标站点 | 
|---|
|  |  |  | mast.setLocNo(locNo); | 
|---|
|  |  |  | //货架编码 | 
|---|
|  |  |  | mast.setBarcode(agvLocMast.getBarcode()); | 
|---|
|  |  |  | //货架类型 | 
|---|
|  |  |  | mast.setWhsType(30); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | mast.setAppeUser(9527L); | 
|---|
|  |  |  | mast.setAppeTime(now); | 
|---|
|  |  |  | mast.setModiUser(9527L); | 
|---|
|  |  |  | mast.setModiTime(now); | 
|---|
|  |  |  | mast.setLogErrMemo("autoEmptyBack4"); | 
|---|
|  |  |  | if (!agvWrkMastService.insertByIncrease(mast)) { | 
|---|
|  |  |  | throw new CoolException("保存工作档失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //更新目标库位状态 | 
|---|
|  |  |  | updateAgvLocMast(agvLocMast,"R"); | 
|---|
|  |  |  | if (wrkSts == 21L) { | 
|---|
|  |  |  | updateAgvBasDevp(devpNo,"S",agvLocMast.getLocType2(),agvLocMast.getBarcode()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | updateAgvLocMast(locMast,"S"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return SUCCESS; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public ReturnT<String> autoEmptyBack5(AgvBasDevp agvBasDevp) { | 
|---|
|  |  |  | //查询工作档 | 
|---|
|  |  |  | AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvBasDevp.getBarcode()); | 
|---|
|  |  |  | 
|---|
|  |  |  | //入出库类型 | 
|---|
|  |  |  | mast.setIoType(109); | 
|---|
|  |  |  | //检索库位,选择合适的库位 | 
|---|
|  |  |  | AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true,null); | 
|---|
|  |  |  | AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true); | 
|---|
|  |  |  | mast.setLocNo(locMast.getLocNo()); | 
|---|
|  |  |  | updateAgvLocMast(locMast,"S"); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | 
|---|
|  |  |  | throw new CoolException("当前"+agvLocMast.getBarcode()+"货架码已在工作档中"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //检索库位,选择合适的库位 | 
|---|
|  |  |  | AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false,null); | 
|---|
|  |  |  | AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false); | 
|---|
|  |  |  | if (LocMast.getLev1() != 2) { | 
|---|
|  |  |  | throw new CoolException("目标楼层不是吸塑二楼"); | 
|---|
|  |  |  | } | 
|---|