自动化立体仓库 - WMS系统
zwl
9 天以前 57f9a55581343a805cd589bbdc00e4d28a28aa97
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -87,8 +87,8 @@
                null,    // 邮费
                null,    // 付款时间
                null,    // 发货时间
                null,    // 物流名称
                null,    // 物流单号
                param.getTargetWarehouse(),    // 目标仓库
                param.getSourceWarehouse(),    // 源仓库
                1L,    // 订单状态
                1,    // 状态
                9527L,    // 添加人员
@@ -101,19 +101,19 @@
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getMatList();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            }
        }
        for (DetlDto detlDto : list) {
//        List<DetlDto> list = new ArrayList<>();
//        List<DetlDto> orderDetails = param.getMatList();
//        for (DetlDto detail : orderDetails) {
//            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
//            if (DetlDto.has(list, dto)) {
//                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
//                assert detlDto != null;
//                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
//            } else {
//                list.add(dto);
//            }
//        }
        for (DetlDto detlDto : param.getMatList()) {
            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
@@ -130,6 +130,8 @@
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
            orderDetl.setWorkQty(0.0D);
            orderDetl.setUnits(0.0);
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
@@ -184,7 +186,7 @@
    @Override
    @Transactional
    public void pakoutOrderCreate(OpenOrderPakoutParam param) {
    public void pakoutOrderCreate(OpenOrderPakinParam param) {
        Order order = orderService.selectByNo(param.getOrderNo());
        // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据
        if (!Cools.isEmpty(order)) {
@@ -222,8 +224,8 @@
                null,    // 邮费
                null,    // 付款时间
                null,    // 发货时间
                null,    // 物流名称
                null,    // 物流单号
                param.getTargetWarehouse(),    // 物流名称
                param.getSourceWarehouse(),    // 物流单号
                1L,    // 订单状态
                1,    // 状态
                9527L,    // 添加人员
@@ -236,19 +238,19 @@
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getMatList();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            }
        }
        for (DetlDto detlDto : list) {
//        List<DetlDto> list = new ArrayList<>();
//        List<DetlDto> orderDetails = param.getMatList();
//        for (DetlDto detail : orderDetails) {
//            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
//            if (DetlDto.has(list, dto)) {
//                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
//                assert detlDto != null;
//                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
//            } else {
//                list.add(dto);
//            }
//        }
        for (DetlDto detlDto : param.getMatList()) {
            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(detlDto.getMatnr() + "编号商品检索失败,请先添加商品");
@@ -265,6 +267,8 @@
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
            orderDetl.setWorkQty(0.0D);
            orderDetl.setUnits(0.0);
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
@@ -584,9 +588,9 @@
                        mat.sync(matParam);  //
                        mat.setTagId(tagId);
                        mat.setStatus(1);
                        mat.setStatus(matParam.getInspect());
                        mat.setCreateTime(now);
                        mat.setUpdateTime(now);
                        mat.setUpdateTime(matParam.getSuspensionDate());//启用时间
                        if (!matService.insert(mat)) {
                            throw new CoolException("服务器内部错误,请联系管理员");
                        } else {
@@ -596,6 +600,8 @@
                        Tag priTag = tagService.selectByName(matParam.getTagIdName(), 2);
                        matParam.setTagId(priTag.getId());
                        mat.sync(matParam);  // ⚠️ 同上
                        mat.setUpdateTime(matParam.getSuspensionDate());//启用时间
                        mat.setStatus(matParam.getInspect());
                        if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
                            throw new CoolException("更新已存在商品信息失败,请联系管理员");
                        }
@@ -635,11 +641,13 @@
                if (diff != 0) {
                    CheckDetl checkDetl = new CheckDetl();
                    checkDetl.setOrderNo(param.getOrderNo());
                    checkDetl.setAnfme(diff);  //这里记录差值
                    checkDetl.setAnfme(matParam.getAnfme());  //账面数量
                    checkDetl.setNumber(LKAnfme);
                    checkDetl.setMatnr(matParam.getMatnr());
                    checkDetl.setMaktx(matParam.getMaktx());
                    checkDetl.setSpecs(matParam.getSpecs());
                    checkDetl.setBatch(matParam.getBatch());
                    checkDetl.setDetailId(matParam.getDetailId());
                    checkDetl.setCreateTime(new Date());
                    checkDetlService.insert(checkDetl);  // 插入差异记录