|
|
@@ -12,13 +12,13 @@
|
|
|
JOIN nm_site s ON o.org_code = s.org_code
|
|
|
WHERE opi.type NOT IN (0, 3, 4, 6)
|
|
|
AND opi.order_status NOT IN (0, 3, 4, 5, 6)
|
|
|
+ AND s.org_code LIKE CONCAT(#{orgCode}, '%')
|
|
|
AND (
|
|
|
- (#{type} = 1 AND DATE(DATE_ADD(opi.create_time, INTERVAL 8 HOUR)) = CURDATE()) OR
|
|
|
- (#{type} = 2 AND YEARWEEK(DATE_ADD(opi.create_time, INTERVAL 8 HOUR), 1) = YEARWEEK(CURDATE(), 1)) OR
|
|
|
- (#{type} = 3 AND YEAR(DATE_ADD(opi.create_time, INTERVAL 8 HOUR)) = YEAR(CURDATE()) AND MONTH(DATE_ADD(opi.create_time, INTERVAL 8 HOUR)) = MONTH(CURDATE())) OR
|
|
|
- (#{type} IS NULL OR #{type} NOT IN (3,4,6))
|
|
|
+ (#{type} = 1 AND DATE(opi.create_time) = CURDATE())
|
|
|
+ OR (#{type} = 2 AND YEARWEEK(opi.create_time, 1) = YEARWEEK(CURDATE(), 1))
|
|
|
+ OR (#{type} = 3 AND YEAR(opi.create_time) = YEAR(CURDATE()) AND MONTH(opi.create_time) = MONTH(CURDATE()))
|
|
|
+ OR (#{type} IS NULL OR #{type} = '' OR #{type} NOT IN (1,2,3))
|
|
|
)
|
|
|
- AND s.org_code LIKE CONCAT(#{orgCode}, '%')
|
|
|
GROUP BY product_name
|
|
|
ORDER BY total_quantity DESC, total_price DESC
|
|
|
LIMIT 30;
|
|
|
@@ -26,24 +26,26 @@
|
|
|
|
|
|
<select id="findByDeptSum" resultType="map">
|
|
|
SELECT
|
|
|
- s.name AS name,
|
|
|
- SUM(opi.price) AS total_price,
|
|
|
- ROW_NUMBER() OVER (ORDER BY SUM(opi.quantity) DESC, SUM(opi.price) DESC) AS ranking
|
|
|
+ s.name AS name,
|
|
|
+ SUM(opi.price) AS total_price,
|
|
|
+ SUM(opi.quantity) AS total_quantity, -- 添加quantity用于调试
|
|
|
+ ROW_NUMBER() OVER (ORDER BY SUM(opi.price) DESC) AS ranking -- 统一按price排序
|
|
|
FROM nm_order_pro_info opi
|
|
|
- JOIN nm_order o ON opi.order_code = o.order_code
|
|
|
- JOIN nm_site s ON o.org_code = s.org_code
|
|
|
+ JOIN nm_order o ON opi.order_code = o.order_code
|
|
|
+ JOIN nm_site s ON o.org_code = s.org_code
|
|
|
WHERE opi.type NOT IN (0,3,4,6)
|
|
|
- AND opi.order_status NOT IN (0, 3, 4, 5, 6)
|
|
|
- AND (
|
|
|
- (#{type} = 1 AND DATE_ADD(opi.create_time, INTERVAL 8 HOUR) <![CDATA[ >= ]]> CURDATE() AND DATE_ADD(opi.create_time, INTERVAL 8 HOUR) <![CDATA[ < ]]> CURDATE() + INTERVAL 1 DAY) OR
|
|
|
- (#{type} = 2 AND DATE_ADD(opi.create_time, INTERVAL 8 HOUR) <![CDATA[ >= ]]> DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) AND DATE_ADD(opi.create_time, INTERVAL 8 HOUR) <![CDATA[ < ]]> DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) + INTERVAL 7 DAY) OR
|
|
|
- (#{type} = 3 AND DATE_ADD(opi.create_time, INTERVAL 8 HOUR) <![CDATA[ >= ]]> DATE_FORMAT(CURDATE(), '%Y-%m-01') AND DATE_ADD(opi.create_time, INTERVAL 8 HOUR) <![CDATA[ < ]]> DATE_FORMAT(CURDATE(), '%Y-%m-01') + INTERVAL 1 MONTH) OR
|
|
|
- (#{type} IS NULL OR #{type} NOT IN (3,4,6))
|
|
|
- )
|
|
|
- AND s.org_code LIKE CONCAT(#{orgCode}, '%')
|
|
|
- GROUP BY s.org_code
|
|
|
+ AND opi.order_status NOT IN (0, 3, 4, 5, 6)
|
|
|
+ AND (
|
|
|
+ (#{type} = 1 AND DATE(DATE_ADD(opi.create_time, INTERVAL 8 HOUR)) = CURDATE()) OR
|
|
|
+ (#{type} = 2 AND YEARWEEK(DATE_ADD(opi.create_time, INTERVAL 8 HOUR), 1) = YEARWEEK(CURDATE(), 1)) OR
|
|
|
+ (#{type} = 3 AND YEAR(DATE_ADD(opi.create_time, INTERVAL 8 HOUR)) = YEAR(CURDATE())
|
|
|
+ AND MONTH(DATE_ADD(opi.create_time, INTERVAL 8 HOUR)) = MONTH(CURDATE())) OR
|
|
|
+ (#{type} IS NULL OR #{type} NOT IN (1,2,3))
|
|
|
+ )
|
|
|
+ AND s.org_code LIKE CONCAT(#{orgCode}, '%')
|
|
|
+ GROUP BY s.org_code, s.name -- 添加s.name到GROUP BY
|
|
|
ORDER BY total_price DESC
|
|
|
- LIMIT 30
|
|
|
+ LIMIT 30;
|
|
|
</select>
|
|
|
|
|
|
<select id="findIndexStatistics" resultType="map">
|