From ae54e42cbe354ef5c39954eed2eab18de9504946 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期五, 13 六月 2025 13:02:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/tzmsewcs' into tzmsewcs

---
 src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java |  158 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 158 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
new file mode 100644
index 0000000..94eb972
--- /dev/null
+++ b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
@@ -0,0 +1,158 @@
+package com.zy.asrs.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.core.common.Cools;
+import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.TaskWrk;
+import com.zy.asrs.entity.TaskWrkReport;
+import com.zy.asrs.entity.wms.StorageEscalationParam;
+import com.zy.asrs.entity.wms.WmsResult;
+import com.zy.asrs.service.*;
+import com.zy.common.service.CommonService;
+import com.zy.common.utils.HttpHandler;
+import com.zy.common.utils.Synchro;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.io.IOException;
+import java.util.Date;
+
+@Slf4j
+@Service("toWmsService")
+public class ToWmsServiceImpl implements ToWmsService {
+
+    @Autowired
+    private TaskWrkService taskWrkService;
+
+
+    @Autowired
+    private TaskWrkReportService taskWrkReportService;
+
+    @Autowired
+    private CommonService commonService;
+
+    @Autowired
+    private LocMastService locMastService;
+
+
+    @Autowired
+    private ApiLogService apiLogService;
+
+
+    @Value("${wms.url}")
+    private String wmsUrl;
+    /**
+     * 鐢宠鍏ュ簱
+     */
+    @Value("${wms.inboundTaskApplyPath}")
+    private String inboundTaskApplyPath;
+    /**
+     * 浠诲姟寮�濮嬫椂锛學CS鍥炶皟WMS
+     */
+    @Value("${wms.taskExecCallback}")
+    private String taskExecCallback;
+    /**
+     * 浠诲姟瀹屾垚缁撴潫鏃讹紝WCS鍥炶皟WMS
+     */
+    @Value("${wms.taskStatusFeedbackPath}")
+    private String taskStatusFeedbackPath;
+
+    @Value("${wms.code}")
+    private String code;
+
+    @Value("${wms.successCode}")
+    private String successCode;
+
+    @Value("${wms.msg}")
+    private String msg;
+
+    @Value("${wms.data}")
+    private String data;
+
+    @Override
+    public void addReportLog(TaskWrk taskWrk) {
+        TaskWrkReport taskWrkReport = new TaskWrkReport();
+        Synchro.Copy(taskWrk, taskWrkReport);
+        taskWrkReport.setCreateTime(new Date());
+        taskWrkReportService.insert(taskWrkReport);
+    }
+
+    @Override
+    public TaskWrk getLocNoFromWms(StorageEscalationParam wmsParam) {
+        String response = "";
+        Boolean success = false;
+        try {
+            response = new HttpHandler.Builder()
+                    .setUri(wmsUrl)
+                    .setPath(inboundTaskApplyPath)
+                    .setJson(JSON.toJSONString(wmsParam))
+                    .build()
+                    .doPost();
+            if (!Cools.isEmpty(response)) {
+                JSONObject jsonObject = JSON.parseObject(response);
+                if (!Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) {
+                    //鏈変簺涓夋柟wms绯荤粺涓嶈兘鍙婃椂杩斿洖搴撲綅鍙凤紝杩欐椂鍊欏氨闇�瑕�
+                    //ZWmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class);
+                    TaskWrk taskWrk = null;
+                    int i = 1;
+                    while (i < 10) {
+                        taskWrk = taskWrkService.selectByBarcode(wmsParam.getBarcode());
+                        if (taskWrk != null) {
+                            break;
+                        }
+                        try {
+                            i++;
+                            Thread.sleep(500L);
+                        } catch (InterruptedException e) {
+                            throw new RuntimeException(e);
+                        }
+                    }
+                    return taskWrk;
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.info("璇锋眰wms鎶ラ敊锛寋}", e.getMessage());
+        } finally {
+            addApiLog("鍏ュ簱浠诲姟璇锋眰鑾峰彇搴撲綅", wmsUrl + inboundTaskApplyPath, JSON.toJSONString(wmsParam), response, success);
+        }
+        return null;
+    }
+
+
+    private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) {
+        //String locNo = Utils.Fusion(result.getRow(), result.getFloor(), result.getColumn());
+        String locNo = result.getLocNo();
+        Date now = new Date();
+        TaskWrk taskWrk = new TaskWrk();
+        int workNo1 = commonService.getWorkNo(WorkNoType.PAKIN.type);//鑾峰彇鍏ュ簱宸ヤ綔鍙�
+        taskWrk.setTaskNo(result.getTaskNo());//浠诲姟鍙�
+        taskWrk.setWrkNo(workNo1);
+        taskWrk.setStatus(TaskStatusType.DISTRIBUTE.id);//浠诲姟鐘舵�侊細娲惧彂
+        taskWrk.setCreateTime(now);
+        taskWrk.setIoType(1);//浠诲姟绫诲瀷
+        taskWrk.setIoPri(13);//浼樺厛绾�
+        taskWrk.setBarcode(barcode);//鏉$爜
+        LocMast locMast = locMastService.selectByLocNo(locNo);
+        taskWrk.setCrnNo(locMast.getCrnNo());
+        taskWrk.setTargetPoint(locNo);
+        taskWrk.setStartPoint(startPoint + "");
+        taskWrk.setCrnNo(result.getCrnNo());
+        if (taskWrk.getIoType() == 1) {
+            taskWrk.setWrkSts(2);
+            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
+                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
+            }
+        }
+        return taskWrk;
+    }
+
+    private void addApiLog(String nameSpace, String url, String param, String response, Boolean success) {
+        apiLogService.save(nameSpace, url, null, "127.0.0.1", param, response, success);
+    }
+}

--
Gitblit v1.9.1