src/main/java/com/zy/asrs/entity/GetWmsDto.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/ToWmsDTO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/utils/Utils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/resources/application.yml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/entity/GetWmsDto.java
New file @@ -0,0 +1,20 @@ package com.zy.asrs.entity; import lombok.Data; @Data public class GetWmsDto { private String warehouseId; //仓库标识 private String warehouseCode; //wms出库任务下发接口 private String taskType; //任务类型 CK、YK、RK、PD private String taskNo; //任务号 private String taskPriority; //优先级 private String containerCode; //容器编码 private String containerTypeCode; //容器类型 private String emptyContainer; //是否空托盘 Y:是 N:否 private Integer taskTunnel; //任务巷道 private String createTime; //创建时间 YYYY-MM-DD HH24:MI:SS private String targetLocationCode; //目标货位 } src/main/java/com/zy/asrs/entity/ToWmsDTO.java
@@ -1,5 +1,6 @@ package com.zy.asrs.entity; import io.swagger.models.auth.In; import lombok.Data; import java.util.List; @@ -10,5 +11,7 @@ private String containerCode; private String applyType; private String wharfSource; private Integer taskTunnel; private List<Integer> canInboundTunnels; } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -10,6 +10,7 @@ import com.zy.asrs.domain.enums.TaskStatusType; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.WMSAndAGVInterfaceParam; import com.zy.asrs.entity.param.taskCreateParam; import com.zy.asrs.mapper.*; import com.zy.asrs.service.*; import com.zy.asrs.utils.CommandUtils; @@ -43,10 +44,7 @@ import org.springframework.transaction.annotation.Transactional; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; /** * 立体仓库WCS系统主流程业务 @@ -93,7 +91,7 @@ private String movePath; public void generateStoreWrkFile() { public void generateStoreWrkFile() throws IOException { // 根据输送线plc遍历 for (DevpSlave devp : slaveProperties.getDevp()) { // 遍历入库口 @@ -109,7 +107,7 @@ Short workNo = staProtocol.getWorkNo(); // 判断是否满足入库条件 if (staProtocol.isAutoing() && staProtocol.isLoading() && !staProtocol.isInEnable() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && (workNo >= 0) && staProtocol.isPakMk()) { @@ -166,29 +164,54 @@ } String barcode = barcodeThread.getBarcode(); if(!Cools.isEmpty(barcode)) { // ToWmsDTO toWmsDTO = new ToWmsDTO(); // Map<String, Object> map = new HashMap<>(); // map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); // List<Integer> list = openServiceImpl.getInEnableRoadway(); // // //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); // toWmsDTO.setWarehouseId("1688469798893297665"); // toWmsDTO.setContainerCode(param.getContainerCode()); // toWmsDTO.setApplyType("TUNNEL"); // toWmsDTO.setWharfSource(null); // toWmsDTO.setCanInboundTunnels(list); // String response = null; // try { // response = new HttpHandler.Builder() // .setHeaders(map) // .setUri(wmsUrl) // .setPath("wcsManager/wcsInterface/inboundTaskApply") // .setJson(JSON.toJSONString(toWmsDTO)) // .build() // .doPost(); // }catch (Exception e){ // // } ToWmsDTO toWmsDTO = new ToWmsDTO(); Map<String, Object> map = new HashMap<>(); map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2"); List<Integer> list = openServiceImpl.getInEnableRoadway(); TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode).eq("crn_no",inSta.getBarcode())); if (Cools.isEmpty(taskWrk)){ continue; } if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null && taskWrk.getWrkNo() != null){ staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue()); staProtocol.setStaNo(inSta.getStaNo().shortValue()); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); }else { //TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo()); toWmsDTO.setWarehouseId("1688469798893297665"); toWmsDTO.setContainerCode(barcode); toWmsDTO.setApplyType("TUNNEL_LOCATION"); toWmsDTO.setTaskTunnel(taskWrk.getCrnNo()); toWmsDTO.setCanInboundTunnels(list); String response = null; try { response = new HttpHandler.Builder() .setHeaders(map) .setUri(wmsUrl) .setPath("wcsManager/wcsInterface/inboundTaskApply") .setJson(JSON.toJSONString(toWmsDTO)) .build() .doPost(); }catch (Exception e){ log.error("wms通讯失败,"+e.getMessage()); continue; } JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code").equals(200)) { GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class); taskWrk.setTargetPoint(Utils.getWcsLocNo(getWmsDto.getTargetLocationCode())); taskWrk.setStartPoint(String.valueOf(inSta.getBackSta())); if (!taskWrkService.updateById(taskWrk)){ log.error("保存wms库位号失败"); } }else { log.error("wms通讯失败,"+jsonObject.get("msg")); } } } } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -184,7 +184,7 @@ map.put(115,4); map.put(119,5); map.put(123,6); map.put(300,7); //map.put(301,7); // 根据输送线plc遍历 for (DevpSlave devp : slaveProperties.getDevp()) { // 遍历入库口 @@ -199,6 +199,9 @@ } Short workNo = staProtocol.getWorkNo(); if (workNo == 0 && !staProtocol.isLoading()){ if (Cools.isEmpty(map.get(inSta.getStaNo()))){ continue; } list.add(map.get(inSta.getStaNo())); } } src/main/java/com/zy/asrs/utils/Utils.java
@@ -27,25 +27,32 @@ if (split[3].equals("01")){ ints = Arrays.copyOfRange(wcsRow, 0, (wcsRow.length+2-1) / 2); if (split[4].equals("01")){ ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1); ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1); }else { ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2); } }else { ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2,wcsRow.length-1 ); ints = Arrays.copyOfRange(wcsRow, (wcsRow.length+2-1) / 2-1,wcsRow.length-1 ); if (split[4].equals("01")){ ints = Arrays.copyOfRange(ints, 0, wcsRow.length / 2); ints = Arrays.copyOfRange(ints, 0, ints.length / 2); }else { ints = Arrays.copyOfRange(ints, wcsRow.length / 2,wcsRow.length-1); ints = Arrays.copyOfRange(ints, ints.length / 2-1,ints.length-1); } } int i = ints[0]; String wcsLocNo = ""; if (i>9){ wcsLocNo = i+"0"+split[1]+split[2]; Integer bay = Integer.parseInt(split[1])+1; String bay2 = ""; if (bay>9){ bay2 = bay.toString(); }else { wcsLocNo = "0"+i+"0"+split[1]+split[2]; bay2 = "0"+bay; } if (i>9){ wcsLocNo = i+"0"+bay2+split[2]; }else { wcsLocNo = "0"+i+"0"+bay2+split[2]; } src/main/resources/application.yml
@@ -49,7 +49,7 @@ # WMS系统ip #url: 10.32.53.195:8080 # WMS系统ip url: w.informfengyun.com:58088/prod-api url: 10.32.53.195:8080 # 入库任务申请接口 inboundTaskApplyPath: api/InterFace/get_InterFace_TestStorage # 任务状态反馈接口