skyouc
4 天以前 e03ed5c541b8501dd0b8726d743407c94fe71cfe
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -91,13 +91,10 @@
    private FieldsMapper fieldsMapper;
    @Autowired
    private IsptHistoriesMapper isptHistoriesMapper;
    @Autowired
    private AsnOrderLogService asnOrderLogService;
    @Autowired
    private WaitPakinService waitPakinService;
    @Autowired
    private WaitPakinItemService waitPakinItemService;
    @Autowired
@@ -128,6 +125,8 @@
    private ConfigService configService;
    @Autowired
    private CompanysService companysService;
    @Autowired
    private OutStockService outStockService;
    /**
     * @return
@@ -233,19 +232,31 @@
        WkOrder wkOrder = asnOrderMapper.getOne(new LambdaQueryWrapper<WkOrder>()
                .eq(WkOrder::getCode, asnCode));
        //判断调拔单出库是否完成
        if (wkOrder.getWkType().equals(OrderWorkType.ORDER_WORK_TYPE_OTHER_TERANSFER.type)) {
            WkOrder one = outStockService.getOne(new LambdaQueryWrapper<WkOrder>()
                    .eq(WkOrder::getPoId, wkOrder.getPoId())
                    .eq(WkOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type)
                    .eq(WkOrder::getType, OrderType.ORDER_OUT.type));
            if (Objects.isNull(one)) {
                throw new CoolException("数据错误!!");
            }
            if (!one.getExceStatus().equals(AsnExceStatus.OUT_STOCK_STATUS_TASK_DONE.val)) {
                throw new CoolException("出库单未完成,无法完成收货!!");
            }
        }
        if (Objects.isNull(wkOrder)) {
            throw new CoolException("数据错误:主单不存在!!");
        }
        //TODO /**收货数量累加,1. 会出超收情况 2. 会有收货不足情况*/
        Double rcptedQty = Math.round((wkOrder.getQty() + receiptQty) * 10000) / 10000.0;
        wkOrder.setQty(rcptedQty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
        if (!asnOrderMapper.updateById(wkOrder)) {
            throw new CoolException("已收货数量修改失败!!");
        }
        Config config = configService.getOne(new LambdaQueryWrapper<Config>().eq(Config::getFlag, GlobalConfigCode.ALLOW_OVER_CHANGE));
        List<Map<String, Object>> receipts1 = (List<Map<String, Object>>) params.get("receipts");
        for (Map<String, Object> rcpt : receipts1) {
@@ -352,7 +363,7 @@
        Companys companys = new Companys();
        if (StringUtils.isNoneBlank(orderItem.getSplrCode())) {
             companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode()));
            companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode()));
        }
        WarehouseAreasItem item = new WarehouseAreasItem();
@@ -453,7 +464,7 @@
        }
        List<WkOrderItem> wkOrderItem = asnOrderItemMapper.selectList(new LambdaQueryWrapper<WkOrderItem>()
                .eq(WkOrderItem::getAsnCode, params.getAsnCode())
                .eq(WkOrderItem::getOrderCode, params.getAsnCode())
                .eq(!Objects.isNull(params.getTrackCode()), WkOrderItem::getTrackCode, params.getTrackCode())
                .eq(!Cools.isEmpty(params.getMatnrCode()), WkOrderItem::getMatnrCode, params.getMatnrCode())
        );
@@ -578,7 +589,7 @@
        }
        InspectDetlDto detlDto = new InspectDetlDto();
        detlDto.setCode(wkOrders.getCode()).setId(wkOrders.getId()).setPoCode(wkOrders.getPoCode());
        List<WkOrderItem> orderItems = asnOrderItemMapper.selectList(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getAsnCode, code));
        List<WkOrderItem> orderItems = asnOrderItemMapper.selectList(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderCode, code));
        if (orderItems.isEmpty()) {
            detlDto.setItems(new ArrayList<>());
        } else {
@@ -711,13 +722,13 @@
        }
        WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
                .eq(WaitPakin::getBarcode, params.getBarcode())
                .eq(WaitPakin::getIoStatus,PakinIOStatus.PAKIN_IO_STATUS_DONE.val)
                .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val)
        );
        if (Cools.isEmpty(waitPakin)){
        if (Cools.isEmpty(waitPakin)) {
            throw new CoolException("未找到组托数据,请检查状态");
        }
        List<WaitPakinItem> waitPakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, waitPakin.getId()));
        if (Cools.isEmpty(waitPakinItems)){
        if (Cools.isEmpty(waitPakinItems)) {
            throw new CoolException("数据错误,未找到组托明细");
        }
@@ -741,11 +752,11 @@
        if (Objects.isNull(params.getItemList()) || params.getItemList().isEmpty()) {
            throw new CoolException("单据明细不能为空!!");
        }
        Long OrderId = params.getItemList().stream().findFirst().get().getAsnId();
        Long OrderId = params.getItemList().stream().findFirst().get().getOrderId();
        /**获取平库订单*/
        WkOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<WkOrder>()
                .eq(WkOrder::getId, OrderId)
                        .eq(WkOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)
                .eq(WkOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_OTHER_IN.type)
                .eq(WkOrder::getType, OrderType.ORDER_IN.type));
        if (Objects.isNull(order)) {
            throw new CoolException("非平库单据不可执行人工上架!!");
@@ -937,15 +948,15 @@
     */
    @Override
    public R getUnItemByContainer(Map<String, Object> params) {
        if (Cools.isEmpty(params.get("barcode")) && Cools.isEmpty(params.get("code"))){
        if (Cools.isEmpty(params.get("barcode")) && Cools.isEmpty(params.get("code"))) {
            throw new CoolException("容器号与组托档编码不能全为空");
        }
        //获取组拖未生成任务的组拖档
//        List<Short> asList = Arrays.asList(Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val), Short.valueOf(PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>()
                .eq(!Cools.isEmpty(params.get("barcode")),WaitPakin::getBarcode, params.get("barcode"))
                .eq(!Cools.isEmpty(params.get("code")),WaitPakin::getCode, params.get("code"))
                .eq(!Cools.isEmpty(params.get("barcode")), WaitPakin::getBarcode, params.get("barcode"))
                .eq(!Cools.isEmpty(params.get("code")), WaitPakin::getCode, params.get("code"))
                .eq(WaitPakin::getIoStatus, PakinIOStatus.PAKIN_IO_STATUS_DONE.val));
        if (Objects.isNull(waitPakin)) {
            return R.error("未找到该容器码的组托明细,请检查组托状态");
@@ -1055,7 +1066,7 @@
        items.forEach(asnOrderItem -> {
            ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
            detlsDto.setAsnCode(asnOrderItem.getAsnCode())
            detlsDto.setAsnCode(asnOrderItem.getOrderCode())
                    .setId(asnOrderItem.getId())
                    .setMaktx(asnOrderItem.getMaktx())
                    .setFieldsIndex(asnOrderItem.getFieldsIndex())