From 6a9275fe27d5291d3ea8063bcc3712dde42fe8e7 Mon Sep 17 00:00:00 2001
From: Administrator <1051256694@qq.com>
Date: 星期四, 19 三月 2026 19:05:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   75 ++++++++++++++++++++++++-------------
 1 files changed, 48 insertions(+), 27 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 8fbbbbf..a285935 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -2,10 +2,7 @@
 
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
-import com.core.common.BaseRes;
-import com.core.common.Cools;
-import com.core.common.DateUtils;
-import com.core.common.SnowflakeIdWorker;
+import com.core.common.*;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.param.EmptyPlateOutParam;
@@ -350,6 +347,7 @@
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
             wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
+            wrkMast.setOveMk(staDesc.getStnNo()==1076? "Y":"N");
             wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
@@ -420,7 +418,7 @@
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         String wrkCode = null;
         if (!Objects.isNull(deviceNo)) {
-            wrkCode = workNo + "-1";
+            wrkCode = workNo + "";
             ioType = 101;
             generateOutStock(taskDto, userId, workNo, wrkCode, now, ioType, locMast, staDesc, deviceNo);
         } else {
@@ -454,10 +452,12 @@
         }
 
         LocAroundBind binds = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
-                .eq("dev_no", basDevice.getDevNo()).orderBy("is_default", false));
+                .eq("loc_type", LocStsType.LOC_STS_TYPE_O.type)
+                .eq("dev_no", basDevice.getType()).orderBy("order_no"));
 
         if (Objects.isNull(binds)) {
-            throw new CoolException("鏈哄彴鏈缃粯璁ゅ伐浣滀綅锛侊紒");
+            log.error(deviceNo+"---"+basDevice.getType()+"--娌℃湁鍙敤鏈哄彴");
+            return;
         }
 //
 //        Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
@@ -499,6 +499,7 @@
             throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMasts.getLocNo());
         }
 
+
         List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locMasts.getLocNo(), 1);
         //TODO 1. 鑾峰彇鍏ュ簱绔欑偣锛� 鐩爣搴撲綅  3. 灏嗗嚭搴撴槑缁嗘坊鍔犺嚦鍏ュ簱鏄庣粏
         Integer staNo = staNos.stream().findFirst().get();
@@ -512,9 +513,11 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(13D); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
 //        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
-        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+        if(!Objects.equals(locMasts.getCrnNo(), locMast.getCrnNo())){
+            wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
+            wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+        }
         wrkMast.setLocNo(locMasts.getLocNo());
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -719,6 +722,8 @@
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk("Y"); // 绌烘澘
             wrkMast.setLinkMis("N");
+            wrkMast.setOveMk("Y");
+            wrkMast.setBarcode(locMast.getBarcode());
             wrkMast.setAppeUser(userId);
             wrkMast.setAppeTime(now);
             wrkMast.setModiUser(userId);
@@ -1239,6 +1244,16 @@
             // 鍑哄簱 ===>> F.鍦ㄥ簱
             if (wrkMast.getIoType() > 100 && wrkMast.getIoType() != 110) {
                 locSts = "F";
+                if (!Cools.isEmpty(wrkMast.getLocNo())) {
+                    LocAroundBind bLocId = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_id", wrkMast.getLocNo()));
+                    if (!Objects.isNull(bLocId)) {
+                        bLocId.setLocType(LocStsType.LOC_STS_TYPE_O.type);
+                        if (!locAroundBindService.updateById(bLocId)) {
+
+                        }
+                    }
+                }
+
                 // 绌烘澘鍑哄簱 ===>> D.绌烘《/绌烘爤鏉�
             } else if (wrkMast.getIoType() == 110) {
                 locSts = "D";
@@ -1427,13 +1442,13 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void backLocOperation(String workNo, Long userId) {
+    public R backLocOperation(String workNo, Long userId) {
         WrkMast wrkMast = wrkMastService.selectById(workNo);
         if (Cools.isEmpty(wrkMast)) {
-            throw new CoolException(workNo + "宸ヤ綔妗d笉瀛樺湪");
+            return R.error(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
         if (wrkMast.getWrkSts() != 15) {
-            throw new CoolException("褰撳墠浠诲姟鐘舵�佷笉鑳芥墽琛屾鎿嶄綔锛�");
+            return R.error("褰撳墠浠诲姟鐘舵�佷笉鑳芥墽琛屾鎿嶄綔锛�");
         }
 
         Integer ioType = wrkMast.getIoType() - 50;
@@ -1445,7 +1460,7 @@
 //            ioType = 10;
 //        }
         if (Objects.isNull(wrkMast.getIsSuplus())) {
-            throw new CoolException("鍥炲簱绫诲瀷涓嶈兘涓虹┖锛侊紒");
+            return R.error("鍥炲簱绫诲瀷涓嶈兘涓虹┖锛侊紒");
         }
 
         if (wrkMast.getIsSuplus() == 0) {
@@ -1454,19 +1469,21 @@
             ioType = 1;
         }
         wokNo = commonService.getWorkNo(0);
+        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
+
         // 鑾峰彇鐩爣绔�
         Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                 .eq("type_no", ioType)
-                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
-                .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿
+//                .eq("stn_no", wrkMast.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯
+                .eq("crn_no", locMast1.getCrnNo()); // 鍫嗗灈鏈哄彿
         StaDesc staDesc = staDescService.selectOne(wrapper);
         if (Cools.isEmpty(staDesc)) {
-            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+            return R.error("鍏ュ簱璺緞涓嶅瓨鍦�");
         }
 
         int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("barcode", wrkMast.getBarcode()));
         if (count >= 2) {
-            throw new CoolException("浠诲姟妗e凡鐢熸垚锛屼笉鍙互閲嶅鐢熸垚鐩稿悓鐨勫瓙浠诲姟锛侊紒");
+            return R.error("浠诲姟妗e凡鐢熸垚锛屼笉鍙互閲嶅鐢熸垚鐩稿悓鐨勫瓙浠诲姟锛侊紒");
         }
 
         WrkDetl detl = wrkDetlService.selectOne(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
@@ -1475,10 +1492,10 @@
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
 
         // 婧愮珯鐐圭姸鎬佹娴�
-        BasDevp sourceStaNo = basDevpService.checkSiteStatus(Integer.parseInt(wrkMast.getStaNo()), false);
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(staDesc.getCrnStn(), false);
         sourceStaNo.setLocType1((short) 1);
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto locNo = commonService.getLocNo(1, Integer.parseInt(wrkMast.getStaNo()), findLocNoAttributeVo, locTypeDto);
+        StartupDto locNo = commonService.getLocNo1(locMast1.getCrnNo());
 
         Date now = new Date();
         // 鍫嗗灈鏈虹珯鐐�(鐩爣绔�)
@@ -1488,19 +1505,19 @@
         mast.setWrkNo(wokNo);
         // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
         mast.setIoType(ioType); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-        mast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-        mast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-        mast.setStaNo(staNo + ""); // 鐩爣绔�
+        mast.setWrkSts(1L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+        mast.setSourceStaNo(""); // 婧愮珯
+        mast.setStaNo(""); // 鐩爣绔�
         mast.setSourceLocNo(wrkMast.getLocNo());
         mast.setLocNo(locNo.getLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
         mast.setModiTime(now);
         mast.setModiUser(userId);
         if (!wrkMastService.insert(mast)) {
-            throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+            return R.error("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
         }
         List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", wrkMast.getWrkNo()));
         if (Cools.isEmpty(wrkDetls)) {
-            throw new CoolException("鏁版嵁閿欒锛屼换鍔℃。鏄庣粏涓嶅瓨鍦� 锛侊紒");
+            return R.error("鏁版嵁閿欒锛屼换鍔℃。鏄庣粏涓嶅瓨鍦� 锛侊紒");
         }
 
         // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
@@ -1509,14 +1526,14 @@
         inLoc.setModiTime(now);
         inLoc.setModiUser(userId);
         if (!locMastService.updateById(inLoc)) {
-            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+            return R.error("淇敼搴撲綅鐘舵�佸け璐�");
         }
 
         LocAroundBind aroundBind = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", mast.getSourceLocNo()));
         if (!Objects.isNull(aroundBind)) {
             aroundBind.setLocType(LocStsType.LOC_STS_TYPE_R.type);
             if (!locAroundBindService.updateById(aroundBind)) {
-                throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+                return R.error("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
             }
         }
 
@@ -1539,7 +1556,7 @@
         locMast.setModiTime(now);
         locMast.setModiUser(userId);
         if (!locMastService.updateById(locMast)) {
-            throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+            return R.error("淇敼搴撲綅鐘舵�佸け璐�");
         }
 
 //        wrkMast.setWrkCode(null);
@@ -1547,6 +1564,10 @@
 //        if (!wrkMastService.updateById(wrkMast)) {
 //            throw new CoolException("浠诲姟妗f洿鏂板け璐ワ紒锛�");
 //        }
+        if (Cools.isEmpty(mast)) {
+            return R.error("娌℃湁鐢熸垚浠诲姟");
+        }
+        return R.ok("鐢熸垚鍥炲簱浠诲姟鎴愬姛锛侊紒");
     }
 
 

--
Gitblit v1.9.1