From bfa307fb0fe82ce6f5a2ea354fcee43d9d1f0fa1 Mon Sep 17 00:00:00 2001
From: skyouc <creaycat@gmail.com>
Date: 星期一, 13 四月 2026 09:53:06 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/system/entity/license/LicenseCheckListener.java |   30 +-
 src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java       |    4 
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java          |   74 +++---
 src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java         |    4 
 src/main/resources/mapper/LocDetlMapper.xml                          |    4 
 src/main/resources/mapper/LocMastMapper.xml                          |   11 +
 src/main/java/com/zy/asrs/controller/MobileController.java           |   14 -
 src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java       |   11 
 src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java          |   40 ++-
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java          |   18 +
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java                  |    2 
 src/main/java/com/zy/asrs/service/StaDescService.java                |    2 
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java        |  237 +++++++++++++----------
 src/main/resources/application-dev.yml                               |    4 
 src/main/java/com/zy/asrs/service/LocMastService.java                |    2 
 src/main/java/com/zy/common/service/CommonService.java               |   92 +++++++++
 src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java       |   14 +
 src/main/webapp/static/js/orderPakout/agvOut.js                      |    4 
 18 files changed, 368 insertions(+), 199 deletions(-)

diff --git a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
index 8f74d13..53cff31 100644
--- a/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -463,7 +463,7 @@
         }
 
         newOrder.setUuid(generateUUID(params));
-        newOrder.setShipName(type);
+        newOrder.setShipName(params.getType());
         // 娴佹按鍙凤紙鍞竴锛�
         newOrder.setDefNumber(params.getKopen_id());
         newOrder.setTargetLocation(params.getTarget_location());
@@ -483,12 +483,13 @@
             throw new RuntimeException("鏂板璁㈠崟澶辫触锛侊紒");
         }
         if (!Objects.isNull(params.getDetails()) && !params.getDetails().isEmpty()) {
+            List<OrderDetl> orderDetls = new ArrayList<>();
             params.getDetails().forEach(item -> {
                 Mat matnr = matService.selectOne(new EntityWrapper<Mat>()
                         .eq("supp_code", item.getPro_id())
                         .eq("matnr", item.getPro_komcode()));
                 if (Objects.isNull(matnr)) {
-                    throw new CoolException("鐗╂枡缂栫爜涓嶅瓨鍦紒锛�");
+                    throw new CoolException(item.getPro_komcode() + "锛岀墿鏂欑紪鐮佷笉瀛樺湪锛岃缁存姢鍚庡啀鎺ㄩ�侊紒锛�");
                 }
                 OrderDetl orderItem = new OrderDetl();
                 BeanUtils.copyProperties(matnr, orderItem);
@@ -528,7 +529,11 @@
                 orderItem.setSuppCode(item.getPro_id());
                 orderItem.setCreateTime(new Date());
                 orderItem.setUpdateTime(new Date());
-                if (!orderDetlService.insert(orderItem)) {
+                orderDetls.add(orderItem);
+            });
+
+            orderDetls.forEach(orderDetl -> {
+                if (!orderDetlService.insert(orderDetl)) {
                     throw new CoolException("璁㈠崟鏄庣粏鏂板澶辫触锛侊紒");
                 }
             });
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 18bcdf0..fe538ae 100644
--- a/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
+++ b/src/main/java/com/zy/api/service/impl/WcsApiServiceImpl.java
@@ -223,9 +223,9 @@
                             }
                         }
                         mast.setWrkSts(4L);
-                    } else if ((mast.getIoType() == 54 || mast.getIoType() == 57) ) {
+                    } else if ((mast.getIoType() == 54 || mast.getIoType() == 57) && !Objects.isNull(json) && json.getInteger("ioType") == 1 ) {
                         mast.setWrkSts(4L);
-                    } else if (mast.getIoType() != 53 ) {
+                    } else if (mast.getIoType() != 53 && mast.getIoType() != 54 && mast.getIoType() != 57) {
                         mast.setWrkSts(4L);
                     }
                 }
diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index e2c8ccc..7cba353 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -222,15 +222,8 @@
         return mobileService.callAgvMove(params, getUserId());
     }
 
-    /**
-     * SO/EO鍏ュ簱
-     * @author Ryan
-     * @date 2026/4/3 14:53
-     * @param params 
-     * @return com.core.common.R
-     */
     @PostMapping("/collection/agv/call")
-    @ApiOperation("SO/EO鍏ュ簱")
+    @ApiOperation("闆嗚揣鍖哄叆搴�")
     @ManagerAuth
     public R CollectionInCall(@RequestBody AgvCallParams params) {
         if (Objects.isNull(params)) {
@@ -384,7 +377,7 @@
     }
 
     /**
-     * 绌烘澘鍑哄簱
+     * 鍛煎彨绔嬪簱绌烘澘鍑哄簱
      * @param params
      * @return
      */
@@ -461,7 +454,7 @@
     /**
      * @author Ryan
      * @date 2025/9/24
-     * @description: 鍛煎彨AGV杩斿洖
+     * @description: 鍛煎彨AGV杩斿洖/绌鸿溅鍥炲簱
      * @version 1.0
      */
     @ManagerAuth(memo = "鍛煎彨AGV杩斿洖")
@@ -475,6 +468,7 @@
 
 
 
+
     @ManagerAuth(memo = "缂撳啿搴撶‘璁や笂鏋�(妯℃嫙鐗╃悊鎸夐挳)")
     @RequestMapping("/cache/comb/pub")
     public R cacheCombPub(@RequestBody CompleteParam combParam) {
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 30fdc9e..4962af8 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -63,5 +63,5 @@
      */
     String findFirstFrozenLocNo(@Param("locNoList") List<String> locNoList);
 
-    LocMast selectNotFull(@Param("locType")Long locType, @Param("id")Long id);
+    LocMast selectNotFull(@Param("locType")Long locType, @Param("id")Long id, @Param("locs") List<String> locs);
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 23905c8..d84d91d 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -71,5 +71,5 @@
      * @param id
      * @return com.zy.asrs.entity.LocMast
      */
-    LocMast selectNotFull(Long locType, Long id);
+    LocMast selectNotFull(Long locType, Long id, List<String> locs);
 }
diff --git a/src/main/java/com/zy/asrs/service/StaDescService.java b/src/main/java/com/zy/asrs/service/StaDescService.java
index 13d18b8..1289282 100644
--- a/src/main/java/com/zy/asrs/service/StaDescService.java
+++ b/src/main/java/com/zy/asrs/service/StaDescService.java
@@ -1,6 +1,7 @@
 package com.zy.asrs.service;
 
 import com.baomidou.mybatisplus.service.IService;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.StaDesc;
 
 import java.util.List;
@@ -15,4 +16,5 @@
 
     StaDesc queryCrnStn(Integer crnNo);
 
+    StaDesc queryCrnStnByLoc(Integer ioType, LocMast locMast, Integer outSta);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index a728106..406ea43 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -119,8 +119,8 @@
     }
 
     @Override
-    public LocMast selectNotFull(Long locType, Long id) {
-        return this.baseMapper.selectNotFull(locType, id);
+    public LocMast selectNotFull(Long locType, Long id, List<String> locs) {
+        return this.baseMapper.selectNotFull(locType, id, locs );
     }
 
     @Override
diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
index 78c07c3..33137f2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1454,7 +1454,13 @@
                     .eq("ctn_type", mat.getTagId())
                     .eq("dev_no", params.getTarSite()));
             if (Objects.isNull(station)) {
+//                throw new CoolException("锛侊紒");
                 continue;
+            }
+
+            Task task = taskService.selectOne(new EntityWrapper<Task>().eq("source_sta_no", station.getDevNo()).or().eq("sta_no", station.getDevNo()));
+            if (!Objects.isNull(task)) {
+                throw new CoolException("褰撳墠绔欑偣涓婁竴涓换鍔℃湭瀹屾垚锛侊紒");
             }
 
             /**鐢熸垚缂撳瓨鍖哄嚭搴撲换鍔�*/
@@ -1485,7 +1491,8 @@
 
         List<LocCache> locCaches = locCacheService.selectList(new EntityWrapper<LocCache>()
                 .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
-                .eq("area_id", basAreas.getId()));
+                .eq("area_id", basAreas.getId())
+                .orderAsc(Arrays.asList("modi_time")));
         if (locCaches.isEmpty()) {
             throw new CoolException("鏆傛棤绌烘澘搴撲綅");
         }
@@ -1508,12 +1515,10 @@
         if (Objects.isNull(params.getOrgSite())) {
             throw new CoolException("婧愮珯鐐逛笉鑳戒负绌猴紒锛�");
         }
-
         BasAreas basAreas = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("name", params.getTarSite()));
         if (Objects.isNull(basAreas)) {
             return R.error("绔欑偣涓嶅瓨鍦紝璇锋鏌ョ珯鐐规槸鍚﹁緭鍏ユ纭紒锛�");
         }
-
         List<LocCache> locCaches = locCacheService.selectList(new EntityWrapper<LocCache>()
                 .in("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
                 .eq("area_id", basAreas.getId()));
@@ -1591,15 +1596,11 @@
         });
 
         // 淇敼鐩爣搴撲綅鐘舵��
-        if (loc.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
-            loc.setLocSts(LocStsType.LOC_STS_TYPE_S.type); // S.鍏ュ簱棰勭害
-            loc.setModiTime(new Date());
-            loc.setModiUser(userId);
-            if (!locCacheService.update(loc, new EntityWrapper<LocCache>().eq("loc_no", loc.getLocNo()))) {
-                throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-            }
-        } else {
-            throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + loc.getLocSts$());
+        loc.setLocSts(LocStsType.LOC_STS_TYPE_S.type); // S.鍏ュ簱棰勭害
+        loc.setModiTime(new Date());
+        loc.setModiUser(userId);
+        if (!locCacheService.update(loc, new EntityWrapper<LocCache>().eq("loc_no", loc.getLocNo()))) {
+            throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
         }
 
         // 淇敼鍘熺珯鐐逛俊鎭�
@@ -1883,36 +1884,41 @@
         if (Cools.isEmpty(basStation)) {
             throw new CoolException("璇疯緭鍏ユ纭殑绔欑偣鍙�");
         }
-
-        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", params.getOrgBarcode()));
-        if (Objects.isNull(wrkMast)) {
-            throw new CoolException("鍑哄簱浠诲姟妗d俊鎭笉瀛樺湪锛侊紒");
-        }
-
-        for (CollectionPakinParams.CombMat combMat : params.getCombMats()) {
-            if (combMat.getWorkQty().compareTo(BigDecimal.ZERO) == 0) {
-                continue;
+        if (basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type) || basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_F.type)) {
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", params.getOrgBarcode()));
+            if (Objects.isNull(wrkMast)) {
+                throw new CoolException("鍑哄簱浠诲姟妗d俊鎭笉瀛樺湪锛侊紒");
             }
 
-            OrderPakin orderPakin = orderPakinService.selectByNo(combMat.getOrderNo());
-            if (Cools.isEmpty(orderPakin)) {
-                throw new CoolException("鏈壘鍒板璐у叆搴撳崟");
-            }
+            for (CollectionPakinParams.CombMat combMat : params.getCombMats()) {
+                if (combMat.getWorkQty().compareTo(BigDecimal.ZERO) == 0) {
+                    continue;
+                }
 
-            UpdateDetailsOfPakin(orderPakin, combMat);
+                OrderPakin orderPakin = orderPakinService.selectByNo(combMat.getOrderNo());
+                if (Cools.isEmpty(orderPakin)) {
+                    throw new CoolException("鏈壘鍒板璐у叆搴撳崟");
+                }
 
-            BasStationDetl basStationDetl = basStationDetlService.selectOne(new EntityWrapper<BasStationDetl>()
-                    .eq("dev_no", basStation.getDevNo())
-                    .eq("matnr", combMat.getMatnr())
-                    .eq("order_no", combMat.getOrderNo())
-                    .eq(!Cools.isEmpty(combMat.getBatch()), "batch", combMat.getBatch())
-                    .eq(!Cools.isEmpty(combMat.getStandby1()), "standby1", combMat.getStandby1()));
+                try {
+                    UpdateDetailsOfPakin(orderPakin, combMat);
+                } catch (Exception e) {
+                    log.error(e.getMessage());
+                    throw new CoolException(e.getMessage());
+                }
+
+                BasStationDetl basStationDetl = basStationDetlService.selectOne(new EntityWrapper<BasStationDetl>()
+                        .eq("dev_no", basStation.getDevNo())
+                        .eq("matnr", combMat.getMatnr())
+                        .eq("order_no", combMat.getOrderNo())
+                        .eq(!Cools.isEmpty(combMat.getBatch()), "batch", combMat.getBatch())
+                        .eq(!Cools.isEmpty(combMat.getStandby1()), "standby1", combMat.getStandby1()));
 
 
-            Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>()
-                    .eq("wrk_no", wrkMast.getWrkNo())
-                    .eq("matnr", combMat.getMatnr())
-                    .eq("supp_coode", combMat.getStandby1());
+                Wrapper<WrkDetl> wrapper = new EntityWrapper<WrkDetl>()
+                        .eq("wrk_no", wrkMast.getWrkNo())
+                        .eq("matnr", combMat.getMatnr())
+                        .eq("supp_coode", combMat.getStandby1());
 ////                    .eq(!Objects.isNull(params.getBoxType1()), "boxType1", params.getBoxType1())
 //
 //            if (!Objects.isNull(params.getBoxType1())) {
@@ -1921,42 +1927,45 @@
 
 //            WrkDetl wrkDetl = wrkDetlService.selectOne(wrapper);
 
-            if (Cools.isEmpty(basStationDetl)) {
-                basStationDetl = new BasStationDetl();
-                Mat mat = matService.selectByMatnr(combMat.getMatnr());
-                BeanUtils.copyProperties(mat, basStationDetl);
-                basStationDetl
-                        .setId(null)
-                        .setOrderNo(orderPakin.getOrderNo())
-                        .setDevNo(basStation.getDevNo())
-                        .setBarcode(params.getTarBarcode())
-                        .setZpallet(params.getTarBarcode())
-                        .setBatch(combMat.getBatch())
-                        .setBoxType1(params.getBoxType1())
-                        .setSuppCode(combMat.getStandby1())
-                        .setStandby1(combMat.getStandby1())
-                        .setAnfme(combMat.getWorkQty().doubleValue());
+                if (Cools.isEmpty(basStationDetl)) {
+                    basStationDetl = new BasStationDetl();
+                    Mat mat = matService.selectByMatnr(combMat.getMatnr());
+                    BeanUtils.copyProperties(mat, basStationDetl);
+                    basStationDetl
+                            .setId(null)
+                            .setOrderNo(orderPakin.getOrderNo())
+                            .setDevNo(basStation.getDevNo())
+                            .setBarcode(params.getTarBarcode())
+                            .setZpallet(params.getTarBarcode())
+                            .setBatch(combMat.getBatch())
+                            .setBoxType1(params.getBoxType1())
+                            .setSuppCode(combMat.getStandby1())
+                            .setStandby1(combMat.getStandby1())
+                            .setAnfme(combMat.getWorkQty().doubleValue());
 
 //                if (!Objects.isNull(wrkDetl) && !wrkDetl.getMatnr().equals(combMat.getMatnr())) {
 //                    throw new CoolException("璇锋鏌ラ殧灞傛槸鍚︾粦瀹氭纭紒锛�");
 //                }
-                if (!basStationDetlService.insert(basStationDetl)) {
-                    throw new CoolException("鎻掑叆鏄庣粏澶辫触");
-                }
+                    if (!basStationDetlService.insert(basStationDetl)) {
+                        throw new CoolException("鎻掑叆鏄庣粏澶辫触");
+                    }
 
-            } else {
-                BigDecimal anfme = new BigDecimal(basStationDetl.getAnfme().toString()).add(combMat.getWorkQty());
-                basStationDetl.setAnfme(anfme.doubleValue());
-                if (!basStationDetlService.updateById(basStationDetl)) {
-                    throw new CoolException("鏇存柊鏄庣粏鏁版嵁澶辫触");
+                } else {
+                    BigDecimal anfme = new BigDecimal(basStationDetl.getAnfme().toString()).add(combMat.getWorkQty());
+                    basStationDetl.setAnfme(anfme.doubleValue());
+                    if (!basStationDetlService.updateById(basStationDetl)) {
+                        throw new CoolException("鏇存柊鏄庣粏鏁版嵁澶辫触");
+                    }
                 }
             }
-        }
-        if (basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)
-                || basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
-            basStation.setBarcode(params.getTarBarcode());
-            basStation.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
-            basStationService.updateById(basStation);
+            if (basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_D.type)
+                    || basStation.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+                basStation.setBarcode(params.getTarBarcode());
+                basStation.setLocSts(LocStsType.LOC_STS_TYPE_F.type);
+                basStationService.updateById(basStation);
+            }
+        } else {
+            throw new CoolException("褰撳墠绔欑偣涓嶆槸鍦ㄥ簱鐘舵�侊紝鏃犳硶缁戝畾鍙拌溅锛侊紒");
         }
 
         return R.ok();
@@ -2296,7 +2305,12 @@
                     });
                 } else {
                     // 鑾峰彇褰撳墠渚涘簲鍟�+ 鐗╂枡鍦ㄥ簱
-                    LocMast notFullList = locMastService.selectNotFull(mats.getLocType(), one.getId());
+                    List<String> locs = new ArrayList<>();
+                    if (!locMasts.isEmpty()) {
+                        locs = locMasts.stream().map(CrnTaskDetlDTO::getLocNo).collect(Collectors.toList());
+                    }
+
+                    LocMast notFullList = locMastService.selectNotFull(mats.getLocType(), one.getId(), locs);
                     if (Objects.isNull(notFullList)) {
                         continue;
                     }
@@ -2305,6 +2319,11 @@
                     if (Objects.isNull(container)) {
                         throw new CoolException("鏁版嵁閿欒锛屽鍣ㄤ笉瀛樺湪锛侊紒");
                     }
+//                    notFullList.setLocSts(LocStsType.LOC_STS_TYPE_R.type);
+//                    if (!locMastService.update(notFullList, new EntityWrapper<LocMast>().eq("loc_no", notFullList.getLocNo()))) {
+//                        throw new CoolException("棰勭害鍑哄簱澶辫触锛侊紒");
+//                    }
+
                     List<LocDetl> adetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", notFullList.getLocNo()));
                     Set<String> sets = adetls.stream().map(LocDetl::getMatnr).collect(Collectors.toSet());
                     List<LocDetl> locDtls = new ArrayList<>();
@@ -2335,13 +2354,17 @@
                 }
             }
         });
-
+        Integer whyType = 2;
+        if (station.getId().equals(124L) || station.getId().equals(125L)) {
+            whyType = 1;
+        }
         /**鏄惁浼樺厛绌烘澘鍑哄簱*/
         Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "OutStockOrderByEmpty"));
         if (!Objects.isNull(config) && Boolean.parseBoolean(config.getValue())) {
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                     // todo 鏍规嵁鐗╂枡绉嶇被,鍖哄垎搴撳尯绫诲瀷
                     .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
+                    .eq("whs_type", whyType)
                     .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
                     .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
 
@@ -2361,6 +2384,7 @@
                 LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>()
                         // todo 鏍规嵁鐗╂枡绉嶇被,鍖哄垎搴撳尯绫诲瀷
                         .eq("loc_sts", LocStsType.LOC_STS_TYPE_D.type)
+                        .eq("whs_type", whyType)
                         .orderAsc(Arrays.asList("row1", "bay1", "lev1"))
                         .last("OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY"));
 
@@ -2399,7 +2423,8 @@
             if (Cools.isEmpty(wrkMast1)) {
                 Integer outSta = devp.getDevNo();
                 // 鑾峰彇璺緞
-                StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+                StaDesc staDesc = staDescService.queryCrnStnByLoc(ioType, locMast, outSta);
+//                StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
 
                 // 鐢熸垚宸ヤ綔妗�
                 WrkMast wrkMast = new WrkMast();
@@ -2529,22 +2554,22 @@
         loc.setModiUser(userId);
         loc.setModiTime(new Date());
 
-//        if (!) {
-//            throw new CoolException("鏇存柊搴撲綅鐘舵�佷俊鎭紒锛�");
-//        }
-        locCacheService.update(loc, new EntityWrapper<LocCache>().eq("loc_no", loc.getLocNo()));
+        if (!locCacheService.update(loc, new EntityWrapper<LocCache>().eq("loc_no", loc.getLocNo()))) {
+            throw new CoolException("鏇存柊搴撲綅鐘舵�佷俊鎭紒锛�");
+        }
 
         // 淇敼鐩爣绔欑偣淇℃伅
-        if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
-            station.setLocSts(LocStsType.LOC_STS_TYPE_S.type); // S.鍏ュ簱棰勭害
-            station.setModiTime(new Date());
-            station.setModiUser(userId);
-            if (!basStationService.updateById(station)) {
-                throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
-            }
-        } else {
-            log.error("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + station.getLocSts());
+//        if (station.getLocSts().equals(LocStsType.LOC_STS_TYPE_O.type)) {
+//
+//        } else {
+//            log.error("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + station.getLocSts());
 //            throw new CoolException("绉昏浆澶辫触锛岀洰鏍囧簱浣嶇姸鎬侊細" + station.getLocSts());
+//        }
+        station.setLocSts(LocStsType.LOC_STS_TYPE_S.type); // S.鍏ュ簱棰勭害
+        station.setModiTime(new Date());
+        station.setModiUser(userId);
+        if (!basStationService.updateById(station)) {
+            throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
         }
     }
 
@@ -2651,6 +2676,7 @@
             // 淇敼鐩爣搴撲綅鐘舵��
             loc.setLocSts(LocStsType.LOC_STS_TYPE_D.type); // S.鍏ュ簱棰勭害
             loc.setModiTime(new Date());
+            loc.setBarcode(barcode);
             loc.setModiUser(userId);
             if (!locCacheService.update(loc, new EntityWrapper<LocCache>().eq("loc_no", loc.getLocNo()))) {
                 throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
@@ -2661,11 +2687,12 @@
             if (Objects.isNull(station)) {
                 throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
             }
-            station.setLocSts("O");
-            station.setBarcode(barcode);
+
+            station.setLocSts(LocStsType.LOC_STS_TYPE_O.type); // S.鍏ュ簱棰勭害
+            station.setBarcode("");
             station.setModiTime(new Date());
             station.setModiUser(userId);
-            if (!basStationService.updateById(station)) {
+            if (!basStationService.update(station, new EntityWrapper<BasStation>().eq("dev_no", orgSite))) {
                 throw new CoolException("鏇存柊鐩爣搴撲綅鐘舵�佸け璐�");
             }
             basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
@@ -2753,13 +2780,9 @@
         if (Objects.isNull(station)) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
         }
-        try {
-            //绌哄彴杞﹀洖搴�
-            generateAgvTask("agv_back", locCache, callAgvBackParam.getOrgSite(), station.getBarcode(), userId, "M2");
-        } catch (Exception e) {
-            log.error(e.getMessage());
-            throw new CoolException(e.getMessage());
-        }
+
+        //绌哄彴杞﹀洖搴�
+        generateAgvTask("agv_back", locCache, callAgvBackParam.getOrgSite(), station.getBarcode(), userId, "M2");
 
         return R.ok(locCache);
     }
@@ -3024,14 +3047,28 @@
                 .eq("dev_no", params.getOrgSite())
                 .eq("barcode", params.getCarBarcode()));
         if (Objects.isNull(station)) {
-            throw new CoolException("鍙拌溅涓庣珯鐐圭粦瀹氬叧绯讳笉瀛樺湪锛岃鑱旂郴绠$悊鍛橈紒");
+            LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("dev_no", params.getOrgSite()));
+            if (!Objects.isNull(locCache)) {
+                BasAreas whsTypeId = basAreasService.selectOne(new EntityWrapper<BasAreas>().eq("whs_type_id", LocAreaType.LOC_AREA_TYPE_IN_CACHE.type));
+                if (Objects.isNull(whsTypeId)) {
+                    throw new CoolException("搴撳尯涓嶅瓨鍦紒锛�");
+                }
+                List<LocDetl>  locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
+                                .eq("area_id", whsTypeId.getId())
+                        .eq("dev_no", params.getOrgSite()));
+                if (!locDetls.isEmpty()) {
+                    return R.ok().add(locDetls);
+                }
+            }
+        } else {
+            List<BasStationDetl> stationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>()
+                    .like(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
+                    .eq("dev_no", station.getDevNo()));
+            if (!stationDetls.isEmpty()) {
+                return R.ok().add(stationDetls);
+            }
         }
-        List<BasStationDetl> stationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>()
-                .like(!Cools.isEmpty(params.getMatnr()), "matnr", params.getMatnr())
-                .eq("dev_no", station.getDevNo()));
-        if (!stationDetls.isEmpty()) {
-            return R.ok().add(stationDetls);
-        }
+
         return R.ok();
     }
 
@@ -3119,7 +3156,7 @@
                     }
                 }
             } else {
-                throw new CoolException("璁㈠崟鏄庣粏缁戝畾鍏崇郴涓嶅瓨鍦ㄦ垨宸插畬鎴愬叆搴擄紒锛�");
+                throw new CoolException("璁㈠崟鏄庣粏缁戝畾鍏崇郴涓嶅瓨鍦紒锛�");
             }
         }
         return R.ok();
@@ -3235,8 +3272,8 @@
                                     detl.setSupp(combMat.getSuppCode());
                                     if (!taskDetlService.update(detl, new EntityWrapper<TaskDetl>()
                                             .eq("matnr", detl.getMatnr())
-                                            .eq("order_no", detl.getOrderNo())
                                             .eq("supp_code", detl.getSuppCode())
+                                            .eq("order_no", detl.getOrderNo())
                                             .eq("wrk_no", task.getWrkNo()))) {
                                         throw new CoolException("浠诲姟鍙蜂俊鎭洿鏂板け璐ワ紒锛�");
                                     }
diff --git a/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
index 1b995a3..32f3ec8 100644
--- a/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.core.common.Cools;
 import com.core.exception.CoolException;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.StaDesc;
 import com.zy.asrs.mapper.StaDescMapper;
 import com.zy.asrs.service.StaDescService;
@@ -21,6 +22,19 @@
     }
 
     @Override
+    public StaDesc queryCrnStnByLoc(Integer typeNo, LocMast crnNo, Integer stnNo) {
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", typeNo)
+                .eq("stn_no", stnNo)
+                .eq("crn_no", crnNo.getCrnNo());
+        StaDesc staDesc = this.selectOne(wrapper);
+        if (staDesc == null) {
+            throw new CoolException(crnNo.getLocNo() +  ",鍑哄簱璺緞涓嶅瓨鍦�");
+        }
+        return staDesc;
+    }
+
+    @Override
     public StaDesc queryCrnStn(Integer typeNo, Integer crnNo, Integer stnNo) {
         Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
                 .eq("type_no", typeNo)
diff --git a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
index 48541f9..46203c1 100644
--- a/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/TaskServiceImpl.java
@@ -164,18 +164,18 @@
             locNo = wrkMast.getLocNo();
             locSts = "O";
 
-//            // 搴撲綅杞Щ
-//            if (wrkMast.getIoType() == 11) {
-//                // 搴撲綅杞Щ锛氭簮搴撲綅
-//                LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getSourceLocNo()));
-//                if (Cools.isEmpty(locMast)) {
-//                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
-//                }
-//                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F");
-//                locMast.setModiTime(now);
-//                locMast.setModiUser(userId);
-//                locCacheService.update(locMast, new EntityWrapper<LocCache>().eq("loc_no", locMast.getLocNo()));
-//            }
+            // 搴撲綅杞Щ
+            if (wrkMast.getIoType() == 11) {
+                // 搴撲綅杞Щ锛氭簮搴撲綅
+                LocCache locMast = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getSourceLocNo()));
+                if (Cools.isEmpty(locMast)) {
+                    throw new CoolException("鍙栨秷搴撲綅杞Щ澶辫触锛屾簮搴撲綅涓嶅瓨鍦�:" + wrkMast.getSourceLocNo());
+                }
+                locMast.setLocSts(wrkMast.getFullPlt().equalsIgnoreCase("N") ? "D" : "F");
+                locMast.setModiTime(now);
+                locMast.setModiUser(userId);
+                locCacheService.update(locMast, new EntityWrapper<LocCache>().eq("loc_no", locMast.getLocNo()));
+            }
 
             BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getSourceStaNo()));
             if (station.getLocSts().equals("R")) {
@@ -213,12 +213,16 @@
             }
 
             BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", wrkMast.getStaNo()));
-            station.setLocSts("O");
-            station.setBarcode("");
-            station.setModiTime(new Date());
-            station.setModiUser(userId);
-            if (!basStationService.updateById(station)) {
-                throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐�");
+            if (station.getLocSts().equals("S")) {
+                station.setLocSts("O");
+                station.setBarcode("");
+                station.setModiTime(new Date());
+                station.setModiUser(userId);
+                if (!basStationService.updateById(station)) {
+                    throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐�");
+                }
+            } else {
+                throw new CoolException("鏇存柊婧愮珯鐐圭姸鎬佸け璐ワ紝鐩爣搴撲綅鐘舵�侊細" + station.getLocSts());
             }
         } else if (wrkMast.getIoType() == 1) {
             List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
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 0703a78..2cd5fe5 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -1544,7 +1544,23 @@
         wrkMast.setIoType(wrkMast.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
         wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
         wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 婧愮珯
-//        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+//        if (wrkMast.getIoType() == 107) {
+//            // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+//            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getSourceLocNo()));
+//            if (Cools.isEmpty(locMast)) {
+//                throw new CoolException("搴撲綅涓嶅瓨鍦�:" + wrkMast.getLocNo());
+//            }
+//            locMastService.selectOne(new EntityWrapper<LocMast>()
+//                            .eq("loc_sts", )
+//                    .eq("whs_type", locMast.getWhsType()));
+//
+//
+//        } else {
+//            //        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
+//            wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
+//            wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+//        }
+        //        wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
         wrkMast.setLocNo(wrkMast.getSourceLocNo()); // 鐩爣搴撲綅 = 鍑哄簱鏃剁殑婧愬簱浣�
         wrkMast.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
         wrkMast.setModiTime(now);
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
index db16ddc..55bb2db 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -185,23 +185,19 @@
                                     wrkDetl.getStandby3(),
                                     wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3());
                         }
-                        try {
-                            if (!Cools.isEmpty(orderDetlPakin)) {
-                                if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
-                                        wrkDetl.getMatnr(),
-                                        orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
-                                        wrkDetl.getStandby2(), wrkDetl.getStandby3(),
-                                        wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(),
-                                        wrkDetl.getAnfme())) {
-                                    // exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
-                                    // wrkMast.getWrkNo(), wrkMast.getLocNo());
-                                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                    return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo()
-                                            + "],[locNo=" + wrkMast.getLocNo() + "]");
-                                }
+                        if (!Cools.isEmpty(orderDetlPakin)) {
+                            if (!orderDetlPakinService.increaseQtyByOrderNo(wrkDetl.getOrderNo(),
+                                    wrkDetl.getMatnr(),
+                                    orderDetlPakin.getBatch(), wrkDetl.getBrand(), wrkDetl.getStandby1(),
+                                    wrkDetl.getStandby2(), wrkDetl.getStandby3(),
+                                    wrkDetl.getBoxType1(), wrkDetl.getBoxType2(), wrkDetl.getBoxType3(),
+                                    wrkDetl.getAnfme())) {
+                                // exceptionHandle("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触锛沎workNo={0}],[locNo={1}]",
+                                // wrkMast.getWrkNo(), wrkMast.getLocNo());
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return FAIL.setMsg("鍏ㄦ澘鍏ュ簱 ===>> 鏇存柊璁㈠崟瀹屾垚鏁伴噺澶辫触; [workNo=" + wrkMast.getWrkNo()
+                                        + "],[locNo=" + wrkMast.getLocNo() + "]");
                             }
-                        } catch (Exception ignore) {
-
                         }
                     }
                     // 淇敼搴撲綅鐘舵�� S ====>> F
@@ -452,27 +448,27 @@
                         }
                     }
 
-                    String agvSta = null;
-                    if (wrkMast.getIoType().equals(TaskIOType.MERGE_IN.type)) {
-                        agvSta = wrkMast.getPauseMk();
-                    }
-                    List<BasStationDetl> basStationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>().eq("dev_no", agvSta));
-                    if (Objects.isNull(basStationDetls) || basStationDetls.isEmpty()) {
-                        // . 鍒犻櫎缂撳瓨绔欑偣鏄庣粏
-                        if (!Objects.isNull(agvSta)) {
-                            // 淇敼鐩爣绔欑偣淇℃伅
-                            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", agvSta));
-                            if (Objects.isNull(station)) {
-                                throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
-                            }
-                            basStationDetlService.delete(new EntityWrapper<BasStationDetl>()
-                                    .eq("dev_no", station.getDevNo()));
-                            station.setLocSts(LocStsType.LOC_STS_TYPE_D.type);
-                            if (!basStationService.updateById(station)) {
-                                throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
-                            }
-                        }
-                    }
+//                    String agvSta = null;
+//                    if (wrkMast.getIoType().equals(TaskIOType.MERGE_IN.type)) {
+//                        agvSta = wrkMast.getPauseMk();
+//                    }
+//                    List<BasStationDetl> basStationDetls = basStationDetlService.selectList(new EntityWrapper<BasStationDetl>().eq("dev_no", agvSta));
+//                    if (Objects.isNull(basStationDetls) || basStationDetls.isEmpty()) {
+//                        // . 鍒犻櫎缂撳瓨绔欑偣鏄庣粏
+//                        if (!Objects.isNull(agvSta)) {
+//                            // 淇敼鐩爣绔欑偣淇℃伅
+//                            BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>().eq("dev_no", agvSta));
+//                            if (Objects.isNull(station)) {
+//                                throw new CoolException("绔欑偣涓嶅瓨鍦�!!");
+//                            }
+//                            basStationDetlService.delete(new EntityWrapper<BasStationDetl>()
+//                                    .eq("dev_no", station.getDevNo()));
+//                            station.setLocSts(LocStsType.LOC_STS_TYPE_D.type);
+//                            if (!basStationService.updateById(station)) {
+//                                throw new CoolException("绔欑偣鐘舵�佹洿鏂板け璐ワ紒锛�");
+//                            }
+//                        }
+//                    }
                     break;
                 // 鐩樼偣鍏ュ簱
                 case 57:
@@ -1081,6 +1077,7 @@
             }
             return SUCCESS;
         }
+
         if (wrkMast.getTaskType().equals("agv_back")) {
             wrkMast.setWrkSts(TaskStatusType.AGV_INVENTORY_UPDATED_IN.type);
             wrkMast.setModiTime(new Date());
@@ -1089,6 +1086,7 @@
             }
             return SUCCESS;
         }
+
         LocCache locCache = locCacheService.selectOne(new EntityWrapper<LocCache>().eq("loc_no", wrkMast.getLocNo()));
         if (!Objects.isNull(wrkMast.getSourceStaNo())) {
             BasStation station = basStationService.selectOne(new EntityWrapper<BasStation>()
@@ -1099,10 +1097,10 @@
                     station.setLocSts(LocStsType.LOC_STS_TYPE_O.type);
                 }
                 station.setBarcode("");
+//                basStationService.updateById(station);
                 if (!basStationService.updateById(station)) {
                     throw new CoolException("绔欑偣鐘舵�佷慨鏀瑰け璐ワ紒锛�");
                 }
-
                 basStationDetlService.delete(new EntityWrapper<BasStationDetl>().eq("dev_no", station.getDevNo()));
             }
         }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 05a3fa9..e41cfae 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -216,7 +216,97 @@
                 .le("row1", rowLastno.geteRow())
                 .eq("loc_type1", locTypeDto.getLocType1())
                 .eq("loc_sts", "O")
-                .orderAsc(Arrays.asList("lev1", "row1", "bay1"));
+                .orderAsc(Arrays.asList( "row1", "bay1","lev1"));
+
+        if (locTypeDto.getLocType1() != 2) {
+            wrapper.eq("crn_no", crnNo);
+        }
+
+        locMast = locMastService.selectOne(wrapper);
+        // int crnCountO = wrkMastService.selectCount(new
+        // EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo;
+        if (whsType == 2) {
+            // 鐢熸垚宸ヤ綔鍙�
+            workNo = getWorkNo(3);
+        } else {
+            // 鐢熸垚宸ヤ綔鍙�
+            workNo = getWorkNo(0);
+        }
+        // 杩斿洖dto
+        startupDto.setWorkNo(workNo);
+        startupDto.setCrnNo(locMast.getCrnNo());
+        startupDto.setSourceStaNo(sourceStaNo);
+        startupDto.setLocNo(locMast.getLocNo());
+        return startupDto;
+    }
+
+
+    public StartupDto getChecklocNoRun(Integer whsType, Integer staDescId, Integer sourceStaNo,
+                                  FindLocNoAttributeVo findLocNoAttributeVo, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+        staDescId = 1;
+        // 鍒濆鍖栧弬鏁�
+        int crnNo = 0; // 鍫嗗灈鏈哄彿
+        int nearRow = 0; // 鏈�娴呭簱浣嶆帓
+        LocMast locMast = null; // 鐩爣搴撲綅
+
+        RowLastno rowLastno = rowLastnoService.selectById(whsType);
+        if (Cools.isEmpty(rowLastno)) {
+            throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�===>搴撲綅瑙勫垯鏈煡");
+        }
+
+        int minCount = Integer.MAX_VALUE;
+        if (whsType == 2) {
+            if (locTypeDto.getLocType1() == 2) {
+                // 鍧囪 鍒嗗竷鍫嗗灈鏈�
+                for (int i = 4; i <= 5; i++) {
+                    int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
+                    if (count < minCount) {
+                        minCount = count;
+                        crnNo = i;
+                    }
+                }
+            } else {
+                for (int i = 4; i <= 6; i++) {
+                    int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
+                    if (count < minCount) {
+                        minCount = count;
+                        crnNo = i;
+                    }
+                }
+
+                if (crnNo == 6) {
+                    return getDoubleLocNoRun(3, 1, sourceStaNo, findLocNoAttributeVo, null, locTypeDto, times);
+                }
+            }
+        } else {
+            // 鍧囪 鍒嗗竷鍫嗗灈鏈�
+            for (int i = rowLastno.getsCrnNo(); i <= rowLastno.geteCrnNo(); i++) {
+                int count = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", i));
+                if (count < minCount) {
+                    minCount = count;
+                    crnNo = i;
+                }
+            }
+        }
+
+        StartupDto startupDto = new StartupDto();
+
+//        new EntityWrapper<LocMast>(new EntityWrapper<LocMast>()
+//                .ge("row1", rowLastno.getsRow())
+//                .le("row1", rowLastno.geteRow())
+//                .eq("crn_no", crnNo)
+//                .eq("loc_type1", locTypeDto.getLocType1())
+//                .eq("loc_sts", "O")
+//                .orderAsc(Arrays.asList("lev1", "row1", "bay1")))
+
+        Wrapper<LocMast> wrapper = new EntityWrapper<LocMast>()
+                .ge("row1", rowLastno.getsRow())
+                .le("row1", rowLastno.geteRow())
+                .eq("loc_type1", locTypeDto.getLocType1())
+                .eq("loc_sts", "O")
+                .orderAsc(Arrays.asList( "row1", "bay1","lev1"));
 
         if (locTypeDto.getLocType1() != 2) {
             wrapper.eq("crn_no", crnNo);
diff --git a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
index 72694f9..1580ed3 100644
--- a/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
+++ b/src/main/java/com/zy/system/entity/license/LicenseCheckListener.java
@@ -89,24 +89,24 @@
                 logger.info("++++++++ 璁稿彲璇佸姞杞界粨鏉� ++++++++");
 
                 logger.info("++++++++ 璁稿彲璇佸姞杞芥爣璁帮紝鎼滅储淇敼 ++++++++");
-                licenseTimer.setSystemSupport(true);
-                licenseTimer.setLicenseDays(9999);
-                return true;
+//                licenseTimer.setSystemSupport(true);
+//                licenseTimer.setLicenseDays(9999);
+//                return true;
 
-//                licenseTimer.setSystemSupport(install!=null);
-//
-//                if (install != null) {
-//                    Date start = new Date();
-//                    Date end = install.getNotAfter();
-//                    Long starTime = start.getTime();
-//                    Long endTime = end.getTime();
-//                    Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
-//                    int day = (int) (num / 24 / 60 / 60 / 1000);
-//                    licenseTimer.setLicenseDays(day);
-//                }
+                licenseTimer.setSystemSupport(install!=null);
+
+                if (install != null) {
+                    Date start = new Date();
+                    Date end = install.getNotAfter();
+                    Long starTime = start.getTime();
+                    Long endTime = end.getTime();
+                    Long num = endTime - starTime;//鏃堕棿鎴崇浉宸殑姣鏁�
+                    int day = (int) (num / 24 / 60 / 60 / 1000);
+                    licenseTimer.setLicenseDays(day);
+                }
 
 
-//                return install != null;
+                return install != null;
             } catch (Exception e) {
                 return false;
             }
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index d63c8bc..be9be1a 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -12,8 +12,8 @@
     driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
     username: sa
     password: sa@123
-#    url: jdbc:sqlserver://192.168.238.32:1433;databasename=jsxsasrs
-    url: jdbc:sqlserver://192.168.4.15:1433;databasename=jsxsasrs
+    url: jdbc:sqlserver://192.168.238.31:1433;databasename=jsxsasrs
+#    url: jdbc:sqlserver://192.168.4.34:1433;databasename=jsxsasrs
   mvc:
     static-path-pattern: /**
   redis:
diff --git a/src/main/resources/mapper/LocDetlMapper.xml b/src/main/resources/mapper/LocDetlMapper.xml
index 36424b1..e27407c 100644
--- a/src/main/resources/mapper/LocDetlMapper.xml
+++ b/src/main/resources/mapper/LocDetlMapper.xml
@@ -318,6 +318,7 @@
 
         <include refid="batchSeqA"></include>
 
+
         <if test="locNos != null and locNos.size > 0">
             and b.loc_no not in
             <foreach item="item" collection="locNos" index="index"  separator="," open="(" close=")">
@@ -336,7 +337,6 @@
             DATEPART( dd, a.modi_time ),
             a.anfme,b.lev1,b.bay1
         ASC
-
     </select>
 
     <select id="queryStockAllCache" resultMap="BaseResultMap">
@@ -360,7 +360,7 @@
         </if>
 
         order by
-        DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
+             DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
         asc,
         NEWID()
 
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 37e4f23..2c59fa9 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -221,7 +221,16 @@
         FROM
             asr_loc_mast
         WHERE
-            barcode IN (SELECT zpallet  FROM asr_loc_detl ald INNER JOIN man_mat mt ON ald.matnr = mt.matnr AND ald.supp_code = mt.supp_code  WHERE mt.loc_type =#{locType}  AND area_id = #{id} GROUP BY zpallet HAVING COUNT ( * ) &lt; 2) ORDER BY loc_no, modi_time ASC
+            barcode IN (SELECT zpallet  FROM asr_loc_detl ald
+                INNER JOIN man_mat mt ON ald.matnr = mt.matnr AND ald.supp_code = mt.supp_code
+                                        WHERE mt.loc_type =#{locType}  AND area_id = #{id} GROUP BY zpallet HAVING COUNT (*) &lt; 2)
+        <if test="locs != null and locs.size > 0" >
+            AND loc_no NOT IN
+            <foreach collection="locs" item="item" index="index" separator="," open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+        ORDER BY loc_no, modi_time ASC
     </select>
 
 </mapper>
diff --git a/src/main/webapp/static/js/orderPakout/agvOut.js b/src/main/webapp/static/js/orderPakout/agvOut.js
index 6a6c368..d4662df 100644
--- a/src/main/webapp/static/js/orderPakout/agvOut.js
+++ b/src/main/webapp/static/js/orderPakout/agvOut.js
@@ -35,10 +35,10 @@
             ,{field: 'matnr', align: 'center',title: '鍟嗗搧缂栫爜', width: 160}
             ,{field: 'maktx', align: 'center',title: '鍟嗗搧鍚嶇О', width: 200}
             ,{field: 'standby1', align: 'center',title: '渚涘簲鍟嗕唬鐮�'}
-            ,{field: 'specs', align: 'center',title: '瑙勬牸',hide: true}
+            ,{field: 'specs', align: 'center',title: '瑙勬牸'}
             ,{field: 'enableQty', align: 'center',title: '寰呭嚭鏁伴噺', style: 'font-weight: bold'}
             ,{field: 'workQty', align: 'center',title: '鎵ц涓�', style: 'font-weight: bold'}
-            ,{field: 'qty', align: 'center',title: '宸插畬鎴�', style: 'font-weight: bold'}
+            ,{field: 'qty', align: 'center',title: '瀹屾垚閲�', style: 'font-weight: bold'}
             ,{field: 'unit', align: 'center',title: '鍗曚綅', hide: true}
             ,{field: 'barcode', align: 'center',title: '鍟嗗搧鏉$爜', hide: true}
             ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width: 160}

--
Gitblit v1.9.1