Просмотр исходного кода

fix:客户销售排行问题

xucaiqin 2 недель назад
Родитель
Сommit
de49253cf7
1 измененных файлов с 18 добавлено и 5 удалено
  1. 18 5
      sckw-modules/sckw-order/src/main/resources/mapper/KwoTradeOrderMapper.xml

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

@@ -1011,16 +1011,29 @@
     </select>
     </select>
 
 
     <select id="saleTop" resultType="com.sckw.order.model.vo.SaleTopVo">
     <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
         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 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>
         <where>
             kto.del_flag = 0
             kto.del_flag = 0
               and kto.status = 4
               and kto.status = 4
-            and ku.ent_id in (538038314096136193,538039617157337089,538040297439891457)
+              and ku.ent_id in (538038314096136193, 538039617157337089, 538040297439891457)
             group by kto.id,
             group by kto.id,
                      d.firm_name
                      d.firm_name
         </where>
         </where>