From 5d826a90e007b36e8108c2b9a5bda14010d17d35 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期六, 10 一月 2026 14:14:11 +0800
Subject: [PATCH] 释放已锁定库位信息

---
 src/main/java/com/zy/api/controller/params/WorkTaskParams.java |   15 ++++++-
 src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java  |   14 ++++++
 src/main/java/com/zy/api/controller/WcsApiController.java      |   18 +++++++++
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java   |   21 +++++++++-
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |    4 +-
 src/main/java/com/zy/api/service/WcsApiService.java            |    9 ++++
 6 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/zy/api/controller/WcsApiController.java b/src/main/java/com/zy/api/controller/WcsApiController.java
index 4411331..60a420e 100644
--- a/src/main/java/com/zy/api/controller/WcsApiController.java
+++ b/src/main/java/com/zy/api/controller/WcsApiController.java
@@ -61,4 +61,22 @@
         }
         return wcsApiService.backLocs(params);
     }
+
+
+    /**
+     * 涓嬪彂浠诲姟鑷砏CS
+     * @author Ryan
+     * @date 2026/1/10 13:57
+     * @param params
+     * @return com.core.common.R
+     */
+    @ManagerAuth
+    @ApiOperation("涓嬪彂浠诲姟鑷砏CS")
+    @PostMapping("/pub/wrks")
+    public R pubWrkToWcs(@RequestBody WorkTaskParams params) {
+        if (Objects.isNull(params)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return wcsApiService.pubWrkToWcs(params);
+    }
 }
diff --git a/src/main/java/com/zy/api/controller/params/WorkTaskParams.java b/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
index 7a02b87..0a86af1 100644
--- a/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
+++ b/src/main/java/com/zy/api/controller/params/WorkTaskParams.java
@@ -16,12 +16,21 @@
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("鍗忚浠诲姟缂栧彿(瀵瑰簲鍑哄簱浠诲姟鍙�)")
-    private String wrkCode;
+    private String taskNo;
 
     @ApiModelProperty("宸ヤ綔妗d换鍔″彿")
     private String wrkNo;
 
-    @ApiModelProperty("鏄惁瀹屾垚")
-    private Integer isComplete;
+    @ApiModelProperty("搴撲綅缂栫爜")
+    private String locNo;
+
+    @ApiModelProperty("鏉$爜")
+    private String barcode;
+
+    @ApiModelProperty("浼樺厛绾�")
+    private String taskPri;
+
+    @ApiModelProperty("鍑哄簱绔欑偣")
+    private String staNo;
 
 }
diff --git a/src/main/java/com/zy/api/service/WcsApiService.java b/src/main/java/com/zy/api/service/WcsApiService.java
index 16f63b8..bc79a40 100644
--- a/src/main/java/com/zy/api/service/WcsApiService.java
+++ b/src/main/java/com/zy/api/service/WcsApiService.java
@@ -23,4 +23,13 @@
      * @return com.core.common.R
      */
     R backLocs(WorkTaskParams params);
+
+    /**
+     * 涓嬪彂浠诲姟鑷砏CS
+     * @author Ryan
+     * @date 2026/1/10 13:57
+     * @param params
+     * @return com.core.common.R
+     */
+    R pubWrkToWcs(WorkTaskParams params);
 }
diff --git a/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
index f86c4cb..9a60b44 100644
--- a/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/HmesApiServiceImpl.java
@@ -90,6 +90,7 @@
      * @return com.core.common.R
      */
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public R releaseLock(ReceviceTaskParams params) {
         if (Objects.isNull(params) || Objects.isNull(params.getDeviceNo())) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
@@ -106,7 +107,18 @@
         }
         Set<String> locs = binds.stream().map(LocAroundBind::getBLocNo).collect(Collectors.toSet());
 
+        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().in("loc_no", locs).eq("loc_sts", LocStsType.LOC_STS_TYPE_X.type));
+        if (Objects.isNull(locMasts) || locMasts.isEmpty()) {
+            throw new CoolException("娌℃湁绂佺敤搴撲綅锛屼笉闇�瑕侀噴鏀撅紒锛�");
+        }
 
-        return null;
+        locMasts.forEach(loc -> {
+           loc.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
+           if (!locMastService.updateById(loc)) {
+               throw new CoolException("搴撲綅閲婃斁澶辫触锛岃妫�鏌ュ悗鍐嶆搷浣滐紒锛�");
+           }
+        });
+
+        return R.ok();
     }
 }
diff --git a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
index 9ecb781..0186fd0 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -76,15 +76,15 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public R backLocs(WorkTaskParams params) {
-        if (Objects.isNull(params.getWrkCode())) {
+        if (Objects.isNull(params.getTaskNo())) {
             throw new CoolException("宸ヤ綔鍙蜂笉鑳戒负绌猴紒锛�");
         }
-        String wrkCode = params.getWrkCode();
+        String wrkCode = params.getTaskNo();
        if (wrkCode.contains("-1")) {
            throw new CoolException("閰嶅浠诲姟缂栫爜閿欒锛岃妫�鏌ュ悗閲嶆柊涓婁紶锛侊紒");
        }
 
-        WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_code", params.getWrkCode()));
+        WrkMast mast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_code", params.getTaskNo()));
 
        if (Objects.isNull(mast)) {
            throw new CoolException("浠诲姟涓嶅瓨鍦紒锛�");
@@ -100,6 +100,21 @@
        return R.ok("鎺ユ敹鎴愬姛锛屾墽琛屽洖搴撲腑...");
     }
 
+    /**
+     * 涓嬪彂浠诲姟鑷砏CS
+     * @author Ryan
+     * @date 2026/1/10 13:58
+     * @param params
+     * @return com.core.common.R
+     */
+    @Override
+    public R pubWrkToWcs(WorkTaskParams params) {
+
+
+
+        return null;
+    }
+
 
     /**
      * 涓婃姤閿佸畾搴撲綅淇℃伅
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 ecb2699..eebde6d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1513,8 +1513,8 @@
         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
         wrkMast.setIoType(1); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
         wrkMast.setCrnNo(locMasts.getCrnNo());
-        wrkMast.setSourceStaNo(outMast.getSourceStaNo());
-        wrkMast.setStaNo(staNo + "");
+        wrkMast.setSourceStaNo(outMast.getStaNo());
+//        wrkMast.setStaNo(staNo + "");
         wrkMast.setLocNo(locMasts.getLocNo());
         wrkMast.setIoPri(13D); // 浼樺厛绾�
         wrkMast.setBarcode(outMast.getBarcode()); // 鎵樼洏鐮�

--
Gitblit v1.9.1