big-screen/njzscloud-svr/src/main/resources/mapper/SupervisionStatisticsMapper...

159 lines
8.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njzscloud.supervisory.statistics.mapper.SupervisionStatisticsMapper">
<select id="getDispatchSummary" resultType="com.njzscloud.supervisory.statistics.pojo.DispatchSummary">
SELECT MAX(IF(t = 0, c, 0)) dai_pai_che,
MAX(IF(t = 1, c, 0)) wei_jie_dan,
MAX(IF(t = 2, c, 0)) yun_shu_zhong,
MAX(IF(t = 3, c, 0)) yi_wan_cheng
FROM (SELECT COUNT(*) c, 0 t
FROM ba_order
WHERE type = 5
AND finish = 0
AND car_number = ''
UNION ALL
SELECT COUNT(*) c, 1 t
FROM ba_order_dispatch a
INNER JOIN ba_order b ON b.order_no = a.order_no AND b.status NOT IN (1, 4, 5)
WHERE a.status = 1
UNION ALL
SELECT COUNT(*) c, 2 t
FROM ba_order_dispatch a
INNER JOIN ba_order b ON b.order_no = a.order_no AND b.status NOT IN (1, 4, 5)
WHERE a.status = 2
UNION ALL
SELECT COUNT(*) c, 3 t
FROM ba_order_dispatch
WHERE status = 3) t
</select>
<select id="getYuYueSummary" resultType="com.njzscloud.supervisory.statistics.pojo.YuYueSummary">
SELECT zuo_tian,
jin_tian,
IF(zuo_tian = 0, IF(jin_tian = 0, 0, 100),
ROUND((jin_tian - zuo_tian / zuo_tian) * 100, 2)) zeng_zhang_lv
FROM (SELECT MAX(IF(t = 1, c, 0)) zuo_tian,
MAX(IF(t = 2, c, 0)) jin_tian
FROM (SELECT COUNT(*) c, 1 t
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
WHERE a.create_time >= UNIX_TIMESTAMP(CURDATE())
AND a.create_time <![CDATA[ < ]]> UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL -24 HOUR))
UNION ALL
SELECT COUNT(*) c, 2 t
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
WHERE a.create_time >= UNIX_TIMESTAMP(CURDATE())
AND a.create_time <![CDATA[ < ]]> UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL 24 HOUR))) t) tt
</select>
<select id="getDisposeTotalWeight" resultType="java.lang.Integer">
SELECT SUM(weight) total_weight
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
WHERE a.status = 1
</select>
<select id="getCarSummary" resultType="com.njzscloud.supervisory.statistics.pojo.CarSummary">
SELECT MAX(IF(t = 1, c, 0)) yun_shu_zhong,
MAX(IF(t = 2, c, 0)) car_count
FROM (SELECT COUNT(*) c, 1 t
FROM ba_order_dispatch
WHERE status = 2
UNION ALL
SELECT COUNT(*) c, 2 t
FROM ba_car) t
</select>
<select id="getTodayCarCount" resultType="java.lang.Integer">
SELECT COUNT(*) car_count
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
WHERE a.create_time >= UNIX_TIMESTAMP(CURDATE())
AND a.create_time <![CDATA[ < ]]> UNIX_TIMESTAMP(DATE_ADD(CURDATE(), INTERVAL 24 HOUR))
AND a.status = 1
</select>
<select id="getRegionSummary" resultType="com.njzscloud.supervisory.statistics.pojo.RegionSummary">
SELECT b.address,
IFNULL(SUM(a.weight), 0) total_weight
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
WHERE a.status = 1
GROUP BY b.address
</select>
<select id="getCompanySummary" resultType="com.njzscloud.supervisory.statistics.pojo.CompanySummary">
SELECT t1.total_weight, t2.company
FROM (SELECT IFNULL(SUM(a.weight), 0) total_weight, b.transport_uid
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
WHERE a.status = 1
GROUP BY b.transport_uid) t1
INNER JOIN ba_user t2 ON t2.group_id = 2 AND t2.id = t1.transport_uid
ORDER BY t1.total_weight DESC
LIMIT 5
</select>
<select id="getStationInfo" resultType="com.njzscloud.supervisory.statistics.pojo.StationInfo">
SELECT name, longitude, latitude
FROM ba_station
</select>
<select id="getOrders" resultType="com.njzscloud.supervisory.statistics.pojo.Order">
SELECT a.order_no,
d.realname,
d.mobile,
e.name goods_category_name,
FROM_UNIXTIME(a.create_time, '%Y-%m-%d %H:%i:%s') create_time,
IF(a.type = 5 AND a.finish = 0 AND a.car_number = '', '待派车',
IF(b.status = 1 AND a.status NOT IN (1, 4, 5), '未接单', IF(b.status = 2 AND a.status NOT IN (1, 4, 5), '运输中', IF(b.status = 3, '已完成',
CASE a.status
WHEN '0' THEN '待授权'
WHEN '1' THEN '已完成'
WHEN '2' THEN '待支付'
WHEN '3' THEN '待结算'
WHEN '4' THEN '已取消'
WHEN '5' THEN '已退款'
ELSE '未知'
END
)))) order_status,
a.car_number,
f.realname driver_name,
a.goods_name,
c.company,
b.address,
b.lon,
b.lat,
b.km,
a.finish,
a.car_status,
a.status
FROM ba_order a
INNER JOIN ba_order_dispatch b ON b.order_no = a.order_no
LEFT JOIN ba_user c ON c.id = b.transport_uid
LEFT JOIN ba_user d ON d.id = a.user_id
LEFT JOIN ba_user f ON f.id = b.driver_uid
LEFT JOIN ba_goods_category e ON e.id = a.goods_category_id
WHERE a.status IN (0, 1, 2, 3)
ORDER BY a.create_time DESC
LIMIT 50
</select>
<select id="getProjects" resultType="com.njzscloud.supervisory.statistics.pojo.Project">
SELECT g.name project_name,
g.area,
g.street,
g.address,
g.km,
g.estimate,
c.realname,
c.mobile
FROM ba_project g
LEFT JOIN ba_user c ON c.id = g.user_id
ORDER BY g.create_time DESC
LIMIT 10
</select>
</mapper>