3 Коммиты 4ac2643cc5 ... 0e86069469

Автор SHA1 Сообщение Дата
  xucaiqin 0e86069469 Merge remote-tracking branch 'origin/dev_20260131_youshen430' into dev_20260131_youshen430 2 недель назад
  xucaiqin de49253cf7 fix:客户销售排行问题 2 недель назад
  xucaiqin 0c031ef6b0 fix统计石灰石销售排行问题 2 недель назад

+ 6 - 0
sckw-modules-api/sckw-order-api/src/main/java/com/sckw/order/api/model/TradeOrderDto.java

@@ -22,6 +22,12 @@ public class TradeOrderDto implements Serializable {
     private Long goodsId;
 
     private BigDecimal amount;
+    private Integer chargeType;
+
+    private BigDecimal unloadAmount;
+
+
+    private BigDecimal loadAmount;
     private BigDecimal unitPrice;
 
 }

+ 5 - 1
sckw-modules/sckw-order/src/main/java/com/sckw/order/task/TradeOrderTask.java

@@ -99,7 +99,11 @@ public class TradeOrderTask {
                 }
 
                 kwoTradeOrderArchive.setUnitPrice(d.getUnitPrice());
-                kwoTradeOrderArchive.setAmount(d.getAmount());
+                if (Objects.equals(d.getChargeType(), 1)) {
+                    kwoTradeOrderArchive.setAmount(d.getLoadAmount());
+                } else {
+                    kwoTradeOrderArchive.setAmount(d.getUnloadAmount());
+                }
                 return kwoTradeOrderArchive;
 
             }).toList();

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

@@ -23,7 +23,7 @@
       product_spec,
       MAX(unit_price) AS maxPrice,
       MIN(unit_price) AS minPrice,
-      SUM(amount),
+      SUM(amount) as amount,
       ROUND(SUM(unit_price * amount) / SUM(amount), 2) AS avgPrice,
       ROUND(SUM(unit_price * amount) / 10000, 2) AS salePrice,
       ROUND(100 * SUM(unit_price * amount) / total_sales, 2) AS percent

+ 22 - 6
sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

@@ -1011,16 +1011,29 @@
     </select>
 
     <select id="saleTop" resultType="com.sckw.order.model.vo.SaleTopVo">
-        select ROW_NUMBER() OVER (ORDER BY amount DESC) AS sort,
-               sum(kto.price)                           as amount,
-               d.firm_name                                 entName
+        SELECT ROW_NUMBER() OVER (ORDER BY SUM(
+                CASE
+                    WHEN kto.charge_type = 1 THEN kto.load_amount * ktog.unit_price
+                    WHEN kto.charge_type = 2 THEN kto.unload_amount * ktog.unit_price
+                    ELSE 0
+                    END
+                                           ) DESC) AS sort,
+               SUM(
+                       CASE
+                           WHEN kto.charge_type = 1 THEN kto.load_amount * ktog.unit_price
+                           WHEN kto.charge_type = 2 THEN kto.unload_amount * ktog.unit_price
+                           ELSE 0
+                           END
+               )                                   AS amount,
+               d.firm_name                         AS entName
         from kwo_trade_order kto
                  inner JOIN kwo_trade_order_unit d ON kto.id = d.t_order_id AND d.unit_type = '1' AND d.del_flag = 0
-                inner join kwo_trade_order_unit ku on kto.id = ku.t_order_id and ku.unit_type = '2' and ku.del_flag = 0
+                 inner join kwo_trade_order_unit ku on kto.id = ku.t_order_id and ku.unit_type = '2' and ku.del_flag = 0
+                 inner join kwo_trade_order_goods ktog on kto.id = ktog.t_order_id and ktog.del_flag = 0
         <where>
             kto.del_flag = 0
               and kto.status = 4
-            and ku.ent_id in (538038314096136193,538039617157337089,538040297439891457)
+              and ku.ent_id in (538038314096136193, 538039617157337089, 538040297439891457)
             group by kto.id,
                      d.firm_name
         </where>
@@ -1042,7 +1055,10 @@
         select kto.id,
                ktog.goods_id,
                kto.amount,
-               ktog.unit_price
+               ktog.unit_price,
+                kto.charge_type,
+                kto.load_amount,
+                kto.unload_amount
         from kwo_trade_order kto
                  inner join kwo_trade_order_goods ktog on kto.id = ktog.t_order_id and ktog.del_flag = 0
         inner join kwo_trade_order_unit ku on kto.id = ku.t_order_id and ku.unit_type = '2' and ku.del_flag = 0