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; } }