自动化立体仓库 - WMS系统
#
zjj
2024-10-21 797a5ff00e5b9d730e2778d09effe9f81cb4bd58
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -51,6 +51,10 @@
    private TagMapper tagMapper;
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkMastLogServiceImpl wrkMastLogService;
    @Autowired
    private WrkDetlLogServiceImpl wrkDetlLogService;
    @Override
    @Transactional
@@ -458,76 +462,77 @@
            Date now = new Date();
            Mat mat = matService.selectByMatnr(matParam.getMatnr());
            // 分类
            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();
            }
            if (mat == null) {
                mat = new Mat();
                // 分类
                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(), 3);
                    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,    // 数量
                                3,    // 等级
                                null,    // 排序
                                1,    // 状态
                                now,    // 添加时间
                                null,    // 添加人员
                                now,    // 修改时间
                                null,    // 修改人员
                                null    // 备注
                        );
                        if (tagMapper.insert(secTag) == 0) {
                            throw new CoolException("服务器内部错误,请联系管理员");
                        }
                    }
                    tagId = secTag.getId();
                } else {
                    tagId = tagService.getTop().getId();
                }
                mat.sync(matParam);
//            mat.setMatnr(param.getMatnr());
//            mat.setMaktx(param.getMaktx());
@@ -545,6 +550,7 @@
                }
            } else {
                mat.sync(matParam);
                mat.setTagId(tagId);
                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
                    throw new CoolException("更新已存在商品信息失败,请联系管理员");
                }
@@ -557,30 +563,50 @@
    @Override
    public List<LocDetlByTimeDTO> selectTimeLocDetl(TimeSelectParam param) {
        ArrayList<LocDetlByTimeDTO> locDetlByTimeDTOS = new ArrayList<>();
        EntityWrapper<LocDetl> locDetlEntityWrapper = new EntityWrapper<>();
        locDetlEntityWrapper.ge("appe_time",param.getStartTime());
        locDetlEntityWrapper.le("appe_time",param.getEndTime());
        List<LocDetl> locDetls = locDetlService.selectList(locDetlEntityWrapper);
        if (!Cools.isEmpty(locDetls)) {
            for (LocDetl locDetl : locDetls) {
        EntityWrapper<WrkMastLog> wrkMastLogEntityWrapper = new EntityWrapper<>();
        wrkMastLogEntityWrapper.ge("appe_time",param.getStartTime());
        wrkMastLogEntityWrapper.le("appe_time",param.getEndTime());
        wrkMastLogEntityWrapper.isNotNull("sheet_no");
        wrkMastLogService.selectList(wrkMastLogEntityWrapper).forEach(wrkMastLog -> {
            List<WrkDetlLog> wrkDetlLogs = wrkDetlLogService.selectList(new EntityWrapper<WrkDetlLog>()
                    .eq("wrk_no", wrkMastLog.getWrkNo()).eq("zpallet", wrkMastLog.getBarcode()));
            wrkDetlLogs.forEach(wrkDetlLog -> {
                LocDetlByTimeDTO locDetlByTimeDTO = new LocDetlByTimeDTO();
                if (!Cools.isEmpty(locDetl.getOrderNo())){
                    Order order = orderService.selectByNo(locDetl.getOrderNo());
                    if (!Cools.isEmpty(order)) {
                        locDetlByTimeDTO.setDate(order.getOrderTime());
                        locDetlByTimeDTO.setWarehouse(order.getItemName());
                        locDetlByTimeDTO.setOrderType(order.getDocType().toString());
                    }
                Order order = orderService.selectByNo(wrkMastLog.getSheetNo());
                if (!Cools.isEmpty(order)) {
                    locDetlByTimeDTO.setDate(order.getOrderTime());
                    locDetlByTimeDTO.setWarehouse(order.getItemName());
                    locDetlByTimeDTO.setOrderType(order.getDocType().toString());
                }
                locDetlByTimeDTO.setMatnr(locDetl.getMatnr());
                locDetlByTimeDTO.setLocNo(locDetl.getLocNo());
                locDetlByTimeDTO.setBatch(locDetl.getBatch());
                locDetlByTimeDTO.setAnfme(locDetl.getAnfme());
                locDetlByTimeDTO.setOrderNo(locDetl.getOrderNo());
                locDetlByTimeDTO.setMatnr(wrkDetlLog.getMatnr());
                locDetlByTimeDTO.setLocNo(wrkMastLog.getIoType() <100? wrkMastLog.getLocNo(): wrkMastLog.getSourceLocNo());
                locDetlByTimeDTO.setBatch(wrkDetlLog.getBatch());
                locDetlByTimeDTO.setAnfme(wrkDetlLog.getAnfme());
                locDetlByTimeDTO.setOrderNo(wrkMastLog.getSheetNo());
                locDetlByTimeDTOS.add(locDetlByTimeDTO);
            }
        }
            });
        });
//        if (!Cools.isEmpty(locDetls)) {
//            for (LocDetl locDetl : locDetls) {
//
//                if (!Cools.isEmpty(locDetl.getOrderNo())){
//                    Order order = orderService.selectByNo(locDetl.getOrderNo());
//                    if (!Cools.isEmpty(order)) {
//                        locDetlByTimeDTO.setDate(order.getOrderTime());
//                        locDetlByTimeDTO.setWarehouse(order.getItemName());
//                        locDetlByTimeDTO.setOrderType(order.getDocType().toString());
//                    }
//                }
//
//                locDetlByTimeDTO.setMatnr(locDetl.getMatnr());
//                locDetlByTimeDTO.setLocNo(locDetl.getLocNo());
//                locDetlByTimeDTO.setBatch(locDetl.getBatch());
//                locDetlByTimeDTO.setAnfme(locDetl.getAnfme());
//                locDetlByTimeDTO.setOrderNo(locDetl.getOrderNo());
//                locDetlByTimeDTOS.add(locDetlByTimeDTO);
//            }
//        }
        return locDetlByTimeDTOS;
    }