From eed51ce47f20afb0661acc42baa680fcb6351a39 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期一, 26 一月 2026 13:16:14 +0800
Subject: [PATCH] 6.8 查询所有库位状态和物料-二机床信息化数字孪生用
---
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 132 +++++++++++++++++++++++++++++++++++++++++--
1 files changed, 124 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index 148e36d..f8ac53d 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -10,6 +10,7 @@
import com.zy.asrs.entity.mes.TransParent;
import com.zy.asrs.entity.rcs.*;
import com.zy.asrs.enums.RcsRetMethodEnum;
+import com.zy.asrs.mapper.BasDevpMapper;
import com.zy.asrs.mapper.BlockStationMapper;
import com.zy.asrs.mapper.BlockTaskMapper;
import com.zy.asrs.service.*;
@@ -339,6 +340,9 @@
return 0;
}
+ @Resource
+ private BasDevpMapper basDevpMapper;
+
/**
* 2.2.1浠诲姟鎵ц鍥為
* 鍘傚锛氭捣閲忋�佸崕鏅�
@@ -387,6 +391,100 @@
// JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
// mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
} break;
+ case APPLY_PUT: { // 鏀捐揣鐢宠
+ String staNo = task.getStaNo();
+ BasDevp basDevp = basDevpMapper.selectById(staNo);
+ if(basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("N") && basDevp.getWrkNo() == 0) {
+
+ // 205 瑙﹀彂鏉$爜鎵弿
+ if (staNo.equals("205")) {
+ Map<String,Object> params = new HashMap<>();
+ params.put("siteId",staNo);
+ String response = new HttpHandler.Builder()
+ .setUri(WCS_URL)
+ .setPath("/site/startScan")
+ .setParams(params)
+ .build()
+ .doPost();
+ log.info("{}鏀捐揣鐢宠缁檞cs涓嬪彂鏉$爜鎵弿鍘熷杩斿洖:{}",staNo,response);
+ }
+
+ // 婊¤冻鏀捐揣鏉′欢锛岃皟鐢≧CS浠诲姟缁х画鎵ц
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(robotTaskCode);
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(robotTaskCode);
+ int success = continueTask(rcsTaskContinue, 1);
+ if(success != 1) {
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("缁х画鎵ц澶辫触");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
+ }else {
+ log.warn("绔欑偣锛歿}锛屼笉婊¤冻鏀捐揣鏉′欢锛岃嚜鍔細{}锛屾棤鐗╋細{}锛屼换鍔″彿锛歿}",staNo,basDevp.getAutoing(),basDevp.getLoading(),basDevp.getWrkNo());
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("绔欑偣涓嶆弧瓒虫斁璐ф潯浠�");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
+ } break;
+ case APPLY_PICK: { // 鍙栬揣鐢宠
+ String staNo = task.getSourceStaNo();
+ BasDevp basDevp = basDevpMapper.selectById(staNo);
+ if(basDevp.getAutoing().equals("Y") && basDevp.getLoading().equals("Y")
+ && basDevp.getWrkNo() > 0 && basDevp.getWrkNo() <= 9990) {
+ // 婊¤冻鏀捐揣鏉′欢锛岃皟鐢≧CS浠诲姟缁х画鎵ц
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(robotTaskCode);
+ rcsTaskContinue.setTriggerType("TASK");
+ rcsTaskContinue.setTriggerCode(robotTaskCode);
+ int success = continueTask(rcsTaskContinue, 1);
+ if(success != 1) {
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("缁х画鎵ц澶辫触");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
+ }else {
+ log.warn("绔欑偣锛歿}锛屼笉婊¤冻鍙栬揣鏉′欢锛岃嚜鍔細{}锛屾棤鐗╋細{}锛屼换鍔″彿锛歿}",staNo,basDevp.getAutoing(),basDevp.getLoading(),basDevp.getWrkNo());
+ rcsReturn.setCode("Err_RobotCodeNotMatch");
+ rcsReturn.setMessage("绔欑偣涓嶆弧瓒虫斁璐ф潯浠�");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ return rcsReturn;
+ }
+ } break;
+ case PICK_COMPLETE: { // 鍙栬揣瀹屾垚
+ String staNo = task.getSourceStaNo();
+
+ // 娓呴櫎杈撻�佺嚎浠诲姟鍙�
+ Map<String,Object> params = new HashMap<>();
+ params.put("siteId",staNo);
+ params.put("workNo",0);
+ params.put("staNo", 0);
+ params.put("pakMk","Y");
+ String response = new HttpHandler.Builder()
+ .setUri(WCS_URL)
+ .setPath("/site/detl/update")
+ .setParams(params)
+ .build()
+ .doPost();
+ log.info("agv鍙嶉pickComplete缁檞cs鍙戝懡浠�:{},杩斿洖锛歿}",JSONObject.toJSONString(params),response);
+ // agv缁х画鎵ц
+// TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+// inOutStationAllow.setTaskno(robotTaskCode);
+// inOutStationAllow.setStatus("Y");
+// inOutStationAllow.setAgvCode("agv001");
+// mesService.allowOutStation(inOutStationAllow);
+ } break;
case TASK_END: {
// 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
@@ -394,9 +492,10 @@
task.setModiUser(defaultUserId);
taskService.updateById(task);
// 浠诲姟瀹屾垚
- mesService.reporterTask(rcsReporterTask);
+// mesService.reporterTask(rcsReporterTask);
// 鍏ョ珛搴撴椂锛屽尯鍒嗘槸绌烘墭杩樻槸婊℃墭锛岀粰杈撻�佺嚎涓嬪彂鍛戒护9990 绌猴紝9995婊�
+ // 渚ч潰205 9996绌猴紝9997婊�
String transType = memo.getString("TransType");
if("02".equals(transType) || "04".equals(transType)) {
int wrkNo = 9995;
@@ -409,11 +508,14 @@
}
}
int staNo = Integer.parseInt(task.getStaNo());
+ if(staNo == 205) { // 渚ч潰浠诲姟鍙疯浆鎹�
+ wrkNo = wrkNo == 9990 ? 9996 : 9997;
+ }
Map<String,Object> params = new HashMap<>();
params.put("siteId",staNo);
params.put("workNo",wrkNo);
params.put("staNo", staNo == 205 ? 205 : (staNo-1) );
- params.put("String","Y");
+ params.put("pakMk","Y");
String response = new HttpHandler.Builder()
.setUri(WCS_URL)
.setPath("/site/detl/update")
@@ -460,11 +562,11 @@
mesService.outStation(apply);
// agv缁х画鎵ц
- TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
- inOutStationAllow.setTaskno(robotTaskCode);
- inOutStationAllow.setStatus("Y");
- inOutStationAllow.setAgvCode("agv001");
- mesService.allowOutStation(inOutStationAllow);
+// TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+// inOutStationAllow.setTaskno(robotTaskCode);
+// inOutStationAllow.setStatus("Y");
+// inOutStationAllow.setAgvCode("agv001");
+// mesService.allowOutStation(inOutStationAllow);
}
} break;
case ARRIVE_ON_STATION: {
@@ -476,7 +578,7 @@
TransArrivalStation arrivalStation = new TransArrivalStation();
arrivalStation.setTaskno(robotTaskCode);
arrivalStation.setTaskname(memo.getString("taskName"));
- arrivalStation.setTuoPanId(taskDetl == null ? "":taskDetl.getZpallet()); // memo.getString("TuoPanId")
+ arrivalStation.setTuoPanId(task.getBarcode()); // memo.getString("TuoPanId")
arrivalStation.setProductLineId(memo.getString("ProductLineId"));
String transType = memo.getString("TransType");
arrivalStation.setDaotype(transType);
@@ -737,5 +839,19 @@
return result.toString();
}
+ @Override
+ public RcsReturn siteBind(SiteBind siteBind) {
+ RcsReturn rcsReturn = new RcsReturn();
+ String url = HIK_URL + "api/robot/controller/site/bind";
+ String response = sendPost(url, JSONObject.toJSONString(siteBind));
+ if (!StringUtils.isEmpty(response) && response.contains("code")){
+ rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
+ } else {
+ rcsReturn.setCode("ERROR");
+ rcsReturn.setMessage("璋冪敤缁戝畾鎺ュ彛RCS鏃犺繑鍥�");
+ }
+ return rcsReturn;
+ }
+
// endregion
}
--
Gitblit v1.9.1