rsf-open-api/src/main/java/com/vincent/rsf/openApi/entity/params/MissionTaskIssueParam.java
@@ -17,6 +17,7 @@ private String locNo;//目标库位 private String sourcelocNo;//源库位 private String staNo;//目标站点 private String staNoArea;//目标站点区域 private String sourcestaNo;//源站点 /* rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsWcsServiceImpl.java
@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.cfg.CoercionAction; import com.fasterxml.jackson.databind.cfg.CoercionInputShape; import com.vincent.rsf.framework.common.Cools; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.openApi.config.PlatformProperties; import com.vincent.rsf.openApi.entity.Loc; @@ -109,8 +110,8 @@ String souLoc = split[2]+"-"+split[3]+"-"+split[4]; missionWcsTaskIssueParam.setLocNo(souLoc); missionWcsTaskIssueParam.setTaskPri(param.getTaskPri()); missionWcsTaskIssueParam.setStaNo(Integer.parseInt(param.getStaNo()));//目标站 missionWcsTaskIssueParam.setOutArea("");//目标区域 missionWcsTaskIssueParam.setStaNo(Cools.isEmpty(param.getStaNoArea())? Integer.parseInt(param.getStaNo()):null);//目标站 missionWcsTaskIssueParam.setOutArea(param.getStaNoArea());//目标区域 missionWcsTaskIssueParam.setBatch("");//出库批次号 missionWcsTaskIssueParam.setBatchSeq(1);//出库顺序号 } else if (param.getType().equals(TaskTypeEnum.TASK_TYPE_ENUM_TRANSFER.code)){ rsf-server/src/main/java/com/vincent/rsf/server/api/entity/params/MissionTaskIssueParam.java
@@ -24,6 +24,7 @@ private String locNo;//目标库位 private String sourcelocNo;//源库位 private String staNo;//目标站点 private String staNoArea;//目标站点区域 private String sourcestaNo;//源站点 /* rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/dto/OrderOutItemDto.java
@@ -26,6 +26,8 @@ private List<staListDto> staNos; private List<String> targSiteAreaList; private String targSiteAreaNow; private String siteNo; private String sourceId; rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/LocToTaskParams.java
@@ -37,4 +37,7 @@ @ApiModelProperty("目标区域ID集合") private List<String> targSiteAreaList; @ApiModelProperty("当前目标区域") private String targSiteAreaNow; } rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/Task.java
@@ -216,6 +216,8 @@ private String targLocArea; private String targSiteAreaNow; public Task() {} public Task(String taskCode,Integer taskStatus,Integer taskType,String orgLoc,String targLoc,String barcode,String robotCode,Short exceStatus,String expDesc,Integer sort,String expCode,Date startTime,Date endTime,Integer status,Integer deleted,Integer tenantId,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) { rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskMissionSchedules.java
@@ -29,6 +29,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; /** * @author Munch D. Luffy @@ -163,9 +164,10 @@ //没有路径 进入库区筛选站点 List<String> targSiteArea = task.getTargSiteArea(); //提取出所有站点 List<String> siteList = new ArrayList<>(); // List<String> siteList = new ArrayList<>(); ConcurrentHashMap<String,List<String>> siteList = new ConcurrentHashMap<>(); //筛选出存在路径的站点 List<String> siteListRoute = new ArrayList<>(); List<String[]> siteListRoute = new ArrayList<>(); //筛选可替换选项 List<String> siteListUp = new ArrayList<>(); if (targSiteArea != null && !targSiteArea.isEmpty()) { @@ -174,34 +176,40 @@ if (basStationArea == null || basStationArea.getStationAlias() == null || basStationArea.getStationAlias().isEmpty()) { continue; } siteList.addAll(basStationArea.getStationAlias()); siteList.put(basStationArea.getStationAreaId(), basStationArea.getStationAlias()); // siteList.addAll(basStationArea.getStationAlias()); } if (!siteList.isEmpty()) { //查询站点路径 for (String site : siteList) { List<Long> routeGet = RouteWmsStepFlow.routeGet(stationList, sou, site); for (ConcurrentHashMap.Entry<String, List<String>> entry : siteList.entrySet()) { String stationAreaId = entry.getKey(); // 获取String键 List<String> valueList = entry.getValue(); // 获取对应的List<String> for (String value : valueList) { List<Long> routeGet = RouteWmsStepFlow.routeGet(stationList, sou, value); if (routeGet!=null && !routeGet.isEmpty()){ siteListRoute.add(site); siteListRoute.add(new String[]{stationAreaId, value}); } } } Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc())); //查询站点配置 if (!siteListRoute.isEmpty()) { for (String site : siteListRoute) { //拣料出库 -- 盘点出库 for (String[] siteArray : siteListRoute) { //出库路径排查 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() .eq(DeviceSite::getSite, site) .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)) { BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>() .eq(BasStation::getStationName, site) .eq(BasStation::getStationName, siteArray[1]) .eq(BasStation::getUseStatus, LocStsType.LOC_STS_TYPE_O.type) ); if (Cools.isEmpty(basStation) || !basStation.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) { continue; } task.setTargSite(site); task.setTargSiteAreaNow(siteArray[0]); task.setTargSite(siteArray[1]); taskService.updateById(task); break; } rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -286,6 +286,7 @@ missionTaskIssueParam.setTaskPri(task.getSort()); missionTaskIssueParam.setBarcode(task.getBarcode()); missionTaskIssueParam.setTaskNo(task.getTaskCode()); missionTaskIssueParam.setStaNoArea(task.getTargSiteAreaNow()); if (missionTaskIssueParam.getType().equals(RcsTaskType.RCS_TASK_TYPE_ENUM_IN.type) && endSign){ missionTaskIssueParam.setLocNo(task.getTargLoc()); missionTaskIssueParam.setSourcestaNo(missionTaskIssueParam.getSourcestaNo()); rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -195,6 +195,7 @@ .setTaskStatus(taskStatus) .setBarcode(loc.getBarcode()) .setTargSiteArea(map.getTargSiteAreaList()) .setTargSiteAreaNow(map.getTargSiteAreaNow()) .setMemo(map.getMemo()); List<LocItem> locItems = this.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocId, key)); rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -304,6 +304,7 @@ taskParams.setItems(itemDto.getLocItemList()) .setSiteNo(itemDto.getSiteNo()) .setTargSiteAreaList(itemDto.getTargSiteAreaList()) .setTargSiteAreaNow(itemDto.getTargSiteAreaNow()) .setType(Constants.TASK_TYPE_WAVE_OUT_STOCK) .setSourceId(wave.getId()) .setTarLoc(loc.getCode()); rsf-server/src/main/java/com/vincent/rsf/server/manager/utils/LocManageUtil.java
@@ -290,9 +290,11 @@ if (count == basStationAreas.size()) { if (!Objects.isNull(basStation)) { orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId()); orderOutItemDto.setSiteNo(basStation.getStationName()); // throw new CoolException("站點不存在!!"); } else if (!stas.isEmpty()) { orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId()); orderOutItemDto.setSiteNo(basStationArea.getStationAlias().get(0)); } else { throw new CoolException("未找到符合条件站点!!!请检查库区或者路径配置!!!"); @@ -302,6 +304,7 @@ continue; // throw new CoolException("站點不存在!!"); } orderOutItemDto.setTargSiteAreaNow(basStationArea.getStationAreaId()); orderOutItemDto.setSiteNo(basStation.getStationName()); }