From 8d5c70aef9cbacbcc412d73c4b730e21f94e6514 Mon Sep 17 00:00:00 2001
From: zhang <zc857179121@qq.com>
Date: 星期一, 30 六月 2025 09:04:10 +0800
Subject: [PATCH] 1

---
 src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java |  204 ++++++++++++++++++++++++++-------------------------
 1 files changed, 104 insertions(+), 100 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
index 5cbbc86..5fde269 100644
--- a/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/ToWmsServiceImpl.java
@@ -2,50 +2,40 @@
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.exception.CoolException;
-import com.zy.asrs.entity.BasDevp;
-import com.zy.asrs.entity.LocMast;
-import com.zy.asrs.entity.TaskWrk;
-import com.zy.asrs.entity.TaskWrkReport;
+import com.zy.asrs.domain.enums.TaskStatusType;
+import com.zy.asrs.domain.enums.WorkNoType;
+import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.wms.StorageEscalationParam;
 import com.zy.asrs.entity.wms.WmsResult;
 import com.zy.asrs.service.*;
-import com.zy.asrs.utils.Utils;
 import com.zy.common.service.CommonService;
 import com.zy.common.utils.HttpHandler;
 import com.zy.common.utils.Synchro;
-import com.zy.core.cache.MessageQueue;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.model.Task;
-import com.zy.core.properties.SlaveProperties;
+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;
-import java.util.HashMap;
+import java.util.concurrent.TimeUnit;
 
-@Service
+@Slf4j
+@Service("toWmsService")
 public class ToWmsServiceImpl implements ToWmsService {
-
 
     @Autowired
     private TaskWrkService taskWrkService;
-    @Autowired
-    private SlaveProperties slaveProperties;
+
+
     @Autowired
     private TaskWrkReportService taskWrkReportService;
-    @Autowired
-    private StaDescService staDescService;
+
     @Autowired
     private CommonService commonService;
+
     @Autowired
     private LocMastService locMastService;
-    @Autowired
-    private BasDevpService basDevpService;
 
 
     @Autowired
@@ -70,6 +60,9 @@
     @Value("${wms.taskStatusFeedbackPath}")
     private String taskStatusFeedbackPath;
 
+    @Value("${wms.executionStatusReport}")
+    private String executionStatusReport;
+
     @Value("${wms.code}")
     private String code;
 
@@ -81,8 +74,9 @@
 
     @Value("${wms.data}")
     private String data;
-@Override
-public void addReportLog(TaskWrk taskWrk) {
+
+    @Override
+    public void addReportLog(TaskWrk taskWrk) {
         TaskWrkReport taskWrkReport = new TaskWrkReport();
         Synchro.Copy(taskWrk, taskWrkReport);
         taskWrkReport.setCreateTime(new Date());
@@ -90,106 +84,116 @@
     }
 
     @Override
-    public WmsResult getLocNoFromWms(StorageEscalationParam wmsParam) {
+    public void addReportLog(TaskWrkLog taskWrk) {
+        TaskWrkReport taskWrkReport = new TaskWrkReport();
+        Synchro.Copy(taskWrk, taskWrkReport);
+        taskWrkReport.setCreateTime(new Date());
+        taskWrkReportService.insert(taskWrkReport);
+    }
+
+
+    @Override
+    public void addReportLog(WrkMast 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)
+                    .setTimeout(30, TimeUnit.SECONDS)
                     .setPath(inboundTaskApplyPath)
                     .setJson(JSON.toJSONString(wmsParam))
                     .build()
                     .doPost();
-            JSONObject jsonObject = JSON.parseObject(response);
-            if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get(code)) && jsonObject.get(code).equals(successCode)) {
-                WmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class);
-                return result;
+            if (!Cools.isEmpty(response)) {
+                JSONObject jsonObject = JSON.parseObject(response);
+                if ("700".equals(jsonObject.get(code).toString())) {
+                    TaskWrk taskWrk=new TaskWrk();
+                    taskWrk.setWrkNo(-1);
+                    return taskWrk;
+                } else if (successCode.equals(jsonObject.get(code).toString())) {
+                    WmsResult result = JSON.parseObject(jsonObject.get(data).toString(), WmsResult.class);
+                    return createInTask(result, wmsParam.getBarcode(), wmsParam.getStationCode());
+                }
             }
-        } catch (IOException e) {
-
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info("璇锋眰wms鎶ラ敊锛屽叆鍙傦細{},寮傚父锛歿}", JSON.toJSONString(wmsParam), e.getMessage());
         } finally {
             addApiLog("鍏ュ簱浠诲姟璇锋眰鑾峰彇搴撲綅", wmsUrl + inboundTaskApplyPath, JSON.toJSONString(wmsParam), response, success);
         }
         return null;
     }
 
-    public boolean checkLocNo(String locNo) {
+    @Override
+    public void executionStatusReport(String taskNo, Integer wrkSts) {
+        String response = "";
+        boolean bool = false;
+        JSONObject param = new JSONObject();
         try {
-            BasDevp basDevp = basDevpService.selectById(inSta.getStaNo());
-            if (Cools.isEmpty(basDevp)) {
-                log.error("绔欑偣鍙峰紓甯�1" + inSta.getStaNo());
-                throw new CoolException("绔欑偣鍙峰紓甯�1,鏈煡璇㈠埌绔欑偣淇℃伅" + inSta.getStaNo());
+            log.info("浠诲姟鎵ц鐘舵�佷笂鎶ワ紝浠诲姟鍙凤細{}锛屾墽琛岀姸鎬侊細{}", taskNo, wrkSts);
+            param.put("taskNo", taskNo);
+            param.put("wrkSts", wrkSts);
+            response = new HttpHandler.Builder()
+                    // .setHeaders(headParam)
+                    .setUri(wmsUrl)
+                    .setPath(executionStatusReport)
+                    .setJson(param.toJSONString())
+                    .build()
+                    .doPost();
+            if (!Cools.isEmpty(response)) {
+                bool = true;
             }
-            Integer staNoCrnNo = Utils.StaNoCrnNo(inSta.getStaNo());
-            if (staNoCrnNo == 0) {
-                basDevp.setStaErr(1);
-                basDevpService.updateById(basDevp);
-                log.error("绔欑偣鍙峰紓甯�2" + inSta.getStaNo());
-                throw new CoolException("绔欑偣鍙峰紓甯�2,绔欑偣鍙蜂笉瀛樺湪" + inSta.getStaNo());
-            } else {
-                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                        .eq("crn_no", staNoCrnNo.longValue())
-                        .eq("loc_no", result.getLocNo()));
-                if (Cools.isEmpty(locMast)) {
-                    basDevp.setStaErr(1);
-                    basDevpService.updateById(basDevp);
-                    log.error("绔欑偣鍙峰紓甯�3" + inSta.getStaNo());
-                    throw new CoolException("绔欑偣鍙峰紓甯�3锛氭宸烽亾涓嶅瓨鍦ㄧ洰鏍囧簱浣�" + inSta.getStaNo());
-                }
-            }
-        } catch (Exception e) {
-            // log.error("鎵爜妫�娴嬬▼搴忓紓甯�"+inSta.getStaNo()+"寮傚父淇℃伅"+e);
-            // 閫�鍥�
-            log.error("鎵爜妫�娴嬬▼搴忓紓甯�" + inSta.getStaNo() + errMsg);
-            log.error("鎵爜妫�娴嬬▼搴忓紓甯�,寮傚父淇℃伅" + e);
 
-            staProtocol.setWorkNo((short) 9999);
-            staProtocol.setStaNo(inSta.getStaNo().shortValue());
-            devpThread.setPakMk(staProtocol.getSiteId(), false);
-            MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
-            TaskWrk taskWrk = taskWrkMapper.selectByWrkNo(Integer.valueOf(workNo));
-            if (taskWrk != null) {
-                taskWrk.setMemo(errMsg);//灏嗛敊璇爜瀛樺叆澶囨敞瀛楁杩涜灞曠ず
-                taskWrkMapper.updateById(taskWrk);
-            }
-            continue;
-        }
-        //鏌ョ湅璇ュ簱浣嶆槸鍚︿负绌哄簱浣�
-        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
-                .eq("loc_sts", "O")
-                .eq("loc_no", result.getLocNo()));
-        if (Cools.isEmpty(locMast)) {
-            try {
-                HashMap<String, Object> headParam1 = new HashMap<>();
-                headParam1.put("taskNo", result.getTaskNo());
-                headParam1.put("status", 6);
-                headParam1.put("ioType", 1);
-                headParam1.put("barcode", BoxNo);
-                String response2;
-                response2 = new HttpHandler.Builder()
-                        // .setHeaders(headParam)
-                        .setUri(wmsUrl)
-                        .setPath(taskStatusFeedbackPath)
-                        .setJson(JSON.toJSONString(headParam1))
-                        .build()
-                        .doPost();
-                JSONObject jsonObject1 = JSON.parseObject(response2);
-                apiLogService.save("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms"
-                        , wmsUrl + taskStatusFeedbackPath
-                        , null
-                        , "127.0.0.1"
-                        , JSON.toJSONString(headParam1)
-                        , response
-                        , true
-                );
-            } catch (Exception e) {
-                log.error("wcs娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==涓婃姤wms", result.getTaskNo());
-                throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触,娲惧彂搴撲綅==銆嬩笉涓虹┖銆�==锛屽紓甯镐俊鎭細" + e);
-            }
+        } catch (Exception e) {
+            log.error("浠诲姟鎵ц鐘舵�佷笂鎶ュ紓甯�" + e);
+        } finally {
+            apiLogService.save("浠诲姟鐘舵�佷笂鎶�"
+                    , wmsUrl + executionStatusReport
+                    , null
+                    , "127.0.0.1"
+                    , param.toJSONString()
+                    , response
+                    , bool
+            );
         }
     }
 
 
+    private TaskWrk createInTask(WmsResult result, String barcode, Integer startPoint) {
+        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.setAssignTime(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 + "");
+        if (taskWrk.getIoType() == 1) {
+            taskWrk.setWrkSts(2);
+            if (!Cools.isEmpty(taskWrk.getTargetPoint())) {
+                taskWrk.setOriginTargetPoint(taskWrk.getTargetPoint());
+            }
+        }
+        taskWrkService.insert(taskWrk);
+        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