From e98d4b1133ed058bfe1e6af75be9975aebfc32d8 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 16:00:35 +0800
Subject: [PATCH] 最后可运行版本
---
src/main/java/com/zy/asrs/entity/MesReturn.java | 20 +
src/main/java/com/zy/asrs/controller/SiteController.java | 4
src/main/java/com/zy/asrs/entity/TransParent.java | 3
src/main/java/com/zy/asrs/controller/OpenController.java | 11
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 154 +++++--
src/main/resources/logback-spring.xml | 3
src/main/java/com/zy/asrs/entity/RcsTaskContinue.java | 2
src/main/java/com/zy/asrs/entity/AgvTask.java | 7
src/main/java/com/zy/common/model/MatDto.java | 11
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 2
src/main/java/com/zy/asrs/entity/WaitPakin.java | 34 -
src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java | 1
src/main/java/com/zy/common/utils/HikUtils.java | 30 +
src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java | 711 +++++++++++++++++++++++++++++++++---
src/main/java/com/zy/asrs/service/RcsService.java | 3
src/main/java/com/zy/core/MainProcess.java | 2
src/main/java/com/zy/asrs/entity/BindOrUnbindParam.java | 9
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 28 +
src/main/resources/application.yml | 92 ++--
19 files changed, 913 insertions(+), 214 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index c720da5..1bc0192 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -2,6 +2,7 @@
import com.core.common.R;
import com.zy.asrs.domain.param.ToOutStaParam;
+import com.zy.asrs.entity.BindOrUnbindParam;
import com.zy.asrs.entity.RcsReporterTask;
import com.zy.asrs.entity.RcsReturn;
import com.zy.asrs.service.RcsService;
@@ -68,6 +69,14 @@
// log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
}
-
+ /**
+ * 婊戝潡妫�娴嬪尯鍩熺珯鐐规槸鍚﹁繕鏈夌┖绔欑偣
+ * @param param 闇�瑕佺珯鐐瑰彿鍜岀粦瀹�
+ * @return
+ */
+ @PostMapping("/api/robot/reporter/carrier/BindOrUnbind")
+ public R BindOrUnbind(@RequestBody BindOrUnbindParam param){
+ return rcsService.bindOrUnbind(param);
+ }
}
diff --git a/src/main/java/com/zy/asrs/controller/SiteController.java b/src/main/java/com/zy/asrs/controller/SiteController.java
index 8726646..9c1bdee 100644
--- a/src/main/java/com/zy/asrs/controller/SiteController.java
+++ b/src/main/java/com/zy/asrs/controller/SiteController.java
@@ -80,8 +80,8 @@
vo.setPakMk(staProtocol.isPakMk()?"Y":"N"); // 鍏ュ簱鏍囪
vo.setEmptyMk(staProtocol.isEmptyMk()?"Y":"N"); // 绌烘澘淇″彿
vo.setStaNo(staProtocol.getStaNo()); // 鐩爣绔�
-// vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�"); //楂樹綆搴撲綅
- vo.setLocType1(staProtocol.isHigh() ? "楂�" : "浣�");
+ vo.setLocType1(staProtocol.isHigh() != staProtocol.isLow() && staProtocol.isLow() ? "浣�" : "楂�"); //楂樹綆搴撲綅
+// vo.setLocType1(staProtocol.isHigh() ? "楂�" : "浣�");
vo.setEmptyOutType(staProtocol.isEmptyOutType() ? "Y" : "N");
}
return R.ok().add(list);
diff --git a/src/main/java/com/zy/asrs/entity/AgvTask.java b/src/main/java/com/zy/asrs/entity/AgvTask.java
index 7c769d9..77b147d 100644
--- a/src/main/java/com/zy/asrs/entity/AgvTask.java
+++ b/src/main/java/com/zy/asrs/entity/AgvTask.java
@@ -343,7 +343,12 @@
@ApiModelProperty(value= "澶栭儴浠诲姟缂栧彿")
@TableField("task_no")
private String taskNo;
-
+ /**
+ * 鏄惁鏄痯da鍙戠殑
+ */
+ @ApiModelProperty(value= "鏄惁鏄疨DA鍙戠殑浠诲姟")
+ @TableField("is_PDA")
+ private String isPda;
public AgvTask() {}
public String getYmd$(){
diff --git a/src/main/java/com/zy/asrs/entity/BindOrUnbindParam.java b/src/main/java/com/zy/asrs/entity/BindOrUnbindParam.java
new file mode 100644
index 0000000..aaf717d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/BindOrUnbindParam.java
@@ -0,0 +1,9 @@
+package com.zy.asrs.entity;
+
+import lombok.Data;
+
+@Data
+public class BindOrUnbindParam {
+ private String carrierCode="666666";
+ private String siteCode;
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/MesReturn.java b/src/main/java/com/zy/asrs/entity/MesReturn.java
new file mode 100644
index 0000000..cb7611d
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/MesReturn.java
@@ -0,0 +1,20 @@
+package com.zy.asrs.entity;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+// MES鎺ュ彛杩斿洖缁撴灉
+@Data
+public class MesReturn {
+
+ // 1锛氭垚鍔燂紱2锛氬け璐�
+ @JsonProperty("Success")
+ @JSONField(name = "Success")
+ private String Success;
+ // 澶辫触娑堟伅
+ @JsonProperty("Message")
+ @JSONField(name = "Message")
+ private String Message;
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java b/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java
index 77ce0c3..eb14f53 100644
--- a/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java
+++ b/src/main/java/com/zy/asrs/entity/RcsTaskContinue.java
@@ -17,4 +17,6 @@
// 涓� triggerType 瀵瑰簲鐨勮Е鍙戠紪鍙�
private String triggerCode;
+ //agv鍘傚
+ private String agvFactory;
}
diff --git a/src/main/java/com/zy/asrs/entity/TransParent.java b/src/main/java/com/zy/asrs/entity/TransParent.java
index 58d5ca8..013667b 100644
--- a/src/main/java/com/zy/asrs/entity/TransParent.java
+++ b/src/main/java/com/zy/asrs/entity/TransParent.java
@@ -33,6 +33,9 @@
@JSONField(name = "TaskType")
private String TaskType;
+ @JsonProperty("AgvFactory")
+ @JSONField(name = "AgvFactory")
+ private Integer AgvFactory;
//璇锋眰绫诲瀷
private String method;
diff --git a/src/main/java/com/zy/asrs/entity/WaitPakin.java b/src/main/java/com/zy/asrs/entity/WaitPakin.java
index a18b5bf..701cf6b 100644
--- a/src/main/java/com/zy/asrs/entity/WaitPakin.java
+++ b/src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -32,32 +32,9 @@
/**
* 浠撳簱鍙�
*/
- @ApiModelProperty(value= "瑙勬牸")
- private String lgnum;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鍨嬪彿")
- private String type;
-
- /**
- * 浠撳簱鍙�
- */
@ApiModelProperty(value= "鏉$爜")
private String color;
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鎵瑰彿")
- private String supplier;
-
- /**
- * 浠撳簱鍙�
- */
- @ApiModelProperty(value= "鍗曟嵁缂栧彿")
- private String warehouse;
/**
* 浠撳簱鍙�
@@ -72,22 +49,11 @@
private Double anfme;
/**
- * 鍗曚綅
- */
- @ApiModelProperty(value= "鍗曚綅")
- private String altme;
-
- /**
* 鎵樼洏鏉$爜
*/
@ApiModelProperty(value= "鎵樼洏鏉$爜")
private String zpallet;
- /**
- * 鐢ㄦ埛ID
- */
- @ApiModelProperty(value= "瀹㈡埛鍚嶇О")
- private String bname;
@ApiModelProperty(value= "搴撲綅鍙�")
@TableField("loc_no")
diff --git a/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java b/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
index 6a0784a..c6394c9 100644
--- a/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
+++ b/src/main/java/com/zy/asrs/enums/RcsRetMethodEnum.java
@@ -13,6 +13,7 @@
APPLY_PUT("applyPut", "鏀捐揣鐢宠"),
TASK_END("end", "浠诲姟瀹屾垚"),
+ APPLY_IN_OFF_STATION("applyInOffStation", "鍙栬揣绂荤珯璇锋眰"),
APPLY_PICK("applyPick", "鍙栬揣鐢宠"),
PICK_COMPLETE("pickComplete", "rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎");
diff --git a/src/main/java/com/zy/asrs/service/RcsService.java b/src/main/java/com/zy/asrs/service/RcsService.java
index 0866675..e0c1877 100644
--- a/src/main/java/com/zy/asrs/service/RcsService.java
+++ b/src/main/java/com/zy/asrs/service/RcsService.java
@@ -1,10 +1,13 @@
package com.zy.asrs.service;
+import com.core.common.R;
+import com.zy.asrs.entity.BindOrUnbindParam;
import com.zy.asrs.entity.RcsReporterTask;
import com.zy.asrs.entity.RcsReturn;
public interface RcsService {
+ R bindOrUnbind (BindOrUnbindParam param);
/**
* 2.2.1浠诲姟鎵ц鍥為
*
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index d4d3e98..2617ed5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
import com.core.common.DateUtils;
+import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasCrnErrorMapper;
@@ -95,6 +96,8 @@
private ConfigService configService;
@Autowired
private RedisUtil redisUtil;
+ @Autowired
+ private RcsService rcsService;
@Value("${wms.url}")
private String wmsUrl;
@@ -120,7 +123,7 @@
}
// 鑾峰彇鍏ュ簱绔欎俊鎭�
- SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo());
if (staProtocol == null) {
continue;
@@ -264,9 +267,23 @@
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+ // 杈撳嚭搴撲綅绫诲瀷淇℃伅
+ String locTypeStr = locTypeDto.getLocType1() == 1 ? "浣庡簱浣�" : "楂樺簱浣�";
+ log.info("[鍏ュ簱搴撲綅鍒嗛厤] 妫�娴嬪埌" + locTypeStr + "锛屽紑濮嬪垎閰嶅搴斿簱浣�");
+
SearchLocParam param = new SearchLocParam();
param.setBarcode(barcode);
- param.setIoType(1);
+
+ WaitPakin waitPakin = new WaitPakin();
+ List<WaitPakin> waitPakinList = waitPakinMapper.selectList(new EntityWrapper<WaitPakin>()
+ .eq("zpallet", param.getBarcode())
+ );
+ if (waitPakinList.isEmpty()) {
+ param.setIoType(10);
+ } else {
+ param.setIoType(1);
+ }
+
param.setSourceStaNo(inSta.getStaNo());
param.setLocType1(locTypeDto.getLocType1());
String response = new HttpHandler.Builder()
@@ -510,6 +527,10 @@
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+
+ // 杈撳嚭搴撲綅绫诲瀷淇℃伅
+ String locTypeStr = locTypeDto.getLocType1() == 1 ? "浣庡簱浣�" : "楂樺簱浣�";
+ log.info("[鍏ュ簱搴撲綅鍒嗛厤] 妫�娴嬪埌" + locTypeStr + "锛屽紑濮嬪垎閰嶅搴斿簱浣�");
SearchLocParam param = new SearchLocParam();
param.setBarcode(wrkMast.getBarcode());
@@ -1109,9 +1130,9 @@
}
}
String ip = "";
- if (wrkMast.getStaNo()==401){
+ if (wrkMast.getStaNo() == 401) {
ip = "172.26.4.231";
- }else if (wrkMast.getStaNo()==402){
+ } else if (wrkMast.getStaNo() == 402) {
ip = "172.26.4.232";
}else if (wrkMast.getStaNo()==307){
ip = "172.26.1.231";
@@ -1267,9 +1288,44 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
//鍒ゆ柇鏄惁鏈夋鍦ㄦ墽琛屼腑鐨凙GV浠诲姟
- List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("source_sta_no", staProtocol.getSiteId()));
+ List<AgvTask> agvTasks = agvTaskService.selectList(new EntityWrapper<AgvTask>().eq("wrk_sts", 302).eq("sta_no", String.valueOf(staProtocol.getSiteId())));
if (agvTasks != null && agvTasks.size() > 0) {
continue;
+ }
+
+ //绔欑偣涓�401鎴栬��402鏃讹紝浠诲姟澶囨敞涓篞鏃跺垽鏂鍖哄煙涓渶澶栦晶绔欑偣鏄惁鑳界粦瀹�
+ //鑳界粦瀹氳鏄庣珯鐐逛负绌猴紝鍙互缁х画鍑哄簱
+ //绔欑偣缁戝畾澶辫触鍒欒鏄庡尯鍩熸弧浜�
+ if (staProtocol.getSiteId()==401||staProtocol.getSiteId()==402) {
+ BindOrUnbindParam bindOrUnbindParam = new BindOrUnbindParam();
+ String staNo1="LZP10";
+ String staNo2="LZP11";
+ if (wrkMast.getMemo().equals("Q-L2")){
+ staNo1="LZP15";
+ staNo2="LZP16";
+ }else if (wrkMast.getMemo().equals("Q-L3")){
+ staNo1="LZP20";
+ staNo2="LZP21";
+ }else if (wrkMast.getMemo().equals("Q-L4")){
+ staNo1="LZP26";
+ staNo2="LZP26";
+ }else if (wrkMast.getMemo().equals("Q-L5")){
+ staNo1="LZP30";
+ staNo2="LZP31";
+ }
+ bindOrUnbindParam.setSiteCode(staNo1);
+ R r = rcsService.bindOrUnbind(bindOrUnbindParam);
+ if (r != null && r.get("code").equals(200)) {
+
+ }else {
+ bindOrUnbindParam.setSiteCode(staNo2);
+ r = rcsService.bindOrUnbind(bindOrUnbindParam);
+ if (r != null && r.get("code").equals(200)) {
+
+ }else{
+ continue;
+ }
+ }
}
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
@@ -1894,6 +1950,10 @@
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
+ // 杈撳嚭搴撲綅绫诲瀷淇℃伅
+ String locTypeStr = locTypeDto.getLocType1() == 1 ? "浣庡簱浣�" : "楂樺簱浣�";
+ log.info("[鍏ュ簱搴撲綅鍒嗛厤] 妫�娴嬪埌" + locTypeStr + "锛屽紑濮嬪垎閰嶅搴斿簱浣�");
+
SearchLocParam param = new SearchLocParam();
param.setIoType(10);
param.setSourceStaNo(emptyInSta.getStaNo());
@@ -2084,12 +2144,12 @@
staProtocol = staProtocol.clone();
}
// 鑾峰彇宸ヤ綔妗f暟鎹�
- WrkMast wrkMast = wrkMastMapper.selectById(staProtocol.getWorkNo());
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no",staProtocol.getWorkNo()));
// if (null == wrkMast || wrkMast.getWrkSts() < 14 || wrkMast.getIoType() < 100) { continue; }
if (null == wrkMast) {
continue;
}
- News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
+ News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�:鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�");
wrkMasts.add(wrkMast);
// 缁勮鍛戒护
LedCommand ledCommand = new LedCommand();
@@ -2097,12 +2157,12 @@
ledCommand.setIoType(wrkMast.getIoType());
// 鍑哄簱妯″紡
switch (wrkMast.getIoType()) {
- case 1:
- ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
- break;
- case 10:
- ledCommand.setTitle("绌烘澘鍏ュ簱");
- break;
+// case 1:
+// ledCommand.setTitle("鍏ㄦ澘鍏ュ簱");
+// break;
+// case 10:
+// ledCommand.setTitle("绌烘澘鍏ュ簱");
+// break;
case 101:
ledCommand.setTitle("鍏ㄦ澘鍑哄簱");
break;
@@ -2119,40 +2179,45 @@
ledCommand.setTitle("绌烘澘鍑哄簱");
ledCommand.setEmptyMk(true);
break;
- case 53:
- ledCommand.setTitle("鎷f枡鍏ュ簱");
- break;
- case 57:
- ledCommand.setTitle("鐩樼偣鍏ュ簱");
- break;
- case 54:
- ledCommand.setTitle("骞舵澘鍏ュ簱");
- break;
+// case 53:
+// ledCommand.setTitle("鎷f枡鍏ュ簱");
+// break;
+// case 57:
+// ledCommand.setTitle("鐩樼偣鍏ュ簱");
+// break;
+// case 54:
+// ledCommand.setTitle("骞舵澘鍏ュ簱");
+// break;
default:
- News.error(""+mark+" - 1"+" - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
+ //News.error("" + mark + " - 1" + " - 浠诲姟鍏ュ嚭搴撶被鍨嬮敊璇紒锛侊紒[宸ヤ綔鍙凤細{}] [鍏ュ嚭搴撶被鍨嬶細{}]", wrkMast.getWrkNo(), wrkMast.getIoType());
break;
}
ledCommand.setSourceLocNo(wrkMast.getSourceLocNo());
ledCommand.setLocNo(wrkMast.getLocNo());
ledCommand.setStaNo(wrkMast.getStaNo());
+ ledCommand.setBarcode(wrkMast.getBarcode());
// ledCommand.setSourceStaNo(wrkMast.getSourceStaNo());
if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) {
List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo());
- try{
- if (wrkMast.getIoType()>100){
- for (WrkDetl wrkDetl : wrkDetls){
+ try {
+ if (wrkMast.getIoType() > 100) {
+ for (WrkDetl wrkDetl : wrkDetls) {
LocDetl locDetl = locDetlService.selectMatnrSpecs(wrkDetl.getMatnr(), wrkDetl.getSpecs(), wrkMast.getSourceLocNo());
- wrkDetl.setWeight(locDetl.getAnfme());
+ if (Cools.isEmpty(locDetl)) {
+ wrkDetl.setWeight(0.0);
+ }else {
+ wrkDetl.setWeight(locDetl.getAnfme());
+ }
}
- }else {
- for (WrkDetl wrkDetl : wrkDetls){
+ } else {
+ for (WrkDetl wrkDetl : wrkDetls) {
wrkDetl.setWeight(wrkDetl.getAnfme());
}
}
- }catch (Exception e){
- log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�"+e);
+ } catch (Exception e) {
+ log.error("宸ヤ綔妗f鏄庣粏杈撳叆鐢佃鏈哄け璐�1锛氬紓甯镐俊鎭�==銆�" + e);
}
- wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(),wrkDetl.getWeight(),wrkDetl.getSpecs(),wrkDetl.getSku())));
+ wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl.getMatnr(), wrkDetl.getMaktx(), wrkDetl.getAnfme(), wrkDetl.getWeight(), wrkDetl.getSpecs(), wrkDetl.getSku(),wrkDetl.getZpallet())));
}
commands.add(ledCommand);
}
@@ -2163,31 +2228,12 @@
if (CollectionUtils.equals(ledThread.getWorkNos(), workNos)) {
continue;
}
-// 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
-// if (!commands.isEmpty()) {
-// if (led.getId() < 7) {
-// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
-// News.error(""+mark+" - 2"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-// continue;
-// } else {
-// ledThread.setLedMk(false);
-// }
-// } else {
-// if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(1, commands))) {
-// News.error(""+mark+" - 3"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
-// continue;
-// } else {
-// ledThread.setLedMk(false);
-// }
-// }
-//
-// }
// 鍛戒护涓嬪彂 -------------------------------------------------------------------------------
if (!commands.isEmpty()) {
if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(3, commands))) {
News.error("{}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort());
continue;
- }else {
+ } else {
ledThread.setLedMk(false);
}
}
@@ -2198,7 +2244,7 @@
wrkMast.setOveMk("Y");
wrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.errorNoLog(""+mark+" - 4"+" - 鏇存柊宸ヤ綔妗eけ璐�");
+ News.errorNoLog("" + mark + " - 4" + " - 鏇存柊宸ヤ綔妗eけ璐�");
throw new CoolException("鏇存柊宸ヤ綔妗eけ璐�");
}
}
@@ -2212,7 +2258,7 @@
}
}
- News.infoNoLog(""+mark+" - 0"+" - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
+ News.infoNoLog("" + mark + " - 0" + " - 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣ㄦ墽琛屽畬鎴�");
}
/**
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 2ef3390..ae6c3c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -1,9 +1,11 @@
package com.zy.asrs.service.impl;
import com.alibaba.excel.util.StringUtils;
+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.R;
import com.zy.asrs.entity.*;
import com.zy.asrs.enums.RcsRetMethodEnum;
import com.zy.asrs.service.AgvTaskService;
@@ -33,9 +35,19 @@
@Slf4j
@Service
public class RcsServiceImpl implements RcsService {
+
+ @Value("${mes.url}")
+ public String MES_URL;
+
// 娴峰悍RCS鍦板潃
@Value("${hik.url}")
private String HIK_URL;
+ // 浜哄憳鍏ヤ镜绯荤粺妫�鏌�
+ @Value("${hik.renyuan}")
+ private String HIK_RENYUAN;
+ // 涓嶉渶瑕佸彂閫乪nd鐨勭珯鐐�
+ @Value("${hik.station}")
+ private String HIK_STATION;
@Autowired
private AgvTaskService taskService;
@@ -65,23 +77,29 @@
String slotCategory = values.getString("slotCategory");
String slotCode = values.getString("slotCode");
EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
- wrapper.eq("task_no", robotTaskCode);
+ // 淇敼鍚庣殑閫昏緫锛氭湁"-"鍒欏幓鎺夋渶鍚庝竴涓�"-"鍙婂悗闈㈠唴瀹癸紝娌℃湁鍒欎繚鎸佸師鏍�
+ String taskNo = rcsReporterTask.getRobotTaskCode();
+ if (taskNo.contains("-")) {
+ taskNo = taskNo.substring(0, taskNo.lastIndexOf("-"));
+ }
+ wrapper.eq("task_no", taskNo);
AgvTask task = taskService.selectOne(wrapper);
if (!Cools.isEmpty(task)) {
try {
switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
//鏀捐揣鐢宠
case APPLY_PUT: {
- Integer sourceStaNo = Integer.valueOf(task.getStaNo());
- SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
- //wcs鍙嶉rcs缁х画鎵ц
- if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
- if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+ if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
+ Integer sourceStaNo = Integer.valueOf(task.getStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //wcs鍙嶉rcs缁х画鎵ц
+ if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
+ if (task.getTaskType().equals("AGV琛ョ┖鏂欐灦")) {
RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
String url = HIK_URL + "api/robot/controller/task/extend/continue";
String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
@@ -94,7 +112,7 @@
JSONObject data = new JSONObject();
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
- }else {
+ } else {
//鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
if (result) {
@@ -106,9 +124,10 @@
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setAgvFactory("1");
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
String url = HIK_URL + "api/robot/controller/task/extend/continue";
String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
@@ -124,36 +143,38 @@
rcsReturn.setData(data);
}
}
- }
- }
- break;
+ }
+ } else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(task.getStaNo());
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ int i = applyInStation(transParent);
- //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
- case TASK_END: {
- Integer sourceStaNo = Integer.valueOf(task.getStaNo());
- SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
- Boolean boo=false;
- Short wrkNo = 9991;
- //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
- //琛ョ┖鏂欐灦 --銆媋gv宸茬粡绔嬪簱 --銆嬬粰PLC绔欑偣鍐�9995宸ヤ綔鍙�
- if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0){
- boo=true;
- wrkNo = 9995;
- }else if(!task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0){
- boo=true;
- }
- if (boo) {
- staProtocol.setWorkNo(wrkNo);//绌烘枡鏋跺埌浣嶄俊鍙风偣
- staProtocol.setStaNo(Short.valueOf("0"));
- boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
- log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
- if (result) {
- // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
- task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
- task.setModiTime(new Date());
- taskService.updateById(task);
- // 杩斿洖RCS
+ if (HIK_RENYUAN.contains(task.getStaNo())){
+ // 寤惰繜澶勭悊锛岀‘淇濆埌绔欏畬鎴愪俊鍙蜂紭鍏堝鐞�
+ try {
+ Thread.sleep(20000); // 鐫$湢20绉�
+ } catch (InterruptedException e)
+ {
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ if (i == 1) {
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
@@ -167,34 +188,224 @@
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
}
- }else {
+ }
+
+ }
+ break;
+
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
+ case TASK_END: {
+ if (task.getIsPda()!=null && task.getIsPda().equals("Y")){
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(305L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ taskService.updateById(task);
// 杩斿洖RCS
- rcsReturn.setCode("Err_Internal");
+ rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
}
+ if (task.getStaNo().equals("Q-E2") || task.getStaNo().equals("Q-E3") || HIK_STATION.contains(task.getStaNo())){
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ else if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
+ Integer sourceStaNo = Integer.valueOf(task.getStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ Boolean boo = false;
+ Short wrkNo = 9991;
+ if (task.getStaNo().equals("307")) {
+ wrkNo = 9997;
+ }
+
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+ //琛ョ┖鏂欐灦 --銆媋gv宸茬粡绔嬪簱 --銆嬬粰PLC绔欑偣鍐�9995宸ヤ綔鍙�
+ if (task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+ boo = true;
+ wrkNo = 9998;
+ } else if (!task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType()) {
+ boo = true;
+ }
+ if (boo) {
+ staProtocol.setWorkNo(wrkNo);//绌烘枡鏋跺埌浣嶄俊鍙风偣
+ staProtocol.setStaNo(Short.valueOf("0"));
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+ log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+ if (result) {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ } else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(task.getStaNo());
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ //鏀捐揣绂诲紑绔欑偣
+ int i = AGVDepartureCompleted(transParent);
+ if (i == 1) {
+ // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+ task.setWrkSts(304L); // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+ task.setModiTime(new Date());
+ taskService.updateById(task);
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
}
break;
//rcs璇锋眰wms鍙栬揣鐢宠
case APPLY_PICK: {
- Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
- SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
- //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
- if (staProtocol != null && (staProtocol.isLoading()||task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�"))
- && staProtocol.isEmptyOutType()) {
- RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
- rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
- rcsTaskContinue.setTriggerType("TASK");
- rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+ if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
+ Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
+ if (staProtocol != null && (staProtocol.isLoading() || task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�"))
+ && staProtocol.isEmptyOutType()) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ rcsTaskContinue.setTriggerType("TASK");
+ 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())) {
+ 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 ("SUCCESS".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }
+ } else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(task.getSourceStaNo());
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ int i = applyInStation(transParent);
+
+ if (HIK_RENYUAN.contains(task.getStaNo())){
+ // 寤惰繜澶勭悊锛岀‘淇濆埌绔欏畬鎴愪俊鍙蜂紭鍏堝鐞�
+ try {
+ Thread.sleep(20000); // 鐫$湢20绉�
+ } catch (InterruptedException e)
+ {
+ Thread.currentThread().interrupt();
+ }
+ }
+
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ }
+ break;
+ //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
+ case PICK_COMPLETE: {
+ if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
+ Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+ SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+ //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+ if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
+ staProtocol.setWorkNo((short) 0);
+ staProtocol.setStaNo((short) 0);
+ boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+ log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+ if (result) {
// 杩斿洖RCS
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
@@ -210,22 +421,27 @@
rcsReturn.setData(data);
}
}
- }
- }
- break;
- //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
- case PICK_COMPLETE: {
- Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
- SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
- //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
- if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
- staProtocol.setWorkNo((short) 0);
- staProtocol.setStaNo((short) 0);
- boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
- log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
- if (result) {
- // 杩斿洖RCS
+ } else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(task.getSourceStaNo());
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ //鍙栬揣绂诲紑绔欑偣
+ int i = AGVDepartureCompleted(transParent);
+ if (i == 1) {
rcsReturn.setCode("SUCCESS");
rcsReturn.setMessage("");
JSONObject data = new JSONObject();
@@ -239,10 +455,205 @@
data.put("robotTaskCode", robotTaskCode);
rcsReturn.setData(data);
}
-
}
}
break;
+ //AGV鍙栬揣绂荤珯璇锋眰
+ case APPLY_IN_OFF_STATION: {
+ //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+ if (task.getSourceStaNo().equals("401") || task.getSourceStaNo().equals("402") || task.getSourceStaNo().equals("307")) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ rcsTaskContinue.setTriggerType("TASK");
+ 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 ("SUCCESS".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ } else {
+
+ // 寤惰繜澶勭悊锛岀‘淇濆埌绔欏畬鎴愪俊鍙蜂紭鍏堝鐞�
+ try {
+ Thread.sleep(5000); // 鐫$湢5绉�
+ } catch (InterruptedException e)
+ {
+ Thread.currentThread().interrupt();
+ }
+
+ //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(values.getString("slotName"));
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ int i = applyOutStation(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ break;
+ }
+ //AGV鏀捐揣绂荤珯璇锋眰
+ case APPLY_OFF_STATION: {
+ //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+ if (task.getStaNo().equals("401") || task.getStaNo().equals("402") || task.getStaNo().equals("307")) {
+ RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+ rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ rcsTaskContinue.setTriggerType("TASK");
+ 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 ("SUCCESS".equals(rcsReturn1.getCode())) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ } else {
+
+ // 寤惰繜澶勭悊锛岀‘淇濆埌绔欏畬鎴愪俊鍙蜂紭鍏堝鐞�
+ try {
+ Thread.sleep(5000); // 鐫$湢5绉�
+ } catch (InterruptedException e)
+ {
+ Thread.currentThread().interrupt();
+ }
+
+ //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(values.getString("slotName"));
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ int i = applyOutStation(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+
+ break;
+ }
+ //鍒扮珯瀹屾垚
+ case ARRIVE_ON_STATION: {
+ if ( values.getString("slotName").equals("401") || values.getString("slotName").equals("402") || values.getString("slotName").equals("307")) {
+ // 杩斿洖RCS
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ TransParent transParent = new TransParent();
+ transParent.setTaskno(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setTaskname(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+ transParent.setStationId(values.getString("slotName"));
+ transParent.setAgvFactory(1);
+ transParent.setAgvCode("1");//杩炴帴鍣ㄥ簱
+ //08-1鏄┖鎵樼洏杞簭浠诲姟
+ //08-2鏄墿鏂欒浆搴忎换鍔�
+ if (task.getTaskType().equals("ZX-AGV-08-1")) {
+ transParent.setTransType("08-1");
+ } else if (task.getTaskType().equals("ZX-AGV-08-2")) {
+ transParent.setTransType("08-2");
+ } else if (task.getTaskType().equals("PP-AGV")) {
+ transParent.setTransType("10");
+ } else if (task.getTaskType().equals("ZP-AGV")) {
+ transParent.setTransType("11");
+ }
+ int i = AGVArrivalCompletedFit(transParent);
+ if (i == 1) {
+ rcsReturn.setCode("SUCCESS");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ } else {
+ // 杩斿洖RCS
+ rcsReturn.setCode("Err_Internal");
+ rcsReturn.setMessage("");
+ JSONObject data = new JSONObject();
+ data.put("robotTaskCode", robotTaskCode);
+ rcsReturn.setData(data);
+ }
+ }
+ break;
+ }
default: {
}
@@ -262,6 +673,105 @@
return rcsReturn;
}
+ /**
+ * 鍒扮珯瀹屾垚锛欰GV鍒拌揪宸ヤ綅閲岄潰--銆媘es鍒颁綅瀹屾垚
+ *
+ * @param apply
+ * @return
+ */
+ public int AGVArrivalCompletedFit(TransParent apply) {
+
+ String url = MES_URL + "AGVArrivalCompletedFit";
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+ /**
+ * 绂荤珯瀹屾垚锛歸ms->mes
+ * AGV绂诲紑鎺ラ┏浣嶅悗鍙戦�佺寮�鐘舵�佺粰MES
+ *
+ * @param apply
+ * @return
+ */
+ public int AGVDepartureCompleted(TransParent apply) {
+
+ String url = MES_URL + "AGVDepartureCompleted";
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+ /**
+ * 鍏ョ珯璇锋眰锛氳浆鍙慉GV->鍏ョ珯璇锋眰->缁橫ES
+ *
+ * @param apply
+ * @return
+ */
+ public int applyInStation(TransParent apply) {
+ String path = "AGVTransportPalletNotice";
+ String url = MES_URL + path;
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+
+ /**
+ * 绂荤珯璇锋眰锛氳浆鍙慉GV->绂荤珯璇锋眰->缁橫ES
+ *
+ * @param apply
+ * @return
+ */
+
+ public int applyOutStation(TransParent apply) {
+
+ String url = MES_URL + "AGVDepartureRequest";
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+ if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+ MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+ if ("1".equals(mesReturn.getSuccess())) {
+ return 1;
+ }
+ }
+
+ return 0;
+ }
+ @Override
+ public R bindOrUnbind (BindOrUnbindParam param) {
+ //1.鍏堣繘琛岀粦瀹�
+ String url = HIK_URL + "api/robot/controller/carrier/bind";
+ String response = sendPost(url, JSONObject.toJSONString(param));
+ if (!StringUtils.isEmpty(response) && response.contains("code")) {
+ RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+ if ("SUCCESS".equals(rcsReturn1.getCode())) {
+ //2.缁戝畾鎴愬姛锛屽绔欏畾杩涜瑙g粦
+ String url1 = HIK_URL + "api/robot/controller/carrier/unbind";
+ String response1 = sendPost(url, JSONObject.toJSONString(param));
+ return R.ok();
+ } else {
+ R.error("缁戝畾澶辫触锛岃鍖哄煙婊′簡");
+ }
+ }else {
+ return R.error();
+ }
+ return R.ok();
+ }
/**
* 鍚戞寚瀹� URL 鍙戦�丳OST鏂规硶鐨勮姹�
*
@@ -322,4 +832,55 @@
}
return result.toString();
}
+
+
+ public void agvPause(StaProtocol staProtocol){
+ if (staProtocol.isHighError()) {
+ JSONObject params = new JSONObject();
+ if (staProtocol.getSiteId()==402) {
+ params.put("zoneCode", "GK402");
+ params.put("mapCode", "BB");
+ params.put("invoke", "FREEZE");
+ System.out.println("402瓒呴珮鎶ヨ");
+ }else if (staProtocol.getSiteId() == 401){
+ params.put("zoneCode", "GK401");
+ params.put("mapCode", "BB");
+ params.put("invoke", "FREEZE");
+ System.out.println("401瓒呴珮鎶ヨ");
+ }
+ String url = HIK_URL + "api/robot/controller/zone/pause";
+ try {
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(params));
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (!StringUtils.isEmpty(response) && (jsonObject.getString("code").equals("SUCCESS") || jsonObject.getInteger("code") == 200)) {
+ System.out.println("鏆傚仠鎴愬姛");
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ if (!staProtocol.isHighError()) {
+ JSONObject params = new JSONObject();
+ if (staProtocol.getSiteId()==402) {
+ params.put("zoneCode", "GK402");
+ params.put("mapCode", "BB");
+ params.put("invoke", "RUN");
+ }else if (staProtocol.getSiteId() == 401){
+ params.put("zoneCode", "GK401");
+ params.put("mapCode", "BB");
+ params.put("invoke", "RUN");
+ System.out.println("灏濊瘯鍚姩401鍙GV");
+ }
+ String url = HIK_URL + "api/robot/controller/zone/pause";
+ try {
+ String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(params));
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (!StringUtils.isEmpty(response) && (jsonObject.getString("code").equals("SUCCESS") || jsonObject.getInteger("code") == 200)) {
+ System.out.println("AGV鍚姩鎴愬姛");
+ }
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
}
diff --git a/src/main/java/com/zy/common/model/MatDto.java b/src/main/java/com/zy/common/model/MatDto.java
index b35f62a..c7a823f 100644
--- a/src/main/java/com/zy/common/model/MatDto.java
+++ b/src/main/java/com/zy/common/model/MatDto.java
@@ -81,4 +81,15 @@
this.total = total;
this.sku = sku;
}
+
+ public MatDto(String matNo, String maktx, Double count,Double total,String specs,String sku,String barcode) {
+ this.specs = specs;
+ this.matnr = matNo;
+ this.maktx = maktx;
+ this.maknx = maktx;
+ this.count = count;
+ this.total = total;
+ this.sku = sku;
+ this.barcode = barcode;
+ }
}
diff --git a/src/main/java/com/zy/common/utils/HikUtils.java b/src/main/java/com/zy/common/utils/HikUtils.java
index b8f5e4d..9ffd902 100644
--- a/src/main/java/com/zy/common/utils/HikUtils.java
+++ b/src/main/java/com/zy/common/utils/HikUtils.java
@@ -15,23 +15,45 @@
public void startPic(String ip, String filename) {
try {
+ if (hikUrl == null || "".equals(hikUrl)) {
+ News.error("hikUrl閰嶇疆涓虹┖锛屾棤娉曡繘琛屾媿鎽�");
+ return;
+ }
+ if (ip == null || "".equals(ip)) {
+ News.error("IP鍦板潃涓虹┖锛屾棤娉曡繘琛屾媿鎽�");
+ return;
+ }
+ if (filename == null || "".equals(filename)) {
+ News.error("鏂囦欢鍚嶄负绌猴紝鏃犳硶杩涜鎷嶆憚");
+ return;
+ }
HashMap<String, Object> data = new HashMap<>();
data.put("ip", ip);
data.put("filename", filename);
String response = new HttpHandler.Builder()
.setUri(hikUrl)
- .setPath("/startPic")
+ .setPath("/capture")
.setJson(JSON.toJSONString(data))
.build()
.doPost();
+ if (response == null || "".equals(response)) {
+ News.error("璇锋眰鎺ュ彛澶辫触锛岃繑鍥炲�间负绌�");
+ return;
+ }
JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- News.error("璇锋眰鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", hikUrl + "/startPic", JSON.toJSONString(data), response);
+ if (jsonObject == null) {
+ News.error("瑙f瀽鍝嶅簲澶辫触锛岃繑鍥炲�间笉鏄湁鏁堢殑JSON");
+ return;
+ }
+ Boolean success = jsonObject.getBoolean("success");
+ if (success != null && success) {
+ News.error("璇锋眰鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", hikUrl + "/capture", JSON.toJSONString(data), response);
} else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", hikUrl + "/startPic", JSON.toJSONString(data), response);
+ News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", hikUrl + "/capture", JSON.toJSONString(data), response);
}
} catch (Exception e) {
+ News.error("鎷嶆憚澶辫触锛歿}", e.getMessage());
e.printStackTrace();
}
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 1546d1f..70002c7 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -59,7 +59,7 @@
mainService.crnIoExecute(5);
// 鍏ュ嚭搴撳寮� ===>> 鍫嗗灈鏈哄懡浠や笅鍙戝悗锛屽紓姝ヤ慨鏀瑰伐浣滄。鐘舵��
// mainService.crnIoWrkMast();
- // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
+ // 鍏ュ嚭搴� ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣�
mainService.storeFinished(6);
// 鍫嗗灈鏈哄紓甯镐俊鎭褰�
mainService.recCrnErr(7);
diff --git a/src/main/java/com/zy/core/model/protocol/StaProtocol.java b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
index d2dc0d0..e3c001f 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -93,7 +93,7 @@
basDevp.setLocType1((short) 0); // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
basDevp.setLocType2((short) 0); // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿
basDevp.setLocType3((short) 0); // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
- basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
+ basDevp.setLocType1(high != low ? (low ? (short) 1 : (short) 2) : (short) 0);
basDevp.setInreq1(emptyOutType?"Y":"N");
return basDevp;
}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 3c25a97..602624a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -13,6 +13,7 @@
import com.zy.asrs.entity.DeviceDataLog;
import com.zy.asrs.service.BasDevpService;
import com.zy.asrs.service.DeviceDataLogService;
+import com.zy.asrs.service.impl.RcsServiceImpl;
import com.zy.common.utils.News;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -25,6 +26,7 @@
import com.zy.core.model.protocol.StaProtocol;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import java.text.MessageFormat;
import java.util.*;
@@ -236,20 +238,40 @@
}
}
- //澶栧舰妫�娴�
+ //澶栧舰妫�娴� - 甯﹂槻鎶栧鐞�
Integer[] arr={401,402};
OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.702.0", (short) (arr.length*6));
+
for (int i = 0; i < arr.length; i++) {
StaProtocol staProtocol1 = station.get(arr[i]);
- if(resultErr1.IsSuccess){
+ if(resultErr1.IsSuccess && staProtocol1 != null){
boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i*6, 1);
+
+ // 銆愭柊澧炪�戜繚瀛樻棫鐨勮秴楂樼姸鎬�
+ boolean oldHighError = staProtocol1.isHighError();
+
+ // 鏇存柊鎵�鏈夌姸鎬�
staProtocol1.setFrontError(status1[0]);
staProtocol1.setBackError(status1[1]);
- staProtocol1.setHighError(status1[2]);
+ staProtocol1.setHighError(status1[2]); // 瓒呴珮鐘舵��
staProtocol1.setLeftError(status1[3]);
staProtocol1.setRightError(status1[4]);
staProtocol1.setWeightError(status1[5]);
staProtocol1.setBarcodeError(status1[6]);
+
+ // 銆愭柊澧炪�戣秴楂樼姸鎬佸彉鍖栧鐞� - 鍙湁鍙樺寲鏃舵墠璋冪敤
+ if (oldHighError != status1[2]) {
+ try {
+ RcsServiceImpl rcsService = SpringUtils.getBean(RcsServiceImpl.class);
+ if (rcsService != null) {
+ rcsService.agvPause(staProtocol1);
+ log.info("瓒呴珮鐘舵�佸彉鍖� - 绔欑偣: {}, 鐘舵��: {} -> {}, 宸茶皟鐢ˋGV鎺у埗",
+ arr[i], oldHighError, status1[2]);
+ }
+ } catch (Exception e) {
+ log.error("璋冪敤agvPause澶辫触 - 绔欑偣: {}, 閿欒: {}", arr[i], e.getMessage());
+ }
+ }
}
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0ed5b9f..a57ce72 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -8,13 +8,13 @@
name: @pom.build.finalName@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-hkwms
+ url: jdbc:sqlserver://172.26.11.80:1433;databasename=jnejc-hkwms
username: sa
password: sa@123
mvc:
static-path-pattern: /**
-zyHikUrl: 10.10.10.200:9091/hik
+zyHikUrl: 172.26.4.184:8000
# redis:
# host: localhost
# port: 6379
@@ -38,10 +38,26 @@
wms:
url: 127.0.0.1:8084/hkwms
+#mes瀵规帴
+mes:
+ url: http://192.9.100.173:8088/prod-api/basicmodel/WmsFit/Api/
+# url: http://172.26.160.73:8080/basicmodel/WmsFit/Api/
+# url: http://172.26.160.5:8080/basicmodel/WmsFit/Api/
+ #榛樿鎺ュ彛鎿嶄綔浜哄憳id
+ defaultUserId: 30
#娴峰悍瀵规帴
hik:
switch: false
url: http://172.26.11.98:80/rcs/rtas/
+ station: Z-LVL20,Z-LVL21,Z-LVL22,Z-LVL23,Z-LVL24,Z-LVL25,Z-LVL26,Z-LVL27,Z-LVL28,Z-LVL29,Z-LVL30,Z-LVL31
+ Z-LZP1,Z-LZP2,Z-LZP3,Z-LZP4,Z-LZP5,Z-LZP6,Z-LZP7,Z-LZP8,Z-LZP9,Z-LZP10,Z-LZP11,Z-LZP12,Z-LZP13,Z-LZP14,
+ Z-LZP15,Z-LZP16,Z-LZP17,Z-LZP18,Z-LZP19,Z-LZP20,Z-LZP21,Z-LZP22,Z-LZP23,Z-LZP24,Z-LZP25,Z-LZP26,Z-LZP27
+ Z-LZP28,Z-LZP29,Z-LZP30,Z-LZP31,Z-LZP32,Z-LZP33
+ renyuan: Z-LZH25,Z-LZH26,Z-LZH27,Z-LZH28,Z-LZH29,Z-LZH30,Z-LZH31,Z-LZH32,Z-LZH33,Z-LZH34,Z-LZH35,Z-LZH36,Z-LZH37,
+ Z-LZH38,Z-LZH39,L-LZH40,L-LZH41,L-LZH42,Z-LZP7,Z-LZP8,Z-LZP9,Z-LZP10,Z-LZP11,Z-LZP12,Z-LZP13,Z-LZP14,
+ Z-LZP15,Z-LZP16,Z-LZP17,Z-LZP18,Z-LZP19,Z-LZP20,Z-LZP21,Z-LZP22,Z-LZP23,Z-LZP24,Z-LZP25,Z-LZP26,Z-LZP27
+ Z-LZP28,Z-LZP29,Z-LZP30,Z-LZP31
+
# 涓嬩綅鏈洪厤缃�
wcs-slave:
@@ -50,7 +66,7 @@
# 鍙屾繁搴撲綅鎺掑彿
doubleLocs: 3
# 宸︽繁搴撲綅鎺掑彿
-# doubleLocsLeft: 4,7,11,15,19,23
+ # doubleLocsLeft: 4,7,11,15,19,23
# 鍙虫繁搴撲綅鎺掑彿
doubleLocsRight: 3
# 宸︽祬搴撲綅鎺掑彿
@@ -73,28 +89,28 @@
crnInStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
staNo: 401
- row: 1
+ row: 6
bay: 1
lev: 1
# 鍫嗗灈鏈哄叆搴撶珯鐐�
crnInStn[1]:
devpPlcId: ${wcs-slave.devp[0].id}
staNo: 402
- row: 1
+ row: 6
bay: 15
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
staNo: 401
- row: 1
+ row: 6
bay: 1
lev: 1
# 鍫嗗灈鏈哄嚭搴撶珯鐐�
crnOutStn[1]:
devpPlcId: ${wcs-slave.devp[0].id}
staNo: 402
- row: 1
+ row: 6
bay: 15
lev: 1
# 杈撻�佺嚎1
@@ -149,24 +165,24 @@
staNo: 402
led: ${wcs-slave.led[1].id}
# 杈撻�佺嚎2
-# devp[1]:
-# id: 2
-# ip: 172.17.60.118
-# port: 102
-# rack: 0
-# slot: 0
-# # 鍏ュ簱鍙�1
-# inSta[0]:
-# staNo: 1002
-# barcode: ${wcs-slave.barcode[2].id}
-# backSta: 1001
-# led: ${wcs-slave.led[7].id}
-# # 鍏ュ簱鍙�2
-# inSta[1]:
-# staNo: 1007
-# barcode: ${wcs-slave.barcode[3].id}
-# backSta: 1003
-# led: ${wcs-slave.led[8].id}
+ # devp[1]:
+ # id: 2
+ # ip: 172.17.60.118
+ # port: 102
+ # rack: 0
+ # slot: 0
+ # # 鍏ュ簱鍙�1
+ # inSta[0]:
+ # staNo: 1002
+ # barcode: ${wcs-slave.barcode[2].id}
+ # backSta: 1001
+ # led: ${wcs-slave.led[7].id}
+ # # 鍏ュ簱鍙�2
+ # inSta[1]:
+ # staNo: 1007
+ # barcode: ${wcs-slave.barcode[3].id}
+ # backSta: 1003
+ # led: ${wcs-slave.led[8].id}
# 鏉$爜鎵弿浠�1
barcode[0]:
id: 1
@@ -177,27 +193,27 @@
id: 2
ip: 10.10.10.121
port: 51236
-# # 鏉$爜鎵弿浠�3
-# barcode[2]:
-# id: 3
-# ip: 10.10.10.121
-# port: 51236
-# # 鏉$爜鎵弿浠�4
-# barcode[3]:
-# id: 4
-# ip: 10.10.10.121
-# port: 51236
- # LED1
+ # # 鏉$爜鎵弿浠�3
+ # barcode[2]:
+ # id: 3
+ # ip: 10.10.10.121
+ # port: 51236
+ # # 鏉$爜鎵弿浠�4
+ # barcode[3]:
+ # id: 4
+ # ip: 10.10.10.121
+ # port: 51236
+ # LED1
led[0]:
id: 1
- ip: 172.26.4.211
+ ip: 172.26.4.163
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
staArr: 401
# LED2
led[1]:
id: 2
- ip: 172.26.4.212
+ ip: 172.26.4.161
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
staArr: 402
diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml
index f72c762..0138091 100644
--- a/src/main/resources/logback-spring.xml
+++ b/src/main/resources/logback-spring.xml
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
+ <!-- 鏃ュ織淇濆瓨璺緞 -->
+ <property name="LOG_PATH" value="D:/hkwcslogs/hk" />
+
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<property name="CONSOLE_LOG_PATTERN"
--
Gitblit v1.9.1