From 371462edc6b3ee1de97c235d4a019b544badda0d Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期六, 14 二月 2026 22:09:37 +0800
Subject: [PATCH] AGV工作档界面和逻辑调整
---
src/main/java/com/zy/asrs/task/handler/AgvHandler.java | 72 +++++++++++++++++++++---------------
1 files changed, 42 insertions(+), 30 deletions(-)
diff --git a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
index 65b194a..1a0006c 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
@@ -3,28 +3,20 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.baomidou.mybatisplus.mapper.Wrapper;
import com.core.common.Cools;
-import com.zy.asrs.entity.Task;
-import com.zy.asrs.entity.TaskLog;
-import com.zy.asrs.entity.WrkMast;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.LocCache;
+import com.zy.asrs.entity.*;
import com.zy.asrs.mapper.BasDevpMapper;
import com.zy.asrs.mapper.BasStationMapper;
import com.zy.asrs.mapper.WrkMastMapper;
-import com.zy.asrs.service.ApiLogService;
-import com.zy.asrs.service.LocCacheService;
-import com.zy.asrs.service.TaskLogService;
-import com.zy.asrs.service.TaskService;
-import com.zy.asrs.service.WrkMastService;
-import com.zy.asrs.service.WrkMastLogService;
-import com.zy.asrs.entity.WrkMastLog;
+import com.zy.asrs.service.*;
import com.zy.common.constant.ApiInterfaceConstant;
import com.zy.common.properties.AgvProperties;
import com.zy.common.utils.AgvUtils;
import com.zy.common.utils.HttpHandler;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -72,7 +64,8 @@
@Resource
private WrkMastLogService wrkMastLogService;
-
+ @Resource
+ private LocMastService locMastService;
/**
* 绔欑偣杞璁℃暟鍣紝鐢ㄤ簬骞冲潎鍒嗛厤绔欑偣
* Key: 绔欑偣缁勬爣璇嗭紙濡� "east" 鎴� "west"锛夛紝Value: 褰撳墠杞绱㈠紩
@@ -91,6 +84,7 @@
* @param taskList 浠诲姟鍒楄〃锛堥�氬父鍙寘鍚竴涓换鍔★級
* @return 鏄惁鎴愬姛澶勭悊浜嗕换鍔★紙鎴愬姛鍛煎彨AGV锛岀姸鎬佷粠7鍙樹负8锛�
*/
+ @Transactional(rollbackFor = Exception.class)
public boolean callAgv(List<Task> taskList) {
// 璁板綍璋冪敤鍫嗘爤锛岀‘淇濆彧鑳戒粠瀹氭椂浠诲姟璋冪敤
StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
@@ -515,24 +509,36 @@
WrkMast wrkMast = null;
if (agvTask.getWrkNo() != null) {
wrkMast = wrkMastService.selectOne(
- new EntityWrapper<WrkMast>().eq("wrk_no", agvTask.getWrkNo())
+ new EntityWrapper<WrkMast>()
+ .eq("barcode", agvTask.getBarcode())
);
}
// 妫�鏌ュ巻鍙叉。鏄惁瀛樺湪
WrkMastLog wrkMastLog = null;
- if (agvTask.getWrkNo() != null) {
- wrkMastLog = wrkMastLogService.selectOne(
- new EntityWrapper<WrkMastLog>().eq("wrk_no", agvTask.getWrkNo())
+ if (agvTask.getBarcode() != null) {
+ Wrapper<WrkMastLog> wrkMastLogMapper = new EntityWrapper<WrkMastLog>()
+ .eq("barcode", agvTask.getBarcode());
+ if (agvTask.getAppeTime() != null) {
+ // 璁$畻AGV鍒涘缓鏃堕棿涔嬪悗6灏忔椂鐨勬椂闂�
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(agvTask.getAppeTime());
+ calendar.add(Calendar.HOUR_OF_DAY, 6); // 鍔�6灏忔椂
+ Date endTime = calendar.getTime();
+ // 鏌ヨ鏉′欢锛氬巻鍙叉。鍒涘缓鏃堕棿 >= AGV璁㈠崟鍒涘缓鏃堕棿 涓� <= AGV鍒涘缓鏃堕棿涔嬪悗6灏忔椂
+ wrkMastLogMapper = wrkMastLogMapper.ge("appe_time", agvTask.getAppeTime())
+ .le("appe_time", endTime).eq("barcode", agvTask.getBarcode()).orderBy("appe_time DESC");
+ }
+ List<WrkMastLog> wrkMastLogList = wrkMastLogService.selectList(
+ wrkMastLogMapper
);
- }
- // 濡傛灉閫氳繃wrk_no娌℃壘鍒帮紝涓旀湁鏉$爜锛屽垯閫氳繃鏉$爜鏌ヨ
- if (wrkMastLog == null && !Cools.isEmpty(agvTask.getBarcode())) {
- List<WrkMastLog> logList = wrkMastLogService.selectList(
- new EntityWrapper<WrkMastLog>().eq("barcode", agvTask.getBarcode())
- );
- if (!logList.isEmpty()) {
- wrkMastLog = logList.get(0);
+ if(wrkMastLogList.size()==1){
+ wrkMastLog=wrkMastLogList.get(0);
+ }else if(wrkMastLogList.size()>1){
+ int locmastCount = locMastService.selectCount(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("barcode", agvTask.getBarcode()));
+ if(locmastCount>0){
+ wrkMastLog=wrkMastLogList.get(0);
+ }
}
}
@@ -1075,16 +1081,16 @@
* 鍙栨秷AGV浠诲姟锛堜粰宸4鎺ュ彛锛�
*
* @param task 浠诲姟瀵硅薄
- * @return 鏄惁鎴愬姛
+ * @return 鎴愬姛杩斿洖 null锛屽け璐ヨ繑鍥為敊璇師鍥�
*/
- public boolean cancelAgvTask(Task task) {
+ public String cancelAgvTask(Task task) {
if (!agvProperties.isSendTask()) {
- return false;
+ return "鏈惎鐢ˋGV浠诲姟涓嬪彂";
}
if (task == null || task.getId() == null) {
log.error("鍙栨秷AGV浠诲姟澶辫触锛氫换鍔℃垨浠诲姟ID涓虹┖");
- return false;
+ return "浠诲姟鎴栦换鍔D涓虹┖";
}
String response = "";
@@ -1147,10 +1153,16 @@
String displayTaskId = (task.getWrkNo() != null) ? String.valueOf(task.getWrkNo()) : String.valueOf(task.getId());
log.info(namespace + "鍙栨秷AGV浠诲姟鎴愬姛锛歿}", displayTaskId);
} else {
+ String errMsg = jsonObject.getString("message");
+ if (errMsg == null || errMsg.isEmpty()) {
+ errMsg = "response: " + response;
+ }
log.error(namespace + "鍙栨秷AGV浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, body, response);
+ return errMsg;
}
} catch (Exception e) {
log.error(namespace + "鍙栨秷AGV浠诲姟寮傚父", e);
+ return e.getMessage() != null ? e.getMessage() : "鍙栨秷AGV浠诲姟寮傚父";
} finally {
try {
// 淇濆瓨鎺ュ彛鏃ュ織
@@ -1168,6 +1180,6 @@
}
}
- return success;
+ return success ? null : "鍙栨秷AGV浠诲姟澶辫触";
}
}
--
Gitblit v1.9.1