src/main/java/com/zy/asrs/controller/OpenController.java
@@ -13,10 +13,7 @@ import com.zy.core.thread.SiemensDevpThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; @Slf4j @RestController @@ -61,4 +58,16 @@ return rcsService.reporterTask(param); } // 反馈任务执行结果 @GetMapping("/api/robot/reporter/task1") public void reporterTask1(){ Integer sourceStaNo = 401; SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone(); boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol)); // log.info("AGV放货完成,给站点写9991工作号,下发任务:{},站点:{},agv任务号:{}", result, task.getStaNo(), task.getTaskNo()); } } src/main/java/com/zy/asrs/controller/SiteController.java
@@ -81,7 +81,8 @@ vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 空板信号 vo.setStaNo(staProtocol.getStaNo()); // 目标站 // vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "低" : "高"); //高低库位 vo.setLocType1(devp.getDevNo()==102 ? "高" : "低"); vo.setLocType1(staProtocol.isHigh() ? "高" : "低"); vo.setEmptyOutType(staProtocol.isEmptyOutType() ? "Y" : "N"); } return R.ok().add(list); } src/main/java/com/zy/asrs/domain/vo/SiteTableVo.java
@@ -37,4 +37,6 @@ //高低库位 private String locType1 = "-"; private String emptyOutType = "-"; } src/main/java/com/zy/asrs/entity/AgvTask.java
File was renamed from src/main/java/com/zy/asrs/entity/Task.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.annotations.TableId; import com.baomidou.mybatisplus.annotations.TableName; import com.baomidou.mybatisplus.enums.IdType; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.SpringUtils; import com.zy.asrs.service.BasCrnpService; @@ -22,7 +21,7 @@ @Data @TableName("agv_task") @Accessors(chain = true) public class Task implements Serializable { public class AgvTask implements Serializable { private static final long serialVersionUID = 1L; @@ -345,7 +344,7 @@ @TableField("task_no") private String taskNo; public Task() {} public AgvTask() {} public String getYmd$(){ if (Cools.isEmpty(this.ymd)){ src/main/java/com/zy/asrs/mapper/AgvTaskMapper.java
New file @@ -0,0 +1,12 @@ package com.zy.asrs.mapper; import com.baomidou.mybatisplus.mapper.BaseMapper; import com.zy.asrs.entity.AgvTask; import org.apache.ibatis.annotations.Mapper; import org.springframework.stereotype.Repository; @Mapper @Repository public interface AgvTaskMapper extends BaseMapper<AgvTask> { } src/main/java/com/zy/asrs/mapper/TaskMapper.java
File was deleted src/main/java/com/zy/asrs/service/AgvTaskService.java
New file @@ -0,0 +1,7 @@ package com.zy.asrs.service; import com.baomidou.mybatisplus.service.IService; import com.zy.asrs.entity.AgvTask; public interface AgvTaskService extends IService<AgvTask> { } src/main/java/com/zy/asrs/service/TaskService.java
File was deleted src/main/java/com/zy/asrs/service/impl/AgvTaskServiceImpl.java
New file @@ -0,0 +1,12 @@ package com.zy.asrs.service.impl; import com.baomidou.mybatisplus.service.impl.ServiceImpl; import com.zy.asrs.entity.AgvTask; import com.zy.asrs.mapper.AgvTaskMapper; import com.zy.asrs.service.AgvTaskService; import org.springframework.stereotype.Service; @Service("agvTaskService") public class AgvTaskServiceImpl extends ServiceImpl<AgvTaskMapper, AgvTask> implements AgvTaskService { } src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -137,7 +137,8 @@ if (staProtocol.isAutoing() && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 9999 && staProtocol.getWorkNo() == 9991 && staProtocol.isEmptyOutType() && staProtocol.isPakMk()) { News.warnNoLog("" + mark + " - 0" + " - 开始执行"); src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -4,11 +4,10 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.entity.*; import com.zy.asrs.enums.RcsRetMethodEnum; import com.zy.asrs.service.AgvTaskService; import com.zy.asrs.service.RcsService; import com.zy.asrs.service.TaskService; import com.zy.core.cache.MessageQueue; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; @@ -28,12 +27,8 @@ import java.net.URL; import java.net.URLConnection; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @Slf4j @Service @@ -43,7 +38,7 @@ private String HIK_URL; @Autowired private TaskService taskService; private AgvTaskService taskService; /** @@ -55,6 +50,7 @@ */ @Override public RcsReturn reporterTask(RcsReporterTask rcsReporterTask) { log.info("海康AGV站点任务请求={}", JSONObject.toJSONString(rcsReporterTask)); RcsReturn rcsReturn = new RcsReturn(); @@ -68,14 +64,11 @@ String carrierType = values.getString("carrierType"); String slotCategory = values.getString("slotCategory"); String slotCode = values.getString("slotCode"); EntityWrapper<Task> wrapper = new EntityWrapper<>(); EntityWrapper<AgvTask> wrapper = new EntityWrapper<>(); wrapper.eq("task_no", robotTaskCode); Task task = taskService.selectOne(wrapper); AgvTask task = taskService.selectOne(wrapper); if(!Cools.isEmpty(task)){ try { // q3,q8=1 if ("1".equals(carrierType)) { //AGV switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) { //放货申请 case APPLY_PUT: { @@ -85,15 +78,15 @@ //wcs反馈rcs继续执行 if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) { RcsTaskContinue rcsTaskContinue = new RcsTaskContinue(); rcsTaskContinue.setRobotTaskCode(task.getTaskNo()); rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1)); rcsTaskContinue.setTriggerType("TASK"); rcsTaskContinue.setTriggerCode(task.getTaskNo()); rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1)); String url =HIK_URL + "api/robot/controller/task/extend/continue"; String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue)); if (!StringUtils.isEmpty(response) && response.contains("code")){ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class); if("200".equals(rcsReturn1.getCode())) { if ("SUCCESS".equals(rcsReturn1.getCode())) { //出发PLC站点的扫码器扫码 boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol)); log.info("AGV放货完成,给站点写9991工作号,下发任务:{},站点:{},agv任务号:{}",result,task.getStaNo(),task.getTaskNo()); @@ -161,9 +154,9 @@ && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) { RcsTaskContinue rcsTaskContinue = new RcsTaskContinue(); rcsTaskContinue.setRobotTaskCode(task.getTaskNo()); rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1)); rcsTaskContinue.setTriggerType("TASK"); rcsTaskContinue.setTriggerCode(task.getTaskNo()); rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1)); String url =HIK_URL + "api/robot/controller/task/extend/continue"; String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue)); @@ -223,7 +216,7 @@ } break; } } } catch (Exception e) { log.error("RCS反馈任务进度处理异常 - {}", rcsReporterTask, e); @@ -248,8 +241,7 @@ PrintWriter out = null; BufferedReader in = null; StringBuilder result = new StringBuilder(); try { try { log.info("sendPost - {} - {}", url, param); URL realUrl = new URL(url); URLConnection conn = realUrl.openConnection(); @@ -272,43 +264,27 @@ out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8)); String line; while ((line = in.readLine()) != null) { while ((line = in.readLine()) != null) { result.append(line); } log.info("recv - {}", result); } catch (ConnectException e) { } catch (ConnectException e) { log.error("调用HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e); } catch (SocketTimeoutException e) { } catch (SocketTimeoutException e) { log.error("调用HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e); } catch (IOException e) { } catch (IOException e) { log.error("调用HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e); } catch (Exception e) { } catch (Exception e) { log.error("调用HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e); } finally { try { if (out != null) { } finally { try { if (out != null) { out.close(); } if (in != null) { if (in != null) { in.close(); } } catch (IOException ex) { } catch (IOException ex) { log.error("调用in.close Exception, url=" + url + ",param=" + param, ex); } } src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
File was deleted src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -350,12 +350,12 @@ if (null == staProtocol) { return; } ArrayList<Integer> staNos = getStaNo(); int index = staNos.indexOf(staProtocol.getSiteId()); if(staProtocol.getSiteId() == 307){ index = 0; int index = 0; if(staProtocol.getSiteId() == 402){ index = 1; } OperateResult writeResult1 = siemensS7Net.Write("DB100.500" + index, 1); // 扫码器触发 OperateResult writeResult1 = siemensS7Net.Write("DB100.500." + index, true); // 扫码器触发 if (!writeResult1.IsSuccess) { OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol))); src/main/resources/mapper/AgvTaskMapper.xml
File was renamed from src/main/resources/mapper/TaskMapper.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.zy.asrs.mapper.TaskMapper"> <mapper namespace="com.zy.asrs.mapper.AgvTaskMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.Task"> <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvTask"> <id column="id" property="id" /> <result column="task_type" property="taskType" /> src/main/webapp/views/pipeline.html
@@ -116,6 +116,7 @@ <th>空板信号</th> <th>目标站</th> <th>高低库位</th> <th>空料架</th> </tr> </thead> <!-- 表格内容 --> @@ -310,6 +311,7 @@ setVal(tr.children("td").eq(7), table[i-1].emptyMk); setVal(tr.children("td").eq(8), table[i-1].staNo); setVal(tr.children("td").eq(9), table[i-1].locType1); setVal(tr.children("td").eq(10), table[i-1].emptyOutType); } } else if (res.code === 403){ window.location.href = baseUrl+"/login"; @@ -396,6 +398,7 @@ " <td></td>\n" + " <td></td>\n" + " <td></td>\n" + " <td></td>\n" + " </tr>\n"; } $('#site-table tbody').after(html);