| src/main/java/com/zy/asrs/controller/MobileController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/result/ForwardAGVTaskDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/result/HIKApiDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/entity/result/HIKResultDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/MobileService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| src/main/java/com/zy/common/constant/HIKApiConstant.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -60,6 +60,13 @@ @Resource private StaDescService staDescService; @PostMapping("/agv/callEmptyCar") @ManagerAuth public R pdaAgvFinishedCall(@RequestBody AgvCallParams params){ return mobileService.callEmptyCar(params); } @RequestMapping("/pda/WarehouseOut/v1") @ManagerAuth(memo = "并板途中拣料-参考念初") public R WarehouseOutV1(@RequestBody CombParam combParam) { src/main/java/com/zy/asrs/entity/result/ForwardAGVTaskDTO.java
New file @@ -0,0 +1,39 @@ package com.zy.asrs.entity.result; import lombok.Data; import java.util.List; @Data public class ForwardAGVTaskDTO { private String reqCode; private String reqTime; private String taskTyp; private String ctnrCode; private List<PositionCodePaths> positionCodePath; private String clientCode = ""; private String tokenCode = ""; private String ctnrTyp = ""; private String ctnrNum = ""; private String wbCode = ""; private String podCode = ""; private String podDir = ""; private String podTyp = ""; private String materialLot = ""; private String priority = ""; private String taskCode; private String agvCode = ""; private String data = ""; @Data public static class PositionCodePaths{ private String positionCode; private String type; public PositionCodePaths(String positionCode, String type){ this.positionCode = positionCode; this.type = type; } } } src/main/java/com/zy/asrs/entity/result/HIKApiDTO.java
New file @@ -0,0 +1,38 @@ package com.zy.asrs.entity.result; import lombok.Data; import lombok.experimental.Accessors; @Data @Accessors(chain = true) public class HIKApiDTO { /** * 源站 */ private String org; /** * 源站类型 */ private String orgType; /** * 目标站 */ private String tar; /** * 目标站类型 */ private String tarType; /** * 任务类型 */ private String taskType; /** * 容器类型 */ private String ctnrType; /** * 优先级 */ private String priority; } src/main/java/com/zy/asrs/entity/result/HIKResultDTO.java
New file @@ -0,0 +1,9 @@ package com.zy.asrs.entity.result; import lombok.Data; @Data public class HIKResultDTO { private boolean success = false; private String message; } src/main/java/com/zy/asrs/service/MobileService.java
@@ -8,6 +8,7 @@ import com.zy.asrs.entity.param.*; import java.util.Date; import java.util.Map; public interface MobileService { @@ -99,4 +100,6 @@ * @version 1.0 */ R OutCallAgv(AgvCallParams params, Long userId); R callEmptyCar(AgvCallParams params); } src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -8,13 +8,16 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; import com.zy.asrs.enums.CommonEnum; import com.zy.asrs.entity.result.ForwardAGVTaskDTO; import com.zy.asrs.entity.result.HIKApiDTO; import com.zy.asrs.entity.result.HIKResultDTO; import com.zy.asrs.enums.LocStsType; import com.zy.asrs.mapper.LocMastMapper; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; import com.zy.asrs.utils.MatUtils; import com.zy.asrs.utils.OrderInAndOutUtil; import com.zy.common.constant.HIKApiConstant; import com.zy.common.constant.MesConstant; import com.zy.common.entity.Parameter; import com.zy.common.model.DetlDto; @@ -1272,6 +1275,31 @@ return R.ok(); } @Override public R callEmptyCar(AgvCallParams params) { List<LocCache> locSts = locCacheService.selectList(new EntityWrapper<LocCache>().eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)); if (locSts.isEmpty()){ throw new CoolException("暂无空板库位"); } HIKApiDTO hikApiDTO =new HIKApiDTO() .setOrg(locSts.get(0).getLocNo()) .setOrgType("05") .setTar(params.getTarSite()) .setTarType("05") .setTaskType("GT5") .setPriority("1") .setCtnrType("2") ; HIKResultDTO hikResultDTO = sendAgvTask(hikApiDTO, HIKApiConstant.AGV_CALL_IN_PATH); if (!hikResultDTO.isSuccess()){ return R.error(hikResultDTO.getMessage()); } return R.ok(); } /** * @author Ryan * @date 2025/9/25 @@ -1429,4 +1457,58 @@ throw new CoolException("移转失败,目标库位状态:" + loc.getLocSts$()); } } public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO,String path){ HIKResultDTO result = new HIKResultDTO(); ForwardAGVTaskDTO forwardAGVTaskParam = new ForwardAGVTaskDTO(); forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", "")); forwardAGVTaskParam.setClientCode("IWMS"); forwardAGVTaskParam.setTaskTyp(haiKangApiDTO.getTaskType()); forwardAGVTaskParam.setCtnrTyp(haiKangApiDTO.getCtnrType()); forwardAGVTaskParam.setPriority(haiKangApiDTO.getPriority()); List<ForwardAGVTaskDTO.PositionCodePaths> positionCodePathsList = new ArrayList<>(); positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType())); positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType())); forwardAGVTaskParam.setPositionCodePath(positionCodePathsList); String body = JSON.toJSONString(forwardAGVTaskParam); String response = ""; try { response = new HttpHandler.Builder() .setUri(HIKApiConstant.AGV_IP) .setPath(path) .setJson(body) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(0)) { result.setSuccess(true); } else { result.setMessage(jsonObject.getString("message")); log.error("发送agv任务失败!!!url:{};request:{};response:{}", HIKApiConstant.AGV_IP + path, body, response); } // {"code":"1","data":"","interrupt":false,"message":"重复提交","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"} } catch (Exception e) { result.setMessage(e.getMessage()); log.error("发送agv任务异常", e); } finally { try { // 保存接口日志 apiLogService.save( "发送agv任务", HIKApiConstant.AGV_IP + path, null, "127.0.0.1", body, response, result.isSuccess() ); } catch (Exception e) { log.error("", e); } } return result; } } src/main/java/com/zy/common/constant/HIKApiConstant.java
New file @@ -0,0 +1,15 @@ package com.zy.common.constant; public class HIKApiConstant { // AGV IP地址 public static final String AGV_IP = "10.0.100.110:8182"; // 入库呼叫AGV取货 public static final String AGV_CALL_IN_PATH = "/rcms/services/rest/hikRpcService/genAgvSchedulingTask"; // AGV绑定仓位 public static final String AGV_BIND_PATH = "/rcms/services/rest/hikRpcService/bindCtnrAndBin"; }