From 431f88fdade07a22b636714f1690cee3a55668d0 Mon Sep 17 00:00:00 2001
From: cp <513960435@qq.com>
Date: 星期三, 30 十月 2024 13:35:56 +0800
Subject: [PATCH] 完善

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java |  454 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 448 insertions(+), 6 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
index 979c419..1d8dacd 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/MobileController.java
@@ -1,10 +1,18 @@
 package com.zy.asrs.wms.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.dto.LocDetlDto;
 import com.zy.asrs.common.domain.dto.WrkDto;
 import com.zy.asrs.common.domain.entity.MobileAdjustResult;
+import com.zy.asrs.common.domain.entity.StaDesc;
+import com.zy.asrs.common.domain.enums.WorkNoType;
 import com.zy.asrs.common.domain.param.MobileAdjustParam;
+import com.zy.asrs.common.domain.param.PickConfirmParam;
+import com.zy.asrs.common.domain.param.PickMatParam;
 import com.zy.asrs.common.openapi.entity.param.CombParam;
+import com.zy.asrs.common.openapi.entity.param.WarehouseOutMergeBoardManyParam;
+import com.zy.asrs.common.openapi.entity.param.WarehouseOutPickMergeParam;
+import com.zy.asrs.common.sys.service.StaDescService;
 import com.zy.asrs.common.web.BaseController;
 import com.zy.asrs.common.wms.entity.*;
 import com.zy.asrs.common.wms.service.*;
@@ -20,6 +28,7 @@
 import org.springframework.web.bind.annotation.RestController;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 绉诲姩绔帴鍙f帶鍒跺櫒
@@ -42,13 +51,182 @@
     private LocDetlService locDetlService;
     @Autowired
     private BasDevpService basDevpService;
+    @Autowired
+    private RolePermissionService rolePermissionService;
+    @Autowired
+    private PermissionService permissionService;
+    @Autowired
+    private LocMastService locMastService;
+    @Autowired
+    private StaDescService staDescService;
+    @Autowired
+    private OrderDetlService orderDetlService;
+    @Autowired
+    private CommonService commonService;
+    @Autowired
+    private MatService matService;
+
+    @RequestMapping("/pda/WarehouseIn")
+    @ManagerAuth
+    public R WarehouseIn(@RequestParam String locNo, @RequestParam String barcode) {
+        return mobileService.WarehouseIn(locNo, barcode, getHostId());
+    }
+
+    @RequestMapping("/pda/WarehouseOut")
+    @ManagerAuth
+    public R WarehouseOut(@RequestBody CombParam combParam) {
+        return mobileService.WarehouseOut(combParam, getHostId());
+    }
+
+    @RequestMapping("/outBound/mat/list")
+    @ManagerAuth
+    public R WarehouseMat(@RequestParam String matnr, @RequestParam String orderNo) {
+        if (Cools.isEmpty(matnr)) {
+            R.error("鍝佸彿涓嶈兘涓虹┖");
+        }
+        ArrayList<PickMatParam> maps = new ArrayList<>();
+        if (Cools.isEmpty(orderNo)) {
+            List<OrderDetl> list = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                    .eq(OrderDetl::getMatnr, matnr)
+                    .orderByDesc(OrderDetl::getCreateTime));
+            List<OrderDetl> orderDetls = new ArrayList<OrderDetl>();
+            for (OrderDetl orderDetl : list
+            ) {
+                Order order = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderDetl.getOrderNo()));
+                if (!Cools.isEmpty(order)) {
+                    DocType docType = docTypeService.getOne(new LambdaQueryWrapper<DocType>().eq(DocType::getDocId, order.getDocType()));
+                    if (!Cools.isEmpty(docType) && docType.getPakout() == 1) {
+                        double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+                        PickMatParam matParam = new PickMatParam();
+                        matParam.setMatnr(orderDetl.getMatnr());
+                        matParam.setBatch(orderDetl.getBatch());
+                        matParam.setOrderNo(orderDetl.getOrderNo());
+                        matParam.setOrderId(orderDetl.getOrderId());
+                        matParam.setCount(count);
+                        matParam.setUseCount(count);
+                        maps.add(matParam);
+                    }
+
+
+                }
+            }
+            return R.ok(maps);
+        } else {
+            List<OrderDetl> list = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>()
+                    .eq(OrderDetl::getMatnr, matnr)
+                    .like(OrderDetl::getOrderNo, orderNo)
+                    .orderByDesc(OrderDetl::getCreateTime));
+            for (OrderDetl orderDetl:list
+                 ) {
+                double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+                PickMatParam matParam = new PickMatParam();
+                matParam.setMatnr(orderDetl.getMatnr());
+                matParam.setBatch(orderDetl.getBatch());
+                matParam.setOrderNo(orderDetl.getOrderNo());
+                matParam.setOrderId(orderDetl.getOrderId());
+                matParam.setCount(count);
+                matParam.setUseCount(count);
+                maps.add(matParam);
+            }
+            return R.ok(maps);
+        }
+    }
+
+    /**
+     * 骞舵澘閫斾腑鎷f枡
+     *
+     * @param combParam
+     * @return
+     */
+    @RequestMapping("/pda/WarehouseOut/v1")
+    @ManagerAuth
+    public R WarehouseOutV1(@RequestBody CombParam combParam) {
+        return mobileService.WarehouseOutV1(combParam, getHostId(), getUserId());
+    }
+
+    /**
+     * 鎷f枡閫斾腑骞舵澘
+     *
+     * @param param
+     * @return
+     */
+    @RequestMapping("/pda/WarehouseOutPickMerge/v1")
+    @ManagerAuth
+    public R WarehouseOutPickMergeV1(@RequestBody WarehouseOutPickMergeParam param) {
+        return mobileService.WarehouseOutPickMergeV1(param, getHostId(),getUserId());
+    }
+
+    /**
+     * 澶氭骞舵澘
+     * @param param
+     * @return
+     */
+    @RequestMapping("/pda/WarehouseOutMergeBoardMany/v1")
+    @ManagerAuth
+    public R WarehouseOutMergeBoardManyV1(@RequestBody WarehouseOutMergeBoardManyParam param) {
+        return mobileService.WarehouseOutMergeBoardMany(param, getHostId(),getUserId());
+    }
+
+    @RequestMapping("/menu/pda/auth")
+    @ManagerAuth
+    public R menuPda() {
+        List<RolePermission> rolePermissions;
+        Long roleId = getUser().getRoleId();
+        rolePermissions = rolePermissionService.list(new LambdaQueryWrapper<RolePermission>().eq(RolePermission::getRoleId, getHostId()));
+
+        if (Cools.isEmpty(rolePermissions)) {
+            return R.ok();
+        }
+        List<Long> collect = rolePermissions.stream().map(RolePermission::getPermissionId).distinct().collect(Collectors.toList());
+        List<Permission> permissions = permissionService.listByIds(collect);
+        return R.ok().add(permissions);
+    }
+
+    /**
+     * 鍏ュ簱鍒朵护妫�娴�  -- 鎸囦护鍦ㄥ簱瀛橀噷闈㈠�熺敤鎵瑰彿瀛楁batch
+     * 1.鍙甯稿叆搴�
+     * 2.搴撳瓨鍖呭惈鐩稿悓鍒朵护璐х墿锛屾槸鍚﹁繘琛岃ˉ璐�
+     * 3.宸ヤ綔妗e瓨鍦ㄦ鍦ㄥ叆搴撲换鍔★紝鎷掔粷鍏ュ簱
+     */
+    @RequestMapping("/pda/decrees/check")
+    @ManagerAuth
+    public R pdaDecreesCheck(@RequestParam String decrees) {
+        if (Cools.isEmpty(decrees)) {
+            return R.error("鍒朵护涓嶈兘涓虹┖");
+        }
+        Long hostId = getHostId();
+        //鏌ヨ鏄惁鏈夊簱瀛�
+        List<LocDetl> list = locDetlService.list(new LambdaQueryWrapper<LocDetl>().eq(LocDetl::getBatch, decrees));
+        //鏌ヨ鏄惁鏈夋鍦ㄥ伐浣滅殑宸ヤ綔妗�
+        List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getBatch, decrees));
+        HashMap<String, Object> map = new HashMap<>();
+        if (list.isEmpty() && wrkDetls.isEmpty()) {
+            map.put("status", 1);//鍙甯稿叆搴�
+        } else if (!wrkDetls.isEmpty()) {
+            map.put("status", 3);//瀛樺湪宸ヤ綔妗o紝鎷掔粷鍏ュ簱
+        } else {
+            //鑾峰彇搴撳瓨鏈�灏戠殑涓�鏉¤褰�
+            Double anfme = 999999999D;
+            LocDetl miniLocDetl = null;
+            for (LocDetl locDetl : list) {
+                if (locDetl.getAnfme() < anfme) {
+                    anfme = locDetl.getAnfme();
+                    miniLocDetl = locDetl;
+                }
+            }
+
+            map.put("status", 2);//搴撳瓨鍖呭惈鐩稿悓鍒朵护璐х墿锛屾槸鍚﹁繘琛岃ˉ璐�
+            map.put("data", miniLocDetl);//搴撳瓨淇℃伅
+        }
+        return R.ok().add(map);
+    }
 
     /**
      * 鏍规嵁鍗曞彿妫�绱㈠崟鎹暟鎹�
      */
     @RequestMapping("/order/search/orderNo/auth")
     @ManagerAuth
-    public R orderSearchByBarcode(@RequestParam String orderNo){
+    public R orderSearchByBarcode(@RequestParam String orderNo) {
         Order order = orderService.selectByNo(orderNo, getHostId());
         if (order == null) {
             return R.ok();
@@ -69,7 +247,7 @@
 
     @RequestMapping("/comb/auth")
     @ManagerAuth(memo = "缁勬墭")
-    public R comb(@RequestBody CombParam combParam){
+    public R comb(@RequestBody CombParam combParam) {
         mobileService.comb(combParam, getUserId(), getHostId());
         return R.ok("缁勬墭鎴愬姛");
     }
@@ -79,7 +257,7 @@
     @Deprecated
     public R pakoutQuery(@RequestParam(required = false) String barcode,
                          @RequestParam(required = false) Integer staNo,
-                         @RequestParam(required = false) String matnr){
+                         @RequestParam(required = false) String matnr) {
         if (Cools.isEmpty(barcode) && Cools.isEmpty(matnr)) {
             return R.ok();
         }
@@ -104,7 +282,7 @@
      */
     @RequestMapping("/pakout/confirm/barcode/auth")
     @ManagerAuth
-    public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode){
+    public R pakoutQueryByBarcode(@RequestParam(required = false) String barcode) {
         if (Cools.isEmpty(barcode)) {
             return R.ok();
         }
@@ -125,7 +303,7 @@
     @RequestMapping("/pakout/confirm/pick/auth")
     @ManagerAuth
     public R pakoutQueryByBarcode(@RequestParam(required = false) Integer wrkNo
-            , @RequestParam(required = false) String matnr){
+            , @RequestParam(required = false) String matnr) {
         if (Cools.isEmpty(wrkNo)) {
             return R.ok();
         }
@@ -261,9 +439,273 @@
 
     @RequestMapping("/adjust/auth")
     @ManagerAuth(memo = "鐩樼偣")
-    public R adjust(@RequestBody MobileAdjustParam combParam){
+    public R adjust(@RequestBody MobileAdjustParam combParam) {
         mobileService.adjust(combParam, getUserId(), getHostId());
         return R.ok("鐩樼偣鎴愬姛");
     }
 
+    @RequestMapping("/loc/f/list")
+    @ManagerAuth(memo = "鑾峰彇鍦ㄥ簱搴撲綅")
+    public R locNoF(@RequestParam(required = false) String locNo) {
+        LambdaQueryWrapper<LocMast> wrapper = new LambdaQueryWrapper<LocMast>()
+                .eq(LocMast::getLocSts, "F")
+                .eq(LocMast::getHostId, getHostId());
+        if (!Cools.isEmpty(locNo)) {
+            wrapper.like(LocMast::getLocNo, locNo);
+        }
+        List<LocMast> list = locMastService.list(wrapper);
+        return R.ok().add(list);
+    }
+
+    @RequestMapping("/pick/sta/list")
+    @ManagerAuth(memo = "鑾峰彇骞舵澘绔�")
+    public R pickSta() {
+        List<StaDesc> list = staDescService.list(new LambdaQueryWrapper<StaDesc>()
+                .eq(StaDesc::getTypeNo, 104)
+                .eq(StaDesc::getHostId, getHostId()));
+        return R.ok().add(list);
+    }
+
+    @RequestMapping("/pick/mat/list")
+    @ManagerAuth(memo = "鑾峰彇骞舵澘鐗╂枡")
+    public R pickMats(@RequestParam(required = false) String matnr, @RequestParam(required = false) String orderNo) {
+        List<DocType> docTypes = docTypeService.list(new LambdaQueryWrapper<DocType>().like(DocType::getPakin, 1));
+        ArrayList<Long> typeList = new ArrayList<>();
+        for (DocType docType : docTypes) {
+            typeList.add(docType.getDocId());
+        }
+
+        LambdaQueryWrapper<Order> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(Order::getStatus, 1);
+        wrapper.eq(Order::getHostId, getHostId());
+        wrapper.in(Order::getDocType, typeList);
+        List<Order> orders = orderService.list(wrapper);
+
+        ArrayList<Long> orderIds = new ArrayList<>();
+        for (Order order : orders) {
+            orderIds.add(order.getId());
+        }
+
+        //鎼滅储鏄庣粏
+        LambdaQueryWrapper<OrderDetl> wrapper1 = new LambdaQueryWrapper<>();
+        wrapper1.eq(OrderDetl::getStatus, 1);
+        wrapper1.eq(OrderDetl::getHostId, getHostId());
+        wrapper1.in(OrderDetl::getOrderId, orderIds);
+        wrapper1.orderByDesc(OrderDetl::getCreateTime);
+        if (!Cools.isEmpty(matnr)) {
+            wrapper1.like(OrderDetl::getMatnr, matnr);
+        }
+        if (!Cools.isEmpty(orderNo)) {
+            wrapper1.like(OrderDetl::getOrderNo, orderNo);
+        }
+        List<OrderDetl> list = orderDetlService.list(wrapper1);
+
+        ArrayList<PickMatParam> maps = new ArrayList<>();
+        for (OrderDetl orderDetl : list) {
+            //鍓╀綑鍙敤鏁伴噺
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            if (count <= 0) {
+                continue;
+            }
+
+            PickMatParam matParam = new PickMatParam();
+            matParam.setMatnr(orderDetl.getMatnr());
+            matParam.setBatch(orderDetl.getBatch());
+            matParam.setOrderNo(orderDetl.getOrderNo());
+            matParam.setOrderId(orderDetl.getOrderId());
+            matParam.setCount(count);
+            matParam.setUseCount(count);
+            maps.add(matParam);
+        }
+        return R.ok().add(maps);
+    }
+
+    @RequestMapping("/pick/in")
+    @ManagerAuth(memo = "骞舵澘鍏ュ簱")
+    @Transactional
+    public R pickConfirm(@RequestBody PickConfirmParam param) {
+        LocMast locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>()
+                .eq(LocMast::getLocNo, param.getLocNo())
+                .eq(LocMast::getHostId, getHostId()));
+        if (!locMast.getLocSts().equals("F")) {
+            return R.error("搴撲綅鐘舵�佷笉鏄湪搴�");
+        }
+
+        StaDesc staDesc = staDescService.getOne(new LambdaQueryWrapper<StaDesc>()
+                .eq(StaDesc::getTypeNo, 104)
+                .eq(StaDesc::getStnNo, param.getStaNo())
+                .eq(StaDesc::getHostId, getHostId()));
+        if (staDesc == null) {
+            return R.error("绔欑偣涓嶅瓨鍦�");
+        }
+
+        //妫�楠屼紶鍙傛槸鍚﹀拰璁㈠崟鏄庣粏鍖归厤
+        for (PickMatParam matParam : param.getList()) {
+            LambdaQueryWrapper<OrderDetl> wrapper = new LambdaQueryWrapper<OrderDetl>()
+                    .eq(OrderDetl::getOrderNo, matParam.getOrderNo())
+                    .eq(OrderDetl::getHostId, getHostId())
+                    .eq(OrderDetl::getStatus, 1)
+                    .eq(OrderDetl::getMatnr, matParam.getMatnr());
+            if (!Cools.isEmpty(matParam.getBatch())) {
+                wrapper.eq(OrderDetl::getBatch, matParam.getBatch());
+            }
+            OrderDetl orderDetl = orderDetlService.getOne(wrapper);
+            if (orderDetl == null) {
+                return R.error("鐗╂枡鏁版嵁涓嶅瓨鍦�");
+            }
+
+            //鍓╀綑鍙敤鏁伴噺
+            double count = orderDetl.getAnfme() - orderDetl.getWorkQty();
+            if (matParam.getCount() != count) {
+                return R.error("鐗╂枡鏁版嵁宸茶繃鏈�");
+            }
+
+            if (matParam.getUseCount() > count) {
+                return R.error("鍙敤鏁伴噺涓嶈冻");
+            }
+        }
+
+        Date now = new Date();
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(104));
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(101L); // 宸ヤ綔鐘舵�侊細101.鐢熸垚鍑哄簱
+        wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬�
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+        wrkMast.setSourceStaNo(staDesc.getDeviceStn()); // 婧愮珯
+        wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+        wrkMast.setSourceLocNo(param.getLocNo()); // 婧愬簱浣�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("Y"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setBarcode(locMast.getBarcode());
+        wrkMast.setAppeUser(String.valueOf(getUserId())); // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(String.valueOf(getUserId()));
+        wrkMast.setModiTime(now);
+        wrkMast.setHostId(getHostId());
+        wrkMast.setCrnNo(staDesc.getDeviceNo());
+        if (!wrkMastService.save(wrkMast)) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鍑哄簱搴撲綅鍙凤細" + param.getLocNo());
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        for (PickMatParam matParam : param.getList()) {
+            LambdaQueryWrapper<Mat> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(Mat::getHostId, getHostId());
+            wrapper.eq(Mat::getStatus, 1);
+            wrapper.eq(Mat::getMatnr, matParam.getMatnr());
+            Mat mat = matService.getOne(wrapper);
+            if (mat == null) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐ワ紝鐗╂枡淇℃伅涓嶅瓨鍦細" + matParam.getMatnr());
+            }
+
+            WrkDetl wrkDetl = new WrkDetl();
+            wrkDetl.sync(mat);
+            wrkDetl.setOrderNo(matParam.getOrderNo());
+            wrkDetl.setWrkNo(workNo);
+            wrkDetl.setIoTime(now);
+            wrkDetl.setAnfme(matParam.getUseCount()); // 鏁伴噺
+            wrkDetl.setAppeTime(now);
+            wrkDetl.setAppeUser(getUserId());
+            wrkDetl.setModiTime(now);
+            wrkDetl.setModiUser(getUserId());
+            wrkDetl.setHostId(getHostId());
+            wrkDetl.setWrkMastId(wrkMast.getId());
+            wrkDetl.setZpallet(wrkMast.getBarcode());
+            if (!wrkDetlService.save(wrkDetl)) {
+                throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
+            }
+
+            //鏇存柊璁㈠崟宸ヤ綔鏁伴噺
+            orderDetlService.increaseWorkQtyByOrderNo(matParam.getOrderNo(), matParam.getMatnr(), matParam.getBatch(), matParam.getUseCount(), getHostId());
+        }
+        // 淇敼搴撲綅鐘舵��:   F.鍦ㄥ簱 ====>>> R.鍑哄簱棰勭害/P.鎷f枡/鐩樼偣/骞舵澘鍑哄簱涓�
+        locMast = locMastService.getOne(new LambdaQueryWrapper<LocMast>().eq(LocMast::getLocNo, param.getLocNo()).eq(LocMast::getHostId, getHostId()));
+        if (locMast.getLocSts().equals("F")) {
+            locMast.setLocSts("P");
+            locMast.setModiUser(getUserId());
+            locMast.setModiTime(now);
+            if (!locMastService.updateById(locMast)) {
+                throw new CoolException("棰勭害搴撲綅鐘舵�佸け璐ワ紝搴撲綅鍙凤細" + param.getLocNo());
+            }
+        } else {
+            throw new CoolException(param.getLocNo() + "搴撲綅涓嶆槸鍦ㄥ簱鐘舵��");
+        }
+
+        return R.ok();
+    }
+
+    @RequestMapping("/barcode/list/all")
+    @ManagerAuth(memo = "骞舵澘鍏ュ簱閫斾腑鎷f枡鍑哄簱鑾峰彇浠诲姟淇℃伅")
+    @Transactional
+    public R orderOutListOrder(@RequestBody String barcode) {
+        ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>();
+        if (Cools.isEmpty(barcode) || barcode.isEmpty()) {
+            List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 104));
+            wrkMastArrayList.addAll(wrkMasts);
+            List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 107));
+            wrkMastArrayList.addAll(wrkMasts1);
+        } else {
+            List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .like(WrkMast::getBarcode, barcode)
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 104));
+            wrkMastArrayList.addAll(wrkMasts);
+            List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .like(WrkMast::getBarcode, barcode)
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 107));
+            wrkMastArrayList.addAll(wrkMasts1);
+        }
+
+        return R.ok().add(wrkMastArrayList);
+    }
+
+    @RequestMapping("/barcode/list/pick")
+    @ManagerAuth(memo = "鎷f枡鍏ュ簱閫斾腑骞舵澘")
+    @Transactional
+    public R orderOutListOrderPick(@RequestBody String barcode) {
+        ArrayList<WrkMast> wrkMastArrayList = new ArrayList<>();
+        if (Cools.isEmpty(barcode) || barcode.isEmpty()) {
+            List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 103));
+            wrkMastArrayList.addAll(wrkMasts);
+            List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 107));
+            wrkMastArrayList.addAll(wrkMasts1);
+        } else {
+            List<WrkMast> wrkMasts = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .like(WrkMast::getBarcode, barcode)
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 103)
+            );
+            wrkMastArrayList.addAll(wrkMasts);
+            List<WrkMast> wrkMasts1 = wrkMastService.list(new LambdaQueryWrapper<WrkMast>()
+                    .like(WrkMast::getBarcode, barcode)
+                    .eq(WrkMast::getHostId, getHostId())
+                    .eq(WrkMast::getWrkSts, 199L)
+                    .eq(WrkMast::getIoType, 107));
+            wrkMastArrayList.addAll(wrkMasts1);
+        }
+
+        return R.ok().add(wrkMastArrayList);
+    }
+
 }

--
Gitblit v1.9.1