Administrator
6 天以前 aa33e56e37cd19b88ae8eea69c5ebc7c6da8b1d2
src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -5,15 +5,12 @@
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;
@@ -26,10 +23,9 @@
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;
/**
 * 堆垛机线程
@@ -39,41 +35,11 @@
@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) {
@@ -268,7 +234,7 @@
    @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();
@@ -333,72 +299,72 @@
                        //堆垛机任务完成后访问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);
                            }
@@ -412,7 +378,7 @@
                            log.error("堆垛机任务完成,请求wms任务完成接口完成,但返回失败");
                        }
                    }
//                    }
                }