自动化立体仓库 - WMS系统
pang.jiabao
2024-07-25 495129d546e7ef569e3dba02a85342477e424974
pda组托修改
5个文件已修改
147 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/waitPakin/waitPakin.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -156,7 +156,7 @@
    }
    @RequestMapping("/comb/auth")
    @ManagerAuth(memo = "组托")
    @ManagerAuth(memo = "pda组托")
    public R comb(@RequestBody CombParam combParam){
        mobileService.comb(combParam, getUserId());
        return R.ok("组托成功");
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -28,7 +28,7 @@
        private String matnr;
        // 商品名称
        private String maktx;
        private String maktx; // 也存编号
        // 型号
        private String model;
@@ -37,13 +37,22 @@
        private String batch;
        // 规格
        private String specs;
        private String specs; // 膜类型
        // 生产日期
        private String manuDate;
        // 物料数量
        private Double anfme;
        private Double anfme; // 默认1
        // 卷长
        private Double length;
        // 卷宽
        private Double weight; // 存卷宽
        // 卷面积
        private Double volume;
    }
}
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -83,23 +83,23 @@
    @Override
    @Transactional
    public void comb(CombParam param, Long userId) {
        if (Cools.isEmpty(param.getBarcode(), param.getCombMats())) {
        String barcode = param.getBarcode();
        if (Cools.isEmpty(barcode, param.getCombMats())) {
            throw new CoolException(BaseRes.PARAM);
        }
        if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null || obj.getAnfme() == 0)){
            throw new CoolException("请检查入库物料数量");
        }
//        if(param.getCombMats().stream().anyMatch(obj -> obj.getAnfme() == null || obj.getAnfme() == 0)){
//            throw new CoolException("请检查入库物料数量");
//        }
        // 判断是否有相同条码的数据
        if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
            throw new CoolException(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 (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
//                eq("zpallet", param.getBarcode()).eq("io_status", "N")) > 0) {
//            throw new CoolException(param.getBarcode() + "数据正在进行入库");
//        }
        int countLoc = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("zpallet",barcode));
        int countWrk = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("zpallet", barcode));
        int countwait = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("zpallet", barcode));
        if (countLoc > 0 || countWrk > 0 || countwait > 0) {
            throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + param.getBarcode());
            throw new CoolException("组托档/工作档/库存条码数据已存在===>>" + barcode);
        }
        //设置非null批号,
@@ -115,33 +115,35 @@
        if (Cools.isEmpty(param.getOrderNo())) {
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
                detlDto.setModel(elem.getModel());
                detlDto.setSpecs(elem.getSpecs());
                detlDto.setManuDate(elem.getManuDate());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    assert one != null;
                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
                } else {
                    detlDtos.add(detlDto);
                }
            });
//            List<DetlDto> detlDtos = new ArrayList<>();
//            param.getCombMats().forEach(elem -> {
//                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
//                detlDto.setModel(elem.getModel());
//                detlDto.setSpecs(elem.getSpecs());
//                detlDto.setManuDate(elem.getManuDate());
//                if (DetlDto.has(detlDtos, detlDto)) {
//                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
//                    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() + "商品档案不存在");
            for (CombParam.CombMat combMat: param.getCombMats()) {
                String batch = combMat.getBatch();
                int countL = locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("batch", batch));
                int countW = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("batch", batch));
                int countP = waitPakinService.selectCount(new EntityWrapper<WaitPakin>().eq("batch", batch));
                if (countL > 0 || countW > 0 || countP > 0) {
                    throw new CoolException("该批号已经存在===>>" + batch);
                }
                WaitPakin waitPakin = new WaitPakin();
                waitPakin.sync(mat);
                waitPakin.setBatch(detlDto.getBatch());
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.sync(combMat);
                waitPakin.setBarcode(barcode);   // 托盘码,用这个
                waitPakin.setZpallet(barcode); // 托盘码
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
                waitPakin.setAnfme(1.0);  // 数量
                waitPakin.setStatus("Y");    // 状态
                waitPakin.setAppeUser(userId);
                waitPakin.setAppeTime(now);
@@ -151,6 +153,27 @@
                    throw new CoolException("保存入库通知档失败");
                }
            }
//
//            for (DetlDto detlDto : detlDtos) {
//                Mat mat = matService.selectByMatnr(detlDto.getMatnr());
//                if (Cools.isEmpty(mat)) {
//                    throw new CoolException(detlDto.getMatnr() + "商品档案不存在");
//                }
//                WaitPakin waitPakin = new WaitPakin();
//                waitPakin.sync(mat);
//                waitPakin.setBatch(detlDto.getBatch());
//                waitPakin.setZpallet(barcode);   // 托盘码
//                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("保存入库通知档失败");
//                }
//            }
        // 关联组托
        } else {
            Order order = orderService.selectByNo(param.getOrderNo());
@@ -189,7 +212,7 @@
                waitPakin.sync(mat);
                waitPakin.setOrderNo(order.getOrderNo());   // 单据编号
                waitPakin.setBatch(detlDto.getBatch());     // 序列码
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.setZpallet(barcode);   // 托盘码
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
                waitPakin.setStatus("Y");    // 状态
src/main/webapp/static/js/common.js
@@ -222,30 +222,28 @@
]
var detlCols = [
    {field: 'matnr', align: 'center',title: '商品编号(品号)', sort:true}
    ,{field: 'maktx', align: 'center',title: '商品名称(品名)', sort:true}
    ,{field: 'orderNo', align: 'center',title: '单据编号', hide: false}
    ,{field: 'batch', align: 'center',title: '货品特征', sort:true}
    ,{field: 'anfme', align: 'center',title: '数量', hide: false}
    ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false}
    ,{field: 'specs', align: 'center',title: '规格', hide: false}
    ,{field: 'model', align: 'center',title: '代码', hide: true}
    {field: 'matnr', align: 'center',title: '物料编号', sort:true}
    ,{field: 'maktx', align: 'center',title: '商品名称(品名)', sort:true,hide: true}
    ,{field: 'orderNo', align: 'center',title: '单据编号', hide: true}
    ,{field: 'batch', align: 'center',title: '批号', sort:true,hide: false}
    ,{field: 'model', align: 'center',title: '膜类型', hide: false}
    ,{field: 'anfme', align: 'center',title: '数量', hide: true}
    ,{field: 'zpallet', align: 'center',title: '条码', hide: true}
    ,{field: 'specs', align: 'center',title: '型号', hide: false}
    ,{field: 'color', align: 'center',title: '颜色', hide: true}
    ,{field: 'brand', align: 'center',title: '品牌', hide: true}
    ,{field: 'unit', align: 'center',title: '单位', hide: false}
    ,{field: 'unit', align: 'center',title: '单位', hide: true}
    ,{field: 'price', align: 'center',title: '单价', hide: true}
    ,{field: 'sku', align: 'center',title: 'sku', hide: true}
    ,{field: 'units', align: 'center',title: '单位量', hide: true}
    ,{field: 'barcode', align: 'center',title: '条码', hide: true}
    ,{field: 'origin', align: 'center',title: '产地', hide: true}
    ,{field: 'manu', align: 'center',title: '厂家', hide: true}
    ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true}
    ,{field: 'manuDate', align: 'center',title: '生产日期', hide: false}
    ,{field: 'itemNum', align: 'center',title: '品项数', hide: true}
    ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true}
    ,{field: 'weight', align: 'center',title: '单箱净重', hide: true}
    ,{field: 'length', align: 'center',title: '单箱毛重', hide: true}
    ,{field: 'volume', align: 'center',title: '单箱体积', hide: true}
    ,{field: 'length', align: 'center',title: '长', hide: false}
    ,{field: 'weight', align: 'center',title: '宽', hide: false}
    ,{field: 'volume', align: 'center',title: '体积', hide: false}
    ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true}
    ,{field: 'supp', align: 'center',title: '供应商', hide: true}
    ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true}
@@ -255,5 +253,6 @@
    ,{field: 'source$', align: 'center',title: '制购', hide: true}
    ,{field: 'check$', align: 'center',title: '要求检验', hide: true}
    ,{field: 'danger$', align: 'center',title: '危险品', hide: true}
    ,{field: 'barcode', align: 'center',title: '条码', hide: false}
]
src/main/webapp/views/waitPakin/waitPakin.html
@@ -16,12 +16,12 @@
<div id="search-box" class="layui-form layui-card-header">
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="zpallet" placeholder="托盘条码" autocomplete="off">
            <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="matnr" placeholder="商品编号" autocomplete="off">
            <input class="layui-input" type="text" name="matnr" placeholder="物料编号" autocomplete="off">
        </div>
    </div>
    <!-- 日期范围 -->