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