| | |
| | | import com.vincent.rsf.server.manager.service.impl.BasStationAreaServiceImpl; |
| | | import com.vincent.rsf.server.manager.service.impl.BasStationServiceImpl; |
| | | import com.vincent.rsf.server.manager.service.impl.DeviceSiteServiceImpl; |
| | | import com.vincent.rsf.server.manager.utils.WarehouseLocationRetrievalUtil; |
| | | import com.vincent.rsf.server.system.constant.GlobalConfigCode; |
| | | import com.vincent.rsf.server.system.entity.*; |
| | | import com.vincent.rsf.server.system.service.ConfigService; |
| | |
| | | Loc loc2 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc())); |
| | | sou = loc2.getAreaId().toString(); |
| | | } |
| | | List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getSourceType, sou).eq(TaskPathTemplateMerge::getTargetType, end)); |
| | | BasContainer containerByBarcode = new WarehouseLocationRetrievalUtil().getContainerByBarcode(task.getBarcode()); |
| | | List<TaskPathTemplateMerge> taskPathTemplateMergeList = taskPathTemplateMergeService.list( |
| | | new LambdaQueryWrapper<TaskPathTemplateMerge>() |
| | | .eq(TaskPathTemplateMerge::getSourceType, sou) |
| | | .eq(TaskPathTemplateMerge::getTargetType, end) |
| | | .apply("container_type != '[]'") // 不是空数组 |
| | | .apply("JSON_CONTAINS(container_type, {0}) = 1", containerByBarcode.getContainerType().toString()) |
| | | ); |
| | | if (Objects.isNull(taskPathTemplateMergeList) || taskPathTemplateMergeList.isEmpty() || !endSign) { |
| | | List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list(new LambdaQueryWrapper<TaskPathTemplateMerge>().eq(TaskPathTemplateMerge::getStepSize,1)); |
| | | List<TaskPathTemplateMerge> list = taskPathTemplateMergeService.list( |
| | | new LambdaQueryWrapper<TaskPathTemplateMerge>() |
| | | .eq(TaskPathTemplateMerge::getStepSize,1) |
| | | .apply("container_type != '[]'") // 不是空数组 |
| | | .apply("JSON_CONTAINS(container_type, {0}) = 1", containerByBarcode.getContainerType().toString()) |
| | | ); |
| | | if (!Cools.isEmpty(list)) { |
| | | List<String[]> stationList = new ArrayList<>(); |
| | | list.forEach(taskPathTemplate -> { |
| | |
| | | if (!siteListRoute.isEmpty()) { |
| | | for (String[] siteArray : siteListRoute) { |
| | | //出库路径排查 |
| | | DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | .eq(DeviceSite::getSite, siteArray[1]) |
| | | .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel()) |
| | | .eq(DeviceSite::getType, task.getTaskType()).last("limit 1"),false); |
| | | if (!Objects.isNull(deviceSite)) { |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteArray[1], loc.getBarcode(),"out"); |
| | | if (available) { |
| | | BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() |
| | | .eq(BasStation::getStationName, siteArray[1]) |
| | | .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type) |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | // System.out.println("任务:"+task.getTaskCode()+"查询步序为:"+longs); |
| | | } |
| | |
| | | |
| | | |
| | | public boolean generateActualPath(Task task,TaskPathTemplateMerge taskPathTemplateMerge,boolean endSignUp) { |
| | | boolean actualPath = false; |
| | | List<Integer> conditionExpression = taskPathTemplateMerge.getConditionExpression(); |
| | | Integer i = 0;//it顺序 |
| | | Integer j = 0;//suT顺序 |
| | |
| | | if (basStation == null){ |
| | | return false; |
| | | } |
| | | if (!basStation.getType().equals(0)){ |
| | | if (!basStation.getType().equals(0) && !task.getTaskType().equals(TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type)){ |
| | | basStation.setUseStatus(LocStsType.LOC_STS_TYPE_S.type); |
| | | basStation.setBarcode(task.getBarcode()); |
| | | basStationService.updateById(basStation); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | taskService.updateById(task); |
| | | return actualPath; |
| | | return true; |
| | | } |
| | | |
| | | |
| | | } |