From 272188e47087a8ef92eb0a48b122fa1c73ea94d3 Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期二, 24 九月 2024 00:15:25 +0800
Subject: [PATCH] Merge remote-tracking branch 'remote-v2/master-v2' into master-v2

---
 src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java |   27 ++++++++++++++++++++++++---
 1 files changed, 24 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
index f7466d1..b7727a5 100644
--- a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
+++ b/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<>();
@@ -573,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())
@@ -650,6 +657,16 @@
             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>()
                 .ne("type", dto.getType())
                 .eq("order_item_id", dto.getOrderItemId())
@@ -686,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("降级金额不能大于商品处理数量的供应商的金额");
             }
         }
 

--
Gitblit v1.9.3