skyouc
2025-06-20 a02c3f8daea735db320a8febecb0fb37b7bc5051
站点播种获取优化
6个文件已修改
72 ■■■■ 已修改文件
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/controller/WaveManagentController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WaveManagentServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/WaveManagentService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/utils/HttpEssUtils.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/utils/HttpUtils.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
    /***
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("当前播种墙信息未设置!!");
        }
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("任务{}到达拣选位,播种墙亮灯下发",task.getTaskNo(), JSONObject.toJSONString(slapLightControlParam));
                        CommonReponse response = HttpEssUtils.post("到达拣选位,播种墙亮灯", HttpEssUtils.PLT_SEND_COMMAND, slapLightControlParam);
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);
}
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";
    /**
     * 请求头
     */
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();
        }
        // 对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
        if (ip != null && ip.contains(",")) {
            ip = ip.split(",")[0].trim();
        }
        return ip;
    }
}