From d91fae31f20fa81081fe1b0769437be66470175d Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期二, 03 三月 2026 14:38:25 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java      |    9 +++++++--
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java   |   12 ++++++------
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java           |    2 +-
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java |   10 +++++-----
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java   |   12 ++++++------
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java    |    8 ++++----
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java           |    2 +-
 7 files changed, 30 insertions(+), 25 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
index adbcaeb..19bbe6b 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/AgvServiceImpl.java
@@ -262,7 +262,7 @@
 
         BasStation isBarcodeSta = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                         .eq(BasStation::getBarcode, barcode)
-                , false
+                .last("limit 1")
         );
         if (!Cools.isEmpty(isBarcodeSta)) {
             throw new CoolException("璇ユ潯鐮佸凡琚�" + isBarcodeSta.getStationName() + "绔欑粦瀹�");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
index 26c113f..26b5778 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
@@ -99,7 +99,7 @@
         if (checkDiff.getExceStatus().equals(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_END.val)) {
             return R.error("璇ョ洏鐐瑰崟宸插畬鎴�");
         }
-        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getContainer()));
+        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, params.getContainer()).last("limit 1"));
         if (null == task) {
             throw new CoolException("鏁版嵁閿欒锛屾湭鎵惧埌瀹瑰櫒鐮佸搴旂洏鐐逛换鍔�");
         }
@@ -113,7 +113,7 @@
                         .setBarcode(task.getBarcode())
                         .setAnfme(ckDiffItem.getCheckQty());
 
-                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, diffItem.getMatnrCode()));
+                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, diffItem.getMatnrCode()).last("limit 1"));
                 if (Objects.isNull(matnr)) {
                     throw new CoolException("鍗曟嵁鐗╂枡鍚嶇О涓嶅瓨鍦紒锛�");
                 }
@@ -203,7 +203,7 @@
         if (Cools.isEmpty(matnrCode)){
             return R.error("鐗╂枡鐮佷负绌�");
         }
-        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, matnrCode));
+        Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, matnrCode).last("limit 1"));
         if (null == matnr){
             return R.error("鏈壘鍒扮紪鐮佸搴旂殑鏄庣粏");
         }
@@ -220,7 +220,7 @@
     public R getCheckTaskItemList2(String barcode) {
         LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(Task::getBarcode, barcode);
-        Task task = taskService.getOne(lambdaQueryWrapper);
+        Task task = taskService.getOne(lambdaQueryWrapper.last("limit 1"));
         if (null == task) {
             throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟");
         }
@@ -232,7 +232,7 @@
             throw new CoolException("鏈壘鍒拌瀹瑰櫒鐮佸搴旂殑浠诲姟鏄庣粏");
         }
         String sourceCode = taskItems.stream().findFirst().map(TaskItem::getSourceCode).orElse(null);
-        CheckDiff checkDiff = checkDiffService.getOne(new LambdaQueryWrapper<CheckDiff>().eq(CheckDiff::getOrderCode,sourceCode));
+        CheckDiff checkDiff = checkDiffService.getOne(new LambdaQueryWrapper<CheckDiff>().eq(CheckDiff::getOrderCode,sourceCode).last("limit 1"));
         if (null == checkDiff) {
             return R.error("鏈壘鍒扮洏鐐瑰樊寮傚崟");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
index f6e571a..ddfd3d0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaOutStockServiceImpl.java
@@ -55,7 +55,7 @@
     public R getOutStockTaskItem(String barcode) {
         LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(Task::getBarcode, barcode);
-        Task task = taskService.getOne(lambdaQueryWrapper);
+        Task task = taskService.getOne(lambdaQueryWrapper.last("limit 1"));
         if (null == task) {
             return R.error("鏈煡璇㈠埌鐩稿叧浠诲姟");
         }
@@ -72,7 +72,7 @@
     public R saveOutTaskSts(String barcode) {
         LambdaQueryWrapper<Task> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(Task::getBarcode, barcode);
-        Task task = taskService.getOne(lambdaQueryWrapper);
+        Task task = taskService.getOne(lambdaQueryWrapper.last("limit 1"));
         if (null == task) {
             throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟");
         }
@@ -110,7 +110,7 @@
         if (Cools.isEmpty(barcode)) {
             throw new CoolException("鍙傛暟鏈夎");
         }
-        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, barcode));
+        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, barcode).last("limit 1"));
         if (null == task) {
             throw new CoolException("鏈壘鍒板鍣ㄥ彿瀵瑰簲浠诲姟");
         }
@@ -157,7 +157,7 @@
         if (null == containerWaveParam || containerWaveParam.getContainerWaveDtos().size() <= 0) {
             return R.error("鍙傛暟閿欒");
         }
-        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, containerWaveParam.getContainer()));
+        Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getBarcode, containerWaveParam.getContainer()).last("limit 1"));
         if (null == task) {
             return R.error("鏈壘鍒版墭鐩樺搴旂殑浠诲姟");
         }
@@ -240,7 +240,7 @@
         BasStation basStation = basStationService.getOne(new LambdaQueryWrapper<BasStation>()
                 .eq(BasStation::getStationName, containerWaveParam.getStaNo())
                 .orderByDesc(BasStation::getId)
-                .last("LIMIT 1"), false);
+                .last("LIMIT 1"));
 
         if (Objects.isNull(basStation)) {
             throw new CoolException(containerWaveParam.getStaNo() + "绔欑偣涓嶅瓨鍦紒锛�");
@@ -255,7 +255,7 @@
         }
 
         BasContainer basContainer = basContainerService.getOne(new LambdaQueryWrapper<BasContainer>()
-                        .in(BasContainer::getContainerType, containerWaveParam.getType(), false));
+                        .in(BasContainer::getContainerType, containerWaveParam.getType(), false).last("limit 1"));
         if (Cools.isEmpty(basContainer)){
             throw new CoolException("鏈煡璇㈠埌鐩稿叧瀹瑰櫒瑙勫垯");
         }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index a3cc56a..95c66d6 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -220,7 +220,7 @@
                 BeanUtils.copyProperties(matnr, mat);
                 mat.setCode(matnr.getMatnr()).setName(matnr.getMaktx());
                 if (!Objects.isNull(matnr.getGroupName())) {
-                    MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()), false);
+                    MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()).last("limit 1"), false);
                     if (Objects.isNull(matnrGroup)) {
                         mat.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
                     }
@@ -243,14 +243,14 @@
     @Override
     public R queryOrderStatus(QueryOrderParam queryParams) {
         WkOrder wkOrders = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
-                .eq(WkOrder::getPoCode, queryParams.getOrderNo()));
+                .eq(WkOrder::getPoCode, queryParams.getOrderNo()).last("limit 1"));
         if (Objects.isNull(wkOrders)) {
             Map<String, Object> map = new HashMap<>();
             map.put("exceStatus", "-1");
             return R.ok("鍗曟嵁涓嶅瓨鍦� 锛侊紒").add(map);
         }
 
-        AsnOrderLog orderLog = asnOrderLogService.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getCode, queryParams.getOrderNo()));
+        AsnOrderLog orderLog = asnOrderLogService.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getCode, queryParams.getOrderNo()).last("limit 1"));
         if (!Objects.isNull(orderLog)) {
             Map<String, Object> map = new HashMap<>();
             map.put("exceStatus", "4");
@@ -394,7 +394,7 @@
             if (Objects.isNull(companys.getCode())) {
                 throw new CoolException("浼佷笟缂栫爜涓嶈兘涓虹┖锛侊紒");
             }
-            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()));
+            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()).last("limit 1"));
             if (Objects.isNull(one)) {
                 String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_COMPANYS_CODE, null);
                 companys.setCode(ruleCode);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
index 505080e..aa17791 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/WcsServiceImpl.java
@@ -699,7 +699,7 @@
                     }
                     String shallowLocNo = LocUtils.getShallowLoc(loc1.getCode());
                     // 妫�娴嬬洰鏍囧簱浣嶆槸鍚︿负绌哄簱浣�
-                    Loc shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLocNo));
+                    Loc shallowLoc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLocNo).last("limit 1"));
                     if (shallowLoc != null && shallowLoc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_O.type)) {
                         if (LocUtils.locMoveCheckLocTypeComplete(shallowLoc, locTypeDto)) {
                             loc = shallowLoc;
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
index 6d30467..b81ea09 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java
@@ -108,7 +108,7 @@
                 //绌哄鍣ㄥ嚭搴�
                 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                         .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())
-                        .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_EMPTY_OUT.type));
+                        .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_EMPTY_OUT.type).last("limit 1"));
                 if (Objects.isNull(deviceSite)) {
                     throw new CoolException("绔欑偣涓嶆敮鎸佺┖瀹瑰櫒鍑哄簱锛侊紒");
                 }
@@ -213,7 +213,7 @@
                     DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                             .eq(DeviceSite::getSite, siteNo)
                             .eq(!Objects.isNull(loc.getChannel()),DeviceSite::getChannel, loc.getChannel())
-                            .eq(DeviceSite::getType, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type));
+                            .eq(DeviceSite::getType, TaskType.TASK_TYPE_PICK_AGAIN_OUT.type).last("limit 1"),false);
                     if (Objects.isNull(deviceSite)) {
                         throw new CoolException("绔欑偣涓嶆敮鎸佹嫞鏂欏嚭搴擄紒锛�");
                     }
@@ -223,7 +223,7 @@
                         //鍏ㄦ澘鍑哄簱
                         DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                                 .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_CROSS_DOCKING_OUT.type)
-                                .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel()));
+                                .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel()).last("limit 1"));
                         if (Objects.isNull(deviceSite)) {
                             throw new CoolException("绔欑偣涓嶆敮鎸佽秺搴擄紒锛�");
                         }
@@ -232,7 +232,7 @@
                         //鍏ㄦ澘鍑哄簱
                         DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                                 .eq(DeviceSite::getSite, siteNo).eq(DeviceSite::getType, TaskType.TASK_TYPE_OUT.type)
-                                .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel()));
+                                .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel()).last("limit 1"));
                         if (Objects.isNull(deviceSite)) {
                             throw new CoolException("绔欑偣涓嶆敮鎸佸叏鏉垮嚭搴擄紒锛�");
                         }
@@ -245,7 +245,7 @@
                 DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                         .eq(!Objects.isNull(loc.getChannel()), DeviceSite::getChannel, loc.getChannel())
                         .eq(DeviceSite::getSite, siteNo)
-                        .eq(DeviceSite::getType, TaskType.TASK_TYPE_CHECK_OUT.type));
+                        .eq(DeviceSite::getType, TaskType.TASK_TYPE_CHECK_OUT.type).last("limit 1"));
                 if (Objects.isNull(deviceSite)) {
                     throw new CoolException("褰撳墠绔欑偣涓嶆敮鎸佺洏鐐瑰嚭搴擄紒锛�");
                 }
@@ -399,7 +399,7 @@
             //鐩爣搴撲綅涓虹┖锛岃嚜鍔ㄨ幏鍙栨柊搴撲綅
             DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
                     .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type)
-                    .eq(!Objects.isNull(orgLoc.getChannel()), DeviceSite::getChannel, orgLoc.getChannel()), false);
+                    .eq(!Objects.isNull(orgLoc.getChannel()), DeviceSite::getChannel, orgLoc.getChannel()).last("limit 1"), false);
             if (Objects.isNull(deviceSite)) {
                 throw new CoolException("绔欑偣淇℃伅涓嶅瓨鍦紒锛�");
             }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index de36011..4c8035e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -1337,7 +1337,7 @@
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Task pickOrCheckTask(Long id, String oType) throws Exception {
+    public synchronized Task pickOrCheckTask(Long id, String oType) throws Exception {
         Task task = this.getById(id);
         if (Objects.isNull(task)) {
             throw new CoolException("褰撳墠浠诲姟涓嶅瓨鍦紒锛�");
@@ -1375,7 +1375,12 @@
                 .setIoType(type)
                 .setLocType1(Integer.parseInt(loc.getType()));
         //鑾峰彇鏂板簱浣�
-        InTaskMsgDto locInfo = wcsService.getLocNo(param);
+        InTaskMsgDto locInfo = null;
+        try{
+            locInfo = wcsService.getLocNo(param);
+        } catch (Exception e) {
+            throw new CoolException("鑾峰彇搴撲綅澶辫触锛侊紒"+e.getMessage());
+        }
 
         if (Objects.isNull(locInfo)) {
             throw new CoolException("鑾峰彇搴撲綅澶辫触锛侊紒");

--
Gitblit v1.9.1