From fc12e6bbc12d0346076fefe7320e99fd14d13193 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 14 四月 2026 11:10:39 +0800
Subject: [PATCH] wms初始化

---
 src/main/java/com/zy/asrs/task/WcsScheduler.java                     |    2 
 src/main/java/com/zy/system/entity/license/CustomLicenseManager.java |    6 
 src/main/resources/mapper/LocMastMapper.xml                          |    3 
 src/main/java/com/zy/common/web/WcsController.java                   |  217 ++++++++++++--------------
 pom.xml                                                              |    2 
 src/main/java/com/zy/asrs/controller/WorkController.java             |    2 
 src/main/java/com/zy/asrs/task/handler/WcsSchedulerHandler.java      |    2 
 src/main/java/com/zy/common/model/StartupDto.java                    |    2 
 src/main/java/com/zy/asrs/controller/StaDescController.java          |    2 
 src/main/java/com/zy/common/web/param/SearchLocParam.java            |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java          |   30 +-
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java                  |    9 +
 src/main/webapp/static/js/common.js                                  |    2 
 src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java       |   32 ++--
 src/main/java/com/zy/common/service/CommonService.java               |  137 ++++++++++++-----
 src/main/java/com/zy/asrs/entity/StaDesc.java                        |    1 
 16 files changed, 249 insertions(+), 202 deletions(-)

diff --git a/pom.xml b/pom.xml
index 1a00ac1..3617a48 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,7 @@
     </dependencies>
 
     <build>
-        <finalName>wms</finalName>
+        <finalName>nwswms</finalName>
         <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
diff --git a/src/main/java/com/zy/asrs/controller/StaDescController.java b/src/main/java/com/zy/asrs/controller/StaDescController.java
index ca8f537..b1b8416 100644
--- a/src/main/java/com/zy/asrs/controller/StaDescController.java
+++ b/src/main/java/com/zy/asrs/controller/StaDescController.java
@@ -117,7 +117,7 @@
                 wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                 wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
             } else {
-                wrapper.like(entry.getKey(), val);
+                wrapper.eq(entry.getKey(), val);
             }
         }
     }
diff --git a/src/main/java/com/zy/asrs/controller/WorkController.java b/src/main/java/com/zy/asrs/controller/WorkController.java
index 54d3225..8dc2566 100644
--- a/src/main/java/com/zy/asrs/controller/WorkController.java
+++ b/src/main/java/com/zy/asrs/controller/WorkController.java
@@ -176,7 +176,7 @@
     @ManagerAuth(memo = "鐢熸垚浠诲姟")
     public R createWaitPainWrkMastStart(@RequestBody List<WaitPakin> list) {
         StartupDto startupDto = workService.createWaitPainWrkMastStart(list, getUserId());
-        return R.ok("浠诲姟鍙凤細" + startupDto.getTaskNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
+        return R.ok("浠诲姟鍙凤細" + startupDto.getWorkNo() + ";鐩爣搴撲綅锛�" + startupDto.getLocNo());
     }
 
     @RequestMapping("/deal/preHave/start")
diff --git a/src/main/java/com/zy/asrs/entity/StaDesc.java b/src/main/java/com/zy/asrs/entity/StaDesc.java
index d28f047..851e4ad 100644
--- a/src/main/java/com/zy/asrs/entity/StaDesc.java
+++ b/src/main/java/com/zy/asrs/entity/StaDesc.java
@@ -27,7 +27,6 @@
      */
     @ApiModelProperty(value = "璺緞ID")
     @TableId(value = "type_id", type = IdType.AUTO)
-    @TableField("type_id")
     private Long typeId;
 
     /**
diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 5a7d7ae..7b96c22 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -66,4 +66,13 @@
     String findFirstFrozenLocNo(@Param("locNoList") List<String> locNoList);
 
     List<LocMast> selectLocByTypeAndRowsToList(@Param("locType") Integer locType,@Param("rows") List<Integer> rows);
+
+    /**
+     *
+     * 鏍规嵁搴撲綅绫诲瀷鏉ユ悳绱㈢┖搴撲綅(绔欑偣鐨勪笉鍚岄檺鍒跺爢鍨涙満)
+     * @param locType1 0123
+     * @param crnNo 鍫嗗灈鏈哄彿
+     * @return 搴撲綅闆嗗悎
+     */
+    List<LocMast> selectLocByTypeToList(@Param("locType1") int locType1,@Param("crnNo") int crnNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
index c751422..a2267ba 100644
--- a/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/BasDevpServiceImpl.java
@@ -49,24 +49,24 @@
             throw new CoolException(devpNo + "绔欑偣涓嶅瓨鍦�");
         }
         if (pakin) {
-            if(station.getCanining()==null || !station.getAutoing().equals("Y")) {
+            if(station.getCanining()==null || !station.getCanining().equals("Y")) {
                 throw new CoolException(devpNo+"绔欑偣涓嶆槸鑳藉叆鐘舵��");
             }
-//            if (station.getAutoing() == null || !station.getAutoing().equals("Y")) {
-//                throw new CoolException(devpNo + "绔欑偣涓嶆槸鑷姩鐘舵��");
-//            }
-//            if (station.getLoading() == null || !station.getLoading().equals("Y")) {
-//                throw new CoolException(devpNo + "绔欑偣鏃犵墿");
-//            }
-//            if (station.getWrkNo() != null && station.getWrkNo() > 0 && station.getWrkNo() < 9990) {
-//                throw new CoolException(devpNo + "绔欑偣宸叉湁宸ヤ綔鍙�");
-//            }
-//            if(!station.getInEnable().equals("Y")) {
-//                throw new CoolException(devpNo+"绔欑偣涓嶆槸鍙叆鐘舵��");
-//            }
-//            if (wrkMastService.getWorkingMast(devpNo) > 0) {
-//                throw new CoolException(devpNo + "绔欑偣涓嶈兘鍚屾椂鐢熸垚涓ょ瑪鍏ュ簱宸ヤ綔妗�");
-//            }
+            if (station.getAutoing() == null || !station.getAutoing().equals("Y")) {
+                throw new CoolException(devpNo + "绔欑偣涓嶆槸鑷姩鐘舵��");
+            }
+            if (station.getLoading() == null || !station.getLoading().equals("Y")) {
+                throw new CoolException(devpNo + "绔欑偣鏃犵墿");
+            }
+            if (station.getWrkNo() != null && station.getWrkNo() > 0 && station.getWrkNo() < 9990) {
+                throw new CoolException(devpNo + "绔欑偣宸叉湁宸ヤ綔鍙�");
+            }
+            if(!station.getInEnable().equals("Y")) {
+                throw new CoolException(devpNo+"绔欑偣涓嶆槸鍙叆鐘舵��");
+            }
+            if (wrkMastService.getWorkingMast(devpNo) > 0) {
+                throw new CoolException(devpNo + "绔欑偣涓嶈兘鍚屾椂鐢熸垚涓ょ瑪鍏ュ簱宸ヤ綔妗�");
+            }
         }
         return station;
     }
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 e3430a6..05af4b9 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -119,7 +119,7 @@
             throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
         }
         // 鐢熸垚宸ヤ綔鍙�
-        int workNo = dto.getTaskNo();
+        int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -184,7 +184,7 @@
     @Transactional
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         // 鐩爣绔欑偣鐘舵�佹娴�
-//        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -332,7 +332,7 @@
 //            }
 
             // 鑾峰彇璺緞
-//            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
+            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
             // 鐢熸垚宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
             // 鐢熸垚宸ヤ綔妗�
@@ -343,7 +343,7 @@
             wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
             wrkMast.setIoPri(13D); // 浼樺厛绾э細13
             wrkMast.setCrnNo(locMast.getCrnNo());
-            wrkMast.setSourceStaNo("0"); // 婧愮珯
+            wrkMast.setSourceStaNo(staDesc.getCrnStn$()); // 婧愮珯
             wrkMast.setStaNo(String.valueOf(outSta)); // 鐩爣绔�
             wrkMast.setSourceLocNo(dto.getLocNo()); // 婧愬簱浣�
             wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
@@ -494,7 +494,7 @@
         FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
         StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
-        int workNo = dto.getTaskNo();
+        int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -569,15 +569,15 @@
                 throw new CoolException("鎵�閫夊簱浣嶅瓨鍦ㄧ姸鎬佷笉涓篋鐨勫簱浣嶏紝搴撲綅鍙凤細" + locMast.getLocNo() + " 銆佸綋鍓嶇姸鎬侊細" + locMast.getLocSts() + "-" + locMast.getLocSts$());
             }
             // 鑾峰彇婧愮珯
-//            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
-//                    .eq("type_no", 110)
-//                    .eq("stn_no", param.getOutSite())
-//                    .eq("crn_no", locMast.getCrnNo());
-//            StaDesc staDesc = staDescService.selectOne(wrapper);
-//            Integer sourceStaNo = staDesc.getCrnStn();
-//            if (Cools.isEmpty(sourceStaNo)) {
-//                throw new CoolException("妫�绱㈡簮绔欏け璐�");
-//            }
+            Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                    .eq("type_no", 110)
+                    .eq("stn_no", param.getOutSite())
+                    .eq("crn_no", locMast.getCrnNo());
+            StaDesc staDesc = staDescService.selectOne(wrapper);
+            Integer sourceStaNo = staDesc.getCrnStn();
+            if (Cools.isEmpty(sourceStaNo)) {
+                throw new CoolException("妫�绱㈡簮绔欏け璐�");
+            }
             Date now = new Date();
             // 淇濆瓨宸ヤ綔妗�
             WrkMast wrkMast = new WrkMast();
@@ -586,7 +586,7 @@
             wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細11.鐢熸垚鍑哄簱ID
             wrkMast.setIoType(110); // 鍏ュ嚭搴撶姸鎬侊細 110.绌烘澘鍑哄簱
             wrkMast.setIoPri(10D);
-            wrkMast.setSourceStaNo("0"); // 婧愮珯
+            wrkMast.setSourceStaNo(staDesc.getCrnStn$()); // 婧愮珯
             wrkMast.setStaNo(param.getOutSite() + ""); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
diff --git a/src/main/java/com/zy/asrs/task/WcsScheduler.java b/src/main/java/com/zy/asrs/task/WcsScheduler.java
index d6f9456..c44563a 100644
--- a/src/main/java/com/zy/asrs/task/WcsScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WcsScheduler.java
@@ -27,7 +27,7 @@
     /**
      * 瀹氭椂浠诲姟璇诲彇鍑哄簱浠诲姟娲惧彂缁橶CS
      */
-    @Scheduled(cron = "0/10 * * * * ? ")
+//    @Scheduled(cron = "0/10 * * * * ? ")
     private void outboundTaskDispatch() {
         List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().in("io_type", 11, 101, 103, 107, 110).eq("wrk_sts", 11));
         for (WrkMast wrkMast : wrkMastList) {
diff --git a/src/main/java/com/zy/asrs/task/handler/WcsSchedulerHandler.java b/src/main/java/com/zy/asrs/task/handler/WcsSchedulerHandler.java
index 765e985..fdfb64b 100644
--- a/src/main/java/com/zy/asrs/task/handler/WcsSchedulerHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WcsSchedulerHandler.java
@@ -41,7 +41,7 @@
 
     public void outboundTaskDispatch(WrkMast wrkMast) {
         StartupDto startupDto = new StartupDto();
-        startupDto.setTaskNo(wrkMast.getWrkNo());
+        startupDto.setWorkNo(wrkMast.getWrkNo());
         startupDto.setTaskPri(wrkMast.getIoPri());
 
 
diff --git a/src/main/java/com/zy/common/model/StartupDto.java b/src/main/java/com/zy/common/model/StartupDto.java
index a7f7205..a483672 100644
--- a/src/main/java/com/zy/common/model/StartupDto.java
+++ b/src/main/java/com/zy/common/model/StartupDto.java
@@ -16,7 +16,7 @@
 
     private String locNo;
 
-    private Integer taskNo;
+    private Integer workNo;
 
     private Double taskPri;
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 0398d40..f6f6785 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -20,8 +20,8 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.List;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 璐ф灦鏍稿績鍔熻兘
@@ -448,7 +448,7 @@
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = getWorkNo(0);
         // 杩斿洖dto
-        startupDto.setTaskNo(workNo);
+        startupDto.setWorkNo(workNo);
         startupDto.setCrnNo(crnNo);
         startupDto.setSourceStaNo(sourceStaNo);
         startupDto.setLocNo(locNo);
@@ -893,7 +893,7 @@
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = getWorkNo(0);
         // 杩斿洖dto
-        startupDto.setTaskNo(workNo);
+        startupDto.setWorkNo(workNo);
         startupDto.setCrnNo(crnNo);
         startupDto.setSourceStaNo(sourceStaNo);
         startupDto.setLocNo(locNo);
@@ -1006,7 +1006,7 @@
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = getWorkNo(0);
         // 杩斿洖dto
-        startupDto.setTaskNo(workNo);
+        startupDto.setWorkNo(workNo);
         startupDto.setCrnNo(crnNo);
         startupDto.setSourceStaNo(sourceStaNo);
         startupDto.setLocNo(locNo);
@@ -1034,56 +1034,113 @@
         // 瀵绘壘鍒扮殑搴撲綅
         LocMast locMast = null;
 
-        // 鎸夊簱浣嶇被鍨嬭幏鍙栧簱浣�
-        List<LocMast> locMasts = locMastMapper.selectLocByTypeAndRowsToList(locType,rows);
-
-        // todo 濡傛灉褰撳墠绫诲瀷搴撲綅鍓╀綑涓嶅锛屾槸涓�鐩存斁婊★紝杩樻槸鍏煎鍒颁笅涓�绉嶅簱浣嶇被鍨�
-        // 鑰冭檻绉诲簱闇�瑕佸悓绫诲瀷搴撲綅锛岃繖閲岄檺鍒朵笉鑳芥斁婊★紝鍏煎涓嬩竴绉嶅簱浣嶇被鍨�
-        if (locMasts.size() <= 4) {
-            switch (locType) {
-                case 0:
-                    return getLocNoNew(ioType, sourceStaNo, 1,rows);
-                case 1:
-                    return getLocNoNew(ioType, sourceStaNo, 2,rows);
-                case 2:
-                    return getLocNoNew(ioType, sourceStaNo, 3,rows);
-                case 3:
-                    log.warn("褰撳墠搴撲綅鎺掞細{}锛屽墿浣檣}涓敤浜庣Щ搴擄紝鏃犳硶鍗犵敤",rows,locMasts.size());
-                    return null;
-                default:
-            }
+        // 鍙敤鍫嗗灈鏈�
+        List<BasCrnp> basCrnps = basCrnpService.selectList(new EntityWrapper<BasCrnp>().eq("crn_sts", 3).eq("crn_err", 0).eq("in_enable","Y"));
+        if (basCrnps.size() == 0) {
+            log.error("鍏ュ簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
+            throw new CoolException("鍏ュ簱璇锋眰搴撲綅澶辫触锛屾病鏈夎仈鏈哄爢鍨涙満鎴栧爢鍨涙満寮傚父");
         }
 
-        // 鍏堝彇娣卞簱浣�
-        Optional<LocMast> first = locMasts.stream().filter(o -> o.getRow1() == 1 || o.getRow1() == 4 || o.getRow1() == 5 || o.getRow1() == 8|| o.getRow1() == 9 || o.getRow1() == 12).findFirst();
-        if (first.isPresent()) {
-            locMast = first.get();
-        } else {
-            // 娣卞簱浣嶉噷闈㈡病鏈変粠娴呭簱浣嶉噷闈㈠彇
-            Optional<LocMast> first2 = locMasts.stream().filter(o -> o.getRow1() == 2 || o.getRow1() == 3 || o.getRow1() == 6 || o.getRow1() == 7 || o.getRow1() == 10 || o.getRow1() == 11).findFirst();
-            if(first2.isPresent()) {
-                locMast = first2.get();
+        // 涓�娆℃煡鎵�鏈夊爢鍨涙満浠诲姟鏁帮紙group by锛�
+        List<Map<String, Object>> countList = locMastMapper.selectMaps(
+                new EntityWrapper<LocMast>()
+                        .setSqlSelect("crn_no, COUNT(*) AS cnt")
+                        .eq("loc_sts", "S")
+                        .in("crn_no", basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()))
+                        .groupBy("crn_no")
+        );
+
+        // 鍫嗗灈鏈哄搴斾换鍔℃暟
+        Map<Integer, Integer> countMap = countList.stream()
+                .collect(Collectors.toMap(
+                        m -> (Integer) m.get("crn_no"),
+                        m -> ((Number) m.get("cnt")).intValue()
+                ));
+
+        // 鎵�鏈夋弧瓒虫潯浠剁殑搴撲綅
+        List<LocMast> allLocs = locMastMapper.selectList(
+                new EntityWrapper<LocMast>()
+                        .eq("loc_type1", locType)
+                        .eq("loc_sts" ,'O')
+                        .in("crn_no", basCrnps.stream().map(BasCrnp::getCrnNo).collect(Collectors.toList()))
+                        .last("ORDER BY CASE WHEN row1 IN (1,4,5,8,9,12) THEN 0 ELSE 1 END, lev1, bay1, row1")
+        );
+
+        // 鎸夊爢鍨涙満鍒嗙粍
+        Map<Integer, List<LocMast>> locMap = allLocs.stream()
+                .collect(Collectors.groupingBy(LocMast::getCrnNo));
+
+        // 鍫嗗灈鏈哄搴斿簱浣嶇被鍨嬬殑鍓╀綑搴撲綅鏁板ぇ浜�4涓殑鍫嗗灈鏈轰繚鐣�
+        List<BasCrnp> availableCrn = basCrnps.stream()
+                .filter(c -> locMap.containsKey(c.getCrnNo()) && locMap.get(c.getCrnNo()).size() > 4)
+                .collect(Collectors.toList());
+
+        if (availableCrn.isEmpty()) {
+            // 閫掑綊鍏煎
+            if (locType >= 3) return null;
+            return getLocNoNew(ioType, sourceStaNo, locType + 1, rows);
+        }
+
+        availableCrn.sort(Comparator.comparing(c -> countMap.getOrDefault(c.getCrnNo(), 0)));
+
+        for (BasCrnp crnp : availableCrn) {
+
+            List<LocMast> locs = locMap.get(crnp.getCrnNo());
+            if (locs == null || locs.isEmpty()) {
+                continue;
+            }
+            Map<String, LocMast> locNoMap = locs.stream()
+                    .collect(Collectors.toMap(LocMast::getLocNo, e -> e));
+            for(LocMast locMast1: locs) {
+                String locNo = locMast1.getLocNo();
+                // 鏄繁搴撲綅
+                if(Utils.isDeepLoc(slaveProperties,locMast1.getLocNo())){
+                    // 鑾峰彇娴呭簱浣�
+                    String shallowLoc = Utils.getShallowLoc(slaveProperties, locNo);
+                    LocMast shallow = locNoMap.get(shallowLoc);
+                    // 娴呭簱浣嶆棤璐�
+                    if (shallow == null) {
+                        locMast = locMast1;
+                        break;
+                    }
+                } else { // 鏄祬搴撲綅锛屽垽鏂繁搴撲綅鏄惁涓虹┖,鏄垯鏀撅紝涓嶆槸鍒欒烦杩�
+                    // 鑾峰彇娣卞簱浣�
+                    String deepLoc = Utils.getDeepLoc(slaveProperties, locNo);
+                    LocMast deep = locNoMap.get(deepLoc);
+                    // 娣卞簱浣嶄笉绌烘斁娣卞簱浣�
+                    if (deep != null) {
+                        locMast = deep;
+                        break;
+                    } else {
+                        locMast = locMast1;
+                        break;
+                    }
+                }
+            }
+            if (locMast != null) {
+                break;
             }
         }
 
         if (locMast == null) {
-            return null;
+            if (locType >= 3) return null;
+            return getLocNoNew(ioType, sourceStaNo, locType + 1, rows);
         }
 
         // 鏍规嵁鍏ュ簱绫诲瀷鍜屾簮绔欑偣鑾峰彇宸ヤ綔璺緞
-//        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("type_no", ioType).eq("stn_no", sourceStaNo).eq("crn_no",locMast.getCrnNo()));
-//        if (staDesc == null) {
-//            log.error("鑾峰彇宸ヤ綔璺緞寮傚父,绫诲瀷锛歿}锛屾簮绔欑偣锛歿}锛屽簱浣嶏細{}",ioType,sourceStaNo,locMast.getLocNo());
-//            return null;
-//        }
+        StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>().eq("type_no", ioType).eq("stn_no", sourceStaNo).eq("crn_no",locMast.getCrnNo()));
+        if (staDesc == null) {
+            log.error("鑾峰彇宸ヤ綔璺緞寮傚父,绫诲瀷锛歿}锛屾簮绔欑偣锛歿}锛屽簱浣嶏細{}",ioType,sourceStaNo,locMast.getLocNo());
+            throw new CoolException("鑾峰彇宸ヤ綔璺緞寮傚父");
+        }
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = getWorkNo(0);
         // 杩斿洖dto
         StartupDto startupDto = new StartupDto();
-        startupDto.setTaskNo(workNo);
+        startupDto.setWorkNo(workNo);
         startupDto.setCrnNo(locMast.getCrnNo());
         startupDto.setSourceStaNo(sourceStaNo);
-        startupDto.setStaNo(0);
+        startupDto.setStaNo(staDesc.getCrnStn());
         startupDto.setLocNo(locMast.getLocNo());
         startupDto.setTaskPri(13D);
 
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index fd06609..a139fe3 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -64,76 +64,57 @@
     @ResponseBody
     public synchronized R getLocNo(@RequestBody SearchLocParam param) {
         log.info("鏀跺埌WCS鍏ュ簱鎺ュ彛璇锋眰====>>鍏ュ弬:{}", param);
-//        if (Cools.isEmpty(param.getIoType())) {
-//            return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
-//        }
+        if (Cools.isEmpty(param.getIoType())) {
+            return R.error("鍏ュ嚭搴撶被鍨嬩笉鑳戒负绌�");
+        }
         if (Cools.isEmpty(param.getSourceStaNo())) {
             return R.error("婧愮珯缂栧彿涓嶈兘涓虹┖");
         }
-        if (param.getRow().length == 0) {
-            return R.error("WCS涓婃姤鏃犲彲鐢ㄨ澶�");
-        }
-//        //wcs璋冪敤姝ゆ帴鍙e悜缁勬墭琛ㄦ彃鍏ヤ竴鏉℃暟鎹ā鎷熺粍鎵�
-//        WaitPakin waitPakin = new WaitPakin();
-//        waitPakin.setZpallet(param.getBarcode());
-//        waitPakin.setBatch("20260305002");
-//        waitPakin.setAnfme(100.0D);
-//        waitPakin.setMatnr("YJ2026030509353203");
-//        waitPakin.setMaktx("涓婃媺鏉哶宸﹀墠鍙冲悗姣涘澂");
-//        waitPakin.setSpecs("50001LR-71");
-//        waitPakin.setModel("skv");
-//        waitPakinService.insert(waitPakin);
-//
-//        WaitPakin waitPakin2 = new WaitPakin();
-//        waitPakin2.setZpallet(param.getBarcode());
-//        waitPakin2.setBatch("20260305002");
-//        waitPakin2.setAnfme(100.0D);
-//        waitPakin2.setMatnr("YJ2026030509494873");
-//        waitPakin2.setMaktx("铻烘潌鍏�");
-//        waitPakin2.setSpecs("50001LR-71");
-//        waitPakin2.setModel("skv");
-//        waitPakinService.insert(waitPakin2);
+//        if (param.getRow().length == 0) {
+//            return R.error("WCS涓婃姤鏃犲彲鐢ㄨ澶�");
+//        }
+
         List<WaitPakin> waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
         if (param.getIoType() == 1) {
             if (Cools.isEmpty(param.getBarcode())) {
                 return R.error("鏉$爜涓嶈兘涓虹┖");
             }
-            WrkMast wrkMast1 = wrkMastService.selectByBarcode(param.getBarcode());
-            if (wrkMast1 != null) {
-                Integer ioType = wrkMast1.getIoType();
-                if ((ioType == 103 || ioType == 107) && wrkMast1.getWrkSts() == 14) {
-                    // 杞崲宸ヤ綔妗�
-                    if (!wrkMastLogService.save(wrkMast1.getWrkNo())) {
-                        throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
-                    }
-                    Date now = new Date();
-                    // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
-                    wrkMast1.setIoType(wrkMast1.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
-                    wrkMast1.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
-                    wrkMast1.setSourceStaNo(String.valueOf(param.getSourceStaNo())); // 婧愮珯
-                    wrkMast1.setStaNo("0"); // 鐩爣绔�
-                    wrkMast1.setLocNo(wrkMast1.getSourceLocNo());
-                    wrkMast1.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
-                    wrkMast1.setModiTime(now);
-                    if (!wrkMastService.updateById(wrkMast1)) {
-                        throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
-                    }
-                    // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
-                    LocMast locMast = locMastService.selectById(wrkMast1.getLocNo());
-                    locMast.setLocSts("Q");
-                    locMast.setModiTime(now);
-                    if (!locMastService.updateById(locMast)) {
-                        throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
-                    }
-                }
-                StartupDto startupDto = new StartupDto();
-                startupDto.setTaskNo(wrkMast1.getWrkNo());
-                startupDto.setSourceStaNo(Integer.valueOf(wrkMast1.getSourceStaNo()));
-                startupDto.setTaskPri(wrkMast1.getIoPri());
-                startupDto.setCrnNo(wrkMast1.getCrnNo());
-                startupDto.setLocNo(Utils.locToLocNo(wrkMast1.getLocNo()));
-                return R.ok().add(startupDto);
-            }
+//            WrkMast wrkMast1 = wrkMastService.selectByBarcode(param.getBarcode());
+//            if (wrkMast1 != null) {
+//                Integer ioType = wrkMast1.getIoType();
+//                if ((ioType == 103 || ioType == 107) && wrkMast1.getWrkSts() == 14) {
+//                    // 杞崲宸ヤ綔妗�
+//                    if (!wrkMastLogService.save(wrkMast1.getWrkNo())) {
+//                        throw new CoolException("淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗eけ璐�");
+//                    }
+//                    Date now = new Date();
+//                    // 鏇存柊宸ヤ綔妗f暟鎹姸鎬�
+//                    wrkMast1.setIoType(wrkMast1.getIoType() - 50); // 鍏ュ嚭搴撶被鍨�: 103->53,104->54,107->57
+//                    wrkMast1.setWrkSts(2L); // 宸ヤ綔鐘舵��: 2.璁惧涓婅蛋
+//                    wrkMast1.setSourceStaNo(String.valueOf(param.getSourceStaNo())); // 婧愮珯
+//                    wrkMast1.setStaNo("0"); // 鐩爣绔�
+//                    wrkMast1.setLocNo(wrkMast1.getSourceLocNo());
+//                    wrkMast1.setSourceLocNo(""); // 婧愬簱浣嶆竻绌�
+//                    wrkMast1.setModiTime(now);
+//                    if (!wrkMastService.updateById(wrkMast1)) {
+//                        throw new CoolException("鏇存柊宸ヤ綔妗f暟鎹姸鎬佸け璐�");
+//                    }
+//                    // 淇敼搴撲綅鐘舵�� Q.鎷f枡/鐩樼偣/骞舵澘鍐嶅叆搴�
+//                    LocMast locMast = locMastService.selectById(wrkMast1.getLocNo());
+//                    locMast.setLocSts("Q");
+//                    locMast.setModiTime(now);
+//                    if (!locMastService.updateById(locMast)) {
+//                        throw new CoolException("淇敼搴撲綅鐘舵�佸け璐�");
+//                    }
+//                }
+//                StartupDto startupDto = new StartupDto();
+//                startupDto.setTaskNo(wrkMast1.getWrkNo());
+//                startupDto.setSourceStaNo(Integer.valueOf(wrkMast1.getSourceStaNo()));
+//                startupDto.setTaskPri(wrkMast1.getIoPri());
+//                startupDto.setCrnNo(wrkMast1.getCrnNo());
+//                startupDto.setLocNo(Utils.locToLocNo(wrkMast1.getLocNo()));
+//                return R.ok().add(startupDto);
+//            }
             if (Cools.isEmpty(waitPakins)) {
                 WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
                 if (wrkMast != null && wrkMast.getIoType() == 103) {
@@ -152,15 +133,15 @@
         }
 
         // 婧愮珯鐐圭姸鎬佹娴�
-//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
-//        sourceStaNo.setLocType1(param.getLocType1());
-        LocTypeDto locTypeDto = new LocTypeDto();
-        locTypeDto.setLocType1(param.getLocType1());
-        if(!waitPakins.isEmpty()) { // 鍒ゆ柇鏄惁鏄┖鎵樼洏
-            if (waitPakins.get(0).getMatnr().equals("1") ) {
-                param.setIoType(10);
-            }
-        }
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
+        sourceStaNo.setLocType1(param.getLocType1());
+        LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
+//        locTypeDto.setLocType1(param.getLocType1());
+//        if(!waitPakins.isEmpty()) { // 鍒ゆ柇鏄惁鏄┖鎵樼洏
+//            if (waitPakins.get(0).getMatnr().equals("1") ) {
+//                param.setIoType(10);
+//            }
+//        }
 
         StartupDto dto = null;
         switch (param.getIoType()) {
@@ -266,7 +247,7 @@
         Date now = new Date();
         // 鑾峰彇宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.PICK.type);
-        dto.setTaskNo(workNo);
+        dto.setWorkNo(workNo);
 
         // 淇濆瓨宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -353,7 +334,7 @@
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
-        wrkMast.setWrkNo(dto.getTaskNo());
+        wrkMast.setWrkNo(dto.getWorkNo());
         wrkMast.setIoTime(now);
         wrkMast.setWrkSts(1L);
         wrkMast.setIoPri(13D);
@@ -398,27 +379,28 @@
     @Transactional
     public StartupDto startupFullPutStore(Integer devpNo, String barcode, LocTypeDto locTypeDto, List<WaitPakin> waitPakins, int[] row) {
         // 婧愮珯鐐圭姸鎬佹娴�
-//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
 //        StartupDto dto = commonService.getLocNo(1, devpNo, findLocNoAttributeVo, locTypeDto);
-        StartupDto dto = null;
-        // 鏍规嵁搴撲綅鎺掓槧灏勫爢鍨涙満
-        for(int i = 0; i < row.length/4 ; i ++) {
-            ArrayList<Integer> rows = new ArrayList<>();
-            rows.add(row[i * 4]);
-            rows.add(row[i * 4 + 1]);
-            rows.add(row[i * 4 + 2]);
-            rows.add(row[i * 4 + 3]);
-            dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows);
-            if (dto != null) {
-                break;
-            }
-        }
+//        StartupDto dto = null;
+//        // 鏍规嵁搴撲綅鎺掓槧灏勫爢鍨涙満
+//        for(int i = 0; i < row.length/4 ; i ++) {
+//            ArrayList<Integer> rows = new ArrayList<>();
+//            rows.add(row[i * 4]);
+//            rows.add(row[i * 4 + 1]);
+//            rows.add(row[i * 4 + 2]);
+//            rows.add(row[i * 4 + 3]);
+//            dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows);
+//            if (dto != null) {
+//                break;
+//            }
+//        }
+        StartupDto dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),null);;
         if (dto == null) {
             throw new CoolException("娌℃湁鍖归厤鍒板簱浣嶏紝妫�鏌ュ彲鐢ㄥ簱浣�/鍫嗗灈鏈烘姤璀�");
         }
-        int workNo = dto.getTaskNo();
+        int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -468,11 +450,11 @@
             throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
         }
         // 鏇存柊婧愮珯鐐逛俊鎭�
-//        sourceStaNo.setWrkNo(workNo);
-//        sourceStaNo.setModiTime(now);
-//        if (!basDevpService.updateById(sourceStaNo)) {
-//            throw new CoolException("鏇存柊婧愮珯澶辫触");
-//        }
+        sourceStaNo.setWrkNo(workNo);
+        sourceStaNo.setModiTime(now);
+        if (!basDevpService.updateById(sourceStaNo)) {
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
+        }
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
         if (locMast.getLocSts().equals("O")) {
@@ -484,35 +466,36 @@
         } else {
             throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
         }
-        dto.setLocNo(Utils.locToLocNo(dto.getLocNo()));
+//        dto.setLocNo(Utils.locToLocNo(dto.getLocNo()));
         return dto;
     }
 
     @Transactional
     public StartupDto emptyPlateIn(Integer devpNo, LocTypeDto locTypeDto, String barcode, int[] row) {
         // 婧愮珯鐐圭姸鎬佹娴�
-//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
+        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
 //        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
 
 //        StartupDto dto = commonService.getLocNo(10, devpNo, findLocNoAttributeVo, locTypeDto);
-        StartupDto dto = null;
-        // 鏍规嵁搴撲綅鎺掓槧灏勫爢鍨涙満
-        for(int i = 0; i < row.length/4 ; i ++) {
-            ArrayList<Integer> rows = new ArrayList<>();
-            rows.add(row[i * 4]);
-            rows.add(row[i * 4 + 1]);
-            rows.add(row[i * 4 + 2]);
-            rows.add(row[i * 4 + 3]);
-            dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows);
-            if (dto != null) {
-                break;
-            }
-        }
+//        StartupDto dto = null;
+//        // 鏍规嵁搴撲綅鎺掓槧灏勫爢鍨涙満
+//        for(int i = 0; i < row.length/4 ; i ++) {
+//            ArrayList<Integer> rows = new ArrayList<>();
+//            rows.add(row[i * 4]);
+//            rows.add(row[i * 4 + 1]);
+//            rows.add(row[i * 4 + 2]);
+//            rows.add(row[i * 4 + 3]);
+//            dto = commonService.getLocNoNew(1, devpNo, Integer.valueOf(locTypeDto.getLocType1()),rows);
+//            if (dto != null) {
+//                break;
+//            }
+//        }
+        StartupDto dto = commonService.getLocNoNew(10, devpNo, Integer.valueOf(locTypeDto.getLocType1()),null);;
         if (dto == null) {
             throw new CoolException("娌℃湁鍖归厤鍒板簱浣嶏紝妫�鏌ュ彲鐢ㄥ簱浣�/鍫嗗灈鏈烘姤璀�");
         }
-        int workNo = dto.getTaskNo();
+        int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -539,15 +522,11 @@
         if (!res) {
             throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
         }
-        // 鏇存柊鍏ュ簱閫氱煡妗� ioStatus ===>> Y
-        Wrapper<WaitPakin> wrapper = new EntityWrapper<WaitPakin>()
-                .eq("zpallet", barcode);
-        WaitPakin setParam = new WaitPakin();
-        setParam.setLocNo(dto.getLocNo());
-        setParam.setIoStatus("Y");
-        setParam.setModiTime(now);
-        if (!waitPakinService.update(setParam, wrapper)) {
-            throw new CoolException("鏇存柊閫氱煡妗eけ璐�");
+        // 鏇存柊婧愮珯鐐逛俊鎭�
+        sourceStaNo.setWrkNo(workNo);
+        sourceStaNo.setModiTime(new Date());
+        if (!basDevpService.updateById(sourceStaNo)) {
+            throw new CoolException("鏇存柊婧愮珯澶辫触");
         }
         // 鏇存柊鐩爣搴撲綅鐘舵��
         LocMast locMast = locMastService.selectById(dto.getLocNo());
@@ -560,7 +539,7 @@
         } else {
             throw new CoolException(dto.getLocNo() + "鐩爣搴撲綅宸茶鍗犵敤");
         }
-        dto.setLocNo(Utils.locToLocNo(dto.getLocNo()));
+//        dto.setLocNo(Utils.locToLocNo(dto.getLocNo()));
         return dto;
     }
 
diff --git a/src/main/java/com/zy/common/web/param/SearchLocParam.java b/src/main/java/com/zy/common/web/param/SearchLocParam.java
index 77b8b80..4ba3b5f 100644
--- a/src/main/java/com/zy/common/web/param/SearchLocParam.java
+++ b/src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -8,7 +8,7 @@
 @Data
 public class SearchLocParam {
 
-    private Integer ioType = 1;
+    private Integer ioType;
 
     private Integer sourceStaNo;
 
diff --git a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
index 1ce68a7..d92cb44 100644
--- a/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
+++ b/src/main/java/com/zy/system/entity/license/CustomLicenseManager.java
@@ -123,9 +123,9 @@
 
         //2. 鐒跺悗鏍¢獙鑷畾涔夌殑License鍙傛暟
         //License涓彲琚厑璁哥殑鍙傛暟淇℃伅
-        Object extra = content.getExtra();
-        String text = ((String) extra).trim();
-        LicenseCheck expectedCheckModel = JSON.parseObject(text, LicenseCheck.class);
+//        Object extra = content.getExtra();
+//        String text = ((String) extra).trim();
+        LicenseCheck expectedCheckModel = (LicenseCheck) content.getExtra();;
         //褰撳墠鏈嶅姟鍣ㄧ湡瀹炵殑鍙傛暟淇℃伅
         LicenseCheck serverCheckModel = getServerInfos();
 
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 5d9eea3..3e4a133 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -217,5 +217,8 @@
         </foreach>
         order by lev1, bay1, row1
     </select>
+    <select id="selectLocByTypeToList" resultType="com.zy.asrs.entity.LocMast">
+        select loc_no locNo,loc_type1 locType1,crn_no crnNo,row1 from asr_loc_mast where loc_sts = 'O' and loc_type1 = #{locType1} AND crn_no = #{crnNo} order by lev1,bay1,row1
+    </select>
 
 </mapper>
diff --git a/src/main/webapp/static/js/common.js b/src/main/webapp/static/js/common.js
index 5fbd480..3a10a03 100644
--- a/src/main/webapp/static/js/common.js
+++ b/src/main/webapp/static/js/common.js
@@ -1,4 +1,4 @@
-var baseUrl = "/wms";
+var baseUrl = "/nwswms";
 
 // 璇︽儏绐楀彛-楂樺害
 var detailHeight = '80%';

--
Gitblit v1.9.1