| | |
| | | |
| | | <build> |
| | | <finalName>asrs-schedule</finalName> |
| | | <resources> |
| | | <resource> |
| | | <directory>src/main/resources</directory> |
| | | <filtering>true</filtering> |
| | | </resource> |
| | | </resources> |
| | | <plugins> |
| | | <plugin> |
| | | <groupId>org.springframework.boot</groupId> |
| | |
| | | package com.vincent.rsf.schedule.api.service.impl; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | | import com.vincent.rsf.framework.common.R; |
| | |
| | | if (Cools.isEmpty(area)) { |
| | | throw new CoolException("目标库区不能为空"); |
| | | } |
| | | boolean isItAvailable = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableInArea(sta, area, waitPakinPda.getBarcode(), "in"); |
| | | boolean isItAvailable = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableInArea(sta, area, waitPakinPda.getBarcode(), "in"); |
| | | // DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | // .eq(DeviceSite::getSite, sta) |
| | | // .eq(DeviceSite::getAreaIdEnd, Long.parseLong(area)) |
| | |
| | | package com.vincent.rsf.schedule.api.service.impl; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | |
| | | // throw new CoolException("未找到所属库区信息"); |
| | | } |
| | | |
| | | boolean isItAvailable = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableInArea(station.getStationName(), warehouseArea.getId(), param.getContainerNo(), TaskType.TASK_TYPE_EMPTY_IN.type); |
| | | boolean isItAvailable = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableInArea(station.getStationName(), warehouseArea.getId(), param.getContainerNo(), TaskType.TASK_TYPE_EMPTY_IN.type); |
| | | // DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | // .eq(DeviceSite::getSite, ) |
| | | // .eq(DeviceSite::getAreaIdEnd,) |
| | |
| | | package com.vincent.rsf.schedule.api.service.impl; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | |
| | | if (loc != null) { |
| | | //查找路径 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableInArea(sourceStaNo, loc.getAreaId().toString() ,loc.getBarcode(),"in"); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableInArea(sourceStaNo, loc.getAreaId().toString() ,loc.getBarcode(),"in"); |
| | | // DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | // .eq(DeviceSite::getType, ioType) |
| | | // .eq(DeviceSite::getSite, sourceStaNo) |
| | |
| | | |
| | | if (loc != null) { |
| | | //查找路径 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableInArea(sourceStaNo, loc.getAreaId().toString() ,loc.getBarcode(),"in"); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableInArea(sourceStaNo, loc.getAreaId().toString() ,loc.getBarcode(),"in"); |
| | | // DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | // .eq(DeviceSite::getType, ioType) |
| | | // .eq(DeviceSite::getSite, sourceStaNo) |
| | |
| | | //查找路径 |
| | | if (loc != null) { |
| | | //查找路径 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableInArea(sourceStaNo, loc.getAreaId().toString() ,loc.getBarcode(),"in"); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableInArea(sourceStaNo, loc.getAreaId().toString() ,loc.getBarcode(),"in"); |
| | | // DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>() |
| | | // .eq(DeviceSite::getType, ioType) |
| | | // .eq(DeviceSite::getSite, sourceStaNo) |
| | |
| | | package com.vincent.rsf.schedule.common.security; |
| | | |
| | | import com.vincent.rsf.schedule.common.constant.Constants; |
| | | import com.vincent.rsf.schedule.common.utils.CommonUtil; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.http.HttpMethod; |
| | | import org.springframework.security.access.AccessDeniedException; |
| | | import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; |
| | | import org.springframework.security.config.annotation.web.builders.HttpSecurity; |
| | | import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; |
| | | import org.springframework.security.config.http.SessionCreationPolicy; |
| | | import org.springframework.security.core.AuthenticationException; |
| | | import org.springframework.security.web.AuthenticationEntryPoint; |
| | | import org.springframework.security.web.SecurityFilterChain; |
| | | import org.springframework.security.web.access.AccessDeniedHandler; |
| | | import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import jakarta.servlet.ServletException; |
| | | import jakarta.servlet.DispatcherType; |
| | | import jakarta.servlet.http.HttpServletRequest; |
| | | import jakarta.servlet.http.HttpServletResponse; |
| | | import jakarta.annotation.Resource; |
| | | import java.io.IOException; |
| | | |
| | | /** |
| | | * Spring Security配置 |
| | | * |
| | | * Spring Security配置 - 定时任务模块,放行所有请求 |
| | | */ |
| | | @Configuration |
| | | @EnableWebSecurity |
| | | @EnableMethodSecurity(prePostEnabled = true) |
| | | public class SecurityConfig { |
| | | |
| | | public static final String[] FILTER_PATH = new String[] { |
| | | "/demo/**", |
| | | "/test/**", |
| | | "/system/info", |
| | | "/tenant/list", |
| | | "/email/code", |
| | | "/pda/login", |
| | | "/erp/**", |
| | | "/base/**", |
| | | "/order/**", |
| | | "/login", |
| | | "/register", |
| | | "/druid/**", |
| | | "/doc.html", |
| | | "/swagger-ui.html", |
| | | "/swagger-resources/**", |
| | | "/webjars/**", |
| | | "/v2/api-docs/**", |
| | | "/v3/api-docs/**", |
| | | "/swagger-ui/**", |
| | | "/ws/**", |
| | | "/wcs/**", |
| | | "/monitor/**", |
| | | "/ai/mcp/**", |
| | | "/mcp/**", |
| | | "/mes/**" |
| | | }; |
| | | |
| | | @Resource |
| | | private JwtAccessDeniedHandler jwtAccessDeniedHandler; |
| | | @Resource |
| | | private JwtAuthenticationEntryPoint jwtAuthenticationEntryPoint; |
| | | @Resource |
| | | private JwtAuthenticationFilter jwtAuthenticationFilter; |
| | | |
| | | @Bean |
| | | public SecurityFilterChain securityFilterChain(org.springframework.security.config.annotation.web.builders.HttpSecurity http) |
| | | throws Exception { |
| | | http.authorizeHttpRequests(authorize -> authorize |
| | | .dispatcherTypeMatchers(DispatcherType.ASYNC, DispatcherType.ERROR).permitAll() |
| | | .requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() |
| | | .requestMatchers(HttpMethod.GET, "/file/**", "/captcha", "/", "/config/public/project-logo", "/config/public/project-copyright").permitAll() |
| | | .requestMatchers(FILTER_PATH).permitAll() |
| | | .anyRequest().authenticated()) |
| | | public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { |
| | | http.authorizeHttpRequests(authorize -> authorize.anyRequest().permitAll()) |
| | | .sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) |
| | | .csrf(csrf -> csrf.disable()) |
| | | .cors(cors -> { |
| | | }) |
| | | .cors(cors -> {}) |
| | | .logout(logout -> logout.disable()) |
| | | .headers(headers -> headers.frameOptions(frameOptions -> frameOptions.disable())) |
| | | .exceptionHandling(exceptionHandling -> exceptionHandling |
| | | .accessDeniedHandler(jwtAccessDeniedHandler) |
| | | .authenticationEntryPoint(jwtAuthenticationEntryPoint)) |
| | | .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); |
| | | |
| | | .headers(headers -> headers.frameOptions(frameOptions -> frameOptions.disable())); |
| | | return http.build(); |
| | | } |
| | | |
| | | // 没有访问权限异常处理 |
| | | @Component |
| | | static class JwtAccessDeniedHandler implements AccessDeniedHandler { |
| | | |
| | | @Override |
| | | public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e) |
| | | throws IOException, ServletException { |
| | | if (response.isCommitted()) { |
| | | return; |
| | | } |
| | | CommonUtil.responseError(response, Constants.UNAUTHORIZED_CODE, Constants.UNAUTHORIZED_MSG, e.getMessage()); |
| | | } |
| | | |
| | | } |
| | | |
| | | // 没有登录异常处理 |
| | | @Component |
| | | static class JwtAuthenticationEntryPoint implements AuthenticationEntryPoint { |
| | | |
| | | @Override |
| | | public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException e) |
| | | throws IOException, ServletException { |
| | | if (response.isCommitted()) { |
| | | return; |
| | | } |
| | | CommonUtil.responseError(response, Constants.UNAUTHENTICATED_CODE, Constants.UNAUTHENTICATED_MSG, |
| | | e.getMessage()); |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | package com.vincent.rsf.schedule.manager.service.impl; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | |
| | | .setMemo(map.getMemo()); |
| | | |
| | | if (map.getType().equals(Constants.TASK_TYPE_OUT_STOCK_EMPTY)) {//空容器出库 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_EMPTY_OUT.type.toString()); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_EMPTY_OUT.type.toString()); |
| | | if (!available) { |
| | | throw new CoolException("站点不支持空容器出库!!"); |
| | | } |
| | |
| | | || map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) { |
| | | if (orgQty.compareTo(outQty) > 0) { |
| | | //拣料出库 -- 盘点出库 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_PICK_AGAIN_OUT.type); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_PICK_AGAIN_OUT.type); |
| | | if (!available) { |
| | | throw new CoolException("站点不支持此容器拣选出库!!"); |
| | | } |
| | |
| | | } else { |
| | | if (resouce.equals(TaskResouceType.TASK_RESOUCE_STOCK_NOT_OUT.val)){ |
| | | //全板出库 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type); |
| | | if (!available) { |
| | | throw new CoolException("站点不支持越库!!"); |
| | | } |
| | |
| | | task.setTaskType(TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type).setWarehType(warehouseAreas.getType());//越库 |
| | | } else { |
| | | //全板出库 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_OUT.type); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_OUT.type); |
| | | if (!available) { |
| | | throw new CoolException("站点不支持全板出库!!"); |
| | | } |
| | |
| | | } |
| | | } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK)) { |
| | | //盘点出库 |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_CHECK_OUT.type); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId().toString(), siteNo, loc.getBarcode(),TaskType.TASK_TYPE_CHECK_OUT.type); |
| | | if (!available) { |
| | | throw new CoolException("当前站点不支持盘点出库!!"); |
| | | } |
| | |
| | | if (Objects.isNull(map.getTarLoc()) || StringUtils.isBlank(map.getTarLoc())) { |
| | | //目标库位为空,自动获取新库位 |
| | | |
| | | List<String> outWarehouseAreasByReservoirAreaAndContainer = new WarehouseLocationRetrievalUtil().getOutWarehouseAreasByReservoirAreaAndContainer(orgLoc.getAreaId(), orgLoc.getBarcode(), TaskType.TASK_TYPE_LOC_MOVE.type); |
| | | List<String> outWarehouseAreasByReservoirAreaAndContainer = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).getOutWarehouseAreasByReservoirAreaAndContainer(orgLoc.getAreaId(), orgLoc.getBarcode(), TaskType.TASK_TYPE_LOC_MOVE.type); |
| | | if (!Cools.isEmpty(outWarehouseAreasByReservoirAreaAndContainer) || outWarehouseAreasByReservoirAreaAndContainer.isEmpty()) { |
| | | throw new CoolException("未找到可用目标库区!!!源库区:"+orgLoc.getAreaId()); |
| | | } |
| | |
| | | List<LocItem> locItems = this.list(new LambdaQueryWrapper<LocItem>().eq(LocItem::getLocCode, orgLoc.getCode())); |
| | | boolean sign = false; |
| | | for (LocItem locItem : locItems) { |
| | | if (!new WarehouseLocationRetrievalUtil().retrieveMatnrIsItAvailable(areaId, locItem.getMatnrId())){ |
| | | if (!SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).retrieveMatnrIsItAvailable(areaId, locItem.getMatnrId())){ |
| | | sign = true; |
| | | break; |
| | | } |
| | |
| | | package com.vincent.rsf.schedule.manager.service.impl; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | OrderOutItemDto orderOutItemDto = new OrderOutItemDto(); |
| | | // orderOutItemDto.setLocItem(locItem); |
| | | orderOutItemDto.getLocItemList().add(locItem); |
| | | List<String> outboundSiteByReservoirAreaAndContainer = new WarehouseLocationRetrievalUtil().getOutboundSiteByReservoirAreaAndContainer(loc.getAreaId(), loc.getBarcode(),itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type.toString() : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type.toString()); |
| | | List<String> outboundSiteByReservoirAreaAndContainer = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).getOutboundSiteByReservoirAreaAndContainer(loc.getAreaId(), loc.getBarcode(),itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type.toString() : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type.toString()); |
| | | if (!outboundSiteByReservoirAreaAndContainer.isEmpty()) { |
| | | List<OrderOutItemDto.staListDto> maps = new ArrayList<>(); |
| | | for (String staNo : outboundSiteByReservoirAreaAndContainer) { |
| | |
| | | locItem.setBarcode(loc.getBarcode()); |
| | | OrderOutItemDto orderOutItemDto = new OrderOutItemDto(); |
| | | orderOutItemDto.getLocItemList().add(locItem); |
| | | List<String> outboundSiteByReservoirAreaAndContainer = new WarehouseLocationRetrievalUtil().getOutboundSiteByReservoirAreaAndContainer(loc.getAreaId(), loc.getBarcode(),itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type); |
| | | List<String> outboundSiteByReservoirAreaAndContainer = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).getOutboundSiteByReservoirAreaAndContainer(loc.getAreaId(), loc.getBarcode(),itemList.size() == 1 ? TaskType.TASK_TYPE_OUT.type : TaskType.TASK_TYPE_PICK_AGAIN_OUT.type); |
| | | if (!outboundSiteByReservoirAreaAndContainer.isEmpty()) { |
| | | List<OrderOutItemDto.staListDto> maps = new ArrayList<>(); |
| | | for (String staNo : outboundSiteByReservoirAreaAndContainer) { |
| | |
| | | package com.vincent.rsf.schedule.manager.service.impl; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | |
| | | throw new CoolException("任务明细保存失败!!"); |
| | | } |
| | | waitPakinItems.forEach(item -> { |
| | | boolean b = new WarehouseLocationRetrievalUtil().retrieveMatnrIsItAvailable(areaId, item.getMatnrId()); |
| | | boolean b = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).retrieveMatnrIsItAvailable(areaId, item.getMatnrId()); |
| | | if (!b){ |
| | | throw new CoolException("入库失败!!物料Id:"+item.getMatnrId()+"不支持此目标库区:"+areaId); |
| | | } |
| | |
| | | package com.vincent.rsf.schedule.manager.utils; |
| | | |
| | | import com.vincent.rsf.schedule.manager.utils.WarehouseLocationRetrievalUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | |
| | | // orderOutItemDto.setLocItem(locItem); |
| | | orderOutItemDto.setLoc(loc); |
| | | orderOutItemDto.getLocItemList().add(locItem); |
| | | BasContainer containerType = new WarehouseLocationRetrievalUtil().getContainerByBarcode(loc.getBarcode()); |
| | | BasContainer containerType = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).getContainerByBarcode(loc.getBarcode()); |
| | | if (Cools.isEmpty(containerType)){ |
| | | continue; |
| | | } |
| | |
| | | if (Objects.isNull(basStation)) { |
| | | throw new CoolException("绑定站點不存在!!"); |
| | | } |
| | | boolean available = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId().toString(), stationId, loc.getBarcode(),"out"); |
| | | boolean available = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId().toString(), stationId, loc.getBarcode(),"out"); |
| | | if (!available) { |
| | | throw new CoolException("未找到符合条件路径!!!请检查路径配置!!!"); |
| | | } |
| | |
| | | package com.vincent.rsf.schedule.manager.schedules; |
| | | |
| | | import com.vincent.rsf.framework.common.SpringUtils; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | |
| | | throw new CoolException("无可用站点!!"); |
| | | } |
| | | for (String stationName : stationNames) { |
| | | boolean isItAvailable = new WarehouseLocationRetrievalUtil().queryPathIsItAvailableOutArea(loc.getAreaId(), stationName, loc.getBarcode(), TaskType.TASK_TYPE_CHECK_OUT.type); |
| | | boolean isItAvailable = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).queryPathIsItAvailableOutArea(loc.getAreaId(), stationName, loc.getBarcode(), TaskType.TASK_TYPE_CHECK_OUT.type); |
| | | if (!isItAvailable) { |
| | | continue; |
| | | } |
| | |
| | | MissionTaskIssueParam missionTaskIssueParam = new MissionTaskIssueParam(flowStepInstance,subsystemFlowTemplate,flowStepTemplate); |
| | | |
| | | missionTaskIssueParam.setType(RcsTaskType.getTypeDesc(task.getTaskType())); |
| | | boolean souSign = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeReservoirAreaIsItAvailable(taskInstance.getSourceCode()); |
| | | boolean souSign = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).retrieveMissionmMergeReservoirAreaIsItAvailable(taskInstance.getSourceCode()); |
| | | if (souSign){ |
| | | missionTaskIssueParam.setSourceCode(taskInstance.getSourceCode()); |
| | | } else { |
| | | BasStation basStation = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeSizeIsItAvailable(taskInstance.getSourceCode()); |
| | | BasStation basStation = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).retrieveMissionmMergeSizeIsItAvailable(taskInstance.getSourceCode()); |
| | | if (Cools.isEmpty(basStation)){ |
| | | flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1); |
| | | if (flowStepInstance.getRetryTimes()>5){ |
| | |
| | | missionTaskIssueParam.setSourceCode(basStation.getStationName()); |
| | | } |
| | | } |
| | | boolean endSign = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeReservoirAreaIsItAvailable(taskInstance.getTargetCode()); |
| | | boolean endSign = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).retrieveMissionmMergeReservoirAreaIsItAvailable(taskInstance.getTargetCode()); |
| | | if (endSign){ |
| | | missionTaskIssueParam.setTargetCode(taskInstance.getTargetCode()); |
| | | } else { |
| | | BasStation basStation = new WarehouseLocationRetrievalUtil().retrieveMissionmMergeSizeIsItAvailable(taskInstance.getTargetCode()); |
| | | BasStation basStation = SpringUtils.getBean(WarehouseLocationRetrievalUtil.class).retrieveMissionmMergeSizeIsItAvailable(taskInstance.getTargetCode()); |
| | | if (Cools.isEmpty(basStation)){ |
| | | flowStepInstance.setRetryTimes(flowStepInstance.getRetryTimes() + 1); |
| | | if (flowStepInstance.getRetryTimes()>5){ |