<?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="cn.gistack.sm.sjztmd.mapper.TbDykeInvestigationMapper">
|
<!--namespace根据自己需要创建的的mapper的路径和名称填写-->
|
<select id="statisticsPie" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsPie">
|
SELECT
|
tempNum.totalNum,
|
tempNum.finishNum,
|
tempNum.totalNum-tempNum.finishNum as unFinishNum
|
FROM(
|
|
SELECT
|
COUNT(*) totalNum,
|
SUM(CASE WHEN (tdis."check_state" = 1 or tdis."check_state" = 2) THEN 1 ELSE 0 END) as finishNum
|
from
|
SJZT_MD."tb_res_dyke" trd
|
LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
|
<if test="params.tbYear != null and params.tbYear !=''">
|
AND tdis."tb_year" = #{params.tbYear}
|
</if>
|
LEFT JOIN YWXT."att_ad_base" aab ON aab."ad_code" = trd."ad_code"
|
WHERE
|
1=1
|
<if test="params.adCode != null and params.adCode !=''">
|
and trd."ad_code" LIKE #{params.adCode}
|
</if>
|
) tempNum
|
|
</select>
|
<select id="getCountyStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
|
SELECT
|
aab."guid" code,
|
aab."ad_name" name,
|
CASE WHEN dyke.dykeLength THEN dyke.dykeLength ELSE 0 END AS dykeLength,
|
CASE WHEN dyke.termiteLength THEN dyke.termiteLength ELSE 0 END AS termiteLength
|
FROM YWXT."att_ad_base" aab
|
left join (
|
SELECT
|
tmp.adCode,
|
SUM(CASE WHEN tmp.dykeLength THEN tmp.dykeLength ELSE 0 END) AS dykeLength,
|
SUM(CASE WHEN tmp.termiteLength THEN tmp.termiteLength ELSE 0 END) AS termiteLength
|
FROM
|
(
|
SELECT
|
trd."dyke_length" dykeLength,
|
trd."ad_code" adCode,
|
CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
|
FROM
|
sjzt_md."tb_res_dyke" trd
|
LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
|
LEFT JOIN (
|
SELECT
|
TEMP1.*,
|
TEMP1.dangerLength/temp1.num as termiteLength
|
FROM (
|
SELECT tdi."tb_state_id",tdi."dyke_guid",tdi."unit",
|
count(*) as num,
|
SUM(CASE WHEN (tdi."danger_length") THEN tdi."danger_length" ELSE 0 END) AS dangerLength
|
from sjzt_md."tb_dyke_investigation" tdi
|
where 1=1
|
<if test="params.tbYear != null and params.tbYear !=''">
|
AND tdi."tb_year" = #{params.tbYear}
|
</if>
|
|
and tdi."investigation_variety" = '白蚁'
|
group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
|
)TEMP1
|
) dykeTmp on dykeTmp."tb_state_id" = tdis."guid"
|
where 1=1
|
<if test="params.adCode != null and params.adCode !=''">
|
AND trd."ad_code" = #{params.adCode}
|
</if>
|
|
)tmp group by tmp.adCode
|
) dyke ON dyke.adCode = aab."guid"
|
where 1=1
|
<if test="params.adCode != null and params.adCode !=''">
|
AND aab."guid" = #{params.adCode}
|
</if>
|
|
|
</select>
|
<select id="getCityStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
|
|
SELECT
|
aab."guid" code,
|
aab."ad_name" name,
|
CASE WHEN dyke.dykeLength THEN dyke.dykeLength ELSE 0 END AS dykeLength,
|
CASE WHEN dyke.termiteLength THEN dyke.termiteLength ELSE 0 END AS termiteLength
|
FROM YWXT."att_ad_base" aab
|
left join (
|
SELECT
|
tmp.adCode,
|
SUM(CASE WHEN tmp.dykeLength THEN tmp.dykeLength ELSE 0 END) AS dykeLength,
|
SUM(CASE WHEN tmp.termiteLength THEN tmp.termiteLength ELSE 0 END) AS termiteLength
|
FROM
|
(
|
SELECT
|
trd."dyke_length" dykeLength,
|
trd."ad_code" adCode,
|
CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
|
FROM
|
sjzt_md."tb_res_dyke" trd
|
LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
|
LEFT JOIN (
|
SELECT
|
TEMP1.*,
|
TEMP1.dangerLength/temp1.num as termiteLength
|
FROM (
|
SELECT tdi."tb_state_id",tdi."dyke_guid",tdi."unit",
|
count(*) as num,
|
SUM(CASE WHEN (tdi."danger_length") THEN tdi."danger_length" ELSE 0 END) AS dangerLength
|
from sjzt_md."tb_dyke_investigation" tdi
|
where 1=1
|
<if test="params.tbYear != null and params.tbYear !=''">
|
AND tdi."tb_year" = 2024
|
</if>
|
and tdi."investigation_variety" = '白蚁'
|
group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
|
)TEMP1
|
) dykeTmp on dykeTmp."tb_state_id" = tdis."guid"
|
where 1=1
|
<if test="params.adGuid != null and params.adGuid != ''">
|
AND trd."ad_code" LIKE #{params.adGuid}
|
</if>
|
)tmp group by tmp.adCode
|
) dyke ON dyke.adCode = aab."guid"
|
where
|
<if test="params.adCode != null and params.adCode !=''">
|
aab."p_ad_code" = #{params.adCode}
|
</if>
|
|
|
|
</select>
|
<select id="getProvinceStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
|
|
SELECT
|
aab."guid" code,
|
aab."ad_name" name,
|
CASE WHEN dyke.dykeLength THEN dyke.dykeLength ELSE 0 END AS dykeLength,
|
CASE WHEN dyke.termiteLength THEN dyke.termiteLength ELSE 0 END AS termiteLength
|
FROM YWXT."att_ad_base" aab
|
left join (
|
SELECT
|
aab."p_ad_code" adCode,
|
aab."p_ad_name" adName,
|
|
SUM(CASE WHEN tmp.dykeLength THEN tmp.dykeLength ELSE 0 END) AS dykeLength,
|
SUM(CASE WHEN tmp.termiteLength THEN tmp.termiteLength ELSE 0 END) AS termiteLength
|
from (
|
|
SELECT
|
trd."dyke_length" dykeLength,
|
trd."ad_code" adCode,
|
trd."ad_name" adName,
|
CASE WHEN dykeTmp.termiteLength THEN dykeTmp.termiteLength ELSE 0 END as termiteLength
|
FROM
|
sjzt_md."tb_res_dyke" trd
|
LEFT JOIN SJZT_MD."tb_dyke_investigation_state" tdis ON tdis."dyke_guid" = trd."guid" AND (tdis."check_state" = 1 or tdis."check_state" = 2)
|
LEFT JOIN (
|
SELECT
|
TEMP1.*,
|
TEMP1.dangerLength/temp1.num as termiteLength
|
FROM (
|
SELECT tdi."tb_state_id",tdi."dyke_guid",tdi."unit",
|
count(*) as num,
|
SUM(CASE WHEN (tdi."danger_length") THEN tdi."danger_length" ELSE 0 END) AS dangerLength
|
from sjzt_md."tb_dyke_investigation" tdi
|
where 1=1
|
<if test="params.tbYear != null and params.tbYear !=''">
|
AND tdi."tb_year" = 2024
|
</if>
|
and tdi."investigation_variety" = '白蚁'
|
group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
|
)TEMP1
|
) dykeTmp on dykeTmp."tb_state_id" = tdis."guid"
|
where 1=1
|
<if test="params.adGuid != null and params.adGuid !=''">
|
AND trd."ad_code" LIKE #{params.adGuid}
|
</if>
|
)tmp
|
LEFT JOIN YWXT."att_ad_base" aab ON aab."guid" = tmp.adCode
|
group by
|
aab."p_ad_code",
|
aab."p_ad_name"
|
) dyke ON dyke.adCode = aab."guid"
|
where 1= 1
|
<if test="params.adCode != null and params.adCode !=''">
|
AND aab."p_ad_code" = #{params.adCode}
|
</if>
|
|
</select>
|
|
|
<select id="getStatisticsBar" resultType="cn.gistack.sm.sjztmd.statisticsVO.StatisticsBar">
|
SELECT
|
aab."guid" code,
|
aab."ad_name" name,
|
dyke.dykeTotalLength as dykeLength,
|
dangerDyke.dykeLength as termiteLength
|
FROM YWXT."att_ad_base" aab
|
LEFT JOIN (
|
SELECT
|
aab."guid" adCode,
|
aab."ad_name" adName,
|
SUM(CASE WHEN dykeLengthInfo."dyke_length" THEN dykeLengthInfo."dyke_length" ELSE 0 END) dykeTotalLength
|
FROM YWXT."att_ad_base" aab
|
LEFT JOIN (
|
SELECT
|
county."ad_code" countyCode,
|
city."ad_code" cityCode,
|
province."ad_code" provinceCode,
|
trd."dyke_length"
|
FROM SJZT_MD."tb_res_dyke" trd
|
LEFT JOIN ywxt."att_ad_base" county on county."ad_code" = trd."ad_code"
|
LEFT JOIN ywxt."att_ad_base" city on city."ad_code" = county."p_ad_code"
|
LEFT JOIN ywxt."att_ad_base" province on province."ad_code" = city."p_ad_code"
|
) dykeLengthInfo on ((dykeLengthInfo.countyCode = aab."guid") or (dykeLengthInfo.cityCode = aab."guid") or (dykeLengthInfo.provinceCode = aab."guid"))
|
group by aab."guid",aab."ad_name"
|
)dyke on dyke.adCode = aab."guid"
|
|
left join (
|
SELECT
|
aab."guid",
|
aab."ad_name",
|
SUM(CASE WHEN trd."dyke_guid" is not null then trd.dangerLength else 0 END) as dykeLength
|
FROM YWXT."att_ad_base" aab
|
LEFT JOIN (
|
SELECT
|
trd."guid",
|
trd."dyke_length",
|
trd."dyke_level",
|
trd."dyke_guid",
|
trd.dangerLength,
|
county."guid" as countyCode,
|
city."guid" as cityCode,
|
province."guid" as provinceCode
|
FROM (
|
SELECT
|
tdis."guid",
|
tdis."dyke_guid",
|
trd."ad_code",
|
trd."dyke_level",
|
trd."dyke_length",
|
tdi.dangerLength
|
FROM SJZT_MD."tb_dyke_investigation_state" tdis
|
LEFT JOIN SJZT_MD."tb_res_dyke" trd on trd."guid" = tdis."dyke_guid"
|
LEFT JOIN (
|
SELECT
|
TEMP1."tb_state_id",
|
TEMP1."unit",
|
TEMP1.dangerLength/temp1.num as dangerLength
|
FROM (
|
SELECT
|
tdi."tb_state_id",
|
tdi."dyke_guid",
|
tdi."unit",
|
count(*) as num,
|
SUM(CASE WHEN (tdi."danger_length") THEN tdi."danger_length" ELSE 0 END) AS dangerLength
|
from sjzt_md."tb_dyke_investigation" tdi
|
where 1=1
|
<if test="params.tbYear!=null and params.tbYear!=''">
|
AND tdi."tb_year" = #{params.tbYear}
|
</if>
|
and tdi."investigation_variety" = '白蚁'
|
group by tdi."tb_state_id",tdi."dyke_guid",tdi."unit"
|
)TEMP1
|
) tdi on tdi."tb_state_id" = tdis."guid"
|
where (tdis."check_state" = 1 or tdis."check_state" = 2)
|
) trd
|
LEFT JOIN YWXT."att_ad_base" county ON county."ad_code" = trd."ad_code"
|
LEFT JOIN YWXT."att_ad_base" city ON city."ad_code" = county."p_ad_code"
|
LEFT JOIN YWXT."att_ad_base" province ON province."ad_code" = city."p_ad_code"
|
)trd on ((trd.countyCode = aab."guid") or (trd.cityCode = aab."guid") or (trd.provinceCode = aab."guid"))
|
group by aab."guid",aab."ad_name"
|
)dangerDyke on dangerDyke."guid" = aab."guid"
|
|
where 1= 1
|
<if test="params.adGrad !=3">
|
<if test="params.adCode != null and params.adCode !=''">
|
AND aab."p_ad_code" = #{params.adCode}
|
</if>
|
</if>
|
<if test="params.adGrad ==3">
|
<if test="params.adCode != null and params.adCode !=''">
|
AND aab."ad_code" = #{params.adCode}
|
</if>
|
</if>
|
</select>
|
</mapper>
|