From 0055cdcbdbd276acf1d39d86f9f00e32635bd3a8 Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Mon, 30 Jun 2025 02:02:37 +0900 Subject: [PATCH] =?UTF-8?q?=EB=8B=A8=EC=86=8D=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EC=8B=9C=20=EB=B6=80=EA=B3=BC=EC=A0=9C=EC=99=B8/=EA=B3=84?= =?UTF-8?q?=EB=8F=84=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/cokr/xit/fims/crdn/Crdn.java | 2 ++ .../xit/fims/crdn/service/bean/CrdnBean.java | 12 +++++-- .../crdn/service/bean/CrdnServiceBean.java | 31 ++++++++++++++++--- .../crdn/service/bean/ImportServiceBean.java | 1 - .../xit/fims/crdn/web/Crdn06Controller.java | 2 +- .../fims/mngt/service/bean/TaskProcessor.java | 4 +-- 6 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/main/java/cokr/xit/fims/crdn/Crdn.java b/src/main/java/cokr/xit/fims/crdn/Crdn.java index a226e13c..fada3a6b 100644 --- a/src/main/java/cokr/xit/fims/crdn/Crdn.java +++ b/src/main/java/cokr/xit/fims/crdn/Crdn.java @@ -201,6 +201,8 @@ public class Crdn extends AbstractEntity { } public void setInfo(Payer payer) { + if (payer == null) return; + LvisA01.BasicInfo vehicle = payer.getVehicleInfo(); setSggCd(payer.getSggCd()); // 시군구 데이터 정리되면 지울 것 setRtpyrId(!Assert.isEmpty(vehicle.getErsr_regist_de()) ? "" : payer.getRtpyrId()); diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java index b50206a7..09037402 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnBean.java @@ -151,7 +151,7 @@ public class CrdnBean extends AbstractBean { DataProc dataProc = new DataProc().setTarget(crdn); String ersrRegYmd = crdn.getErsrRegYmd(); - if (!isEmpty(ersrRegYmd)) + if (!isEmpty(ersrRegYmd)) // 말소차량 dataProc.setInfo("erased", new DataObject().set("vhrno", crdn.getVhrno()).set("date", DataFormat.yyyy_mm_dd(ersrRegYmd))); result.add(dataProc); } @@ -162,7 +162,9 @@ public class CrdnBean extends AbstractBean { public boolean create(Map nonQueryRequest, Crdn crdn, List fileInfoList) { String sggCd = crdn.getSggCd(); String taskSeCd = crdn.getTaskSeCd(); - crdn.setAtchFileCnt(isEmpty(fileInfoList) ? 0 : fileInfoList.size()); + + int fileCount = isEmpty(fileInfoList) ? 0 : fileInfoList.size(); + crdn.setAtchFileCnt(fileCount); setAmount(crdn); @@ -235,7 +237,7 @@ public class CrdnBean extends AbstractBean { } //파일 등록 - if (!isEmpty(fileInfoList)) { + if (fileCount > 0) { fileInfoList.forEach(fileInfo -> fileInfo.setInfoType(Crdn.INF_TYPE).setInfoKey(crdn.getCrdnId())); int affected = fileBean.create(fileInfoList); if (affected == 0) @@ -296,6 +298,10 @@ public class CrdnBean extends AbstractBean { return "[S] 작업이 정상 처리 되었습니다."; } + public void create(LevyExcl excl) { + levyExclBean.createLevyExcl(excl); + } + /**단속 자료를 삭제한다. * @param crdn 단속 * @return 저장 여부 diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java index a37269df..4e531f85 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnServiceBean.java @@ -25,6 +25,7 @@ import cokr.xit.fims.crdn.dao.ImportMapper; import cokr.xit.fims.crdn.service.CrdnService; import cokr.xit.fims.cvlc.dao.CrdnCvlcptMapper; import cokr.xit.fims.cvlc.service.bean.CrdnCvlcptMainBean; +import cokr.xit.fims.excl.LevyExcl; import cokr.xit.fims.mngt.dao.TaskMapper; import cokr.xit.fims.mngt.service.bean.TaskProcessor; import cokr.xit.fims.payer.Payer; @@ -139,8 +140,9 @@ public class CrdnServiceBean extends AbstractServiceBean implements CrdnService case "photo": dataObjectList.forEach(dataObject -> { if (toInt(dataObject.get("ATCH_FILE_CNT")) < 1) { - dataObject.set("INSP_RSLT", "사진없음"); - dataObject.set("PRCS_MTHD", "해당자료에 사진을 등록하시기 바랍니다."); + dataObject + .set("INSP_RSLT", "사진없음") + .set("PRCS_MTHD", "해당자료에 사진을 등록하시기 바랍니다."); } else if (toInt(dataObject.get("CRDN_CNT")) > 1) { dataObject .set("INSP_RSLT", "중복자료") @@ -185,6 +187,15 @@ public class CrdnServiceBean extends AbstractServiceBean implements CrdnService @Override public String updateCrackdown(Crdn crdn) { + Crdn loaded = getCrackdown(crdn.getCrdnId()); + if ("01,21".contains(loaded.getCrdnSttsCd())) { + int vhclCpct = loaded.getVhclCpct(); + if (vhclCpct != crdn.getVhclCpct()) { + LevyExcl excl = TaskProcessor.get().getLevyExcl(crdn); + if (excl != null) + crdnBean.create(excl); + } + } return crdnBean.updateCrackdown(crdn); } @@ -200,6 +211,7 @@ public class CrdnServiceBean extends AbstractServiceBean implements CrdnService try (InputStream input = upload) { List payerList = payerBean.getPayers(req, input); + TaskProcessor taskProcessor = TaskProcessor.get(); for (Crdn crdn: crdns) { String vhrno = crdn.getVhrno(), crdnYmd = crdn.getCrdnYmd(); @@ -210,10 +222,19 @@ public class CrdnServiceBean extends AbstractServiceBean implements CrdnService Payer payer = (Payer)info.get("payer"); crdn.setInfo(payer); - boolean statusChange = "01".equals(crdn.getCrdnSttsCd()); - if (statusChange) {// 초기상태 -> 납부자등록 - crdn.setCrdnSttsCd("21"); + LevyExcl excl = taskProcessor.getLevyExcl(crdn); + if (excl == null) { + crdn.setCrdnSttsCd("21"); // 초기상태 -> 납부자등록 crdnBean.updateCrackdownStatus(crdn); + } else { + crdn.setCrdnSttsCd( + switch (excl.getLevyExclSeCd()) { + case "1" -> "81"; + case "2" -> "83"; + default -> null; + } + ); + crdnBean.create(excl); } crdnBean.updateCrdnPayer(crdn); }; diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/ImportServiceBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/ImportServiceBean.java index 0dd2a296..acd9115b 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/ImportServiceBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/ImportServiceBean.java @@ -168,7 +168,6 @@ public class ImportServiceBean extends AbstractServiceBean implements ImportServ crdn.setAttachments(attachments); result .set("crdn", crdn) -// .set("fileInfos", attachments) .set("files", cctv ? dividedInfo.get("files") : null); return result; }) diff --git a/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java b/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java index f6874803..d3fb6e6c 100644 --- a/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java +++ b/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java @@ -198,7 +198,7 @@ public class Crdn06Controller extends ApplicationController { return new ModelAndView("downloadView") .addObject("download", - vehicleInfoService.getBasicInfoReq(req) + vehicleInfoService.getBasicInfoRequest(req) .setFilename("차적요청정보-" + dateFormats.format("yyyyMMdd-HHmmss", System.currentTimeMillis()) + ".txt") ); } diff --git a/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java b/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java index 83c634ca..0e35a8ac 100644 --- a/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java +++ b/src/main/java/cokr/xit/fims/mngt/service/bean/TaskProcessor.java @@ -193,7 +193,7 @@ public class TaskProcessor extends AbstractBean { */ public LevyExcl getLevyExcl(Crdn crdn) { String crdnSttsCd = crdn.getCrdnSttsCd(); - if ("81".equals(crdnSttsCd)) { + if ("81".equals(crdnSttsCd)) { // 부과제외 CrdnQuery req = new CrdnQuery() .setVhrno(crdn.getVhrno()) .setCrdnYmd(crdn.getCrdnYmd()) @@ -217,7 +217,7 @@ public class TaskProcessor extends AbstractBean { * @param exclRsnCd 부과제외 사유 코드 * @return 부과제외 정보 */ - protected LevyExcl newLevyExcl(Crdn crdn, String exclSeCd, String exclRsnCd) { + public LevyExcl newLevyExcl(Crdn crdn, String exclSeCd, String exclRsnCd) { LevyExcl excl01 = new LevyExcl(); excl01.setCrdnId(crdn.getCrdnId()); excl01.setSggCd(crdn.getSggCd());