From e2ef58086619bf43d323f7f0f60cd15b91942493 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 11 七月 2025 14:34:27 +0800
Subject: [PATCH] no message

---
 zy-asrs-admin/src/views/loc/stockTransfer/index.vue                                     |    1 
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java |   42 ++--------
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MobileController.java         |   26 ++++++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/LocDetl.java                      |    7 +
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MobileService.java               |    8 ++
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java      |  142 +++++++++++++++++++++++++++++++++--
 6 files changed, 183 insertions(+), 43 deletions(-)

diff --git a/zy-asrs-admin/src/views/loc/stockTransfer/index.vue b/zy-asrs-admin/src/views/loc/stockTransfer/index.vue
index b65a156..2993a01 100644
--- a/zy-asrs-admin/src/views/loc/stockTransfer/index.vue
+++ b/zy-asrs-admin/src/views/loc/stockTransfer/index.vue
@@ -248,7 +248,6 @@
         return;
     }
 
-
     Modal.confirm({
         title: formatMessage('page.stockTransfer.transfer', '搴撳瓨绉昏浆'),
         content: formatMessage('page.stockTransfer.confirm', '纭畾搴撳瓨绉昏浆鍚楋紵'),
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
index f33da51..575b71f 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/apis/wcs/services/Impl/WcsApiServiceImpl.java
@@ -61,9 +61,10 @@
 
     @Autowired
     private PlatformService platformService;
-
     @Resource
     private SystemProperties systemProperties;
+    @Autowired
+    private MobileService mobileService;
 
 
     /**
@@ -107,36 +108,7 @@
         } else {
             if (task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT_ARRIVED.id
                     || task.getTaskSts() == TaskStsType.WCS_EXECUTE_OUT_TASK_DONE.id) {
-                // 鍒拌揪鎷i�変綅锛屾帶鍒舵挱绉嶅浜伅
-                CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>()
-                        .eq(CacheSite::getChannel, task.getTargetSite())
-                        .isNull(CacheSite::getOrderId).orderByAsc(CacheSite::getId), false);
-//                List<CacheSite> cacheSites = cacheSiteService.list(new LambdaQueryWrapper<CacheSite>()
-//                            .eq(CacheSite::getBarcode, task.getBarcode()));
-                if (Objects.isNull(cacheSite)) {
-                    log.error("鏉$爜锛歿}锛屾湭鎵惧埌鎾澧欎寒鐏�", task.getBarcode());
-                    throw new CoolException("鏈壘鍒版挱绉嶅");
-                }
 
-                // 鑾峰彇浠诲姟鏄庣粏鏁伴噺
-                List<TaskDetl> taskDetlByTaskId = taskDetlService.getTaskDetlByTaskId(task.getId());
-                int sum = (int) taskDetlByTaskId.stream().mapToDouble(TaskDetl::getAnfme).sum();
-                SlapLightControlParam slapLightControlParam = new SlapLightControlParam();
-                slapLightControlParam
-                        .setControllerCode(cacheSite.getMemo())
-                        .setTagCode(cacheSite.getSiteNo())
-                        .setColor("GREEN")
-                        .setIndex(cacheSite.getIndex())
-                        .setMode("LIGHT")
-                        .setDisplay(sum + "");
-                // 鍙戣捣浜伅璇锋眰
-                log.info("浠诲姟{}鍒拌揪鎷i�変綅锛屾挱绉嶅浜伅涓嬪彂", task.getTaskNo(), JSONObject.toJSONString(slapLightControlParam));
-                CommonReponse response = HttpEssUtils.post("鍒拌揪鎷i�変綅锛屾挱绉嶅浜伅", HttpEssUtils.PLT_SEND_COMMAND, slapLightControlParam);
-                if (response.getCode().equals(0)) {
-                    log.info("浠诲姟{}鍒拌揪鎷i�変綅锛屾挱绉嶅{}浜伅鎴愬姛", task.getTaskNo(), cacheSite.getSiteNo());
-                } else {
-                    log.info("浠诲姟{}鍒拌揪鎷i�変綅锛屾挱绉嶅{}浜伅澶辫触", task.getTaskNo(), cacheSite.getSiteNo());
-                }
 
                 boolean update = taskService.update(new LambdaUpdateWrapper<Task>()
                         .set(Task::getTaskSts, TaskStsType.WAVE_SEED.id)
@@ -378,14 +350,12 @@
 //            List<OrderDetl> detlList = orderDetls.stream().filter(detl -> {
 //                return detl.getPickStatus() == OrderPickStatus.ORDER_PICK_STATUS_DONE.val;
 //            }).collect(Collectors.toList());
-
             //鍒ゆ柇鏁伴噺鏄惁涓庤鍗曟槑缁嗙殑闇�姹傞噺鐩稿悓锛岀浉鍚屽垯璁㈠崟瀹屾垚
 
             List<WaveSeed> seeds = waveSeedService.list(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderNo, orderNo));
             if (Objects.isNull(seeds)) {
                 throw new CoolException("鏁版嵁閿欒锛氭挱绉嶆暟鎹笉瀛樺湪锛侊紒");
             }
-
             Double tolAnfme = seeds.stream().mapToDouble(WaveSeed::getAnfme).sum();
             Double toDouble = seeds.stream().mapToDouble(WaveSeed::getWorkQty).sum();
             if (toDouble.compareTo(tolAnfme) >= 0) {
@@ -407,6 +377,14 @@
                         }
                     }
                 }
+                //璁㈠崟瀹屾垚锛岀伃鐏�
+                mobileService.sowLightMange(siteNo, one, "DARK");
+                log.info("瀹屾垚鐏伅璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam));
+            } else {
+                //璁㈠崟鏈畬鎴愶紝缁х画浜伅
+                mobileService.sowLightMange(siteNo, one, "LIGHT");
+                log.info("缁х画浜伅璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam));
+
             }
             params.add("params", JSONObject.toJSONString(slapParam));
             log.info("瀹屾垚鐏伅璇锋眰鍦板潃锛歿}锛岃姹傚弬鏁帮細{}", SystemProperties.SLAP_LIGHT, JSONObject.toJSONString(slapParam));
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MobileController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MobileController.java
index 4c2558f..bfa9762 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MobileController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/MobileController.java
@@ -285,6 +285,32 @@
     }
 
 
+    @ApiOperation("鑾峰彇搴撲綅璇︾粏")
+    @GetMapping("/flat/transfer/{barcode}")
+    public R getDetlsBycode(@PathVariable String barcode) {
+        if (Objects.isNull(barcode)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        return R.ok().add(mobileService.getDetlsByCode(barcode));
+    }
+
+
+    @ApiOperation("骞虫澘杞Щ")
+    @PostMapping("/locs/transfer")
+    public R changeFlatBarcode(@RequestBody Map<String, String> param) {
+        if (Objects.isNull(param)) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        if (Objects.isNull(param.get("barcode"))) {
+            return R.error("婧愬簱浣嶄笉鑳戒负绌猴紒锛�");
+        }
+        if (Objects.isNull(param.get("tarCode"))) {
+            return R.error("鐩爣搴撲綅涓嶈兘涓虹┖锛侊紒");
+        }
+
+        return mobileService.transferLocs(param);
+    }
+
     /**
      * 鑾峰彇鍙戣揣璁㈠崟鏄庣粏
      * @return
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/LocDetl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/LocDetl.java
index cef0d5d..d1f58df 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/LocDetl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/entity/LocDetl.java
@@ -4,6 +4,7 @@
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.fasterxml.jackson.annotation.JsonAnyGetter;
 import com.zy.asrs.common.utils.Synchro;
@@ -13,6 +14,7 @@
 import com.zy.asrs.wms.asrs.service.MatService;
 import com.zy.asrs.wms.system.entity.Host;
 import com.zy.asrs.wms.system.entity.User;
+import lombok.experimental.Delegate;
 import org.springframework.format.annotation.DateTimeFormat;
 import java.util.Date;
 
@@ -145,6 +147,11 @@
     @ApiModelProperty(value= "搴撳瓨鍐荤粨 1: 鍐荤粨  0: 姝e父")
     private Integer freeze;
 
+//    @ApiModelProperty("鐗╂枡淇℃伅")
+//    @TableField(exist = false)
+//    @Delegate
+//    private Mat mats;
+
     public LocDetl() {}
 
     public LocDetl(Long locId,String locNo,Long matId,String matnr,String orderNo,String batch,Double anfme,Long hostId,Integer status,Integer deleted,Date createTime,Long createBy,Date updateTime,Long updateBy,String memo) {
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MobileService.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MobileService.java
index fa7e28d..aae4ac2 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MobileService.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/MobileService.java
@@ -2,6 +2,8 @@
 
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.wms.asrs.entity.CacheSite;
+import com.zy.asrs.wms.asrs.entity.LocDetl;
+import com.zy.asrs.wms.asrs.entity.Order;
 import com.zy.asrs.wms.asrs.entity.dto.PickSheetDetlDto;
 import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
 import com.zy.asrs.wms.asrs.entity.param.BatchMergeOrdersParam;
@@ -35,4 +37,10 @@
     R getRecommendLocs();
 
     R getMatsByCode(String matnr);
+
+    List<LocDetl> getDetlsByCode(String barcode);
+
+    R transferLocs(Map<String, String> param);
+
+    void sowLightMange(String siteNo, Order order, String light);
 }
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
index 1adf5de..c569d81 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/service/impl/MobileServiceImpl.java
@@ -1,10 +1,14 @@
 package com.zy.asrs.wms.asrs.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.apis.wcs.entity.request.SlapLightControlParam;
+import com.zy.asrs.wms.apis.wcs.entity.response.CommonReponse;
+import com.zy.asrs.wms.apis.wcs.utils.HttpEssUtils;
 import com.zy.asrs.wms.asrs.entity.*;
 import com.zy.asrs.wms.asrs.entity.dto.PickSheetDetlDto;
 import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
@@ -18,6 +22,7 @@
 import com.zy.asrs.wms.system.entity.Host;
 import com.zy.asrs.wms.system.service.HostService;
 import io.netty.util.internal.StringUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -28,6 +33,7 @@
 import java.util.stream.Collectors;
 
 @Service
+@Slf4j
 public class MobileServiceImpl implements MobileService {
 
     @Autowired
@@ -236,7 +242,7 @@
             Double anfme = detls.stream().mapToDouble(OrderDetl::getAnfme).sum();
             if (v.compareTo(anfme) == 0.0) {
                 order.setOrderSettle(OrderSettleType.COMPLETE.val());
-                if (! orderService.updateById(order)) {
+                if (!orderService.updateById(order)) {
                     throw new CoolException("鍗曟嵁鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                 }
             }
@@ -319,7 +325,7 @@
             pickSheet.setStatus(3);
             if (!pickSheetService.updateById(pickSheet)) {
                 throw new CoolException("杞巻鍙叉。澶辫触锛侊紒");
-            } else{
+            } else {
                 if (!pickSheetDetlService.update(new LambdaUpdateWrapper<PickSheetDetl>().eq(PickSheetDetl::getPickId, pickSheet.getId()).set(PickSheetDetl::getStatus, 3))) {
                     throw new CoolException("鎷h揣鍗曟槑缁嗚浆鍘嗗彶妗eけ璐ワ紒锛�");
                 }
@@ -394,6 +400,7 @@
 
     /**
      * 鑾峰彇鎾澧欑珯鐐�
+     *
      * @return
      */
     @Override
@@ -403,6 +410,7 @@
 
     /**
      * 璁㈠崟缁戝畾鎾澧欑珯鐐�+
+     *
      * @param param
      * @return
      */
@@ -426,7 +434,7 @@
                     .setSiteStatus(CacheSiteStatusType.R.id)
                     .setBarcode(param.get("barcode").toString());
             if (!cacheSiteService.saveOrUpdate(siteNo)) {
-                throw new CoolException("璁㈠崟鎾浣嶇粦瀹氬け璐ワ紒锛�" );
+                throw new CoolException("璁㈠崟鎾浣嶇粦瀹氬け璐ワ紒锛�");
             }
 
             if (!waveSeedMapper.update(new LambdaUpdateWrapper<WaveSeed>()
@@ -435,17 +443,58 @@
                     .set(WaveSeed::getSiteNo, siteNo.getSiteNo()))) {
                 throw new CoolException("鎾绔欑偣鏇存柊澶辫触锛侊紒");
             }
+            //缁戝畾鎴愬姛锛屾挱绉嶅浜伅
+            sowLightMange(siteNo.getSiteNo(), order, "LIGHT");
         } else {
             if (StringUtil.isNullOrEmpty(siteNo.getOrderNo())) {
                 throw new CoolException("褰撳墠鎾绔欑偣鏈粦瀹氳鍗曪紒锛�");
             }
-           siteNo.setOrderId(null).setOrderNo(null).setBarcode(null).setSiteNo("0");
+            siteNo.setOrderId(null).setOrderNo(null).setBarcode(null).setSiteNo("0");
             if (cacheSiteMapper.updateById(siteNo) < 1) {
-                throw new CoolException("璁㈠崟涓庢挱绉嶄綅瑙g粦澶辫触锛侊紒" );
+                throw new CoolException("璁㈠崟涓庢挱绉嶄綅瑙g粦澶辫触锛侊紒");
             }
         }
         return true;
     }
+
+    /**
+     * @author Ryan
+     * @date 2025/7/11
+     * @description: 缁戝畾鎾澧欎寒鐏�
+     * @version 1.0
+     */
+    public void sowLightMange(String siteNo, Order order, String light) {
+        // 鍒拌揪鎷i�変綅锛屾帶鍒舵挱绉嶅浜伅
+        CacheSite cacheSite = cacheSiteService.getOne(new LambdaQueryWrapper<CacheSite>()
+                            .eq(CacheSite::getSiteNo, siteNo));
+        if (Objects.isNull(cacheSite)) {
+            log.error("鏉$爜锛歿}锛屾湭鎵惧埌鎾澧欎寒鐏�", siteNo);
+            throw new CoolException("鏈壘鍒版挱绉嶅");
+        }
+        List<OrderDetl> detls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
+        if (Objects.isNull(detls)) {
+            throw new CoolException("鏁版嵁閿欒锛岃鍗曟槑缁嗕笉瀛樺湪锛侊紒");
+        }
+        int anfme = (int)detls.stream().mapToDouble(OrderDetl::getAnfme).sum();
+        SlapLightControlParam slapLightControlParam = new SlapLightControlParam();
+        slapLightControlParam
+                .setControllerCode(cacheSite.getMemo())
+                .setTagCode(cacheSite.getSiteNo())
+                .setColor("GREEN")
+                .setIndex(cacheSite.getIndex())
+//                .setMode("LIGHT")
+                .setMode(light)
+                .setDisplay(anfme + "");
+        // 鍙戣捣浜伅璇锋眰
+        log.info("鎾澧欎寒鐏笅鍙�", JSONObject.toJSONString(slapLightControlParam));
+        CommonReponse response = HttpEssUtils.post("鍒拌揪鎷i�変綅锛屾挱绉嶅浜伅", HttpEssUtils.PLT_SEND_COMMAND, slapLightControlParam);
+        if (response.getCode().equals(0)) {
+            log.info("鎾澧檣}浜伅鎴愬姛",  cacheSite.getSiteNo());
+        } else {
+            log.info("鎾澧檣}浜伅澶辫触", cacheSite.getSiteNo());
+        }
+    }
+
 
     @Override
     public R selectShippingDetl(Map<String, Object> params) {
@@ -472,6 +521,7 @@
      * 1. 鍑哄簱淇敼璁㈠崟瀹屾垚鐘舵�侊紝鍒ゆ柇璁㈠崟鏄惁瀹屾垚锛屽畬鎴愬姞鍏ュ巻鍙叉。锛屾湭瀹屾垚淇敼璁㈠崟宸插畬鎴愭暟閲�
      * 2. 鍒犻櫎璁㈠崟宸插畬鎴愭挱绉嶆槑缁嗕俊鎭�
      * 3. 娓呴櫎闆嗚揣鍖虹粦瀹氭暟鎹�
+     *
      * @param params
      * @return
      */
@@ -526,11 +576,11 @@
             if (!waveSeeds.isEmpty()) {
                 ArrayList<WaveSeedLog> waveSeedLogs = new ArrayList<>();
                 waveSeeds.forEach(seed -> {
-                   WaveSeedLog waveSeedLog = new WaveSeedLog();
-                   BeanUtils.copyProperties(seed, waveSeedLog);
-                   waveSeedLog.setId(null);
+                    WaveSeedLog waveSeedLog = new WaveSeedLog();
+                    BeanUtils.copyProperties(seed, waveSeedLog);
+                    waveSeedLog.setId(null);
                     waveSeedLogs.add(waveSeedLog);
-               });
+                });
                 if (!waveSeedLogService.saveBatch(waveSeedLogs)) {
                     throw new CoolException("娉㈡槑鍘嗗彶妗d繚瀛樺け璐ワ紒锛�");
                 }
@@ -563,7 +613,7 @@
                 }
             } else { //涓嶄负绌猴紝淇敼璁㈠崟鐘舵�侊紝鍙噸鏂扮粍鎷�
                 one.setOrderSettle(OrderSettleType.INIT.val());
-                if (orderService.updateById(one));
+                if (orderService.updateById(one)) ;
             }
         });
 
@@ -609,4 +659,76 @@
         return R.ok().add(matService.list(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, matnr)));
     }
 
+    /**
+     * @author Ryan
+     * @date 2025/7/10
+     * @description: 鑾峰彇搴撲綅鏄庣粏
+     * @version 1.0
+     */
+    @Override
+    public List<LocDetl> getDetlsByCode(String barcode) {
+        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getLocNo, barcode));
+        if (Objects.isNull(loc)) {
+            throw new CoolException("搴撲綅涓嶅瓨鍦紒锛�");
+        }
+        LocArea locArea = locAreaService.getOne(new LambdaQueryWrapper<LocArea>()
+                .eq(LocArea::getLocId, loc.getId())
+                .eq(LocArea::getTypeId, LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id));
+        if (Objects.isNull(locArea)) {
+            throw new CoolException("闈炲钩搴撳簱浣嶄笉鍙墽琛屾鎿嶄綔锛侊紒");
+        }
+        List<LocDetl> detls = locDetlService.list(new LambdaQueryWrapper<LocDetl>()
+                .eq(LocDetl::getLocNo, barcode));
+        for (int i = 0; i < detls.size(); i++) {
+//            detls.get(i).setMats(matService.getOne(new LambdaQueryWrapper<Mat>().eq(Mat::getMatnr, detls.get(i).getMatnr())));
+        }
+        return detls;
+    }
+
+    /**
+     * @author Ryan
+     * @date 2025/7/11
+     * @description: 骞冲簱搴撲綅杞Щ
+     * @version 1.0
+     */
+    @Override
+    public R transferLocs(Map<String, String> param) {
+        Loc barcode = locService.getOne(new LambdaQueryWrapper<Loc>()
+                .eq(Loc::getLocStsId, LocStsType.F.val())
+                .eq(Loc::getLocNo, param.get("barcode")));
+        if (Objects.isNull(barcode)) {
+            throw new CoolException("婧愬簱浣嶆槑缁嗕笉瀛樺湪锛侊紒");
+        }
+        Loc tarCode = locService.getOne(new LambdaQueryWrapper<Loc>()
+                .eq(Loc::getLocStsId, LocStsType.O.val())
+                .eq(Loc::getLocNo, param.get("tarCode")));
+        if (Objects.isNull(tarCode)) {
+            throw new CoolException("璇锋鏌ョ洰鏍囦负鍞綅鏄惁瀛樺湪鎴栨槸鍚︿负绌哄簱锛侊紒");
+        }
+
+        List<Long> ids = Arrays.asList(barcode.getId(), tarCode.getId());
+
+        List<LocArea> locAreas = locAreaService.list(new LambdaQueryWrapper<LocArea>()
+                .in(LocArea::getLocId, ids)
+                .eq(LocArea::getTypeId, LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id));
+        if (!locAreas.isEmpty() && locAreas.size() == ids.size()) {
+            throw new CoolException("闈炲钩搴撲笉鍙墽琛屾鎿嶄綔锛侊紒");
+        }
+
+        List<LocDetl> locDetls = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getLocNo, barcode.getLocNo()));
+        if (locDetls.isEmpty()) {
+            return R.error("搴撲綅鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+
+        if (!locDetlService.update(new LambdaUpdateWrapper<LocDetl>()
+                .eq(LocDetl::getLocId, barcode.getId())
+                .set(LocDetl::getLocId, tarCode.getId())
+                .set(LocDetl::getLocNo, tarCode.getLocNo()))) {
+            throw new CoolException("搴撲綅鏄庣粏淇敼澶辫触锛侊紒");
+        }
+
+        return R.ok();
+    }
+
+
 }

--
Gitblit v1.9.1