From 7b22db05a9a84319ec8222c543cb656a0e22697f Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Tue, 28 Oct 2025 15:48:11 +0900 Subject: [PATCH 1/4] =?UTF-8?q?tb=5Fepq=5Fplc=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sql/xit-fims-mariadb.sql | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/sql/xit-fims-mariadb.sql b/src/sql/xit-fims-mariadb.sql index a0f318e..7b6fa3d 100644 --- a/src/sql/xit-fims-mariadb.sql +++ b/src/sql/xit-fims-mariadb.sql @@ -287,6 +287,23 @@ CREATE OR REPLACE TABLE TB_CRDN_FILE_LINK ( PRIMARY KEY (FILE_LINK_ID) ) COMMENT = '단속 파일 연계'; +CREATE OR REPLACE TABLE TB_EQP_PLC ( + EQPLC_CD VARCHAR(5) NOT NULL COMMENT 'ID(순번)', + CMPNY_CD VARCHAR(3) NOT NULL COMMENT '업체코드', + EQP_CD VARCHAR(3) NOT NULL COMMENT '장비코드', + PLC_NM VARCHAR(200) NOT NULL COMMENT '단속장소 이름', + STDG_NM VARCHAR(60) COMMENT '법정동명', + ROAD_NM VARCHAR(100) COMMENT '도로명', + PLC VARCHAR(200) COMMENT '단속장소', + LANE_NO VARCHAR(2) COMMENT '차선번호', + DRCTN VARCHAR(1) COMMENT '차선방향', + ETC_INFO VARCHAR(128) COMMENT '기타정보', + REG_DT VARCHAR(14) COMMENT '등록일시', + RGTR VARCHAR(10) COMMENT '등록자', + USE_YN VARCHAR(1) NOT NULL DEFAULT 'Y' COMMENT '사용여부', + PRIMARY KEY (EQPLC_CD) +) COMMENT = '단속장비 및 장소'; + CREATE OR REPLACE TABLE TB_CAR_BSC_MTTR ( BSC_MTTR_ID VARCHAR(30) NOT NULL COMMENT '기본 사항 ID', MESSAGEID VARCHAR(10) NULL COMMENT '결과 메시지 ID', From 1d213250f08205c42af5dd38f0a5406891643678 Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Mon, 10 Nov 2025 18:48:08 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EB=8B=A8=EC=86=8D=EC=A0=95=EB=B3=B4(?= =?UTF-8?q?=EC=9E=A5=EB=B9=84/=EC=9E=A5=EC=86=8C=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80)=20=EC=88=98=EC=A0=95,=20=EC=B0=A8=EC=A0=81?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fims/chongno/ChongnoTaskProcessor.java | 72 ++++++++++++++----- .../WEB-INF/jsp/fims/crdn/crdn-cctv.jsp | 29 ++++---- .../WEB-INF/jsp/fims/crdn/crdn-local.jsp | 29 ++++---- 3 files changed, 85 insertions(+), 45 deletions(-) diff --git a/src/main/java/cokr/xit/fims/chongno/ChongnoTaskProcessor.java b/src/main/java/cokr/xit/fims/chongno/ChongnoTaskProcessor.java index 4607608..52bf4d3 100644 --- a/src/main/java/cokr/xit/fims/chongno/ChongnoTaskProcessor.java +++ b/src/main/java/cokr/xit/fims/chongno/ChongnoTaskProcessor.java @@ -101,6 +101,14 @@ public class ChongnoTaskProcessor extends TaskProcessor { private int capacity = -1; + private int getCapacity() { + if (capacity < 0) { + CommonCode code = codeMapper.getCode("FIM022", "114"); + capacity = toInt(notEmpty(code, "capacity").getEtc1()); + } + return capacity; + } + @Override public Map getExcluded(List crdns) { Map excluded = super.getExcluded(crdns); @@ -108,10 +116,7 @@ public class ChongnoTaskProcessor extends TaskProcessor { if (!TASK_SE_CD.equals(first.getTaskSeCd())) return excluded; - if (capacity < 0) { - CommonCode code = codeMapper.getCode("FIM022", "114"); - capacity = toInt(notEmpty(code, "capacity").getEtc1()); - } + int capacity = getCapacity(); if (capacity == 0) return excluded; @@ -119,6 +124,11 @@ public class ChongnoTaskProcessor extends TaskProcessor { for (Crdn crdn: crdns) { if (excluded.containsKey(crdn)) continue; + LevyExcl levyExcl = getLevyExcl(capacity, vhrno, crdn); + if (levyExcl != null) + excluded.put(crdn, levyExcl); // 정원초과 -> 계도(시범운영) + +/* int vhclCpct = crdn.getVhclCpct(); if (vhclCpct == 0) { // 정원미확인 -> 초기상태 @@ -131,23 +141,46 @@ public class ChongnoTaskProcessor extends TaskProcessor { } else excluded.put(crdn, newLevyExcl(crdn, "1", "103")); // 부과제외(일반차량) } +*/ } return excluded; } - /**차량이 승합차거나 일반 운수사업용인지 반환한다. + /**차량이 승합차이고 일반 운수사업용인지 반환한다. * @param vhrno Vhrno * @param crdn 단속정보 - * @return 차량이 승합차거나 일반 운수사업용인지 여부 - */ + * @return 차량이 승합차이고 일반 운수사업용인지 여부 private boolean isTarget(Vhrno vhrno, Crdn crdn) { - return true; -/* vhrno.setFullNumber(crdn.getVhrno()); return Vhrno.VAN.equals(vhrno.getVehicleType()) - || vhrno.isCommercial(); -*/ + && vhrno.isCommercial(); + } + */ + + private LevyExcl getLevyExcl(int capacity, Vhrno vhrno, Crdn crdn) { + int vhclCpct = crdn.getVhclCpct(); + if (vhclCpct == 0) // 정원미확인 -> 초기상태 + return null; //newLevyExcl(crdn, "1", "115"); + + if (vhrno == null) + vhrno = new Vhrno(); + vhrno.setFullNumber(crdn.getVhrno()); + + // 일반 운수사업용 승합차면 단속대상 + boolean target = + Vhrno.VAN.equals(vhrno.getVehicleType()) + && vhrno.isCommercial(); + + if (!target) + return newLevyExcl(crdn, "1", "103"); // 부과제외(일반차량) + + if (vhclCpct < capacity) // 정원미만 + return newLevyExcl(crdn, "1", "114"); + + // 정원초과, 승합차, 운수사업 일반 -> 단속대상: 계도(시범운영) + // 계도기간 종료 후 단속대상은 null return + return newLevyExcl(crdn, "2", "206"); } @Override @@ -158,24 +191,25 @@ public class ChongnoTaskProcessor extends TaskProcessor { if (excl != null) return excl; - if (capacity < 0) { - CommonCode code = codeMapper.getCode("FIM022", "114"); - capacity = toInt(notEmpty(code, "capacity").getEtc1()); - } - if (capacity == 0) - return null; - + int capacity = getCapacity(); + return capacity != 0 ? + getLevyExcl(capacity, null, crdn) : + null; +/* int vhclCpct = crdn.getVhclCpct(); if (vhclCpct == 0) // 정원미확인 -> 초기상태 return null; //newLevyExcl(crdn, "1", "115"); + boolean target = isTarget(new Vhrno(), crdn); + if (vhclCpct < capacity) // 정원미만 return newLevyExcl(crdn, "1", "114"); - boolean enforce = vhclCpct >= capacity && isTarget(new Vhrno(), crdn); + boolean enforce = vhclCpct >= capacity && target; if (enforce) // 정원초과, 승합차, 운수사업 일반 -> 단속대상: 계도(시범운영) return newLevyExcl(crdn, "2", "206"); else return newLevyExcl(crdn, "1", "103"); // 부과제외(일반차량) +*/ } } \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-cctv.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-cctv.jsp index 8b443d7..84957a7 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-cctv.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-cctv.jsp @@ -180,23 +180,26 @@ let cctv = { } wait(false); - let content = "
    " + [ - "업로드 파일: " + result.received, - "처리 대상: " + result.divided, - "정상: " + result.normal, - "메타파일 누락: " + result.malformed, - "", - "단속 등록: " + result.success, - "중복 제외: " + result.duplicates - ] - .map(str => "
  • " + str + "
  • ") - .join("") + "
"; + let items = [ + "업로드 파일: " + numberFormat.format(result.received), + "처리 대상: " + numberFormat.format(result.divided), + "정상: " + numberFormat.format(result.normal), + "단속 등록: " + numberFormat.format(result.success) + ]; + if (result.malformed || result.duplicates || result.invalidPlace) + items.push(""); + if (result.malformed) + items.push("메타파일 누락: " + numberFormat.format(result.malformed)); + if (result.duplicates) + items.push("중복 제외: " + numberFormat.format(result.duplicates)); + if (result.invalidPlace) + items.push("단속장소 오류: " + numberFormat.format(result.invalidPlace)); + dialog.alert({ - content: content, + content: "
    " + items.map(str => "
  • " + str + "
  • ").join("") + "
", onOK: () => {}, onClose: () => $C.getFiles(cctv.dir) }); - } }; diff --git a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-local.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-local.jsp index 5104372..f92655f 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-local.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn-local.jsp @@ -197,22 +197,25 @@ let localFiles = { } wait(false); - let content = "
    " + [ - "업로드 파일: " + result.received, - "처리 대상: " + result.divided, - "정상: " + result.normal, - "메타파일 누락: " + result.malformed, - "", - "단속 등록: " + result.success, - "중복 제외: " + result.duplicates - ] - .map(str => "
  • " + str + "
  • ") - .join("") + "
"; + let items = [ + "업로드 파일: " + numberFormat.format(result.received), + "처리 대상: " + numberFormat.format(result.divided), + "정상: " + numberFormat.format(result.normal), + "단속 등록: " + numberFormat.format(result.success) + ]; + if (result.malformed || result.duplicates || result.invalidPlace) + items.push(""); + if (result.malformed) + items.push("메타파일 누락: " + numberFormat.format(result.malformed)); + if (result.duplicates) + items.push("중복 제외: " + numberFormat.format(result.duplicates)); + if (result.invalidPlace) + items.push("단속장소 오류: " + numberFormat.format(result.invalidPlace)); + dialog.alert({ - content: content, + content: "
    " + items.map(str => "
  • " + str + "
  • ").join("") + "
", onOK: () => {uploadSet.clear();}, }); - } }; From 0960c9b0f2490546f36cd8cf49261a7a58c6257c Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Tue, 11 Nov 2025 09:52:06 +0900 Subject: [PATCH 3/4] =?UTF-8?q?reload=20=ED=9B=84=20=EB=8F=99=EC=9E=91=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp | 9 +++++---- src/main/webapp/WEB-INF/jsp/fims/crdn/crdn08010-main.jsp | 4 +++- src/sql/xit-fims-mariadb.sql | 1 + 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp index d695e43..bda9cbc 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn06010-main.jsp @@ -157,8 +157,7 @@
-
+
@@ -305,7 +304,8 @@ $(document).ready(function(){ ctrl.dataset.onSort = sorter => { let t = $P.getGridTemplate(), trs = Apply.fromDataset.getTbody(ctrl.dataset, t.found, t.notFound, t.replacer); - $P.renderCrdnList(ctrl.dataset.totalSize, ctrl.dataset.length, trs); + if (sorter.by) + $P.renderCrdnList(ctrl.dataset.totalSize, ctrl.dataset.length, trs); document.querySelectorAll("div[data-doctx='${pageName}'] table[name='crdnTable'] th[data-sort]").forEach(th => { th.classList.remove( @@ -501,9 +501,10 @@ $(document).ready(function(){ } $P.renderCrdnList = (total, listLength, trs, option) => { + debug("renderCrdnList"); let noMore = (listLength >= total); let initScroll = (ctrl.query.pageNum < 2); - if (option != null && option.reloaded){ + if (option && option.reloaded){ initScroll = false; } diff --git a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn08010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn08010-main.jsp index ae42195..aa23772 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn08010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn08010-main.jsp @@ -122,7 +122,9 @@ $(document).ready(function(){ ctrl.dataset.onSort = sorter => { let t = $P.getGridTemplate(), trs = Apply.fromDataset.getTbody(ctrl.dataset, t.found, t.notFound, t.replacer); - $P.renderExmptnVhclList(ctrl.dataset.totalSize, ctrl.dataset.length, trs); + + if (sorter.by) + $P.renderExmptnVhclList(ctrl.dataset.totalSize, ctrl.dataset.length, trs); document.querySelectorAll("div[data-doctx='${pageName}'] table[name='exmptnVhclTable'] th[data-sort]").forEach(th => { th.classList.remove( diff --git a/src/sql/xit-fims-mariadb.sql b/src/sql/xit-fims-mariadb.sql index 7b6fa3d..4ce4206 100644 --- a/src/sql/xit-fims-mariadb.sql +++ b/src/sql/xit-fims-mariadb.sql @@ -722,6 +722,7 @@ CREATE OR REPLACE TABLE TB_CRDN_ADI ( CRDN_ID VARCHAR(20) NOT NULL COMMENT '단속 ID', CRDN_SE_CD VARCHAR(2) NULL COMMENT '단속 구분 코드', TEAM_ID VARCHAR(10) NULL COMMENT '조 ID', + EQP_CD VARCHAR(3) NULL COMMENT '장비 코드', DTL_CRDN_PLC VARCHAR(300) NULL COMMENT '상세 단속 장소', CRDN_SPAREA_CD VARCHAR(2) NULL COMMENT '단속 특별구역 코드', CRDN_BGNG_TM VARCHAR(6) NULL COMMENT '단속 시작 시각', From c13fdffa287580d58b6392797e54c6694324a42e Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Tue, 11 Nov 2025 17:51:35 +0900 Subject: [PATCH 4/4] =?UTF-8?q?jdbc=20driver,=20=EB=A1=9C=EA=B7=B8=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-prod.yml | 6 ++++-- src/main/resources/logback-spring.xml | 20 ++++++++++---------- src/main/resources/xit-fims.conf | 3 ++- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index a28fad6..af63b40 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -2,8 +2,10 @@ spring: datasource: hikari: fims: - driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - jdbc-url: jdbc:log4jdbc:mariadb://98.1.1.94:53306/fims?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false&autocommit=false + driver-class-name: org.mariadb.jdbc.Driver +# driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbc-url: jdbc:mariadb://211.119.124.9:4407/fims_chongno?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false&autocommit=false +# jdbc-url: jdbc:log4jdbc:mariadb://98.1.1.94:53306/fims?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false&autocommit=false username: fimsweb password: xit581!*)& auto-commit: false diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index 05d894b..7663118 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -63,16 +63,16 @@ - - - - - - - - - - + + + + + + + + + + diff --git a/src/main/resources/xit-fims.conf b/src/main/resources/xit-fims.conf index abdfafb..252f13f 100644 --- a/src/main/resources/xit-fims.conf +++ b/src/main/resources/xit-fims.conf @@ -10,5 +10,6 @@ "nxrpDemonYn" : "Y", "violationFileDir": "files/cctv", "txtCharset": "UTF-8", - "disableLvis": true + "disableLvis": true, + "lookupEqpPlc": true } \ No newline at end of file