|  |  | 
 |  |  |  | 
 |  |  |     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<>(); | 
 |  |  | 
 |  |  |  | 
 |  |  |         dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class)); | 
 |  |  |  | 
 |  |  |         dto.setNum(oi.getNum()); | 
 |  |  |  | 
 |  |  |         return dto; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public List<DeliveryOrderItemDTO> getDeliveryOrderItems(PostQueryDTO dto){ | 
 |  |  |         List<String> idList = dto.getIds(); | 
 |  |  |         List<DeliveryOrderItemDTO> ls = new ArrayList<>(); | 
 |  |  |         if(idList != null && idList.size() > 0){ | 
 |  |  |             for(String id : idList){ | 
 |  |  |                 ls.add(getDeliveryOrderItem(id)); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         return ls; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public DeliveryOrderItemDTO getDeliveryOrderItem(String id) { | 
 |  |  | 
 |  |  |         dto.setFlowerCategory(oi.getFlowerCategory()); | 
 |  |  |  | 
 |  |  |         dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class)); | 
 |  |  |  | 
 |  |  |         dto.setNum(oi.getNum()); | 
 |  |  |  | 
 |  |  |         return dto; | 
 |  |  |     } | 
 |  |  | 
 |  |  |         ); | 
 |  |  |         if (count == 0) { | 
 |  |  |             Order o = orderMapper.selectById(orderId); | 
 |  |  |             if(!Constants.ORDER_STATUS_BACKEND.COLLECTION.name().equals(o.getStatus())){ | 
 |  |  |             if(!Constants.ORDER_STATUS_BACKEND.COLLECTION.name().equals(o.getStatusBackend())){ | 
 |  |  |                 log.warn("非待集货状态,不可设置待发货"); | 
 |  |  |                 return; | 
 |  |  |             } | 
 |  |  | 
 |  |  |         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()) | 
 |  |  | 
 |  |  |         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) | 
 |  |  | 
 |  |  |             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; | 
 |  |  | 
 |  |  |         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>() | 
 |  |  | 
 |  |  |             deduct = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum())); | 
 |  |  |         } else if(Constants.CHECK_TYPE.lack.name().equals(dto.getType())){ | 
 |  |  |             deduct = realPrice.multiply(new BigDecimal(dto.getNum())); | 
 |  |  |             //质检退款,按照这个单价扣,如果3扎都缺货,按照总的金额退 | 
 |  |  |             //缺货数量等于商品总数时按真实总价退款 | 
 |  |  |             if(dto.getNum().intValue() == oi.getNum() && oi.getRealTotal() != null){ | 
 |  |  |                 deduct = oi.getRealTotal(); | 
 |  |  |             } | 
 |  |  |         } else if (Constants.CHECK_TYPE.reduce.name().equals(dto.getType())) { | 
 |  |  |             if(deductAmount == null){ | 
 |  |  |                 throw new ValidationException("降级金额不能为空"); | 
 |  |  |             } | 
 |  |  |             deduct = deductAmount.multiply(new BigDecimal(dto.getNum())); | 
 |  |  |             BigDecimal dt = realPrice.multiply(new BigDecimal(dto.getNum())); | 
 |  |  |             if(deduct.doubleValue() > dt.doubleValue()){ | 
 |  |  |                 throw new ValidationException("降级金额不能大于商品处理数量金额"); | 
 |  |  |             if(deduct.doubleValue() > dt.doubleValue() | 
 |  |  |                     || (oi.getRealTotal() != null && deduct.doubleValue() > oi.getRealTotal().doubleValue())){ | 
 |  |  |                 throw new ValidationException("降级金额不能大于商品处理数量的支付的金额"); | 
 |  |  |             } | 
 |  |  |             BigDecimal st = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum())); | 
 |  |  |             if(deduct.doubleValue() > st.doubleValue()){ | 
 |  |  |                 throw new ValidationException("降级金额不能大于商品处理数量的供应商的金额"); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  |