cloudroam
2024-09-24 3b4ff9fba93ee13919f990ef8c2910a902a2a8f3
src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
@@ -120,7 +120,14 @@
    public Page<DeliveryOrderListDTO> selectDeliveryOrderList(Page page, DeliveryOrderQueryDTO dto) {
        Supplier s = getCurrentSupplier();
        dto.setStatusList(splitParam(dto.getStatus()));
        if(Constants.DELIVERY_ORDER_STATUS.ARRIVED.name().equals(dto.getStatus())){
            List<String> statusLs = new ArrayList<>();
            statusLs.add(Constants.DELIVERY_ORDER_STATUS.ARRIVED.name());
            statusLs.add(Constants.DELIVERY_ORDER_STATUS.CHECKED.name());
            dto.setStatusList(statusLs);
        } else {
            dto.setStatusList(splitParam(dto.getStatus()));
        }
        List<DeliveryOrderListDTO> ls = deliveryOrderMapper.selectDoList(page, s.getId(), dto);
        if (ls != null && ls.size() > 0) {
            List<String> dIds = new ArrayList<>();
@@ -274,6 +281,8 @@
        dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class));
        dto.setNum(oi.getNum());
        return dto;
    }
@@ -308,6 +317,8 @@
        dto.setFlowerCategory(oi.getFlowerCategory());
        dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class));
        dto.setNum(oi.getNum());
        return dto;
    }
@@ -569,7 +580,7 @@
        orderItemSettlementService.saveItemSettlementInfo(oi, SecurityUtils.getUserId(), Constants.S_TYPE.CHECK);
    }
    private BigDecimal calculateOrderItemDeduct(String id){
    public BigDecimal calculateOrderItemDeduct(String id){
        List<OrderItemCheck> cLs = orderItemCheckMapper.selectList(new QueryWrapper<OrderItemCheck>()
                .eq("order_item_id", id)
                .eq("audit_status", Constants.CHECK_AUDIT_STATUS.AGREED.name())
@@ -607,7 +618,7 @@
        return dto;
    }
    public OrderItemCheckNumDTO getOtherCheck(String itemId, String type){
    public OrderItemCheckNumDTO getOtherCheck(String itemId, String type, boolean isSupplier){
        OrderItemCheck c = orderItemCheckMapper.selectOne(new QueryWrapper<OrderItemCheck>()
                .eq("type", type)
                .eq("order_item_id", itemId)
@@ -619,6 +630,12 @@
            BeanUtils.copyProperties(c, dto);
            User user = userMapper.selectById(c.getCreateBy());
            dto.setCreateName(user.getNickName());
            if(Constants.CHECK_TYPE.lack.name().equals(c.getType()) && isSupplier){
                OrderItem oi = orderItemMapper.selectById(itemId);
                BigDecimal lackFeeSupplier = oi.getSupplierPrice().multiply(new BigDecimal(c.getNum()));
                dto.setDeductAmount(lackFeeSupplier);
            }
        }
        return dto;
@@ -638,6 +655,16 @@
        OrderItem oi = orderItemMapper.selectById(dto.getOrderItemId());
        if(dto.getNum() > oi.getNum()){
            throw new ValidationException("处理数量不能大于商品数量");
        }
        Order o = orderMapper.selectById(oi.getOrderId());
        if(StringUtils.isNotEmpty(o.getTransferId())){
            throw new ValidationException("已质检退款,不可提交质检记录");
        }
        if(!Constants.ORDER_STATUS_BACKEND.COLLECTION.name().equals(o.getStatusBackend())
            && !Constants.ORDER_STATUS_BACKEND.SEND.name().equals(o.getStatusBackend())){
            throw new ValidationException("订单状态异常,不可提交质检记录");
        }
        List<OrderItemCheck> cLs = orderItemCheckMapper.selectList(new QueryWrapper<OrderItemCheck>()
@@ -676,7 +703,11 @@
            BigDecimal dt = realPrice.multiply(new BigDecimal(dto.getNum()));
            if(deduct.doubleValue() > dt.doubleValue()
                    || (oi.getRealTotal() != null && deduct.doubleValue() > oi.getRealTotal().doubleValue())){
                throw new ValidationException("降级金额不能大于商品处理数量金额");
                throw new ValidationException("降级金额不能大于商品处理数量的支付的金额");
            }
            BigDecimal st = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum()));
            if(deduct.doubleValue() > st.doubleValue()){
                throw new ValidationException("降级金额不能大于商品处理数量的供应商的金额");
            }
        }