|
|
@@ -2319,4 +2319,73 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
</if>
|
|
|
</select>
|
|
|
|
|
|
+ <select id="selectScheduleStatisticsVOList" resultType="com.fs.his.vo.FsStoreOrderScheduleStatisticsVO">
|
|
|
+ SELECT dis.*,cd.dept_name FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ (SELECT dept_id FROM company_user WHERE user_id = o.company_user_id) as dept_id,
|
|
|
+ CASE
|
|
|
+ WHEN o.tag_names IS NULL OR JSON_LENGTH(o.tag_names) = 0 THEN '无档期'
|
|
|
+ ELSE JSON_UNQUOTE(JSON_EXTRACT(o.tag_names, CONCAT('$[', idx, ']')))
|
|
|
+ END AS tagName,
|
|
|
+ SUM(o.pay_price) as shippingOrderAmount,
|
|
|
+ COUNT(*) as shippingOrderCount,
|
|
|
+ SUM(case WHEN (o.`status` = 3 OR o.`status` = 2) THEN o.pay_price ELSE 0 END) as transitOrderAmount,
|
|
|
+ SUM(case WHEN (o.`status` = 3 OR o.`status` = 2) THEN 1 ELSE 0 END) as transitOrderCount,
|
|
|
+ SUM(CASE WHEN o.delivery_type = '404' THEN o.pay_price ELSE 0 END) AS rejectOrderAmount,
|
|
|
+ SUM(CASE WHEN o.delivery_type = '404' THEN 1 ELSE 0 END) AS rejectOrderCount,
|
|
|
+ SUM(CASE WHEN o.delivery_status = 3 THEN o.pay_price ELSE 0 END) AS receiveOrderAmount,
|
|
|
+ SUM(CASE WHEN o.delivery_status = 3 THEN 1 ELSE 0 END) AS receiveOrderCount,
|
|
|
+ o.company_user_id
|
|
|
+ FROM fs_store_order o
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT 0 AS idx UNION SELECT 1 UNION SELECT 2 UNION SELECT 3
|
|
|
+ ) AS indices ON idx < JSON_LENGTH(COALESCE(o.tag_names, '[]'))
|
|
|
+ WHERE o.company_user_id IS NOT null AND o.company_user_id != 1 AND o.`status` != -1 AND o.`status` != -2
|
|
|
+ GROUP BY tagName,dept_id) as dis
|
|
|
+ LEFT JOIN company_dept cd ON dis.dept_id = cd.dept_id
|
|
|
+ where 1 = 1
|
|
|
+ <if test="map.tagName != null and map.tagName != '' ">
|
|
|
+ and dis.tagName = #{map.tagName}
|
|
|
+ </if>
|
|
|
+ <if test="map.deptId != null ">
|
|
|
+ and cd.dept_id = #{map.deptId}
|
|
|
+ </if>
|
|
|
+ GROUP BY dis.tagName,dis.dept_id
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <select id="selectScheduleStatisticsVOListCount" resultType="java.lang.Long">
|
|
|
+ SELECT count(*) FROM
|
|
|
+ (
|
|
|
+ SELECT
|
|
|
+ (SELECT dept_id FROM company_user WHERE user_id = o.company_user_id) as dept_id,
|
|
|
+ CASE
|
|
|
+ WHEN o.tag_names IS NULL OR JSON_LENGTH(o.tag_names) = 0 THEN '无档期'
|
|
|
+ ELSE JSON_UNQUOTE(JSON_EXTRACT(o.tag_names, CONCAT('$[', idx, ']')))
|
|
|
+ END AS tagName,
|
|
|
+ SUM(o.pay_price) as shippingOrderAmount,
|
|
|
+ COUNT(*) as shippingOrderCount,
|
|
|
+ SUM(case WHEN (o.`status` = 3 OR o.`status` = 2) THEN o.pay_price ELSE 0 END) as transitOrderAmount,
|
|
|
+ SUM(case WHEN (o.`status` = 3 OR o.`status` = 2) THEN 1 ELSE 0 END) as transitOrderCount,
|
|
|
+ SUM(CASE WHEN o.delivery_type = '404' THEN o.pay_price ELSE 0 END) AS rejectOrderAmount,
|
|
|
+ SUM(CASE WHEN o.delivery_type = '404' THEN 1 ELSE 0 END) AS rejectOrderCount,
|
|
|
+ SUM(CASE WHEN o.delivery_status = 3 THEN o.pay_price ELSE 0 END) AS receiveOrderAmount,
|
|
|
+ SUM(CASE WHEN o.delivery_status = 3 THEN 1 ELSE 0 END) AS receiveOrderCount,
|
|
|
+ o.company_user_id
|
|
|
+ FROM fs_store_order o
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT 0 AS idx UNION SELECT 1 UNION SELECT 2 UNION SELECT 3
|
|
|
+ ) AS indices ON idx < JSON_LENGTH(COALESCE(o.tag_names, '[]'))
|
|
|
+ WHERE o.company_user_id IS NOT null AND o.company_user_id != 1 AND o.`status` != -1 AND o.`status` != -2
|
|
|
+ GROUP BY tagName,dept_id) as dis
|
|
|
+ LEFT JOIN company_dept cd ON dis.dept_id = cd.dept_id
|
|
|
+ where 1 = 1
|
|
|
+ <if test="map.tagName != null and map.tagName != '' ">
|
|
|
+ and dis.tagName = #{map.tagName}
|
|
|
+ </if>
|
|
|
+ <if test="map.deptId != null ">
|
|
|
+ and cd.dept_id = #{map.deptId}
|
|
|
+ </if>
|
|
|
+ </select>
|
|
|
+
|
|
|
</mapper>
|