更新
This commit is contained in:
parent
58e8edadd3
commit
452e18c135
@ -118,67 +118,125 @@
|
|||||||
ORDER BY
|
ORDER BY
|
||||||
node.create_time DESC;
|
node.create_time DESC;
|
||||||
</select>
|
</select>
|
||||||
|
<!-- <select id="getStaffCount" resultType="java.util.Map"-->
|
||||||
|
<!-- parameterType="cn.iocoder.yudao.module.inspection.entity.DlInspectionProject">-->
|
||||||
|
<!-- SELECT-->
|
||||||
|
<!-- su.id AS deal_user_id, -- 处理人员ID-->
|
||||||
|
<!-- su.nickname, -- 处理人员名称-->
|
||||||
|
<!-- su.avatar, -- 处理人员头像-->
|
||||||
|
<!-- COUNT(DISTINCT iwn.id) AS orderCount, -- 统计每个员工的唯一订单数量-->
|
||||||
|
<!-- SUM(IFNULL(royalty.royalty_amount, 0)) / 100 AS royaltyAmount, -- 计算每个员工的总佣金-->
|
||||||
|
<!-- su.mobile, -- 处理人员手机号-->
|
||||||
|
<!-- COALESCE(proj_stats.waijianCount, 0) AS waijianCount, -- 包含“外检”的订单数量-->
|
||||||
|
<!-- COALESCE(proj_stats.anjianCount, 0) AS anjianCount, -- 包含“安检”的订单数量-->
|
||||||
|
<!-- COALESCE(proj_stats.otherCount, 0) AS otherCount -- 其他订单数量(排除“外检”和“安检”)-->
|
||||||
|
<!-- FROM system_users su-->
|
||||||
|
<!-- LEFT JOIN system_user_role sr-->
|
||||||
|
<!-- ON su.id = sr.user_id-->
|
||||||
|
<!-- LEFT JOIN system_role sr2-->
|
||||||
|
<!-- ON sr.role_id = sr2.id-->
|
||||||
|
<!-- LEFT JOIN inspection_work_node iwn-->
|
||||||
|
<!-- ON su.id = iwn.deal_user_id-->
|
||||||
|
<!-- LEFT JOIN inspection_info info-->
|
||||||
|
<!-- ON iwn.inspection_info_id = info.id-->
|
||||||
|
<!-- LEFT JOIN order_info orders-->
|
||||||
|
<!-- ON info.inspection_order_id = orders.id-->
|
||||||
|
<!-- LEFT JOIN inspection_project_royalty royalty-->
|
||||||
|
<!-- ON iwn.project_id = royalty.project_id-->
|
||||||
|
<!-- AND orders.goods_id = royalty.goods_id-->
|
||||||
|
<!-- LEFT JOIN (-->
|
||||||
|
<!-- SELECT-->
|
||||||
|
<!-- iwn.deal_user_id,-->
|
||||||
|
<!-- SUM(CASE WHEN proj.project_name LIKE '%外检%' THEN 1 ELSE 0 END) AS waijianCount,-->
|
||||||
|
<!-- SUM(CASE WHEN proj.project_name LIKE '%安检%' THEN 1 ELSE 0 END) AS anjianCount,-->
|
||||||
|
<!-- SUM(CASE-->
|
||||||
|
<!-- WHEN proj.project_name NOT LIKE '%外检%'-->
|
||||||
|
<!-- AND proj.project_name NOT LIKE '%安检%'-->
|
||||||
|
<!-- THEN 1 ELSE 0-->
|
||||||
|
<!-- END) AS otherCount -- 统计不包含“外检”和“安检”的订单-->
|
||||||
|
<!-- FROM inspection_work_node iwn-->
|
||||||
|
<!-- LEFT JOIN inspection_project proj-->
|
||||||
|
<!-- ON iwn.project_id = proj.id-->
|
||||||
|
<!-- LEFT JOIN inspection_info info-->
|
||||||
|
<!-- ON iwn.inspection_info_id = info.id-->
|
||||||
|
<!-- WHERE-->
|
||||||
|
<!-- iwn.deleted = 0 -- 排除已删除的数据-->
|
||||||
|
<!-- AND iwn.deal_user_id IS NOT NULL -- 排除 deal_user_id 为空的记录-->
|
||||||
|
<!-- AND iwn.status = 2-->
|
||||||
|
<!-- AND info.status = 1-->
|
||||||
|
<!-- GROUP BY iwn.deal_user_id-->
|
||||||
|
<!-- ) proj_stats-->
|
||||||
|
<!-- ON su.id = proj_stats.deal_user_id -- 获取“外检”和“安检”的统计-->
|
||||||
|
<!-- WHERE-->
|
||||||
|
<!-- sr2.service_package_id = 'jiance' -- 角色条件-->
|
||||||
|
<!-- AND sr2.code != 'jcyh' -- 排除特定角色-->
|
||||||
|
<!-- AND (iwn.deleted = 0 OR iwn.deleted IS NULL) -- 允许 iwn 为空-->
|
||||||
|
<!-- AND (iwn.deal_user_id IS NOT NULL OR iwn.deal_user_id IS NULL) -- 允许没有工单的用户-->
|
||||||
|
<!--# AND (iwn.status = 2 OR iwn.status IS NULL) -- 允许 iwn 为空-->
|
||||||
|
<!-- AND (iwn.status = 2) -- 允许 iwn 为空-->
|
||||||
|
<!-- AND (info.status = 1 OR info.status IS NULL)-->
|
||||||
|
<!-- <if test="id != null and id != ''">-->
|
||||||
|
<!-- AND iwn.project_id = #{id} -- 只在这里加上id过滤-->
|
||||||
|
<!-- </if>-->
|
||||||
|
<!-- GROUP BY su.id -- 根据处理人员ID进行分组-->
|
||||||
|
<!-- ORDER BY orderCount DESC; -- 根据接单数量进行降序排序-->
|
||||||
|
<!-- </select>-->
|
||||||
|
|
||||||
<select id="getStaffCount" resultType="java.util.Map"
|
<select id="getStaffCount" resultType="java.util.Map"
|
||||||
parameterType="cn.iocoder.yudao.module.inspection.entity.DlInspectionProject">
|
parameterType="cn.iocoder.yudao.module.inspection.entity.DlInspectionProject">
|
||||||
SELECT
|
SELECT
|
||||||
su.id AS deal_user_id, -- 处理人员ID
|
iwn.deal_user_id, -- 处理人员ID
|
||||||
su.nickname, -- 处理人员名称
|
su.nickname, -- 处理人员名称
|
||||||
su.avatar, -- 处理人员头像
|
su.avatar, -- 处理人员头像
|
||||||
COUNT(DISTINCT iwn.id) AS orderCount, -- 统计每个员工的唯一订单数量
|
COUNT(DISTINCT iwn.id) AS orderCount, -- 统计每个员工的唯一订单数量
|
||||||
SUM(IFNULL(royalty.royalty_amount, 0)) / 100 AS royaltyAmount, -- 计算每个员工的总佣金
|
SUM(IFNULL(royalty.royalty_amount, 0) / 100) AS royaltyAmount, -- 计算每个员工的总佣金
|
||||||
su.mobile, -- 处理人员手机号
|
su.mobile, -- 处理人员手机号
|
||||||
COALESCE(proj_stats.waijianCount, 0) AS waijianCount, -- 包含“外检”的订单数量
|
COALESCE(waijianCount, 0) AS waijianCount, -- 包含“外检”的订单数量
|
||||||
COALESCE(proj_stats.anjianCount, 0) AS anjianCount, -- 包含“安检”的订单数量
|
COALESCE(anjianCount, 0) AS anjianCount, -- 包含“安检”的订单数量
|
||||||
COALESCE(proj_stats.otherCount, 0) AS otherCount -- 其他订单数量(排除“外检”和“安检”)
|
COALESCE(proj_stats.otherCount, 0) AS otherCount -- 其他订单数量(排除“外检”和“安检”)
|
||||||
FROM system_users su
|
FROM
|
||||||
LEFT JOIN system_user_role sr
|
inspection_work_node iwn
|
||||||
ON su.id = sr.user_id
|
LEFT JOIN system_users su ON su.id = iwn.deal_user_id -- 处理人员信息
|
||||||
LEFT JOIN system_role sr2
|
LEFT JOIN inspection_info AS info ON iwn.inspection_info_id = info.id
|
||||||
ON sr.role_id = sr2.id
|
LEFT JOIN order_info orders ON info.inspection_order_id = orders.id
|
||||||
LEFT JOIN inspection_work_node iwn
|
LEFT JOIN inspection_project_royalty AS royalty
|
||||||
ON su.id = iwn.deal_user_id
|
|
||||||
LEFT JOIN inspection_info info
|
|
||||||
ON iwn.inspection_info_id = info.id
|
|
||||||
LEFT JOIN order_info orders
|
|
||||||
ON info.inspection_order_id = orders.id
|
|
||||||
LEFT JOIN inspection_project_royalty royalty
|
|
||||||
ON iwn.project_id = royalty.project_id
|
ON iwn.project_id = royalty.project_id
|
||||||
AND orders.goods_id = royalty.goods_id
|
AND orders.goods_id = royalty.goods_id
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT
|
||||||
iwn.deal_user_id,
|
iwn.deal_user_id,
|
||||||
SUM(CASE WHEN proj.project_name LIKE '%外检%' THEN 1 ELSE 0 END) AS waijianCount,
|
SUM(CASE WHEN proj.project_name LIKE '环检外检%' THEN 1 ELSE 0 END) AS waijianCount,
|
||||||
SUM(CASE WHEN proj.project_name LIKE '%安检%' THEN 1 ELSE 0 END) AS anjianCount,
|
SUM(CASE WHEN proj.project_name LIKE '安检%' THEN 1 ELSE 0 END) AS anjianCount,
|
||||||
SUM(CASE
|
SUM(
|
||||||
WHEN proj.project_name NOT LIKE '%外检%'
|
CASE
|
||||||
AND proj.project_name NOT LIKE '%安检%'
|
WHEN proj.project_name NOT LIKE '环检外检%'
|
||||||
|
AND proj.project_name NOT LIKE '安检%'
|
||||||
THEN 1 ELSE 0
|
THEN 1 ELSE 0
|
||||||
END) AS otherCount -- 统计不包含“外检”和“安检”的订单
|
END
|
||||||
FROM inspection_work_node iwn
|
) AS otherCount -- 统计不包含“外检”和“安检”的订单
|
||||||
LEFT JOIN inspection_project proj
|
FROM
|
||||||
ON iwn.project_id = proj.id
|
inspection_work_node iwn
|
||||||
LEFT JOIN inspection_info info
|
LEFT JOIN inspection_project AS proj ON iwn.project_id = proj.id
|
||||||
ON iwn.inspection_info_id = info.id
|
LEFT JOIN inspection_info AS info ON iwn.inspection_info_id = info.id
|
||||||
WHERE
|
WHERE iwn.deleted = 0 -- 排除已删除的数据
|
||||||
iwn.deleted = 0 -- 排除已删除的数据
|
AND iwn.deal_user_id IS NOT NULL -- 排除 deal_user_id 为 NULL 的记录
|
||||||
AND iwn.deal_user_id IS NOT NULL -- 排除 deal_user_id 为空的记录
|
|
||||||
AND iwn.status = 2
|
AND iwn.status = 2
|
||||||
AND info.status = 1
|
AND info.status = 1
|
||||||
GROUP BY iwn.deal_user_id
|
GROUP BY
|
||||||
) proj_stats
|
iwn.deal_user_id
|
||||||
ON su.id = proj_stats.deal_user_id -- 获取“外检”和“安检”的统计
|
) proj_stats ON iwn.deal_user_id = proj_stats.deal_user_id -- 获取“外检”和“安检”的统计
|
||||||
WHERE
|
<where>
|
||||||
sr2.service_package_id = 'jiance' -- 角色条件
|
iwn.deleted = 0 -- 排除已删除的数据
|
||||||
AND sr2.code != 'jcyh' -- 排除特定角色
|
AND iwn.deal_user_id IS NOT NULL -- 排除 deal_user_id 为 NULL 的记录
|
||||||
AND (iwn.deleted = 0 OR iwn.deleted IS NULL) -- 允许 iwn 为空
|
AND iwn.status = 2
|
||||||
AND (iwn.deal_user_id IS NOT NULL OR iwn.deal_user_id IS NULL) -- 允许没有工单的用户
|
AND info.status = 1
|
||||||
AND (iwn.status = 2 OR iwn.status IS NULL) -- 允许 iwn 为空
|
<if test="id != null and id != ''">
|
||||||
AND (info.status = 1 OR info.status IS NULL)
|
AND iwn.project_id = #{id} -- 只在这里加上id过滤
|
||||||
<if test="id != null and id != ''">
|
</if>
|
||||||
AND iwn.project_id = #{id} -- 只在这里加上id过滤
|
</where>
|
||||||
</if>
|
GROUP BY
|
||||||
GROUP BY su.id -- 根据处理人员ID进行分组
|
iwn.deal_user_id -- 根据处理人员ID进行分组
|
||||||
ORDER BY orderCount DESC; -- 根据接单数量进行降序排序
|
ORDER BY
|
||||||
|
orderCount DESC; -- 根据接单数量进行降序排序
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -580,7 +580,7 @@ FROM
|
|||||||
ELSE '已支付'
|
ELSE '已支付'
|
||||||
END AS pay,
|
END AS pay,
|
||||||
CASE
|
CASE
|
||||||
WHEN oi.pay_type IS NOT NULL THEN '已完成'
|
WHEN oi.pay_type IS NOT NULL THEN '已支付'
|
||||||
WHEN has_status_0_or_null THEN '检测中'
|
WHEN has_status_0_or_null THEN '检测中'
|
||||||
WHEN (ii.status = 0 OR ii.status = 2) AND has_status_1 THEN '检测中'
|
WHEN (ii.status = 0 OR ii.status = 2) AND has_status_1 THEN '检测中'
|
||||||
WHEN (COALESCE(max_iwn_status, 0) = 2 OR ii.status = 1) THEN '已完成'
|
WHEN (COALESCE(max_iwn_status, 0) = 2 OR ii.status = 1) THEN '已完成'
|
||||||
|
@ -390,7 +390,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
ii.create_time,
|
ii.create_time,
|
||||||
0 AS source_type
|
0 AS source_type
|
||||||
FROM inspection_info ii
|
FROM inspection_info ii
|
||||||
WHERE ii.deleted = 0 AND ii.meet_man_id = #{inspectionInfo.dealUserId} AND ii.is_meet_car = '0'
|
WHERE ii.deleted = 0 AND ii.meet_man_id = #{inspectionInfo.dealUserId} AND ii.is_meet_car = '0' AND ii.status != '1'
|
||||||
<!-- 车牌号模糊查询 -->
|
<!-- 车牌号模糊查询 -->
|
||||||
<if test="inspectionInfo.carNum != null">
|
<if test="inspectionInfo.carNum != null">
|
||||||
AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')
|
AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')
|
||||||
@ -554,6 +554,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
WHERE ii.deleted = 0
|
WHERE ii.deleted = 0
|
||||||
AND ii.meet_man_id = #{inspectionInfo.dealUserId}
|
AND ii.meet_man_id = #{inspectionInfo.dealUserId}
|
||||||
AND ii.is_meet_car = '0'
|
AND ii.is_meet_car = '0'
|
||||||
|
AND ii.status != '1'
|
||||||
<!-- 车牌号模糊查询 -->
|
<!-- 车牌号模糊查询 -->
|
||||||
<if test="inspectionInfo.carNum != null">
|
<if test="inspectionInfo.carNum != null">
|
||||||
AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')
|
AND ii.car_num LIKE CONCAT('%', #{inspectionInfo.carNum}, '%')
|
||||||
|
Loading…
Reference in New Issue
Block a user