自动化立体仓库 - WMS系统
lty
2025-04-08 78a59eda850857e1bfeb48541f0c64d442877a4d
#实现pda简单入库出库操作
5个文件已修改
53 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/WorkController.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WorkController.java
@@ -95,6 +95,17 @@
        return R.ok("出库启动成功");
    }
    @RequestMapping("/plate/out/startFree")
    @ManagerAuth(memo = "自动出库作业")
    public R fullStoreTakeStartFree(@RequestBody String barcode) {
        StockOutParam param = workService.selectGood(barcode);
        if(param == null) {
            return R.error("该条码不存在于库存");
        }
        workService.startupFullTakeStore(param, getUserId());
        return R.ok("出库启动成功");
    }
    @RequestMapping("/empty/plate/in/start")
    @ManagerAuth(memo = "空板入库")
    public R emptyPlateInStart(@RequestParam Integer sourceStaNo) {
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -29,6 +29,7 @@
    private String locNo;
    @ApiModelProperty(value= "托盘条码")
    @TableField("zpallet")
    private String zpallet;
    @ApiModelProperty(value= "数量")
src/main/java/com/zy/asrs/service/WorkService.java
@@ -89,4 +89,5 @@
     */
    void shuttleTransfer(List<String> locNos);
    StockOutParam selectGood(String barcode);
}
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -128,7 +128,7 @@
            orderService.updateSettle(order.getId(), 2L, userId);
        }
        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", param.getLocno()));
        LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "O"));
        if (Cools.isEmpty(locMast1)) {
            throw new CoolException("未找到正确的库位信息");
        }
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -9,10 +9,7 @@
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.EmptyPlateOutParam;
import com.zy.asrs.entity.param.FullStoreParam;
import com.zy.asrs.entity.param.LocDetlAdjustParam;
import com.zy.asrs.entity.param.StockOutParam;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.service.*;
import com.zy.asrs.utils.Utils;
import com.zy.common.model.*;
@@ -311,7 +308,7 @@
            } else {
                throw new CoolException(dto.getLocNo() + "库位不是在库状态");
            }
            locMastService.breakUp(dto.getLocNo(), excludeLocNos);
//            locMastService.breakUp(dto.getLocNo(), excludeLocNos);
        }
    }
@@ -1155,4 +1152,35 @@
        }
    }
    @Override
    public StockOutParam selectGood(String barcode) {
        // 查询托盘上的物料信息
        // 去掉可能的多余引号或者空格
        barcode = barcode.replaceAll("\"", "").trim();
        // 尝试将 barcode 转换为 int 类型
        int barcodeInt = Integer.parseInt(barcode);
        List<LocDetl> locDetls = locDetlService.selectList(
                new EntityWrapper<LocDetl>().eq("zpallet", barcodeInt)
        );
        if (locDetls == null || locDetls.isEmpty()) {
            return null;
        }
        StockOutParam param = new StockOutParam();
        param.setOutSite(101); // 可以根据业务动态设置出站口
        param.setLocDetls(locDetls.stream().map(detl -> {
            StockOutParam.LocDetl loc = new StockOutParam.LocDetl();
            loc.setLocNo(detl.getLocNo());
            loc.setMatnr(detl.getMatnr());
            loc.setBatch(detl.getBatch());
            loc.setCount(detl.getAnfme());
            return loc;
        }).collect(Collectors.toList()));
        return param;
    }
}