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();}, }); - } };