From a21c0b965f85c62bcb9dea9f34dcde5f6d28e1f6 Mon Sep 17 00:00:00 2001
From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com>
Date: 星期三, 18 九月 2024 17:27:49 +0800
Subject: [PATCH] 结算备注新增账号名称

---
 src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java |   38 +++++++++++++++++++++++++++++++-------
 1 files changed, 31 insertions(+), 7 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 16ab844..4b2afcc 100644
--- a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
@@ -274,7 +274,21 @@
 
         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) {
@@ -296,6 +310,8 @@
         dto.setFlowerCategory(oi.getFlowerCategory());
 
         dto.setParams(parseArray(oi.getFlowerParams(), ParamItemDTO.class));
+
+        dto.setNum(oi.getNum());
 
         return dto;
     }
@@ -394,7 +410,7 @@
         );
         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;
             }
@@ -479,17 +495,19 @@
         return dto;
     }
 
-    public List<StationStatisticDTO> statisticStationList(String name, LocalDateTime startDate, LocalDateTime endDate) {
+    public List<StationStatisticDTO> statisticStationList(String name, LocalDateTime startDate
+            , LocalDateTime endDate, String status) {
         String userId = SecurityUtils.getUserId();
         LambdaQueryWrapper<Station> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-        lambdaQueryWrapper.like(Station::getUserIds, userId);
+        lambdaQueryWrapper.like(Station::getUserIds, "%" + userId + "%");
         lambdaQueryWrapper.eq(Station::getType, "0");
-        boolean hasZc = stationMapper.selectCount(lambdaQueryWrapper)>0;//当前用户是否有总仓权限,总仓能查看到所有集货站的数据
+        boolean hasZc = stationMapper.selectCount(lambdaQueryWrapper) > 0;//当前用户是否有总仓权限,总仓能查看到所有集货站的数据
+        List<String> statusList = splitParam(status);
         if(hasZc){
-            List<StationStatisticDTO> stationStatisticDTOS = deliveryOrderMapper.statisticStationList(startDate, endDate,name,null);
+            List<StationStatisticDTO> stationStatisticDTOS = deliveryOrderMapper.statisticStationList(startDate, endDate,name,null, statusList);
             return stationStatisticDTOS;
         }else{
-            List<StationStatisticDTO> stationStatisticDTOS = deliveryOrderMapper.statisticStationList(startDate, endDate,name,userId);
+            List<StationStatisticDTO> stationStatisticDTOS = deliveryOrderMapper.statisticStationList(startDate, endDate, name, userId, statusList);
             return stationStatisticDTOS;
         }
     }
@@ -649,13 +667,19 @@
             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()){
+            if(deduct.doubleValue() > dt.doubleValue()
+                    || (oi.getRealTotal() != null && deduct.doubleValue() > oi.getRealTotal().doubleValue())){
                 throw new ValidationException("降级金额不能大于商品处理数量金额");
             }
         }

--
Gitblit v1.9.3