自动化立体仓库 - WMS系统
LSH
2023-07-21 bc8e064b89dcb9cf3500a5aeaaecf9e0a7f6b4ab
#桁架上位软件:单托拆垛完成通知 接口实装
5个文件已修改
98 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/WaitPakin.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/SingleMountUnstackingCompleteParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 79 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WaitPakin.java
@@ -33,6 +33,9 @@
    @ApiModelProperty(value= "商品名称")
    private String maktx;
    /*
     * 徐工汉云上饶江铜:木箱编码
     * */
    @ApiModelProperty(value= "批号")
    private String batch;
@@ -43,12 +46,18 @@
    @ApiModelProperty(value= "规格")
    private String specs;
    /*
     * 徐工汉云上饶江铜:批次
     * */
    @ApiModelProperty(value= "型号")
    private String model;
    @ApiModelProperty(value= "颜色")
    private String color;
    /*
     * 徐工汉云上饶江铜:木箱类型
     * */
    @ApiModelProperty(value= "品牌")
    private String brand;
@@ -58,9 +67,6 @@
    @ApiModelProperty(value= "单价")
    private Double price;
    /*
    * 徐工汉云上饶江铜:木箱编码
    * */
    @ApiModelProperty(value= "sku")
    private String sku;
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -65,6 +65,10 @@
    @TableField("crn_no")
    private Integer crnNo;
    /**
     * 徐工汉云拆垛标记  0: 未拆  1: 已拆
     */
    @ApiModelProperty(value= "")
    @TableField("sheet_no")
    private String sheetNo;
src/main/java/com/zy/asrs/entity/param/PalletizingCompleteParam.java
@@ -12,6 +12,7 @@
    private String barcode;//    是    字符串    托盘码
    private String palletizingNo;//    是    字符串    码垛位编号
    private String boxType;//    是    字符串    码垛位编号
    private String createTime;//    是    字符串    创建时间
    private List<MatList> matLists;//        是    列表    拆垛货物信息(2箱,尾箱可能1箱)
src/main/java/com/zy/asrs/entity/param/SingleMountUnstackingCompleteParam.java
@@ -12,7 +12,7 @@
    private String palletizingNo;//    是    字符串    拆垛位编号
    private String createTime;//        是    字符串    创建时间
    private String uuid;//        是    字符串    时间戳
    private List<MatList> matLists;//        是    列表    拆垛货物信息(2箱,尾箱可能1箱)
    private List<MatList> matLists;//        是    列表    拆垛剩余货物信息(可以为空)
    @Data
    public static class MatList{
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -673,9 +673,14 @@
            throw new CoolException("参数:托盘码 barcode为空");
        }else if (Cools.isEmpty(param.getPalletizingNo())){
            throw new CoolException("参数:码垛位编号 palletizingNo为空");
        }else if (Cools.isEmpty(param.getBoxType())){
            throw new CoolException("参数:木箱类型 boxType为空");
        }else if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()==0){
            throw new CoolException("参数:物料明细 matLists为空");
        }
        ArrayList<String> positions = new ArrayList<>();   //木箱位置查重      (orgin)
        ArrayList<String> boxNos = new ArrayList<>();   //木箱唯一编码查重  (batch)
        //判断matLists参数
        for (PalletizingCompleteParam.MatList matList:param.getMatLists()){
            if (Cools.isEmpty(matList.getMatnr())){
@@ -688,6 +693,18 @@
                throw new CoolException("物料编码:"+matList.getMatnr()+"、参数:木箱中铜箔数量 anfme为空");
            }else if (Cools.isEmpty(matList.getWeight()) || matList.getWeight().equals(0D)){
                throw new CoolException("物料编码:"+matList.getMatnr()+"、参数:重量 weight为空");
            }
            if (!positions.contains(matList.getPosition())){
                positions.add(matList.getPosition());
            }else {
                throw new CoolException("参数:木箱编号 boxNo:"+matList.getBoxNo()+",木箱位置存在重复:"+matList.getPosition());
            }
            if (!boxNos.contains(matList.getBoxNo())){
                boxNos.add(matList.getBoxNo());
            }else {
                throw new CoolException("参数:木箱编号 boxNo:"+matList.getBoxNo()+",木箱编码存在重复");
            }
        }
@@ -729,9 +746,10 @@
            }
            WaitPakin waitPakin = new WaitPakin();
            waitPakin.sync(mat);
            waitPakin.setBatch(matList.getBatch());     //批次
            waitPakin.setModel(matList.getBatch());     //批次
            waitPakin.setSpecs(matList.getSpecs());     //规格
            waitPakin.setSku(matList.getBoxNo());       //木箱编码
            waitPakin.setBatch(matList.getBoxNo());       //木箱编码
            waitPakin.setBrand(param.getBoxType());     //木箱类型
            waitPakin.setZpallet(param.getBarcode());   //托盘码
            waitPakin.setOrigin(matList.getPosition()); //木箱在托盘上的位置
            waitPakin.setIoStatus("N");     // 入出状态
@@ -782,7 +800,7 @@
            }
            boolean sign=true;
            for (WrkDetl wrkDetl:wrkDetls){
                if (wrkDetl.getSku().equals(matList.getBoxNo())){//木箱编码
                if (wrkDetl.getBatch().equals(matList.getBoxNo())){//木箱编码
                    wrkDetl.setInspect(1);
                    wrkDetlService.updateById(wrkDetl);
                    wrkDetlsNew.add(wrkDetl);
@@ -813,9 +831,8 @@
        wrkMast.setAppeTime(now);
        wrkMast.setModiUser(userId);
        wrkMast.setModiTime(now);
        boolean res = wrkMastService.insert(wrkMast);
        if (!res) {
            throw new CoolException("生成工作档失败");
        if (!wrkMastService.insert(wrkMast)) {
            throw new CoolException("生成工作档失败==》桁架上位软件:单次拆垛完成通知");
        }
        for (WrkDetl wrkDetl : wrkDetlsNew){
@@ -824,7 +841,7 @@
            wrkDetl.setAppeTime(now);
            wrkDetl.setModiTime(now);
            if (!wrkDetlService.insert(wrkDetl)) {
                throw new CoolException("保存工作明细失败");
                throw new CoolException("保存工作明细失败==》桁架上位软件:单次拆垛完成通知");
            }
        }
@@ -837,7 +854,55 @@
    @Transactional
    public void singleMountUnstackingComplete(SingleMountUnstackingCompleteParam param) {
        Long userId = 8888L;//桁架上位软件
        //判断param参数
        if (Cools.isEmpty(param.getBarcode())){
            throw new CoolException("参数:托盘码 barcode为空");
        }else if (Cools.isEmpty(param.getPalletizingNo())){
            throw new CoolException("参数:码垛位编号 palletizingNo为空");
        }
        WrkMast wrkMastMatrix = wrkMastService.selectByBarcode(param.getBarcode());
        if (Cools.isEmpty(wrkMastMatrix)){
            throw new CoolException("参数:托盘码查询工作档失败:"+param.getBarcode());
        }else {
            if (!wrkMastMatrix.getIoType().equals(101)){
                List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNoUnstacking(wrkMastMatrix.getWrkNo());
                if (Cools.isEmpty(param.getMatLists()) || param.getMatLists().size()==0 || param.getMatLists().size()!=wrkDetls.size()){
                    throw new CoolException("返回物料明细数为"+param.getMatLists().size()+",托盘码:"+param.getBarcode()+"应剩余物料数:"+wrkDetls.size());
                }
                ArrayList<String> orgin = new ArrayList<>();
                //判断matLists参数
                for (SingleMountUnstackingCompleteParam.MatList matList : param.getMatLists()){
                    if (Cools.isEmpty(matList.getPosition())){
                        throw new CoolException("参数:码垛位置 position为空");
                    }else if (Cools.isEmpty(matList.getBoxNo())){
                        throw new CoolException("参数:木箱编号 boxNo为空");
                    }
                    if (!orgin.contains(matList.getPosition())){
                        orgin.add(matList.getPosition());
                    }else {
                        throw new CoolException("参数:木箱编号 boxNo:"+matList.getBoxNo()+",木箱位置存在重复");
                    }
                    boolean sign=true;
                    for (WrkDetl wrkDetl:wrkDetls){
                        if (wrkDetl.getBatch().equals(matList.getBoxNo())){//木箱编码
                            wrkDetl.setOrigin(matList.getPosition());
                            wrkDetlService.updateById(wrkDetl);
                            sign=false;
                            break;
                        }
                    }
                    if (sign){
                        throw new CoolException("参数:木箱编号 boxNo:"+matList.getBoxNo()+"未查询到对应的工作明细!");
                    }
                }
            }
        }
        wrkMastMatrix.setSheetNo("1");
        if (!wrkMastService.updateById(wrkMastMatrix)){
            throw new CoolException("更新工作档失败==》桁架上位软件:单托拆垛完成通知");
        }
    }
    /*...........................上饶江铜..............以上.............徐工汉云...........................*/