|
|
@@ -32,102 +32,153 @@
|
|
|
</select>
|
|
|
|
|
|
<select id="queryYwltjList" parameterType="com.zjrs.zwnw.sxgl.dto.YwltjQueryDTO" resultType="com.zjrs.zwnw.sxgl.dto.YwltjResultDTO">
|
|
|
- SELECT * FROM (SELECT '柜台经办' "sqqdname", '1' "sqqd",
|
|
|
- (select sxmc from rs_sx_config a where a.sxbm = q.sbsx) "sxmc",sbsx "sbsx",
|
|
|
- count(1) "ywl",to_char(sum(fcbmy)) "fcbmy",to_char(sum(bmy)) "bmy",to_char(sum(jbmy)) "jbmy",
|
|
|
- to_char(sum(my)) "my",to_char(sum(fcmy)) "fcmy",
|
|
|
- decode(instr(to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'),'.'),'0',
|
|
|
- to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'),
|
|
|
- to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'))||'%' "cpl",
|
|
|
- decode(instr(to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'),'.'),'0',
|
|
|
- to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'),
|
|
|
- to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'))||'%' "hpl"
|
|
|
- FROM (select
|
|
|
+ SELECT * FROM (
|
|
|
+ /* 1. 柜台经办 */
|
|
|
+ SELECT
|
|
|
+ '柜台经办' "sqqdname",
|
|
|
+ '1' "sqqd",
|
|
|
+ (SELECT sxmc FROM rs_sx_config a WHERE a.sxbm = q.sbsx) "sxmc",
|
|
|
+ sbsx "sbsx",
|
|
|
+ COUNT(1) "ywl",
|
|
|
+ TO_CHAR(SUM(fcbmy)) "fcbmy",
|
|
|
+ TO_CHAR(SUM(bmy)) "bmy",
|
|
|
+ TO_CHAR(SUM(jbmy)) "jbmy",
|
|
|
+ TO_CHAR(SUM(my)) "my",
|
|
|
+ TO_CHAR(SUM(fcmy)) "fcmy",
|
|
|
+ /* 简化百分比计算逻辑,fm9999990.0 会自动处理小数点和前导0 */
|
|
|
+ TO_CHAR(ROUND(((SUM(fcbmy) + SUM(bmy)) / DECODE(COUNT(1), 0, 1, COUNT(1))) * 100, 1), 'fm9999990.0') || '%' "cpl",
|
|
|
+ TO_CHAR(ROUND(((SUM(jbmy) + SUM(my) + SUM(fcmy)) / DECODE(COUNT(1), 0, 1, COUNT(1))) * 100, 1), 'fm9999990.0') || '%' "hpl"
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
sbsx,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS='2' AND yhpj = '1') fcbmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS='2' AND yhpj = '2') bmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS='2' AND yhpj = '3') jbmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS='2' AND yhpj = '4') my,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS='2' AND yhpj = '5') fcmy
|
|
|
- from rs_slxx b
|
|
|
- where sjly = '1'
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS = '2' AND yhpj = '1') fcbmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS = '2' AND yhpj = '2') bmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS = '2' AND yhpj = '3') jbmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS = '2' AND yhpj = '4') my,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE sllsh = b.sllsh AND EVALPROCESS = '2' AND yhpj = '5') fcmy
|
|
|
+ FROM rs_slxx b
|
|
|
+ WHERE sjly = '1'
|
|
|
<if test="dto.sqrqc != null and dto.sqrqc != ''">
|
|
|
- AND to_date(substr(slbh,0,8),'yyyyMMdd') >= to_date(REPLACE(#{dto.sqrqc},'-',''),'yyyyMMdd')
|
|
|
+ <!-- 增加有效性检查:只有前8位是数字,且长度足够时才转换 -->
|
|
|
+ AND (
|
|
|
+ CASE WHEN REGEXP_LIKE(SUBSTR(slbh, 1, 8), '^[0-9]{8}$')
|
|
|
+ THEN TO_DATE(SUBSTR(slbh, 1, 8), 'yyyyMMdd')
|
|
|
+ ELSE TO_DATE('19000101', 'yyyyMMdd') END
|
|
|
+ ) >= TO_DATE(REPLACE(#{dto.sqrqc}, '-', ''), 'yyyyMMdd')
|
|
|
</if>
|
|
|
<if test="dto.sqrqz != null and dto.sqrqz != ''">
|
|
|
- AND to_date(substr(slbh,0,8),'yyyyMMdd') <= to_date(REPLACE(#{dto.sqrqz},'-',''),'yyyyMMdd')
|
|
|
+ <!-- 增加有效性检查:只有前8位是数字,且长度足够时才转换 -->
|
|
|
+ AND (
|
|
|
+ CASE WHEN REGEXP_LIKE(SUBSTR(slbh, 1, 8), '^[0-9]{8}$')
|
|
|
+ THEN TO_DATE(SUBSTR(slbh, 1, 8), 'yyyyMMdd')
|
|
|
+ ELSE TO_DATE('19000101', 'yyyyMMdd') END
|
|
|
+ ) <= TO_DATE(REPLACE(#{dto.sqrqz}, '-', ''), 'yyyyMMdd')
|
|
|
</if>
|
|
|
- ) q group by sbsx
|
|
|
+ ) q
|
|
|
+ GROUP BY sbsx
|
|
|
+
|
|
|
UNION ALL
|
|
|
- SELECT '公共服务' "sqqdname", '2' "sqqd",(select sxmc from rs_sx_config a where a.sxbm = q.sbsx) "sxmc", sbsx
|
|
|
- "sbsx", count(1) "ywl",
|
|
|
- to_char(sum(fcbmy)) "fcbmy",to_char(sum(bmy)) "bmy",to_char(sum(jbmy)) "jbmy",
|
|
|
- to_char(sum(my)) "my",to_char(sum(fcmy)) "fcmy",
|
|
|
- decode(instr(to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'),'.'),'0',
|
|
|
- to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'),
|
|
|
- to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'))||'%' "cpl",
|
|
|
- decode(instr(to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'),'.'),'0',
|
|
|
- to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'),
|
|
|
- to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'))||'%' "hpl"
|
|
|
- FROM (SELECT b.sbsx,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '1') fcbmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '2') bmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '3') jbmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '4') my,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '5') fcmy
|
|
|
- from rs_wb_bj b
|
|
|
- where sjly = '2'
|
|
|
+
|
|
|
+ /* 2. 公共服务 */
|
|
|
+ SELECT
|
|
|
+ '公共服务' "sqqdname",
|
|
|
+ '2' "sqqd",
|
|
|
+ (SELECT sxmc FROM rs_sx_config a WHERE a.sxbm = q.sbsx) "sxmc",
|
|
|
+ sbsx "sbsx",
|
|
|
+ COUNT(1) "ywl",
|
|
|
+ TO_CHAR(SUM(fcbmy)) "fcbmy",
|
|
|
+ TO_CHAR(SUM(bmy)) "bmy",
|
|
|
+ TO_CHAR(SUM(jbmy)) "jbmy",
|
|
|
+ TO_CHAR(SUM(my)) "my",
|
|
|
+ TO_CHAR(SUM(fcmy)) "fcmy",
|
|
|
+ TO_CHAR(ROUND(((SUM(fcbmy) + SUM(bmy)) / DECODE(COUNT(1), 0, 1, COUNT(1))) * 100, 1), 'fm9999990.0') || '%' "cpl",
|
|
|
+ TO_CHAR(ROUND(((SUM(jbmy) + SUM(my) + SUM(fcmy)) / DECODE(COUNT(1), 0, 1, COUNT(1))) * 100, 1), 'fm9999990.0') || '%' "hpl"
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ b.sbsx,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '1') fcbmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '2') bmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '3') jbmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '4') my,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '5') fcmy
|
|
|
+ FROM rs_wb_bj b
|
|
|
+ WHERE sjly = '2'
|
|
|
<if test="dto.sqrqc != null and dto.sqrqc != ''">
|
|
|
- and SUBSTR(cjsj,0,10) >= #{dto.sqrqc}
|
|
|
+ AND SUBSTR(cjsj, 1, 10) >= #{dto.sqrqc}
|
|
|
</if>
|
|
|
<if test="dto.sqrqz != null and dto.sqrqz != ''">
|
|
|
- and SUBSTR(cjsj,0,10) <= #{dto.sqrqz}
|
|
|
+ AND SUBSTR(cjsj, 1, 10) <= #{dto.sqrqz}
|
|
|
</if>
|
|
|
- and sqzt not in ('0')
|
|
|
- ) q group by sbsx
|
|
|
+ AND sqzt NOT IN ('0')
|
|
|
+ ) q
|
|
|
+ GROUP BY sbsx
|
|
|
+
|
|
|
UNION ALL
|
|
|
- SELECT '微信小程序' "sqqdname", '3' "sqqd",(select sxmc from rs_sx_config a where a.sxbm = q.sbsx) "sxmc", sbsx
|
|
|
- "sbsx", count(1) "ywl",
|
|
|
- to_char(sum(fcbmy)) "fcbmy",to_char(sum(bmy)) "bmy",to_char(sum(jbmy)) "jbmy",
|
|
|
- to_char(sum(my)) "my",to_char(sum(fcmy)) "fcmy",
|
|
|
- decode(instr(to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'),'.'),'0',
|
|
|
- to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'),
|
|
|
- to_char(ROUND(((sum(fcbmy)+sum(bmy))/count(1))*100,1),'fm9999990.0'))||'%' "cpl",
|
|
|
- decode(instr(to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'),'.'),'0',
|
|
|
- to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'),
|
|
|
- to_char(ROUND(((sum(jbmy)+sum(my)+sum(fcmy))/count(1))*100,1),'fm9999990.0'))||'%' "hpl"
|
|
|
- FROM (SELECT b.sbsx,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '1') fcbmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '2') bmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '3') jbmy,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '4') my,
|
|
|
- (SELECT count(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS='2' AND yhpj = '5') fcmy
|
|
|
- from rs_wb_bj b
|
|
|
- where sjly = '3'
|
|
|
+
|
|
|
+ /* 3. 微信小程序 */
|
|
|
+ SELECT
|
|
|
+ '微信小程序' "sqqdname",
|
|
|
+ '3' "sqqd",
|
|
|
+ (SELECT sxmc FROM rs_sx_config a WHERE a.sxbm = q.sbsx) "sxmc",
|
|
|
+ sbsx "sbsx",
|
|
|
+ COUNT(1) "ywl",
|
|
|
+ TO_CHAR(SUM(fcbmy)) "fcbmy",
|
|
|
+ TO_CHAR(SUM(bmy)) "bmy",
|
|
|
+ TO_CHAR(SUM(jbmy)) "jbmy",
|
|
|
+ TO_CHAR(SUM(my)) "my",
|
|
|
+ TO_CHAR(SUM(fcmy)) "fcmy",
|
|
|
+ TO_CHAR(ROUND(((SUM(fcbmy) + SUM(bmy)) / DECODE(COUNT(1), 0, 1, COUNT(1))) * 100, 1), 'fm9999990.0') || '%' "cpl",
|
|
|
+ TO_CHAR(ROUND(((SUM(jbmy) + SUM(my) + SUM(fcmy)) / DECODE(COUNT(1), 0, 1, COUNT(1))) * 100, 1), 'fm9999990.0') || '%' "hpl"
|
|
|
+ FROM (
|
|
|
+ SELECT
|
|
|
+ b.sbsx,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '1') fcbmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '2') bmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '3') jbmy,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '4') my,
|
|
|
+ (SELECT COUNT(1) FROM RS_JK_HCP WHERE rs_wb_bj_lsh = b.rs_wb_bj_lsh AND EVALPROCESS = '2' AND yhpj = '5') fcmy
|
|
|
+ FROM rs_wb_bj b
|
|
|
+ WHERE sjly = '3'
|
|
|
<if test="dto.sqrqc != null and dto.sqrqc != ''">
|
|
|
- and SUBSTR(cjsj,0,10) >= #{dto.sqrqc}
|
|
|
+ AND SUBSTR(cjsj, 1, 10) >= #{dto.sqrqc}
|
|
|
</if>
|
|
|
<if test="dto.sqrqz != null and dto.sqrqz != ''">
|
|
|
- and SUBSTR(cjsj,0,10) <= #{dto.sqrqz}
|
|
|
+ AND SUBSTR(cjsj, 1, 10) <= #{dto.sqrqz}
|
|
|
</if>
|
|
|
- and sqzt not in ('0')
|
|
|
- ) q group by sbsx
|
|
|
+ AND sqzt NOT IN ('0')
|
|
|
+ ) q
|
|
|
+ GROUP BY sbsx
|
|
|
+
|
|
|
UNION ALL
|
|
|
- select * from (select '自助一体机' "sqqdname",'4' "sqqd", llyw "sxmc",'000' "sbsx",count(1) "ywl",
|
|
|
- '-' "fcbmy",'-' "bmy",'-' "jbmy",'-' "my",'-' "fcmy",'-' "cpl",'-' "hpl"
|
|
|
- from rs_zzzd_log
|
|
|
+
|
|
|
+ /* 4. 自助一体机 */
|
|
|
+ SELECT
|
|
|
+ '自助一体机' "sqqdname",
|
|
|
+ '4' "sqqd",
|
|
|
+ llyw "sxmc",
|
|
|
+ '000' "sbsx",
|
|
|
+ COUNT(1) "ywl",
|
|
|
+ '-' "fcbmy",
|
|
|
+ '-' "bmy",
|
|
|
+ '-' "jbmy",
|
|
|
+ '-' "my",
|
|
|
+ '-' "fcmy",
|
|
|
+ '-' "cpl",
|
|
|
+ '-' "hpl"
|
|
|
+ FROM rs_zzzd_log
|
|
|
<where>
|
|
|
<if test="dto.sqrqc != null and dto.sqrqc != ''">
|
|
|
- and cjsj >= #{dto.sqrqc}
|
|
|
+ AND cjsj >= #{dto.sqrqc}
|
|
|
</if>
|
|
|
<if test="dto.sqrqz != null and dto.sqrqz != ''">
|
|
|
- and cjsj <= #{dto.sqrqz}
|
|
|
+ AND cjsj <= #{dto.sqrqz}
|
|
|
</if>
|
|
|
</where>
|
|
|
- group by llyw)
|
|
|
- ) where "sxmc" IS NOT NULL
|
|
|
+ GROUP BY llyw
|
|
|
+ )
|
|
|
+ WHERE "sxmc" IS NOT NULL
|
|
|
<if test="dto.sqqd != null and dto.sqqd != ''">
|
|
|
- and "sqqd" = #{dto.sqqd}
|
|
|
+ AND "sqqd" = #{dto.sqqd}
|
|
|
</if>
|
|
|
</select>
|
|
|
|