Sfoglia il codice sorgente

工作台统计因子为万元时,返回万元值

yzc 2 anni fa
parent
commit
cb7443ea12

+ 1 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/NumberConstant.java

@@ -65,6 +65,7 @@ public final class NumberConstant {
     public static final int COOKIE_TIMEN = 300;
 
     public static final BigDecimal ONE_HUNDRED = new BigDecimal("100.00");
+    public static final BigDecimal TEN_THOUSAND = new BigDecimal("10000.00");
 
     public NumberConstant() {
     }

+ 14 - 3
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderStatisticsService.java

@@ -1,5 +1,6 @@
 package com.sckw.order.serivce;
 
+import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.exception.BusinessException;
 import com.sckw.core.utils.DateUtils;
 import com.sckw.core.web.context.LoginUserHolder;
@@ -11,6 +12,8 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.temporal.TemporalAdjusters;
@@ -56,11 +59,19 @@ public class KwoTradeOrderStatisticsService {
                 .setStsFactorsTwo(params.getStsFactorsTwo());
         Map<String, WbTOrderExcelStsResDTO> map = kwoTradeOrderService.workbenchExcel(reqDTO).stream()
                 .collect(Collectors.toMap(WbTOrderExcelStsResDTO::getFormatDate, e -> e, (k1, k2) -> k1));
-        res.forEach(e->{
+        res.forEach(e -> {
             WbTOrderExcelStsResDTO dto = map.get(e.getFormatDate());
             if (Objects.nonNull(dto)) {
-                e.setStsFactorsOneValue(dto.getStsFactorsOneValue());
-                e.setStsFactorsTwoValue(dto.getStsFactorsTwoValue());
+                BigDecimal one = dto.getStsFactorsOneValue();
+                if (Objects.equals(params.getStsFactorsOne(), 1)) {
+                    one = one.divide(NumberConstant.TEN_THOUSAND, 2, RoundingMode.HALF_UP);
+                }
+                BigDecimal two = dto.getStsFactorsTwoValue();
+                if (Objects.equals(params.getStsFactorsTwo(), 1)) {
+                    two = two.divide(NumberConstant.TEN_THOUSAND, 2, RoundingMode.HALF_UP);
+                }
+                e.setStsFactorsOneValue(one);
+                e.setStsFactorsTwoValue(two);
             }
         });
         return res;