xucaiqin 3 settimane fa
parent
commit
aaba3ee768

+ 4 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/SalesReportRawData.java

@@ -9,10 +9,13 @@ import java.math.BigDecimal;
  */
 @Data
 public class SalesReportRawData {
+    private Integer chargeType;
+    private BigDecimal loadAmount;
+    private BigDecimal unloadAmount;
     private Long customerId;
     private String customerName;
     private Long goodsId;
     private BigDecimal amount;
     private BigDecimal price;
     private String createTime;
-}
+}

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

@@ -366,7 +366,8 @@ public class KwoTradeOrderStatisticsService {
             }
             Long customerId = rawData.getCustomerId();
             // 金额/数量判空处理
-            BigDecimal amount = rawData.getAmount() != null ? rawData.getAmount() : BigDecimal.ZERO;
+            BigDecimal amount = Objects.equals(rawData.getChargeType(), 1) ? rawData.getLoadAmount() : rawData.getUnloadAmount();
+            amount = Objects.isNull(amount) ? BigDecimal.ZERO : amount;
             BigDecimal price = rawData.getPrice() != null ? rawData.getPrice() : BigDecimal.ZERO;
             String createTimeStr = rawData.getCreateTime();
             if (createTimeStr == null) {
@@ -404,7 +405,7 @@ public class KwoTradeOrderStatisticsService {
             }
 
             // 累计数据(createTime <= endTime)
-            if (createTime.compareTo(endDateTime) <= 0) {
+            if (createTime.isBefore(endDateTime)) {
                 vo.setCumulativeQuantity(vo.getCumulativeQuantity().add(amount));
                 vo.setCumulativeAmount(vo.getCumulativeAmount().add(price));
                 if (vo.getCumulativeQuantity().compareTo(BigDecimal.ZERO) > 0) {
@@ -420,7 +421,7 @@ public class KwoTradeOrderStatisticsService {
                         vo.setAveragePrice(vo.getSalesAmount()
                                 .divide(vo.getSalesQuantity(), 2, RoundingMode.HALF_UP));
                     }
-                } else if (createTime.compareTo(startDateTime) >= 0) {
+                } else if (createTime.isAfter(startDateTime)) {
                     vo.setSalesQuantity(vo.getSalesQuantity().add(amount));
                     vo.setSalesAmount(vo.getSalesAmount().add(price));
                     if (vo.getSalesQuantity().compareTo(BigDecimal.ZERO) > 0) {

+ 5 - 1
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -867,7 +867,11 @@
     </select>
 
     <select id="querySalesReportRawData" resultType="com.sckw.order.model.SalesReportRawData">
-        select d.ent_id as customerId,
+        select
+               kto.charge_type as chargeType,
+               kto.load_amount as loadAmount,
+               kto.unload_amount as unloadAmount,
+               d.ent_id as customerId,
                d.firm_name as customerName,
                ktog.goods_id as goodsId,
                kto.amount as amount,