From 6cdbe1c3f2eda6bac4377fb679440ff2367c414c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 21 三月 2024 11:43:33 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 155 +++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 124 insertions(+), 31 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 3579cdc..3ba963d 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -155,12 +155,14 @@
if (workNo == 0 && stano == 0){
continue;
}
+ if (!staProtocol.isPakMk()){
+ continue;
+ }
// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg);
staProtocol.setWorkNo(workNo);
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
-
TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
if (taskWrk != null) {
taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
@@ -179,21 +181,26 @@
continue;
}
String barcode = barcodeThread.getBarcode();
+ staProtocol.setBarcode(barcode);
if(!Cools.isEmpty(barcode)) {
StaDescService staDescService = SpringUtils.getBean(StaDescService.class);
ToWmsDTO toWmsDTO = new ToWmsDTO();
Map<String, Object> map = new HashMap<>();
map.put("x-api-key","7a15b5db-29b6-552c-8cff-0cfec3756da2");
- List<Integer> list = openServiceImpl.getInEnableRoadway();
+
TaskWrk taskWrk = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
if (Cools.isEmpty(taskWrk)){
continue;
}
+
//StaDesc staDesc1 = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("stn_no",inSta.getBackSta()));
if (taskWrk.getTargetPoint() != null && taskWrk.getStartPoint() != null){
if ( taskWrk.getWrkNo() != null && taskWrk.getWrkNo().shortValue() == workNo ){
+ continue;
+ }
+ if (taskWrk.getStatus() != 2){
continue;
}
//鑾峰彇鍫嗗灈鏈虹珯鐐�
@@ -208,13 +215,24 @@
staProtocol.setWorkNo(taskWrk.getWrkNo().shortValue());
staProtocol.setStaNo(staDesc.getCrnStn().shortValue());
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol));
- Thread.sleep(200);
+ Thread.sleep(500);
}else {
//TaskWrk taskWrk = taskWrkService.selectByTaskNo(param.getTaskNo());
toWmsDTO.setWarehouseId("1688469798893297665");
toWmsDTO.setContainerCode(barcode);
toWmsDTO.setApplyType("TUNNEL_LOCATION");
- toWmsDTO.setTaskTunnel(taskWrk.getCrnNo());
+ List<Integer> list = new ArrayList<>();
+
+ if (inSta.getBarcode() == 7 || inSta.getBarcode() == 8){
+ toWmsDTO.setTaskTunnel(taskWrk.getCrnNo());
+ list.add(taskWrk.getCrnNo());
+ }else {
+ toWmsDTO.setTaskTunnel(inSta.getBarcode());
+ list.add(inSta.getBarcode());
+ }
+
+
+
toWmsDTO.setCanInboundTunnels(list);
String response = null;
try {
@@ -318,9 +336,18 @@
log.error("杈撻�佺嚎鍛戒护涓嬫柟澶辫触锛侊紒锛� [宸ヤ綔鍙�:{}]", taskWrk.getWrkNo());
continue;//鍛戒护涓嬪彂澶辫触
}
-
// 澶嶄綅鍫嗗灈鏈�
crnThread.setResetFlag(true);
+
+ if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){
+ taskWrk.setWrkSts(4);
+ } else if (taskWrk.getIoType() == 2) {
+ taskWrk.setWrkSts(14);
+ }
+ if (!taskWrkService.updateById(taskWrk)){
+ log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
+ }
+
}
}
@@ -420,6 +447,21 @@
if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
continue;
}
+ // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
+ log.error("杩涘叆淇敼宸ヤ綔妗f祦绋�");
+ Date now = new Date();
+ taskWrk.setWrkSts(3);
+ taskWrk.setModiTime(now);
+ if (taskWrkMapper.updateById(taskWrk) == 0) {
+ log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
+ }
+ TaskWrk taskWrk2 = taskWrkService.selectByWrkNo(taskWrk.getWrkNo());
+
+ if (taskWrk2.getWrkSts() != 3){
+ continue;
+ }
+ log.error("杩涘叆淇敼宸ヤ綔妗f祦绋嬪畬鎴�,taskWrk=", taskWrk.getWrkNo());
+
//鍙栧嚭鍛戒护
List<CommandInfo> commandInfos = commandInfoService.selectByTaskNo(taskWrk.getTaskNo());
@@ -434,13 +476,6 @@
if (!MessageQueue.offer(SlaveType.Crn, taskWrk.getCrnNo(), new Task(2, crnCommand))) {
log.error("鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand));
} else {
- // 淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓�
- Date now = new Date();
- taskWrk.setWrkSts(3);
- taskWrk.setModiTime(now);
- if (taskWrkMapper.updateById(taskWrk) == 0) {
- log.error("淇敼宸ヤ綔妗g姸鎬� 2.璁惧涓婅蛋 => 3.鍚婅溅鍏ュ簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", taskWrk.getWrkNo());
- }
//寮�濮嬭繍琛�
String response = CrnStartRunning(taskWrk);
JSONObject jsonObject = JSON.parseObject(response);
@@ -577,6 +612,13 @@
if (commandInfos.isEmpty()) {
continue;//鍛戒护绌�
}
+
+ //鍒ゆ柇鏈鍛戒护鏄惁鎵ц
+ CommandInfo commandInfo2 = commandInfos.get(commandInfos.size() - 1);
+ if (commandInfo2.getCommandStatus() != CommandStatusType.CREATE.id) {
+ continue;//鎸囦护宸叉墽琛�
+ }
+
CommandInfo commandInfo = commandInfos.get(commandStep);
CommandPackage commandPackage = JSON.parseObject(commandInfo.getCommand(), CommandPackage.class);//鍙栧嚭鍛戒护鎶ユ枃
CrnCommand crnCommand = JSON.parseObject(commandPackage.getCommand().toString(), CrnCommand.class);
@@ -619,6 +661,24 @@
.eq("wrk_sts",11)
.eq("io_type",3));
for (TaskWrk taskWrk : taskWrks){
+
+ // 鍙屾繁搴撲綅涓旀祬搴撲綅鏈夎揣锛屽垯闇�鍏堝娴呭簱浣嶈繘琛屽簱浣嶇Щ杞�
+ if (Utils.isDeepLoc(slaveProperties, taskWrk.getStartPoint())) {
+ String shallowLocNo = Utils.getShallowLoc(slaveProperties, taskWrk.getStartPoint());
+ TaskWrk hallowLocNoTask = taskWrkMapper.selectByStartPoint(shallowLocNo);
+ if (!Cools.isEmpty(hallowLocNoTask)){
+ continue;
+ }
+ }
+ // 鍫嗗灈鏈烘帶鍒惰繃婊�
+ if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
+ continue;
+ }
+
+ // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
+ if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
+ continue;
+ }
if (Cools.isEmpty(taskWrk.getTargetPoint())){
List<Integer> list = openServiceImpl.getInEnableRoadway();
Map<String, Object> map = new HashMap<>();
@@ -656,7 +716,7 @@
continue;
}
- }
+ }
if (taskWrk == null || Cools.isEmpty(taskWrk.getTargetPoint()) || taskWrk.getTargetPoint().equals("") || taskWrk.getWrkNo() == null) {
continue;
}
@@ -668,15 +728,7 @@
// 鍛戒护涓嬪彂鍖� --------------------------------------------------------------------------
- // 鍫嗗灈鏈烘帶鍒惰繃婊�
- if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) {
- continue;
- }
- // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊�
- if (taskWrkMapper.selectCrnWorking(slave.getId()) != null) {
- continue;
- }
// 1.鍫嗗灈鏈哄紑濮嬬Щ鍔�
@@ -729,8 +781,15 @@
CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId());
CrnProtocol crnProtocol = crnThread.getCrnProtocol();
if (crnProtocol == null) { continue; }
+
// 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1
if (crnProtocol.getTaskFinish() == 0 && crnProtocol.statusType == CrnStatusType.HANDLING_COMPLETED && crnProtocol.getTaskNo() != 0) {
+ //鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。
+ TaskWrk taskWrk = taskWrkMapper.selectCrnNoInWorking(crn.getId(),crnProtocol.getTaskNo().intValue());
+ if (Cools.isEmpty(taskWrk)) {
+// log.error("鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo());
+ continue;
+ }
//鑾峰彇鎸囦护ID
Integer commandId = crnProtocol.getCommandId();
@@ -756,6 +815,14 @@
if (commandInfoService.updateById(commandInfo)) {//淇敼鎴愬姛鍚庡浣嶅爢鍨涙満
// 鍫嗗灈鏈哄浣�
crnThread.setResetFlag(true);
+ if (taskWrk.getIoType() == 1 || taskWrk.getIoType() == 3){
+ taskWrk.setWrkSts(4);
+ } else if (taskWrk.getIoType() == 2) {
+ taskWrk.setWrkSts(14);
+ }
+ if (!taskWrkService.updateById(taskWrk)){
+ log.error(taskWrk.getTaskNo()+ " 鍫嗗灈鏈轰换鍔″畬鎴愶紝鏀瑰彉浠诲姟鐘舵�佸け璐�");
+ }
}
}
}
@@ -939,7 +1006,7 @@
try {
taskWrkService.distribute(taskWrk.getTaskNo(), 9527L);
} catch (CoolException e) {
- log.info(e.getMessage());
+// log.info(e.getMessage());
}
}
}
@@ -955,41 +1022,67 @@
}
//鍒ゆ柇鏈鍛戒护鏄惁鎵ц瀹屾垚
- CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1);
- if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) {
- continue;//鎸囦护鏈畬鎴�
+ if (!commandInfos.isEmpty()){
+ CommandInfo commandInfo = commandInfos.get(commandInfos.size() - 1);
+ if (commandInfo.getCommandStatus() != CommandStatusType.COMPLETE.id) {
+ continue;//鎸囦护鏈畬鎴�
+ }
}
+
Date now = new Date();
//鎸囦护宸插畬鎴愶紝鏇存柊浠诲姟
if (taskWrk.getIoType() == 1) {
//鍏ュ簱浠诲姟
- taskWrk.setWrkSts(4);//3.鍚婅溅鍏ュ簱涓� => 4.鍏ュ簱瀹屾垚
- //taskWrk.setStatus(TaskStatusType.COMPLETE.id);
+// taskWrk.setWrkSts(4);//3.鍚婅溅鍏ュ簱涓� => 4.鍏ュ簱瀹屾垚
+ taskWrk.setStatus(TaskStatusType.OVER.id);
taskWrk.setModiTime(now);
taskWrkService.updateById(taskWrk);
//鏇存柊搴撲綅鐘舵��
LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
- locMast.setLocSts("F");//F.鍦ㄥ簱
+ locMast.setLocSts("Z");//F.鍦ㄥ簱
locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
locMast.setModiTime(now);
locMast.setModiUser(9999L);
locMastService.updateById(locMast);
} else if (taskWrk.getIoType() == 2) {
//鍑哄簱浠诲姟
- taskWrk.setWrkSts(14);//12.鍚婅溅鍑哄簱涓� => 14.鍑哄簱瀹屾垚
-// taskWrk.setStatus(TaskStatusType.COMPLETE.id);
+// taskWrk.setWrkSts(14);//12.鍚婅溅鍑哄簱涓� => 14.鍑哄簱瀹屾垚
+ taskWrk.setStatus(TaskStatusType.OVER.id);
taskWrk.setModiTime(now);
taskWrkService.updateById(taskWrk);
//鏇存柊搴撲綅鐘舵��
LocMast locMast = locMastService.selectByLocNo(taskWrk.getStartPoint());
- locMast.setLocSts("O");//O.绌哄簱浣�
+ locMast.setLocSts("K");//O.绌哄簱浣�
locMast.setBarcode("");//鎵樼洏鐮�
locMast.setModiTime(now);
locMast.setModiUser(9999L);
locMastService.updateById(locMast);
+ } else if (taskWrk.getIoType() == 3) {
+
+ //鏇存柊璧峰搴撲綅鐘舵��
+ LocMast locMastStart = locMastService.selectByLocNo(taskWrk.getStartPoint());
+ locMastStart.setLocSts("K");//O.绌哄簱浣�
+ locMastStart.setBarcode("");//鎵樼洏鐮�
+ locMastStart.setModiTime(now);
+ locMastStart.setModiUser(9999L);
+ locMastService.updateById(locMastStart);
+
+ //鏇存柊鐩爣搴撲綅鐘舵��
+ LocMast locMast = locMastService.selectByLocNo(taskWrk.getTargetPoint());
+ locMast.setLocSts("Z");//F.鍦ㄥ簱
+ locMast.setBarcode(taskWrk.getBarcode());//鎵樼洏鐮�
+ locMast.setModiTime(now);
+ locMast.setModiUser(9999L);
+ locMastService.updateById(locMast);
+
+ taskWrk.setStatus(TaskStatusType.OVER.id);
+ taskWrk.setModiTime(now);
+ taskWrkService.updateById(taskWrk);
+
+
}
}
}
--
Gitblit v1.9.1