From 7e68f81b38116bba40e70620c563168fcde66a37 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期五, 05 十二月 2025 09:18:38 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 238 ++++++++++++++++++++++++++++++-----------------------------
1 files changed, 122 insertions(+), 116 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 19c5bb7..646cd0a 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -4,13 +4,16 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
+import com.core.common.R;
import com.core.common.SpringUtils;
import com.core.exception.CoolException;
import com.zy.asrs.controller.CrnController;
+import com.zy.asrs.controller.TaskWrkController;
import com.zy.asrs.domain.enums.TaskStatusType;
import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.domain.param.CrnOperatorParam;
import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.param.CarryParam;
import com.zy.asrs.entity.param.TaskCreateParam;
import com.zy.asrs.mapper.*;
import com.zy.asrs.service.*;
@@ -70,6 +73,8 @@
private TaskWrkMapper taskWrkMapper;
@Autowired
private TaskWrkService taskWrkService;
+ @Autowired
+ private TaskWrkController taskWrkController;
@Autowired
private StaDescMapper staDescMapper;
@Autowired
@@ -2805,41 +2810,49 @@
continue;
}
-// CrnSlave crn = new CrnSlave(crnSlave);
-// if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
-// CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
-// continue;
-// }
-//
-// if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) {
-// for (CrnSlave crnOther : slaveProperties.getCrn()) {
-// if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
-// crn.updateCrnInStn(crnOther);
-// }
-// }
-// }
-
// 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO
&& crnProtocol.getLoaded() == 0 && crnProtocol.getForkPos() == 0) {
// 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
if (crnProtocol.getLastIo().equals("I")) {
if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLocDemo(crnSlave, crnProtocol); // 鍏ュ簱
- crnProtocol.setLastIo("O");
+ boolean crnStnToLocDemo = this.crnStnToLocDemo(crnSlave, crnProtocol);// 鍏ュ簱
+ if (crnStnToLocDemo){
+ crnProtocol.setLastIo("O");
+ } else if (!crnProtocol.isSignIntOut()){
+ crnProtocol.setLastIo("O");
+ }
} else if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStnDemo(crnSlave, crnProtocol); // 鍑哄簱
- crnProtocol.setLastIo("I");
+ boolean locToCrnStnDemo = this.locToCrnStnDemo(crnSlave, crnProtocol);// 鍑哄簱
+ if (locToCrnStnDemo && crnProtocol.isSignIntOut()){
+ crnProtocol.setLastIo("I");
+ } else if (locToCrnStnDemo){
+ crnProtocol.setLastIo("I");
+ crnProtocol.setSignIntOut(true);
+ } else if (!crnProtocol.isSignIntOut()){
+ crnProtocol.setLastIo("I");
+ }
}
}
// 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
else if (crnProtocol.getLastIo().equals("O")) {
if (basCrnp.getOutEnable().equals("Y")) {
- this.locToCrnStnDemo(crnSlave, crnProtocol); // 鍑哄簱
- crnProtocol.setLastIo("I");
+ boolean locToCrnStnDemo = this.locToCrnStnDemo(crnSlave, crnProtocol);// 鍑哄簱
+ if (locToCrnStnDemo && crnProtocol.isSignIntOut()){
+ crnProtocol.setLastIo("I");
+ } else if (locToCrnStnDemo){
+ crnProtocol.setLastIo("I");
+ crnProtocol.setSignIntOut(true);
+ } else if (!crnProtocol.isSignIntOut()){
+ crnProtocol.setLastIo("I");
+ }
} else if (basCrnp.getInEnable().equals("Y")) {
- this.crnStnToLocDemo(crnSlave, crnProtocol); // 鍏ュ簱
- crnProtocol.setLastIo("O");
+ boolean crnStnToLocDemo = this.crnStnToLocDemo(crnSlave, crnProtocol);// 鍏ュ簱
+ if (crnStnToLocDemo){
+ crnProtocol.setLastIo("O");
+ } else if (!crnProtocol.isSignIntOut()){
+ crnProtocol.setLastIo("O");
+ }
}
}
} else {
@@ -2861,7 +2874,8 @@
/**
* 鍏ュ簱 ===>> 鍫嗗灈鏈虹珯鍒板簱浣�
*/
- public void crnStnToLocDemo(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+ public boolean crnStnToLocDemo(CrnSlave slave, CrnProtocol crnProtocol) throws IOException {
+ boolean result = false;
for (CrnSlave.CrnStn crnStn : slave.getCrnInStn()) {
List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo()));
@@ -2897,7 +2911,7 @@
if (Cools.isEmpty(taskWrk1)){
continue;
}
- if (taskWrk1.getWrkSts() == 2){
+ if (taskWrk1.getIoType() == 1 && taskWrk1.getWrkSts()<3){
taskWrk = taskWrk1;
break;
}
@@ -2953,6 +2967,7 @@
throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
} else {
+ result = true;
try {
devpThread.setErrorDev(staProtocol.getSiteId(), "-");
CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "-");
@@ -2965,16 +2980,18 @@
}
}
}
+ return result;
}
/**
* 鍑哄簱 ===>> 搴撲綅鍒板爢鍨涙満绔�
* 2022-06-09 TQS淇敼锛屾煡璇㈠伐浣滄。LIST锛岄亶鍘嗕笅鍙戯紝闃叉绗竴涓换鍔″牭濉炲嚭搴�
*/
- public void locToCrnStnDemo(CrnSlave slave, CrnProtocol crnProtocol) {
+ public boolean locToCrnStnDemo(CrnSlave slave, CrnProtocol crnProtocol) {
+ boolean result = false;
List<TaskWrk> taskWrksInitial = taskWrkMapper.selectPakOut(crnProtocol.getLaneNo(), null);
if (taskWrksInitial.size() == 0) {
- return;
+ return result;
}
for (CrnSlave.CrnStn crnStn : slave.getCrnOutStn()) {
List<StaDesc> staDescs = staDescMapper.selectList(new EntityWrapper<StaDesc>().eq("CRN_NO", crnProtocol.getLaneNo()).eq("CRN_STN", crnStn.getStaNo()));
@@ -3007,7 +3024,7 @@
}
// 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵��
- if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
+ if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y")) {
// 鍫嗗灈鏈烘帶鍒惰繃婊�
if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE)) {
devpThread.setErrorDev(staProtocol.getSiteId(), "鍫嗗灈鏈洪潪绌洪棽");
@@ -3047,6 +3064,7 @@
CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "杩愯鍛戒护涓嬪彂澶辫触");
throw new CoolException("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�");
} else {
+ result = true;
try {
// 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓�
Date now = new Date();
@@ -3060,39 +3078,11 @@
if (taskWrkMapper.updateById(taskWrk) == 0) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
}
+
+
} catch (Exception e) {
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
log.error("淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽紓甯革細" + e);
- }
- try {
- HashMap<String, Object> headParam = new HashMap<>();
- headParam.put("taskNo",taskWrk.getTaskNo());
- headParam.put("taskStatus",taskWrk.getStatusWms());
- headParam.put("ioType",taskWrk.getIoTypeWms());
- headParam.put("barCode",taskWrk.getBarcode());
- headParam.put("reportTime", LocalDateTime.now());
- headParam.put("weight",taskWrk.getScWeight().doubleValue());
-
- String response;
- response = new HttpHandler.Builder()
- // .setHeaders(headParam)
- .setUri(wmsUrl)
- .setPath(taskStatusFeedbackPath)
- .setJson(JSON.toJSONString(headParam))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- apiLogService.save("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms"
- , wmsUrl + taskStatusFeedbackPath
- , null
- , "127.0.0.1"
- , JSON.toJSONString(headParam)
- , response
- , true
- );
- } catch (Exception e) {
- log.error("wcs娲惧彂鍑哄簱浠诲姟涓婃姤wms澶辫触", JSON.toJSONString(taskWrk));
-// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
}
}
} else {
@@ -3117,6 +3107,7 @@
}
}
}
+ return result;
}
/**
@@ -3185,10 +3176,23 @@
if (offer) {
log.info("涓嬪彂杈撻�佺嚎浠诲姟鎴愬姛锛歵askWrk:" + JSON.toJSONString(taskWrk));
Date now = new Date();
- taskWrk.setStatus(TaskStatusType.OVER3.id);
+// taskWrk.setStatus(TaskStatusType.OVER3.id);
+ taskWrk.setStatus(TaskStatusType.OVER.id);//鎵嬪姩瀹屾垚浠诲姟
taskWrk.setWrkSts(14);
taskWrk.setModiTime(now);
taskWrk.setCompleteTime(now);
+
+ LocMast locMast=locMastService.selectByLocNo(taskWrk.getStartPoint());
+ if(Cools.isEmpty(locMast)){
+ R.error("娌℃湁鎵惧埌璇ュ簱浣�") ;
+ }
+ locMast.setLocSts("O");
+ locMast.setModiTime(now);
+ locMast.setModiTime(now);
+
+
+
+ locMastService.updateById(locMast);
taskWrkService.updateById(taskWrk);
} else {
log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛歵askWrk:" + JSON.toJSONString(taskWrk));
@@ -3218,19 +3222,7 @@
continue;
}
- CrnSlave crn = new CrnSlave(crnSlave);
- if (Cools.isEmpty(crnProtocol.getLaneNo()) || crnProtocol.getLaneNo()==0){
- CrnErrCache.updateCrnErr(crnProtocol.getCrnNo(), "鍫嗗灈鏈哄贩閬撳彿寮傚父锛�");
- continue;
- }
-
- if (!crnSlave.getId().equals(crnProtocol.getLaneNo())) {
- for (CrnSlave crnOther : slaveProperties.getCrn()) {
- if (crnOther.getId().equals(crnProtocol.getLaneNo())) {
- crn.updateCrnInStn(crnOther);
- }
- }
- }
+ CrnSlave crn = crnSlave;
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) {
@@ -3240,14 +3232,7 @@
log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽贩閬撳彿={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getLaneNo(), crnProtocol.getTaskNo());
continue;
}
-// Thread.sleep(300);
- //纭瀹屾垚淇″彿
-// CrnOperatorParam crnOperatorParam = new CrnOperatorParam();
-// crnOperatorParam.setCrnNo(crn.getId());
Date now = new Date();
-
-// crnController.crnTaskComplete(crnOperatorParam);
-// MessageQueue.offer(SlaveType.Crn, crn.getId(), new Task(2, command))
crnThread.setResetFlag(true);
if (!Cools.isEmpty(taskWrk)) {
@@ -3293,44 +3278,6 @@
taskWrk.setCompleteTime(now);
taskWrkService.updateById(taskWrk);
-
-// try {
-// HashMap<String, Object> headParam = new HashMap<>();
-// headParam.put("taskNo",taskWrk.getTaskNo());
-// headParam.put("taskStatus",taskWrk.getStatusWms());
-// headParam.put("ioType",taskWrk.getIoTypeWms());
-// headParam.put("barCode",taskWrk.getBarcode());
-// headParam.put("reportTime", LocalDateTime.now());
-// headParam.put("weight",taskWrk.getScWeight().doubleValue());
-//
-// String response;
-// log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", headParam);
-//
-// response = new HttpHandler.Builder()
-// // .setHeaders(headParam)
-// .setUri(wmsUrl)
-// .setPath(taskStatusFeedbackPath)
-// .setJson(JSON.toJSONString(headParam))
-// .build()
-// .doPost();
-// log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", response);
-//
-//// JSONObject jsonObject = JSON.parseObject(response);
-//// log.error("wcs瀹岀粨浠诲姟涓婃姤wms==銆�", jsonObject);
-//
-// apiLogService.save("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms"
-// , wmsUrl + taskStatusFeedbackPath
-// , null
-// , "127.0.0.1"
-// , JSON.toJSONString(headParam)
-// , response
-// , true
-// );
-// } catch (Exception e) {
-// log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触", taskWrk);
-// log.error("wcs瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
-//// throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
-// }
}
}
@@ -3339,5 +3286,64 @@
}
}
}
+ public void locMastTaskDemo(){
+ try{
+ for (CrnSlave crnSlave : slaveProperties.getCrn()) {
+ try{
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crnSlave.getId());
+ CrnProtocol crnProtocol = crnThread.getCrnProtocol();
+ if (crnProtocol == null) {
+ continue;
+ }
+ if (Cools.isEmpty(crnProtocol.getLocMastDemoList())) {
+ continue;
+ }
+ BasCrnp basCrnp = basCrnpService.selectById(crnSlave.getId());
+ if (basCrnp == null) {
+ log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crnSlave.getId());
+ continue;
+ }
+ if (Cools.isEmpty(basCrnp.getHpMk()) || !basCrnp.getHpMk().equals("Y")){
+ continue;
+ }
+ for (String[] locS : crnProtocol.getLocMastDemoListSign()){
+ if (locS[3].equals("1")){
+ String locNo = locS[0];
+ LocMast locMast = locMastService.selectByLocNo(locNo);
+ if (locMast.getLocSts().equals("F")){
+ CarryParam carryParam = new CarryParam();
+ carryParam.setTaskNo(locNo);
+ carryParam.setBarcode(locNo);
+ carryParam.setIoType(1);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴� ====杞崲涓�====> 1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
+ carryParam.setTaskPriority(1);
+ carryParam.setTargetPoint("1012");
+ carryParam.setStartPoint(BarcodeUtils.formatCode(locNo));
+ carryParam.setMeno("Demo");
+ taskWrkController.addTaskPoint(carryParam);
+ Thread.sleep(50);
+ } else if (locMast.getLocSts().equals("O")){
+ CarryParam carryParam = new CarryParam();
+ carryParam.setTaskNo(locNo);
+ carryParam.setBarcode(locNo);
+ carryParam.setIoType(3);//浠诲姟绫诲瀷=銆�1锛氬嚭搴撱��2锛氱Щ搴撱��3锛氬叆搴� ====杞崲涓�====> 1锛氬叆搴擄紝2锛氬嚭搴擄紝3锛氱Щ搴�
+ carryParam.setTaskPriority(1);
+ carryParam.setStartPoint("1012");
+ carryParam.setTargetPoint(BarcodeUtils.formatCode(locNo));
+ carryParam.setMeno("Demo");
+ taskWrkController.addTaskPoint(carryParam);
+ Thread.sleep(50);
+ LocFCSUtils.updateLocSInPlace(crnProtocol.getLocMastDemoListSign());
+ }
+ }
+ }
+ } catch (Exception e){
+
+ }
+ }
+ } catch (Exception e){
+
+ }
+ }
}
--
Gitblit v1.9.1