From 6193eddf242c4b879402367704b8b5b2e8df84a4 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期六, 19 七月 2025 13:29:40 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  312 ++++++++++++++++++++++++++++-----------------------
 1 files changed, 173 insertions(+), 139 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index ea9cf53..e36f948 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1,27 +1,28 @@
 package com.zy.asrs.service.impl;
 
-import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.alibaba.fastjson.JSON;
 import com.core.common.Cools;
 import com.core.common.DateUtils;
 import com.core.exception.CoolException;
-import com.zy.asrs.domain.enums.WmsWrkStatusType;
-import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.LocMast;
+import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.*;
+import com.zy.common.utils.HttpHandler;
+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 org.springframework.transaction.annotation.Transactional;
 
 import java.util.Date;
-import java.util.List;
+import java.util.HashMap;
 import java.util.concurrent.TimeUnit;
-
+@Slf4j
 @Service
 public class WorkServiceImpl implements WorkService {
 
     @Autowired
     private WrkMastService wrkMastService;
-    @Autowired
-    private WmsWrkService wmsWrkService;
     @Autowired
     private LocMastService locMastService;
     @Autowired
@@ -32,146 +33,179 @@
     private WrkDetlLogService wrkDetlLogService;
     @Autowired
     private WrkDetlService wrkDetlService;
+    @Autowired
+    private ApiLogService apiLogService;
+    @Value("${wms.url}")
+    private String wmsUrl;
+    @Value("${wms.inboundTaskApplyPath}")
+    private String inboundTaskApplyPath;
+    @Value("${wms.movePath}")
+    private String movePath;
+    @Value("${wms.taskStatusFeedbackPath}")
+    private String taskStatusFeedbackPath;
 
     @Override
     @Transactional
     public void completeWrkMast(String workNo, Long userId) {
-        WrkMast wrkMast = wrkMastService.selectById(workNo);
-        WmsWrk wmsWrk = wmsWrkService.selectByWmsWrkNo(wrkMast.getWmsWrkNo());
-        if (Cools.isEmpty(wrkMast, wmsWrk)) {
-            throw new CoolException(workNo + "浠诲姟涓嶅瓨鍦�");
-        }
-        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
-            throw new CoolException("褰撳墠浠诲姟宸插畬鎴�");
-        }
-        // 鍏ュ簱 + 搴撲綅杞Щ
-        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType()==11)) {
-            wrkMast.setWrkSts(4L);
-            // 鍑哄簱
-        } else if (wrkMast.getWrkSts() > 10) {
-            wrkMast.setWrkSts(14L);
-        }
-        Date now = new Date();
-        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
-        wrkMast.setCrnEndTime(now);
-        wrkMast.setModiTime(now);
-        wrkMast.setModiUser(userId);
-        // 瀹屾垚鎿嶄綔浜哄憳璁板綍
-        wrkMast.setManuType("鎵嬪姩瀹屾垚");
-
-        wmsWrk.setWmsStatus(WmsWrkStatusType.COMPLETE.id);
-        wmsWrk.setModiUser(userId);
-        wmsWrk.setModiTime(now);
-        wmsWrk.setEndTime(now);
-        if (!wrkMastService.updateById(wrkMast) || !wmsWrkService.updateById(wmsWrk)) {
-            throw new CoolException("淇敼浠诲姟澶辫触");
-        }
+//        WrkMast wrkMast = wrkMastService.selectById(workNo);
+//        if (Cools.isEmpty(wrkMast)) {
+//            throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+//        }
+//        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+//            throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
+//        }
+//        // 鍏ュ簱 + 搴撲綅杞Щ
+//        if (wrkMast.getWrkSts() < 4 || (wrkMast.getWrkSts() > 10 && wrkMast.getIoType() == 11)) {
+//            wrkMast.setWrkSts(4L);
+//            // 鍑哄簱
+//        } else if (wrkMast.getWrkSts() > 10) {
+//            wrkMast.setWrkSts(14L);
+//        }
+//        Date now = new Date();
+//        wrkMast.setCrnStrTime(DateUtils.calculate(now, 1L, TimeUnit.SECONDS, true));
+//        wrkMast.setCrnEndTime(now);
+//        wrkMast.setModiTime(now);
+//        wrkMast.setModiUser(userId);
+//        // 瀹屾垚鎿嶄綔浜哄憳璁板綍
+//        wrkMast.setManuType("鎵嬪姩瀹屾垚");
+//        if (!wrkMastService.updateById(wrkMast)) {
+//            throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
+//        }
+//
+//        HashMap<String,Object> headParam = new HashMap<>();
+//        headParam.put("TaskNo",wrkMast.getTaskNo());
+//        headParam.put("Result",0);//瀹屾垚
+//
+//        try {
+//            String response;
+//            log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms={}", wrkMast);
+//
+//            response = new HttpHandler.Builder()
+//                    // .setHeaders(headParam)
+//                    .setUri(wmsUrl)
+//                    .setPath(taskStatusFeedbackPath)
+//                    .setJson(JSON.toJSONString(headParam))
+//                    .build()
+//                    .doPost();
+//            apiLogService.save("wcs鎵嬪姩瀹屾垚浠诲姟涓婃姤wms"
+//                    , wmsUrl + taskStatusFeedbackPath
+//                    , null
+//                    , "127.0.0.1"
+//                    , JSON.toJSONString(headParam)
+//                    , response
+//                    , true
+//            );
+//        } catch (Exception e) {
+//            log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms澶辫触={}", wrkMast);
+//            log.error("wcs鎵嬪姩瀹岀粨浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
+////                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+//        }
     }
 
     @Override
     @Transactional
     public void cancelWrkMast(String workNo, Long userId) {
-        Date now = new Date();
-        WrkMast wrkMast = wrkMastService.selectById(workNo);
-        WmsWrk wmsWrk = wmsWrkService.selectByWmsWrkNo(wrkMast.getWmsWrkNo());
-        if (Cools.isEmpty(wrkMast, wmsWrk)) {
-            throw new CoolException(workNo + "浠诲姟涓嶅瓨鍦�");
-        }
-
-        String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
-        String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
-        // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-        if (wrkMast.getWrkSts() < 4) {
-            locNo = wrkMast.getLocNo();
-            locSts = "O";
-
-            // 搴撲綅杞Щ
-            if (wrkMast.getIoType() == 11) {
-                // 搴撲綅杞Щ锛氭簮搴撲綅
-                LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
-                if (Cools.isEmpty(locMast)) {
-                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:"+ wrkMast.getSourceLocNo());
-                }
-                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F");
-                locMast.setModiTime(now);
-                locMast.setModiUser(userId);
-                locMastService.updateById(locMast);
-            }
-            // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
-            locNo = wrkMast.getSourceLocNo();
-            // 鍑哄簱 ===>> F.鍦ㄥ簱
-            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
-                locSts = "F";
-                // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
-            } else if (wrkMast.getIoType() == 110) {
-                locSts = "D";
-                // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
-            } else if (wrkMast.getIoType() == 11) {
-                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N")?"D":"F";
-                // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
-                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
-                if (Cools.isEmpty(locMast)) {
-                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:"+ wrkMast.getSourceLocNo());
-                }
-                locMast.setLocSts("O");
-                locMast.setModiTime(now);
-                locMast.setModiUser(userId);
-                locMastService.updateById(locMast);
-            }
-        } else {
-            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
-        }
-
-        //鍙栨秷鍏ュ簱宸ヤ綔妗f椂锛屾煡璇㈢粍鎵樿〃锛屽鏋滄湁灏嗙姸鎬佹敼涓哄緟澶勭悊
-        if(wrkMast.getIoType() == 1) {
-            List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
-            for (WaitPakin waitPakin:waitPakins){
-                if (!Cools.isEmpty(waitPakin)) {
-                    waitPakin.setIoStatus("N");
-                    waitPakin.setLocNo("");
-                    waitPakinService.update(waitPakin, new EntityWrapper<WaitPakin>()
-                            .eq("order_no", waitPakin.getOrderNo())
-                            .eq("matnr", waitPakin.getMatnr())
-                            .eq("batch", waitPakin.getBatch()));
-                }
-            }
-        }
-
-        // 鍙栨秷鎿嶄綔浜哄憳璁板綍
-        wrkMast.setManuType("鎵嬪姩鍙栨秷");
-        wrkMast.setModiUser(userId);
-        wrkMast.setModiTime(now);
-        if (!wrkMastService.updateById(wrkMast)) {
-            throw new CoolException("鍙栨秷浠诲姟澶辫触");
-        }
-
-        wmsWrk.setWmsStatus(WmsWrkStatusType.CANCEL.id);
-        wmsWrk.setModiUser(userId);
-        wmsWrk.setModiTime(now);
-        wmsWrk.setEndTime(now);
-        if (!wmsWrkService.updateById(wmsWrk)) {
-            throw new CoolException("鍙栨秷浠诲姟澶辫触");
-        }
-
-        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
-        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
-            throw new CoolException("淇濆瓨浠诲姟鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
-        }
-        // 鍒犻櫎宸ヤ綔涓绘。
-        boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
-
-        // 淇敼搴撲綅鐘舵��
-        LocMast locMast = locMastService.selectById(locNo);
-        if (Cools.isEmpty(locMast)) {
-            throw new CoolException("鍙栨秷浠诲姟澶辫触锛屽簱浣嶄笉瀛樺湪:"+ locNo);
-        }
-        locMast.setLocSts(locSts);
-        locMast.setModiTime(now);
-        locMast.setModiUser(userId);
-        boolean locMastRes = locMastService.updateById(locMast);
-        if (!wrkMastRes || !locMastRes) {
-            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
-        }
+//        Date now = new Date();
+//        WrkMast wrkMast = wrkMastService.selectById(workNo);
+//
+//        String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
+//        String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
+//        // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
+//        if (wrkMast.getWrkSts() < 4) {
+//            locNo = wrkMast.getLocNo();
+//            locSts = "O";
+//
+//            // 搴撲綅杞Щ
+//            if (wrkMast.getIoType() == 11) {
+//                // 搴撲綅杞Щ锛氭簮搴撲綅
+//                LocMast locMast = locMastService.selectById(wrkMast.getSourceLocNo());
+//                if (Cools.isEmpty(locMast)) {
+//                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
+//                }
+//                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F");
+//                locMast.setModiTime(now);
+//                locMast.setModiUser(userId);
+//                locMastService.updateById(locMast);
+//            }
+//            // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
+//        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+//            locNo = wrkMast.getSourceLocNo();
+//            // 鍑哄簱 ===>> F.鍦ㄥ簱
+//            if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
+//                locSts = "F";
+//                // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
+//            } else if (wrkMast.getIoType() == 110) {
+//                locSts = "D";
+//                // 搴撲綅杞Щ ===>> D.绌烘《/绌烘爤鏉�
+//            } else if (wrkMast.getIoType() == 11) {
+//                locSts = wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F";
+//                // 搴撲綅杞Щ锛氱洰鏍囧簱浣�
+//                LocMast locMast = locMastService.selectById(wrkMast.getLocNo());
+//                if (Cools.isEmpty(locMast)) {
+//                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛岀洰鏍囧簱浣嶄笉瀛樺湪:" + wrkMast.getSourceLocNo());
+//                }
+//                locMast.setLocSts("O");
+//                locMast.setModiTime(now);
+//                locMast.setModiUser(userId);
+//                locMastService.updateById(locMast);
+//            }
+//        } else {
+//            throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
+//        }
+//        // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+//        wrkMast.setManuType("鎵嬪姩鍙栨秷");
+//        wrkMast.setModiUser(userId);
+//        wrkMast.setModiTime(now);
+//        if (!wrkMastService.updateById(wrkMast)) {
+//            throw new CoolException("鍙栨秷浠诲姟澶辫触");
+//        }
+//        // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+//        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+//            throw new CoolException("淇濆瓨浠诲姟鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+//        }
+//
+//        // 鍒犻櫎宸ヤ綔涓绘。
+//        boolean wrkMastRes = wrkMastService.deleteById(wrkMast);
+//
+//        // 淇敼搴撲綅鐘舵��
+//        LocMast locMast = locMastService.selectById(locNo);
+//        if (Cools.isEmpty(locMast)) {
+//            throw new CoolException("鍙栨秷浠诲姟澶辫触锛屽簱浣嶄笉瀛樺湪:" + locNo);
+//        }
+//        locMast.setLocSts(locSts);
+//        locMast.setModiTime(now);
+//        locMast.setModiUser(userId);
+//        boolean locMastRes = locMastService.updateById(locMast);
+//        if (!wrkMastRes || !locMastRes) {
+//            throw new CoolException("淇濆瓨鏁版嵁澶辫触");
+//        }
+//        HashMap<String,Object> headParam = new HashMap<>();
+//        headParam.put("TaskNo",wrkMast.getTaskNo());
+//        headParam.put("Result",1);//鍙栨秷
+//
+//        try {
+//            String response;
+//            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms={}", wrkMast);
+//
+//            response = new HttpHandler.Builder()
+//                    // .setHeaders(headParam)
+//                    .setUri(wmsUrl)
+//                    .setPath(taskStatusFeedbackPath)
+//                    .setJson(JSON.toJSONString(headParam))
+//                    .build()
+//                    .doPost();
+//            apiLogService.save("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms"
+//                    , wmsUrl + taskStatusFeedbackPath
+//                    , null
+//                    , "127.0.0.1"
+//                    , JSON.toJSONString(headParam)
+//                    , response
+//                    , true
+//            );
+//        } catch (Exception e) {
+//            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触={}", wrkMast);
+//            log.error("wcs鎵嬪姩鍙栨秷浠诲姟涓婃姤wms澶辫触,鎶ラ敊淇℃伅锛�", e);
+////                        throw new CoolException("wcs娲惧彂鍏ュ簱浠诲姟涓婃姤wms澶辫触");
+//        }
     }
 }

--
Gitblit v1.9.1