159 lines
8.1 KiB
XML
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>
|