From 2831a88603cf5e7548f586d01c64adcdf8d82b70 Mon Sep 17 00:00:00 2001
From: lsh <1>
Date: 星期三, 20 三月 2024 18:08:51 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 130 ++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 126 insertions(+), 4 deletions(-)
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 777a44a..a4ea3e0 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -182,7 +182,7 @@
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
if (staProtocol.isAutoing() && staProtocol.isLoading()
&& staProtocol.isInEnable()
- && !staProtocol.isEmptyMk() && (workNo >= 0)
+ && !staProtocol.isEmptyMk() && (workNo == 9991 )
&& staProtocol.isPakMk()) {
// 鑾峰彇鏉$爜鎵弿浠俊鎭�
BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode());
@@ -190,13 +190,25 @@
continue;
}
String barcode = barcodeThread.getBarcode();
- if(!Cools.isEmpty(barcode)) {
+ if(!Cools.isEmpty(barcode) && !barcode.equals("99999999")) {
// 璇锋眰wms鎺ュ彛锛岃幏鍙栧伐浣滃彿鍜岀洰鏍囧簱浣�
ToWmsDTO toWmsDTO = new ToWmsDTO(barcode,staProtocol.getSiteId(),staProtocol.isHigh() ? 2 : 1);
TaskWrk taskWrk1=taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode",barcode));
if(!Cools.isEmpty(taskWrk1)){
log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
- continue;
+ if (taskWrk1.getIoType()==1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())){
+ StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>()
+ .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no",1).eq("stn_no",staProtocol.getSiteId()));
+ if (Cools.isEmpty(staDesc)){
+ log.info("鎵樼洏鐮侊細"+barcode+"浠诲姟妗e瓨鍦�");
+ return;
+ }else {
+ staProtocol.setWorkNo(taskWrk1.getWrkNo().shortValue());
+ staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ }
+ }
+ return;
}
HashMap<String, Object> headParam = new HashMap<>();
headParam.put("Content-Type","application/json");
@@ -221,6 +233,41 @@
log.info("鍏ュ簱璇锋眰鍙傛暟{}" + JSON.toJSONString(toWmsDTO));
if (jsonObject.getInteger("code").equals(200) && !Cools.isEmpty(jsonObject.get("data").toString())) {
GetWmsDto getWmsDto = JSON.parseObject(jsonObject.get("data").toString(), GetWmsDto.class);
+
+ //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣�
+ LocMast locMast=locMastService.selectOne(new EntityWrapper<LocMast>()
+ .eq("loc_sts","O")
+ .eq("loc_no",getWmsDto.getLocNo()));
+ if(Cools.isEmpty(locMast)){
+ try{
+ HashMap<String, Object> headParam1 = new HashMap<>();
+ headParam1.put("taskNo",getWmsDto.getTaskNo());
+ headParam1.put("status",6);
+ headParam1.put("ioType",1);
+ headParam1.put("barcode",barcode);
+ String response2;
+ response2 = new HttpHandler.Builder()
+ // .setHeaders(headParam)
+ .setUri(wmsUrl)
+ .setPath(taskStatusFeedbackPath)
+ .setJson(JSON.toJSONString(headParam1))
+ .build()
+ .doPost();
+ JSONObject jsonObject1 = JSON.parseObject(response2);
+ apiLogService.save("wcs娲惧彂搴撲綅涓嶄负绌轰笂鎶ms"
+ ,wmsUrl+taskStatusFeedbackPath
+ ,null
+ ,"127.0.0.1"
+ ,JSON.toJSONString(headParam1)
+ ,response
+ ,true
+ );
+ }catch (Exception e){
+ log.error("wcs娲惧彂搴撲綅涓嶄负绌轰笂鎶ms", getWmsDto.getWrkNo());
+ throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+ }
+ }
+
// 鍒涙柊涓�涓叆搴撳伐浣滄。
TaskWrk taskWrk = taskWrkService.selectByTaskNo(getWmsDto.getWrkNo());
if(Cools.isEmpty(taskWrk)) {
@@ -314,6 +361,24 @@
// }
// }
+ } else {
+ // 閫�鍥�
+ log.error("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
+// staProtocol.setWorkNo((short)0);
+// staProtocol.setStaNo(inSta.getStaNo().shortValue());
+// MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+//
+// Thread.sleep(500);
+
+ staProtocol.setWorkNo((short)9999);
+ staProtocol.setStaNo(inSta.getStaNo().shortValue());
+ devpThread.setPakMk(staProtocol.getSiteId(), false);
+ MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
+ if (taskWrk != null) {
+ taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
+ taskWrkMapper.updateById(taskWrk);
+ }
}
}
@@ -1097,7 +1162,64 @@
}
}
- //鑷姩瀹屾垚浠诲姟
+ //agv鍙栨斁璐т换鍔″畬鎴�
+ public synchronized void autoCompleteAGV() {
+ List<BasDevp> basDevps = basDevpService.selectList(new EntityWrapper<>());
+ try{
+ Thread.sleep(500);
+ }catch (Exception e){
+
+ }
+
+ for (BasDevp basDevp:basDevps){
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+ StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo());
+ if (staProtocol == null) {
+ continue;
+ } else {
+ staProtocol = staProtocol.clone();
+ }
+ if (basDevp.getWrkNo()!=0){
+ if (basDevp.getAgvTargetPick()!=0){//鍙栬揣
+ staProtocol.setAgvTypeSign((short)0);
+ staProtocol.setStaNo(basDevp.getDevNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ }
+ boolean sign = true;
+ if (basDevp.getAgvTargetPlace()!=0){
+ sign = false;
+ basDevp.setAgvTargetPlace(0);
+ basDevpService.updateById(basDevp);
+ staProtocol.setAgvTypeSign((short)3);//1
+ staProtocol.setStaNo(basDevp.getDevNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ }
+ }else {
+ if (basDevp.getAgvTargetPlace()!=0){
+ if (basDevp.getLoading().equals("Y")){
+ staProtocol.setAgvTypeSign((short)1);
+ staProtocol.setStaNo(basDevp.getDevNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ }else {
+ log.error("AGV鏀捐揣瀹屾垚浣嗚緭閫佺嚎鏃犵墿锛屽浣嶄俊鍙� ===>> [staNo:{}] [basDevp:{}]", basDevp.getDevNo(), basDevp);
+ basDevp.setAgvTargetPlace(0);
+ basDevpService.updateById(basDevp);
+ staProtocol.setAgvTypeSign((short)3);//1
+ staProtocol.setStaNo(basDevp.getDevNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ }
+
+ }
+ if (basDevp.getAgvTargetPick()!=0){
+ basDevp.setAgvTargetPick(0);
+ basDevpService.updateById(basDevp);
+ staProtocol.setAgvTypeSign((short)2);//0
+ staProtocol.setStaNo(basDevp.getDevNo().shortValue());
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(4, staProtocol));
+ }
+ }
+ }
+ }
public synchronized void autoCompleteTask() {
List<TaskWrk> taskWrks = taskWrkMapper.selectWorkingTask();
for (TaskWrk taskWrk : taskWrks) {
--
Gitblit v1.9.1