SELECT
p.policy_id,
p.policy_number,
p.insurance_name,
p.other_information,
CASE
WHEN p.policy_id IS NOT NULL AND t.service_id IS NULL AND s.service_apply_id IS NULL THEN '保单未分配(在中支节点)'
WHEN t.dispatch_status = 2 THEN '已推送服务机构(待服务机构领取任务)'
WHEN t.status = 1 THEN '任务已分配至XX服务专家(待开展)'
WHEN t.status = 2 THEN '服务专家已签到(事故预防服务中)'
WHEN t.status = 10 THEN '服务报告已上传'
ELSE '-1'
END AS service_status_name
SELECT
p.policy_number,
p.insurance_name,
p.other_information,
CASE
WHEN p.policy_id IS NOT NULL AND t.service_id IS NULL AND s.service_apply_id IS NULL THEN '保单未分配(在中支节点)'
WHEN t.dispatch_status = 2 THEN '已推送服务机构(待服务机构领取任务)'
WHEN t.status = 1 THEN '任务已分配至XX服务专家(待开展)'
WHEN t.status = 2 THEN '服务专家已签到(事故预防服务中)'
WHEN t.status = 10 THEN '服务报告已上传'
ELSE '-1'
END AS service_status_name
FROM
tbl_policy p
LEFT JOIN tbl_service_apply s ON p.policy_id = s.policy_id
LEFT JOIN tbl_service t ON s.service_apply_id = t.service_apply_id
((p.policy_id IS NOT NULL
AND t.service_id IS NULL
AND s.service_apply_id IS NULL)
OR t.dispatch_status = 2
OR t.status IN (1, 2, 10))
AND (p.policy_id IS NOT NULL
AND t.service_id IS NULL
AND s.service_apply_id IS NULL)
AND t.dispatch_status = 2
AND t.status = 1
AND t.status = 2
AND t.status = 10
AND p.start_date >= CURRENT_TIMESTAMP - INTERVAL '7 days' AND p.done_date <= CURRENT_TIMESTAMP
AND p.start_date >= CURRENT_TIMESTAMP - INTERVAL '1 month' AND p.done_date <= CURRENT_TIMESTAMP
AND p.start_date >= CURRENT_TIMESTAMP - INTERVAL '3 months' AND p.done_date <= CURRENT_TIMESTAMP
AND p.start_date >= #{policy.startDate} || ' 00:00:00'
AND p.done_date <= #{policy.doneDate} || ' 23:59:59'