From 6c823dd44dbde79f008001a2a11e7bf9bc6bf8cc Mon Sep 17 00:00:00 2001
From: cloudroam <cloudroam>
Date: 星期三, 04 十二月 2024 18:15:44 +0800
Subject: [PATCH] fix:合伙人列表操作日志

---
 src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java |   65 ++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 9 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 f921a0d..54010dd 100644
--- a/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
+++ b/src/main/java/com/mzl/flower/service/payment/DeliveryOrderService.java
@@ -7,9 +7,11 @@
 import com.mzl.flower.config.security.SecurityUtils;
 import com.mzl.flower.constant.Constants;
 import com.mzl.flower.dto.request.payment.*;
+import com.mzl.flower.dto.request.report.QueryAppSupplierDTO;
 import com.mzl.flower.dto.response.flower.ParamItemDTO;
 import com.mzl.flower.dto.response.flower.StationStatisticDTO;
 import com.mzl.flower.dto.response.payment.*;
+import com.mzl.flower.dto.response.report.AppSupplierStatisticsVO;
 import com.mzl.flower.dto.response.supplier.SupplierOrderDTO;
 import com.mzl.flower.entity.payment.*;
 import com.mzl.flower.entity.supplier.Station;
@@ -21,6 +23,7 @@
 import com.mzl.flower.mapper.supplier.StationMapper;
 import com.mzl.flower.service.BaseService;
 import com.mzl.flower.service.flower.FlowerParamService;
+import com.mzl.flower.service.report.OrderReportService;
 import com.mzl.flower.utils.UUIDGenerator;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -74,6 +77,9 @@
     @Autowired
     private OrderItemSettlementService orderItemSettlementService;
 
+    @Autowired
+    private OrderReportService orderReportService;
+
     public void createDeliveryOrder(Order order) {
         String orderId = order.getId();
         String orderNo = order.getOrderNo();
@@ -124,6 +130,11 @@
             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 if (Constants.DELIVERY_ORDER_STATUS.PENDING.name().equals(dto.getStatus())) {
+            List<String> statusLs = new ArrayList<>();
+            statusLs.add(Constants.DELIVERY_ORDER_STATUS.NO_LOCATION.name());
+            statusLs.add(Constants.DELIVERY_ORDER_STATUS.PENDING.name());
             dto.setStatusList(statusLs);
         } else {
             dto.setStatusList(splitParam(dto.getStatus()));
@@ -257,13 +268,33 @@
         return ls;
     }
 
+    public List<DeliveryOrderItemDTO> getSupplierDeliveryOrderItemsByItemId(PostQueryDTO dto){
+        List<String> idList = dto.getIds();
+        List<DeliveryOrderItemDTO> ls = new ArrayList<>();
+        if(idList != null && idList.size() > 0){
+            for(String id : idList){
+                DeliveryOrderItem item = deliveryOrderItemMapper.selectOne(new QueryWrapper<DeliveryOrderItem>()
+                        .eq("order_item_id", id));
+                ls.add(getSupplierDeliveryOrderItem(item));
+            }
+        }
+
+        return ls;
+    }
+
     public DeliveryOrderItemDTO getSupplierDeliveryOrderItem(String id) {
+        DeliveryOrderItem item = deliveryOrderItemMapper.selectById(id);
+
+        return getSupplierDeliveryOrderItem(item);
+    }
+
+    public DeliveryOrderItemDTO getSupplierDeliveryOrderItem(DeliveryOrderItem item) {
         DeliveryOrderItemDTO dto = new DeliveryOrderItemDTO();
 
         Supplier s = getCurrentSupplier();
         dto.setSupplierName(s.getName());
 
-        DeliveryOrderItem item = deliveryOrderItemMapper.selectById(id);
+
         Order d = orderMapper.selectById(item.getOrderId());
         dto.setOrderNo(d.getOrderNo());
         dto.setWarehouseName(d.getWarehouseName());
@@ -482,11 +513,17 @@
             }
             dto.setSalesRate(salesRate);
 
-            Integer deliverCount = deliveryOrderItemMapper.getDoItemCount(supplierId, Constants.DELIVERY_ORDER_STATUS.NO_LOCATION.name(), startDate, endDate);
-            dto.setDeliverCount(deliverCount == null ? 0 : deliverCount);
+            Integer deliverCount1 = deliveryOrderItemMapper.getDoItemCount(supplierId, Constants.DELIVERY_ORDER_STATUS.NO_LOCATION.name(), startDate, endDate);
+            Integer deliverCount2 = deliveryOrderItemMapper.getDoItemCount(supplierId, Constants.DELIVERY_ORDER_STATUS.PENDING.name(), startDate, endDate);
+            Integer deliverCount = getInteger(deliverCount1) + getInteger(deliverCount2);
+            dto.setDeliverCount(deliverCount);
+
+            Integer deliverCount3 = deliveryOrderItemMapper.getDoItemCount(supplierId, Constants.DELIVERY_ORDER_STATUS.ARRIVED.name(), startDate, endDate);
+            Integer deliverCount4 = deliveryOrderItemMapper.getDoItemCount(supplierId, Constants.DELIVERY_ORDER_STATUS.CHECKED.name(), startDate, endDate);
+            Integer dc = getInteger(deliverCount3) + getInteger(deliverCount4);
+            dto.setDeliverTotal(dc);
 
             Integer deliverTotal = deliveryOrderItemMapper.getDoItemCount(supplierId, null, startDate, endDate);
-            dto.setDeliverTotal(deliverTotal == null ? 0 : deliverTotal);
             dto.setDealCountToday(deliverTotal);
 
             LocalDateTime e = LocalDate.now().withDayOfMonth(1).atTime(17, 0, 0).plusDays(-1);
@@ -497,9 +534,19 @@
             LocalDateTime s1 = endDate.plusDays(-30);
             Integer dealCountDay30 = deliveryOrderItemMapper.getDoItemCount(supplierId, null, s1, endDate);
             dto.setDealCountDay30(dealCountDay30);
+
+            // 供应商 总成交、本月成交、上月成交、今日成交、缺货(本月)、上月质检缺货、本月质检降级、上月质检降级、本月质检补货、上月质检补货
+            QueryAppSupplierDTO appDto=new QueryAppSupplierDTO();
+            appDto.setSupplierId(supplierId);
+            final AppSupplierStatisticsVO appSupplierStatistics = orderReportService.getAppSupplierStatistics(appDto);
+            BeanUtils.copyProperties(appSupplierStatistics,dto);
         }
 
         return dto;
+    }
+
+    private Integer getInteger(Integer c){
+        return c == null ? 0 : c;
     }
 
     public List<StationStatisticDTO> statisticStationList(String name, LocalDateTime startDate
@@ -654,9 +701,9 @@
         }
 
         List<String> pictureList = dto.getPictureList();
-        if(pictureList == null || pictureList.size() == 0){
+        /*if(pictureList == null || pictureList.size() == 0){
             throw new ValidationException("质检图片不能为空");
-        }
+        }*/
 
         OrderItem oi = orderItemMapper.selectById(dto.getOrderItemId());
         if(dto.getNum() > oi.getNum()){
@@ -707,12 +754,12 @@
             }
             deduct = deductAmount.multiply(new BigDecimal(dto.getNum()));
             BigDecimal dt = realPrice.multiply(new BigDecimal(dto.getNum()));
-            if(deduct.doubleValue() > dt.doubleValue()
-                    || (oi.getRealTotal() != null && deduct.doubleValue() > oi.getRealTotal().doubleValue())){
+            if(deduct.compareTo(dt) > 0
+                    || (oi.getRealTotal() != null && deduct.compareTo(oi.getRealTotal()) > 0)){
                 throw new ValidationException("降级金额不能大于商品处理数量的支付的金额");
             }
             BigDecimal st = oi.getSupplierPrice().multiply(new BigDecimal(dto.getNum()));
-            if(deduct.doubleValue() > st.doubleValue()){
+            if(deduct.compareTo(st) > 0){
                 throw new ValidationException("降级金额不能大于商品处理数量的供应商的金额");
             }
         }

--
Gitblit v1.9.3