| | |
| | | import HslCommunication.Profinet.Siemens.SiemensPLCS; |
| | | import HslCommunication.Profinet.Siemens.SiemensS7Net; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.common.Cools; |
| | | import com.core.common.DateUtils; |
| | | import com.core.common.SpringUtils; |
| | | import com.zy.asrs.entity.*; |
| | | import com.zy.asrs.entity.param.TaskOverToWms; |
| | | import com.zy.asrs.service.*; |
| | | import com.zy.common.utils.HttpHandler; |
| | | import com.zy.core.CrnThread; |
| | | import com.zy.core.cache.MessageQueue; |
| | | import com.zy.core.cache.OutputQueue; |
| | |
| | | import com.zy.core.model.protocol.CrnProtocol; |
| | | import lombok.Data; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.*; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 堆垛机线程 |
| | |
| | | @Slf4j |
| | | public class SiemensCrnThread implements Runnable, CrnThread { |
| | | |
| | | public static final List<Short> rowOne = new ArrayList<Short>() {{ |
| | | add((short) 1); |
| | | add((short) 5); |
| | | add((short) 7); |
| | | add((short) 11); |
| | | add((short) 15); |
| | | add((short) 19); |
| | | }}; |
| | | public static final List<Short> rowTwo = new ArrayList<Short>() {{ |
| | | add((short) 2); |
| | | add((short) 6); |
| | | add((short) 8); |
| | | add((short) 12); |
| | | add((short) 16); |
| | | add((short) 20); |
| | | }}; |
| | | public static final List<Short> rowThree = new ArrayList<Short>() {{ |
| | | add((short) 3); |
| | | add((short) 9); |
| | | add((short) 13); |
| | | add((short) 17); |
| | | add((short) 21); |
| | | }}; |
| | | public static final List<Short> rowFour = new ArrayList<Short>() {{ |
| | | add((short) 4); |
| | | add((short) 10); |
| | | add((short) 14); |
| | | add((short) 18); |
| | | }}; |
| | | private SiemensS7Net siemensNet; |
| | | private CrnSlave slave; |
| | | private CrnProtocol crnProtocol; |
| | | private boolean resetFlag = false; |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | | |
| | | |
| | | |
| | | public SiemensCrnThread(CrnSlave slave) { |
| | |
| | | @Override |
| | | public boolean connect() { |
| | | boolean result = false; |
| | | siemensNet = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp()); |
| | | siemensNet = new SiemensS7Net(SiemensPLCS.S1500, slave.getIp()); |
| | | siemensNet.setRack(slave.getRack().byteValue()); |
| | | siemensNet.setSlot(slave.getSlot().byteValue()); |
| | | OperateResult connect = siemensNet.ConnectServer(); |
| | |
| | | //堆垛机任务完成后访问wms请求任务完成 locationDone 货位处理完成 |
| | | TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); |
| | | TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", crnProtocol.getTaskNo())); |
| | | String tasktype = null; |
| | | switch (taskWrk.getIoType()) { |
| | | case 1: |
| | | tasktype = "RK"; |
| | | break; |
| | | case 2: |
| | | tasktype = "CK"; |
| | | break; |
| | | case 3: |
| | | tasktype = "YK"; |
| | | break; |
| | | default: |
| | | tasktype = "未知"; |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2"); |
| | | TaskOverToWms taskOverToWms = new TaskOverToWms(); |
| | | taskOverToWms.setFeedbackFrom("WCS"); //来源 |
| | | taskOverToWms.setWarehouseId("1688469798893297665"); //仓库标识 |
| | | taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //任务号 |
| | | taskOverToWms.setTaskType(tasktype); // 任务类型 |
| | | taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 容器编码 |
| | | if (taskWrk.getIoType() == 1) { |
| | | taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码 |
| | | taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位 |
| | | } else if (taskWrk.getIoType() == 2) { |
| | | Map<Integer, String> map1 = new HashMap<>(); |
| | | map1.put(102, "J-1101"); |
| | | map1.put(106, "J-1103"); |
| | | map1.put(110, "J-1105"); |
| | | map1.put(114, "J-1107"); |
| | | map1.put(118, "J-1109"); |
| | | map1.put(122, "J-1111"); |
| | | map1.put(305, "H-1101"); |
| | | map1.put(405, "G-1101"); |
| | | taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //设备编码 |
| | | taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //源库位 |
| | | } else if (taskWrk.getIoType() == 3) { |
| | | taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码 |
| | | taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); |
| | | taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位 |
| | | } |
| | | taskOverToWms.setTaskStatus("location_done"); //任务状态 |
| | | String response = null; |
| | | try { |
| | | response = new HttpHandler.Builder() |
| | | .setHeaders(map) |
| | | .setUri("10.32.53.195:8080") |
| | | .setPath("wcsManager/wcsInterface/taskStatusFeedback") |
| | | .setJson(JSON.toJSONString(taskOverToWms)) |
| | | .build() |
| | | .doPost(); |
| | | } catch (Exception e) { |
| | | log.error("堆垛机任务完成,请求wms任务完成接口失败"); |
| | | } |
| | | ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class); |
| | | apiLogService.save("Wms任务完成接口" |
| | | , "10.32.53.195:8080" + "/wcsManager/wcsInterface/taskStatusFeedback" |
| | | , null |
| | | , "127.0.0.1" |
| | | , JSON.toJSONString(taskOverToWms) |
| | | , response |
| | | , true |
| | | ); |
| | | JSONObject jsonObject = JSON.parseObject(response); |
| | | if (jsonObject.getInteger("code").equals(200)) { |
| | | // String tasktype = null; |
| | | // switch (taskWrk.getIoType()) { |
| | | // case 1: |
| | | // tasktype = "RK"; |
| | | // break; |
| | | // case 2: |
| | | // tasktype = "CK"; |
| | | // break; |
| | | // case 3: |
| | | // tasktype = "YK"; |
| | | // break; |
| | | // default: |
| | | // tasktype = "未知"; |
| | | // } |
| | | // Map<String, Object> map = new HashMap<>(); |
| | | // map.put("x-api-key", "7a15b5db-29b6-552c-8cff-0cfec3756da2"); |
| | | // TaskOverToWms taskOverToWms = new TaskOverToWms(); |
| | | // taskOverToWms.setFeedbackFrom("WCS"); //来源 |
| | | // taskOverToWms.setWarehouseId("1688469798893297665"); //仓库标识 |
| | | // taskOverToWms.setTaskNo(taskWrk.getTaskNo()); //任务号 |
| | | // taskOverToWms.setTaskType(tasktype); // 任务类型 |
| | | // taskOverToWms.setContainerCode(taskWrk.getBarcode()); // 容器编码 |
| | | // if (taskWrk.getIoType() == 1) { |
| | | // taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码 |
| | | // taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位 |
| | | // } else if (taskWrk.getIoType() == 2) { |
| | | // Map<Integer, String> map1 = new HashMap<>(); |
| | | // map1.put(102, "J-1101"); |
| | | // map1.put(106, "J-1103"); |
| | | // map1.put(110, "J-1105"); |
| | | // map1.put(114, "J-1107"); |
| | | // map1.put(118, "J-1109"); |
| | | // map1.put(122, "J-1111"); |
| | | // map1.put(305, "H-1101"); |
| | | // map1.put(405, "G-1101"); |
| | | // taskOverToWms.setEquipmentCode(map1.get(taskWrk.getTargetPoint())); //设备编码 |
| | | // taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); //源库位 |
| | | // } else if (taskWrk.getIoType() == 3) { |
| | | // taskOverToWms.setEquipmentCode(String.valueOf(taskWrk.getCrnNo())); //设备编码 |
| | | // taskOverToWms.setSourceLocationCode(taskWrk.getOriginStartPoint()); |
| | | // taskOverToWms.setTargetLocationCode(taskWrk.getOriginTargetPoint()); //目标库位 |
| | | // } |
| | | // taskOverToWms.setTaskStatus("location_done"); //任务状态 |
| | | // String response = null; |
| | | // try { |
| | | // response = new HttpHandler.Builder() |
| | | // .setHeaders(map) |
| | | // .setUri("10.32.53.195:8080") |
| | | // .setPath("wcsManager/wcsInterface/taskStatusFeedback") |
| | | // .setJson(JSON.toJSONString(taskOverToWms)) |
| | | // .build() |
| | | // .doPost(); |
| | | // } catch (Exception e) { |
| | | // log.error("堆垛机任务完成,请求wms任务完成接口失败"); |
| | | // } |
| | | // ApiLogService apiLogService = SpringUtils.getBean(ApiLogService.class); |
| | | // apiLogService.save("Wms任务完成接口" |
| | | // , "10.32.53.195:8080" + "/wcsManager/wcsInterface/taskStatusFeedback" |
| | | // , null |
| | | // , "127.0.0.1" |
| | | // , JSON.toJSONString(taskOverToWms) |
| | | // , response |
| | | // , true |
| | | // ); |
| | | // JSONObject jsonObject = JSON.parseObject(response); |
| | | // if (jsonObject.getInteger("code").equals(200)) { |
| | | if (taskWrk.getIoType() == 3) { |
| | | taskWrk.setWrkSts(4); |
| | | } |
| | |
| | | log.error("堆垛机任务完成,请求wms任务完成接口完成,但返回失败"); |
| | | } |
| | | |
| | | } |
| | | // } |
| | | |
| | | |
| | | } |