From de8a641769b80abca23a344b521bcdfe0dbca31f Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期四, 11 十二月 2025 09:00:35 +0800
Subject: [PATCH] 入库流程功能优化
---
src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 111 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
index 92c0972..b66d76f 100644
--- a/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/AgvScheduleServiceImpl.java
@@ -1,13 +1,45 @@
package com.zy.api.service.impl;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.R;
+import com.core.exception.CoolException;
import com.zy.api.entity.CallAgvParams;
import com.zy.api.enums.OrderType;
import com.zy.api.service.AgvScheduleService;
+import com.zy.asrs.entity.LocCache;
+import com.zy.asrs.entity.Task;
+import com.zy.asrs.entity.result.ForwardAGVTaskDTO;
+import com.zy.asrs.entity.result.HIKApiDTO;
+import com.zy.asrs.entity.result.HIKResultDTO;
+import com.zy.asrs.enums.LocStsType;
+import com.zy.asrs.enums.TaskIOType;
+import com.zy.asrs.service.ApiLogService;
+import com.zy.asrs.service.LocCacheService;
+import com.zy.asrs.service.TaskService;
+import com.zy.asrs.service.impl.LocCacheServiceImpl;
+import com.zy.common.constant.HIKApiConstant;
+import com.zy.common.utils.HttpHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import java.util.UUID;
+
+@Slf4j
@Service
public class AgvScheduleServiceImpl implements AgvScheduleService {
+
+ @Autowired
+ private ApiLogService apiLogService;
+ @Autowired
+ private TaskService taskService;
+ @Autowired
+ private LocCacheService locCacheService;
/**
* @author Ryan
@@ -29,7 +61,85 @@
@Override
public R callback(CallAgvParams params) {
- //TODO 1. 鎼繍瀹屾垚锛屼慨鏀�
+ //TODO 1. 鎼繍瀹屾垚锛屼慨鏀圭珯鐐瑰簱浣嶇姸鎬�
+ if (params.getType().equals(OrderType.ORDER_OUT.type)) {
+ //鍑哄簱鍗�
+ if (params.getStatus().equals("RUNING")) {
+ LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", params.getOrgLoc()));
+ if (Objects.isNull(locCache)) {
+ throw new CoolException("搴撲綅淇℃伅涓嶅瓨鍦紒锛�");
+ }
+ if (!locCache.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+ locCache.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+ }
+ } else if (params.getStatus().equals("FINISHED")) {
+ Task task = taskService.selectOne(new EntityWrapper<Task>().eq("wrk_no", params.getWrkNo()));
+ if (Objects.isNull(task)) {
+ throw new CoolException("浠诲姟淇℃伅涓嶅瓨鍦紒锛�");
+ }
+ if (!taskService.updateById(task)) {
+ throw new CoolException("浠诲姟鐘舵�佹洿鏂板け璐ワ紒锛�");
+ }
+ }
+ } else {
+ //鍏ュ簱鍗�
+
+ }
+
return null;
}
+
+
+ public HIKResultDTO sendAgvTask(HIKApiDTO haiKangApiDTO, String path) {
+ HIKResultDTO result = new HIKResultDTO();
+ ForwardAGVTaskDTO forwardAGVTaskParam = new ForwardAGVTaskDTO();
+ forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", ""));
+ forwardAGVTaskParam.setClientCode("IWMS");
+ forwardAGVTaskParam.setTaskTyp(haiKangApiDTO.getTaskType());
+ forwardAGVTaskParam.setCtnrTyp(haiKangApiDTO.getCtnrType());
+ forwardAGVTaskParam.setPriority(haiKangApiDTO.getPriority());
+ List<ForwardAGVTaskDTO.PositionCodePaths> positionCodePathsList = new ArrayList<>();
+ positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getOrg(), haiKangApiDTO.getOrgType()));
+ positionCodePathsList.add(new ForwardAGVTaskDTO.PositionCodePaths(haiKangApiDTO.getTar(), haiKangApiDTO.getTarType()));
+ forwardAGVTaskParam.setPositionCodePath(positionCodePathsList);
+ String body = JSON.toJSONString(forwardAGVTaskParam);
+ String response = "";
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(HIKApiConstant.AGV_IP)
+ .setPath(path)
+ .setJson(body)
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(0)) {
+ result.setSuccess(true);
+ } else {
+ result.setMessage(jsonObject.getString("message"));
+ log.error("鍙戦�乤gv浠诲姟澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", HIKApiConstant.AGV_IP + path, body, response);
+ }
+// {"code":"1","data":"","interrupt":false,"message":"閲嶅鎻愪氦","msgErrCode":"0x3a80D012","reqCode":"fa92b49481a44627ae4d80c1400f28f6"}
+ } catch (Exception e) {
+ result.setMessage(e.getMessage());
+ log.error("鍙戦�乤gv浠诲姟寮傚父", e);
+ } finally {
+ try {
+ // 淇濆瓨鎺ュ彛鏃ュ織
+ apiLogService.save(
+ "鍙戦�乤gv浠诲姟",
+ HIKApiConstant.AGV_IP + path,
+ null,
+ "127.0.0.1",
+ body,
+ response,
+ result.isSuccess()
+ );
+ } catch (Exception e) {
+ log.error("", e);
+ }
+ }
+ return result;
+ }
+
+
}
--
Gitblit v1.9.1