skyouc
5 天以前 6732a988fe843cf59f12aae1460fc97fda5408dd
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -172,12 +172,18 @@
        List<AsnOrderItem> asnOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>()
                .eq(AsnOrderItem::getTrackCode, barcode));
        if (Objects.isNull(asnOrderItem)) {
            throw new CoolException("单据明细不存在!!");
        }
        return getAsnOrderItem(asnOrderItem);
        List<AsnOrderItem> items = new ArrayList<>();
        for (AsnOrderItem record : asnOrderItem) {
            if (!Objects.isNull(record.getFieldsIndex())) {
                Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
                record.setExtendFields(fields);
            }
            items.add(record);
        }
        return getAsnOrderItem(items);
    }
    /**
@@ -268,21 +274,29 @@
                    .setStockUnit(dto.getStockUnit())
                    .setProdTime(dto.getProdTime());
            if (!Objects.isNull(rcpt)) {
                try {
                    if (Objects.isNull(rcpt.get("fieldsindex")) || StringUtils.isBlank(rcpt.get("fieldsindex").toString())) {
                        //获取16位uuid
//                        String uuid16 = Cools.md5(dto.getBarcode());
                        String uuid16 = Cools.md5(dto.getMatnr() + dto.getSplrBatch());
                        rcpt.put("index", uuid16);
                        orderItem.setFieldsIndex(uuid16);
                    }
                    //保存或更新扩展字段
                    FieldsUtils.updateFieldsValue(rcpt);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }
//            if (!Objects.isNull(rcpt)) {
//                try {
//                    if (Objects.isNull(rcpt.get("fieldsindex")) || StringUtils.isBlank(rcpt.get("fieldsindex").toString())) {
//                        StringBuffer sb = new StringBuffer();
//                        if (!dto.getExtendFields().isEmpty()) {
//                            dto.getExtendFields().forEach(field -> {
//                                field.keySet().forEach(key -> {
//                                    sb.append(field.get(key));
//                                });
//                            });
//                        }
//                        sb.append(dto.getAsnCode() + dto.getMatnr() + dto.getSplrBatch() + orderItem.getIsptResult$());
//                        //获取16位uuid
//                        String uuid16 = Cools.md5Chinese(sb.toString());
//                        rcpt.put("index", uuid16);
//                        orderItem.setFieldsIndex(uuid16);
//                    }
//                    //保存或更新扩展字段
//                    FieldsUtils.updateFieldsValue(rcpt);
//                } catch (Exception e) {
//                    throw new RuntimeException(e);
//                }
//            }
            if (asnOrderItemMapper.updateById(orderItem) < 1) {
                throw new CoolException("通知单明细数量修改失败!!");
@@ -378,15 +392,7 @@
        if (Objects.isNull(params.getAsnCode())) {
            throw new CoolException("通知单不能为空!!");
        }
        List<AsnOrderItem> asnOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>()
                .eq(AsnOrderItem::getAsnCode, params.getAsnCode())
                .eq(!Objects.isNull(params.getTrackCode()), AsnOrderItem::getTrackCode, params.getTrackCode())
                .eq(!Cools.isEmpty(params.getMatnrCode()), AsnOrderItem::getMatnrCode, params.getMatnrCode())
        );
        if (Objects.isNull(asnOrderItem)) {
            throw new CoolException("单据明细不存在!!");
        }
        List<Short> shorts = Arrays.asList(AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val, AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE
                .val, AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val);
        AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>()
@@ -396,7 +402,26 @@
            throw new CoolException("请检查订单状态是否已完成或已取消!!");
        }
        return getAsnOrderItem(asnOrderItem);
        List<AsnOrderItem> asnOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>()
                .eq(AsnOrderItem::getAsnCode, params.getAsnCode())
                .eq(!Objects.isNull(params.getTrackCode()), AsnOrderItem::getTrackCode, params.getTrackCode())
                .eq(!Cools.isEmpty(params.getMatnrCode()), AsnOrderItem::getMatnrCode, params.getMatnrCode())
        );
        if (Objects.isNull(asnOrderItem)) {
            throw new CoolException("单据明细不存在!!");
        }
        List<AsnOrderItem> items = new ArrayList<>();
        for (AsnOrderItem record : asnOrderItem) {
            if (!Objects.isNull(record.getFieldsIndex())) {
                Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex());
                record.setExtendFields(fields);
            }
            items.add(record);
        }
        return getAsnOrderItem(items);
    }
@@ -434,7 +459,9 @@
     */
    @Override
    public List<Fields> getDynamicFields() {
        return fieldsMapper.selectList(new LambdaQueryWrapper<Fields>().eq(Fields::getFlagEnable, 1).eq(Fields::getStatus, 1));
        return fieldsMapper.selectList(new LambdaQueryWrapper<Fields>()
                .eq(Fields::getFlagEnable, 1)
                .eq(Fields::getStatus, 1).orderByAsc(Fields::getId));
    }
    /**
@@ -843,20 +870,23 @@
//            throw new CoolException("参数不能为空!!");
//        }
        //获取组拖未生成任务的组拖档
        List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        Short flagDefect = 0;
        if (!Objects.isNull(params.get("type")) && params.get("type").equals("defective")) {
            flagDefect = 1;
        }
        WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
        List<WaitPakin> waitPakin = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>()
                .eq(WaitPakin::getBarcode, params.get("barcode").toString())
//                .eq(WaitPakin::getFlagDefect, flagDefect)
                .in(WaitPakin::getIoStatus, asList));
        if (Cools.isEmpty(waitPakin)) {
            throw new CoolException("托盘可用");
        } else {
            throw new CoolException("托盘不可用");
        if (!Cools.isEmpty(waitPakin)) {
            throw new CoolException("托盘不可用,在组托中已存在");
        }
        List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, params.get("barcode").toString()));
        if (!Cools.isEmpty(locs)) {
            throw new CoolException("托盘不可用,在库位中已存在");
        }
        return R.ok("托盘可用");
    }
    /**
@@ -878,7 +908,7 @@
                .eq(WaitPakin::getBarcode, params.get("barcode").toString())
                .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        if (Objects.isNull(waitPakin)) {
            return R.ok(new ArrayList<>());
            return R.error("未找到该容器码的组托明细,请检查组托状态");
        }
        List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>()
                .eq(WaitPakinItem::getPakinId, waitPakin.getId()));
@@ -997,10 +1027,10 @@
                    .setAnfme(asnOrderItem.getAnfme())
                    .setPurQty(asnOrderItem.getPurQty())
                    .setSplrBatch(asnOrderItem.getSplrBatch())
                    .setExtendFields(asnOrderItem.getExtendFields())
                    .setMatnr(asnOrderItem.getMatnrCode())
                    .setInspect(asnOrderItem.getIsptResult$()) //质检结果
                    .setPlatItemId(asnOrderItem.getPlatItemId())
            ;
                    .setPlatItemId(asnOrderItem.getPlatItemId());
            Matnr matnr = matnrMapper.selectById(asnOrderItem.getMatnrId());
            if (Objects.isNull(matnr)) {