From 5b8ddb74f918f439af507d79a1991de568fce2bd Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期日, 27 四月 2025 15:39:13 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/OpenController.java | 140 ++++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java | 16 +++++
2 files changed, 154 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index e9181b3..205df92 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -7,13 +7,24 @@
import com.core.common.Cools;
import com.core.common.R;
import com.core.exception.CoolException;
+import com.zy.asrs.domain.dto.NotifyCustomDataDto;
+import com.zy.asrs.domain.enums.NotifyMsgType;
+import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
+import com.zy.asrs.utils.NotifyUtils;
import com.zy.asrs.utils.Utils;
+import com.zy.common.service.CommonService;
+import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
+import com.zy.core.cache.MessageQueue;
+import com.zy.core.enums.SlaveType;
+import com.zy.core.model.Task;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -26,6 +37,13 @@
@RequestMapping("/open")
public class OpenController extends BaseController {
+ @Value("${wms.url}")
+ private String wmsUrl;
+ @Value("${wms.inboundTaskApplyPath}")
+ private String inboundTaskApplyPath;
+ @Value("${wms.taskStatusFeedbackPath}")
+ private String taskStatusFeedbackPath;
+
@Autowired
private OpenService openService;
@Autowired
@@ -34,8 +52,6 @@
private CommandInfoService commandInfoService;
@Autowired
private TaskWrkController taskWrkController;
- @Autowired
- private BasDevpService basDevpService;
@Autowired
private ApiLogService apiLogService;
@Autowired
@@ -46,6 +62,10 @@
private LocMastService locMastService;
@Autowired
private BasCrnErrorService basCrnErrorService;
+ @Autowired
+ private CommonService commonService;
+ @Autowired
+ private NotifyUtils notifyUtils;
private static final boolean auth = true;
@@ -333,4 +353,120 @@
return R.ok(crnStatusParams);
}
+ //妯℃嫙杈撻�佺嚎鍏ュ簱
+ @PostMapping("/simulationDevpIn")
+ @Transactional
+ public R simulationDevpIn(@RequestBody SimulationDevpInParam param) {
+ String barcode = param.getBarcode();
+ Integer staNo = param.getStaNo();
+ Boolean back = param.getBack();
+ String errMsg = param.getErrMsg();
+
+ TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", barcode));
+ if (taskWrk1 != null) {
+ log.info("鎵樼洏鐮侊細" + barcode + "浠诲姟妗e瓨鍦�");
+ return R.error();
+ }
+
+ HashMap<String, Object> requestParam = new HashMap<>();
+ requestParam.put("BoxNo", barcode);//鎵樼洏鐮�
+ requestParam.put("TerminalNo", staNo);//鍏ュ簱鍙�
+ if (back) {
+ requestParam.put("WCSStatus", 1);//澶辫触
+ requestParam.put("WCSErrorMessage", errMsg);//澶辫触鍘熷洜
+ }else {
+ requestParam.put("WCSStatus", 0);//鎴愬姛
+ }
+
+ String response = "";
+ Boolean success = false;
+ try {
+ response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath(inboundTaskApplyPath)
+ .setJson(JSON.toJSONString(requestParam))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+
+ int returnStatus = Integer.parseInt(jsonObject.get("ReturnStatus").toString());
+ if (returnStatus == 0) {
+ Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class);
+ // 鍒涙柊涓�涓叆搴撳伐浣滄。
+ TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo());
+ if(taskWrk != null) {
+ log.info("浠诲姟锛�" + result.getTaskNo() + "宸茬粡瀛樺湪");
+ return R.error();
+ }
+
+ String locNo = Utils.getLocNo(result.getRow(), result.getFloor(), result.getColumn());
+ LocMast locMast = locMastService.selectByLocNo(locNo);
+ if (locMast == null) {
+ log.info(locNo + "搴撲綅涓嶅瓨鍦�");
+ return R.error();
+ }
+
+ if (!locMast.getLocSts().equals("O")) {
+ log.info(locNo + "搴撲綅涓嶅浜庣┖搴撲綅");
+ return R.error();
+ }
+
+ Date now = new Date();
+ taskWrk = new TaskWrk();
+ taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
+ taskWrk.setWrkNo(commonService.getWorkNo(WorkNoType.PAKIN.type));//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+ taskWrk.setStatus(TaskStatusType.RECEIVE.id);//浠诲姟鐘舵�侊細鎺ユ敹
+ taskWrk.setWrkSts(2);//2.璁惧涓婅蛋
+ taskWrk.setCreateTime(now);
+ taskWrk.setIoType(1);//浠诲姟绫诲瀷
+ taskWrk.setIoPri(13);//浼樺厛绾�
+ taskWrk.setBarcode(barcode);//鏉$爜
+ taskWrk.setCrnNo(locMast.getCrnNo());
+ taskWrk.setTargetPoint(locNo);
+ taskWrk.setStartPoint(String.valueOf(staNo));
+ if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
+ taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
+ }
+
+ if (!taskWrkService.insert(taskWrk)) {
+ log.info("浠诲姟锛�" + result.getTaskNo() + "浠诲姟鍒涘缓澶辫触");
+ return R.error();
+ }
+
+ locMast.setLocSts("S");
+ locMast.setModiTime(new Date());
+ locMastService.updateById(locMast);
+
+ //涓婃姤
+ HashMap<String, Object> hashMap = new HashMap<>();
+ hashMap.put("TaskNo", taskWrk.getTaskNo());
+
+ NotifyCustomDataDto customDataDto = new NotifyCustomDataDto();
+ customDataDto.setUri(wmsUrl);
+ customDataDto.setPath(taskStatusFeedbackPath);
+ customDataDto.setData(JSON.toJSONString(hashMap));
+ boolean notifyResult = notifyUtils.notify("task", 1, String.valueOf(taskWrk.getWrkNo()), taskWrk.getTaskNo(), NotifyMsgType.TASK_START, JSON.toJSONString(taskWrk), true, customDataDto);
+ if(notifyResult) {
+ taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟娲惧彂
+ taskWrkService.updateById(taskWrk);
+ }
+ }
+ } catch (Exception e) {
+ log.error("璇锋眰鍏ュ簱璋冪敤鎺ュ彛澶辫触");
+ log.error("寮傚父淇℃伅鎵撳嵃锛�" + e);
+ } finally {
+ apiLogService.save("wms璇锋眰鍏ュ簱璐т綅鎺ュ彛"
+ , wmsUrl + inboundTaskApplyPath
+ , null
+ , "127.0.0.1"
+ , JSON.toJSONString(requestParam)
+ , response
+ , success
+ );
+ }
+ log.info("鍏ュ簱璇锋眰鍙傛暟=" + JSON.toJSONString(barcode));
+ log.info("鍏ュ簱璇锋眰杩斿洖鍙傛暟=" + JSON.toJSONString(response));
+ return R.error();
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java b/src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java
new file mode 100644
index 0000000..9861e9b
--- /dev/null
+++ b/src/main/java/com/zy/asrs/entity/param/SimulationDevpInParam.java
@@ -0,0 +1,16 @@
+package com.zy.asrs.entity.param;
+
+import lombok.Data;
+
+@Data
+public class SimulationDevpInParam {
+
+ private Integer staNo;
+
+ private String barcode;
+
+ private Boolean back;
+
+ private String errMsg;
+
+}
--
Gitblit v1.9.1