自动化立体仓库 - WMS系统
pang.jiabao
2024-08-17 e8f1e607e6933008495db07ecbc70242a6d5eb06
盘点确认,出库复核
4个文件已修改
51 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/PdckqrParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/MobileService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -545,20 +545,19 @@
    @PostMapping("/ckfh/auth")
    @ManagerAuth(memo = "出库复核确认")
    public synchronized R pakoutFhqr(@RequestBody GhjtApiParam param) {
    public synchronized R pakoutFhqr(@RequestBody PdckqrParam param) {
        // 根据工作号确认复核
        if(Cools.isEmpty(param) || Cools.isEmpty(param.getWorkNo()) || Cools.isEmpty(param.getCheck())){
        if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) || Cools.isEmpty(param.getMaterials())){
            return R.parse(BaseRes.PARAM);
        }
        mobileService.pakoutFhqr(param.getWorkNo(), param.getCheck());
        return R.ok("复核确认成功");
        return mobileService.pakoutFhqr(param);
    }
    @PostMapping("/pdckqr/auth")
    @ManagerAuth(memo = "盘点出库确认")
    public synchronized R pdckqr(@RequestBody PdckqrParam param) {
        // 根据工作号确认复核
        if(Cools.isEmpty(param) || Cools.isEmpty(param.getWorkNo()) ||  Cools.isEmpty(param.getMaterials())){
        if(Cools.isEmpty(param) || Cools.isEmpty(param.getBarcode()) ||  Cools.isEmpty(param.getMaterials())){
            return R.parse(BaseRes.PARAM);
        }
        return mobileService.pdckqr(param);
src/main/java/com/zy/asrs/entity/param/PdckqrParam.java
@@ -14,6 +14,8 @@
    private Integer workNo;
    private String barcode;
    private List<Material> materials;
    @Data
src/main/java/com/zy/asrs/service/MobileService.java
@@ -48,7 +48,7 @@
    /**
     * 出库复核确认
     */
    void pakoutFhqr(Integer workNo, Integer check);
    R pakoutFhqr(PdckqrParam param);
    /**
     * 盘点出库确认
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -1167,37 +1167,43 @@
    @Override
    @Transactional
    public void pakoutFhqr(Integer workNo, Integer check) {
    public R pakoutFhqr(PdckqrParam param) {
         // 获取工作档
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", workNo));
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
        if (wrkMast == null) {
            throw new CoolException("工作档不存在:" + workNo);
            throw new CoolException("工作档不存在:" + param.getBarcode());
        }
        if (wrkMast.getIoType() != 101 || wrkMast.getWrkSts() != 20) {
            throw new CoolException(wrkMast.getWrkNo() + ",工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配");
        }
        if (wrkMast.getWrkSts() != 20) {
            throw new CoolException("工作档当前状态异常:" + workNo + ",状态:" + wrkMast.getWrkSts());
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        List<PdckqrParam.Material> materials = param.getMaterials();
        if (check == 1) {
            // 复核确认,更新状态为15出库完成更新
            wrkMast.setWrkSts(14L);
            wrkMastService.updateById(wrkMast);
        boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials);
        if (isFullyCancelled) {
                // 复核确认,更新状态为15出库完成更新
                wrkMast.setWrkSts(14L);
                wrkMastService.updateById(wrkMast);
        } else {
            throw new CoolException("出口复核失败");
        }
        return R.ok("出口复核成功");
    }
    @Override
    @Transactional
    public R pdckqr(PdckqrParam param) {
        WrkMast wrkMast = wrkMastService.selectById(param.getWorkNo());
        WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode",param.getBarcode()));
        if (wrkMast == null) {
            throw new CoolException("工作档不存在:" + param.getWorkNo());
            throw new CoolException("工作档不存在:" + param.getBarcode());
        }
        if (wrkMast.getIoType() != 107 || wrkMast.getWrkSts() != 2) {
            throw new CoolException(param.getWorkNo() + "工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配");
            throw new CoolException(wrkMast.getWrkNo() + ",工作档类型:" + wrkMast.getIoType() + "工作状态:" + wrkMast.getWrkSts() + ",不匹配");
        }
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(param.getWorkNo());
        List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
        List<PdckqrParam.Material> materials = param.getMaterials();
        boolean isFullyCancelled = compareAndCheckCancellation(wrkDetls, materials);
@@ -1480,7 +1486,7 @@
            for (WrkDetl p1 : list1) {
                boolean cancelled = false;
                for (PdckqrParam.Material p2 : remainingList2) {
                    if (p1.getBatch().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 卷号和箱号相同
                    if (p1.getUnit().equals(p2.getBoxNo()) && p1.getModel().equals(p2.getRollNo())) { // 卷号和箱号相同
                        remainingList2.remove(p2);
                        cancelled = true;
                        break;