From a02c3f8daea735db320a8febecb0fb37b7bc5051 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 20 六月 2025 15:54:54 +0800
Subject: [PATCH] 站点播种获取优化

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java     |   10 ++++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java                                |   27 +++++++++++++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java |   21 +++++++---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/utils/HttpEssUtils.java                    |    2 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java       |    8 +++-
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java          |    4 +
 6 files changed, 62 insertions(+), 10 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java
index 2e98334..c62d794 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java
@@ -8,15 +8,22 @@
 import com.zy.asrs.wms.apis.wcs.services.WaveManagentService;
 import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
 import com.zy.asrs.wms.system.controller.BaseController;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 import java.util.Objects;
+
+import static com.zy.asrs.wms.utils.HttpUtils.getClientIpAddress;
 
 /**
  * 澶у睆鎿嶄綔鍩烘湰鍔熻兘
  */
+@Slf4j
 @RestController
 @RequestMapping("/wave")
 public class WaveManagentController extends BaseController {
@@ -74,7 +81,8 @@
      */
     @GetMapping("/seed/locs")
     public R getSeedLoc() {
-        return waveManagentService.AllSeedLocs();
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        return waveManagentService.AllSeedLocs(request);
     }
 
     /***
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
index b59a34e..fff757e 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java
@@ -7,6 +7,7 @@
 import com.zy.asrs.wms.apis.wcs.entity.domain.WaveTaskDetl;
 import com.zy.asrs.wms.apis.wcs.entity.response.SowSeeds;
 import com.zy.asrs.wms.apis.wcs.services.WaveManagentService;
+import com.zy.asrs.wms.apis.wcs.utils.HttpEssUtils;
 import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.dto.LargeScreenTaskDto;
 import com.zy.asrs.wms.asrs.entity.enums.OrderPickStatus;
@@ -15,15 +16,16 @@
 import com.zy.asrs.wms.asrs.mapper.*;
 import com.zy.asrs.wms.asrs.service.TaskService;
 import com.zy.asrs.wms.asrs.service.WaveSeedService;
-import org.aspectj.weaver.ast.Or;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
+import javax.servlet.http.HttpServletRequest;
 import java.util.List;
-import java.util.stream.Collectors;
 
+import static com.zy.asrs.wms.utils.HttpUtils.getClientIpAddress;
+
+@Slf4j
 @Service
 public class WaveManagentServiceImpl implements WaveManagentService {
     @Autowired
@@ -121,8 +123,15 @@
      * @return
      */
     @Override
-    public R AllSeedLocs() {
-        List<CacheSite> cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>());
+    public R AllSeedLocs(HttpServletRequest request) {
+        log.info("ip鍦板潃====>锛� {}",  getClientIpAddress(request));
+        String locIp =  getClientIpAddress(request);
+        List<CacheSite> cacheSites;
+        if (locIp.equals(HttpEssUtils.S2_SITE_NO)) {
+            cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getChannel, "S2"));
+        } else {
+            cacheSites = cacheSiteMapper.selectList(new LambdaQueryWrapper<CacheSite>().eq(CacheSite::getChannel, "S1"));
+        }
         if (cacheSites.isEmpty()) {
             return R.error("褰撳墠鎾澧欎俊鎭湭璁剧疆锛侊紒");
         }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
index 7caf26c..31833bf 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
@@ -124,8 +124,12 @@
                         List<TaskDetl> taskDetlByTaskId = taskDetlService.getTaskDetlByTaskId(task.getId());
                         double sum = taskDetlByTaskId.stream().mapToDouble(TaskDetl::getAnfme).sum();
                         SlapLightControlParam slapLightControlParam = new SlapLightControlParam();
-                        slapLightControlParam.setControllerCode(cacheSite.getMemo()).setTagCode(cacheSite.getSiteNo())
-                                .setColor("GREEN").setMode("LIGHT").setDisplay(String.valueOf(sum));
+                        slapLightControlParam
+                                .setControllerCode(cacheSite.getMemo())
+                                .setTagCode(cacheSite.getSiteNo())
+                                .setColor("GREEN")
+                                .setMode("LIGHT")
+                                .setDisplay(String.valueOf(sum));
                         // 鍙戣捣浜伅璇锋眰
                         log.info("浠诲姟{}鍒拌揪鎷i�変綅锛屾挱绉嶅浜伅涓嬪彂",task.getTaskNo(), JSONObject.toJSONString(slapLightControlParam));
                         CommonReponse response = HttpEssUtils.post("鍒拌揪鎷i�変綅锛屾挱绉嶅浜伅", HttpEssUtils.PLT_SEND_COMMAND, slapLightControlParam);
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java
index 4239665..edf791c 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java
@@ -4,6 +4,8 @@
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.wms.asrs.entity.param.WaveSeedReviewParam;
 
+import javax.servlet.http.HttpServletRequest;
+
 public interface WaveManagentService {
     R getSowSeeds();
 
@@ -19,5 +21,5 @@
 
     R getAllOrders(String waveNo);
 
-    R AllSeedLocs();
+    R AllSeedLocs(HttpServletRequest request);
 }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/utils/HttpEssUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/utils/HttpEssUtils.java
index 1d1887f..7b4848a 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/utils/HttpEssUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/utils/HttpEssUtils.java
@@ -27,6 +27,8 @@
      */
     public static final String baseUrl = "http://192.168.2.200:9046";
 
+    public static final String S2_SITE_NO =  "192.168.2.42";
+
     /**
      * 璇锋眰澶�
      */
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java
index 149bfcd..0639cde 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java
@@ -3,6 +3,7 @@
 import com.alibaba.fastjson.JSON;
 import com.zy.asrs.framework.common.R;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.PrintWriter;
@@ -23,4 +24,30 @@
         }
     }
 
+    public static String getClientIpAddress(HttpServletRequest request) {
+        String ip = request.getHeader("X-Forwarded-For");
+
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_CLIENT_IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+
+        // 瀵逛簬閫氳繃澶氫釜浠g悊鐨勬儏鍐碉紝绗竴涓狪P涓哄鎴风鐪熷疄IP锛屽涓狪P鎸夌収','鍒嗗壊
+        if (ip != null && ip.contains(",")) {
+            ip = ip.split(",")[0].trim();
+        }
+        return ip;
+    }
+
 }

--
Gitblit v1.9.1