From 2aa128b440d7b1b571ef48f175e6bde2231ae988 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期四, 25 十二月 2025 14:41:14 +0800
Subject: [PATCH] 1.初始化 2.新增拍照
---
src/main/java/com/zy/asrs/utils/VersionUtils.java | 14 +
src/main/java/com/zy/asrs/entity/BasDevp.java | 4
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 527 +++++++++++++-----------------------
src/main/resources/mapper/LocMastMapper.xml | 1
src/main/java/com/zy/asrs/entity/WrkMast.java | 16
src/main/resources/mapper/WrkMastMapper.xml | 1
src/main/java/com/zy/core/model/command/CrnCommand.java | 5
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 5
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 4
src/main/java/com/zy/common/utils/HikUtils.java | 39 ++
src/main/java/com/zy/asrs/entity/LocMast.java | 3
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 181 +++++-------
src/main/resources/application.yml | 16
13 files changed, 362 insertions(+), 454 deletions(-)
diff --git a/src/main/java/com/zy/asrs/entity/BasDevp.java b/src/main/java/com/zy/asrs/entity/BasDevp.java
index 1e3d022..4ce18b6 100644
--- a/src/main/java/com/zy/asrs/entity/BasDevp.java
+++ b/src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -94,9 +94,9 @@
private String downing;
/**
- * 闇�姹�1
+ * 鏂欐灦
*/
- @ApiModelProperty(value= "闇�姹�1")
+ @ApiModelProperty(value= "鏂欐灦")
private String inreq1;
/**
diff --git a/src/main/java/com/zy/asrs/entity/LocMast.java b/src/main/java/com/zy/asrs/entity/LocMast.java
index cd931b9..53a4be3 100644
--- a/src/main/java/com/zy/asrs/entity/LocMast.java
+++ b/src/main/java/com/zy/asrs/entity/LocMast.java
@@ -174,6 +174,9 @@
@TableField("ctn_no")
private String ctnNo;
+ @ApiModelProperty(value= "鎷嶇収鍥剧墖")
+ private String pic;
+
public String getIoTime$(){
if (Cools.isEmpty(this.ioTime)){
return "";
diff --git a/src/main/java/com/zy/asrs/entity/WrkMast.java b/src/main/java/com/zy/asrs/entity/WrkMast.java
index e1b047f..a6d4448 100644
--- a/src/main/java/com/zy/asrs/entity/WrkMast.java
+++ b/src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -48,6 +48,14 @@
private Integer whsType;
/**
+ * 0锛氶渶瑕佸垱寤篴gv鎼繍绌烘枡鏋朵换鍔�
+ * 1锛歸ms鎴愬姛鍒涘缓agv鎼繍绌烘枡鏋朵换鍔�
+ */
+ @ApiModelProperty(value= "闇�瑕佷笅鍙慳gv浠诲姟鐨勭姸鎬�")
+ @TableField("ctn_type")
+ private Integer ctnType;
+
+ /**
* 宸ヤ綔鐘舵��
*/
@ApiModelProperty(value= "宸ヤ綔鐘舵��")
@@ -157,10 +165,6 @@
@ApiModelProperty(value= "宸ヤ綔鏃堕棿")
@TableField("io_time")
private Date ioTime;
-
- @ApiModelProperty(value= "")
- @TableField("ctn_type")
- private Integer ctnType;
@ApiModelProperty(value= "")
private String packed;
@@ -309,6 +313,10 @@
@TableField("full_plt")
private String fullPlt;
+ @ApiModelProperty(value= "鎷嶇収鍥剧墖")
+ private String pic;
+
+
public String getWrkSts$(){
BasWrkStatusMapper mapper = SpringUtils.getBean(BasWrkStatusMapper.class);
BasWrkStatus entity = mapper.selectById(this.wrkSts);
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 d5cf0fe..c3bf91c 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -13,16 +13,14 @@
import com.zy.asrs.mapper.WrkMastMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
+import com.zy.asrs.utils.VersionUtils;
import com.zy.common.constant.RedisConstantType;
import com.zy.common.model.LocTypeDto;
import com.zy.common.model.MatDto;
import com.zy.common.model.SearchLocParam;
import com.zy.common.model.StartupDto;
import com.zy.common.service.CommonService;
-import com.zy.common.utils.CollectionUtils;
-import com.zy.common.utils.HttpHandler;
-import com.zy.common.utils.News;
-import com.zy.common.utils.RedisUtil;
+import com.zy.common.utils.*;
import com.zy.core.CrnThread;
import com.zy.core.DevpThread;
import com.zy.core.cache.MessageQueue;
@@ -49,6 +47,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -100,6 +99,9 @@
@Value("${wms.url}")
private String wmsUrl;
+ @Autowired
+ private HikUtils hikUtils;
+
/**
* 缁勬墭
* 鍏ュ簱绔欙紝鏍规嵁鏉$爜鎵弿鐢熸垚鍏ュ簱宸ヤ綔妗o紝宸ヤ綔鐘舵�� 2
@@ -136,9 +138,7 @@
&& staProtocol.isInEnable()
&& !staProtocol.isEmptyMk()
&& staProtocol.getWorkNo() == 9999
- && staProtocol.isPakMk()
-// && (staProtocol.getEmptyInType() != 1 && staProtocol.getEmptyInType() != 2)
- ) {
+ && staProtocol.isPakMk()) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�");
String barcode = barcodeThread.getBarcode();
@@ -422,7 +422,7 @@
// 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue());
staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
- staProtocol.setPalletSize(locMast.getLocType2());
+// staProtocol.setPalletSize(locMast.getLocType2());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
if (!result) {
@@ -959,14 +959,12 @@
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
*/
public synchronized void crnStnToLoc(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
- News.warnNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽叆搴�");
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
boolean flag = false;
// 鑾峰彇鍫嗗灈鏈哄叆搴撶珯淇℃伅
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
if (staProtocol == null) {
- News.infoNoLog("" + mark + " - 1" + " - 1" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol);
continue;
} else {
staProtocol = staProtocol.clone();
@@ -974,7 +972,7 @@
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
- News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ News.error("鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
continue;
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.getWorkNo() > 0 && staProtocol.isInEnable()
@@ -982,33 +980,27 @@
flag = true;
}
if (!flag) {
- News.errorNoLog("" + mark + " - 1" + " - 3" + " - 鍫嗗灈鏈哄叆搴撶珯淇℃伅(浠ヤ笅闇�瑕佸叏true):"
- + "鑷姩淇″彿" + staProtocol.isAutoing() + "鏈夌墿淇″彿" + staProtocol.isLoading()
- + "宸ヤ綔鍙�>0" + staProtocol.getWorkNo() + "鍙叆淇″彿" + staProtocol.isInEnable()
- + "鑳藉叆淇″彿锛坵ms璁剧疆锛�.equals(\"Y\")" + staDetl.getCanining());
continue;
}
// 鑾峰彇宸ヤ綔鐘舵�佷负2锛堣澶囦笂璧帮級鐨勫叆搴撳伐浣滄。
WrkMast wrkMast = wrkMastMapper.selectPakInStep2(slave.getId(), staProtocol.getWorkNo().intValue(), crnStn.getStaNo());
if (null == wrkMast) {
- News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
// log.error("鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts=2, 宸ヤ綔鍙�={}", staProtocol.getWorkNo());
continue;
}
// 鑾峰彇搴撲綅淇℃伅
LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
if (locMast == null) {
- News.error("" + mark + " - 1" + " - 5" + " - 鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
+ News.error("鏌ヨ搴撳瓨鏃犳暟鎹�--搴撲綅鍙穥}", wrkMast.getLocNo());
continue;
}
if (!locMast.getLocSts().equals("S") && !locMast.getLocSts().equals("Q")) {
- News.error("" + mark + " - 1" + " - 6" + " - 鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
+ News.error("鍏ュ簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), locMast.getLocSts());
continue;
}
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
-// News.infoNoLog(""+mark+" - 1"+" - 7"+" - 鍫嗗灈鏈烘帶鍒惰繃婊�:鍫嗗灈鏈烘槸鍚︾┖闂�={}锛屼换鍔″彿={}", crnProtocol.getStatusType(),crnProtocol.getTaskNo());
continue;
}
@@ -1017,89 +1009,92 @@
continue;
}
-// if (crnProtocol.getCrnNo() == 1) {
-// //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
-// if (Utils.getLaneByLocNo(wrkMast.getLocNo()) != crnProtocol.getCrnLane()) {
-// //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
-// List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
-//// if (!currentWrkMasts.isEmpty()) {
-//// continue;//褰撳墠鍫嗗灈鏈烘墍鍦ㄥ贩閬撳瓨鍦ㄤ换鍔�
-//// }
-// }
-// }
-
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
if (Utils.isDeepLoc(slaveProperties, wrkMast.getLocNo())) {
- News.warnNoLog("" + mark + " - 1" + " - 8" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getLocNo());
LocMast shallowLoc = locMastService.selectById(shallowLocNo);
// O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
- News.warn("" + mark + " - 1" + " - 9" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null == waitWrkMast) {
- News.error("" + mark + " - 1" + " - 10" + " - {}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
+ News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
} else {
- if (waitWrkMast.getWrkSts() != 14 && waitWrkMast.getIoType() > 100) {
- waitWrkMast.setIoPri(15D);
- waitWrkMast.setModiTime(new Date());
- if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("" + mark + " - 1" + " - 11" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
- }
- continue;
+ waitWrkMast.setIoPri(15D);
+ waitWrkMast.setModiTime(new Date());
+ if (wrkMastMapper.updateById(waitWrkMast) == 0) {
+ News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
-
- if (waitWrkMast.getWrkSts() < 5 && waitWrkMast.getIoType() < 100) {
- continue;//鏈変换鍔$姝㈡惉杩愶紝鏈夊彲鑳芥祬搴撲綅鐘舵�佽繕鏈彉鏇村畬鎴�
- }
+ continue;
}
} else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
- News.warn("" + mark + " - 1" + " - 12" + " - // F銆丏 搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
// 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())) {
- if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
- wrkMast.setUpdMk("Y");
- wrkMast.setIoPri(14D);
- wrkMastMapper.updateById(wrkMast);
- }
-// wrkMast.setUpdMk("Y");
-// wrkMast.setIoPri(14D);
-// wrkMastMapper.updateById(wrkMast);
-// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-// moveLocForDeepLoc(slave, shallowLoc,mark);
+ wrkMast.setUpdMk("Y");
+ wrkMast.setIoPri(14D);
+ wrkMastMapper.updateById(wrkMast);
+ // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+ moveLocForDeepLoc(slave, shallowLoc);
// 鐢熸垚宸ヤ綔妗c�佹敼鍙樻祬搴撲綅鐨勬簮搴�/鐩爣搴� 搴撲綅鐘舵�併�佷笅鍙戝爢鍨涙満鍛戒护锛堢珛椹墽琛�)
// moveLocForDeepLocPakin(slave, shallowLoc, wrkMast);
}
continue;
} else if (shallowLoc.getLocSts().equals("Q")) {
- News.warn("" + mark + " - 1" + " - 13" + " - // Q 搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
- News.infoNoLog("" + mark + " - 1" + " - 14" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
continue;
}
}
}
- News.info("" + mark + " - 1" + " - 15" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
- , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue()
- , locMast.getRow1().shortValue(), locMast.getBay1().shortValue(), locMast.getLev1().shortValue());
+ String ip = "";
+ if (wrkMast.getStaNo()==401){
+ ip = "172.26.4.231";
+ }else if (wrkMast.getStaNo()==402){
+ ip = "172.26.4.232";
+ }else if (wrkMast.getStaNo()==307){
+ ip = "172.26.1.231";
+ }else if (wrkMast.getStaNo()==303){
+ ip = "172.26.1.232";
+ }else if (wrkMast.getStaNo()==304){
+ ip = "172.26.1.233";
+ }
+ SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddHHmmss");
+ String newName = sf.format(new Date()) + "_" + locMast.getLocNo();
+ String pic = wrkMast.getPic();
+ List<String> list = null;
+ if (Cools.isEmpty(pic)) {
+ list = new ArrayList<>();
+ } else {
+ list = JSON.parseArray(pic, String.class);
+ }
+ list.add(newName);
+ //鍏ュ簱鍓嶆姄鎷�
+ try {
+ hikUtils.startPic(ip, newName + ".jpg");
+ } catch (Exception e) {
+ log.error("鍏ュ簱鍓嶆姄鎷�");
+ }
+
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
CrnCommand crnCommand = new CrnCommand();
crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰
crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
- crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞俓
+ crnCommand.setBarcode(wrkMast.getBarcode());//鎵樼洏鐮�
+ log.error("768 鍫嗗灈鏈哄懡浠や笅鍙�" + crnCommand);
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("" + mark + " - 1" + " - 16" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
+ log.error("772 鍫嗗灈鏈哄懡浠や笅鍙戞垚鍔�" + crnCommand);
+ News.info("772 鍫嗗灈鏈哄懡浠や笅鍙戞垚鍔�" + crnCommand);
// long startTime = System.currentTimeMillis();
// while ((System.currentTimeMillis() - startTime) < COMMAND_TIMEOUT) {
@@ -1114,16 +1109,20 @@
// }
// 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ log.error("787 淇敼宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� " + wrkMast);
+ News.info("787 淇敼宸ヤ綔妗g姸鎬�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� " + wrkMast);
Date now = new Date();
wrkMast.setWrkSts(3L);
+ wrkMast.setPic(JSON.toJSONString(list));
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 1" + " - 17" + " - 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
+ log.error("795 淇敼宸ヤ綔妗g姸鎬佹垚鍔�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�" + wrkMast);
+ News.info("795 淇敼宸ヤ綔妗g姸鎬佹垚鍔�2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�" + wrkMast);
}
}
- News.infoNoLog("" + mark + " - 1" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍏ュ簱鎵ц瀹屾瘯");
}
/**
@@ -1131,35 +1130,6 @@
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
public synchronized void locToCrnStn(CrnSlave slave, CrnProtocol crnProtocol, Integer mark) {
- News.warnNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂锛氭墽琛屽嚭搴�");
-
-// int devpTaskStackOver = 20;
-// Config config = configService.selectOne(new EntityWrapper<Config>()
-// .eq("code", "devpTaskStackOver"));
-// if (config != null) {
-// devpTaskStackOver = Integer.parseInt(config.getValue());
-// }
-// int devpCheckTaskStackOver = 2;
-// Config config2 = configService.selectOne(new EntityWrapper<Config>()
-// .eq("code", "devpCheckTaskStackOver"));
-// if (config2 != null) {
-// devpCheckTaskStackOver = Integer.parseInt(config2.getValue());
-// }
-//
-// int outNumber = 13;
-// Config config3 = configService.selectOne(new EntityWrapper<Config>()
-// .eq("code", "fullBoardOutboundNumber"));
-// if (config3 != null) {
-// outNumber = Integer.parseInt(config3.getValue());
-// }
-//
-//
-// Integer devpWorkingCount = commonService.queryDevpWorkingCount();
-// if (devpWorkingCount > devpTaskStackOver) {
-// News.warn("" + mark + " - 2" + " - 0" + " - 杈撻�佺嚎浠诲姟杩囪浇锛屽綋鍓嶈緭閫佺嚎鎵胯浇鏁伴噺:{}", devpWorkingCount);
-// return;
-// }
-
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
// 鑾峰彇宸ヤ綔鐘舵�佷负11锛堢敓鎴愬嚭搴揑D锛夌殑鍑哄簱宸ヤ綔妗�
// WrkMast wrkMast = wrkMastMapper.selectPakOutStep1(slave.getId(), crnStn.getStaNo());
@@ -1170,106 +1140,68 @@
}
// 宸ヤ綔妗g姸鎬佸垽鏂�
if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) {
- News.error("" + mark + " - 2" + " - 1" + " - 鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
+ News.error("鏌ヨ宸ヤ綔妗f暟鎹笉绗﹀悎鏉′欢--鍏ュ嚭绫诲瀷/绔欑偣, 宸ヤ綔鍙�={}锛屾簮搴撲綅={}锛屽叆鍑虹被鍨�={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType());
continue;
}
// 鑾峰彇婧愬簱浣嶄俊鎭�
LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo());
if (!sourceSta.getLocSts().equals("R") && !sourceSta.getLocSts().equals("P")) {
- News.error("" + mark + " - 2" + " - 2" + " - 鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
+ News.error("鍑哄簱鎿嶄綔搴撲綅鐘舵�佷笉绗﹀悎--鐘舵��, 搴撲綅鍙�={}锛屽簱浣嶇姸鎬�={}", wrkMast.getLocNo(), sourceSta.getLocSts());
continue;
}
// 鑾峰彇鍫嗗灈鏈哄嚭搴撶珯淇℃伅
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId());
StaProtocol staProtocol = devpThread.getStation().get(crnStn.getStaNo());
if (staProtocol == null) {
- News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol);
break;
// continue;
} else {
staProtocol = staProtocol.clone();
}
-// if (wrkMast.getStaNo() == 1003 || wrkMast.getStaNo() == 1007 || wrkMast.getStaNo() == 1004) {
-// //妫�娴嬫槸鍚︽湁鍏ュ簱浠诲姟
-// List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-// .in("io_type", 1, 53, 57)
-// .notIn("wrk_sts", 3, 4, 5)
-// .in("source_sta_no", 1002, 1007)
-// );
-// if (!inWrkMasts.isEmpty()) {
-// News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦ㄥ叆搴撲换鍔★紝绛夊緟鍏ュ簱浠诲姟鎵ц瀹屾垚鍐嶅嚭搴擄紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
-// continue;
-// }
-// }
-
- //zhangc
-// if (wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107) {
-// if (wrkMast.getStaNo() == 1058) {
-// List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-// .in("wrk_sts", 12, 14)
-// .eq("sta_no", 1058)
-// );
-// if (!Cools.isEmpty(inWrkMasts) && inWrkMasts.size() >= devpCheckTaskStackOver) {
-// News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦�1058绔欑偣锛屽瓨鍦ㄤ袱绗斿伐浣滀腑鐨勪换鍔★紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
-// continue;
-// }
-// } else if (wrkMast.getStaNo() == 1062) {
-// List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-// .in("wrk_sts", 12, 14)
-// .eq("sta_no", 1062)
-// );
-// if (!Cools.isEmpty(inWrkMasts) && inWrkMasts.size() >= devpCheckTaskStackOver) {
-// News.error("" + mark + " - 2" + " - 妫�娴嬪瓨鍦�1062绔欑偣锛屽瓨鍦ㄤ袱绗斿伐浣滀腑鐨勪换鍔★紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
-// continue;
-// }
-// }
-// }else if (wrkMast.getIoType() == 101) {
-// List<WrkMast> inWrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
-// .in("wrk_sts", 12, 14)
-// );
-// if (!Cools.isEmpty(inWrkMasts) && inWrkMasts.size() >= outNumber) {
-// News.error("" + mark + " - 4" + " - 妫�娴嬪埌鍏ㄦ澘鍑哄簱鐨勪换鍔″凡缁忓埌杈句笂绾匡紝宸ヤ綔鍙�={}" + wrkMast.getWrkNo());
-// continue;
-// }
-// }
-
-// // 鍏ュ嚭搴撴ā寮忓垽鏂�
-// if (devpThread.ioMode != IoModeType.PAKOUT_MODE) { continue; }
-// if (wrkMast.getStaNo() == 204 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) {
-// News.infoNoLog(""+mark+" - 2"+" - 4"+" - 鍏ュ嚭搴撴ā寮忥紙姝ゅ鍑哄簱鏂规硶锛屽嚭搴撴ā寮忕户缁�=="+devpThread.ioModeOf2F);
-// continue;
-// }
-
// 鏌ヨ绔欑偣璇︾粏淇℃伅
BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo());
if (staDetl == null) {
- News.error("" + mark + " - 2" + " - 5" + " - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
+ News.error("鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo());
break;
// continue;
}
+ //鏌ヨ鍦ㄥ簱淇℃伅
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts", "R")
+ .eq("loc_no", wrkMast.getSourceLocNo()));
+ if (Cools.isEmpty(locMast)) {
+ News.error("鍑哄簱 ===>> 搴撲綅涓病鏈夎繖绗旇祫鏂�", wrkMast.getSourceLocNo());
+ continue;
+ }
+ //鍫嗗灈鏈烘帴椹崇珯鐐规病鏈夌┖鏂欐灦
+ if(!staProtocol.isEmptyOutType()&&(Cools.isEmpty(wrkMast.getCtnType())||wrkMast.getCtnType()==0)){
+ //璇锋眰wms涓嬪彂agv鎼繍绌烘枡鏋跺埌鍫嗗灈鏈烘帴椹崇珯鐐逛换鍔�
+ try {
+ HashMap<String,Object> hashMap=new HashMap<>();
+ hashMap.put("wrkNo",wrkMast.getWrkNo());
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/createAGVMoveTask")
+ .setJson(JSON.toJSONString(wrkMast))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ wrkMast.setCtnType(1);//宸茬敓鎴怉GV鎼繍绌烘枡鏋朵换鍔�
+ wrkMastService.updateById(wrkMast);
+ } else {
+ continue;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
-
- //鏍规嵁鍙傛暟鍒ゆ柇鏄惁鏍¢獙鍙嚭淇″彿
-// String crnOutVerifyOut = "Y";
-// Config crnOutVerifyOutEnableConfig = configService.selectOne(new EntityWrapper<Config>()
-// .eq("code", "crnOutVerifyOutEnable"));
-// if (crnOutVerifyOutEnableConfig != null) {
-// crnOutVerifyOut = crnOutVerifyOutEnableConfig.getValue();
-// }
-//
-// if (crnOutVerifyOut.equals("Y")) {
-// if (!staProtocol.isOutEnable()) {
-// continue;
-// }
-//
-// if (staProtocol.getWorkNo() > 0) {
-// continue;
-// }
-// }
-
-
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")
+ && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable() && staProtocol.isEmptyOutType()) {
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
// 鍫嗗灈鏈烘帶鍒惰繃婊�
@@ -1278,35 +1210,12 @@
break;
}
-// if (crnProtocol.getCrnNo() == 1) {
-// String turnCrnExecuteCurrentChannel = "Y";
-// Config turnCrnExecuteCurrentChannelConfig = configService.selectOne(new EntityWrapper<Config>()
-// .eq("code", "turnCrnExecuteCurrentChannel")
-// );
-// if (turnCrnExecuteCurrentChannelConfig != null) {
-// turnCrnExecuteCurrentChannel = turnCrnExecuteCurrentChannelConfig.getValue();
-// }
-//
-// if (turnCrnExecuteCurrentChannel.equals("Y")) {
-// //鍒ゆ柇鍫嗗灈鏈哄拰褰撳墠浠诲姟鏄惁澶勪簬涓�涓贩閬�
-// if (Utils.getLaneByLocNo(wrkMast.getSourceLocNo()) != crnProtocol.getCrnLane()) {
-// //鍒ゆ柇鍫嗗灈鏈烘墍鍦ㄥ贩閬撴槸鍚﹀瓨鍦ㄥ叾浠栦换鍔★紝濡傚瓨鍦ㄥ垯浼樺厛鎵ц
-// List<WrkMast> currentWrkMasts = wrkMastService.selectLaneWrkMast(crnProtocol.getCrnLane(), false);
-// if (!currentWrkMasts.isEmpty()) {
-// continue;//褰撳墠鍫嗗灈鏈烘墍鍦ㄥ贩閬撳瓨鍦ㄤ换鍔�
-// }
-// }
-// }
-// }
-
// 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
if (Utils.isDeepLoc(slaveProperties, wrkMast.getSourceLocNo())) {
- News.warnNoLog("" + mark + " - 2" + " - 6" + " - 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞� : 寮�濮嬫墽琛� 浠诲姟鍙�={}", wrkMast.getWrkNo());
String shallowLocNo = Utils.getShallowLoc(slaveProperties, wrkMast.getSourceLocNo());
LocMast shallowLoc = locMastService.selectById(shallowLocNo);
// O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒
if (shallowLoc.getLocSts().equals("P") || shallowLoc.getLocSts().equals("R")) {
- News.warnNoLog("" + mark + " - 2" + " - 7" + " - // O.绌哄簱浣嶃�丵.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴撱�丼.鍏ュ簱棰勭害銆乆.绂佺敤 鐩存帴鎼紒搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null == waitWrkMast) {
News.error("{}搴撲綅寮傚父锛屾湭妫�绱㈠埌鐩稿簲宸ヤ綔妗o紒", shallowLocNo);
@@ -1315,7 +1224,7 @@
waitWrkMast.setIoPri(15D);
waitWrkMast.setModiTime(new Date());
if (wrkMastMapper.updateById(waitWrkMast) == 0) {
- News.error("" + mark + " - 2" + " - 8" + " - 璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
+ News.error("璋冩暣宸ヤ綔妗d紭鍏堢骇澶辫触锛佸伐浣滃彿={}", waitWrkMast.getWrkNo());
}
continue;
} else {
@@ -1323,31 +1232,20 @@
}
}
} else if (shallowLoc.getLocSts().equals("F") || shallowLoc.getLocSts().equals("D")) {
- News.warnNoLog("" + mark + " - 2" + " - 9" + " - // F銆丏 搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
-// WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
- //2022-08-16 modify,涓嶆牴鎹畊pdmk鏍囪绉诲簱浠诲姟(瀹规槗琚彇娑堝鑷村牭濉�)锛屾煡璇㈠伐浣滄。鏄惁瀛樺湪浠诲姟
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
// 姝ゆ爣璁伴伩鍏嶅娆℃墽琛岀Щ搴撲换鍔�
-// if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
-// || Cools.isEmpty(waitWrkMast)) {
- if (Cools.isEmpty(waitWrkMast)) {
- if (moveLocForDeepLoc(slave, crnProtocol, shallowLoc, mark)) {
- wrkMast.setUpdMk("Y");
-// wrkMast.setIoPri(14D);
- wrkMastMapper.updateById(wrkMast);
- }
-// wrkMast.setUpdMk("Y");
-// wrkMastMapper.updateById(wrkMast);
-// // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
-// moveLocForDeepLoc(slave, shallowLoc,mark);
+ if (Cools.isEmpty(wrkMast.getUpdMk()) || "N".equals(wrkMast.getUpdMk())
+ || Cools.isEmpty(waitWrkMast)) {
+ wrkMast.setUpdMk("Y");
+ wrkMastMapper.updateById(wrkMast);
+ // 鐢熸垚宸ヤ綔妗�,灏嗘祬搴撲綅绉昏浆鍒版柊鐨勫簱浣嶄腑
+ moveLocForDeepLoc(slave, shallowLoc);
}
- News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛佹祬搴撲綅鍙�:{}", wrkMast.getWrkNo(), shallowLocNo);
+ News.error("{}浠诲姟鍑哄簱澶辫触锛屾祬搴撲綅鍫靛锛�", wrkMast.getWrkNo());
continue;
} else if (shallowLoc.getLocSts().equals("Q") || shallowLoc.getLocSts().equals("S")) {
- News.warnNoLog("" + mark + " - 2" + " - 10" + " - // Q銆丼 搴撲綅={},搴撲綅鐘舵��={}", shallowLoc.getLocNo(), shallowLoc.getLocSts());
- WrkMast waitWrkMast = wrkMastMapper.selectByLocNo1(shallowLocNo);
+ WrkMast waitWrkMast = wrkMastMapper.selectByLocNo(shallowLocNo);
if (null != waitWrkMast && waitWrkMast.getWrkSts() == 4) {
- News.infoNoLog("" + mark + " - 2" + " - 11" + " - // F銆丏 宸ヤ綔鐘舵��(鍒ゆ柇鏉′欢涓�==4)={}", waitWrkMast.getWrkSts());
continue;
}
}
@@ -1359,15 +1257,11 @@
// return;
}
- News.warnNoLog("" + mark + " - 2" + " - 12" + " - 鍛戒护涓嬪彂 : 宸ヤ綔鍙�={},婧愭帓={},婧愬垪={},婧愬眰={},鐩爣鎺�={},鐩爣鍒�={},鐩爣灞�={}", wrkMast.getWrkNo().shortValue()
- , sourceSta.getRow1().shortValue(), sourceSta.getBay1().shortValue(), sourceSta.getLev1().shortValue()
- , crnStn.getRow().shortValue(), crnStn.getBay().shortValue(), crnStn.getLev().shortValue());
-
// 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
CrnCommand crnCommand = new CrnCommand();
crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(wrkMast.getWrkNo().shortValue()); // 宸ヤ綔鍙�
-// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
+ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆
crnCommand.setSourcePosX(sourceSta.getRow1().shortValue()); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY(sourceSta.getBay1().shortValue()); // 婧愬簱浣嶅垪
@@ -1375,8 +1269,9 @@
crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setBarcode(wrkMast.getBarcode());
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
- News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
+ News.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -1384,14 +1279,14 @@
wrkMast.setCrnStrTime(now);
wrkMast.setModiTime(now);
if (wrkMastMapper.updateById(wrkMast) == 0) {
- News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
+ News.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast.getWrkNo());
}
break;
}
}
+
}
}
- News.infoNoLog("" + mark + " - 2" + " - 0" + " - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 锛� 鍑哄簱鎵ц瀹屾瘯");
}
// /**
@@ -1896,9 +1791,9 @@
if (staProtocol.isAutoing()
&& staProtocol.isInEnable()
&& staProtocol.isEmptyMk()
- && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999)
+ && (staProtocol.getWorkNo() ==0)
&& staProtocol.isPakMk()
- && staProtocol.getEmptyInType() == 1
+// && staProtocol.getEmptyInType() == 1
) {
News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
@@ -1921,6 +1816,11 @@
String errorMsg = "鎵爜澶辫触锛岃閲嶈瘯";
MessageQueue.offer(SlaveType.Led, emptyInSta.getLed(), new Task(5, errorMsg));
}
+ continue;
+ }
+ WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+ WaitPakin waitPakin = waitPakinMapper.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", barcode).getEntity());
+ if (waitPakin != null || wrkMast != null) {
continue;
}
@@ -2469,21 +2369,15 @@
* 鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)
* tip锛氬悓姝�
*/
- private synchronized boolean moveLocForDeepLoc(CrnSlave crn, CrnProtocol crnProtocol, LocMast shallowLoc, Integer mark) {
+ private void moveLocForDeepLoc(CrnSlave crn, LocMast shallowLoc) {
try {
- News.warnNoLog("" + mark + "moveLocForDeepLoc" + " - 0" + " - 寮�濮嬫墽琛�:鍥犲弻娣卞簱浣嶉樆濉烇紝瀵规祬搴撲綅杩涜绉昏浆锛堢珛鍗虫墽琛岀増)");
List<Integer> rows = locMastService.queryDistinctRow(crn.getId());
LocMast loc = null;
for (Integer row : rows) {
if (Utils.isDeepLoc(slaveProperties, row)) {
loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
- if (loc != null) {
- if (crn.getId() == 1) {
- if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
- continue;
- }
- }
+ if (loc != null) {
if (Utils.isDeepLoc(slaveProperties, loc.getLocNo())) {
String shallowLocNo = Utils.getShallowLoc(slaveProperties, loc.getLocNo());
LocMast shallowLoc1 = locMastService.selectById(shallowLocNo);
@@ -2503,12 +2397,6 @@
loc = locMastService.queryFreeLocMast(row, shallowLoc.getLocType1());
if (null != loc) {//瀵瑰簲娣卞簱浣嶉潪鍦ㄥ簱鐘舵��,涓嶈兘绉诲簱
- if (crn.getId() == 1) {
- if (Utils.getLaneByLocNo(loc.getLocNo()) != crnProtocol.getCrnLane()) {
- continue;
- }
- }
-
String deepLoc = Utils.getDeepLoc(slaveProperties, loc.getLocNo());
LocMast deepLoc1 = locMastService.selectById(deepLoc);
if (!deepLoc1.getLocSts().equals("F") && !deepLoc1.getLocSts().equals("D")) {
@@ -2524,107 +2412,76 @@
}
if (null == loc) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 1" + " - 鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
- return false;
+ log.error("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
+ return;
// throw new CoolException("鍙屾繁搴撲綅 --- 娴呭簱浣嶉樆濉炲紓甯革紒 寰呯Щ杞祬搴撲綅锛�" + shallowLoc.getLocNo());
- } else {
- String deepLoc2 = Utils.getDeepLoc2(slaveProperties, loc.getLocNo());
- if (deepLoc2 != null) {
- LocMast locnew = locMastService.selectById(deepLoc2);
- if (locnew != null && locnew.getLocSts().equals("O")) {
- loc = locnew;
- }
- }
-
-
- try {
- // 鑾峰彇宸ヤ綔鍙�
- int workNo = commonService.getWorkNo(0);
- // 淇濆瓨宸ヤ綔妗�
- WrkMast wrkMast = new WrkMast();
- wrkMast.setWrkNo(workNo);
- wrkMast.setIoTime(new Date());
- wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
- wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
- wrkMast.setIoPri(13D);
- wrkMast.setCrnNo(crn.getId());
- wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
- wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
-// wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
- wrkMast.setFullPlt(shallowLoc.getLocSts().equals("D") ? "N" : "Y"); // 婊℃澘
- wrkMast.setPicking("N"); // 鎷f枡
- wrkMast.setExitMk("N"); // 閫�鍑�
- wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
- wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
- wrkMast.setLinkMis("N");
- wrkMast.setAppeTime(new Date());
- wrkMast.setModiTime(new Date());
- int res = wrkMastMapper.insert(wrkMast);
- if (res == 0) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 2" + " - 淇濆瓨宸ヤ綔妗eけ璐�");
-// throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
- return true;
- }
- // 宸ヤ綔妗f槑缁嗕繚瀛�
- if (shallowLoc.getLocSts().equals("F")) {
- List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
-
- for (LocDetl locDetl : locDetls) {
- WrkDetl wrkDetl = new WrkDetl();
- wrkDetl.sync(locDetl);
- wrkDetl.setWrkNo(workNo);
- wrkDetl.setIoTime(new Date());
- wrkDetl.setAnfme(locDetl.getAnfme());
-// VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
- wrkDetl.setAppeTime(new Date());
- wrkDetl.setModiTime(new Date());
- if (!wrkDetlService.insert(wrkDetl)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 3" + " - 淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
-// throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
- return true;
- }
- }
- }
- // 淇敼婧愬簱浣嶇姸鎬�
- if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
- shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
- shallowLoc.setModiTime(new Date());
- if (!locMastService.updateById(shallowLoc)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 4" + " - 鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
-// throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
- return true;
- }
- } else {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 5" + " - 婧愬簱浣嶅嚭搴撳け璐�");
-// throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
- return true;
- }
- // 淇敼鐩爣搴撲綅鐘舵��
- if (loc.getLocSts().equals("O")) {
- loc.setLocSts("S"); // S.鍏ュ簱棰勭害
- loc.setModiTime(new Date());
- if (!locMastService.updateById(loc)) {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 6" + " - 鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-// throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
- return true;
- }
- } else {
- News.errorNoLog("" + mark + "moveLocForDeepLoc" + " - 7" + " - 绉昏浆澶辫触");
-// throw new CoolException("绉昏浆澶辫触");
- return true;
- }
- } catch (Exception e) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
- }
}
-
+ // 鑾峰彇宸ヤ綔鍙�
+ int workNo = commonService.getWorkNo(0);
+ // 淇濆瓨宸ヤ綔妗�
+ WrkMast wrkMast = new WrkMast();
+ wrkMast.setWrkNo(workNo);
+ wrkMast.setIoTime(new Date());
+ wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+ wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+ wrkMast.setIoPri(13D);
+ wrkMast.setCrnNo(crn.getId());
+ wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+ wrkMast.setLocNo(loc.getLocNo()); // 鐩爣搴撲綅
+ wrkMast.setFullPlt(shallowLoc.getLocSts().equals("F") ? "Y" : "N"); // 婊℃澘
+ wrkMast.setPicking("N"); // 鎷f枡
+ wrkMast.setExitMk("N"); // 閫�鍑�
+ wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+ wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+ wrkMast.setLinkMis("N");
+ wrkMast.setAppeTime(new Date());
+ wrkMast.setModiTime(new Date());
+ int res = wrkMastMapper.insert(wrkMast);
+ if (res == 0) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+ }
+ // 宸ヤ綔妗f槑缁嗕繚瀛�
+ if (shallowLoc.getLocSts().equals("F")) {
+ List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+ for (LocDetl locDetl : locDetls) {
+ WrkDetl wrkDetl = new WrkDetl();
+ wrkDetl.setWrkNo(workNo);
+ wrkDetl.setIoTime(new Date());
+ wrkDetl.setAnfme(locDetl.getAnfme());
+ VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+ wrkDetl.setAppeTime(new Date());
+ wrkDetl.setModiTime(new Date());
+ if (!wrkDetlService.insert(wrkDetl)) {
+ throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+ }
+ }
+ }
+ // 淇敼婧愬簱浣嶇姸鎬�
+ if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+ shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+ shallowLoc.setModiTime(new Date());
+ if (!locMastService.updateById(shallowLoc)) {
+ throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+ }
+ } else {
+ throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+ }
+ // 淇敼鐩爣搴撲綅鐘舵��
+ if (loc.getLocSts().equals("O")) {
+ loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+ loc.setModiTime(new Date());
+ if (!locMastService.updateById(loc)) {
+ throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+ }
+ } else {
+ throw new CoolException("绉昏浆澶辫触");
+ }
} catch (Exception e) {
- News.error("" + mark + "moveLocForDeepLoc" + " - 8" + " - 鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
-// e.printStackTrace();
-// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ log.error("鍙屾繁搴撲綅闃诲锛屽娴呭簱浣嶈繘琛岀Щ杞け璐�", e);
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
- return true;
}
/**
@@ -2677,7 +2534,7 @@
wrkMast.setCrnNo(crn.getId());
wrkMast.setSourceLocNo(sourceLocNo); // 婧愬簱浣�
wrkMast.setLocNo(locNo); // 鐩爣搴撲綅
- wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+ wrkMast.setFullPlt(sourceLoc.getLocSts().equals("F")?"Y":"N"); // 婊℃澘锛歒
wrkMast.setPicking("N"); // 鎷f枡
wrkMast.setExitMk("N"); // 閫�鍑�
wrkMast.setEmptyMk(sourceLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
diff --git a/src/main/java/com/zy/asrs/utils/VersionUtils.java b/src/main/java/com/zy/asrs/utils/VersionUtils.java
index 49671aa..806625b 100644
--- a/src/main/java/com/zy/asrs/utils/VersionUtils.java
+++ b/src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -1,6 +1,8 @@
package com.zy.asrs.utils;
+import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkDetl;
import com.zy.common.model.LocTypeDto;
/**
@@ -26,5 +28,17 @@
return true;
}
+ public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) {
+ wrkDetl.setMatnr(locDetl.getMatnr()); // 浜у搧缂栧彿
+ wrkDetl.setMaktx(locDetl.getMaktx()); // 浜у搧鎻忚堪
+ wrkDetl.setSpecs(locDetl.getSpecs()); // 瑙勬牸
+ wrkDetl.setUnit(locDetl.getUnit()); // 鍗曚綅
+// wrkDetl.setSize(locDetl.getSize()); // 灏哄
+ wrkDetl.setColor(locDetl.getColor()); // 棰滆壊
+ wrkDetl.setWeight(locDetl.getWeight()); // 鍗曢噸
+ wrkDetl.setZpallet(locDetl.getZpallet()); // 鎵樼洏鏉$爜
+ wrkDetl.setAnfme(locDetl.getAnfme());//鏁伴噺
+ }
+
}
diff --git a/src/main/java/com/zy/common/utils/HikUtils.java b/src/main/java/com/zy/common/utils/HikUtils.java
new file mode 100644
index 0000000..b8f5e4d
--- /dev/null
+++ b/src/main/java/com/zy/common/utils/HikUtils.java
@@ -0,0 +1,39 @@
+package com.zy.common.utils;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+
+@Component
+public class HikUtils {
+
+ @Value("${zyHikUrl}")
+ private String hikUrl;
+
+ public void startPic(String ip, String filename) {
+ try {
+ HashMap<String, Object> data = new HashMap<>();
+ data.put("ip", ip);
+ data.put("filename", filename);
+
+ String response = new HttpHandler.Builder()
+ .setUri(hikUrl)
+ .setPath("/startPic")
+ .setJson(JSON.toJSONString(data))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ News.error("璇锋眰鎺ュ彛鎴愬姛锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", hikUrl + "/startPic", JSON.toJSONString(data), response);
+ } else {
+ News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", hikUrl + "/startPic", JSON.toJSONString(data), response);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+}
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index 01343c8..66ac487 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -38,6 +38,11 @@
*/
private Short taskMode = 0;
+ private String barcode= "";
+
+ //鐏: 1鏄伀璀�
+ private short fireStaut = 0;
+
@JSONField(serialize = false)
private CrnTaskModeType taskModeType;
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index c28c09b..9764bba 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -29,6 +29,11 @@
*/
public Short eStop;
+ private String barcode= "";
+
+ //鐏: 1鏄伀璀�
+ private short fireStaut = 0;
+
/**
* 寮傚父鐮�
*/
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 03d4cab..d2dc0d0 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -79,6 +79,9 @@
//绌烘墭鍏ュ簱绫诲瀷
private Short emptyInType;
+ //绌烘枡鏋�
+ private boolean emptyOutType;
+
public BasDevp toSqlModel(){
BasDevp basDevp = new BasDevp();
basDevp.setDevNo(siteId);
@@ -91,6 +94,7 @@
basDevp.setLocType2((short) 0); // 瀹界獎绫诲瀷{0:鏈煡,1:绐勫簱浣�,2:瀹藉簱浣峿
basDevp.setLocType3((short) 0); // 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
basDevp.setLocType1(high != low && low ? (short) 1 : (short) 2);
+ 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 c6343a6..79e3fa9 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -44,6 +44,11 @@
private short heartBeatVal = 1;
/**
+ * 鏉$爜鏁伴噺
+ */
+ private int barcodeSize = 2;
+
+ /**
* 鏃ュ織閲囬泦鏃堕棿
*/
private Long deviceDataLogTime = System.currentTimeMillis();
@@ -53,7 +58,7 @@
}};
public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
-// add(2000);add(2001);add(2002);add(1001);add(1002);add(1003);add(1004);add(1005);add(1006);add(1007);
+
}};
@@ -61,11 +66,11 @@
public static final ArrayList<Integer> barcode1 = new ArrayList<Integer>() {{
add(1);
- add(2);
+// add(2);
}};
public static final ArrayList<Integer> barcode2 = new ArrayList<Integer>() {{
-// add(3);
+ add(2);
// add(4);
}};
@@ -197,7 +202,7 @@
// updateIoMode();
ArrayList<Integer> staNos = getStaNo();
int staNoSize = staNos.size();
- OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 18));
+ OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8));
if (result.IsSuccess) {
for (int i = 0; i < staNoSize; i++) {
Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
@@ -207,40 +212,20 @@
staProtocol.setSiteId(siteId);
station.put(siteId, staProtocol);
}
- staProtocol.setSiteId(siteId);
- staProtocol.setWorkNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, (i * 18))); // 宸ヤ綔鍙�
- staProtocol.setStaNo((short) siemensS7Net.getByteTransform().TransInt32(result.Content, (i * 18) + 4)); // 鐩爣绔�
+ staProtocol.setWorkNo((short)siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙�
- short locHeight = siemensS7Net.getByteTransform().TransInt16(result.Content, (i * 18) + 8);//搴撲綅楂樺害
- if (locHeight == 2) {//high
- staProtocol.setHigh(true);
- staProtocol.setLow(false);
- }else {//low
- staProtocol.setHigh(false);
- staProtocol.setLow(true);
- }
+ staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔�
- staProtocol.setError(siemensS7Net.getByteTransform().TransInt16(result.Content, (i * 18) + 10)); // 鎶ヨ
-
- boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, (i * 18) + 12, 1);
- staProtocol.setAutoing(status[0]); // 鑷姩
- staProtocol.setLoading(status[1]); // 鏈夌墿
- staProtocol.setInEnable(status[2]); // 鍙叆
- staProtocol.setOutEnable(status[3]);// 鍙嚭
- staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
- staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
-
- boolean[] statusError = siemensS7Net.getByteTransform().TransBool(result.Content, (i * 18) + 13, 1);
- staProtocol.setFrontError(statusError[0]); // 鍓嶈秴鎶ヨ
- staProtocol.setBackError(statusError[1]); // 鍚庤秴鎶ヨ
- staProtocol.setHighError(statusError[2]); // 瓒呴珮鎶ヨ
- staProtocol.setLeftError(statusError[3]);// 宸﹂珮鎶ヨ
- staProtocol.setRightError(statusError[4]); // 鍙抽珮鎶ヨ
- staProtocol.setWeightError(statusError[5]); // 瓒呴噸鎶ヨ
- staProtocol.setBarcodeError(statusError[6]); // 鎵爜鎶ヨ
-
- short emptyInType = siemensS7Net.getByteTransform().TransInt16(result.Content, (i * 18) + 14);//棰勭暀1-绌烘墭鍏ュ簱绫诲瀷锛�1:绔嬪簱鏂瑰悜 2:浜х嚎鏂瑰悜
- staProtocol.setEmptyInType(emptyInType);
+ boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2);
+ staProtocol.setAutoing(status[0]); // 鑷姩
+ staProtocol.setLoading(status[1]); // 鏈夌墿
+ staProtocol.setInEnable(status[2]); // 鍙叆
+ staProtocol.setOutEnable(status[3]); // 鍙嚭
+ staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿
+ staProtocol.setFullPlt(status[5]); // 婊℃墭鐩�
+ staProtocol.setHigh(status[6]); // 楂樺簱浣�
+ staProtocol.setLow(status[7]); // 浣庡簱浣�
+ staProtocol.setEmptyOutType(status[8]); //绌烘枡鏋�
if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
staProtocol.setPakMk(true);
@@ -248,40 +233,57 @@
}
}
- //鏉$爜鎵弿鍣�
- Thread.sleep(200);
- ArrayList<Integer> barcodeList = getBarcode();
- int barcodeSize = barcodeList.size();
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB103.0", (short) (barcodeSize * 8));
- if (result2.IsSuccess) {
- for (int i = 0; i < barcodeSize; i++) {
- String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
- Integer barcodeId = barcodeList.get(i);
- BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
- if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)){
- barcodeThread.setBarcode(barcode);
- }
+ //澶栧舰妫�娴�
+ Integer[] arr={401,402};
+ OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.700.0", (short) (arr.length*6));
+ for (int i = 0; i < arr.length; i++) {
+ StaProtocol staProtocol1 = station.get(arr[i]);
+ if(resultErr1.IsSuccess){
+ boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i*6, 1);
+ staProtocol1.setFrontError(status1[0]);
+ staProtocol1.setBackError(status1[1]);
+ staProtocol1.setHighError(status1[2]);
+ staProtocol1.setLeftError(status1[3]);
+ staProtocol1.setRightError(status1[4]);
+ staProtocol1.setWeightError(status1[5]);
+ staProtocol1.setBarcodeError(status1[6]);
}
-
}
- if (System.currentTimeMillis() - deviceDataLogTime > 1000 * 1) {
- //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
- //淇濆瓨鏁版嵁璁板綍
- DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
- DeviceDataLog deviceDataLog = new DeviceDataLog();
- deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
- deviceDataLog.setWcsData(JSON.toJSONString(station));
- deviceDataLog.setType("devp");
- deviceDataLog.setDeviceNo(slave.getId());
- deviceDataLog.setCreateTime(new Date());
- deviceDataLogService.insert(deviceDataLog);
- //鏇存柊閲囬泦鏃堕棿
- deviceDataLogTime = System.currentTimeMillis();
+
+ Thread.sleep(200);
+ if(slave.getId()==1) {
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.600.0", (short) (barcodeSize * 8));
+ if (result2.IsSuccess) {
+ for (int i = 0; i < barcodeSize; i++) {
+ String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+ BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
+ if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+ barcodeThread.setBarcode(barcode);
+ }
+ }
+
+ }
}
+ if (result.IsSuccess) {
+ if (System.currentTimeMillis() - deviceDataLogTime > 1000 * 1) {
+ //閲囬泦鏃堕棿瓒呰繃5s锛屼繚瀛樹竴娆℃暟鎹褰�
+ //淇濆瓨鏁版嵁璁板綍
+ DeviceDataLogService deviceDataLogService = SpringUtils.getBean(DeviceDataLogService.class);
+ DeviceDataLog deviceDataLog = new DeviceDataLog();
+ deviceDataLog.setOriginData(Base64.getEncoder().encodeToString(result.Content));
+ deviceDataLog.setWcsData(JSON.toJSONString(station));
+ deviceDataLog.setType("devp");
+ deviceDataLog.setDeviceNo(slave.getId());
+ deviceDataLog.setCreateTime(new Date());
+ deviceDataLogService.insert(deviceDataLog);
- if (result.IsSuccess && result2.IsSuccess) {
+ //鏇存柊閲囬泦鏃堕棿
+ deviceDataLogTime = System.currentTimeMillis();
+ }
+ }
+ if (result.IsSuccess) {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
// 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
@@ -317,57 +319,24 @@
}
ArrayList<Integer> staNos = getStaNo();
int index = staNos.indexOf(staProtocol.getSiteId());
- int[] array = new int[3];
- array[0] = staProtocol.getWorkNo().intValue();
- array[1] = staProtocol.getStaNo().intValue();
- array[2] = staProtocol.getPalletSize().intValue();
+ short[] array = new short[2];
+ OperateResult writeResult1 = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙�
+ OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo()); // 鐩爣绔�
- OperateResult write = siemensS7Net.Write("DB102." + index * 16, array);
+// OperateResult write = siemensS7Net.Write("DB100.0" + index*4, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
+// Thread.sleep(500);
+// OperateResult write1 = siemensS7Net.Write("DB100.2" + index*4+2, staProtocol.getStaNo()); // 鐩爣绔�
-// OperateResult write = null;
-// OperateResult write1 = null;
-// //浠诲姟涓嬪彂娆℃暟
-// int writeCount = 0;
-// do {
-// write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo()); // 宸ヤ綔鍙�
-// Thread.sleep(500);
-// write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo()); // 鐩爣绔�
-// if(write.IsSuccess || write1.IsSuccess){
-// Thread.sleep(200);
-// OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index*2, (short) 2);
-// OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB101." + index*2, (short) 2);
-// if(readResult.IsSuccess && readResult1.IsSuccess){
-// short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
-// short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0);
-// if(staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)){
-// //浠诲姟鍛戒护鍐欏叆鎴愬姛
-// log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// break;
-// } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
-// writeCount++;
-// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// }
-// } else {
-// writeCount++;
-// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// }
-// }
-// else {
-// writeCount++;
-// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-// }
-// }while (writeCount<5);
-
- if (!write.IsSuccess) {
+ if (!writeResult1.IsSuccess&&!writeResult2.IsSuccess) {
staProtocol = station.get(staProtocol.getSiteId());
if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
staProtocol.setPakMk(true);
}
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
- News.error("SiemensDevp"+" - 4"+" - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
} else {
OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
- News.info("SiemensDevp"+" - 5"+" - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
+ log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol));
}
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 054fd62..eeb5445 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
- port: 9093
+ port: 9094
servlet:
context-path: /@pom.build.finalName@
@@ -8,11 +8,13 @@
name: @pom.build.finalName@
datasource:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxtlfasrs-yclk
+ url: jdbc:sqlserver://127.0.0.1:1433;databasename=jnejc-hkwms
username: sa
password: sa@123
mvc:
static-path-pattern: /**
+
+zyHikUrl: 10.10.10.200:9091/hik
# redis:
# host: localhost
# port: 6379
@@ -34,7 +36,7 @@
enable: false
wms:
- url: 127.0.0.1:8080/wms
+ url: 127.0.0.1:8084/hkwms
# 涓嬩綅鏈洪厤缃�
wcs-slave:
@@ -55,7 +57,7 @@
# 鍫嗗灈鏈�1
crn[0]:
id: 1
- ip: 172.26.4.132
+ ip: 172.26.4.131
port: 102
rack: 0
slot: 0
@@ -93,7 +95,7 @@
# 杈撻�佺嚎1
devp[0]:
id: 1
- ip: 172.17.60.100
+ ip: 172.26.4.141
port: 102
rack: 0
slot: 0
@@ -183,14 +185,14 @@
# LED1
led[0]:
id: 1
- ip: 127.0.0.1
+ ip: 172.26.4.211
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
staArr: 401
# LED2
led[1]:
id: 2
- ip: 172.17.60.183
+ ip: 172.26.4.212
port: 5005
devpPlcId: ${wcs-slave.devp[0].id}
staArr: 402
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 7821af2..57cdbd3 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -34,6 +34,7 @@
<result column="mk" property="mk" />
<result column="barcode" property="barcode" />
<result column="ctn_no" property="ctnNo" />
+ <result column="pic" property="pic" />
</resultMap>
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 06982a4..6cb9a59 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -59,6 +59,7 @@
<!-- <result column="Pdc_type" property="PdcType" />-->
<result column="ctn_no" property="ctnNo" />
<result column="full_plt" property="fullPlt" />
+ <result column="pic" property="pic" />
</resultMap>
--
Gitblit v1.9.1