From 5838cae100e9f2af74052203d1d4bb2b226c6457 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 20 二月 2025 13:47:25 +0800
Subject: [PATCH] #四向库入出库修改

---
 src/main/java/com/zy/asrs/service/WorkService.java                   |    1 
 src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js |    2 
 src/main/java/com/zy/asrs/utils/VersionUtils.java                    |   13 +
 src/main/webapp/static/js/order/out.js                               |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java          |  190 +++++++++++++++++++++
 src/main/java/com/zy/asrs/controller/MobileController.java           |   44 ++--
 src/main/java/com/zy/asrs/controller/OutController.java              |  198 +++++++++++-----------
 src/main/java/com/zy/common/model/LocTypeDto.java                    |    2 
 src/main/java/com/zy/common/service/CommonService.java               |   80 +++++---
 9 files changed, 379 insertions(+), 153 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 361f7e6..37835f9 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -594,20 +594,20 @@
     @RequestMapping("/ddd/ddd")
     @ManagerAuth()
     public R ddd() {
-        int w = 64;
+        int w = 99999;
         for (int i = 17; i <= 37; i++) {
-        for (int j = 1;j<=3;j++){
-//            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 7).eq("lev1", j));
-            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", j));
-            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 14).eq("lev1", j));
+        for (int j = 8;j<=14;j++){
+            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 1));
+            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 2));
+            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", j).eq("lev1", 3));
 //            LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", 26).eq("bay1", i).eq("lev1", 1));
-//            if (locMast.getGro1() == 999){
-//                continue;
-//            }
+            if (locMast.getGro1() == 999){
+                continue;
+            }
 //            locMast.setGro1(w);
 //            locMast.setGro1(locMast.getGro1()+1000);
-            locMast2.setGro1(locMast2.getGro1()+10000);
-            locMast3.setGro1(locMast3.getGro1()+2000);
+            locMast2.setGro1(locMast.getGro1()+1000);
+            locMast3.setGro1(locMast.getGro1()+2000);
 //            locMast4.setGro1(w);
 //            locMastService.updateById(locMast);
             locMastService.updateById(locMast2);
@@ -617,19 +617,23 @@
         }
         }
 //        for (int i = 17; i <=37; i++) {
-//            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 14).eq("lev1", 1));
-////            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 10).eq("lev1", 1));
-////            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 11).eq("lev1", 1));
+//            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 3).eq("lev1", 1));
+//            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 8).eq("lev1", 1));
+//            LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 13).eq("lev1", 1));
 ////            LocMast locMast4 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", i).eq("bay1", 12).eq("lev1", 1));
-//            locMast.setGro1(w);
-////            locMast2.setGro1(w);
-////            locMast3.setGro1(w);
+//            if (!Cools.isEmpty(locMast)) {
+//                locMast.setGro1(w);
+//                locMastService.updateById(locMast);
+//            }
+//
+//            locMast2.setGro1(w);
+//            locMast3.setGro1(w);
 ////            locMast4.setGro1(w);
-//            locMastService.updateById(locMast);
-////            locMastService.updateById(locMast2);
-////            locMastService.updateById(locMast3);
+//
+//            locMastService.updateById(locMast2);
+//            locMastService.updateById(locMast3);
 ////            locMastService.updateById(locMast4);
-//            w++;
+////            w++;
 //        }
         return R.ok();
 
diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 6e1f55f..3a54e57 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -87,59 +87,38 @@
             locDetls = locDetlService.queryStockFour(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
             for (LocDetl locDetl : locDetls) {
                 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
-                List<LocMast> locMasts = new ArrayList<>();
-                if (locMast.getBay1() >=1 && locMast.getBay1()<=2){
-                    locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("gro1", locMast.getGro1())
-                            .eq("crn_no", 7)
-                            .eq("loc_type1",locMast.getLocType1())
-                            .orderBy("bay1", false));
-                }else if (locMast.getBay1() >=4 && locMast.getBay1()<=12){
-                    locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("gro1", locMast.getGro1())
-                            .eq("crn_no", 7)
-                            .eq("loc_type1",locMast.getLocType1())
-                            .orderBy("bay1", true));
-                }else {
-                    locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("gro1", locMast.getGro1())
-                            .eq("crn_no", 7)
-                            .eq("loc_type1",locMast.getLocType1())
-                            .orderBy("bay1", false));
-                }
-                for (LocMast locMast1 : locMasts){
-                    if (locMast1.getLocSts().equals("F")){
-                        LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
-                                .eq("loc_No", locMast1.getLocNo())
-                                .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
-                        if (!Cools.isEmpty(locDetl1)) {
-                            ExistDto existDto = new ExistDto();
-                            existDto.setLocNo(locDetl1.getLocNo());
-                            existDto.setMatnr(locDetl1.getMatnr());
-                            existDto.setBatch(locDetl1.getBatch());
-                            if (existDtos.add(existDto)){
-                                if (issued > 0) {
-                                    LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
-                                            issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
-                                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
-                                    List<LocDto.staListDto> maps = new ArrayList<>();
-                                    for (Integer staNo : staNos) {
-                                        LocDto.staListDto staListDto = new LocDto.staListDto();
-                                        staListDto.setStaNo(staNo);
-                                        staListDto.setStaName(Utils.getStaName(staNo));
-                                        maps.add(staListDto);
-                                    }
-                                    locDto.setStaNos(maps);
-                                    locDtos.add(locDto);
-                                    // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                                    issued = issued - locDetl.getAnfme();
-                                }else {
-                                    break;
+                if (locMast.getLocSts().equals("F")){
+                    LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+                            .eq("loc_No", locMast.getLocNo())
+                            .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
+                    if (!Cools.isEmpty(locDetl1)) {
+                        ExistDto existDto = new ExistDto();
+                        existDto.setLocNo(locDetl1.getLocNo());
+                        existDto.setMatnr(locDetl1.getMatnr());
+                        existDto.setBatch(locDetl1.getBatch());
+                        if (existDtos.add(existDto)){
+                            if (issued > 0) {
+                                LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
+                                        issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
+                                List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
+                                List<LocDto.staListDto> maps = new ArrayList<>();
+                                for (Integer staNo : staNos) {
+                                    LocDto.staListDto staListDto = new LocDto.staListDto();
+                                    staListDto.setStaNo(staNo);
+                                    staListDto.setStaName(Utils.getStaName(staNo));
+                                    maps.add(staListDto);
                                 }
+                                locDto.setStaNos(maps);
+                                locDtos.add(locDto);
+                                // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+                                issued = issued - locDetl.getAnfme();
+                            }else {
+                                break;
                             }
                         }
                     }
                 }
+
             }
             if (issued > 0) {
                 LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
@@ -168,60 +147,39 @@
             List<LocDetl> locDetls = new ArrayList<>();
             locDetls = locDetlService.queryStockFour(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist,orderDetl.getSupp(),orderDetl.getTemp1(),orderDetl.getTemp2());
             for (LocDetl locDetl : locDetls) {
-                        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
-                        List<LocMast> locMasts = new ArrayList<>();
-                        if (locMast.getBay1() >=1 && locMast.getBay1()<=2){
-                            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                                    .eq("gro1", locMast.getGro1())
-                                    .eq("crn_no", 7)
-                                    .eq("loc_type1",locMast.getLocType1())
-                                    .orderBy("bay1", false));
-                        }else if (locMast.getBay1() >=4 && locMast.getBay1()<=12){
-                            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                                    .eq("gro1", locMast.getGro1())
-                                    .eq("crn_no", 7)
-                                    .eq("loc_type1",locMast.getLocType1())
-                                    .orderBy("bay1", true));
-                        }else {
-                            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                                    .eq("gro1", locMast.getGro1())
-                                    .eq("crn_no", 7)
-                                    .eq("loc_type1",locMast.getLocType1())
-                                    .orderBy("bay1", false));
-                        }
-                        for (LocMast locMast1 : locMasts){
-                            if (locMast1.getLocSts().equals("F")){
-                                LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
-                                        .eq("loc_No", locMast1.getLocNo())
-                                        .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
-                                if (!Cools.isEmpty(locDetl1)) {
-                                    ExistDto existDto = new ExistDto();
-                                    existDto.setLocNo(locDetl1.getLocNo());
-                                    existDto.setMatnr(locDetl1.getMatnr());
-                                    existDto.setBatch(locDetl1.getBatch());
-                                    if (existDtos.add(existDto)){
-                                        if (issued > 0) {
-                                            LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
-                                                    issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
-                                            List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
-                                            List<LocDto.staListDto> maps = new ArrayList<>();
-                                            for (Integer staNo : staNos) {
-                                                LocDto.staListDto staListDto = new LocDto.staListDto();
-                                                staListDto.setStaNo(staNo);
-                                                staListDto.setStaName(Utils.getStaName(staNo));
-                                                maps.add(staListDto);
-                                            }
-                                            locDto.setStaNos(maps);
-                                            locDtos.add(locDto);
-                                            // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
-                                            issued = issued - locDetl.getAnfme();
-                                        }else {
-                                            break;
-                                        }
-                                    }
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                if (locMast.getLocSts().equals("F")){
+                    LocDetl locDetl1 = locDetlService.selectOne(new EntityWrapper<LocDetl>()
+                            .eq("loc_No", locMast.getLocNo())
+                            .eq("matnr", locDetl.getMatnr()).eq("batch", locDetl.getBatch()));
+                    if (!Cools.isEmpty(locDetl1)) {
+                        ExistDto existDto = new ExistDto();
+                        existDto.setLocNo(locDetl1.getLocNo());
+                        existDto.setMatnr(locDetl1.getMatnr());
+                        existDto.setBatch(locDetl1.getBatch());
+                        if (existDtos.add(existDto)){
+                            if (issued > 0) {
+                                LocDto locDto = new LocDto(locDetl1.getLocNo(), locDetl1.getMatnr(), locDetl1.getMaktx(), locDetl1.getBatch(), orderDetl.getOrderNo(),
+                                        issued >= locDetl1.getAnfme() ? locDetl1.getAnfme() : issued);
+                                List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl1.getLocNo(), issued >= locDetl1.getAnfme() ? 101 : 103);
+                                List<LocDto.staListDto> maps = new ArrayList<>();
+                                for (Integer staNo : staNos) {
+                                    LocDto.staListDto staListDto = new LocDto.staListDto();
+                                    staListDto.setStaNo(staNo);
+                                    staListDto.setStaName(Utils.getStaName(staNo));
+                                    maps.add(staListDto);
                                 }
+                                locDto.setStaNos(maps);
+                                locDtos.add(locDto);
+                                // 鍓╀綑寰呭嚭鏁伴噺閫掑噺
+                                issued = issued - locDetl.getAnfme();
+                            }else {
+                                break;
                             }
                         }
+                    }
+                }
+
             }
             if (issued > 0) {
                 LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
@@ -505,4 +463,46 @@
         return R.ok();
     }
 
+    @PostMapping("/out/pakout/auth/sxk")
+    @ManagerAuth(memo = "璁㈠崟鍑哄簱")
+    public synchronized R pakoutSxk(@RequestBody List<LocDto> locDtos) throws InterruptedException {
+        if (Cools.isEmpty(locDtos)) {
+            return R.parse(BaseRes.PARAM);
+        }
+        boolean lack = true;
+        for (LocDto locDto : locDtos) {
+            // 鍒ゆ柇鍏ュ簱妯″紡
+            OutStockInterceptUtil.outStockIntercept(locDto.getStaNo());
+            if (!locDto.isLack()) {
+                lack = false;
+                break;
+            }
+        }
+        if (lack) {
+            return R.error("搴撳瓨涓嶈冻");
+        }
+
+        Thread.sleep(1000L);
+
+        List<TaskDto> taskDtos = new ArrayList<>();
+        // 鏍规嵁 锛堝簱浣� & 鍑哄簱绔欙級 鍒嗙粍锛� 鐞嗘兂鐘舵�侊細涓�缁勪负涓�娆″嚭搴撲换鍔�
+        for (LocDto locDto : locDtos) {
+            if (locDto.isLack()) { continue; }
+            TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+            if (TaskDto.has(taskDtos, taskDto)) {
+                TaskDto dto = TaskDto.find(taskDtos, taskDto);
+                assert dto != null;
+                dto.getLocDtos().addAll(taskDto.getLocDtos());
+            } else {
+                taskDtos.add(taskDto);
+            }
+        }
+        // -----------------------------------------------------------------------------------------------
+        for (TaskDto taskDto : taskDtos) {
+            BasDevp staNo = basDevpService.checkSiteStatus(taskDto.getStaNo());
+            workService.stockOutSxk(staNo, taskDto, getUserId());
+        }
+        return R.ok();
+    }
+
 }
diff --git a/src/main/java/com/zy/asrs/service/WorkService.java b/src/main/java/com/zy/asrs/service/WorkService.java
index b097f6c..e5e0110 100644
--- a/src/main/java/com/zy/asrs/service/WorkService.java
+++ b/src/main/java/com/zy/asrs/service/WorkService.java
@@ -36,6 +36,7 @@
     void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId);
 
     void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
+    void stockOutSxk(BasDevp staNo, TaskDto taskDto, Long userId);
 
     /**
      * 绌烘澘鍏ュ簱
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 02af09c..e5088a8 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -14,6 +14,7 @@
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
+import com.zy.asrs.utils.VersionUtils;
 import com.zy.common.model.*;
 import com.zy.common.model.enums.IoWorkType;
 import com.zy.common.model.enums.WorkNoType;
@@ -25,6 +26,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -500,6 +502,194 @@
 
     @Override
     @Transactional
+    public void stockOutSxk(BasDevp staNo, TaskDto taskDto, Long userId) {
+        Date now = new Date();
+        List<LocDto> locDtos = taskDto.getLocDtos();
+        for (LocDto locDto : locDtos) {
+            if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
+                throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
+            }
+        }
+        // 鑾峰彇搴撲綅
+        LocMast locMast = locMastService.selectById(taskDto.getLocNo());
+
+        List<LocMast> locMasts = new ArrayList<>();
+        if ((locMast.getBay1() >=1 && locMast.getBay1()<=2) || (locMast.getBay1() >=6 && locMast.getBay1()<=7 && locMast.getRow1() !=36 && locMast.getRow1() !=29 ) || (locMast.getBay1() >=11 && locMast.getBay1()<=12)){
+            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("gro1", locMast.getGro1())
+                    .eq("crn_no", 7)
+                    .eq("loc_type1",locMast.getLocType1())
+                    .orderBy("bay1", false));
+        }else {
+            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                    .eq("gro1", locMast.getGro1())
+                    .eq("crn_no", 7)
+                    .eq("loc_type1",locMast.getLocType1())
+                    .orderBy("bay1", true));
+        }
+        for (LocMast locMast1 : locMasts) {
+            if (locMast1.getLocNo().equals(taskDto.getLocNo())){
+                break;
+            }
+            if (locMast1.getLocSts().equals("X")){
+                throw new CoolException(taskDto.getLocNo()+"搴撲綅鍓嶆柟鏈夐攣瀹氬簱浣嶏紝绂佹鍑哄簱");
+            }
+            if (locMast1.getLocSts().equals("F")) {
+                moveLocForDeepLoc(locMast1);
+            }
+        }
+
+        // 鑾峰彇璺緞
+        int ioType = taskDto.isAll() ? 101 : 103;
+        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+        wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+        wrkMast.setCrnNo(locMast.getCrnNo());
+        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
+        wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+        wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("N");
+        wrkMast.setBarcode(locMast.getBarcode());
+        wrkMast.setAppeUser(userId); // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.insert(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細"+taskDto.getLocNo());
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        for (LocDto locDto : taskDto.getLocDtos()) {
+            if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
+            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
+            if (orderDetl == null) {
+                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+            }
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(orderDetl);
+            wrkDetl.setZpallet(wrkMast.getBarcode());
+            wrkDetl.setIoTime(now);
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setBatch(locDto.getBatch());
+            wrkDetl.setOrderNo(locDto.getOrderNo());
+            wrkDetl.setAnfme(locDto.getAnfme()); // 鏁伴噺
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setAppeUser(userId);
+            wrkDetl.setModiTime(now);
+            wrkDetl.setModiUser(userId);
+            if (!wrkDetlService.insert(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+            }
+            // 淇敼璁㈠崟鏄庣粏
+            if (!orderDetlService.increaseWorkQty(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) {
+                throw new CoolException("淇敼璁㈠崟鏄庣粏鏁伴噺澶辫触");
+            }
+            orderService.updateSettle(orderDetl.getOrderId(), 2L, userId);
+        }
+        // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+        locMast = locMastService.selectById(taskDto.getLocNo());
+        if (locMast.getLocSts().equals("F")) {
+            locMast.setLocSts(ioType==101?"R":"P");
+            locMast.setModiUser(userId);
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)) {
+                throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細"+taskDto.getLocNo());
+            }
+        } else {
+            throw new CoolException(taskDto.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+        }
+    }
+
+    @Transactional
+    public void moveLocForDeepLoc(LocMast shallowLoc) {
+
+        try {
+            LocTypeDto locTypeDto = new LocTypeDto();
+            locTypeDto.setLocType1(shallowLoc.getLocType1());
+            locTypeDto.setLev1(shallowLoc.getLev1());
+            StartupDto dto = commonService.getLocNo( 1, 31001, null,null,null, locTypeDto, false);
+            LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", dto.getLocNo()));
+            // 鑾峰彇宸ヤ綔鍙�
+            int workNo = commonService.getWorkNo(0);
+            // 淇濆瓨宸ヤ綔妗�
+            WrkMast wrkMast = new WrkMast();
+            wrkMast.setWrkNo(workNo);
+            wrkMast.setIoTime(new Date());
+            wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
+            wrkMast.setIoType(11); // 鍏ュ嚭搴撶姸鎬侊細 11.搴撴牸绉昏浇
+            wrkMast.setIoPri(13D);
+            wrkMast.setCrnNo(7);
+            wrkMast.setSourceLocNo(shallowLoc.getLocNo()); // 婧愬簱浣�
+            wrkMast.setLocNo(dto.getLocNo()); // 鐩爣搴撲綅
+            wrkMast.setFullPlt(shallowLoc.getFullPlt()); // 婊℃澘
+            wrkMast.setPicking("N"); // 鎷f枡
+            wrkMast.setExitMk("N"); // 閫�鍑�
+            wrkMast.setEmptyMk(shallowLoc.getLocSts().equals("D") ? "Y" : "N"); // 绌烘澘
+            wrkMast.setBarcode(shallowLoc.getBarcode()); // 鎵樼洏鐮�
+            wrkMast.setLinkMis("N");
+            wrkMast.setAppeTime(new Date());
+            wrkMast.setModiTime(new Date());
+            boolean res = wrkMastService.insert(wrkMast);
+            if (!res) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            }
+            // 宸ヤ綔妗f槑缁嗕繚瀛�
+            if (shallowLoc.getLocSts().equals("F")) {
+                List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", shallowLoc.getLocNo()));
+                for (LocDetl locDetl : locDetls) {
+                    WrkDetl wrkDetl = new WrkDetl();
+                    wrkDetl.setWrkNo(workNo);
+                    wrkDetl.setIoTime(new Date());
+                    wrkDetl.setAnfme(locDetl.getAnfme());
+                    VersionUtils.setWrkDetl(wrkDetl, locDetl); // 鐗堟湰鎺у埗
+                    wrkDetl.setAppeTime(new Date());
+                    wrkDetl.setModiTime(new Date());
+                    if (!wrkDetlService.insert(wrkDetl)) {
+                        throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+                    }
+                }
+            }
+            // 淇敼婧愬簱浣嶇姸鎬�
+            if (shallowLoc.getLocSts().equals("D") || shallowLoc.getLocSts().equals("F")) {
+                shallowLoc.setLocSts("R"); // R.鍑哄簱棰勭害
+                shallowLoc.setModiTime(new Date());
+                if (!locMastService.updateById(shallowLoc)) {
+
+                    throw new CoolException("鏇存柊婧愬簱浣嶇姸鎬佸け璐�");
+                }
+            } else {
+                throw new CoolException("婧愬簱浣嶅嚭搴撳け璐�");
+            }
+            // 淇敼鐩爣搴撲綅鐘舵��
+            if (loc.getLocSts().equals("O")) {
+                loc.setLocSts("S"); // S.鍏ュ簱棰勭害
+                loc.setModiTime(new Date());
+                if (!locMastService.updateById(loc)) {
+                    throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
+                }
+            } else {
+
+                throw new CoolException("绉昏浆澶辫触");
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+        }
+    }
+
+
+    @Override
+    @Transactional
     public String emptyPlateIn(Integer devpNo, Long userId) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
diff --git a/src/main/java/com/zy/asrs/utils/VersionUtils.java b/src/main/java/com/zy/asrs/utils/VersionUtils.java
index bdf8dd8..f1c570e 100644
--- a/src/main/java/com/zy/asrs/utils/VersionUtils.java
+++ b/src/main/java/com/zy/asrs/utils/VersionUtils.java
@@ -1,7 +1,9 @@
 package com.zy.asrs.utils;
 
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.Mat;
+import com.zy.asrs.entity.WrkDetl;
 import com.zy.asrs.entity.result.Pakin;
 import com.zy.common.model.LocTypeDto;
 
@@ -10,6 +12,17 @@
  */
 public class VersionUtils {
 
+    public static void setWrkDetl(WrkDetl wrkDetl, LocDetl locDetl) {
+        wrkDetl.setMatnr(locDetl.getMatnr()); // 浜у搧缂栧彿
+        wrkDetl.setMaktx(locDetl.getMaktx()); // 浜у搧鎻忚堪
+        wrkDetl.setSpecs(locDetl.getSpecs()); // 瑙勬牸
+        wrkDetl.setUnit(locDetl.getUnit()); // 鍗曚綅
+//        wrkDetl.setSize(locDetl.getSize()); // 灏哄
+        wrkDetl.setColor(locDetl.getColor()); // 棰滆壊
+        wrkDetl.setWeight(locDetl.getWeight()); // 鍗曢噸
+        wrkDetl.setZpallet(locDetl.getZpallet()); // 鎵樼洏鏉$爜
+    }
+
     /**
      * 搴撲綅绉昏浆鏃剁被鍨嬫娴�
      * 鍏煎鐗�
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index 6d7753b..a9f9f93 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -13,6 +13,8 @@
 @Data
 public class LocTypeDto {
 
+    private Integer lev1 = null;
+
     // 楂樹綆绫诲瀷{0:鏈煡,1:浣庡簱浣�,2:楂樺簱浣峿
     private Short locType1;
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 09ce68b..f9678da 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -570,46 +570,62 @@
         if (Cools.isEmpty(locMast) && crnNo != 0) {
             List<LocMast> locMasts = new ArrayList<>();
             int floor = 0;
-            if (locTypeDto.getLocType1() == 1){
-                int F1count = locMastService.selectCount(new EntityWrapper<LocMast>()
-                        .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
-                        .eq("crn_no", 7)
-                        .eq("loc_type1", locTypeDto.getLocType1())
-                        .eq("lev1", 1));
-                if (F1count <= 10) {
-                    int F2count = locMastService.selectCount(new EntityWrapper<LocMast>()
+            if (locTypeDto.getLev1() == null){
+                if (locTypeDto.getLocType1() == 1){
+                    int F1count = locMastService.selectCount(new EntityWrapper<LocMast>()
                             .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
                             .eq("crn_no", 7)
                             .eq("loc_type1", locTypeDto.getLocType1())
-                            .eq("lev1", 2));
-                    if (F2count <= 10) {
-                        throw new CoolException("搴撲綅涓嶈冻");
+                            .eq("lev1", 1));
+                    if (F1count <= 10) {
+                        int F2count = locMastService.selectCount(new EntityWrapper<LocMast>()
+                                .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
+                                .eq("crn_no", 7)
+                                .eq("loc_type1", locTypeDto.getLocType1())
+                                .eq("lev1", 2));
+                        if (F2count <= 10) {
+                            throw new CoolException("搴撲綅涓嶈冻");
+                        }else {
+                            floor = 2;
+                        }
                     }else {
-                        floor = 2;
+                        floor = 1;
                     }
-                }else {
-                    floor = 1;
-                }
 
-            }else if (locTypeDto.getLocType1() == 2){
-                int F3count = locMastService.selectCount(new EntityWrapper<LocMast>()
-                        .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
-                        .eq("crn_no", 7)
-                        .eq("loc_type1", locTypeDto.getLocType1())
-                        .eq("lev1", 3));
-                if (F3count <= 10) {
-                    throw new CoolException("搴撲綅涓嶈冻");
+                }else if (locTypeDto.getLocType1() == 2){
+                    int F3count = locMastService.selectCount(new EntityWrapper<LocMast>()
+                            .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
+                            .eq("crn_no", 7)
+                            .eq("loc_type1", locTypeDto.getLocType1())
+                            .eq("lev1", 3));
+                    if (F3count <= 10) {
+                        throw new CoolException("搴撲綅涓嶈冻");
+                    }
+                    floor = 3;
+                }else {
+                    throw new CoolException("搴撲綅楂樺害鏁版嵁寮傚父");
                 }
-                floor = 3;
-            }else {
-                throw new CoolException("搴撲綅楂樺害鏁版嵁寮傚父");
             }
-            locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                    .eq("bay1", nearRow)
-                    .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
-                    .eq("crn_no",7)
-                    .eq("loc_type1",locTypeDto.getLocType1())
-                    .eq("lev1",floor).orderBy("row1",false));//鏈�娴呭簱浣�
+
+            if (locTypeDto.getLev1() != null){
+                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("bay1", nearRow)
+                        .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
+                        .eq("crn_no",7)
+                        .eq("loc_type1",locTypeDto.getLocType1())
+                        .eq("lev1",locTypeDto.getLev1()).orderBy("row1",false));//鏈�娴呭簱浣�
+            }else {
+                if (floor == 0){
+                    throw new CoolException("搴撲綅宸叉弧");
+                }
+                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("bay1", nearRow)
+                        .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
+                        .eq("crn_no",7)
+                        .eq("loc_type1",locTypeDto.getLocType1())
+                        .eq("lev1",floor).orderBy("row1",false));//鏈�娴呭簱浣�
+            }
+
 
             for (LocMast locMast1 : locMasts) {
                 if (locMast != null){
diff --git a/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js b/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js
index c90da50..3e3faaf 100644
--- a/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js
+++ b/src/main/webapp/static/js/inventoryCheckOrder/inventoryCheckOrder.js
@@ -349,7 +349,7 @@
         // let loadIndex = layer.load(2);
         notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
         $.ajax({
-            url: baseUrl + "/out/pakout/auth",
+            url: baseUrl + "/out/pakout/auth/sxk",
             headers: {'token': localStorage.getItem('token')},
             contentType: 'application/json;charset=UTF-8',
             data: JSON.stringify(tableCache),
diff --git a/src/main/webapp/static/js/order/out.js b/src/main/webapp/static/js/order/out.js
index 0a05936..5365375 100644
--- a/src/main/webapp/static/js/order/out.js
+++ b/src/main/webapp/static/js/order/out.js
@@ -479,7 +479,7 @@
         // let loadIndex = layer.load(2);
         notice.msg('姝e湪鐢熸垚鍑哄簱浠诲姟......', {icon: 4});
         $.ajax({
-            url: baseUrl + "/out/pakout/auth",
+            url: baseUrl + "/out/pakout/auth/sxk",
             headers: {'token': localStorage.getItem('token')},
             contentType: 'application/json;charset=UTF-8',
             data: JSON.stringify(tableCache),

--
Gitblit v1.9.1