diff --git a/src/main/java/cokr/xit/fims/cmmn/TaskInfoQuery.java b/src/main/java/cokr/xit/fims/cmmn/TaskInfoQuery.java index 8d55ee0a..51532089 100644 --- a/src/main/java/cokr/xit/fims/cmmn/TaskInfoQuery.java +++ b/src/main/java/cokr/xit/fims/cmmn/TaskInfoQuery.java @@ -12,7 +12,7 @@ import cokr.xit.foundation.component.QueryRequest; * ================================ * */ -public class TaskInfoQuery extends QueryRequest { +public class TaskInfoQuery extends CmmnQuery { private static final long serialVersionUID = 1L; diff --git a/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java b/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java index 45cb5bf8..21dd382a 100644 --- a/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java +++ b/src/main/java/cokr/xit/fims/cmmn/VltnInfoQuery.java @@ -12,13 +12,11 @@ import cokr.xit.foundation.component.QueryRequest; * ================================ * */ -public class VltnInfoQuery extends QueryRequest { +public class VltnInfoQuery extends CmmnQuery { private static final long serialVersionUID = 1L; private String vltnId; // 위반 ID - private String sggCd; // 시군구 코드 - private String taskSeCd; // 업무구분코드 private String lawCd; // 법 코드 private String vltnCd; // 위반 코드 private String vltnArtcl; // 위반 항목 @@ -34,24 +32,6 @@ public class VltnInfoQuery extends QueryRequest { return self(); } - public String getSggCd() { - return ifEmpty(sggCd, () -> null); - } - - public T setSggCd(String sggCd) { - this.sggCd = sggCd; - return self(); - } - - public String getTaskSeCd() { - return ifEmpty(taskSeCd, () -> null); - } - - public T setTaskSeCd(String taskSeCd) { - this.taskSeCd = taskSeCd; - return self(); - } - public String getLawCd() { return ifEmpty(lawCd, () -> null); } diff --git a/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java b/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java index 59eda3d8..05830c77 100644 --- a/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java +++ b/src/main/java/cokr/xit/fims/cmmn/dao/TaskInfoMapper.java @@ -34,7 +34,17 @@ public interface TaskInfoMapper extends AbstractMapper { * @param req 업무 정보 조회 조건 * @return 업무 정보 객체 목록 */ - List selectTaskInfos(TaskInfoQuery req); + List selectTaskInfos(TaskInfoQuery req); + + /**지정한 조건에 따라 업무 정보 객체를 반환한다. + * @param req 업무 정보 조회 조건 + * @return 업무 정보 객체 + */ + default DataObject selectTaskInfo(TaskInfoQuery req) { + List taskInfo = selectTaskInfos(req); + + return !taskInfo.isEmpty() ? taskInfo.get(0) : null; + } /**업무 정보 정보를 등록한다. * @param params 파라미터 diff --git a/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java b/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java index 8182f0e4..e97f1ae2 100644 --- a/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java +++ b/src/main/java/cokr/xit/fims/cmmn/dao/VltnInfoMapper.java @@ -36,14 +36,14 @@ public interface VltnInfoMapper extends AbstractMapper { */ List selectVltnInfos(VltnInfoQuery req); - /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + /**지정한 조건에 따라 위반 정보 객체를 반환한다. * @param req 위반 정보 조회 조건 - * @return 위반 정보 객체 목록 + * @return 위반 정보 객체 */ default DataObject selectVltnInfo(VltnInfoQuery req) { - List vltnInfos = selectVltnInfos(req); + List vltnInfo = selectVltnInfos(req); - return !vltnInfos.isEmpty() ? vltnInfos.get(0) : null; + return !vltnInfo.isEmpty() ? vltnInfo.get(0) : null; } /**위반 정보 정보를 등록한다. diff --git a/src/main/java/cokr/xit/fims/cmmn/service/TaskInfoService.java b/src/main/java/cokr/xit/fims/cmmn/service/TaskInfoService.java index e960ccd9..13fd1037 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/TaskInfoService.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/TaskInfoService.java @@ -29,7 +29,7 @@ public interface TaskInfoService { * @param req 업무 정보 조회 조건 * @return 업무 정보 객체 목록 */ - List getTaskInfos(TaskInfoQuery req); + List getTaskInfos(TaskInfoQuery req); /**업무 정보 정보를 등록한다. * @param taskInfo 업무 정보 diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoBean.java index e383d04c..510e4828 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoBean.java @@ -42,10 +42,18 @@ public class TaskInfoBean extends AbstractComponent { * @param req 업무 정보 조회 조건 * @return 업무 정보 객체 목록 */ - public List getTaskInfos(TaskInfoQuery req) { + public List getTaskInfos(TaskInfoQuery req) { return taskInfoMapper.selectTaskInfos(req); } + /**지정한 조건에 따라 업무 정보 객체를 반환한다. + * @param req 위반 정보 조회 조건 + * @return 위반 정보 객체 목록 + */ + public DataObject getTaskInfo(TaskInfoQuery req) { + return taskInfoMapper.selectTaskInfo(req); + } + /**업무 정보 정보를 등록한다. * @param taskInfo 업무 정보 * @return 저장 여부 diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoServiceBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoServiceBean.java index 12f93a08..ab51a350 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoServiceBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/TaskInfoServiceBean.java @@ -36,7 +36,7 @@ public class TaskInfoServiceBean extends AbstractServiceBean implements TaskInfo } @Override - public List getTaskInfos(TaskInfoQuery req) { + public List getTaskInfos(TaskInfoQuery req) { return taskInfoBean.getTaskInfos(req); } diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java index 71f67afe..36b44e5f 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/VltnInfoBean.java @@ -46,9 +46,9 @@ public class VltnInfoBean extends AbstractComponent { return vltnInfoMapper.selectVltnInfos(req); } - /**지정한 조건에 따라 위반 정보 객체들을 반환한다. + /**지정한 조건에 따라 위반 정보 객체를 반환한다. * @param req 위반 정보 조회 조건 - * @return 위반 정보 객체 목록 + * @return 위반 정보 객체 */ public DataObject getVltnInfo(VltnInfoQuery req) { return vltnInfoMapper.selectVltnInfo(req); diff --git a/src/main/java/cokr/xit/fims/levy/Levy.java b/src/main/java/cokr/xit/fims/levy/Levy.java index c511b53f..648c3464 100644 --- a/src/main/java/cokr/xit/fims/levy/Levy.java +++ b/src/main/java/cokr/xit/fims/levy/Levy.java @@ -48,9 +48,9 @@ public class Levy extends AbstractEntity { private String fyr; /** - * 회계 구분 + * 회계 구분 코드 */ - private String acntgSe; + private String acntgSeCd; /** * 세목 코드 @@ -58,9 +58,14 @@ public class Levy extends AbstractEntity { private String txitmCd; /** - * 세목 명 + * 운영 항목 코드 */ - private String txitmNm; + private String operItemCd; + + /** + * 특별회계 사업 코드 + */ + private String spclBizCd; /** * 부과 번호 @@ -87,11 +92,6 @@ public class Levy extends AbstractEntity { */ private String inspySeNm; - /** - * 감경 구분 코드 - */ - private String rductSeCd; - /** * 감경 구분 명 */ @@ -137,6 +137,11 @@ public class Levy extends AbstractEntity { */ private String dudtYmd; + /** + * 납기 후 일자 + */ + private String dudtAftrYmd; + /** * 과태료 금액 */ @@ -157,11 +162,6 @@ public class Levy extends AbstractEntity { */ private Integer inspyInt; - /** - * 분납 구분 - */ - private String inspySe; - /** * 수납 본세 */ @@ -187,6 +187,11 @@ public class Levy extends AbstractEntity { */ private Integer sumAmt; + /** + * 납기 후 금액 + */ + private Integer dudtAftrAmt; + /** * 과세 물건 */ diff --git a/src/main/java/cokr/xit/fims/levy/LevyQuery.java b/src/main/java/cokr/xit/fims/levy/LevyQuery.java index 0c041f7a..a519e147 100644 --- a/src/main/java/cokr/xit/fims/levy/LevyQuery.java +++ b/src/main/java/cokr/xit/fims/levy/LevyQuery.java @@ -8,7 +8,7 @@ import cokr.xit.fims.cmmn.CmmnQuery; * *
  * ============ 변경 이력 ============
- * 2023-08-30	Jojh 최초 작성
+ * 2023-08-30	JoJH 최초 작성
  * ================================
  * 
*/ @@ -16,12 +16,6 @@ public class LevyQuery extends CmmnQuery { private static final long serialVersionUID = 1L; - // ID - private String crdnId; // 단속 ID - private String[] levyIDs; // 부과 IDs - private String levyId; // 부과 ID - private String[] rductIDs; // 감경 IDs - private String rductId; // 감경 ID // 검색 조건 private String schRductYmdFrom; // 감경 일자 시작 private String schRductYmdTo; // 감경 일자 종료 @@ -30,7 +24,6 @@ public class LevyQuery extends CmmnQuery { private String schVhrno; // 차량번호 private String schRtpyrNo; // 납부자 번호 private String schRtpyrNm; // 납부자 명 - // 상세 검색 조건 // ETC private String callPurpose; // 호출용도 필요시 사용 (view 조회, create 등록, update 수정, refresh 재조회) @@ -38,55 +31,18 @@ public class LevyQuery extends CmmnQuery { private String delRsn; // 삭제 사유 private String crdnDelYn; // 단속 삭제 여부 - public String getCrdnId() { - return ifEmpty(crdnId, () -> null); - } - - public T setCrdnId(String crdnId) { - this.crdnId = crdnId; - - return self(); - } - - public String[] getLevyIDs() { - return ifEmpty(levyIDs, () -> null); - } - - public T setLevyIDs(String... levyIDs) { - this.levyIDs = levyIDs; - - return self(); - } - - public String getLevyId() { - return ifEmpty(levyId, () -> null); - } - - public T setLevyId(String levyId) { - this.levyId = levyId; - - return self(); - } - - public String[] getRductIDs() { - return ifEmpty(rductIDs, () -> null); - } - - public T setRductIDs(String... rductIDs) { - this.rductIDs = rductIDs; - - return self(); - } - - public String getRductId() { - return ifEmpty(rductId, () -> null); - } - - public T setRductId(String rductId) { - this.rductId = rductId; + // ID + private String[] crdnIDs; // 단속 IDs + private String crdnId; // 단속 ID + private String[] levyIDs; // 부과 IDs + private String levyId; // 부과 ID + private String[] rductIDs; // 감경 IDs + private String rductId; // 감경 ID - return self(); - } + // 부과 등록 + private String levyYmd; // 부과 일자 + private String dudtYmd; // 납기 일자 + private String crdnSttsCd; // 단속 상태 코드 public String getSchRductYmdFrom() { return ifEmpty(schRductYmdFrom, () -> null); @@ -151,11 +107,6 @@ public class LevyQuery extends CmmnQuery { return self(); } - // 상세 검색 조건 /////////////////////////////////////////////////////////////// - - // 상세검색 조건 /////////////////////////////////////////////////////////////// - - // ETC ///////////////////////////////////////////////////////////////////// public String getCallPurpose() { return ifEmpty(callPurpose, () -> null); } @@ -195,6 +146,95 @@ public class LevyQuery extends CmmnQuery { return self(); } - // ETC ///////////////////////////////////////////////////////////////////// + + public String[] getCrdnIDs() { + return ifEmpty(crdnIDs, () -> null); + } + + public T setCrdnIDs(String... crdnIDs) { + this.crdnIDs = crdnIDs; + + return self(); + } + + public String getCrdnId() { + return ifEmpty(crdnId, () -> null); + } + + public T setCrdnId(String crdnId) { + this.crdnId = crdnId; + + return self(); + } + + public String[] getLevyIDs() { + return ifEmpty(levyIDs, () -> null); + } + + public T setLevyIDs(String... levyIDs) { + this.levyIDs = levyIDs; + + return self(); + } + + public String getLevyId() { + return ifEmpty(levyId, () -> null); + } + + public T setLevyId(String levyId) { + this.levyId = levyId; + + return self(); + } + + public String[] getRductIDs() { + return ifEmpty(rductIDs, () -> null); + } + + public T setRductIDs(String... rductIDs) { + this.rductIDs = rductIDs; + + return self(); + } + + public String getRductId() { + return ifEmpty(rductId, () -> null); + } + + public T setRductId(String rductId) { + this.rductId = rductId; + + return self(); + } + + public String getLevyYmd() { + return ifEmpty(levyYmd, () -> null); + } + + public T setLevyYmd(String levyYmd) { + this.levyYmd = levyYmd; + + return self(); + } + + public String getDudtYmd() { + return ifEmpty(dudtYmd, () -> null); + } + + public T setDudtYmd(String dudtYmd) { + this.dudtYmd = dudtYmd; + + return self(); + } + + public String getCrdnSttsCd() { + return ifEmpty(crdnSttsCd, () -> null); + } + + public T setCrdnSttsCd(String crdnSttsCd) { + this.crdnSttsCd = crdnSttsCd; + + return self(); + } } diff --git a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java index 6309dcd6..d9761219 100644 --- a/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java +++ b/src/main/java/cokr/xit/fims/levy/dao/LevyMapper.java @@ -111,4 +111,16 @@ public interface LevyMapper extends AbstractMapper { return levy != null && deleteLevy(params().set("levy", levy)) == 1; } + /**지정한 단속 ID에 따라 단속 대장 객체를 반환한다. + * @param crdnId 단속 ID + * @return 단속 대장 객체 + */ + DataObject selectCrdnInfo(String crdnId); + + /**지정한 단속 ID에 따라 단속 대장 객체를 반환한다. + * @param crdnId 단속 ID + * @return 고지 번호 + */ + String selectMaxLevyNo(Levy levy); + } diff --git a/src/main/java/cokr/xit/fims/levy/service/LevyService.java b/src/main/java/cokr/xit/fims/levy/service/LevyService.java index 53629cc6..4c1d40e9 100644 --- a/src/main/java/cokr/xit/fims/levy/service/LevyService.java +++ b/src/main/java/cokr/xit/fims/levy/service/LevyService.java @@ -42,6 +42,15 @@ public interface LevyService { */ DataObject getLevyInfo(LevyQuery req); + /**사전 부과 대장 정보를 등록한다. + * @param req 부과 대장 조회 조건 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String createRductLevy(LevyQuery req); + /**부과 대장 정보를 등록한다. * @param levy 부과 대장 * @return 저장 여부 diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java index 72db7821..6ca8c0c7 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyBean.java @@ -8,6 +8,11 @@ import org.springframework.stereotype.Component; import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.data.DataObject; +import cokr.xit.base.user.ManagedUser; +import cokr.xit.fims.cmmn.CrdnSttsHstry; +import cokr.xit.fims.cmmn.TaskInfoQuery; +import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; +import cokr.xit.fims.cmmn.service.bean.TaskInfoBean; import cokr.xit.fims.levy.Levy; import cokr.xit.fims.levy.LevyQuery; import cokr.xit.fims.levy.dao.LevyMapper; @@ -29,6 +34,14 @@ public class LevyBean extends AbstractComponent { @Resource(name = "levyMapper") private LevyMapper levyMapper; + /** 업무 정보 정보 Bean */ + @Resource(name = "taskInfoBean") + private TaskInfoBean taskInfoBean; + + /** 단속 상태 이력 정보 Bean */ + @Resource(name = "crdnSttsHstryBean") + private CrdnSttsHstryBean crdnSttsHstryBean; + /**지정한 조건에 따라 감경부과 대상 목록을 조회하여 반환한다. * @param req 부과 대장 조회 조건 * @return 부과 대장 목록 @@ -68,6 +81,99 @@ public class LevyBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ + public String createRductLevy(LevyQuery req) { + // 변수 선언 + boolean retSuccess = false; // DB 처리 결과 + String retMessage = "[F] "; // 처리 결과 메시지 + + // 단속 IDs 건수를 확인하여 1건이하면.. 종료 + if (req.getCrdnIDs().length < 1 ) { + return retMessage; + } + + // 사용자 정보 + ManagedUser managedUser = (ManagedUser)currentUser().getUser(); + + // 부과 IDs 만큼 반복.. + for (int iLoop = 0; iLoop < req.getCrdnIDs().length; iLoop++) { + DataObject crdnInfo = levyMapper.selectCrdnInfo(req.getCrdnIDs()[iLoop]); + + Levy levy = new Levy(); + + levy.setSggCd(crdnInfo.string("SGG_CD")); + levy.setCrdnId(crdnInfo.string("CRDN_ID")); + levy.setRtpyrId(crdnInfo.string("RTPYR_ID")); + levy.setInstCd(managedUser.getInstitute()); + levy.setDeptCd(managedUser.getDeptCode()); + levy.setFyr(crdnInfo.string("TODAY").substring(0, 4)); + levy.setAcntgSeCd(crdnInfo.string("ACNTG_SE_CD")); // 회계 구분 + levy.setTxitmCd(crdnInfo.string("TXITM_CD")); // 세목 코드 + levy.setOperItemCd(crdnInfo.string("OPER_ITEM_CD")); // 운영 항목 코드 + levy.setSpclBizCd(crdnInfo.string("SPCL_BIZ_CD")); // 특별회계 사업 코드 + levy.setLevyNo(levyMapper.selectMaxLevyNo(levy)); // 부과 번호 + levy.setInspySn(""); // 분납 순번 + levy.setLevySeCd("02"); // 부과 구분 코드 FIM040 + levy.setUntySeCd("02"); // 통합 구분 코드 FIM072 + levy.setLevyYmd(req.getLevyYmd()); // 부과 일자 + levy.setFrstDudtYmd(req.getDudtYmd()); // 최초 납기 일자 + levy.setDudtYmd(req.getDudtYmd()); // 납기 일자 + levy.setFfnlgAmt(crdnInfo.number("FFNLG_AMT").intValue()); // 과태료 금액 + levy.setLevyPcptax(crdnInfo.number("ADVNTCE_AMT").intValue()); // 부과 본세 + levy.setLevyAdamt(0); // 부과 가산금 + levy.setSumAmt(crdnInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 + levy.setInspyInt(0); // 분납 이자 + levy.setRcvmtPcptax(0); // 수납 본세 + levy.setRcvmtAdamt(0); // 수납 가산금 + levy.setRdcamtPcptax(0); // 감액 본세 + levy.setRdcamtAdamt(0); // 감액 가산금 + levy.setTxtnThing(crdnInfo.string("VHRNO")); // 과세 물건 + levy.setMngArtcl1(""); // 관리 항목1 + levy.setMngArtcl2(""); // 관리 항목2 + levy.setMngArtcl3(""); // 관리 항목3 + levy.setMngArtcl4(""); // 관리 항목4 + levy.setMngArtcl5(""); // 관리 항목5 + levy.setMngArtcl6(crdnInfo.string("CRDN_ID")); // 관리 항목6 + + retSuccess = levyMapper.insert(levy); + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과 대장 등록에 실패하였습니다."); + } + + // 단속상태이력(TB_CRDN_STTS_HSTRY) + CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); + + crdnSttsHstry.setCrdnId(crdnInfo.string("CRDN_ID")); + crdnSttsHstry.setBfrSttsCd(crdnInfo.string("CRDN_STTS_CD")); + crdnSttsHstry.setBfrSttsChgDt(crdnInfo.string("CRDN_STTS_CHG_DT")); + crdnSttsHstry.setCrdnSttsCd("41"); + crdnSttsHstry.setTaskDtlId(levy.getLevyId()); + + if (crdnInfo.number("CRDN_STTS_CD").intValue() < 31 ) { + // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다. + retSuccess = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry); + } else if (crdnInfo.number("CRDN_STTS_CD").intValue() == 31) { + // 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 등록 한다. + retSuccess = crdnSttsHstryBean.create(crdnSttsHstry); + } + if (!retSuccess) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("부과 등록 중 단속 대장의 단속상태 변경에 실패하였습니다."); + } + } + + retMessage = "[S] 작업이 정상 처리 되었습니다."; + + return retMessage; + } + + /**부과 대장 정보를 수정한다. + * @param levy 부과 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ public boolean createLevy(Levy levy) { return levyMapper.insert(levy); } diff --git a/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java b/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java index 56b0ac29..10cc7c20 100644 --- a/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java +++ b/src/main/java/cokr/xit/fims/levy/service/bean/LevyServiceBean.java @@ -49,6 +49,11 @@ public class LevyServiceBean extends AbstractServiceBean implements LevyService return levyBean.getLevyInfo(req); } + @Override + public String createRductLevy(LevyQuery req) { + return levyBean.createRductLevy(req); + } + @Override public boolean createLevy(Levy levy) { return levyBean.createLevy(levy); diff --git a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java index 37dad02f..3c514d0b 100644 --- a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java +++ b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java @@ -32,8 +32,9 @@ public class Levy01Controller extends ApplicationController { public class METHOD_URL { public static final String - reductionLevyTargetMain = "/010/main.do" // 사전 감경부과 대상 메인 화면 - , getRductLevyTrgtList = "/010/list.do" // 부과제외 대장 목록 조회 + reductionLevyTargetMain = "/010/main.do" // 사전 감경 부과 대상 메인 화면 + , getRductLevyTrgtList = "/010/list.do" // 사전 감경 부과 대상 대장 목록 조회 + , createRductLevy = "/010/createRductLevy.do" // 사전 감경 부과 대장 등록 ; } @@ -84,12 +85,20 @@ public class Levy01Controller extends ApplicationController { * "saved": 등록되었으면 true, 그렇지 않으면 false * } */ - @PostMapping(name = "부과 대장 등록", value = "/010/create.do") - public ModelAndView createLevy(Levy levy) { - boolean saved = levyService.createLevy(levy); + public ModelAndView createRductLevy(LevyQuery req) { + boolean saved = false; + String retMessage = levyService.createRductLevy(req); + + if (retMessage.contains("[S]")) { + saved = true; + } else { + saved = false; + } return new ModelAndView("jsonView") - .addObject("saved", saved); + .addObject("saved", saved) + .addObject("retMessage", retMessage); + } /**부과 대장 목록을 조회하여 반환한다.
    diff --git a/src/main/java/cokr/xit/fims/task/web/BpvController.java b/src/main/java/cokr/xit/fims/task/web/BpvController.java index 232f380e..9f82b679 100644 --- a/src/main/java/cokr/xit/fims/task/web/BpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/BpvController.java @@ -497,8 +497,22 @@ public class BpvController { } @Controller - @RequestMapping(name="전용차로과태료업무 부과_부과 관리", value=CLASS_URL+Levy01Controller.CLASS_URL) - class Levy01Controller extends cokr.xit.fims.levy.web.Levy01Controller {} + @RequestMapping(name="전용차로과태료업무 부과 관리", value=CLASS_URL+Levy01Controller.CLASS_URL) + class Levy01Controller extends cokr.xit.fims.levy.web.Levy01Controller { + + @Override + @RequestMapping(name="전용차로과태료업무 사전 부과 대상 목록 조회", value=METHOD_URL.getRductLevyTrgtList) + public ModelAndView getRductLevyTrgtList(LevyQuery req) { + return super.getRductLevyTrgtList(req); + } + + @Override + @RequestMapping(name="전용차로과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createRductLevy) + public ModelAndView createRductLevy(LevyQuery req) { + return super.createRductLevy(req); + } + + } @Controller @RequestMapping(name="전용차로과태료업무 부과_과태료 감경 관리", value=CLASS_URL+Levy02Controller.CLASS_URL) diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index dbe2cbfe..666c7aa0 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -454,11 +454,17 @@ public class DpvController { class Levy01Controller extends cokr.xit.fims.levy.web.Levy01Controller { @Override - @RequestMapping(name="장애인과태료업무 사전 감경부과 대상 목록 조회", value=METHOD_URL.getRductLevyTrgtList) + @RequestMapping(name="장애인과태료업무 사전 부과 대상 목록 조회", value=METHOD_URL.getRductLevyTrgtList) public ModelAndView getRductLevyTrgtList(LevyQuery req) { return super.getRductLevyTrgtList(req); } + @Override + @RequestMapping(name="장애인과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createRductLevy) + public ModelAndView createRductLevy(LevyQuery req) { + return super.createRductLevy(req); + } + } @Controller diff --git a/src/main/java/cokr/xit/fims/task/web/PvsController.java b/src/main/java/cokr/xit/fims/task/web/PvsController.java index 9571ded3..a2269762 100644 --- a/src/main/java/cokr/xit/fims/task/web/PvsController.java +++ b/src/main/java/cokr/xit/fims/task/web/PvsController.java @@ -467,8 +467,22 @@ public class PvsController { } @Controller - @RequestMapping(name="주정차과태료업무 부과_부과 관리", value=CLASS_URL+Levy01Controller.CLASS_URL) - class Levy01Controller extends cokr.xit.fims.levy.web.Levy01Controller {} + @RequestMapping(name="주정차과태료업무 부과 관리", value=CLASS_URL+Levy01Controller.CLASS_URL) + class Levy01Controller extends cokr.xit.fims.levy.web.Levy01Controller { + + @Override + @RequestMapping(name="주정차과태료업무 사전 부과 대상 목록 조회", value=METHOD_URL.getRductLevyTrgtList) + public ModelAndView getRductLevyTrgtList(LevyQuery req) { + return super.getRductLevyTrgtList(req); + } + + @Override + @RequestMapping(name="주정차과태료업무 사전(감경) 부과 대장 등록", value=METHOD_URL.createRductLevy) + public ModelAndView createRductLevy(LevyQuery req) { + return super.createRductLevy(req); + } + + } @Controller @RequestMapping(name="주정차과태료업무 부과_과태료 감경 관리", value=CLASS_URL+Levy02Controller.CLASS_URL) diff --git a/src/main/resources/sql/mapper/fims/cmmn/taskInfo-mapper.xml b/src/main/resources/sql/mapper/fims/cmmn/taskInfo-mapper.xml index c43454b4..391b202d 100644 --- a/src/main/resources/sql/mapper/fims/cmmn/taskInfo-mapper.xml +++ b/src/main/resources/sql/mapper/fims/cmmn/taskInfo-mapper.xml @@ -26,35 +26,37 @@ - SELECT SGG_CD - , TASK_SE_CD - , TASK_SE_NM - , ADVNTCE_DAYCNT - , ADVNTCE_RDUCT_RT - , WKSN_RDUCT_RT - , FFNLG_ADTN_YMD - , FFNLG_ADTN_RT - , FFNLG_INADTN_RT - , FFNLG_INADTN_MXMM_CNT - , USE_YN - , REG_DT - , RGTR - , MDFCN_DT - , MDFR - FROM TB_TASK_INFO + SELECT TI.SGG_CD + , TI.TASK_SE_CD + , TI.TASK_SE_NM + , TI.ADVNTCE_DAYCNT + , TI.ADVNTCE_RDUCT_RT + , TI.WKSN_RDUCT_RT + , TI.FFNLG_ADTN_YMD + , TI.FFNLG_ADTN_RT + , TI.FFNLG_INADTN_RT + , TI.FFNLG_INADTN_MXMM_CNT + , TI.USE_YN + , TI.REG_DT + , TI.RGTR + , TI.MDFCN_DT + , TI.MDFR + FROM TB_TASK_INFO TI - /* 업무 정보 객체 가져오기(taskInfoMapper.selectTaskInfos) */ - + WHERE TI.SGG_CD = #{sggCd} + AND TI.TASK_SE_CD = #{taskSeCd} diff --git a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml index 7e3dbe0d..b1f90d85 100644 --- a/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml +++ b/src/main/resources/sql/mapper/fims/levy/levy-mapper.xml @@ -15,15 +15,15 @@ - + - + + - @@ -33,16 +33,17 @@ + - + @@ -149,6 +150,8 @@ WHERE C.SGG_CD = #{sggCd} AND C.CRDN_STTS_CD BETWEEN '21' AND '31' AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD ]]> '00') + AND L.LEVY_ID IS NULL + AND C.DEL_YN = 'N' AND C.TASK_SE_CD = #{taskSeCd} @@ -198,14 +201,6 @@ - - - AND C.DEL_YN = #{crdnDelYn} - - - AND C.DEL_YN = 'N' - - @@ -243,14 +238,15 @@ , INST_CD /* 기관 코드 */ , DEPT_CD /* 부서 코드 */ , FYR /* 회계 연도 */ - , ACNTG_SE /* 회계 구분 */ + , ACNTG_SE_CD /* 회계 구분 코드 */ , TXITM_CD /* 세목 코드 */ + , OPER_ITEM_CD + , SPCL_BIZ_CD , LEVY_NO /* 부과 번호 */ , INSPY_SN /* 분납 순번 */ , LEVY_SE_CD /* 부과 구분 코드 */ , UNTY_SE_CD /* 통합 구분 코드 */ , INSPY_SE_NM /* 분납 구분 명 */ - , RDUCT_SE_CD /* 감경 구분 코드 */ , RDUCT_SE_NM /* 감경 구분 명 */ , LEVY_RTRCN_SE_NM /* 부과 취소 구분 명 */ , LEVY_STTS_NM /* 부과 상태 명 */ @@ -260,16 +256,17 @@ , LEVY_YMD /* 부과 일자 */ , FRST_DUDT_YMD /* 최초 납기 일자 */ , DUDT_YMD /* 납기 일자 */ + , DUDT_AFTR_YMD /* 납기 후 일자 */ , FFNLG_AMT /* 과태료 금액 */ , LEVY_PCPTAX /* 부과 본세 */ , LEVY_ADAMT /* 부과 가산금 */ , INSPY_INT /* 분납 이자 */ - , INSPY_SE /* 분납 구분 */ , RCVMT_PCPTAX /* 수납 본세 */ , RCVMT_ADAMT /* 수납 가산금 */ , RDCAMT_PCPTAX /* 감액 본세 */ , RDCAMT_ADAMT /* 감액 가산금 */ , SUM_AMT /* 합계 금액 */ + , DUDT_AFTR_AMT /* 납기 후 금액 */ , TXTN_THING /* 과세 물건 */ , MNG_ARTCL1 /* 관리 항목 1 */ , MNG_ARTCL2 /* 관리 항목 2 */ @@ -363,15 +360,15 @@ , INST_CD /* 기관 코드 */ , DEPT_CD /* 부서 코드 */ , FYR /* 회계 연도 */ - , ACNTG_SE /* 회계 구분 */ + , ACNTG_SE_CD /* 회계 구분 */ , TXITM_CD /* 세목 코드 */ - , TXITM_NM /* 세목 명 */ + , OPER_ITEM_CD + , SPCL_BIZ_CD , LEVY_NO /* 부과 번호 */ , INSPY_SN /* 분납 순번 */ , LEVY_SE_CD /* 부과 구분 코드 */ , UNTY_SE_CD /* 통합 구분 코드 */ , INSPY_SE_NM /* 분납 구분 명 */ - , RDUCT_SE_CD /* 감경 구분 코드 */ , RDUCT_SE_NM /* 감경 구분 명 */ , LEVY_RTRCN_SE_NM /* 부과 취소 구분 명 */ , LEVY_STTS_NM /* 부과 상태 명 */ @@ -381,16 +378,17 @@ , LEVY_YMD /* 부과 일자 */ , FRST_DUDT_YMD /* 최초 납기 일자 */ , DUDT_YMD /* 납기 일자 */ + , DUDT_AFTR_YMD /* 납기 후 일자 */ , FFNLG_AMT /* 과태료 금액 */ , LEVY_PCPTAX /* 부과 본세 */ , LEVY_ADAMT /* 부과 가산금 */ , INSPY_INT /* 분납 이자 */ - , INSPY_SE /* 분납 구분 */ , RCVMT_PCPTAX /* 수납 본세 */ , RCVMT_ADAMT /* 수납 가산금 */ , RDCAMT_PCPTAX /* 감액 본세 */ , RDCAMT_ADAMT /* 감액 가산금 */ , SUM_AMT /* 합계 금액 */ + , DUDT_AFTR_AMT /* 납기 후 금액 */ , TXTN_THING /* 과세 물건 */ , MNG_ARTCL1 /* 관리 항목 1 */ , MNG_ARTCL2 /* 관리 항목 2 */ @@ -444,15 +442,15 @@ , #{levy.instCd} /* 기관 코드 */ , #{levy.deptCd} /* 부서 코드 */ , #{levy.fyr} /* 회계 연도 */ - , #{levy.acntgSe} /* 회계 구분 */ + , #{levy.acntgSeCd} /* 회계 구분 */ , #{levy.txitmCd} /* 세목 코드 */ - , #{levy.txitmNm} /* 세목 명 */ + , #{levy.operItemCd} + , #{levy.spclBizCd} , #{levy.levyNo} /* 부과 번호 */ , #{levy.inspySn} /* 분납 순번 */ , #{levy.levySeCd} /* 부과 구분 코드 */ , #{levy.untySeCd} /* 통합 구분 코드 */ , #{levy.inspySeNm} /* 분납 구분 명 */ - , #{levy.rductSeCd} /* 감경 구분 코드 */ , #{levy.rductSeNm} /* 감경 구분 명 */ , #{levy.levyRtrcnSeNm} /* 부과 취소 구분 명 */ , #{levy.levySttsNm} /* 부과 상태 명 */ @@ -462,16 +460,17 @@ , #{levy.levyYmd} /* 부과 일자 */ , #{levy.frstDudtYmd} /* 최초 납기 일자 */ , #{levy.dudtYmd} /* 납기 일자 */ + , #{levy.dudtAftrYmd} /* 납기 후 일자 */ , #{levy.ffnlgAmt} /* 과태료 금액 */ , #{levy.levyPcptax} /* 부과 본세 */ , #{levy.levyAdamt} /* 부과 가산금 */ , #{levy.inspyInt} /* 분납 이자 */ - , #{levy.inspySe} /* 분납 구분 */ , #{levy.rcvmtPcptax} /* 수납 본세 */ , #{levy.rcvmtAdamt} /* 수납 가산금 */ , #{levy.rdcamtPcptax} /* 감액 본세 */ , #{levy.rdcamtAdamt} /* 감액 가산금 */ , #{levy.sumAmt} /* 합계 금액 */ + , #{levy.dudtAftrAmt} /* 납기 후 금액 */ , #{levy.txtnThing} /* 과세 물건 */ , #{levy.mngArtcl1} /* 관리 항목1 */ , #{levy.mngArtcl2} /* 관리 항목2 */ @@ -523,15 +522,15 @@ UPDATE TB_LEVY SET DEPT_CD = #{levy.deptCd} /* 부서 코드 */ , ACNTG_YR = #{levy.acntgYr} /* 회계 연도 */ - , ACNTG_SE = #{levy.acntgSe} /* 회계 구분 */ + , ACNTG_SE_CD = #{levy.acntgSeCd} /* 회계 구분 코드 */ , TXITM_CD = #{levy.txitmCd} /* 세목 코드 */ - , TXITM_NM = #{levy.txitmNm} /* 세목 명 */ + , OPER_ITEM_CD = #{levy.operItemCd} /* 운영 항목 코드 */ + , SPCL_BIZ_CD = #{levy.spclBizCd} /* 특별회계 사업 코드 */ , LEVY_NO = #{levy.levyNo} /* 부과 번호 */ , INSPY_SN = #{levy.inspySn} /* 분납 순번 */ , LEVY_SE_CD = #{levy.levySeCd} /* 부과 구분 코드 */ , UNTY_SE_CD = #{levy.untySeCd} /* 통합 구분 코드 */ , INSPY_SE_NM = #{levy.inspySeNm} /* 분납 구분 명 */ - , RDUCT_SE_CD = #{levy.rductSeCd} /* 감경 구분 코드 */ , RDUCT_SE_NM = #{levy.rductSeNm} /* 감경 구분 명 */ , LEVY_RTRCN_SE_NM = #{levy.levyRtrcnSeNm} /* 부과 취소 구분 명 */ , LEVY_STTS_NM = #{levy.levySttsNm} /* 부과 상태 명 */ @@ -541,16 +540,17 @@ , LEVY_YMD = #{levy.levyYmd} /* 부과 일자 */ , FRST_DUDT_YMD = #{levy.frstDudtYmd} /* 최초 납기 일자 */ , DUDT_YMD = #{levy.dudtYmd} /* 납기 일자 */ + , DUDT_AFTR_YMD = #{levy.dudtAftrYmd} /* 납기 후 일자 */ , FFNLG_AMT = #{levy.ffnlgAmt} /* 과태료 금액 */ , LEVY_PCPTAX = #{levy.levyPcptax} /* 부과 본세 */ , LEVY_ADAMT = #{levy.levyAdamt} /* 부과 가산금 */ , INSPY_INT = #{levy.inspyInt} /* 분납 이자 */ - , INSPY_SE = #{levy.inspySe} /* 분납 구분 */ , RCVMT_PCPTAX = #{levy.rcvmtPcptax} /* 수납 본세 */ , RCVMT_ADAMT = #{levy.rcvmtAdamt} /* 수납 가산금 */ , RDCAMT_PCPTAX = #{levy.rdcamtPcptax} /* 감액 본세 */ , RDCAMT_ADAMT = #{levy.rdcamtAdamt} /* 감액 가산금 */ , SUM_AMT = #{levy.sumAmt} /* 합계 금액 */ + , DUDT_AFTR_AMT = #{levy.dudtAftrAmt} /* 납기 후 금액 */ , TXTN_THING = #{levy.txtnThing} /* 과세 물건 */ , MNG_ARTCL1 = #{levy.mngArtcl1} /* 관리 항목1 */ , MNG_ARTCL2 = #{levy.mngArtcl2} /* 관리 항목2 */ @@ -606,4 +606,68 @@ AND DEL_YN = 'N' /* 삭제 여부 */ + + + + diff --git a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml index 44c51301..f918378c 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndng-mapper.xml @@ -411,8 +411,7 @@ WHERE C.SGG_CD = #{sggCd} AND C.TASK_SE_CD = #{taskSeCd} - AND C.CRDN_STTS_CD = #{crdnSttsCd} - AND C.CRDN_STTS_CD BETWEEN '21' AND '31' + AND C.CRDN_STTS_CD BETWEEN '21' AND '41' AND (CC.CVLCPT_PRCS_CD IS NULL OR CC.CVLCPT_PRCS_CD ]]> '00') AND C.CRDN_YMD = ]]> #{schCrdnYmdFrom} diff --git a/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml b/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml index 2d7503e8..f0d951d4 100644 --- a/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sprt/totalInfo-mapper.xml @@ -145,7 +145,7 @@ , L.INST_CD , L.DEPT_CD , L.FYR - , L.ACNTG_SE + , L.ACNTG_SE_CD , L.TXITM_CD , L.LEVY_NO , L.INSPY_SN diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp index aa0db329..5299935f 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp @@ -354,29 +354,30 @@ } createRductLevy${pageName} = (obj) => { - let btnTitle = $("#btnCreateSndngLink--${pageName}").attr("title"); + let btnTitle = $("#btnCreateRductLevy--${pageName}").attr("title"); // 선택된 자료의 발송 상세 ID 추가 let selected = ${pageName}Control.dataset.getKeys("selected"); if (selected.length < 1) return; - let info = { - crdnIDs : selected.join(",") // 단속 IDs - , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 - , taskSeCd : $("#taskSeCd--${pageName}").val() // 업무 구분 코드 - , sndngYmd : obj.sndngYmd // 부과 일자 - , dudtYmd : obj.dudtYmd // 납기 일자 + let params = { + crdnIDs : selected.join(",") // 단속 IDs + , sggCd : $("#sggCd--${pageName}").val() // 시군구 코드 + , taskSeCd : $("input[name='taskSeCd']:checked").val() // 업무 구분 코드 + , levyYmd : obj.sndngYmd.replace(/-/g, "") // 부과 일자 + , dudtYmd : obj.dudtYmd.replace(/-/g, "") // 납기 일자 + , crdnSttsCd : "41" // 단속 상태 코드(FIM010) - 41 사전부과 }; -// ajax.post({ -// url : wctx.url("/" + info.taskSeCd + ${pageName}PrefixUrl + "/080/createSndngLink.do") -// , data : info || {} -// , success : resp => { -// let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); -// dialog.alert(showMessage); -// } -// }); + ajax.post({ + url : wctx.url("/" + params.taskSeCd + ${pageName}PrefixUrl + "/010/create.do") + , data : params || {} + , success : resp => { + let showMessage = resp.retMessage.replace(/[S]|[F]/g, btnTitle); + dialog.alert(showMessage); + } + }); } /************************************************************************** @@ -502,7 +503,7 @@ let dudtYmd = DateUtil.getDateDay(20).date; let popupWidth = 480; - let popupHeight = 480; + let popupHeight = 320; let popupX = (window.screen.width / 2) - (popupWidth / 2); let popupY= (window.screen.height / 2) - (popupHeight / 2);