From 3d9d870ef185961c598943ea45ea71b66f299511 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期五, 12 一月 2024 21:11:02 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/model/protocol/StaProtocol.java | 3 +
src/main/java/com/zy/core/thread/RgvThread.java | 2
src/main/java/com/zy/asrs/entity/BasDevp.java | 4 +
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 125 ++++++++++++++++++++++++++++++++++++++---
src/main/java/com/zy/core/MainProcess.java | 14 +++-
src/main/resources/mapper/BasDevpMapper.xml | 1
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 11 +--
src/main/resources/application.yml | 2
8 files changed, 141 insertions(+), 21 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..0f5c1c3 100644
--- a/src/main/java/com/zy/asrs/entity/BasDevp.java
+++ b/src/main/java/com/zy/asrs/entity/BasDevp.java
@@ -214,6 +214,10 @@
@TableField("cart_pos")
private Integer cartPos;
+ @ApiModelProperty(value = "鎷嗗灈涓婁紶鍙犵洏鍥炲簱鏍囪")
+ @TableField("report_sign")
+ private Integer reportSign;
+
public String getIoTime$(){
if (Cools.isEmpty(this.ioTime)){
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 93dec60..4ef4ce0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -148,13 +148,13 @@
&& staProtocol.isLoading()
&& staProtocol.isInEnable()
&& !staProtocol.isEmptyMk()
- && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990)
+ && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9999)
&& staProtocol.isPakMk()) {// && !Cools.isEmpty(barcode)) {
// if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) {
// log.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode);
// //鏉$爜涓虹┖鎴栬�呬笉绗﹀悎锛岄��搴撳埌172绔欑偣
-// staProtocol.setWorkNo((short)9999);
+// staProtocol.setWorkNo((short)29999);
// staProtocol.setStaNo((short)172);
// devpThread.setPakMk(staProtocol.getSiteId(), false);
// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
@@ -252,7 +252,7 @@
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 9999)
+ && !staProtocol.isEmptyMk() && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() == 29999)
&& staProtocol.isPakMk()) {
// 鍒ゆ柇閲嶅宸ヤ綔妗�
WrkMast wrkMast = wrkMastMapper.selectPakInStep11(inSta.getStaNo());
@@ -423,6 +423,10 @@
continue;
} else {
staProtocol = staProtocol.clone();
+ }
+ BasDevp basDevp = basDevpService.selectById(staProtocol.getSiteId());
+ if (Cools.isEmpty(basDevp) || basDevp.getReportSign()!=1){
+ continue;
}
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk() && staProtocol.getWorkNo()==0 && !staProtocol.isOutEnable() && staProtocol.isInEnable()) {
@@ -1343,7 +1347,7 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
CrnCommand crnCommand = new CrnCommand();
crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙�
- crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙�
+ crnCommand.setTaskNo((short) 29999); // 宸ヤ綔鍙�
crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍥炲師鐐�
crnCommand.setSourcePosX((short) 0); // 婧愬簱浣嶆帓
@@ -2959,6 +2963,7 @@
*/
public synchronized void storeEmptyPlt() {
for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId()==1) continue;
// 閬嶅巻绌烘澘鍏ュ簱鍙�
for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
// 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
@@ -2972,7 +2977,7 @@
// 绔欑偣鏉′欢鍒ゆ柇
if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
- && staProtocol.isEmptyMk() && (staProtocol.getWorkNo() > 9990 && staProtocol.getWorkNo() <= 9999) && staProtocol.isPakMk()) {
+ && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 29990 && staProtocol.getWorkNo() <= 29999) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) {
try {
LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
@@ -3008,6 +3013,108 @@
}
}
}
+ }
+ }
+
+ /**
+ * 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満鍙犵洏
+ */
+ public synchronized void storeEmptyPlt2() {
+ for (DevpSlave devp : slaveProperties.getDevp()) {
+ if (devp.getId()==2) continue;
+ // 閬嶅巻绌烘澘鍏ュ簱鍙�
+ for (DevpSlave.Sta emptyInSta : devp.getEmptyInSta()) {
+ // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
+ SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
+ StaProtocol staProtocol = devpThread.getStation().get(emptyInSta.getStaNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+
+ // 绔欑偣鏉′欢鍒ゆ柇
+ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable()
+ && staProtocol.isEmptyMk() && ((staProtocol.getWorkNo() > 29990 && staProtocol.getWorkNo() <= 29999) || staProtocol.getWorkNo()==0) && staProtocol.isPakMk()) {
+ try {
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(staProtocol.getSiteId() + 9999L);
+ if (Cools.isEmpty(wrkMastSta)){
+ WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),staProtocol.getSiteId());
+ wrkMastSta1.setType(2);
+ wrkMastSta1.setWrkType(1);//宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 3锛氬彇鏀� 5锛氭弧鍙� 6锛氭弧鏀�
+ wrkMastStaMapper.insert(wrkMastSta1);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
+ */
+ public synchronized void storeEmptyPlt3() {
+ try{
+ for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgvSlave.getId());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
+ continue;
+ }
+
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
+ if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && (rgvProtocol.getLoaded2()==2 || rgvProtocol.getLoaded2()==3 ) ////0 鏃犵墿锛�1 涓�灞傛棤鐗╀簩灞傛湁鐗� 锛�2涓�灞傛湁鐗╀簩灞傛棤鐗� 锛堝彧鑳芥弧鏀撅級锛�3 1銆�2灞傞兘鏈夌墿
+ ) {
+ try {
+ // 鑾峰彇绌烘澘鍏ュ簱绔欎俊鎭�
+
+ SearchLocParam param = new SearchLocParam();
+ param.setIoType(10);
+ param.setSourceStaNo(122);
+ param.setLocType1((short)1);
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/pakin/empty/loc/v1")
+ .setJson(JSON.toJSONString(param))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ StartupDto dto = jsonObject.getObject("data", StartupDto.class);
+ // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护
+ WrkMast wrkMast = wrkMastMapper.selectPakInStep3(dto.getWorkNo());
+ if (!Cools.isEmpty(wrkMast) && wrkMast.getIoType()==10 && wrkMast.getWrkSts()==2){
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(wrkMast.getWrkNo().longValue());
+ if (Cools.isEmpty(wrkMastSta)){
+ WrkMastSta wrkMastSta1 = new WrkMastSta(new Date(),0);
+ wrkMastSta1.setWrkNo(wrkMast.getWrkNo().longValue());
+ wrkMastSta1.setType(2);
+ wrkMastSta1.setWrkType(6);//宸ヤ綔绫诲瀷 1:鍙栵紙鍙犵洏锛� 2锛氭媶鐩� 3锛氬彇鏀� 5锛氭弧鍙� 6锛氭弧鏀�
+ wrkMastStaMapper.insert(wrkMastSta1);
+ }
+ }
+ } else {
+ log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/pakin/empty/loc/v1", JSON.toJSONString(param), response);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+ }
+ }catch (Exception e){
+ log.error("3933琛屾墽琛屽皬杞︽斁绌烘澘浠诲姟涓嬪彂澶辫触");
+ log.error("3933琛�"+e);
}
}
@@ -4129,7 +4236,7 @@
&& rgvProtocol.getLoaded1()==0
&& rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
) {
- BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
+ BasRgvMap basRgvMap = basRgvMapMapper.selectById(basRgv.getRgvNo());
if (basRgvMap == null) {
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱鍦板浘涓繘琛岀淮鎶わ紒", rgvProtocol.getRgvNo());
continue;
@@ -4168,7 +4275,7 @@
}
}
/**
- * 鎵ц灏忚溅鎼繍浠诲姟
+ * 鎵ц灏忚溅鎼繍浠诲姟//鎷嗙洏
*/
public synchronized void rgvRunWrkMastEmptyStaPut() {//鎷嗙洏
try{
@@ -4184,7 +4291,7 @@
continue;
}
- // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤
+ // 鍙湁褰揜GV绌洪棽銆佽嚜鍔�,宸ヤ綅浜屾湁鐗�//rgv鍙敤//鎷嗙洏
if (rgvProtocol.getStatusType() == RgvStatusType.IDLE
&& rgvProtocol.getModeType() == RgvModeType.AUTO
&& rgvProtocol.getTaskNo1()==0 && rgvProtocol.getTaskNo2()==0
@@ -4396,7 +4503,7 @@
continue;
}
boolean sign = false;
- if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//鍙�
+ if (wrkMastSta.getStaEnd()==0 && wrkMastSta.getStaStart()!=0){//婊″彇
sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta);
}else {
continue;
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 4903b11..be9d963 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -56,7 +56,7 @@
// mainService.generateStoreWrkFile0(); // WMS鍏ュ簱
// 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱
mainService.stnToCrnStnPick();
- // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱鎷嗙洏鍖�
+ // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱鎷嗙洏鍖� 1妤兼媶鍨涗綅缃�
mainService.stnToCrnStnPick2();
// 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯
mainService.crnStnToOutStn();
@@ -86,8 +86,10 @@
//鎵ц灏忚溅璐х墿鎼繍浠诲姟
mainService.rgvRunWrkMastFullSta();
//鎵ц灏忚溅绌烘澘鎼繍浠诲姟
- mainService.rgvRunWrkMastEmptyStaPut();//鏀�
- mainService.rgvRunWrkMastEmptyStaTake();//鍙�
+ mainService.rgvRunWrkMastEmptyStaPut();//鏀�//鎷嗙洏
+ mainService.rgvRunWrkMastEmptyStaPutFull();//婊℃斁
+ mainService.rgvRunWrkMastEmptyStaTake();//鍙栧彔鐩�
+ mainService.rgvRunWrkMastEmptyStaTakeFull();////婊″彇
i++;
if (i > 3) {
mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯
@@ -97,8 +99,12 @@
// 寮傚父淇℃伅璁板綍
mainService.recErr();
- // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�
+ // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� 2妤�
mainService.storeEmptyPlt();
+ // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満鍙犵洏
+ mainService.storeEmptyPlt2();
+ // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,1妤煎彔鐩樻満绌烘澘鍏ュ簱
+ mainService.storeEmptyPlt3();
// 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣�
mainService.ledExecute();
// 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅
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 11c8f0a..1d0c7c9 100644
--- a/src/main/java/com/zy/core/model/protocol/StaProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/StaProtocol.java
@@ -61,6 +61,9 @@
basDevp.setWrkNo(workNo.intValue());
basDevp.setAutoing(autoing?"Y":"N");
basDevp.setLoading(loading?"Y":"N");
+ if (basDevp.getLoading().equals("N")){
+ basDevp.setReportSign(0);
+ }
basDevp.setInEnable(inEnable?"Y":"N");
basDevp.setOutEnable(outEnable?"Y":"N");
basDevp.setLocType1((short) 0); // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index ff27b04..d53239b 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -107,7 +107,7 @@
commandAvoidanceXY = new RgvCommand();
}
commandAvoidanceXY.setRgvNo(slave.getId()); // RGV缂栧彿
- commandAvoidanceXY.setTaskNo1((short) 9999); // 宸ヤ綔鍙�
+ commandAvoidanceXY.setTaskNo1((short) 29999); // 宸ヤ綔鍙�
commandAvoidanceXY.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
commandAvoidanceXY.setTaskMode1(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡
commandAvoidanceXY.setSourceStaNo1((short)0); // 婧愮珯
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 92778f0..960da5e 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -63,16 +63,15 @@
add(200);add(201);add(202);add(203);
add(204);add(205);add(206);add(207);
add(208);add(209);add(210);add(211);
- add(212);
- add(213);add(214);add(215);add(216);
- add(217);add(218);add(219);add(220);
- add(221);add(222);add(2000);
+ add(212);add(213);add(214);add(215);
+ add(216);add(217);add(218);add(219);
+ add(220);add(221);add(222);add(2000);
}};
/**
* 鏉$爜鏁伴噺
*/
- private int barcodeSize = 1;
+ private int barcodeSize = 3;
/**
* 鍏ュ嚭搴撴ā寮�
@@ -237,7 +236,7 @@
//鏉$爜鎵弿鍣�
Thread.sleep(200);
- OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10));
+ OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.288",(short)(barcodeSize*10));
if (result2.IsSuccess) {
for (int i = 0; i < barcodeSize; i++) {
String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,6, "UTF-8");
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 0ba0842..0dafceb 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -345,7 +345,7 @@
barcode: ${wcs-slave.barcode[0].id}
# 绌烘澘鍏ュ簱鍙�1
emptyInSta[0]:
- staNo: 12
+ staNo: 122
# 鍑哄簱鍙�1
outSta[0]:
staNo: 11
diff --git a/src/main/resources/mapper/BasDevpMapper.xml b/src/main/resources/mapper/BasDevpMapper.xml
index b00be22..1b38347 100644
--- a/src/main/resources/mapper/BasDevpMapper.xml
+++ b/src/main/resources/mapper/BasDevpMapper.xml
@@ -41,6 +41,7 @@
<result column="max_wt" property="maxWt" />
<result column="gross_wt" property="grossWt" />
<result column="cart_pos" property="cartPos" />
+ <result column="report_sign" property="reportSign" />
</resultMap>
--
Gitblit v1.9.1