실적관리 추가

This commit is contained in:
yangsh
2025-12-18 14:50:48 +09:00
parent 80826843d7
commit 59db781aef
58 changed files with 9587 additions and 28 deletions

View File

@@ -0,0 +1,312 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class AssignModel extends Model
{
// 소속본부조회
public function getBonbuList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
" FROM departments" .
" WHERE depth = 1" .
" AND use_yn = 'Y'" .
" ORDER BY lft";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 소속팀 조회
public function getTeamList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm" .
" FROM departments" .
" WHERE depth = 2" .
" AND use_yn = 'Y'" .
" ORDER BY dept_nm";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 지역 목록 조회
public function getAreaList($sido = '', $gugun = '')
{
if (!empty($gugun)) {
$gugun = substr($gugun, '0', '5');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
" FROM region_codes a" .
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,5),'00000')" .
" WHERE a.region_cd LIKE concat(?, '%')" .
" AND a.region_cd NOT LIKE '%00000'" .
" AND a.region_cd LIKE '%00'" .
" AND a.use_yn = 'Y'" .
" ORDER BY a.region_nm ASC";
$query = $this->db->query($sql, [$gugun]);
} else if (!empty($sido)) {
$chk_sido = substr($sido, '0', '2');
if ($chk_sido === '36') {
$sido = substr($sido, '0', '4');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm " .
"FROM region_codes a " .
"LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,4),'000000') " .
"WHERE a.region_cd LIKE concat(?, '%') " .
"AND a.region_cd NOT LIKE '%000000' " .
"AND a.region_cd LIKE '%00' " .
"AND a.use_yn = 'Y' " .
"AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000')) " .
"ORDER BY a.region_nm ASC";
} else {
$sido = substr($sido, '0', '2');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
" FROM region_codes a" .
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,2),'00000000')" .
" WHERE a.region_cd LIKE concat(?, '%')" .
" AND a.region_cd NOT LIKE '%00000000'" .
" AND a.region_cd LIKE '%00000'" .
" AND a.use_yn = 'Y'" .
" AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000'))" .
" ORDER BY a.region_nm ASC";
}
$query = $this->db->query($sql, [$sido]);
} else {
$sql = "SELECT a.region_cd, a.region_nm " .
"FROM region_codes a " .
"WHERE (a.region_cd LIKE '%00000000' " .
"AND a.use_yn = 'Y') " .
"OR region_cd = 3611000000;";
$query = $this->db->query($sql);
}
return $query->getResultArray();
}
public function getTotalCount($data)
{
$sql = "SELECT
COUNT(*) AS cnt
FROM result a
INNER JOIN users b ON b.usr_sq = a.usr_sq
INNER JOIN receipt d ON d.rcpt_sq = a.rcpt_sq
INNER JOIN departments c ON c.dept_sq = a.dept_sq
WHERE 1=1 ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['team'])) {
$sql .= "AND c.dept_sq = {$data['team']} ";
}
if (!empty($data['schDateGb'])) {
if ($data['schDateGb'] === "1") {
if (!empty($data['sdate'])) {
$sql .= "AND a.rsrv_date >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND a.rsrv_date <= CONCAT('{$data['edate']} 23:59:59') ";
}
} else if ($data['schDateGb'] === "2") {
if (!empty($data['sdate'])) {
$sql .= "AND d.rcpt_tm >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND d.rcpt_tm <= CONCAT('{$data['edate']} 23:59:59') ";
}
}
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] === "1") {
$sql .= "AND usr_id like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else if ($data['srchType'] === "2") {
$sql .= "AND usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else {
$sql .= "AND (
usr_id like CONCAT('%', '{$data['srchTxt']}', '%' )
OR usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' )
) ";
}
}
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getUserList($start, $end, $data)
{
$sql = "SELECT
b.usr_nm, b.usr_id, b.usr_sq, c.dept_sq, c.pdept_sq, c.depth
, SUM(CASE WHEN a.rsrv_tm_hour IN ('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24') THEN 1 ELSE 0 END) TODAY
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '09' THEN 1 ELSE 0 END) AM09
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '10' THEN 1 ELSE 0 END) AM10
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '11' THEN 1 ELSE 0 END) AM11
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '12' THEN 1 ELSE 0 END) AM12
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour IN ('00','01','02','03','04','05','06','07','08') THEN 1 ELSE 0 END) AMETC
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('01', '13') THEN 1 ELSE 0 END) PM01
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('02', '14') THEN 1 ELSE 0 END) PM02
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('03', '15') THEN 1 ELSE 0 END) PM03
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('04', '16') THEN 1 ELSE 0 END) PM04
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('05', '17') THEN 1 ELSE 0 END) PM05
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('06', '18') THEN 1 ELSE 0 END) PM06
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('07', '19') THEN 1 ELSE 0 END) PM07
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('00','08','09','10','11','12','20','21','22','23','24') THEN 1 ELSE 0 END) PMETC
FROM result a
INNER JOIN users b ON b.usr_sq = a.usr_sq
INNER JOIN receipt d ON d.rcpt_sq = a.rcpt_sq
INNER JOIN departments c ON c.dept_sq = a.dept_sq
WHERE 1=1 ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['team'])) {
$sql .= "AND c.dept_sq = {$data['team']} ";
}
if (!empty($data['schDateGb'])) {
if ($data['schDateGb'] === "1") {
if (!empty($data['sdate'])) {
$sql .= "AND a.rsrv_date >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND a.rsrv_date <= CONCAT('{$data['edate']} 23:59:59') ";
}
} else if ($data['schDateGb'] === "2") {
if (!empty($data['sdate'])) {
$sql .= "AND d.rcpt_tm >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND d.rcpt_tm <= CONCAT('{$data['edate']} 23:59:59') ";
}
}
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] === "1") {
$sql .= "AND usr_id like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else if ($data['srchType'] === "2") {
$sql .= "AND usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else {
$sql .= "AND (
usr_id like CONCAT('%', '{$data['srchTxt']}', '%' )
OR usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' )
) ";
}
}
$sql .= "GROUP BY b.usr_id, b.usr_nm ";
$sql .= "LIMIT {$start}, {$end}";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 엑셀 다운로드
public function getExcelUserList($data)
{
$sql = "SELECT
b.usr_id
, b.usr_nm
, SUM(CASE WHEN a.rsrv_tm_hour IN ('00','01','02','03','04','05','06','07','08','09','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24') THEN 1 ELSE 0 END) TODAY
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '09' THEN 1 ELSE 0 END) AM09
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '10' THEN 1 ELSE 0 END) AM10
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '11' THEN 1 ELSE 0 END) AM11
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour = '12' THEN 1 ELSE 0 END) AM12
, SUM(CASE WHEN a.rsrv_tm_ap = 'AM' AND a.rsrv_tm_hour IN ('00','01','02','03','04','05','06','07','08') THEN 1 ELSE 0 END) AMETC
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('01', '13') THEN 1 ELSE 0 END) PM01
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('02', '14') THEN 1 ELSE 0 END) PM02
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('03', '15') THEN 1 ELSE 0 END) PM03
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('04', '16') THEN 1 ELSE 0 END) PM04
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('05', '17') THEN 1 ELSE 0 END) PM05
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('06', '18') THEN 1 ELSE 0 END) PM06
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('07', '19') THEN 1 ELSE 0 END) PM07
, SUM(CASE WHEN a.rsrv_tm_ap = 'PM' AND a.rsrv_tm_hour IN ('00','08','09','10','11','12','20','21','22','23','24') THEN 1 ELSE 0 END) PMETC
FROM result a
INNER JOIN users b ON b.usr_sq = a.usr_sq
INNER JOIN receipt d ON d.rcpt_sq = a.rcpt_sq
INNER JOIN departments c ON c.dept_sq = a.dept_sq
WHERE 1=1 ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['team'])) {
$sql .= "AND c.dept_sq = {$data['team']} ";
}
if (!empty($data['schDateGb'])) {
if ($data['schDateGb'] === "1") {
if (!empty($data['sdate'])) {
$sql .= "AND a.rsrv_date >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND a.rsrv_date <= CONCAT('{$data['edate']} 23:59:59') ";
}
} else if ($data['schDateGb'] === "2") {
if (!empty($data['sdate'])) {
$sql .= "AND d.rcpt_tm >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND d.rcpt_tm <= CONCAT('{$data['edate']} 23:59:59') ";
}
}
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] === "1") {
$sql .= "AND usr_id like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else if ($data['srchType'] === "2") {
$sql .= "AND usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else {
$sql .= "AND (
usr_id like CONCAT('%', '{$data['srchTxt']}', '%' )
OR usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' )
) ";
}
}
$sql .= "GROUP BY b.usr_id, b.usr_nm ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,128 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class DeptModel extends Model
{
// 소속본부조회
public function getBonbuList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
" FROM departments" .
" WHERE depth = 1" .
" AND use_yn = 'Y'" .
" ORDER BY lft";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 소속팀 조회
public function getTeamList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm" .
" FROM departments" .
" WHERE depth = 2" .
" AND use_yn = 'Y'" .
" ORDER BY dept_nm";
$query = $this->db->query($sql);
return $query->getResultArray();
}
public function st_d01($data)
{
$sql_where2 = '';
if ($data['schDateGb'] == '2') {
$sql_where = " AND c.insert_tm between DATE('{$data['sdate']} 00:00:00') and DATE('{$data['edate']} 23:59:59')";
} else {
$sql_where = " AND c.rsrv_date between DATE('{$data['sdate']} 00:00:00') and DATE('{$data['edate']} 23:59:59') ";
}
$sql = "SELECT
a.dept_sq, CONCAT(SPACE(4*(a.depth-1)), a.dept_nm) dept_nm, a.depth, a.pdept_sq
, (SELECT COUNT(*) FROM region_codes d WHERE CONCAT(',',GROUP_CONCAT(DISTINCT b.dept_sq), ',') LIKE CONCAT('%,',d.dept_sq,',%') AND d.region_cd NOT LIKE '%00000') AS region_cnt
, COUNT(DISTINCT e.rcpt_sq) rcpt_cnt
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 IN ('9010','9020') THEN c.rcpt_sq END END) resv_cancel_cnt
, COUNT(DISTINCT CASE WHEN c.assign_save_dt IS NOT NULL THEN c.rcpt_sq END) resv_assign_cnt
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 = '9030' THEN c.rcpt_sq END END) prev_visit_cnt
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 = '9040' THEN c.rcpt_sq END END) next_visit_cnt
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 = '9045' THEN c.rcpt_sq END END) next_shoot_cnt
, COUNT(DISTINCT CASE WHEN c.photo_save_dt IS NOT NULL THEN c.rcpt_sq END) shoot_cnt
, COUNT(DISTINCT CASE WHEN c.result_cd1 = '70' THEN c.rcpt_sq END) delay_confirm_cnt
, COUNT(DISTINCT CASE WHEN c.result_cd2 = '9050' THEN c.rcpt_sq END) fail_confirm_cnt
, COUNT(DISTINCT CASE WHEN c.result_cd1 = '60' THEN c.rcpt_sq END) confirm_cnt
FROM departments a
LEFT JOIN departments b ON b.lft BETWEEN a.lft AND a.rgt
LEFT JOIN result c ON c.dept_sq = b.dept_sq {$sql_where}
LEFT JOIN receipt e ON e.rcpt_sq = c.rcpt_sq
WHERE a.pdept_sq != 0 AND a.use_yn = 'Y' ";
if (!empty($data['bonbu'])) {
$sql .= "AND b.pdept_sq = {$data['bonbu']} ";
if (!empty($data['dept_sq'])) {
$sql .= "AND a.dept_sq = {$data['dept_sq']} ";
}
}
$sql .= "GROUP BY a.dept_sq ORDER BY a.lft";
$query = $this->db->query($sql);
return $query->getResultArray();
}
public function getExcelList($data)
{
$sql_where2 = '';
if ($data['schDateGb'] == '2') {
$sql_where = " AND c.insert_tm between DATE('{$data['sdate']} 00:00:00') and DATE('{$data['edate']} 23:59:59')";
} else {
$sql_where = " AND c.rsrv_date between DATE('{$data['sdate']} 00:00:00') and DATE('{$data['edate']} 23:59:59') ";
}
$sql = "SELECT
CONCAT(SPACE(4*(a.depth-1)), a.dept_nm) AS '조직명'
, (SELECT COUNT(*) FROM region_codes d WHERE CONCAT(',',GROUP_CONCAT(DISTINCT b.dept_sq), ',') LIKE CONCAT('%,',d.dept_sq,',%') AND d.region_cd NOT LIKE '%00000') AS '관할지역'
, COUNT(DISTINCT e.rcpt_sq) '접수'
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 IN ('9010','9020') THEN c.rcpt_sq END END) AS '예약취소'
, COUNT(DISTINCT CASE WHEN c.assign_save_dt IS NOT NULL THEN c.rcpt_sq END) AS '예약확인'
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 = '9030' THEN c.rcpt_sq END END) AS '방문전취소'
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 = '9040' THEN c.rcpt_sq END END) AS '방문후취소'
, COUNT(DISTINCT CASE WHEN c.cancel_dt IS NOT NULL THEN CASE WHEN c.result_cd2 = '9045' THEN c.rcpt_sq END END) AS '촬영후취소'
, COUNT(DISTINCT CASE WHEN c.photo_save_dt IS NOT NULL THEN c.rcpt_sq END) AS '촬영'
, COUNT(DISTINCT CASE WHEN c.result_cd1 = '70' THEN c.rcpt_sq END) AS '검수지연'
, COUNT(DISTINCT CASE WHEN c.result_cd2 = '9050' THEN c.rcpt_sq END) AS '검수실패'
, COUNT(DISTINCT CASE WHEN c.result_cd1 = '60' THEN c.rcpt_sq END) AS '검수완료'
FROM departments a
LEFT JOIN departments b ON b.lft BETWEEN a.lft AND a.rgt
LEFT JOIN result c ON c.dept_sq = b.dept_sq {$sql_where}
LEFT JOIN receipt e ON e.rcpt_sq = c.rcpt_sq
WHERE a.pdept_sq != 0 AND a.use_yn = 'Y' ";
if (!empty($data['bonbu'])) {
$sql .= "AND b.pdept_sq = {$data['bonbu']} ";
if (!empty($data['dept_sq'])) {
$sql .= "AND a.dept_sq = {$data['dept_sq']} ";
}
}
$sql .= "GROUP BY a.dept_sq ORDER BY a.lft";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,173 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M409Model extends Model
{
public function getCodeList($data)
{
$builder = $this->db->table('codes')
->select('category, cd, cd_nm, use_yn')
->whereIn('category', $data)
->where('use_yn', 'Y')
->orderBy('category', 'ASC')
->orderBy('view_odr', 'ASC');
// if ($useYn !== null && $useYn !== '') {
// $builder->where('use_yn', $useYn);
// }
$rows = $builder->get()->getResultArray();
$codes = [];
foreach ($rows as $row) {
$codes[$row['category']][] = [
'cd' => $row['cd'],
'cd_nm' => $row['cd_nm'],
];
}
return $codes;
}
public function getTotalCount($data)
{
$sql = "SELECT COUNT(*) AS cnt
FROM (
SELECT DATE_FORMAT(b.insert_tm, '%Y-%m-%d') AS ref_date
FROM v2_vrfc_req a
INNER JOIN v2_chg_stat b
ON b.vr_sq = a.vr_sq
AND b.insert_tm >= '{$data['sdate']} 00:00:00'
AND b.insert_tm <= '{$data['edate']} 23:59:59'
LEFT JOIN v2_confirm c
ON c.vr_sq = a.vr_sq AND c.vrfc_type = a.vrfc_type
LEFT JOIN v2_check_list d1
ON d1.vr_sq = a.vr_sq AND d1.vrfc_type = a.vrfc_type AND d1.type = CONCAT(d1.vrfc_type,'11')
LEFT JOIN v2_check_list d2
ON d2.vr_sq = a.vr_sq AND d2.vrfc_type = a.vrfc_type AND d2.type = CONCAT(d2.vrfc_type,'12')
LEFT JOIN v2_check_list d3
ON d3.vr_sq = a.vr_sq AND d3.vrfc_type = a.vrfc_type AND d3.type = CONCAT(d3.vrfc_type,'13')
LEFT JOIN v2_check_list d4
ON d4.vr_sq = a.vr_sq AND d4.vrfc_type = a.vrfc_type AND d4.type = CONCAT(d4.vrfc_type,'14')
LEFT JOIN v2_check_list e1
ON e1.vr_sq = a.vr_sq AND e1.vrfc_type = a.vrfc_type AND e1.type = '21'
LEFT JOIN v2_check_list e2
ON e2.vr_sq = a.vr_sq AND e2.vrfc_type = a.vrfc_type AND e2.type = '22'
WHERE 1=1 ";
if (!empty($data['vrfcreq_way'])) {
$sql .= "AND a.vrfc_type = '{$data['vrfcreq_way']}' ";
}
if (!empty($data['cp_id'])) {
$sql .= "AND a.cp_id = '{$data['cp_id']}' ";
}
$sql .= "GROUP BY DATE_FORMAT(b.insert_tm, '%Y-%m-%d')
) AS t ";
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$sql = "SELECT
DATE_FORMAT(b.insert_tm, '%Y-%m-%d') ref_date
, COUNT( DISTINCT CASE b.stat_cd WHEN '10' THEN a.vr_sq ELSE NULL END ) rcpt_cnt
, COUNT( DISTINCT CASE a.stat_cd WHEN '10' THEN a.vr_sq ELSE NULL END ) notassign_cnt
, COUNT( DISTINCT CASE a.stat_cd WHEN '10' THEN NULL ELSE a.vr_sq END ) assign_cnt
, COUNT( DISTINCT CASE WHEN a.vrfc_type = 'D' AND b.stat_cd = '35' THEN a.vr_sq ELSE NULL END) paper_cnt
, COUNT( DISTINCT CASE WHEN a.vrfc_type = 'T' AND b.stat_cd = '35' THEN a.vr_sq ELSE NULL END) phone_cnt
, COUNT( DISTINCT CASE b.stat_cd WHEN '19' THEN a.vr_sq ELSE NULL END) cancel_cnt
, COUNT( DISTINCT CASE ifnull(d1.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) priv_cnt
, COUNT( DISTINCT CASE ifnull(d2.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) info_cnt
, COUNT( DISTINCT CASE ifnull(d3.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) price_cnt
, COUNT( DISTINCT CASE ifnull(d4.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) owner_cnt
, COUNT( DISTINCT CASE b.stat_cd WHEN '39' THEN a.vr_sq ELSE NULL END) fail_cnt
, COUNT( DISTINCT CASE WHEN a.try_cnt > 0 THEN a.vr_sq ELSE NULL END) retry_cnt
, COUNT( DISTINCT CASE ifnull(e1.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) reg_info_cnt
, COUNT( DISTINCT CASE ifnull(e2.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) reg_owner_cnt
, COUNT( DISTINCT CASE b.stat_cd WHEN '60' THEN a.vr_sq ELSE NULL END) complete_cnt
, COUNT( DISTINCT CASE WHEN a.rgbk_confirm = '1' AND b.stat_cd = '60' THEN a.vr_sq ELSE NULL END) rgbk_cnt
FROM v2_vrfc_req a
INNER JOIN v2_chg_stat b ON b.vr_sq = a.vr_sq AND b.insert_tm BETWEEN CONCAT('{$data['sdate']} 00:00:00') AND CONCAT('{$data['edate']} 23:59:59')
LEFT JOIN v2_confirm c ON c.vr_sq = a.vr_sq AND c.vrfc_type = a.vrfc_type
LEFT JOIN v2_check_list d1 ON d1.vr_sq = a.vr_sq AND d1.vrfc_type = a.vrfc_type AND d1.type=CONCAT(d1.vrfc_type,'11')
LEFT JOIN v2_check_list d2 ON d2.vr_sq = a.vr_sq AND d2.vrfc_type = a.vrfc_type AND d2.type=CONCAT(d2.vrfc_type,'12')
LEFT JOIN v2_check_list d3 ON d3.vr_sq = a.vr_sq AND d3.vrfc_type = a.vrfc_type AND d3.type=CONCAT(d3.vrfc_type,'13')
LEFT JOIN v2_check_list d4 ON d4.vr_sq = a.vr_sq AND d4.vrfc_type = a.vrfc_type AND d4.type=CONCAT(d4.vrfc_type,'14')
LEFT JOIN v2_check_list e1 ON e1.vr_sq = a.vr_sq AND e1.vrfc_type = a.vrfc_type AND e1.type='21'
LEFT JOIN v2_check_list e2 ON e2.vr_sq = a.vr_sq AND e2.vrfc_type = a.vrfc_type AND e2.type='22'
WHERE 1=1 ";
if (!empty($data['vrfcreq_way'])) {
$sql .= "AND a.vrfc_type = '{$data['vrfcreq_way']}' ";
}
if (!empty($data['cp_id'])) {
$sql .= "AND a.cp_id = '{$data['cp_id']}' ";
}
$sql .= "GROUP BY DATE_FORMAT(b.insert_tm, '%Y-%m-%d') ";
// $sql .= "LIMIT {$start}, {$end} ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 엑셀 다운로드
public function getExcelList($data)
{
$sql = "SELECT
DATE_FORMAT(b.insert_tm, '%Y-%m-%d') ref_date
, COUNT( DISTINCT CASE b.stat_cd WHEN '10' THEN a.vr_sq ELSE NULL END ) rcpt_cnt
, COUNT( DISTINCT CASE a.stat_cd WHEN '10' THEN a.vr_sq ELSE NULL END ) notassign_cnt
, COUNT( DISTINCT CASE a.stat_cd WHEN '10' THEN NULL ELSE a.vr_sq END ) assign_cnt
, COUNT( DISTINCT CASE WHEN a.vrfc_type = 'D' AND b.stat_cd = '35' THEN a.vr_sq ELSE NULL END) paper_cnt
, COUNT( DISTINCT CASE WHEN a.vrfc_type = 'T' AND b.stat_cd = '35' THEN a.vr_sq ELSE NULL END) phone_cnt
, COUNT( DISTINCT CASE b.stat_cd WHEN '19' THEN a.vr_sq ELSE NULL END) cancel_cnt
, COUNT( DISTINCT CASE ifnull(d1.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) priv_cnt
, COUNT( DISTINCT CASE ifnull(d2.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) info_cnt
, COUNT( DISTINCT CASE ifnull(d3.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) price_cnt
, COUNT( DISTINCT CASE ifnull(d4.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) owner_cnt
, COUNT( DISTINCT CASE b.stat_cd WHEN '39' THEN a.vr_sq ELSE NULL END) fail_cnt
, COUNT( DISTINCT CASE WHEN a.try_cnt > 0 THEN a.vr_sq ELSE NULL END) retry_cnt
, COUNT( DISTINCT CASE ifnull(e1.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) reg_info_cnt
, COUNT( DISTINCT CASE ifnull(e2.code, '10000') WHEN '10000' THEN NULL ELSE a.vr_sq END) reg_owner_cnt
, COUNT( DISTINCT CASE b.stat_cd WHEN '60' THEN a.vr_sq ELSE NULL END) complete_cnt
, COUNT( DISTINCT CASE WHEN a.rgbk_confirm = '1' AND b.stat_cd = '60' THEN a.vr_sq ELSE NULL END) rgbk_cnt
FROM v2_vrfc_req a
INNER JOIN v2_chg_stat b ON b.vr_sq = a.vr_sq AND b.insert_tm BETWEEN CONCAT('{$data['sdate']} 00:00:00') AND CONCAT('{$data['edate']} 23:59:59')
LEFT JOIN v2_confirm c ON c.vr_sq = a.vr_sq AND c.vrfc_type = a.vrfc_type
LEFT JOIN v2_check_list d1 ON d1.vr_sq = a.vr_sq AND d1.vrfc_type = a.vrfc_type AND d1.type=CONCAT(d1.vrfc_type,'11')
LEFT JOIN v2_check_list d2 ON d2.vr_sq = a.vr_sq AND d2.vrfc_type = a.vrfc_type AND d2.type=CONCAT(d2.vrfc_type,'12')
LEFT JOIN v2_check_list d3 ON d3.vr_sq = a.vr_sq AND d3.vrfc_type = a.vrfc_type AND d3.type=CONCAT(d3.vrfc_type,'13')
LEFT JOIN v2_check_list d4 ON d4.vr_sq = a.vr_sq AND d4.vrfc_type = a.vrfc_type AND d4.type=CONCAT(d4.vrfc_type,'14')
LEFT JOIN v2_check_list e1 ON e1.vr_sq = a.vr_sq AND e1.vrfc_type = a.vrfc_type AND e1.type='21'
LEFT JOIN v2_check_list e2 ON e2.vr_sq = a.vr_sq AND e2.vrfc_type = a.vrfc_type AND e2.type='22'
WHERE 1=1 ";
if (!empty($data['vrfcreq_way'])) {
$sql .= "AND a.vrfc_type = '{$data['vrfcreq_way']}' ";
}
if (!empty($data['cp_id'])) {
$sql .= "AND a.cp_id = '{$data['cp_id']}' ";
}
$sql .= "GROUP BY DATE_FORMAT(b.insert_tm, '%Y-%m-%d') ";
// $sql .= "LIMIT {$start}, {$end} ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,191 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M410Model extends Model
{
public function getCodeList($data)
{
$builder = $this->db->table('codes')
->select('category, cd, cd_nm, use_yn')
->whereIn('category', $data)
->where('use_yn', 'Y')
->orderBy('category', 'ASC')
->orderBy('view_odr', 'ASC');
// if ($useYn !== null && $useYn !== '') {
// $builder->where('use_yn', $useYn);
// }
$rows = $builder->get()->getResultArray();
$codes = [];
foreach ($rows as $row) {
$codes[$row['category']][] = [
'cd' => $row['cd'],
'cd_nm' => $row['cd_nm'],
];
}
return $codes;
}
public function getDepart()
{
$sql = "SELECT * from departments " .
"WHERE pdept_sq = 3 " .
"ORDER BY dept_nm";
$query = $this->db->query($sql);
return $query->getResultArray();
}
public function getTotalCount($data)
{
$sql = "SELECT COUNT(*) AS cnt FROM ( ";
$sql .= "SELECT
a.usr_sq, a.usr_id, a.usr_nm, IFNULL(c.mobile_upload, 0)mobile_upload , b.*
FROM users AS a
LEFT JOIN (
SELECT CASE a.insert_user WHEN 0 THEN 1 ELSE a.insert_user END insert_user,
COUNT(*) total_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) receipt_cnt
, COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) notassign_cnt
, COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN NULL ELSE a.vr_sq END ) assign_cnt
, COUNT( DISTINCT CASE WHEN b.stat_cd = '19' THEN a.vr_sq ELSE NULL END ) cancel_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) phone_checking_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) paper_checking_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) phone_complete_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) paper_complete_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '38' THEN a.vr_sq ELSE NULL END ) phone_all_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) phone_fail_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) paper_fail_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '40' THEN a.vr_sq ELSE NULL END ) reg_checking_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '45' THEN a.vr_sq ELSE NULL END ) reg_complete_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '70' THEN a.vr_sq ELSE NULL END ) reg_none
, COUNT( DISTINCT CASE WHEN a.stat_cd = '86' THEN a.vr_sq ELSE NULL END ) real_top_RS
, COUNT( DISTINCT CASE WHEN a.stat_cd = '88' THEN a.vr_sq ELSE NULL END ) real_top_RF
, COUNT( DISTINCT CASE WHEN a.stat_cd = '87' THEN a.vr_sq ELSE NULL END ) real_top_GS
, COUNT( DISTINCT CASE WHEN a.stat_cd = '89' THEN a.vr_sq ELSE NULL END ) real_top_GF
, COUNT( DISTINCT CASE WHEN a.stat_cd = '49' THEN a.vr_sq ELSE NULL END ) reg_fail_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '60' THEN a.vr_sq ELSE NULL END ) complete_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '69' THEN a.vr_sq ELSE NULL END ) fail_cnt
, COUNT( CASE WHEN (a.stat_cd = '85') THEN a.vr_sq ELSE NULL END ) reg_fail_tempOpen
, COUNT( CASE WHEN (a.stat_cd = '77') THEN a.vr_sq ELSE NULL END ) reg_fail_Open
, COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '80' THEN a.vr_sq ELSE NULL END ) same_reg_tempOpen
, COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) same_reg_open
, COUNT( distinct c.vr_sq ) AS final_fail_cnt
FROM v2_chg_stat_stats a
INNER JOIN v2_vrfc_req b ON b.vr_sq = a.vr_sq ";
if (!empty($data['vrfcreq_way'])) {
$sql .= "AND b.vrfc_type = '{$data['vrfcreq_way']}' ";
} else {
$sql .= "AND b.vrfc_type <> 'N' ";
}
$sql .= " LEFT OUTER JOIN v2_article_fail c ON c.vr_sq = a.vr_sq
WHERE 1=1
AND a.insert_tm BETWEEN concat('{$data['sdate']} 00:00:00') AND concat('{$data['edate']} 23:59:59')
GROUP BY CASE a.insert_user WHEN 0 THEN 1 ELSE a.insert_user END
) AS b on b.insert_user = a.usr_sq
LEFT JOIN (
select f1.insert_user, count(distinct f1.vr_sq) mobile_upload
from v2_files f1
INNER JOIN v2_vrfc_req b ON b.vr_sq = f1.vr_sq and b.vrfc_type = 'M'
where f1.insert_tm between concat('2025-12-16 00:00:00') AND concat('2025-12-16 23:59:59')
and f1.file_type = '2'
and f1.use_yn = 'Y' group by f1.insert_user
) AS c on c.insert_user = a.usr_sq
WHERE (b.insert_user is not null or c.insert_user is not null) ";
if (!empty($data['dept_sq'])) {
$sql .= "AND a.dept_sq = {$data['dept_sq']} ";
}
$sql .= ") AS t ";
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$sql = "SELECT
a.usr_sq, a.usr_id, a.usr_nm, IFNULL(c.mobile_upload, 0) mobile_upload, b.*
FROM users AS a
LEFT JOIN (
SELECT CASE a.insert_user WHEN 0 THEN 1 ELSE a.insert_user END insert_user,
COUNT(*) total_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) receipt_cnt
, COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) notassign_cnt
, COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN NULL ELSE a.vr_sq END ) assign_cnt
, COUNT( DISTINCT CASE WHEN b.stat_cd = '19' THEN a.vr_sq ELSE NULL END ) cancel_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) phone_checking_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) paper_checking_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) phone_complete_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) paper_complete_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '38' THEN a.vr_sq ELSE NULL END ) phone_all_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) phone_fail_cnt
, COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) paper_fail_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '40' THEN a.vr_sq ELSE NULL END ) reg_checking_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '45' THEN a.vr_sq ELSE NULL END ) reg_complete_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '70' THEN a.vr_sq ELSE NULL END ) reg_none
, COUNT( DISTINCT CASE WHEN a.stat_cd = '86' THEN a.vr_sq ELSE NULL END ) real_top_RS
, COUNT( DISTINCT CASE WHEN a.stat_cd = '88' THEN a.vr_sq ELSE NULL END ) real_top_RF
, COUNT( DISTINCT CASE WHEN a.stat_cd = '87' THEN a.vr_sq ELSE NULL END ) real_top_GS
, COUNT( DISTINCT CASE WHEN a.stat_cd = '89' THEN a.vr_sq ELSE NULL END ) real_top_GF
, COUNT( DISTINCT CASE WHEN a.stat_cd = '49' THEN a.vr_sq ELSE NULL END ) reg_fail_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '60' THEN a.vr_sq ELSE NULL END ) complete_cnt
, COUNT( DISTINCT CASE WHEN a.stat_cd = '69' THEN a.vr_sq ELSE NULL END ) fail_cnt
, COUNT( CASE WHEN (a.stat_cd = '85') THEN a.vr_sq ELSE NULL END ) reg_fail_tempOpen
, COUNT( CASE WHEN (a.stat_cd = '77') THEN a.vr_sq ELSE NULL END ) reg_fail_Open
, COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '80' THEN a.vr_sq ELSE NULL END ) same_reg_tempOpen
, COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) same_reg_open
, COUNT( distinct c.vr_sq ) AS final_fail_cnt
FROM v2_chg_stat_stats a
INNER JOIN v2_vrfc_req b ON b.vr_sq = a.vr_sq ";
if (!empty($data['vrfcreq_way'])) {
$sql .= "AND b.vrfc_type = '{$data['vrfcreq_way']}' ";
} else {
$sql .= "AND b.vrfc_type <> 'N' ";
}
$sql .= " LEFT OUTER JOIN v2_article_fail c ON c.vr_sq = a.vr_sq
WHERE 1=1
AND a.insert_tm BETWEEN concat('{$data['sdate']} 00:00:00') AND concat('{$data['edate']} 23:59:59')
GROUP BY CASE a.insert_user WHEN 0 THEN 1 ELSE a.insert_user END
) AS b on b.insert_user = a.usr_sq
LEFT JOIN (
select f1.insert_user, count(distinct f1.vr_sq) mobile_upload
from v2_files f1
INNER JOIN v2_vrfc_req b ON b.vr_sq = f1.vr_sq and b.vrfc_type = 'M'
where f1.insert_tm between concat('2025-12-16 00:00:00') AND concat('2025-12-16 23:59:59')
and f1.file_type = '2'
and f1.use_yn = 'Y' group by f1.insert_user
) AS c on c.insert_user = a.usr_sq
WHERE (b.insert_user is not null or c.insert_user is not null) ";
if (!empty($data['dept_sq'])) {
$sql .= "AND a.dept_sq = {$data['dept_sq']} ";
}
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,182 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M411Model extends Model
{
public function getTotalCount($data)
{
$sql = "SELECT COUNT(*) AS cnt FROM ( ";
$sql .= "SELECT
cpid,
SUM(t_cnt) t_cnt,
SUM(hong1_cnt) hong1_cnt,
SUM(hong2_cnt) hong2_cnt,
SUM(m_cnt) m_cnt,
SUM(v2_cnt) v2_cnt,
sum(total) total,
SUM(a) t_o,
SUM(b) t_x,
SUM(c) t_n,
SUM(d) t_e,
SUM(e) d_o,
SUM(f) d_x,
(SUM(a)+SUM(e)) dt_o,
(SUM(b)+SUM(f)) dt_x,
SUM(e)+SUM(f) d_tot,
SUM(a)+SUM(b)+SUM(c)+SUM(d) t_tot,
SUM(g) dt_tot,
SUM(h) r_o,
SUM(i) r_x,
SUM(h) r_e,
SUM(k) done,
SUM(l) r_tot,
SUM(m) s_1,
round((SUM(m) / total),2) s_2
FROM (
SELECT a.cpid,
COUNT(*) total
,SUM(CASE vrfc_type_sub WHEN 'D1' THEN 1 ELSE 0 END) hong1_cnt
,SUM(CASE vrfc_type_sub WHEN 'D2' THEN 1 ELSE 0 END) hong2_cnt
,SUM(CASE vrfc_type_sub WHEN 'M1' THEN 1 ELSE 0 END) m_cnt
,SUM(CASE vrfc_type_sub WHEN 'O1' THEN 1 ELSE 0 END) v2_cnt
,SUM(CASE vrfc_type_sub WHEN 'T1' THEN 1 ELSE 0 END) t_cnt
, 0 a,0 b,0 c,0 d,0 e,0 f,0 g,0 h,0 i,0 j,0 k, 0 l, 0 m
FROM v2_article_info a
INNER JOIN v2_vrfc_req b ON a.vr_sq = b.vr_sq
WHERE b.insert_tm BETWEEN CONCAT('{$data['sdate']} 00:00:00') AND CONCAT('{$data['edate']} 23:59:59')
GROUP BY a.cpid
UNION ALL
SELECT cpid
,0 ,0 ,0 ,0 ,0 ,0
,t_o,t_x,t_n,t_e
,d_o,d_x
,(t_o+t_x+t_n+t_e+d_o+d_x) AS dt_tot
,r_o,r_x,r_e
,(d_d+d_t) AS done
,(r_o+r_x+r_e) AS r_tot
,(r_o+r_e+d_d+d_t) AS s_1
FROM (
SELECT cpid,
SUM(CASE gbn_cd WHEN 'T0201' THEN cnt ELSE 0 END) t_o,
SUM(CASE gbn_cd WHEN 'T0202' THEN cnt ELSE 0 END) t_x,
SUM(CASE gbn_cd WHEN 'T0203' THEN cnt ELSE 0 END) t_n,
SUM(CASE gbn_cd WHEN 'T0204' THEN cnt ELSE 0 END) t_e,
SUM(CASE gbn_cd WHEN 'D0201' THEN cnt ELSE 0 END) d_o,
SUM(CASE gbn_cd WHEN 'D0202' THEN cnt ELSE 0 END) d_x,
SUM(CASE gbn_cd WHEN 'R0101' THEN cnt ELSE 0 END) r_o,
SUM(CASE gbn_cd WHEN 'R0102' THEN cnt ELSE 0 END) r_x,
SUM(CASE gbn_cd WHEN 'R0103' THEN cnt ELSE 0 END) r_e,
SUM(CASE gbn_cd WHEN 'D0205' THEN cnt ELSE 0 END) d_d,
SUM(CASE gbn_cd WHEN 'T0206' THEN cnt ELSE 0 END) d_t
FROM v2_st_daily
WHERE st_date BETWEEN CONCAT('{$data['sdate']} 00:00:00') AND CONCAT('{$data['edate']} 23:59:59')
GROUP BY cpid
)A
) table1
GROUP BY cpid ";
$sql .= ") AS t";
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$sql = "SELECT
cpid,
SUM(t_cnt) t_cnt,
SUM(hong1_cnt) hong1_cnt,
SUM(hong2_cnt) hong2_cnt,
SUM(m_cnt) m_cnt,
SUM(v2_cnt) v2_cnt,
sum(total) total,
SUM(a) t_o,
SUM(b) t_x,
SUM(c) t_n,
SUM(d) t_e,
SUM(e) d_o,
SUM(f) d_x,
(SUM(a)+SUM(e)) dt_o,
(SUM(b)+SUM(f)) dt_x,
SUM(e)+SUM(f) d_tot,
SUM(a)+SUM(b)+SUM(c)+SUM(d) t_tot,
SUM(g) dt_tot,
SUM(h) r_o,
SUM(i) r_x,
SUM(h) r_e,
SUM(k) done,
SUM(l) r_tot,
SUM(m) s_1,
round((SUM(m) / total),2) s_2
FROM (
SELECT a.cpid,
COUNT(*) total
,SUM(CASE vrfc_type_sub WHEN 'D1' THEN 1 ELSE 0 END) hong1_cnt
,SUM(CASE vrfc_type_sub WHEN 'D2' THEN 1 ELSE 0 END) hong2_cnt
,SUM(CASE vrfc_type_sub WHEN 'M1' THEN 1 ELSE 0 END) m_cnt
,SUM(CASE vrfc_type_sub WHEN 'O1' THEN 1 ELSE 0 END) v2_cnt
,SUM(CASE vrfc_type_sub WHEN 'T1' THEN 1 ELSE 0 END) t_cnt
, 0 a,0 b,0 c,0 d,0 e,0 f,0 g,0 h,0 i,0 j,0 k, 0 l, 0 m
FROM v2_article_info a
INNER JOIN v2_vrfc_req b ON a.vr_sq = b.vr_sq
WHERE b.insert_tm BETWEEN CONCAT('{$data['sdate']} 00:00:00') AND CONCAT('{$data['edate']} 23:59:59')
GROUP BY a.cpid
UNION ALL
SELECT cpid
,0 ,0 ,0 ,0 ,0 ,0
,t_o,t_x,t_n,t_e
,d_o,d_x
,(t_o+t_x+t_n+t_e+d_o+d_x) AS dt_tot
,r_o,r_x,r_e
,(d_d+d_t) AS done
,(r_o+r_x+r_e) AS r_tot
,(r_o+r_e+d_d+d_t) AS s_1
FROM (
SELECT cpid,
SUM(CASE gbn_cd WHEN 'T0201' THEN cnt ELSE 0 END) t_o,
SUM(CASE gbn_cd WHEN 'T0202' THEN cnt ELSE 0 END) t_x,
SUM(CASE gbn_cd WHEN 'T0203' THEN cnt ELSE 0 END) t_n,
SUM(CASE gbn_cd WHEN 'T0204' THEN cnt ELSE 0 END) t_e,
SUM(CASE gbn_cd WHEN 'D0201' THEN cnt ELSE 0 END) d_o,
SUM(CASE gbn_cd WHEN 'D0202' THEN cnt ELSE 0 END) d_x,
SUM(CASE gbn_cd WHEN 'R0101' THEN cnt ELSE 0 END) r_o,
SUM(CASE gbn_cd WHEN 'R0102' THEN cnt ELSE 0 END) r_x,
SUM(CASE gbn_cd WHEN 'R0103' THEN cnt ELSE 0 END) r_e,
SUM(CASE gbn_cd WHEN 'D0205' THEN cnt ELSE 0 END) d_d,
SUM(CASE gbn_cd WHEN 'T0206' THEN cnt ELSE 0 END) d_t
FROM v2_st_daily
WHERE st_date BETWEEN CONCAT('{$data['sdate']} 00:00:00') AND CONCAT('{$data['edate']} 23:59:59')
GROUP BY cpid
)A
) table1
GROUP BY cpid ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,473 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M412Model extends Model
{
public function get_send_yn($data)
{
$sql = "
SELECT stop_yn
FROM v2_stop_api_chg_stat
WHERE `TYPE` = ?
ORDER BY pk DESC
LIMIT 1
";
$query = $this->db->query($sql, [$data]);
$row = $query->getRow();
return $row ? $row->stop_yn : 'N';
}
public function getTotalCount($data)
{
$sql = "SELECT COUNT(*) AS cnt FROM (
SELECT * FROM v2_st_daily a
WHERE a.st_date BETWEEN DATE('{$data['sdate']}') AND DATE('{$data['edate']}')
GROUP BY a.st_date, a.cpid
) AS t ";
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$sql = "SELECT
st_date,
cpid,
T0101, T0102, T0103,
T0201, T0202, T0203, T0204,
(T0201 + T0202 + T0203 + T0204) AS T0205,
T0301, T0302,
(T0101 + T0102 + T0103 - (T0201 + T0202 + T0203 + T0204)) AS T0303,
D0101, D0102, D0103,
D0201, D0202, D0203,
(D0201 + D0202 + D0203) AS D0204,
D0301, D0302,
(D0101 + D0102 + D0103 - (D0201 + D0202 + D0203)) AS D0303,
R0101, R0102, R0103,
(R0101 + R0102 + R0103) AS R0104,
R0105,
(T0101 + T0102 + T0103 + D0101 + D0102 + D0103) AS Z0101,
(T0201 + T0202 + T0203 + T0204 + D0201 + D0202 + D0203) AS Z0102,
(T0206 + D0205 + R0101 + R0103) AS Z0103,
(T0101 + T0102 + T0103 + D0101 + D0102 + D0103 - T0206 - D0205 - R0101 - R0103) AS Z0104,
A0101
FROM (
SELECT
a.st_date,
a.cpid,
SUM(CASE a.gbn_cd WHEN 'T0101' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0101,
SUM(CASE a.gbn_cd WHEN 'T0102' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0102,
SUM(CASE a.gbn_cd WHEN 'T0103' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0103,
SUM(CASE a.gbn_cd WHEN 'T0201' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0201,
SUM(CASE a.gbn_cd WHEN 'T0202' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0202,
SUM(CASE a.gbn_cd WHEN 'T0203' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0203,
SUM(CASE a.gbn_cd WHEN 'T0204' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0204,
SUM(CASE a.gbn_cd WHEN 'T0206' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0206,
SUM(CASE a.gbn_cd WHEN 'T0301' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0301,
SUM(CASE a.gbn_cd WHEN 'T0302' THEN COALESCE(a.cnt,0) ELSE 0 END) AS T0302,
SUM(CASE a.gbn_cd WHEN 'D0101' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0101,
SUM(CASE a.gbn_cd WHEN 'D0102' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0102,
SUM(CASE a.gbn_cd WHEN 'D0103' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0103,
SUM(CASE a.gbn_cd WHEN 'D0201' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0201,
SUM(CASE a.gbn_cd WHEN 'D0202' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0202,
SUM(CASE a.gbn_cd WHEN 'D0203' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0203,
SUM(CASE a.gbn_cd WHEN 'D0205' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0205,
SUM(CASE a.gbn_cd WHEN 'D0301' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0301,
SUM(CASE a.gbn_cd WHEN 'D0302' THEN COALESCE(a.cnt,0) ELSE 0 END) AS D0302,
SUM(CASE a.gbn_cd WHEN 'R0101' THEN COALESCE(a.cnt,0) ELSE 0 END) AS R0101,
SUM(CASE a.gbn_cd WHEN 'R0102' THEN COALESCE(a.cnt,0) ELSE 0 END) AS R0102,
SUM(CASE a.gbn_cd WHEN 'R0103' THEN COALESCE(a.cnt,0) ELSE 0 END) AS R0103,
SUM(CASE a.gbn_cd WHEN 'R0105' THEN COALESCE(a.cnt,0) ELSE 0 END) AS R0105,
SUM(CASE a.gbn_cd WHEN 'A0101' THEN COALESCE(a.cnt,0) ELSE 0 END) AS A0101
FROM v2_st_daily a
WHERE a.st_date BETWEEN DATE('{$data['sdate']}') AND DATE('{$data['edate']}')
GROUP BY a.st_date, a.cpid
) AS V_T ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 전송 타입 저장
public function saveSendType($data)
{
$sql = "INSERT INTO v2_stop_api_chg_stat(`type`, insert_date, stop_yn, usr_sq) ";
$sql .= "VALUES (?, NOW(), ?, ?) ";
$this->db->query($sql, [
$data['type'],
$data['yn'],
$data['usr_sq'],
]);
if ($this->db->transStatus() === false) {
return [
'success' => false,
'msg' => '저장실패',
];
}
// 성공
return [
'success' => true,
];
}
public function getLists($data)
{
$sql = "SELECT
a.vr_sq,
j.usr_nm as reg_charger,
a.atcl_no,
a.cpid,
a.cp_atcl_id,
a.rlet_type_cd,
a.address1,
a.sise,
a.rdate,
a.seller_tel_no,
a.seller_nm,
a.realtor_nm,
a.realtor_tel_no,
a.rlet_type_cd,
a.charger,
b.insert_tm,
b.stat_cd,
c.bild_nm,
b.vrfc_type,
c.rm_no,
c.`floor`,
c.address_code,
c.address2,
m.address2a,
m.address2b,
c.address3,
c.trade_type,
c.deal_amt,
c.wrrnt_amt,
c.lease_amt,
c.isale_amt,
c.prem_amt,
c.sply_spc,
c.excls_spc,
c.tot_spc,
c.grnd_spc,
c.bldg_spc,
c.hscp_no,
c.ptp_no,
d.insert_tm as update_res_tm,
greatest(ifnull(d45.insert_tm, ''), ifnull(d49.insert_tm, '')) as rgbk_check_tm,
e.insert_tm as result_tm,
f.region_nm,
g.cd_nm as pre_stat,
h.cd_nm as vrfc_type,
i.usr_nm,
d2.insert_tm as stat_39_tm,
a.vrfc_type_sub,
a.reference_file_url_yn,
k.`comment` AS reg_conf_yn_info_2,
l.`comment` AS reg_conf_yn_info_3,
m.corp_own
FROM
v2_article_info a
JOIN v2_vrfc_req b ON a.vr_sq = b.vr_sq
JOIN v2_modify_info c ON a.vr_sq = c.vr_sq
LEFT JOIN v2_article_info_etc m ON a.vr_sq = m.vr_sq
LEFT JOIN region_codes f ON a.address_code = f.region_cd
LEFT JOIN v2_chg_stat d ON a.vr_sq = d.vr_sq AND d.stat_cd = '35'
LEFT JOIN v2_chg_stat d45 ON d45.vr_sq = a.vr_sq AND d45.stat_cd = '45'
LEFT JOIN v2_chg_stat d49 ON d49.vr_sq = a.vr_sq AND d49.stat_cd = '49'
LEFT JOIN v2_chg_stat e ON a.vr_sq = e.vr_sq AND e.stat_cd = '60'
LEFT JOIN codes g ON b.stat_cd = g.cd AND g.category = 'STEP_VERIFICATION'
LEFT JOIN codes h ON b.vrfc_type = h.cd AND h.category = 'VRFCREQ_WAY'
LEFT JOIN users i ON a.charger = i.usr_id
LEFT JOIN users j ON a.reg_charger = j.usr_id
LEFT JOIN v2_check_list k ON a.vr_sq = k.vr_sq AND k.`type` = '21'
LEFT JOIN v2_check_list l ON a.vr_sq = l.vr_sq AND l.type = '22'
LEFT JOIN v2_chg_stat d2 ON d2.vr_sq = a.vr_sq AND d2.stat_cd = '39'
WHERE
1=1 ";
if (!empty($data['stat_cd'])) {
$sql .= "AND b.stat_cd = {$data['stat_cd']} ";
}
if (!empty($data['sdate'])) {
$sql .= "AND b.insert_tm >= '{$data['sdate']} 00:00:00' ";
}
if (!empty($data['edate'])) {
$sql .= "AND b.insert_tm <= '{$data['edate']} 00:00:00' ";
}
$sql .= "ORDER BY b.vr_sq desc , b.insert_tm desc ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
public function chgStat($vr_sq, $stat_cd, $usr_sq, $insert_tm)
{
$sql = "INSERT INTO v2_chg_stat (vr_sq, stat_cd, insert_user, insert_tm) ";
$sql .= "VALUES (?, ?, ?, ?) ";
$sql .= "ON DUPLICATE KEY UPDATE ";
$sql .= "UPDATE vr_sq=VALUES(vr_sq), stat_cd=VALUES(stat_cd), insert_user=VALUES(insert_user), insert_tm=VALUES(insert_tm) ";
$this->db->query($sql, [$vr_sq, $stat_cd, $usr_sq, $insert_tm]);
if ($this->db->transStatus() === false) {
return [
'success' => false,
'msg' => 'v2_chg_stat 저장실패',
];
}
// 성공
return [
'success' => true,
];
}
public function chgStatVrfc($vr_sq, $stat_cd)
{
$sql = "UPDATE v2_vrfc_req SET ";
$sql .= "stat_cd = ? ";
$sql .= "WHERE vr_sq = ? ";
$this->db->query($sql, [$stat_cd, $vr_sq]);
if ($this->db->transStatus() === false) {
return [
'success' => false,
'msg' => 'v2_vrfc_req 저장실패',
];
}
// 성공
return [
'success' => true,
];
}
public function chgStatFax($vr_sq, $stat_cd)
{
$sql = "UPDATE fax_imgs SET ";
$sql .= "stat_cd = ? ";
$sql .= "WHERE vr_sq = ? ";
$this->db->query($sql, [$stat_cd, $vr_sq]);
if ($this->db->transStatus() === false) {
return [
'success' => false,
'msg' => 'fax_imgs 저장실패',
];
}
// 성공
return [
'success' => true,
];
}
// 서류/전화 불일치 시간
public function getFaxFailTimeForHistory($vr_sq)
{
$sql = "select insert_tm from v2_chg_history" .
" where vr_sq = ?" .
" and stat_cd = '39'" .
" and chg_type= 'C9'" .
" order by seq desc" .
" limit 1 ";
$query = $this->db->query($sql, [$vr_sq]);
return $query->getRowArray();
}
// 서류/전화 인입시간
public function getSaveTimeForHistory($vr_sq)
{
$sql = "select insert_tm from v2_chg_history" .
" where vr_sq = ?" .
" and stat_cd = '30'" .
" and chg_type= 'C9'" .
" order by seq desc" .
" limit 1 ";
$query = $this->db->query($sql, [$vr_sq]);
return $query->getRowArray();
}
// 서류/전화 확인완료 시간 = 등기부등본 확인중 시간
public function getConfTimeForHistory($vr_sq)
{
$sql = "select insert_tm from v2_chg_history" .
" where vr_sq = ?" .
" and stat_cd = '35'" .
" and chg_type= 'C9'" .
" order by seq desc" .
" limit 1 ";
$query = $this->db->query($sql, [$vr_sq]);
return $query->getRowArray();
}
// 검증완료 시간
public function get_60_ForHistory($vr_sq)
{
$sql = "select insert_tm from v2_chg_history" .
" where vr_sq = ?" .
" and stat_cd = '60'" .
" and chg_type= 'C9'" .
" order by seq desc" .
" limit 1 ";
$query = $this->db->query($sql, [$vr_sq]);
return $query->getRowArray();
}
public function insert_v2_time_required_Conf_Done($atcl_no, $cpid, $vrfc_type, $insert_tm, $tel_doc_conf_dt, $finishTime)
{
if (substr($insert_tm, 0, 10) == substr($tel_doc_conf_dt, 0, 10)) {
switch ($vrfc_type) {
case 'D':
if (('12:00:00' < substr($insert_tm, -8)) && (substr($insert_tm, -8) < '13:00:00')) {//접수시간이 12~13시 사이면 13시로 해준다
if (substr($tel_doc_conf_dt, -8) > '13:00:00') { //검증완료가 13시 '이후'에 끝나면 접수시간을 13시로 변경해준다
$insert_tm = date("Y-m-d", time()) . " 13:00:00";
}
} else if (
(substr($insert_tm, -8) > '17:30:00' || substr($insert_tm, -8) < '08:59:59') && //접수와 확인완료시간이 모두 17:30:00 ~ 09:00:00 사이가 아니면
(substr($tel_doc_conf_dt, -8) < '17:30:00' || substr($tel_doc_conf_dt, -8) < '08:59:59')
) {
$insert_tm = date("Y-m-d", time()) . " 09:00:00";
}
;
break;
case 'T':
if (('13:00:00' < substr($insert_tm, -8)) && (substr($insert_tm, -8) < '14:00:00')) {//접수시간이 13~14시 사이면 14시로 해준다
if (substr($tel_doc_conf_dt, -8) > '14:00:00') { //검증완료가 14시 '이후'에 끝나면 접수시간을 14시로 변경해준다
$insert_tm = date("Y-m-d", time()) . " 14:00:00";
}
} else if (
(substr($insert_tm, -8) > '17:30:00' || substr($insert_tm, -8) < '08:59:59') &&
(substr($tel_doc_conf_dt, -8) < '17:30:00' || substr($tel_doc_conf_dt, -8) < '08:59:59')
) { //접수와 확인완료시간이 모두 17:30:00 ~ 09:00:00 사이면
$insert_tm = date("Y-m-d", time()) . " 09:30:00";
}
;
break;
}
} else {
if ($vrfc_type == 'D') { //홍보
if (substr($insert_tm, -8) > '17:30:00' || substr($insert_tm, -8) < '08:59:59') {
$insert_tm = date("Y-m-d", time()) . " 09:00:00";
}
} else { //전화
if (substr($insert_tm, -8) > '17:30:00' || substr($insert_tm, -8) < '08:59:59') {
$insert_tm = date("Y-m-d", time()) . " 09:30:00";
}
}
}
$stan_date = substr($insert_tm, 0, 10);
$sql = "INSERT INTO v2_time_required(stan_date, atcl_no, cpid, vrfc_type, insert_tm, tel_doc_conf_dt,conf_required_tm,tot_required_tm)" .
" VALUES(?, ?, ?, ?, ?, ?, TIMEDIFF(?,?), TIMEDIFF(?,?)) " .
" ON DUPLICATE KEY UPDATE insert_tm = VALUES(insert_tm), tel_doc_conf_dt=VALUES(tel_doc_conf_dt),conf_required_tm = VALUES(conf_required_tm),tot_required_tm = VALUES(tot_required_tm) ";
$this->db->query($sql, [
$stan_date,
$atcl_no,
$cpid,
$vrfc_type,
$insert_tm,
$tel_doc_conf_dt,
$tel_doc_conf_dt,
$insert_tm,
$tel_doc_conf_dt,
$insert_tm,
]);
if ($this->db->transStatus() === false) {
return [
'success' => false,
'msg' => 'v2_time_required 저장실패',
];
}
// 성공
return [
'success' => true,
];
}
/**
* 일자별 통계데이터에 값 집어 넣기...
* 반환값 없음.
* @param date $sd_date 날짜 값이 없을경우 현재날짜로 입력됨.
* @param string $cpid CPID
* @param string $gbn_cd 코드값 (category='STATISTICS_DAILY3')
* @param int $cnt 더할 숫자..
* @param string $cnt_type 숫자를 더할것인지.. 아니변 변경할것인지.
*/
public function set_v2_st_daily($st_date, $cpid, $gbn_cd, $cnt, $cnt_type = 'add')
{
if (empty($cnt))
$cnt = '0';
$sql_dup = "";
switch (strtolower($cnt_type)) {
case 'add':
$sql_dup = "on duplicate key update cnt = cnt + " . $cnt;
break;
case 'change':
$sql_dup = "on duplicate key update cnt = values(cnt)";
break;
}
if (empty($st_date)) {
$sql = "insert into v2_st_daily (st_date, cpid, gbn_cd, cnt) values (now(), ?, ?, ?)" . $sql_dup;
$data =
[
$cpid,
$gbn_cd,
$cnt
]
;
} else {
$sql = "insert into v2_st_daily (st_date, cpid, gbn_cd, cnt) values (?, ?, ?, ?)" . $sql_dup;
$data = [
$st_date,
$cpid,
$gbn_cd,
$cnt
];
}
$this->db->query($sql, $data);
$return['error_number'] = $this->db->_error_number();
$return['error_message'] = $this->db->_error_message();
return $return;
}
}

View File

@@ -0,0 +1,158 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M415Model extends Model
{
public function getTotalCount($data)
{
$sql = "SELECT COUNT(*) AS cnt FROM ( ";
$sql .= "SELECT
*
FROM (
SELECT
stan_date,
'M' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type IN ('M','O')
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
UNION ALL
SELECT
stan_date,
'T' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type = 'T'
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
UNION ALL
SELECT
stan_date,
'D' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type = 'D'
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
UNION ALL
SELECT
stan_date,
'N' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type = 'N'
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
) summary
GROUP BY stan_date ) AS t ";
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$sql = "SELECT
stan_date,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'M' THEN doc ELSE NULL END)),1,8) m_doc,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'M' THEN cert ELSE NULL END)),1,8) m_cert,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'M' THEN tot ELSE NULL END)),1,8) m_tot,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'T' THEN doc ELSE NULL END)),1,8) t_doc,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'T' THEN cert ELSE NULL END)),1,8) t_cert,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'T' THEN tot ELSE NULL END)),1,8) t_tot,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'D' THEN doc ELSE NULL END)),1,8) d_doc,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'D' THEN cert ELSE NULL END)),1,8) d_cert,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'D' THEN tot ELSE NULL END)),1,8) d_tot,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'N' THEN doc ELSE NULL END)),1,8) n_doc,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'N' THEN cert ELSE NULL END)),1,8) n_cert,
SUBSTR(SEC_TO_TIME(AVG(CASE vrfc_type WHEN 'N' THEN tot ELSE NULL END)),1,8) n_tot
FROM (
SELECT
stan_date,
'M' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type IN ('M','O')
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
UNION ALL
SELECT
stan_date,
'T' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type = 'T'
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
UNION ALL
SELECT
stan_date,
'D' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type = 'D'
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
UNION ALL
SELECT
stan_date,
'N' vrfc_type,
AVG((TIME_TO_SEC(conf_required_tm))) AS doc,
AVG((TIME_TO_SEC(cert_required_tm))) AS cert,
AVG((TIME_TO_SEC(tot_required_tm))) AS tot
FROM v2_time_required
WHERE stan_date BETWEEN '{$data['sdate']}' AND '{$data['edate']}'
AND vrfc_type = 'N'
AND tot_required_tm IS NOT NULL
GROUP BY stan_date
) summary
GROUP BY stan_date ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,190 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M416Model extends Model
{
// 소속본부조회
public function getBonbuList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
" FROM departments" .
" WHERE depth = 1" .
" AND use_yn = 'Y'" .
" ORDER BY lft";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 소속팀 조회
public function getTeamList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm" .
" FROM departments" .
" WHERE depth = 2" .
" AND use_yn = 'Y'" .
" ORDER BY dept_nm";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 지역 목록 조회
public function getAreaList($sido = '', $gugun = '')
{
if (!empty($gugun)) {
$gugun = substr($gugun, '0', '5');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
" FROM region_codes a" .
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,5),'00000')" .
" WHERE a.region_cd LIKE concat(?, '%')" .
" AND a.region_cd NOT LIKE '%00000'" .
" AND a.region_cd LIKE '%00'" .
" AND a.use_yn = 'Y'" .
" ORDER BY a.region_nm ASC";
$query = $this->db->query($sql, [$gugun]);
} else if (!empty($sido)) {
$chk_sido = substr($sido, '0', '2');
if ($chk_sido === '36') {
$sido = substr($sido, '0', '4');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm " .
"FROM region_codes a " .
"LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,4),'000000') " .
"WHERE a.region_cd LIKE concat(?, '%') " .
"AND a.region_cd NOT LIKE '%000000' " .
"AND a.region_cd LIKE '%00' " .
"AND a.use_yn = 'Y' " .
"AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000')) " .
"ORDER BY a.region_nm ASC";
} else {
$sido = substr($sido, '0', '2');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
" FROM region_codes a" .
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,2),'00000000')" .
" WHERE a.region_cd LIKE concat(?, '%')" .
" AND a.region_cd NOT LIKE '%00000000'" .
" AND a.region_cd LIKE '%00000'" .
" AND a.use_yn = 'Y'" .
" AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000'))" .
" ORDER BY a.region_nm ASC";
}
$query = $this->db->query($sql, [$sido]);
} else {
$sql = "SELECT a.region_cd, a.region_nm " .
"FROM region_codes a " .
"WHERE (a.region_cd LIKE '%00000000' " .
"AND a.use_yn = 'Y') " .
"OR region_cd = 3611000000;";
$query = $this->db->query($sql);
}
return $query->getResultArray();
}
public function getTotalCount($data)
{
$sql = "SELECT COUNT(*) AS cnt FROM (
SELECT
a.usr_id
FROM indi_distance_daily a
INNER JOIN users b ON a.usr_id = b.usr_id INNER JOIN departments c ON b.dept_sq = c.dept_sq
WHERE a.`date` BETWEEN '{$data['sdate']}' AND '{$data['edate']}' ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['dept_sq'])) {
$sql .= "AND b.dept_sq = {$data['bonbu']} ";
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] == "1") {
$sql .= "AND a.usr_id LIKE CONCAT('%', '{$data['srchTxt']}', '%') ";
} else if ($data['srchType'] == "1") {
$sql .= "AND a.usr_nm LIKE CONCAT('%', '{$data['srchTxt']}', '%') ";
} else {
$sql .= "AND (
a.usr_id LIKE CONCAT('%', '{$data['srchTxt']}', '%')
OR a.usr_nm LIKE CONCAT('%', '{$data['srchTxt']}', '%')
) ";
}
}
$sql .= "GROUP BY a.usr_id, a.usr_nm ) AS t";
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$lastDay = (int) date('t', strtotime($data['edate']));
$sql = "SELECT
a.usr_id, a.usr_nm
, SUM(a.shoot_cnt) shoot_cnt ";
if ($lastDay > 0) {
for ($i = 1; $i <= $lastDay; $i++) {
$day2 = sprintf('%02d', $i);
$sql .= ", SUM(CASE WHEN DAY(a.date) = {$i} THEN distance ELSE 0 END) AS d{$day2}";
}
}
$sql .= ", ROUND(SUM(a.distance),1) tot_distance ";
$sql .= "
FROM indi_distance_daily a
INNER JOIN users b ON a.usr_id = b.usr_id INNER JOIN departments c ON b.dept_sq = c.dept_sq
WHERE
a.`date` BETWEEN '{$data['sdate']}' AND '{$data['edate']}' ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['dept_sq'])) {
$sql .= "AND b.dept_sq = {$data['bonbu']} ";
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] == "1") {
$sql .= "AND a.usr_id LIKE CONCAT('%', '{$data['srchTxt']}', '%') ";
} else if ($data['srchType'] == "1") {
$sql .= "AND a.usr_nm LIKE CONCAT('%', '{$data['srchTxt']}', '%') ";
} else {
$sql .= "AND (
a.usr_id LIKE CONCAT('%', '{$data['srchTxt']}', '%')
OR a.usr_nm LIKE CONCAT('%', '{$data['srchTxt']}', '%')
) ";
}
}
$sql .= "GROUP BY a.usr_id, a.usr_nm ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,189 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class M417Model extends Model
{
public function getDepart()
{
$sql = "SELECT * from departments " .
"WHERE pdept_sq = 3 " .
"ORDER BY dept_nm";
$query = $this->db->query($sql);
return $query->getResultArray();
}
public function getTotalCount($data)
{
$sql = "SELECT
COUNT(*) AS cnt
FROM
users a
left join (
SELECT
CASE
a.insert_user WHEN 0 THEN 1
ELSE a.insert_user
END insert_user,
COUNT(*) total_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) receipt_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) notassign_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN NULL ELSE a.vr_sq END ) assign_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '19' THEN a.vr_sq ELSE NULL END ) cancel_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) phone_checking_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) paper_checking_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) phone_complete_cnt , -- 전화확인 완료
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) paper_complete_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '38' THEN a.vr_sq ELSE NULL END ) phone_all_cnt , -- 전화확인 전체
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) phone_fail_cnt , -- 전화확인 실패
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) paper_fail_cnt ,
COUNT( DISTINCT case when (b.certRegister IS NOT NULL AND b.stat_cd = '60' AND a.stat_cd = '76') then a.vr_sq ELSE NULL END ) cert_same_reg_open ,
COUNT( DISTINCT case when (b.certRegister IS NOT NULL AND a.stat_cd = '77') then a.vr_sq ELSE NULL END ) cert_reg_fail_open,
COUNT( DISTINCT case when (b.referenceFileUrl IS NOT NULL AND b.stat_cd = '60' AND a.stat_cd = '76') then a.vr_sq ELSE NULL END ) reference_same_reg_open ,
COUNT( DISTINCT case when (b.referenceFileUrl IS NOT NULL AND a.stat_cd = '77') then a.vr_sq ELSE NULL END ) reference_reg_fail_open ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '40' THEN a.vr_sq ELSE NULL END ) reg_checking_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '45' THEN a.vr_sq ELSE NULL END ) reg_complete_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '70' THEN a.vr_sq ELSE NULL END ) reg_none , -- 등기부 등본 없음
COUNT( DISTINCT CASE WHEN a.stat_cd = '86' THEN a.vr_sq ELSE NULL END ) real_top_RS ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '88' THEN a.vr_sq ELSE NULL END ) real_top_RF ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '87' THEN a.vr_sq ELSE NULL END ) real_top_GS ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '89' THEN a.vr_sq ELSE NULL END ) real_top_GF ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '49' THEN a.vr_sq ELSE NULL END ) reg_fail_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '60' THEN a.vr_sq ELSE NULL END ) complete_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '60' THEN a.vr_sq ELSE NULL END ) complete_cnt1,
COUNT( DISTINCT CASE WHEN a.stat_cd = '69' THEN a.vr_sq ELSE NULL END ) fail_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '69' THEN a.vr_sq ELSE NULL END ) fail_cnt1 ,
COUNT( CASE WHEN (a.stat_cd = '85') THEN a.vr_sq ELSE NULL END ) reg_fail_tempOpen ,
COUNT( CASE WHEN (a.stat_cd = '77') THEN a.vr_sq ELSE NULL END ) reg_fail_Open ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '80' THEN a.vr_sq ELSE NULL END ) same_reg_tempOpen ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) same_reg_open,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '0' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s0, -- 첨부파일 불일치 개인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '1' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s1, -- 첨부파일 불일치 위임장
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '2' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s2, -- 첨부파일 불일치 법인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '3' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s3, -- 첨부파일 불일치 외국인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '0' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n0, -- 첨부파일 일치 개인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '1' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n1, -- 첨부파일 일치 위임장
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '2' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n2, -- 첨부파일 일치 법인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '3' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n3, -- 첨부파일 일치 외국인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '0' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn0,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '1' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn1,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '2' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn2,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '3' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn3
FROM
v2_chg_stat_stats a
INNER JOIN v2_vrfc_req b ON b.vr_sq = a.vr_sq and b.vrfc_type = 'N'
LEFT JOIN v2_article_info_etc c1 on a.vr_sq = c1.vr_sq
WHERE 1 = 1 and a.insert_tm between CONCAT('{$data['sdate']}' , ':00') AND CONCAT('{$data['edate']}' , ':59') GROUP BY CASE a.insert_user WHEN 0 THEN 1 ELSE a.insert_user END ) b on b.insert_user = a.usr_sq
LEFT JOIN (
select
f1.insert_user,
count(distinct f1.vr_sq) mobile_upload
from v2_files f1
INNER JOIN v2_vrfc_req b ON b.vr_sq = f1.vr_sq and b.vrfc_type = 'N'
where
f1.insert_tm BETWEEN CONCAT('{$data['sdate']}' , ':00') AND CONCAT('{$data['edate']}' , ':59')
and f1.file_type = '2' and f1.use_yn = 'Y' group by f1.insert_user
) c on c.insert_user = a.usr_sq
WHERE (b.insert_user is not null or c.insert_user is not null) ";
if (!empty($data['dept_sq'])) {
$sql .= "AND a.dept_sq = {$data['dept_sq']} ";
}
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getResultList($data)
{
$sql = "SELECT
a.usr_sq,
a.usr_id,
a.usr_nm,
IFNULL(c.mobile_upload, 0)mobile_upload ,
b.*
FROM
users a
left join (
SELECT
CASE
a.insert_user WHEN 0 THEN 1
ELSE a.insert_user
END insert_user,
COUNT(*) total_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) receipt_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN a.vr_sq ELSE NULL END ) notassign_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '10' THEN NULL ELSE a.vr_sq END ) assign_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '19' THEN a.vr_sq ELSE NULL END ) cancel_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) phone_checking_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '30' THEN a.vr_sq ELSE NULL END ) paper_checking_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) phone_complete_cnt , -- 전화확인 완료
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '35' THEN a.vr_sq ELSE NULL END ) paper_complete_cnt ,
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '38' THEN a.vr_sq ELSE NULL END ) phone_all_cnt , -- 전화확인 전체
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'T' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) phone_fail_cnt , -- 전화확인 실패
COUNT( DISTINCT CASE WHEN b.vrfc_type = 'D' AND a.stat_cd = '39' THEN a.vr_sq ELSE NULL END ) paper_fail_cnt ,
COUNT( DISTINCT case when (b.certRegister IS NOT NULL AND b.stat_cd = '60' AND a.stat_cd = '76') then a.vr_sq ELSE NULL END ) cert_same_reg_open ,
COUNT( DISTINCT case when (b.certRegister IS NOT NULL AND a.stat_cd = '77') then a.vr_sq ELSE NULL END ) cert_reg_fail_open,
COUNT( DISTINCT case when (b.referenceFileUrl IS NOT NULL AND b.stat_cd = '60' AND a.stat_cd = '76') then a.vr_sq ELSE NULL END ) reference_same_reg_open ,
COUNT( DISTINCT case when (b.referenceFileUrl IS NOT NULL AND a.stat_cd = '77') then a.vr_sq ELSE NULL END ) reference_reg_fail_open ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '40' THEN a.vr_sq ELSE NULL END ) reg_checking_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '45' THEN a.vr_sq ELSE NULL END ) reg_complete_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '70' THEN a.vr_sq ELSE NULL END ) reg_none , -- 등기부 등본 없음
COUNT( DISTINCT CASE WHEN a.stat_cd = '86' THEN a.vr_sq ELSE NULL END ) real_top_RS ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '88' THEN a.vr_sq ELSE NULL END ) real_top_RF ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '87' THEN a.vr_sq ELSE NULL END ) real_top_GS ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '89' THEN a.vr_sq ELSE NULL END ) real_top_GF ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '49' THEN a.vr_sq ELSE NULL END ) reg_fail_cnt ,
COUNT( DISTINCT CASE WHEN a.stat_cd = '60' THEN a.vr_sq ELSE NULL END ) complete_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '60' THEN a.vr_sq ELSE NULL END ) complete_cnt1,
COUNT( DISTINCT CASE WHEN a.stat_cd = '69' THEN a.vr_sq ELSE NULL END ) fail_cnt ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '69' THEN a.vr_sq ELSE NULL END ) fail_cnt1 ,
COUNT( CASE WHEN (a.stat_cd = '85') THEN a.vr_sq ELSE NULL END ) reg_fail_tempOpen ,
COUNT( CASE WHEN (a.stat_cd = '77') THEN a.vr_sq ELSE NULL END ) reg_fail_Open ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '80' THEN a.vr_sq ELSE NULL END ) same_reg_tempOpen ,
COUNT( DISTINCT CASE WHEN b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) same_reg_open,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '0' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s0, -- 첨부파일 불일치 개인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '1' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s1, -- 첨부파일 불일치 위임장
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '2' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s2, -- 첨부파일 불일치 법인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '3' and a.stat_cd = '77' THEN a.vr_sq ELSE NULL END ) as referin_s3, -- 첨부파일 불일치 외국인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '0' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n0, -- 첨부파일 일치 개인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '1' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n1, -- 첨부파일 일치 위임장
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '2' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n2, -- 첨부파일 일치 법인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '3' and b.stat_cd = '60' AND a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_n3, -- 첨부파일 일치 외국인
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '0' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn0,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '1' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn1,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '2' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn2,
COUNT( DISTINCT CASE WHEN ( ( if ( b.referenceFileUrl = '[]' , NULL , b.referenceFileUrl) ) IS NOT NULL ) and c1.ownerTypeCode = '3' and a.stat_cd = '76' THEN a.vr_sq ELSE NULL END ) as referin_nn3
FROM
v2_chg_stat_stats a
INNER JOIN v2_vrfc_req b ON b.vr_sq = a.vr_sq and b.vrfc_type = 'N'
LEFT JOIN v2_article_info_etc c1 on a.vr_sq = c1.vr_sq
WHERE 1 = 1 and a.insert_tm between CONCAT('{$data['sdate']}' , ':00') AND CONCAT('{$data['edate']}' , ':59') GROUP BY CASE a.insert_user WHEN 0 THEN 1 ELSE a.insert_user END ) b on b.insert_user = a.usr_sq
LEFT JOIN (
select
f1.insert_user,
count(distinct f1.vr_sq) mobile_upload
from v2_files f1
INNER JOIN v2_vrfc_req b ON b.vr_sq = f1.vr_sq and b.vrfc_type = 'N'
where
f1.insert_tm BETWEEN CONCAT('{$data['sdate']}' , ':00') AND CONCAT('{$data['edate']}' , ':59')
and f1.file_type = '2' and f1.use_yn = 'Y' group by f1.insert_user
) c on c.insert_user = a.usr_sq
WHERE (b.insert_user is not null or c.insert_user is not null) ";
if (!empty($data['dept_sq'])) {
$sql .= "AND a.dept_sq = {$data['dept_sq']} ";
}
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,304 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class PersonModel extends Model
{
// 소속본부조회
public function getBonbuList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm, dept_desc, dept_head, use_yn, depth, insert_tm, insert_usr, update_tm, update_usr, lft, rgt" .
" FROM departments" .
" WHERE depth = 1" .
" AND use_yn = 'Y'" .
" ORDER BY lft";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 소속팀 조회
public function getTeamList()
{
$sql = "SELECT dept_sq, pdept_sq, dept_nm" .
" FROM departments" .
" WHERE depth = 2" .
" AND use_yn = 'Y'" .
" ORDER BY dept_nm";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 지역 목록 조회
public function getAreaList($sido = '', $gugun = '')
{
if (!empty($gugun)) {
$gugun = substr($gugun, '0', '5');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
" FROM region_codes a" .
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,5),'00000')" .
" WHERE a.region_cd LIKE concat(?, '%')" .
" AND a.region_cd NOT LIKE '%00000'" .
" AND a.region_cd LIKE '%00'" .
" AND a.use_yn = 'Y'" .
" ORDER BY a.region_nm ASC";
$query = $this->db->query($sql, [$gugun]);
} else if (!empty($sido)) {
$chk_sido = substr($sido, '0', '2');
if ($chk_sido === '36') {
$sido = substr($sido, '0', '4');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm " .
"FROM region_codes a " .
"LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,4),'000000') " .
"WHERE a.region_cd LIKE concat(?, '%') " .
"AND a.region_cd NOT LIKE '%000000' " .
"AND a.region_cd LIKE '%00' " .
"AND a.use_yn = 'Y' " .
"AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000')) " .
"ORDER BY a.region_nm ASC";
} else {
$sido = substr($sido, '0', '2');
$sql = "SELECT a.region_cd, TRIM(REPLACE(a.region_nm, b.region_nm, '')) region_nm" .
" FROM region_codes a" .
" LEFT JOIN region_codes b ON b.region_cd = CONCAT(SUBSTR(a.region_cd,1,2),'00000000')" .
" WHERE a.region_cd LIKE concat(?, '%')" .
" AND a.region_cd NOT LIKE '%00000000'" .
" AND a.region_cd LIKE '%00000'" .
" AND a.use_yn = 'Y'" .
" AND EXISTS (SELECT 'x' FROM region_codes c WHERE c.region_cd LIKE CONCAT(SUBSTR(a.region_cd,1,5),'%') AND c.region_cd > CONCAT(SUBSTR(a.region_cd,1,5),'00000'))" .
" ORDER BY a.region_nm ASC";
}
$query = $this->db->query($sql, [$sido]);
} else {
$sql = "SELECT a.region_cd, a.region_nm " .
"FROM region_codes a " .
"WHERE (a.region_cd LIKE '%00000000' " .
"AND a.use_yn = 'Y') " .
"OR region_cd = 3611000000;";
$query = $this->db->query($sql);
}
return $query->getResultArray();
}
public function getTotalCount($data)
{
$sql = "SELECT
COUNT(*) AS cnt
FROM result a
INNER JOIN users b ON b.usr_sq = a.usr_sq
INNER JOIN departments c ON c.dept_sq = a.dept_sq
INNER JOIN receipt d ON d.rcpt_sq = a.rcpt_sq
WHERE 1=1 ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['team'])) {
$sql .= "AND c.dept_sq = {$data['team']} ";
}
if (!empty($data['schDateGb'])) {
if ($data['schDateGb'] === "1") {
if (!empty($data['sdate'])) {
$sql .= "AND a.rsrv_date >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND a.rsrv_date <= CONCAT('{$data['edate']} 23:59:59') ";
}
} else if ($data['schDateGb'] === "2") {
if (!empty($data['sdate'])) {
$sql .= "AND d.rcpt_tm >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND d.rcpt_tm <= CONCAT('{$data['edate']} 23:59:59') ";
}
}
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] === "1") {
$sql .= "AND usr_id like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else if ($data['srchType'] === "2") {
$sql .= "AND usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else {
$sql .= "AND (
usr_id like CONCAT('%', '{$data['srchTxt']}', '%' )
OR usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' )
) ";
}
}
$query = $this->db->query($sql);
return $query->getRow()->cnt;
}
public function getUserList($start, $end, $data)
{
$sql = "SELECT
b.usr_nm, b.usr_id, b.usr_sq, c.dept_sq, c.pdept_sq, c.depth
, count(distinct a.rcpt_sq) rcpt_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 IN ('9010','9020') THEN a.rcpt_sq END END) resv_cancel_cnt
, COUNT(DISTINCT CASE WHEN a.assign_save_dt IS NOT NULL THEN a.rcpt_sq END) resv_assign_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9030' THEN a.rcpt_sq END END) prev_visit_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9040' THEN a.rcpt_sq END END) next_visit_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9045' THEN a.rcpt_sq END END) next_shoot_cnt
, COUNT(DISTINCT CASE WHEN a.photo_save_dt IS NOT NULL THEN a.rcpt_sq END) shoot_cnt
, COUNT(DISTINCT CASE WHEN a.result_cd1 = '70' THEN a.rcpt_sq END) delay_confirm_cnt
, COUNT(DISTINCT CASE WHEN a.result_cd2 = '9050' THEN a.rcpt_sq END) fail_confirm_cnt
, COUNT(DISTINCT CASE WHEN a.result_cd1 = '60' THEN a.rcpt_sq END) confirm_cnt
FROM result a
INNER JOIN users b ON b.usr_sq = a.usr_sq
INNER JOIN departments c ON c.dept_sq = a.dept_sq
INNER JOIN receipt d ON d.rcpt_sq = a.rcpt_sq
WHERE 1=1 ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['team'])) {
$sql .= "AND c.dept_sq = {$data['team']} ";
}
if (!empty($data['schDateGb'])) {
if ($data['schDateGb'] === "1") {
if (!empty($data['sdate'])) {
$sql .= "AND a.rsrv_date >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND a.rsrv_date <= CONCAT('{$data['edate']} 23:59:59') ";
}
} else if ($data['schDateGb'] === "2") {
if (!empty($data['sdate'])) {
$sql .= "AND d.rcpt_tm >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND d.rcpt_tm <= CONCAT('{$data['edate']} 23:59:59') ";
}
}
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] === "1") {
$sql .= "AND usr_id like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else if ($data['srchType'] === "2") {
$sql .= "AND usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else {
$sql .= "AND (
usr_id like CONCAT('%', '{$data['srchTxt']}', '%' )
OR usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' )
) ";
}
}
$sql .= "GROUP BY b.usr_id, b.usr_nm ";
$sql .= "LIMIT {$start}, {$end}";
$query = $this->db->query($sql);
return $query->getResultArray();
}
// 엑셀 다운로드
public function getExcelUserList($data)
{
$sql = "SELECT
b.usr_id AS '아이디'
, b.usr_nm AS '이름'
, count(distinct a.rcpt_sq) AS '접수'
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 IN ('9010','9020') THEN a.rcpt_sq END END) AS '예약취소'
, COUNT(DISTINCT CASE WHEN a.assign_save_dt IS NOT NULL THEN a.rcpt_sq END) AS '예약확인'
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9030' THEN a.rcpt_sq END END) AS '방문전취소'
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9040' THEN a.rcpt_sq END END) AS '방문후취소'
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9045' THEN a.rcpt_sq END END) AS '촬영후취소'
, COUNT(DISTINCT CASE WHEN a.photo_save_dt IS NOT NULL THEN a.rcpt_sq END) AS '촬영'
, COUNT(DISTINCT CASE WHEN a.result_cd1 = '70' THEN a.rcpt_sq END) AS '검수지연'
, COUNT(DISTINCT CASE WHEN a.result_cd2 = '9050' THEN a.rcpt_sq END) AS '검수실패'
, COUNT(DISTINCT CASE WHEN a.result_cd1 = '60' THEN a.rcpt_sq END) AS '검수완료'
FROM result a
INNER JOIN users b ON b.usr_sq = a.usr_sq
INNER JOIN departments c ON c.dept_sq = a.dept_sq
INNER JOIN receipt d ON d.rcpt_sq = a.rcpt_sq
WHERE 1=1 ";
if (!empty($data['bonbu'])) {
$sql .= "AND c.pdept_sq = {$data['bonbu']} ";
}
if (!empty($data['team'])) {
$sql .= "AND c.dept_sq = {$data['team']} ";
}
if (!empty($data['schDateGb'])) {
if ($data['schDateGb'] === "1") {
if (!empty($data['sdate'])) {
$sql .= "AND a.rsrv_date >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND a.rsrv_date <= CONCAT('{$data['edate']} 23:59:59') ";
}
} else if ($data['schDateGb'] === "2") {
if (!empty($data['sdate'])) {
$sql .= "AND d.rcpt_tm >= CONCAT('{$data['sdate']} 00:00:00') ";
}
if (!empty($data['edate'])) {
$sql .= "AND d.rcpt_tm <= CONCAT('{$data['edate']} 23:59:59') ";
}
}
}
if (!empty($data['srchTxt'])) {
if ($data['srchType'] === "1") {
$sql .= "AND usr_id like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else if ($data['srchType'] === "2") {
$sql .= "AND usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' ) ";
} else {
$sql .= "AND (
usr_id like CONCAT('%', '{$data['srchTxt']}', '%' )
OR usr_nm like CONCAT('%', '{$data['srchTxt']}', '%' )
) ";
}
}
$sql .= "GROUP BY b.usr_id, b.usr_nm ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}

View File

@@ -0,0 +1,57 @@
<?php
namespace App\Models\results;
use CodeIgniter\Model;
class SummaryModel extends Model
{
public function st_s01($data)
{
$sql = "SELECT
count(distinct a.rcpt_sq) rcpt_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 IN ('9010','9020') THEN a.rcpt_sq END END) resv_cancel_cnt
, COUNT(DISTINCT CASE WHEN a.assign_save_dt IS NOT NULL THEN a.rcpt_sq END) resv_assign_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9030' THEN a.rcpt_sq END END) prev_visit_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9040' THEN a.rcpt_sq END END) next_visit_cnt
, COUNT(DISTINCT CASE WHEN a.cancel_dt IS NOT NULL THEN CASE WHEN a.result_cd2 = '9045' THEN a.rcpt_sq END END) next_shoot_cnt
, COUNT(DISTINCT CASE WHEN a.photo_save_dt IS NOT NULL THEN a.rcpt_sq END) shoot_cnt
, COUNT(DISTINCT CASE WHEN a.result_cd1 = '70' THEN a.rcpt_sq END) delay_confirm_cnt
, COUNT(DISTINCT CASE WHEN a.result_cd2 = '9050' THEN a.rcpt_sq END) fail_confirm_cnt
, COUNT(DISTINCT CASE WHEN a.result_cd1 = '60' THEN a.rcpt_sq END) confirm_cnt
FROM result a
INNER JOIN receipt b ON b.rcpt_sq = a.rcpt_sq
WHERE 1=1 ";
if ($data['schDateGb'] === "1") {
$sql .= " AND a.rsrv_date BETWEEN {$data['sdate']} AND {$data['edate']}";
} else {
$sql .= " AND b.rcpt_tm BETWEEN CONCAT({$data['sdate']}, ' 00:00:00') AND CONCAT({$data['edate']}, ' 23:59:59')";
}
$query = $this->db->query($sql);
return $query->getResultArray();
}
public function st_s01_2($data)
{
$sql = "SELECT
a.agent_id, a.agent_nm, count(a.agent_id) rcpt_count, sum(case when b.photo_save_dt is null then 0 else 1 end) shoot_count
FROM
receipt AS a
INNER JOIN result AS b ON b.rcpt_sq = a.rcpt_sq
WHERE
a.rcpt_tm >= DATE('{$data['sdate']} 00:00:00')
AND a.rcpt_tm <= DATE('{$data['edate']} 23:59:59')
GROUP BY a.agent_id, a.agent_nm
HAVING count(a.agent_id) > 80
ORDER BY rcpt_count DESC ";
$query = $this->db->query($sql);
return $query->getResultArray();
}
}