From de3b9f5658c4a16e1d20764089db47c24e3f9c81 Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期二, 14 四月 2026 16:08:41 +0800
Subject: [PATCH] lsh#

---
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/OutStockServiceImpl.java |    5 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/InBoundServiceImpl.java      |    3 
 asrs-schedule/pom.xml                                                                              |    6 +
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/utils/LocManageUtil.java              |    5 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtSubject.java               |    1 
 /dev/null                                                                                          |  118 -----------------------
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AutoRunSchedules.java               |    3 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/AgvServiceImpl.java          |    3 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/TaskSchedules.java                  |    8 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/LocItemServiceImpl.java  |   15 +-
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/TaskServiceImpl.java     |    3 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/WcsServiceImpl.java          |    7 
 asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/SecurityConfig.java           |  109 +--------------------
 13 files changed, 42 insertions(+), 244 deletions(-)

diff --git a/asrs-schedule/pom.xml b/asrs-schedule/pom.xml
index e32abd4..73ceb44 100644
--- a/asrs-schedule/pom.xml
+++ b/asrs-schedule/pom.xml
@@ -57,6 +57,12 @@
 
 	<build>
 		<finalName>asrs-schedule</finalName>
+		<resources>
+			<resource>
+				<directory>src/main/resources</directory>
+				<filtering>true</filtering>
+			</resource>
+		</resources>
 		<plugins>
 			<plugin>
 				<groupId>org.springframework.boot</groupId>
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/AgvServiceImpl.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/AgvServiceImpl.java
index 423655c..134f456 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/AgvServiceImpl.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/AgvServiceImpl.java
@@ -1,5 +1,6 @@
 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;
@@ -280,7 +281,7 @@
         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))
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/InBoundServiceImpl.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/InBoundServiceImpl.java
index f823ebe..4e514a1 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/InBoundServiceImpl.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/InBoundServiceImpl.java
@@ -1,5 +1,6 @@
 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;
@@ -215,7 +216,7 @@
 //                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,)
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/WcsServiceImpl.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/WcsServiceImpl.java
index d543eed..7838878 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/WcsServiceImpl.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/api/service/impl/WcsServiceImpl.java
@@ -1,5 +1,6 @@
 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;
@@ -771,7 +772,7 @@
 
         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)
@@ -913,7 +914,7 @@
 
         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)
@@ -994,7 +995,7 @@
         //鏌ユ壘璺緞
         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)
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtAuthenticationFilter.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtAuthenticationFilter.java
deleted file mode 100644
index 0894c2c..0000000
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtAuthenticationFilter.java
+++ /dev/null
@@ -1,118 +0,0 @@
-package com.vincent.rsf.schedule.common.security;
-
-import com.vincent.rsf.framework.common.Cools;
-import com.vincent.rsf.schedule.common.config.ConfigProperties;
-import com.vincent.rsf.schedule.common.constant.Constants;
-import com.vincent.rsf.schedule.common.utils.CommonUtil;
-import com.vincent.rsf.schedule.common.utils.JwtUtil;
-import com.vincent.rsf.schedule.system.entity.Menu;
-import com.vincent.rsf.schedule.system.entity.User;
-import com.vincent.rsf.schedule.system.entity.UserLogin;
-import com.vincent.rsf.schedule.system.service.UserLoginService;
-import com.vincent.rsf.schedule.system.service.UserService;
-import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.ExpiredJwtException;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
-import org.springframework.stereotype.Component;
-import org.springframework.web.filter.OncePerRequestFilter;
-
-import jakarta.annotation.Resource;
-import jakarta.servlet.FilterChain;
-import jakarta.servlet.ServletException;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.stream.Collectors;
-
-/**
- * 澶勭悊鎼哄甫token鐨勮姹傝繃婊ゅ櫒
- *
- */
-@Slf4j
-@Component
-public class JwtAuthenticationFilter extends OncePerRequestFilter {
-
-    public static final ArrayList<String> WHITE_KEY = new ArrayList<String>(){
-        private static final long serialVersionUID = 1L;
-        {
-            add("xltys1995");
-        }
-    };
-
-    @Resource
-    private ConfigProperties configProperties;
-    @Resource
-    private UserService userService;
-    @Resource
-    private UserLoginService userLoginService;
-
-    @Override
-    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
-        String access_token = JwtUtil.getAccessToken(request);
-        for (String filterPath : SecurityConfig.FILTER_PATH) {
-            AntPathRequestMatcher antPathMatcher = new AntPathRequestMatcher(filterPath);
-            if (antPathMatcher.matches(request)) {
-                access_token = "";
-            }
-        }
-        if (!Cools.isEmpty(access_token)) {
-            try {
-                User user;
-                if (WHITE_KEY.contains(access_token)) {
-                    user = userService.getByUsername("root", 1L);
-                    if (user == null) {
-                        throw new UsernameNotFoundException("Username not found");
-                    }
-                    userService.setUserAuthInfo(user);
-                    List<Menu> authorities = user.getAuthorities().stream()
-                            .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
-                    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
-                            user, null, authorities);
-                    SecurityContextHolder.getContext().setAuthentication(authentication);
-                } else {
-                    // 瑙f瀽token
-                    Claims claims = JwtUtil.parseToken(access_token, configProperties.getTokenKey());
-                    JwtSubject jwtSubject = JwtUtil.getJwtSubject(claims);
-                    user = userService.getByUsername(jwtSubject.getUsername(), jwtSubject.getTenantId());
-                    if (user == null) {
-                        throw new UsernameNotFoundException("Username not found");
-                    }
-                    userService.setUserAuthInfo(user);
-                    List<Menu> authorities = user.getAuthorities().stream()
-                            .filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
-                    UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
-                            user, null, authorities);
-                    SecurityContextHolder.getContext().setAuthentication(authentication);
-                    // token灏嗚杩囨湡绛惧彂鏂皌oken, 闃叉绐佺劧閫�鍑虹櫥褰�
-                    long expiration = (claims.getExpiration().getTime() - new Date().getTime()) / 1000 / 60;
-                    if (expiration < configProperties.getTokenRefreshTime()) {
-                        String token = JwtUtil.buildToken(jwtSubject, configProperties.getTokenExpireTime(),
-                                configProperties.getTokenKey());
-                        response.addHeader(Constants.TOKEN_HEADER_NAME, token);
-                        userLoginService.saveAsync(user.getId(), token, UserLogin.TYPE_REFRESH, user.getTenantId(), null, request);
-                    }
-                }
-            } catch (ExpiredJwtException e) {
-                log.error("JwtAuthenticationFilter ExpiredJwtException", e);
-                CommonUtil.responseError(response, Constants.TOKEN_EXPIRED_CODE, Constants.TOKEN_EXPIRED_MSG,
-                        e.getMessage());
-                return;
-            } catch (Exception e) {
-                log.error("JwtAuthenticationFilter", e);
-                CommonUtil.responseError(response, Constants.BAD_CREDENTIALS_CODE, Constants.BAD_CREDENTIALS_MSG,
-                        e.toString());
-                return;
-            }
-        }
-        chain.doFilter(request, response);
-    }
-
-}
-
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtSubject.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtSubject.java
index daaccad..b565014 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtSubject.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/JwtSubject.java
@@ -29,4 +29,3 @@
     private Long tenantId;
 
 }
-
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/SecurityConfig.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/SecurityConfig.java
index 952a58f..45e1ef7 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/SecurityConfig.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/common/security/SecurityConfig.java
@@ -1,125 +1,28 @@
 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());
-        }
-
-    }
-
 }
-
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/LocItemServiceImpl.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/LocItemServiceImpl.java
index 4351891..77b7922 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/LocItemServiceImpl.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/LocItemServiceImpl.java
@@ -1,5 +1,6 @@
 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;
@@ -117,7 +118,7 @@
                 .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("绔欑偣涓嶆敮鎸佺┖瀹瑰櫒鍑哄簱锛侊紒");
             }
@@ -221,7 +222,7 @@
                     || map.getType().equals(Constants.TASK_TYPE_WAVE_OUT_STOCK)) {
                 if (orgQty.compareTo(outQty) > 0) {
                     //鎷f枡鍑哄簱 -- 鐩樼偣鍑哄簱
-                    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("绔欑偣涓嶆敮鎸佹瀹瑰櫒鎷i�夊嚭搴擄紒锛�");
                     }
@@ -230,7 +231,7 @@
                 } 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("绔欑偣涓嶆敮鎸佽秺搴擄紒锛�");
                         }
@@ -238,7 +239,7 @@
                         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("绔欑偣涓嶆敮鎸佸叏鏉垮嚭搴擄紒锛�");
                         }
@@ -249,7 +250,7 @@
                 }
             } 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("褰撳墠绔欑偣涓嶆敮鎸佺洏鐐瑰嚭搴擄紒锛�");
                 }
@@ -440,7 +441,7 @@
         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());
             }
@@ -449,7 +450,7 @@
                 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;
                     }
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/OutStockServiceImpl.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/OutStockServiceImpl.java
index 9aa0464..d0ae821 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/OutStockServiceImpl.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/OutStockServiceImpl.java
@@ -1,5 +1,6 @@
 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;
@@ -832,7 +833,7 @@
                         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) {
@@ -917,7 +918,7 @@
                         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) {
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/TaskServiceImpl.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/TaskServiceImpl.java
index f041d4b..e6fbc9f 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/TaskServiceImpl.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/service/impl/TaskServiceImpl.java
@@ -1,5 +1,6 @@
 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;
@@ -202,7 +203,7 @@
                 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);
                 }
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/utils/LocManageUtil.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/utils/LocManageUtil.java
index ad3d5e6..229dd7d 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/utils/LocManageUtil.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/manager/utils/LocManageUtil.java
@@ -1,5 +1,6 @@
 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;
@@ -225,7 +226,7 @@
 //                        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;
                         }
@@ -317,7 +318,7 @@
                             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("鏈壘鍒扮鍚堟潯浠惰矾寰勶紒锛侊紒璇锋鏌ヨ矾寰勯厤缃紒锛侊紒");
                             }
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AutoRunSchedules.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AutoRunSchedules.java
index a576d92..39051a9 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AutoRunSchedules.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/AutoRunSchedules.java
@@ -1,5 +1,6 @@
 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;
@@ -229,7 +230,7 @@
                     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;
                     }
diff --git a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/TaskSchedules.java b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/TaskSchedules.java
index 9e1ee02..03cb4bd 100644
--- a/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/TaskSchedules.java
+++ b/asrs-schedule/src/main/java/com/vincent/rsf/schedule/schedules/TaskSchedules.java
@@ -180,11 +180,11 @@
                     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){
@@ -200,11 +200,11 @@
                             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){

--
Gitblit v1.9.1