自动化立体仓库 - WMS系统
#
Junjie
昨天 d51a3179dd086c902df4a6e8afeaef3a5d22bd93
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -268,6 +268,7 @@
        matParam.setWeight(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue());
        matParam.setAnfme2(nccJcQilibcBarcodeflowWms.getNastnum() == null ? 0.0D : nccJcQilibcBarcodeflowWms.getNastnum().doubleValue());
        matParam.setTiaoma(nccJcQilibcBarcodeflowWms.getVbarcode());
        matParam.setCstateid(nccJcQilibcBarcodeflowWms.getCstateid());
        return R.ok().add(matParam);
    }
@@ -290,36 +291,75 @@
        matParam.setAnfme(0.0D);
        matParam.setAnfme2(0.0D);
        matParam.setTiaoma(nccQilibcTmprintWms.getBarcode());
        matParam.setStandby1(nccQilibcTmprintWms.getCkbm());
        matParam.setCstateid(nccQilibcTmprintWms.getCstateid());
        return R.ok().add(matParam);
    }
    @RequestMapping(value = "/mat/back")
    @ManagerAuth
    public R pdaSearchBack(@RequestParam String barcode) {
        WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>()
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>()
                .eq("barcode", barcode)
                .in("io_type", 101, 103, 107)
                .in("io_type", 101, 103, 107, 53, 57)
                .orderBy("appe_time", false)
        );
        if(null == wrkMastLog) {
            return R.error("未找到此托盘码出库记录");
        String matnr = null;
        String batch = null;
        String cstateid = null;
        String standby1 = null;
        String orderNo = null;
        if(wrkMast != null) {
            List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>()
                    .eq("wrk_no", wrkMast.getWrkNo())
                    .eq("zpallet", barcode)
                    .orderBy("io_time", false)
            );
            if (wrkDetls.isEmpty()) {
                return R.error("未找到此托盘码出库记录明细");
            }
            WrkDetl wrkDetl = wrkDetls.get(0);
            matnr = wrkDetl.getMatnr();
            batch = wrkDetl.getBatch();
            cstateid = wrkDetl.getCstateid();
            standby1 = wrkDetl.getStandby1();
            orderNo = wrkDetl.getOrderNo();
        }
        List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>()
                .eq("wrk_no", wrkMastLog.getWrkNo())
                .eq("zpallet", barcode)
                .orderBy("io_time", false)
        );
        if (wrkDetlLogs.isEmpty()) {
            return R.error("未找到此托盘码出库记录明细");
        }
        if(matnr == null) {
            WrkMastLog wrkMastLog = wrkMastLogService.selectOne(new EntityWrapper<WrkMastLog>()
                    .eq("barcode", barcode)
                    .in("io_type", 101, 103, 107)
                    .orderBy("appe_time", false)
            );
        WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
        String batch = wrkDetlLog.getBatch();
            if(null == wrkMastLog) {
                return R.error("未找到此托盘码出库记录");
            }
            List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>()
                    .eq("wrk_no", wrkMastLog.getWrkNo())
                    .eq("zpallet", barcode)
                    .orderBy("io_time", false)
            );
            if (wrkDetlLogs.isEmpty()) {
                return R.error("未找到此托盘码出库记录明细");
            }
            WrkDetlLog wrkDetlLog = wrkDetlLogs.get(0);
            matnr = wrkDetlLog.getMatnr();
            batch = wrkDetlLog.getBatch();
            cstateid = wrkDetlLog.getCstateid();
            standby1 = wrkDetlLog.getStandby1();
            orderNo = wrkDetlLog.getOrderNo();
        }
        HashMap<String, Object> map = new HashMap<>();
        Mat mat = matService.selectByMatnr(wrkDetlLog.getMatnr());
        Mat mat = matService.selectByMatnr(matnr);
        if (mat == null) {
            return R.error("未找到物料明细");
        }
@@ -329,11 +369,20 @@
        matParam.setAnfme(0.0D);
        matParam.setAnfme2(0.0D);
        matParam.setTiaoma(batch);
        matParam.setCstateid(cstateid);
        matParam.setStandby1(standby1);
        String[] split = wrkDetlLog.getOrderNo().split("-");
        String[] split = orderNo.split("-");
        map.put("orderNo", split[0]);
        map.put("matData", matParam);
        return R.ok().add(map);
    }
    @RequestMapping("/comb/cancel")
    @ManagerAuth(memo = "取消组托")
    public R combCancel(@RequestBody CombCancelParam param) {
        mobileService.combCancel(param, getUserId());
        return R.ok("取消组托成功");
    }
    @RequestMapping("/comb/auth")
@@ -355,41 +404,41 @@
            ckbmList.add(storeType.getStoreId());
        }
        NccSaleXclGgsybWms nccSaleXclGgsybWms = nccSaleXclGgsybWmsService.selectOne(new EntityWrapper<NccSaleXclGgsybWms>()
                .eq("WLBM", combMat.getMatnr())
                .eq("VBATCHCODE", combMat.getBatch())
                .in("CKBM", ckbmList)
        );
        if(null == nccSaleXclGgsybWms) {
            return R.error("未查到ERP库存");
        }
        //ERP库存数量
        BigDecimal zsl = nccSaleXclGgsybWms.getZsl();
        //获取立库数量
        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
                .eq("matnr", combMat.getMatnr())
                .eq("batch", combMat.getBatch())
        );
        BigDecimal stockNum = new BigDecimal(0);
        for (LocDetl locDetl : locDetls) {
            stockNum = stockNum.add(BigDecimal.valueOf(locDetl.getAnfme()));
        }
        //加上组托数量
        for (CombParam.CombMat mat : combParam.getCombMats()) {
            stockNum = stockNum.add(BigDecimal.valueOf(mat.getAnfme()));
        }
        if(stockNum.doubleValue() > zsl.doubleValue()) {
            return R.error("组托数量超过ERP库存");
        }
        List<CombParam.CombMat> combMats = combParam.getCombMats();
        for (CombParam.CombMat mat : combMats) {
            mat.setStandby1(nccSaleXclGgsybWms.getCkbm());
        }
//        NccSaleXclGgsybWms nccSaleXclGgsybWms = nccSaleXclGgsybWmsService.selectOne(new EntityWrapper<NccSaleXclGgsybWms>()
//                .eq("WLBM", combMat.getMatnr())
//                .eq("VBATCHCODE", combMat.getBatch())
//                .in("CKBM", ckbmList)
//        );
//        if(null == nccSaleXclGgsybWms) {
//            return R.error("未查到ERP库存");
//        }
//
//        //ERP库存数量
//        BigDecimal zsl = nccSaleXclGgsybWms.getZsl();
//
//        //获取立库数量
//        List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>()
//                .eq("matnr", combMat.getMatnr())
//                .eq("batch", combMat.getBatch())
//        );
//        BigDecimal stockNum = new BigDecimal(0);
//        for (LocDetl locDetl : locDetls) {
//            stockNum = stockNum.add(BigDecimal.valueOf(locDetl.getAnfme()));
//        }
//
//        //加上组托数量
//        for (CombParam.CombMat mat : combParam.getCombMats()) {
//            stockNum = stockNum.add(BigDecimal.valueOf(mat.getAnfme()));
//        }
//
//        if(stockNum.doubleValue() > zsl.doubleValue()) {
//            return R.error("组托数量超过ERP库存");
//        }
//
//        List<CombParam.CombMat> combMats = combParam.getCombMats();
//        for (CombParam.CombMat mat : combMats) {
//            mat.setStandby1(nccSaleXclGgsybWms.getCkbm());
//        }
        mobileService.comb(combParam, getUserId());
        return R.ok("组托成功");
@@ -690,4 +739,18 @@
        return R.ok("上报ERP成功");
    }
    @RequestMapping("/pallet/toOutSta")
    @ManagerAuth(memo = "托盘去出库口")
    public R toOutSta(@RequestBody PalletToOutStaParam param) {
        mobileService.toOutSta(param, getUserId());
        return R.ok();
    }
    @RequestMapping("/pallet/toAllOut")
    @ManagerAuth(memo = "拣料转全板")
    public R toAllOut(@RequestBody PalletToAllOutParam param) {
        mobileService.toAllOut(param, getUserId());
        return R.ok();
    }
}