自动化立体仓库 - WMS系统
#
zjj
2024-11-29 e71c9fb58a721cc12b845259a6ffcaeb7d20da64
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -144,6 +144,8 @@
            orderDetl.setSuppCode(detlDto.getFromOrderNo());
            orderDetl.setMemo(detlDto.getMemo());
            orderDetl.setManu(detlDto.getMark());
            orderDetl.setSupp(detlDto.getSuppName());
            orderDetl.setSku(detlDto.getCustomer());
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
@@ -283,6 +285,8 @@
            orderDetl.setSuppCode(detlDto.getFromOrderNo());
            orderDetl.setMemo(detlDto.getMemo());
            orderDetl.setManu(detlDto.getMark());
            orderDetl.setSupp(detlDto.getSuppName());
            orderDetl.setSku(detlDto.getCustomer());
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
@@ -472,81 +476,19 @@
            // 分类
            Long tagId;
            // 一级分类
            if (!Cools.isEmpty(matParam.getGroupCode()) && !Cools.isEmpty(matParam.getGroupName())) {
                Tag priTag = tagService.selectByName(matParam.getGroupCode(), 1);
                if (priTag == null) {
                    Tag top = tagService.getTop();
                    NodeUtils nodeUtils = new NodeUtils();
                    nodeUtils.executePath(top.getId());
                    priTag = new Tag(
                            null,    // 编号
                            matParam.getGroupCode(),    // 名称
                            top.getId(),    // 父级
                            top.getName(),    // 父级名称
                            nodeUtils.path.toString(),    // 关联路径
                            nodeUtils.pathName.toString(),    // 关联路径名
                            0,    // 类型
                            null,    // 负责人
                            null,    // 图片
                            null,    // 简要描述
                            null,    // 数量
                            2,    // 等级
                            null,    // 排序
                            1,    // 状态
                            now,    // 添加时间
                            null,    // 添加人员
                            now,    // 修改时间
                            null,    // 修改人员
                            null    // 备注
                    );
                    if (tagMapper.insert(priTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                }
                // 二级分类
                Tag secTag = tagService.selectByName(matParam.getGroupName(), 2);
                if (secTag == null) {
                    NodeUtils nodeUtils = new NodeUtils();
                    nodeUtils.executePath(priTag.getId());
                    secTag = new Tag(
                            null,    // 编号
                            matParam.getGroupName(),    // 名称
                            priTag.getId(),    // 父级
                            priTag.getName(),    // 父级名称
                            nodeUtils.path.toString(),    // 关联路径
                            nodeUtils.pathName.toString(),    // 关联路径名
                            0,    // 类型
                            null,    // 负责人
                            null,    // 图片
                            null,    // 简要描述
                            null,    // 数量
                            2,    // 等级
                            null,    // 排序
                            1,    // 状态
                            now,    // 添加时间
                            null,    // 添加人员
                            now,    // 修改时间
                            null,    // 修改人员
                            null    // 备注
                    );
                    if (tagMapper.insert(secTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                }
                tagId = secTag.getId();
            } else {
                tagId = tagService.getTop().getId();
            Tag tag = tagService.selectOne(new EntityWrapper<Tag>().eq("memo", matParam.getGroupCode()));
            if (tag == null) {
                throw new CoolException("出错,未找到分类");
            }
            if (mat == null) {
                mat = new Mat();
                mat.sync(matParam);
//            mat.setMatnr(param.getMatnr());
//            mat.setMaktx(param.getMaktx());
//            mat.setSpecs(param.getSpecs());
//            mat.setModel(param.getModel());
                mat.setTagId(tagId);
                mat.setTagId(tag.getId());
                mat.setStatus(1);
                mat.setCreateTime(now);
                mat.setUpdateTime(now);
@@ -557,7 +499,7 @@
                }
            } else {
                mat.sync(matParam);
                mat.setTagId(tagId);
                mat.setTagId(tag.getId());
                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
                    throw new CoolException("更新已存在商品信息失败,请联系管理员");
                }
@@ -571,8 +513,8 @@
    public List<LocDetlByTimeDTO> selectTimeLocDetl(TimeSelectParam param) {
        ArrayList<LocDetlByTimeDTO> locDetlByTimeDTOS = new ArrayList<>();
        EntityWrapper<WrkMastLog> wrkMastLogEntityWrapper = new EntityWrapper<>();
        wrkMastLogEntityWrapper.ge("appe_time",param.getStartTime());
        wrkMastLogEntityWrapper.le("appe_time",param.getEndTime());
        wrkMastLogEntityWrapper.ge("modi_time",param.getStartTime());
        wrkMastLogEntityWrapper.le("modi_time",param.getEndTime());
//        wrkMastLogEntityWrapper.isNotNull("sheet_no");
        wrkMastLogService.selectList(wrkMastLogEntityWrapper).forEach(wrkMastLog -> {
            if (wrkMastLog.getWrkSts() == 5 || wrkMastLog.getWrkSts() == 15) {
@@ -585,7 +527,7 @@
                        if (!Cools.isEmpty(order)) {
                            locDetlByTimeDTO.setDate(order.getOrderTime());
                            locDetlByTimeDTO.setWarehouse(order.getItemName());
                            locDetlByTimeDTO.setOrderType(order.getDocType().toString());
                            locDetlByTimeDTO.setOrderType(order.getDocType$());
                        }
                        locDetlByTimeDTO.setMatnr(wrkDetlLog.getMatnr());
                        locDetlByTimeDTO.setLocNo(wrkMastLog.getIoType() <100? wrkMastLog.getLocNo(): wrkMastLog.getSourceLocNo());
@@ -593,6 +535,7 @@
                        locDetlByTimeDTO.setAnfme(wrkDetlLog.getAnfme());
                        locDetlByTimeDTO.setOrderNo(wrkDetlLog.getOrderNo());
                        locDetlByTimeDTO.setMark(wrkDetlLog.getManu());
                        locDetlByTimeDTO.setWorkNo(wrkDetlLog.getWrkNo().toString());
                        locDetlByTimeDTOS.add(locDetlByTimeDTO);
                    }
@@ -632,4 +575,136 @@
        return true;
    }
    @Override
    @Transactional
    public void syncTag(List<TagParam> param) {
        param.forEach(tag-> {
            // 分类
            Long tagId;
            Date now = new Date();
            if (Cools.isEmpty(tag.getParentItemClassId())){
                Tag priTag = tagService.selectByName("全部", 1);
                // 二级分类
                Tag secTag = tagService.selectByName(tag.getName(), 2);
                if (secTag == null) {
                    NodeUtils nodeUtils = new NodeUtils();
                    nodeUtils.executePath(priTag.getId());
                    secTag = new Tag(
                            null,    // 编号
                            tag.getName(),    // 名称
                            priTag.getId(),    // 父级
                            priTag.getName(),    // 父级名称
                            nodeUtils.path.toString(),    // 关联路径
                            nodeUtils.pathName.toString(),    // 关联路径名
                            0,    // 类型
                            null,    // 负责人
                            null,    // 图片
                            null,    // 简要描述
                            null,    // 数量
                            2,    // 等级
                            null,    // 排序
                            1,    // 状态
                            now,    // 添加时间
                            null,    // 添加人员
                            now,    // 修改时间
                            null,    // 修改人员
                            tag.getItemClassId()    // 备注
                    );
                    if (tagMapper.insert(secTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                }
            }else {
                Tag priTag =tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getParentItemClassId()));
                if (priTag == null) {
                    Tag top = tagService.getTop();
                    NodeUtils nodeUtils = new NodeUtils();
                    nodeUtils.executePath(top.getId());
                    priTag = new Tag(
                            null,    // 编号
                            tag.getParentName(),    // 名称
                            top.getId(),    // 父级
                            top.getName(),    // 父级名称
                            nodeUtils.path.toString(),    // 关联路径
                            nodeUtils.pathName.toString(),    // 关联路径名
                            0,    // 类型
                            null,    // 负责人
                            null,    // 图片
                            null,    // 简要描述
                            null,    // 数量
                            2,    // 等级
                            null,    // 排序
                            1,    // 状态
                            now,    // 添加时间
                            null,    // 添加人员
                            now,    // 修改时间
                            null,    // 修改人员
                            tag.getParentItemClassId()    // 备注
                    );
                    if (tagMapper.insert(priTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                }
                // 二级分类
                Tag secTag = tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getItemClassId()));
                NodeUtils nodeUtils = new NodeUtils();
                nodeUtils.executePath(priTag.getId());
                if (secTag == null) {
                    secTag = new Tag(
                            null,    // 编号
                            tag.getName(),    // 名称
                            priTag.getId(),    // 父级
                            priTag.getName(),    // 父级名称
                            nodeUtils.path.toString(),    // 关联路径
                            nodeUtils.pathName.toString(),    // 关联路径名
                            0,    // 类型
                            null,    // 负责人
                            null,    // 图片
                            null,    // 简要描述
                            null,    // 数量
                            2,    // 等级
                            null,    // 排序
                            1,    // 状态
                            now,    // 添加时间
                            null,    // 添加人员
                            now,    // 修改时间
                            null,    // 修改人员
                            tag.getItemClassId()    // 备注
                    );
                    if (tagMapper.insert(secTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                }else {
                    secTag.setName(tag.getName());
                    secTag.setParentId(priTag.getId());
                    secTag.setParentName(priTag.getName());
                    secTag.setPath(nodeUtils.path.toString());
                    secTag.setPathName(nodeUtils.pathName.toString());
                    if (tagMapper.updateById(secTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                    List<Tag> tags = tagService.selectList(new EntityWrapper<Tag>().eq("parent_id", secTag.getId()));
                    if (!Cools.isEmpty(tags)) {
                        for (Tag tag1 : tags) {
                            tag1.setPath(nodeUtils.path.toString()+","+secTag.getId());
                            tag1.setPathName(nodeUtils.pathName.toString()+","+secTag.getName());
                            if (tagMapper.updateById(tag1) == 0) {
                                throw new CoolException("服务器内部错误,请联系管理员");
                            }
                        }
                    }
                }
            }
        });
    }
}