From c63696bec5666ad3064dd72636420e3980ade34f Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 05 十二月 2025 09:06:51 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java | 99 ++++++++++++++++++++++++++++++++++++-------------
1 files changed, 73 insertions(+), 26 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
index a8300f7..368cdfc 100644
--- a/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -721,6 +721,40 @@
@Override
@Transactional
+ public boolean TaskArmLocStatus(ArmOKParam param) {
+ BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>()
+ .eq("arm_no", param.getArmNo())
+ .eq("sta_no", param.getStaNo())
+ .eq("status", 1)
+ );
+ if (Cools.isEmpty(basArm)){
+ log.error("鏈烘鑷傞厤缃紓甯革紝鏌ヨ涓嶅埌鏈烘鑷傛暟鎹紒锛侊紒"+ JSON.toJSONString(param));
+ return false;
+ }
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", basArm.getStaNoSou()));
+ if (Cools.isEmpty(locMast)){
+ log.error("鏌ヨ涓嶅埌locMast鏁版嵁锛侊紒锛�"+ JSON.toJSONString(param));
+ return false;
+ }
+ if (locMast.getLocSts().equals("D")){
+ BasArmMast basArmMast = basArmMastService.selectOne(
+ new EntityWrapper<BasArmMast>()
+ .eq("sta_no", basArm.getStaNoSou())
+ .eq("arm_no", param.getArmNo())
+ .eq("status", 3)
+ );
+ if (Cools.isEmpty(basArmMast)){
+ return true;
+ }
+ log.error("鏈煡璇㈠埌鐩稿叧鏈烘鑷傛媶鐮佸灈浠诲姟锛侊紒锛�"+ JSON.toJSONString(param));
+ } else {
+ log.error("locMast鐘舵�佷笉涓篋锛侊紒锛�"+ JSON.toJSONString(param));
+ }
+ return false;
+ }
+
+ @Override
+ @Transactional
public void taskArmWorkspaceStatus(TaskArmWorkspaceStatusParam param) {
BasArm basArm = basArmService.selectOne(new EntityWrapper<BasArm>()
.eq("arm_no", param.getArm_no())
@@ -799,24 +833,28 @@
if (param == null) {
throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
}
- // 鍒涘缓瀵硅薄锛堟瀯閫犲嚱鏁颁腑宸茬敓鎴� timestamp锛�
BasAgvMast basAgvMast = new BasAgvMast();
- // 鐢熸垚 WMS 浠诲姟鍙凤紙濡傛棤澶栭儴浼犲叆锛屽彲浠ヤ娇鐢ㄩ洩鑺盜D 鎴栬嚜澧烇級
+
+ Long ts = basAgvMast.getTimestamp();
+ if (ts == null) {
+ throw new CoolException("timestamp 鐢熸垚澶辫触");
+ }
+ String locNo = null;
+ String staNo = null;
+
+ basAgvMast.setBarcode(Long.toString(ts));
+
basAgvMast.setTaskNo(commonService.getWorkNo(0));
- // 璧嬪�煎弬鏁�
basAgvMast.setSourceStaNo(param.getSourceStaNo());
basAgvMast.setStaNo(param.getStaNo());
basAgvMast.setSourceLocNo(param.getSourceLocNo());
basAgvMast.setLocNo(param.getLocNo());
- String locNo = null;
- String staNo = null;
- // 榛樿鍊�
- basAgvMast.setPriority(1L); // 榛樿浼樺厛绾�
- basAgvMast.setStatus(0); // 鍒濆鐘舵��
- basAgvMast.setAppeTime(new Date()); // 娣诲姞鏃堕棿
- basAgvMast.setModiTime(new Date()); // 淇敼鏃堕棿
- basAgvMast.setIoType(param.getIoType());// 浠诲姟绫诲瀷
- basAgvMast.setFloorNo(param.getFloorNo()); //妤煎眰
+ basAgvMast.setPriority(1L);
+ basAgvMast.setStatus(0);
+ basAgvMast.setAppeTime(new Date());
+ basAgvMast.setModiTime(new Date());
+ basAgvMast.setIoType(param.getIoType());
+ basAgvMast.setFloorNo(param.getFloorNo());
switch (basAgvMast.getIoType()){
// AGV搴撲綅==銆嬭緭閫佺嚎绔欑偣 0
// AGV搴撲綅==銆婣GV搴撲綅 1
@@ -831,10 +869,10 @@
staNo = param.getSourceStaNo().toString();
break;
}
- // 鎻掑叆鏁版嵁搴�
basAgvMastService.insert(basAgvMast);
+
bindCtnrAndBinParam bindParam = new bindCtnrAndBinParam();
- bindParam.setBarcode(basAgvMast.getTimestamp().toString());
+ bindParam.setBarcode(Long.toString(ts));
bindParam.setIndBind("1");
bindParam.setFloorNo(basAgvMast.getFloorNo());
bindParam.setLocNo(locNo);
@@ -941,6 +979,8 @@
}
+
+
@Override
@Transactional
public boolean agvApplicationPassedTheGrating(ArmAgvGratingParam arm) {
@@ -960,6 +1000,7 @@
agvGoParam.setCode("0");
agvGoParam.setMessage("缁х画鎵ц");
agvGoParam.setReqCode(param.getReqCode());
+ agvGoParam.setTaskCode(param.getTaskCode());
ReturnT<String> result = new PostMesDataUtils().postMesDataArmGrating("鍏夋爡涓嬪彂鍚庣户缁换鍔★細", URL, AGVPath, agvGoParam);
if (result.getCode()==200){
return true;
@@ -970,7 +1011,7 @@
@Override
@Transactional
public boolean agvBindAndBin(String taskNo) {
- String URL = "http://10.10.10.200:8181/"; // AGV鎺ュ彛鍦板潃
+ String URL = "http://10.10.10.200:8181"; // AGV鎺ュ彛鍦板潃
String AGVPath = "rcms/services/rest/hikRpcService/bindCtnrAndBin"; // 鎺ュ彛璺緞
BasAgvMast basAgvMast = basAgvMastService.selectOne(new EntityWrapper<BasAgvMast>().eq("task_no",taskNo));
if (Cools.isEmpty(basAgvMast)){
@@ -981,39 +1022,45 @@
BasAgvLocNo basAgvLocNoEnd = basAgvLocNoService.selectOne(
new EntityWrapper<BasAgvLocNo>().eq("sta_no", basAgvMast.getStaNo())
);
+ BasAgvLocNo locNo = basAgvLocNoService.selectOne(
+ new EntityWrapper<BasAgvLocNo>().eq("loc_no", basAgvMast.getLocNo())
+ );
+ String binCode = basAgvLocNoEnd != null
+ ? basAgvLocNoEnd.getAgvLocNo()
+ : (locNo != null ? locNo.getAgvLocNo() : null);
if (Cools.isEmpty(basAgvMast)){
return false;
}
+ String ctnrCode = basAgvMast.getBarcode().length() > 1?basAgvMast.getBarcode():basAgvMast.getTimestamp().toString();
AgvBindCtnrAndBinParam agvBindCtnrAndBinParam = new AgvBindCtnrAndBinParam();
- agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp());
- agvBindCtnrAndBinParam.setCtnrCode(basAgvMast.getTimestamp().toString());
+ agvBindCtnrAndBinParam.setReqCode(basAgvMast.getTaskNo() + "-" + System.currentTimeMillis());
+ agvBindCtnrAndBinParam.setCtnrCode(ctnrCode);
agvBindCtnrAndBinParam.setCtnrTyp("1");
- agvBindCtnrAndBinParam.setStgBinCode(basAgvLocNoEnd.getAgvLocNo());
+ agvBindCtnrAndBinParam.setStgBinCode(binCode);
agvBindCtnrAndBinParam.setIndBind("0");
- ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾瑙g粦", URL,AGVPath, agvBindCtnrAndBinParam);
- if (resultBind.getCode()!=200){
+ ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒瑙g粦", URL,AGVPath, agvBindCtnrAndBinParam);
+ if (resultBind.getCode() ==200){
basAgvMast.setStatus(4);
basAgvMastService.updateById(basAgvMast);
return true;
}
return false;
}else {
- if (basAgvMast.getIoType()==0 && basAgvMast.getStaNo()==2034){
+ if (basAgvMast.getIoType()==0 && (basAgvMast.getSourceStaNo()==2033 || basAgvMast.getStaNo()==4003)){
AgvBindCtnrAndBinTwoParam agvBindCtnrAndBinTwoParam = new AgvBindCtnrAndBinTwoParam();
- agvBindCtnrAndBinTwoParam.setReqCode(basAgvMast.getTaskNo() + "-" + basAgvMast.getTimestamp());
- agvBindCtnrAndBinTwoParam.setPodCode(basAgvMast.getBarcode());
+ agvBindCtnrAndBinTwoParam.setReqCode(String.valueOf(snowflakeIdWorker.nextId()));
+ agvBindCtnrAndBinTwoParam.setPodcode(basAgvMast.getBarcode());
agvBindCtnrAndBinTwoParam.setPositionCode(basAgvMast.getStaNo().toString());
agvBindCtnrAndBinTwoParam.setIndBind("0");;
- ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒缁戝畾瑙g粦",
+ ReturnT<String> resultBind = new PostMesDataUtils().postMesDataArmGrating("AGV瀹瑰櫒瑙g粦",
AgvConstant.AGV_URL+"/"+AgvConstant.AGV_hikRpcService,AgvConstant.getAGVADAPTOR(2), agvBindCtnrAndBinTwoParam);
- if (resultBind.getCode()!=200){
+ if (resultBind.getCode()!=1){
basAgvMast.setStatus(4);
basAgvMastService.updateById(basAgvMast);
return true;
}
}
}
-
return false;
}
--
Gitblit v1.9.1