src/main/java/com/zy/asrs/controller/OpenController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/WcsDataSynchronizationParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/WcsRgvListParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/entity/param/WcsTaskListParam.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/OpenService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/zy/core/model/protocol/RgvProtocol.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -56,6 +56,22 @@ return openService.wcsTaskDistribution(param); } /** * 数据同步 */ @PostMapping("/status/cs/default/v1") @AppAuth(memo = "WCS数据同步") public synchronized R wcsTaskStatus(@RequestHeader(required = false) String appkey, @RequestBody Long timestamp, HttpServletRequest request) { auth(appkey, timestamp, request); if (Cools.isEmpty(timestamp)) { return R.parse(BaseRes.PARAM); } return openService.wcsTaskStatus(timestamp); } private void auth(String appkey, Object obj, HttpServletRequest request) { log.info("{}接口被访问;appkey:{};请求数据:{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj)); src/main/java/com/zy/asrs/entity/param/WcsDataSynchronizationParam.java
New file @@ -0,0 +1,19 @@ package com.zy.asrs.entity.param; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.utils.TimeCalculatorUtils; import lombok.Data; import java.util.ArrayList; import java.util.List; /* * Created by Monkey D. Luffy on 2023.07.19 * */ @Data public class WcsDataSynchronizationParam { private List<WcsTaskListParam> taskList; // 是 字符串 工作号 private List<WcsRgvListParam> rgvList; // 是 字符串 作业时长 private Long timestamp; // 是 字符串 作业小车编号 } src/main/java/com/zy/asrs/entity/param/WcsRgvListParam.java
New file @@ -0,0 +1,20 @@ package com.zy.asrs.entity.param; import lombok.Data; import java.util.ArrayList; import java.util.List; /* * Created by Monkey D. Luffy on 2023.07.19 * */ @Data public class WcsRgvListParam { private String taskNo; // 是 字符串 作业小车编号 private String rgvNo; // 是 字符串 作业小车编号 private String status; // 是 字符串 任务状态 1:初始 2:作业中 3:完成 private String currSta = ""; // 是 字符串 结束时间(格式:yyyy--MM-dd HH:mm:ss) private List<String> error = new ArrayList<>(); // 是 字符串 异常信息(如无异常则为空数组) public WcsRgvListParam(){} } src/main/java/com/zy/asrs/entity/param/WcsTaskListParam.java
New file @@ -0,0 +1,33 @@ package com.zy.asrs.entity.param; import com.zy.asrs.entity.WrkMast; import lombok.Data; import java.util.ArrayList; import java.util.List; /* * Created by Monkey D. Luffy on 2023.07.19 * */ @Data public class WcsTaskListParam { private String taskNo; // 是 字符串 工作号 private String rgvNo; // 是 字符串 作业小车编号 private String startSta; // 是 字符串 起始作业站(环穿) private String endSta; // 是 字符串 目标作业站(环穿) private Integer status; // 是 字符串 任务状态 1:初始 2:作业中 3:完成 private List<String> error = new ArrayList<>(); // 是 字符串 异常信息(如无异常则为空数组) public WcsTaskListParam(){} public WcsTaskListParam(WrkMast wrkMast){ this.taskNo = wrkMast.getWrkNo().toString(); this.rgvNo = wrkMast.getRgvNo().toString(); this.startSta = wrkMast.getSourceStaNo().toString(); this.endSta = wrkMast.getStaNo().toString(); this.status = wrkMast.getWrkSts().intValue(); this.error.add(wrkMast.getErrorMemo()); } } src/main/java/com/zy/asrs/service/OpenService.java
@@ -10,7 +10,7 @@ /** * */ List<String> queryStock(); R wcsTaskStatus(Long timestamp) ; R wcsTaskDistribution(WcsTaskDistributionParam param); src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -3,15 +3,27 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.core.common.R; import com.zy.asrs.domain.param.RingThroughParam; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.entity.param.WcsDataSynchronizationParam; import com.zy.asrs.entity.param.WcsRgvListParam; import com.zy.asrs.entity.param.WcsTaskDistributionParam; import com.zy.asrs.entity.param.WcsTaskListParam; import com.zy.asrs.service.OpenService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.utils.Utils; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; import com.zy.core.model.RgvSlave; import com.zy.core.model.protocol.RgvProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.RgvThread; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -22,14 +34,11 @@ @Service public class OpenServiceImpl implements OpenService { @Autowired private SlaveProperties slaveProperties; @Autowired private WrkMastService wrkMastService; @Override @Transactional public List<String> queryStock() { return null; } @Override @Transactional @@ -51,4 +60,46 @@ return R.ok(); } @Override @Transactional public R wcsTaskStatus(Long timestamp) { try{ WcsDataSynchronizationParam wcsDataSynchronizationParam = new WcsDataSynchronizationParam(); List<WcsTaskListParam> wcsTaskListParamList = new ArrayList<>(); List<WcsRgvListParam> wcsRgvListParamList = new ArrayList<>(); List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<>()); for (WrkMast wrkMast : wrkMastList){ WcsTaskListParam wcsTaskListParam = new WcsTaskListParam(wrkMast); wcsTaskListParamList.add(wcsTaskListParam); } for (RgvSlave rgv : slaveProperties.getRgv()) { // 获取RGV信息 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); if (rgvThread == null) { continue; } RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); if (rgvProtocol == null) { continue; } WcsRgvListParam wcsRgvListParam = new WcsRgvListParam(); wcsRgvListParam.setRgvNo(rgv.getId().toString()); wcsRgvListParam.setTaskNo(Cools.isEmpty(rgvProtocol.getTaskNo1()) ? null:rgvProtocol.getTaskNo1().toString()); wcsRgvListParam.setStatus(rgvProtocol.statusType.desc); List<String> arrayList = new ArrayList<>(); if (rgvProtocol.getAlarm()!=0){ arrayList.add(rgvProtocol.getAlarm$()); } wcsRgvListParam.setError(arrayList); wcsRgvListParamList.add(wcsRgvListParam); } wcsDataSynchronizationParam.setTaskList(wcsTaskListParamList); wcsDataSynchronizationParam.setRgvList(wcsRgvListParamList); wcsDataSynchronizationParam.setTimestamp(timestamp); return R.ok().add(wcsDataSynchronizationParam); } catch (Exception e){ return R.error("异常").add("异常信息:"+e); } } } src/main/java/com/zy/core/model/protocol/RgvProtocol.java
@@ -207,4 +207,9 @@ return RgvPos.intValue(); } public String getAlarm$(){ //需要根据现场改造 根据读到的值获取对应站点位置 return null; } }