| | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.exception.CoolException; |
| | | import com.zy.asrs.domain.enums.TaskStatusType; |
| | | import com.zy.asrs.domain.enums.WorkNoType; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.GenerateAgvTaskParam; |
| | | import com.zy.asrs.mapper.*; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.asrs.utils.Utils; |
| | | import com.zy.common.service.CommonService; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.core.DevpThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | |
| | | private CommandInfoService commandInfoService; |
| | | @Autowired |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private OpenService openService; |
| | | @Autowired |
| | | private CommonService commonService; |
| | | @Value("${wcs.urlWcs}") |
| | | private String wcsUrl; |
| | | @Value("${wcs.inboundTaskApplyPathWcs}") |
| | | private String wcsInboundTaskApplyPath; |
| | | |
| | | public synchronized void demo() { |
| | | boolean demoEnable = false; |
| | | Config demoEnableConfig = configService.selectByCode("demoEnable"); |
| | | if(demoEnableConfig != null) { |
| | | demoEnable = Boolean.parseBoolean(demoEnableConfig.getValue()); |
| | | } |
| | | |
| | | if (!demoEnable) { |
| | | return; |
| | | } |
| | | |
| | | //演示模式-AGV出库 |
| | | demoAgvOut(); |
| | | //演示模式-AGV入库 |
| | | demoAgvIn(); |
| | | //演示模式-四向库出库 |
| | | demoShuttleOut(); |
| | | //演示模式-四向库入库 |
| | | demoShuttleIn(); |
| | | } |
| | | |
| | | //演示模式-AGV出库 |
| | | private synchronized void demoAgvOut() { |
| | | LocMast locMast = locMastService.selectByLocNo("0900601"); |
| | | if(locMast == null) { |
| | | return; |
| | | } |
| | | |
| | | if (!locMast.getLocSts().equals("O")) { |
| | | return; |
| | | } |
| | | |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .eq("mk", "agv") |
| | | .eq("loc_sts", "F") |
| | | .notIn("loc_no", "1100601") |
| | | ); |
| | | |
| | | if (locMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | LocMast originLocMast = locMasts.get(0); |
| | | |
| | | //生成AGV出库任务 |
| | | GenerateAgvTaskParam param = new GenerateAgvTaskParam(); |
| | | param.setOriginPoint(originLocMast.getLocNo()); |
| | | param.setTargetPoint(locMast.getLocNo()); |
| | | openService.generateAgvTask(param); |
| | | } |
| | | |
| | | //演示模式-AGV入库 |
| | | private synchronized void demoAgvIn() { |
| | | LocMast locMast = locMastService.selectByLocNo("1100601"); |
| | | if(locMast == null) { |
| | | return; |
| | | } |
| | | |
| | | if (!locMast.getLocSts().equals("F")) { |
| | | return; |
| | | } |
| | | |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .eq("mk", "agv") |
| | | .eq("loc_sts", "O") |
| | | .notIn("loc_no", "0900601") |
| | | ); |
| | | |
| | | if (locMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | LocMast targetLocMast = locMasts.get(0); |
| | | |
| | | //生成AGV出库任务 |
| | | GenerateAgvTaskParam param = new GenerateAgvTaskParam(); |
| | | param.setOriginPoint(locMast.getLocNo()); |
| | | param.setTargetPoint(targetLocMast.getLocNo()); |
| | | openService.generateAgvTask(param); |
| | | } |
| | | |
| | | //演示模式-四向库出库 |
| | | private synchronized void demoShuttleOut() { |
| | | LocMast locMast = locMastService.selectByLocNo("1100601"); |
| | | if(locMast == null) { |
| | | return; |
| | | } |
| | | |
| | | if (!locMast.getLocSts().equals("O")) { |
| | | return; |
| | | } |
| | | |
| | | ArrayList<Integer> disableLevList = new ArrayList<>(); |
| | | disableLevList.add(1); |
| | | |
| | | //query in task |
| | | List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>() |
| | | .eq("io_type", 1)); |
| | | for (TaskWrk taskWrk : taskWrks) { |
| | | int lev = Utils.getLev(taskWrk.getTargetPoint()); |
| | | if(!disableLevList.contains(lev)) { |
| | | disableLevList.add(lev); |
| | | } |
| | | } |
| | | |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .notIn("lev1", disableLevList) |
| | | .eq("loc_sts", "F") |
| | | ); |
| | | |
| | | if(locMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | LocMast locMast1 = locMasts.get(0); |
| | | |
| | | Date now = new Date(); |
| | | TaskWrk taskWrk = new TaskWrk(); |
| | | int workNo1 = commonService.getWorkNo(WorkNoType.PAKOUT.type);//获取入库工作号 |
| | | taskWrk.setTaskNo(String.valueOf(workNo1));//任务号 |
| | | taskWrk.setWrkNo(workNo1); |
| | | taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收 |
| | | taskWrk.setWrkSts(11); |
| | | taskWrk.setCreateTime(now); |
| | | taskWrk.setIoType(2);//出库 |
| | | taskWrk.setIoPri(100);//优先级 |
| | | taskWrk.setStartPoint(locMast1.getLocNo()); |
| | | taskWrk.setTargetPoint("101");//终点 |
| | | boolean result = taskWrkService.insert(taskWrk); |
| | | |
| | | locMast1.setLocSts("R"); |
| | | locMast1.setModiTime(now); |
| | | locMastService.updateById(locMast1); |
| | | |
| | | locMast.setLocSts("S"); |
| | | locMast.setModiTime(now); |
| | | locMastService.updateById(locMast); |
| | | } |
| | | |
| | | //演示模式-四向库入库 |
| | | private synchronized void demoShuttleIn() { |
| | | LocMast locMast = locMastService.selectByLocNo("0900601"); |
| | | if(locMast == null) { |
| | | return; |
| | | } |
| | | |
| | | if (!locMast.getLocSts().equals("F")) { |
| | | return; |
| | | } |
| | | |
| | | ArrayList<Integer> disableLevList = new ArrayList<>(); |
| | | disableLevList.add(1); |
| | | |
| | | //query out task |
| | | List<TaskWrk> taskWrks = taskWrkService.selectList(new EntityWrapper<TaskWrk>() |
| | | .eq("io_type", 2)); |
| | | for (TaskWrk taskWrk : taskWrks) { |
| | | int lev = Utils.getLev(taskWrk.getTargetPoint()); |
| | | if(!disableLevList.contains(lev)) { |
| | | disableLevList.add(lev); |
| | | } |
| | | } |
| | | |
| | | List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>() |
| | | .notIn("lev1", disableLevList) |
| | | .eq("loc_sts", "O") |
| | | ); |
| | | |
| | | if(locMasts.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | LocMast locMast1 = locMasts.get(0); |
| | | |
| | | Date now = new Date(); |
| | | TaskWrk taskWrk = new TaskWrk(); |
| | | int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//获取入库工作号 |
| | | taskWrk.setTaskNo(String.valueOf(workNo1));//任务号 |
| | | taskWrk.setWrkNo(workNo1); |
| | | taskWrk.setStatus(TaskStatusType.RECEIVE.id);//任务状态:接收 |
| | | taskWrk.setWrkSts(1); |
| | | taskWrk.setCreateTime(now); |
| | | taskWrk.setIoType(1);//入库 |
| | | taskWrk.setIoPri(100);//优先级 |
| | | taskWrk.setOriginStartPoint("1"); |
| | | taskWrk.setOriginTargetPoint(String.valueOf(Utils.getLev(locMast1.getLocNo()))); |
| | | taskWrk.setTargetPoint(locMast1.getLocNo());//终点 |
| | | boolean result = taskWrkService.insert(taskWrk); |
| | | |
| | | locMast1.setLocSts("S"); |
| | | locMast1.setModiTime(now); |
| | | locMastService.updateById(locMast1); |
| | | |
| | | locMast.setLocSts("R"); |
| | | locMast.setModiTime(now); |
| | | locMastService.updateById(locMast); |
| | | } |
| | | |
| | | /** |
| | | * 堆垛机站出库到出库站 |
| | | */ |