Procházet zdrojové kódy

Merge remote-tracking branch 'origin/dev_20260131_youshen430' into dev_20260131_youshen430

donglang před 2 týdny
rodič
revize
30a6ff0d2f

+ 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;
 
 }

+ 9 - 10
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -3079,14 +3079,14 @@ public class KwoTradeOrderService {
         log.info("开始查询订单执行展示数据");
 
         // 1. 查询原矿物流订单执行数据
-        List<OrderExecutionDisplayVo> rawOreRows = buildRawOreOrderExecutionDisplayRows(ORDER_EXECUTION_DISPLAY_LIMIT);
-        log.debug("查询到原矿物流订单执行数据条数: {}", rawOreRows.size());
+//        List<OrderExecutionDisplayVo> rawOreRows = buildRawOreOrderExecutionDisplayRows(ORDER_EXECUTION_DISPLAY_LIMIT);
+//        log.debug("查询到原矿物流订单执行数据条数: {}", rawOreRows.size());
 
         // 2. 查询指定报表企业范围内的贸易订单ID
         List<Long> reportTradeOrderIds = queryReportTradeOrderIds();
         if (CollectionUtils.isEmpty(reportTradeOrderIds)) {
-            log.info("未找到指定报表企业的贸易订单ID,仅返回原矿物流订单数据");
-            return rawOreRows;
+            log.info("未找到指定报表企业的贸易订单ID");
+            return List.of();
         }
         log.info("找到指定报表企业的贸易订单ID数量: {}", reportTradeOrderIds.size());
 
@@ -3105,7 +3105,7 @@ public class KwoTradeOrderService {
 
         if (CollectionUtils.isEmpty(orders)) {
             log.info("未查询到符合条件的贸易订单,仅返回原矿物流订单数据");
-            return rawOreRows;
+            return List.of();
         }
         log.info("查询到符合条件的贸易订单数量: {}", orders.size());
 
@@ -3121,7 +3121,7 @@ public class KwoTradeOrderService {
                 : Collections.emptyMap();
 
         // 6. 组装贸易订单执行展示数据
-        List<OrderExecutionDisplayVo> rows = new ArrayList<>(orders.size() + rawOreRows.size());
+        List<OrderExecutionDisplayVo> rows = new ArrayList<>(orders.size());
         for (KwoTradeOrder order : orders) {
             TradeOrderWaybillAggDto agg = aggMap.get(order.getId());
 
@@ -3162,10 +3162,9 @@ public class KwoTradeOrderService {
             rows.add(vo);
         }
 
-        // 7. 将原矿物流订单数据追加到列表末尾
-        rows.addAll(rawOreRows);
-        log.info("订单执行展示数据组装完成,贸易订单数: {}, 原矿物流订单数: {}, 总数: {}",
-                orders.size(), rawOreRows.size(), rows.size());
+        // 7. 将原矿物流订单数据追加到列表末尾(原矿的数据已经取消)
+        log.info("订单执行展示数据组装完成,贸易订单数: {}, 总数: {}",
+                orders.size(), rows.size());
         return rows;
     }
     /**

+ 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