From 8ce4dcbd701b40165b0dbf365f667932cf2a8916 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 06 三月 2026 08:21:15 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java   |   34 ++--
 src/main/java/com/zy/asrs/controller/OpenController.java      |    1 
 src/main/resources/mapper/LocMastMapper.xml                   |    4 
 src/main/java/com/zy/asrs/task/WorkMastScheduler.java         |   40 -----
 src/main/webapp/static/js/wrkMast/wrkMast.js                  |    6 
 src/main/java/com/zy/asrs/controller/MobileController.java    |    7 
 src/main/java/com/zy/common/web/WcsController.java            |  103 +++---------
 src/main/java/com/zy/common/model/LocTypeDto.java             |    2 
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java   |   67 --------
 src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java |  143 +++++++++++++++++
 src/main/resources/application-dev.yml                        |   10 
 src/main/java/com/zy/common/service/CommonService.java        |   45 ++++
 src/main/java/com/zy/asrs/service/MobileService.java          |    5 
 13 files changed, 249 insertions(+), 218 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 199f59e..26f6987 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -60,6 +60,13 @@
     @Resource
     private StaDescService staDescService;
 
+    @RequestMapping("/comb/auth")
+    @ManagerAuth(memo = "缁勬墭")
+    public R comb(@RequestBody CombParam combParam){
+        mobileService.comb(combParam, getUserId());
+        return R.ok("缁勬墭鎴愬姛");
+    }
+
 
 
     @RequestMapping("/pda/WarehouseOut/v1")
diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index 17b8a2b..9e7fde2 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -357,7 +357,6 @@
         if (wrkMast == null) {
             return R.error("浠诲姟涓嶅瓨鍦�");
         }
-
         List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(Integer.valueOf(param.getTaskNo()));
 
         HashMap<String, Object> map = new HashMap<>();
diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java
index ece063b..9f46196 100644
--- a/src/main/java/com/zy/asrs/service/MobileService.java
+++ b/src/main/java/com/zy/asrs/service/MobileService.java
@@ -10,6 +10,11 @@
 public interface MobileService {
 
     /**
+     * 缁勬墭
+     */
+    void comb(CombParam param, Long userId);
+
+    /**
      * 骞舵澘閫斾腑鎷f枡
      */
     R WarehouseOutV1(CombParam combParam, Long hostId, Long userId);
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 96371ea..79a8a56 100644
--- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -13,6 +13,7 @@
 import com.zy.asrs.mapper.ManLocDetlMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.OrderInAndOutUtil;
+import com.zy.common.model.DetlDto;
 import com.zy.common.model.LocTypeDto;
 import com.zy.common.model.StartupDto;
 import com.zy.common.model.enums.WorkNoType;
@@ -25,6 +26,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 绉诲姩绔湇鍔℃牳蹇冪被
@@ -309,6 +311,147 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void comb(CombParam param, Long userId) {
+        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        if (param.getCombMats().size() < 1) {
+            throw new CoolException("璇锋彁鍙栦竴涓晢鍝侊紝鎴栬�呭埛鏂伴噸鏂扮粍鎵橈紒");
+        }
+        // 鍒ゆ柇鏄惁鏈夌浉鍚屾潯鐮佺殑鏁版嵁
+        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
+                eq("zpallet", param.getBarcode())
+                .eq("io_status", "N")) > 0) {
+            throw new CoolException(param.getBarcode() + "鏁版嵁姝e湪杩涜鍏ュ簱");
+        }
+
+        if (param.getBarcode().length() != 8) {
+            throw new CoolException("鏉$爜闀垮害涓嶆槸8浣�===>>" + param.getBarcode());
+        }
+
+        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet", param.getBarcode()));
+        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", param.getBarcode()));
+        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
+        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
+            throw new CoolException("缁勬墭妗�/宸ヤ綔妗�/搴撳瓨鏉$爜鏁版嵁宸插瓨鍦�===>>" + param.getBarcode());
+        }
+
+        Date now = new Date();
+        // 鏃犲崟缁勬墭
+        if (Cools.isEmpty(param.getOrderNo())) {
+            // 鐢熸垚鍏ュ簱閫氱煡妗�
+            List<DetlDto> detlDtos = new ArrayList<>();
+            param.getCombMats().forEach(elem -> {
+                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
+                        elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+                if (DetlDto.has(detlDtos, detlDto)) {
+                    DetlDto one = DetlDto.findDto(detlDtos, detlDto);
+                    assert one != null;
+                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+                } else {
+                    detlDtos.add(detlDto);
+                }
+            });
+
+            for (DetlDto detlDto : detlDtos) {
+                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+                if (Cools.isEmpty(mat)) {
+                    throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+                }
+//                if (mat.getUpQty().compareTo(detlDto.getAnfme()) < 0) {
+//                    throw new CoolException("鐗╂枡锛�" + detlDto.getMatnr() + "鍗曟鏈�澶х粍鎵樹笂闄愪负锛�" + mat.getUpQty());
+//                }
+                WaitPakin waitPakin = new WaitPakin();
+                BeanUtils.copyProperties(mat, waitPakin);
+                waitPakin.setBatch(detlDto.getBatch());
+                waitPakin.setZpallet(param.getBarcode());
+                waitPakin.setIoStatus("N");
+                waitPakin.setAnfme(detlDto.getAnfme());
+                waitPakin.setStatus("Y");
+                waitPakin.setAppeUser(userId);
+                waitPakin.setAppeTime(now);
+                waitPakin.setModiUser(userId);
+                waitPakin.setModiTime(now);
+                if (!waitPakinService.insert(waitPakin)) {
+                    throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+                }
+            }
+            // 鍏宠仈缁勬墭
+        } else {
+//            Order order = orderService.selectByNo(param.getOrderNo());
+            // 鐢熸垚鍏ュ簱閫氱煡妗�
+            List<DetlDto> detlDtos = new ArrayList<>();
+            param.getCombMats().forEach(elem -> {
+                Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, elem.getOrderNo());
+                if (Cools.isEmpty(order) || order.getSettle() > 2) {
+                    throw new CoolException("璁㈠崟鍙蜂笉瀛樺湪鎴栬�呭凡鎵ц瀹屾垚");
+                }
+                // 璁㈠崟鏄庣粏鏁伴噺鏍¢獙
+//                OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.TRUE, order.getId(), elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
+//                        elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3());
+                OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_id", order.getId())
+                        .eq("matnr", elem.getMatnr()));
+
+                if (Objects.isNull(detls)) {
+                    throw new CoolException("鏁版嵁閿欒锛氬崟鎹槑缁嗕笉瀛樺湪锛侊紒");
+                }
+
+                if (elem.getAnfme() > detls.getEnableQty()) {
+                    throw new CoolException(detls.getMatnr() + "鍏ュ簱鏁伴噺涓嶅悎娉�");
+                }
+                OrderInAndOutUtil.increaseWorkQty(Boolean.TRUE, order.getId(), elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
+                        elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getBrand(), elem.getStandby1(), elem.getStandby2(), elem.getStandby3(),
+                        elem.getBoxType1(), elem.getBoxType2(), elem.getBoxType3(), elem.getAnfme());
+                detlDto.setOrderId(order.getId());
+                detlDto.setOrderNo(order.getOrderNo());
+                if (DetlDto.has(detlDtos, detlDto)) {
+                    DetlDto one = DetlDto.findDto(detlDtos, detlDto);
+                    assert one != null;
+                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
+                } else {
+                    detlDtos.add(detlDto);
+                }
+            });
+
+            for (DetlDto detlDto : detlDtos) {
+                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
+                if (Cools.isEmpty(mat)) {
+                    throw new CoolException(detlDto.getMatnr() + "鍟嗗搧妗f涓嶅瓨鍦�");
+                }
+                OrderDetlPakin detls = orderDetlPakinService.selectOne(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", param.getOrderNo())
+                        .eq("matnr", detlDto.getMatnr()));
+
+                WaitPakin waitPakin = new WaitPakin();
+                BeanUtils.copyProperties(mat, waitPakin);
+                waitPakin.setOrderNo(detlDto.getOrderNo());   // 鍗曟嵁缂栧彿
+                waitPakin.setOrderId(detlDto.getOrderId());
+                waitPakin.setBatch(detlDto.getBatch());     // 搴忓垪鐮�
+                waitPakin.setZpallet(param.getBarcode());   // 鎵樼洏鐮�
+                waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
+                waitPakin.setAnfme(detlDto.getAnfme());  // 鏁伴噺
+                waitPakin.setStatus("Y");    // 鐘舵��
+                waitPakin.setAppeUser(userId);
+                waitPakin.setAppeTime(now);
+                waitPakin.setModiUser(userId);
+                waitPakin.setModiTime(now);
+                if (!waitPakinService.insert(waitPakin)) {
+                    throw new CoolException("淇濆瓨鍏ュ簱閫氱煡妗eけ璐�");
+                }
+            }
+
+            Set<String> stringSet = param.getCombMats().stream().map(CombParam.CombMat::getOrderNo).collect(Collectors.toSet());
+            stringSet.forEach(orderNo -> {
+                Order order = OrderInAndOutUtil.selectByNo(Boolean.TRUE, orderNo);
+                OrderInAndOutUtil.updateOrder(Boolean.TRUE, order.getId(), 2L, userId);
+            });
+        }
+    }
+
+    @Override
     @Transactional
     public R WarehouseOutV1(CombParam combParam, Long hostId, 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 6298d71..bdba3fd 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -443,67 +443,7 @@
      * @date 2026/1/9 20:16
      */
     private void generateOutStock(TaskDto taskDto, Long userId, int workNo, String wrkCode, Date now, int ioType, LocMast locMast, StaDesc staDesc, String deviceNo) {
-        if (Objects.isNull(deviceNo)) {
-            throw new CoolException("鏈哄彴鍙蜂笉鑳戒负绌猴紒锛�");
-        }
-        BasDevice basDevice = basDeviceService.selectOne(new EntityWrapper<BasDevice>()
-                .eq("status", 1)
-                .eq("dev_no", deviceNo));
-        if (Objects.isNull(basDevice)) {
-            throw new CoolException("鏈哄彴淇℃伅涓嶅瓨鍦ㄦ垨宸茬鐢紒锛�");
-        }
 
-        LocAroundBind binds = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>()
-                .eq("loc_type", LocStsType.LOC_STS_TYPE_O.type)
-                .eq("dev_no", basDevice.getType()).orderBy("order_no"));
-
-        if (Objects.isNull(binds)) {
-            throw new CoolException("鏈哄彴鏈缃粯璁ゅ伐浣滀綅锛侊紒");
-        }
-//
-//        Set<String> locs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
-
-//        LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
-//                .in("loc_no", locs)
-//                .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-//                .orderAsc(Arrays.asList("loc_no")));
-
-//        if (Objects.isNull(locMasts)) {
-//            binds = locAroundBindService.selectList(new EntityWrapper<LocAroundBind>()
-//                    .eq("dev_no", basDevice.getDevNo()));
-//
-//            Set<String> nlocs = binds.stream().map(LocAroundBind::getBlocNo).collect(Collectors.toSet());
-//
-//            locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
-//                    .in("loc_no", nlocs)
-//                    .eq("loc_sts", LocStsType.LOC_STS_TYPE_O.type)
-//                    .orderAsc(Arrays.asList("loc_no")));
-//            if (Objects.isNull(locMasts)) {
-//                throw new CoolException("鏆傛棤鍙敤宸ヤ綔浣嶏紒锛�");
-//            }
-//        }
-
-        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", binds.getBlocNo()));
-        bLocNo.setLocType(LocStsType.LOC_STS_TYPE_S.type);
-
-        if (!locAroundBindService.updateById(bLocNo)) {
-            throw new CoolException("宸ヤ綅棰勭害澶辫触锛侊紒");
-        }
-
-        LocMast locMasts = locMastService.selectOne(new EntityWrapper<LocMast>()
-                .eq("loc_no", bLocNo.getBlocNo()));
-
-        locMasts.setLocSts(LocStsType.LOC_STS_TYPE_S.type);
-        locMasts.setModiUser(userId);
-        locMasts.setModiTime(now);
-        if (!locMastService.updateById(locMasts)) {
-            throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + locMasts.getLocNo());
-        }
-
-
-        List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locMasts.getLocNo(), 1);
-        //TODO 1. 鑾峰彇鍏ュ簱绔欑偣锛� 鐩爣搴撲綅  3. 灏嗗嚭搴撴槑缁嗘坊鍔犺嚦鍏ュ簱鏄庣粏
-        Integer staNo = staNos.stream().findFirst().get();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
         wrkMast.setWrkNo(workNo);
@@ -514,12 +454,7 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(13D); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-//        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
-        if(!Objects.equals(locMasts.getCrnNo(), locMast.getCrnNo())){
-            wrkMast.setSourceStaNo(staDesc.getCrnStn() + ""); // 婧愮珯
-            wrkMast.setStaNo(staNo + ""); // 鐩爣绔�
-        }
-        wrkMast.setLocNo(locMasts.getLocNo());
+        wrkMast.setStaNo(staDesc.getStnNo() + ""); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
diff --git a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
index df0a5de..3aacea5 100644
--- a/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
+++ b/src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -160,44 +160,4 @@
             }
         };
     }
-
-    /**
-     * 鑷姩鐢熸垚璺ㄥ尯鍏ヤ换鍔�
-     *
-     * @author Ryan
-     * @date 2026/1/10 14:42
-     */
-    @Scheduled(cron = "0/3 * * * * ? ")
-    private void autoInStack() {
-        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 15).eq("online_yn","N"));
-        if (wrkMasts.isEmpty()) {
-            return;
-        }
-        for (WrkMast wrkMast : wrkMasts) {
-            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
-            // 鏋勯�犺法鍖哄叆搴撲换鍔�
-            WrkMast inMast = new WrkMast();
-            // 鐢熸垚宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(1));
-            inMast.setWrkNo(workNo);          // 鐢熸垚鏂颁换鍔″彿
-            inMast.setBarcode(wrkMast.getBarcode());                // 鎵樼洏鐮佷繚鎸佷竴鑷�
-            inMast.setIoType(2);                                 // 璺ㄥ尯鍏ュ簱绫诲瀷
-            inMast.setWrkSts(1L);                                // 寰呬笅鍙�
-            inMast.setLocNo(wrkMast.getLocNo());              // 鍘熺洰鏍囧簱浣�
-            inMast.setIoPri(13.0);
-            inMast.setSourceStaNo(wrkMast.getStaNo());
-            inMast.setWrkCode(wrkMast.getWrkNo()+"");                  // 鍏宠仈鍘熷嚭搴撲换鍔�
-            inMast.setAppeUser(wrkMast.getAppeUser());              // 鐢宠浜�
-            inMast.setAppeTime(new Date());
-            inMast.setIoTime(new Date());
-            inMast.setCrnNo(locMast.getCrnNo());
-            if(!wrkMastService.insert(inMast)){
-                throw new CoolException("璺ㄥ尯鍏ュ簱浠诲姟鐢熸垚澶辫触锛�");
-            }else {
-                wrkMast.setOnlineYn("Y");
-                wrkMastService.updateById(wrkMast);
-            }
-        }
-
-    }
 }
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 c3c92c3..404c5a9 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -552,22 +552,22 @@
                 case 101:
                     //濡傛灉wrkCode涓嶄负绌猴紝琛ㄧず鏄伐浣滃彴鍙揣,濡傛灉涓嶄负绌鸿蛋绉诲簱閫昏緫
                     //todo 鍒ゆ柇濡傛灉搴撲綅鎵�灞炰笉鏄悓涓�涓爢鍨涙満鍙凤紝闇�鍐嶇敓鎴愪竴涓柊鐨勫叆搴撲换鍔�
-                    if (!Objects.isNull(wrkMast.getWrkCode())) {
-                        //TODO 绉诲簱
-//                        workService.locMove(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getAppeUser());
-
-                        movLoc(wrkMast);
-
-                        //淇敼宸ヤ綅搴撴��
-                        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getLocNo()));
-                        if (Objects.isNull(bLocNo)) {
-                            throw new CoolException("鏁版嵁閿欒锛� 鐩爣宸ヤ綅涓嶅瓨鍦紒锛�");
-                        }
-                        bLocNo.setLocType(LocStsType.LOC_STS_TYPE_F.type);
-                        if (!locAroundBindService.updateById(bLocNo)) {
-                            throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
-                        }
-                    } else {
+//                    if (!Objects.isNull(wrkMast.getWrkCode())) {
+//                        //TODO 绉诲簱
+////                        workService.locMove(wrkMast.getSourceLocNo(), wrkMast.getLocNo(), wrkMast.getAppeUser());
+//
+////                        movLoc(wrkMast);
+//
+//                        //淇敼宸ヤ綅搴撴��
+//                        LocAroundBind bLocNo = locAroundBindService.selectOne(new EntityWrapper<LocAroundBind>().eq("b_loc_no", wrkMast.getLocNo()));
+//                        if (Objects.isNull(bLocNo)) {
+//                            throw new CoolException("鏁版嵁閿欒锛� 鐩爣宸ヤ綅涓嶅瓨鍦紒锛�");
+//                        }
+//                        bLocNo.setLocType(LocStsType.LOC_STS_TYPE_F.type);
+//                        if (!locAroundBindService.updateById(bLocNo)) {
+//                            throw new CoolException("宸ヤ綅鐘舵�佷慨鏀瑰け璐ワ紒锛�");
+//                        }
+//                    } else {
 //                    // 鍑哄簱纭淇″彿浣�
 //                    if (Cools.isEmpty(wrkMast.getInvWh()) || wrkMast.getInvWh().equals("N")) {
 //                        return SUCCESS;
@@ -616,7 +616,7 @@
                                 return FAIL.setMsg("鍏ㄦ澘鍑哄簱 ===>> 淇敼婧愬簱浣嶇姸鎬佸け璐�; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getSourceLocNo() + "]");
                             }
                         }
-                    }
+//                    }
                     break;
                 // 骞舵澘閫斾腑鎹℃枡
                 case 108:
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index 0560f4a..14f00cf 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -29,7 +29,7 @@
         if (basDevp.getLocType1() == null) {
             throw new CoolException("plc楂樹綆妫�娴嬪紓甯�");
         }
-        if (basDevp.getLocType1() == 0) {
+        if (basDevp.getLocType1() == 1) {
             this.locType1 = 1; // 浣庡簱浣�
         } else {
             this.locType1 = 2; // 楂樺簱浣�
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index b62242a..7b507a6 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -243,7 +243,7 @@
                         .eq("loc_sts", "O")
                         .eq("frozen", 0)
                         .eq("deleted", 0)
-                        .eq("whs_type", rowLastnoType.getType().longValue()));
+                        .eq("loc_type1",locTypeDto.getLocType1()));
                 int crnCountO = wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("crn_no", crnNo).le("io_type", 100));
                 if (locMasts.size() - crnCountO <= 2) {
                     log.error(crnNo + "鍙峰爢鍨涙満娌℃湁绌哄簱浣嶏紒锛侊紒 灏哄瑙勬牸锛� {}锛� 杞娆℃暟锛歿}", JSON.toJSONString(locTypeDto), times);
@@ -285,7 +285,7 @@
                         .eq("row1", nearRow)
                         .eq("frozen", 0).eq("deleted", 0)
                         .eq("loc_sts", "O")
-                        .eq("whs_type", rowLastnoType.getType().longValue()));
+                        .eq("loc_type1", locTypeDto.getLocType1()));
                 for (LocMast locMast1 : locMasts) {
                     //鑾峰彇宸烽亾
 //                    List<String> groupOutsideLocCrn = Utils.getGroupOutLocCrn(curRow,nearRow,locMast1.getLocNo(), curRow>nearRow);
@@ -343,7 +343,7 @@
         if (staDescId == 10 && Utils.BooleanWhsTypeStaIoType(rowLastno)) {
             List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                     .eq("loc_sts", "D").eq("frozen", 0).eq("deleted", 0)
-                    .ge("row1", sRow).le("row1", eRow).eq("whs_type", rowLastnoType.getType().longValue()));
+                    .ge("row1", sRow).le("row1", eRow).eq("loc_type1", locTypeDto.getLocType1()));
             if (!locMasts.isEmpty()) {
                 for (LocMast loc : locMasts) {
                     if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
@@ -377,7 +377,7 @@
                     .eq("crn_no", crnNo);
             staDesc = staDescService.selectOne(wrapper);
             if (Cools.isEmpty(staDesc)) {
-                log.error("type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
+                log.error("鍏ュ簱鍏ュ緞涓嶅瓨鍦紝type_no={},stn_no={},crn_no={}", staDescId, sourceStaNo, crnNo);
 //                throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
                 crnNo = 0;
             } else {
@@ -404,8 +404,41 @@
             if (!locMasts.isEmpty()) {
                 for (LocMast locMast1 : locMasts) {
                     if (basCrnpService.checkSiteError(crnNo, true)) {
-                        locMast = locMast1;
-                        break;
+                        //鍒ゆ柇鏄惁涓烘祬搴撲綅锛屾祬搴撲綅鍒ゆ柇娣卞簱浣嶆槸鍚︽湁璐э紝鏃犺揣鐨勪紭鍏堟斁鍒版繁搴撲綅涓�
+                        Integer row1 = locMast1.getRow1();
+                        Boolean boo=false;
+                        if(locMast1.getRow1()==2){
+                            row1 = 1;
+                            boo=true;
+                        }else if(locMast1.getRow1()==3){
+                            row1 = 4;
+                            boo=true;
+                        }
+                        if(boo){
+                            LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                    .eq("row1", row1)
+                                    .eq("bay1", locMast1.getBay1())
+                                    .eq("lev1", locMast1.getLev1())
+                                    .eq("loc_sts", "O"));
+                            if(!Cools.isEmpty(locMast2)) {
+                                locMast =  locMast2;
+                                break;
+                            }else {
+                                LocMast locMast3 = locMastService.selectOne(new EntityWrapper<LocMast>()
+                                        .eq("row1", row1)
+                                        .eq("bay1", locMast1.getBay1())
+                                        .eq("lev1", locMast1.getLev1())
+                                        .eq("loc_sts", "F"));
+                                if(!Cools.isEmpty(locMast3)) {
+                                    locMast = locMast1;
+                                    break;
+                                }
+                            }
+                        }else {
+                            locMast = locMast1;
+                            break;
+                        }
+
                     }
                 }
 
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index 607bd5b..43bfd91 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -71,97 +71,46 @@
         }
         List<WaitPakin> waitPakins = null;
         if (param.getIoType() == 1) {
-            //澶勭悊鎵樼洏鐮�
-            //3S19000677895,M22003772,3  ,KP, 0A2030  ,0A2030202306050023
-            //3S绠辩爜鍙�      ,绔瓙鐗╂枡鍙� ,鏁伴噺,鍗曚綅,渚涘簲鍟嗙紪鍙�,渚涘簲鍟嗘壒娆″彿
-            //鏁伴噺鍜岄噸閲忚浆鎹㈠嚭鏉ョ殑鏄惁宸笉澶�
-            //weight 涓� 43.39  鍘荤毊2.35  = 41.05
-            //鎵樼洏鐮佷緥瀛�  845000820308,M11000787,1000,MT,0A1263,0A126320260120
-            //鎹㈢畻闇�瑕�41.05*24.36绾︾瓑浜�1000
             if (Cools.isEmpty(param.getBarcode())) {
                 return R.error("鏉$爜涓嶈兘涓虹┖");
             }
-            String[] split = param.getBarcode().split(",");
-            String barcode = split[0];
-            String matnr = split[1];
-            Double weight = Double.valueOf(split[2]);
-            String unit = split[3];
-            String manu = split[4];
-            String batch = split[5];
-            String threeCode = param.getBarcode();
-            param.setBarcode(barcode);
-            //瀹為檯绉伴噸鏁伴噺
-            Double m = param.getWeight() -2.35;
-
-            Mat mat = matService.selectByMatnr(matnr);
-            if(mat==null){
-                log.info("娌℃湁鎵惧埌璇ョ墿鏂欐。妗�--"+matnr+"缁勬墭鏃惰嚜鍔ㄦ柊澧炵墿鏂欙紝榛樿24.36KG/M");
-                mat = new Mat();
-                mat.setTagId(1L);
-                mat.setLocType(1L);
-                mat.setMatnr(matnr);
-                mat.setUnit(unit);
-                mat.setManu(manu);
-                mat.setMaktx(matnr);
-                mat.setVolume(24.36);
-                matService.insert(mat);
-            }else {
-                //鏆傚畾
-
-            }
-            m=m*mat.getVolume();
-            //Double val = Math.round((m - matnr.getSafeQty()) * 10000) / 10000.0;
-            Config config = configService.selectConfigByCode("SimulationInbound");
-            if (config != null && config.getValue().equals("Y")) {
-                WaitPakin waitPakin1 = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
-                if (Cools.isEmpty(waitPakin1)) {
-                    WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("io_status", "N"));
-                    if (waitPakin != null) {
-                        waitPakinService.updateForSet("zpallet = '" + param.getBarcode() + "'", new EntityWrapper<WaitPakin>().eq("zpallet", waitPakin.getZpallet()));
-                    }
-                }
-            }
             waitPakins = waitPakinService.selectList(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
-            if (Cools.isEmpty(waitPakins)) {
-                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
-                if (wrkMast != null && wrkMast.getIoType() == 103) {
-                    return R.parse(CodeRes.PICK_600);
-                }
-                WaitPakin waitPakin = new WaitPakin();
-                waitPakin.sync(mat);
-                waitPakin.setZpallet(param.getBarcode());
-                waitPakin.setAnfme(m);
-                waitPakin.setThreeCode(threeCode);
-                waitPakinService.insert(waitPakin);
-            }else {
-                for(WaitPakin waitPakin : waitPakins){
-                    waitPakin.setAnfme(m);
-                    waitPakinService.update(waitPakin,new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
-                }
-            }
-            //瀹為檯闀垮害
-            WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", param.getBarcode()));
-            if (Cools.isEmpty(waitPakin)) {
-                return R.error(CodeRes.NO_COMB_700);
-            }
-            boolean flag = false;
-            if(Cools.isEmpty(waitPakin.getBeBatch())||waitPakin.getBeBatch()!=1){
-                flag = true;
-            }
-            if (flag && (weight - m < -2.0 || weight - m > 2.0)) {
-                return R.error("浜岀淮鐮�="+threeCode+"鐨勭墿鏂欏疄闄呯О閲嶈浆鎹㈡垚鐨勭背鏁板拰鐗╂枡鏍囩鎻愪緵鐨勭背鏁扮浉宸緝澶ч渶瑕侀��鍥炴垨鑰呮爣璁板悗鎵嶈兘鍏ュ簱锛�");
-            }
-
             int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",param.getBarcode()));
             int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet",param.getBarcode()));
             if (countLoc > 0 || countWrk > 0) {
                 return R.error(CodeRes.EXIST_500);
             }
+            if (Cools.isEmpty(waitPakins)) {
+                WrkMast wrkMast = wrkMastService.selectByBarcode(param.getBarcode());
+                if (wrkMast != null && wrkMast.getIoType() == 103) {
+                    return R.parse(CodeRes.PICK_600);
+                }
+                Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "SimulationWarehousing").eq("value", "Y"));
+                if (!Cools.isEmpty(config)) {
+                    waitPakins = waitPakinService.selectList(
+                            new EntityWrapper<WaitPakin>()
+                                    .eq("io_status", "N"));
+                    if (Cools.isEmpty(waitPakins)) {
+                        return R.parse(CodeRes.NO_COMB_700);
+                    }
+                    String barcode = "";
+                    for (WaitPakin waitPakin : waitPakins) {
+                        barcode = waitPakin.getZpallet();
+                        break;
+                    }
+                    if (!Cools.isEmpty(barcode)){
+                        waitPakinService.updateForSet("zpallet='"+param.getBarcode()+"'",new EntityWrapper<WaitPakin>().eq("zpallet",barcode));
+                    }
+                }else{
+                    return R.parse(CodeRes.NO_COMB_700);
+                }
+            }
         }
         if (Cools.isEmpty(param.getLocType1())){
             return R.error("楂樹綆妫�娴嬩俊鍙蜂笉鑳戒负绌�");
         }
 
+
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getSourceStaNo(), true);
         sourceStaNo.setLocType1(param.getLocType1());
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 18599c6..73e0d82 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -13,7 +13,7 @@
     username: sa
     password: sa@123
 #    url: jdbc:sqlserver://192.168.4.15:1433;databasename=jxhcwms
-    url: jdbc:sqlserver://127.0.0.1:1433;databasename=jxhcwms
+    url: jdbc:sqlserver://127.0.0.1:1433;databasename=nbtlasrs-ddj
   mvc:
     static-path-pattern: /**
   redis:
@@ -48,7 +48,7 @@
 
 #License鐩稿叧閰嶇疆
 license:
-  subject: integrationasrs
+  subject: nbtlasrs
   publicAlias: publicCert
   storePass: public_zhongyang_123456789
   licensePath: license.lic
@@ -59,13 +59,13 @@
   # 鍙屾繁
   doubleDeep: true
   # 鍙屾繁搴撲綅鎺掑彿
-  doubleLocs: 1,4,5,8,9,12,13,16
+  doubleLocs: 1,4
   # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁�
   groupCount: 4
   # 宸︽繁搴撲綅鎺掑彿
-  doubleLocsLeft: 1,5,9,13
+  doubleLocsLeft: 1
   # 鍙虫繁搴撲綅鎺掑彿
-  doubleLocsRight: 4,8,12,16
+  doubleLocsRight: 4
 # wms鍙傛暟閰嶇疆
 wms-parameter:
   # 鑷姩琛ョ┖鏉垮姛鑳藉紑鍏�
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index cae15d0..e394a80 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -123,7 +123,7 @@
         SELECT top 1 *
         FROM [dbo].[asr_loc_mast]
         WHERE 1=1
-        and whs_type=#{whsType}
+        and loc_type1=#{whsType}
         and crn_no=#{crnNo}
         and bay1 = #{bay}
         and lev1 = #{lev}
@@ -146,7 +146,7 @@
         SELECT top 1 *
         FROM [dbo].[asr_loc_mast]
         WHERE 1=1
-        and whs_type=#{whsType}
+        and loc_type1=#{whsType}
         and crn_no=#{crnNo}
         and bay1 = #{bay}
         and lev1 = #{lev}
diff --git a/src/main/webapp/static/js/wrkMast/wrkMast.js b/src/main/webapp/static/js/wrkMast/wrkMast.js
index c1e41cb..83e3fbd 100644
--- a/src/main/webapp/static/js/wrkMast/wrkMast.js
+++ b/src/main/webapp/static/js/wrkMast/wrkMast.js
@@ -32,13 +32,13 @@
             ,{field: 'staNo$', align: 'center',title: '鐩爣绔�', width: 95}
             ,{field: 'sourceLocNo', align: 'center',title: '婧愬簱浣�', width: 120}
             ,{field: 'locNo', align: 'center',title: '鐩爣搴撲綅', width: 120}
-            ,{field: 'oveMk', align: 'center',title: '鏄惁绉伴噸', width: 120}
+            // ,{field: 'oveMk', align: 'center',title: '鏄惁绉伴噸', width: 120}
             ,{field: 'preHave', align: 'center',title: '鍏堝叆鍝�', hide: true}
             ,{field: 'takeNone', align: 'center',title: '绌烘搷浣�', hide: true}
-            ,{field: 'isSuplus$', align: 'center', title: '鍥炲簱绫诲瀷', hide: false, width: 120}
+            // ,{field: 'isSuplus$', align: 'center', title: '鍥炲簱绫诲瀷', hide: false, width: 120}
             ,{field: 'modiUser$', align: 'center',title: '淇敼浜哄憳', hide:true}
             ,{field: 'modiTime$', align: 'center',title: '淇敼鏃堕棿', hide:true, width: 160}
-            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate', width:350}
+            ,{fixed: 'right', title:'鎿嶄綔', align: 'center', toolbar: '#operate'}
         ]],
         request: {
             pageName: 'curr',

--
Gitblit v1.9.1