이준호 전자조정시스템 고도화 커밋

- 분쟁조정 통계 개발 완료
This commit is contained in:
leejunho 2023-09-21 15:24:05 +09:00
parent 6b8b337b87
commit d965ada3b7
3 changed files with 125 additions and 66 deletions

View File

@ -33,7 +33,8 @@ public class SttsVO extends ComDefaultVO implements Serializable {
private String rcptTotCnt = ""; // 접수 총계
private String succCnt = ""; // 성립 건수(기일성립+조정권고성립)
private String jikSuccCnt = ""; // 직권결정 성립 건수
private String failCnt = ""; // 불성립 건수(모든 불성립)
private String failCnt = ""; // 불성립 건수(불성립 건수(직권 불성립 제외한 불성립))
private String failJikCnt = ""; // 불성립 건수(직권 불성립)
private String cancleCnt = ""; // 취하 건수
private String succPer = ""; // 성립율
private String finalTotCnt = ""; // 종결총계
@ -272,6 +273,14 @@ public class SttsVO extends ComDefaultVO implements Serializable {
public void setReqOlCd(String reqOlCd) {
this.reqOlCd = reqOlCd;
}
public String getFailJikCnt() {
return failJikCnt;
}
public void setFailJikCnt(String failJikCnt) {
this.failJikCnt = failJikCnt;
}

View File

@ -168,68 +168,114 @@
<!-- 분쟁조정 통계 -->
<select id="SttsDAO.sttsYrlyPrcsList" parameterClass="SttsVO" resultClass="SttsVO">
WITH hst AS (
SELECT *
FROM adr_hstry hst
WHERE EXISTS (
SELECT 1
FROM (
SELECT
MAX(adr_hstry_seq) AS max_adr_hstry_seq
FROM adr_hstry
WHERE '309000' > stat_cd
GROUP BY adr_seq
) hst2
WHERE hst2.max_adr_hstry_seq = hst.adr_hstry_seq
WITH hst AS
( SELECT *
FROM adr_hstry hst
WHERE EXISTS
( SELECT 1
FROM ( SELECT MAX(adr_hstry_seq) AS max_adr_hstry_seq
FROM adr_hstry
WHERE '309000' <![CDATA[ > ]]> stat_cd
GROUP BY adr_seq
)
hst2
WHERE hst2.max_adr_hstry_seq = hst.adr_hstry_seq
)
)
)
SELECT
t.strYear
,t.rcptTotCnt /* 접수 총계 */
,t.succCnt /* 성립 건수(기일성립+조정권고성립) */
,t.jikSuccCnt /* 직권결정 성립 건수 */
,t.failCnt /* 불성립 건수(모든 불성립) */
,t.cancleCnt /* 취하 건수 */
,TRUNC(
(t.succCnt + t.jikSuccCnt)
/ IF((t.succCnt + t.jikSuccCnt + t.failCnt) = 0, 1, (t.succCnt + t.jikSuccCnt + t.failCnt))
* 100
, 2) AS succPer /* 성립율 */
,(t.succCnt + t.jikSuccCnt + t.failCnt + t.cancleCnt) AS finalTotCnt /* 종결총계 */
,(t.yearTotCnt - t.rcptTotCnt - t.succCnt - t.jikSuccCnt
- t.failCnt - t.cancleCnt) AS ingCnt /* 진행 건수 */
FROM (
SELECT
TO_CHAR(am.appr_de, 'YYYY') AS strYear
,COUNT(1) AS yearTotCnt /* 년도 총계 */
,COUNT(IF(am.stat_cd = '101050', 1, null)) AS rcptTotCnt /* 접수 총계 */
,COUNT(IF(hst.stat_cd = '304050', 1, null)) AS succCnt /* 성립 건수(기일성립+조정권고성립) */
,COUNT(IF(am.stat_cd = '400000' AND hst.stat_cd = '306050', 1, null))
AS jikSuccCnt /* 직권결정 성립 건수 */
,COUNT(IF(hst.stat_cd = '307050', 1, null)) AS failCnt /* 불성립 건수(모든 불성립) */
,COUNT(IF(hst.stat_cd = '305050', 1, null)) AS cancleCnt /* 취하 건수 */
FROM adr_mgr_master am /* 마스터 */
INNER JOIN adr_mgr_detail ad ON am.adr_seq = ad.adr_seq /* 상세 */
LEFT OUTER JOIN hst ON ad.adr_seq = hst.adr_seq /* 히스토리 */
WHERE 1=1
AND am.USE_YN != 'N'
AND
(
am.adr_no IS NOT NULL OR
(
am.adr_no IS NULL
AND am.stat_cd *1 <![CDATA[ < ]]> 201000
AND am.stat_cd NOT IN ('101000',
'101090' )
)
)
<isNotEmpty property="searchYear">
/* 년 */
AND am.appr_de BETWEEN TO_DATE(#searchYear#||'0101', 'yyyyMMdd')
AND TO_DATE(#searchYear#||'1231', 'yyyyMMdd')
</isNotEmpty>
GROUP BY TO_CHAR(am.appr_de, 'YYYY')
) t
, failJik AS
( SELECT *
FROM adr_hstry hst
WHERE EXISTS
( SELECT 1
FROM ( SELECT MAX(adr_hstry_seq) AS max_adr_hstry_seq
FROM adr_hstry
WHERE '307050' <![CDATA[ > ]]> stat_cd AND stat_cd LIKE '%50'
GROUP BY adr_seq
)
hst2
WHERE hst2.max_adr_hstry_seq = hst.adr_hstry_seq
)
)
SELECT t.strYear ,
t.rcptTotCnt
/* 접수 총계 */
,
t.succCnt
/* 성립 건수(기일성립+조정권고성립) */
,
t.jikSuccCnt
/* 직권결정 성립 건수 */
,
t.failCnt
/* 불성립 건수(직권 불성립 제외한 불성립) */
,
t.failJikCnt
/* 불성립 건수(직권 불성립) */
,
t.cancleCnt
/* 취하 건수 */
,
TRUNC( (t.succCnt + t.jikSuccCnt) / IF((t.succCnt + t.jikSuccCnt + (t.failCnt+t.failJikCnt)) = 0, 1, (t.succCnt + t.jikSuccCnt + (t.failCnt+t.failJikCnt))) * 100 , 2) AS succPer
/* 성립율 */
,
(t.succCnt + t.jikSuccCnt + (t.failCnt+t.failJikCnt) + t.cancleCnt) AS finalTotCnt
/* 종결총계 */
,
(t.yearTotCnt - t.rcptTotCnt - t.succCnt - t.jikSuccCnt - (t.failCnt+t.failJikCnt) - t.cancleCnt) AS ingCnt
/* 진행 건수 */
FROM ( SELECT TO_CHAR(am.appr_de, 'YYYY') AS strYear ,
COUNT(1) AS yearTotCnt
/* 년도 총계 */
,
COUNT(IF(am.stat_cd = '101050', 1, NULL)) AS rcptTotCnt
/* 접수 총계 */
,
COUNT(IF(hst.stat_cd = '304050', 1, NULL)) AS succCnt
/* 성립 건수(기일성립+조정권고성립) */
,
COUNT(IF(am.stat_cd = '400000'
AND hst.stat_cd = '306050', 1, NULL)) AS jikSuccCnt
/* 직권결정 성립 건수 */
,
COUNT(IF(hst.stat_cd = '307050' AND failJik.stat_cd != '306050', 1, NULL)) AS failCnt
/* 불성립 건수(모든 불성립) */
,
COUNT(IF(hst.stat_cd = '307050' AND failJik.stat_cd = '306050', 1, NULL)) AS failJikCnt
/* 불성립 건수(모든 불성립) */
,
COUNT(IF(hst.stat_cd = '305050', 1, NULL)) AS cancleCnt
/* 취하 건수 */
FROM adr_mgr_master am
/* 마스터 */
INNER JOIN adr_mgr_detail ad
ON am.adr_seq = ad.adr_seq
/* 상세 */
LEFT OUTER JOIN hst
ON ad.adr_seq = hst.adr_seq
/* 히스토리 */
LEFT OUTER JOIN failJik
ON ad.adr_seq = failJik.adr_seq
WHERE 1 =1
AND am.USE_YN != 'N'
AND
(
am.adr_no IS NOT NULL OR
(
am.adr_no IS NULL
AND am.stat_cd *1 <![CDATA[ < ]]> 201000
AND am.stat_cd NOT IN ('101000',
'101090' )
)
)
<isNotEmpty property="searchYear">
/* 년 */
AND am.appr_de BETWEEN TO_DATE(#searchYear#||'0101', 'yyyyMMdd')
AND TO_DATE(#searchYear#||'1231', 'yyyyMMdd')
</isNotEmpty>
GROUP BY TO_CHAR(am.appr_de, 'YYYY')
)
t
</select>
<!-- 조정 사건부 현황 통계화면 -->

View File

@ -116,6 +116,8 @@ $(document).ready(function() {
<col style="width: 8%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 7%;">
<col style="width: 10%;">
@ -125,7 +127,7 @@ $(document).ready(function() {
<tr>
<th rowspan="2">연도</th>
<th colspan="3">접수</th>
<th colspan="6">종결</th>
<th colspan="7">종결</th>
<th rowspan="2">진행</th>
</tr>
<tr>
@ -133,9 +135,10 @@ $(document).ready(function() {
<th>신규</th>
<th>계</th>
<th>성립</th>
<th>직권성립</th>
<th>불성립</th>
<th>성립(합의)</th>
<th>직권성립(직권)</th>
<th>불성립(합의)</th>
<th>불성립(직권)</th>
<!-- <th>직권불성립</th> -->
<th>취하</th>
@ -156,6 +159,7 @@ $(document).ready(function() {
<td><p><c:out value="${vo.succCnt}" /></p></td>
<td><p><c:out value="${vo.jikSuccCnt}" /></p></td>
<td><p><c:out value="${vo.failCnt}" /></p></td>
<td><p><c:out value="${vo.failJikCnt}" /></p></td>
<td><p><c:out value="${vo.cancleCnt}" /></p></td>
<td><p><c:out value="${vo.succPer}" /></p></td>