사전 감경부과 등록 수정.

main
jjh 1 year ago
parent 336a7fc063
commit 22d9f93925

@ -12,7 +12,7 @@ import cokr.xit.foundation.component.QueryRequest;
* ================================
* </pre>
*/
public class TaskInfoQuery extends QueryRequest {
public class TaskInfoQuery extends CmmnQuery {
private static final long serialVersionUID = 1L;

@ -12,13 +12,11 @@ import cokr.xit.foundation.component.QueryRequest;
* ================================
* </pre>
*/
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 extends VltnInfoQuery> T setSggCd(String sggCd) {
this.sggCd = sggCd;
return self();
}
public String getTaskSeCd() {
return ifEmpty(taskSeCd, () -> null);
}
public <T extends VltnInfoQuery> T setTaskSeCd(String taskSeCd) {
this.taskSeCd = taskSeCd;
return self();
}
public String getLawCd() {
return ifEmpty(lawCd, () -> null);
}

@ -34,7 +34,17 @@ public interface TaskInfoMapper extends AbstractMapper {
* @param req
* @return
*/
List<TaskInfo> selectTaskInfos(TaskInfoQuery req);
List<DataObject> selectTaskInfos(TaskInfoQuery req);
/** .
* @param req
* @return
*/
default DataObject selectTaskInfo(TaskInfoQuery req) {
List<DataObject> taskInfo = selectTaskInfos(req);
return !taskInfo.isEmpty() ? taskInfo.get(0) : null;
}
/** .
* @param params

@ -36,14 +36,14 @@ public interface VltnInfoMapper extends AbstractMapper {
*/
List<DataObject> selectVltnInfos(VltnInfoQuery req);
/** .
/** .
* @param req
* @return
* @return
*/
default DataObject selectVltnInfo(VltnInfoQuery req) {
List<DataObject> vltnInfos = selectVltnInfos(req);
List<DataObject> vltnInfo = selectVltnInfos(req);
return !vltnInfos.isEmpty() ? vltnInfos.get(0) : null;
return !vltnInfo.isEmpty() ? vltnInfo.get(0) : null;
}
/** .

@ -29,7 +29,7 @@ public interface TaskInfoService {
* @param req
* @return
*/
List<TaskInfo> getTaskInfos(TaskInfoQuery req);
List<DataObject> getTaskInfos(TaskInfoQuery req);
/** .
* @param taskInfo

@ -42,10 +42,18 @@ public class TaskInfoBean extends AbstractComponent {
* @param req
* @return
*/
public List<TaskInfo> getTaskInfos(TaskInfoQuery req) {
public List<DataObject> getTaskInfos(TaskInfoQuery req) {
return taskInfoMapper.selectTaskInfos(req);
}
/** .
* @param req
* @return
*/
public DataObject getTaskInfo(TaskInfoQuery req) {
return taskInfoMapper.selectTaskInfo(req);
}
/** .
* @param taskInfo
* @return

@ -36,7 +36,7 @@ public class TaskInfoServiceBean extends AbstractServiceBean implements TaskInfo
}
@Override
public List<TaskInfo> getTaskInfos(TaskInfoQuery req) {
public List<DataObject> getTaskInfos(TaskInfoQuery req) {
return taskInfoBean.getTaskInfos(req);
}

@ -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);

@ -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;
/**
*
*/

@ -8,7 +8,7 @@ import cokr.xit.fims.cmmn.CmmnQuery;
*
* <pre>
* ============ ============
* 2023-08-30 Jojh
* 2023-08-30 JoJH
* ================================
* </pre>
*/
@ -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 extends LevyQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
}
public String[] getLevyIDs() {
return ifEmpty(levyIDs, () -> null);
}
public <T extends LevyQuery> T setLevyIDs(String... levyIDs) {
this.levyIDs = levyIDs;
return self();
}
public String getLevyId() {
return ifEmpty(levyId, () -> null);
}
public <T extends LevyQuery> T setLevyId(String levyId) {
this.levyId = levyId;
return self();
}
public String[] getRductIDs() {
return ifEmpty(rductIDs, () -> null);
}
public <T extends LevyQuery> T setRductIDs(String... rductIDs) {
this.rductIDs = rductIDs;
return self();
}
public String getRductId() {
return ifEmpty(rductId, () -> null);
}
public <T extends LevyQuery> 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 extends LevyQuery> T setCrdnIDs(String... crdnIDs) {
this.crdnIDs = crdnIDs;
return self();
}
public String getCrdnId() {
return ifEmpty(crdnId, () -> null);
}
public <T extends LevyQuery> T setCrdnId(String crdnId) {
this.crdnId = crdnId;
return self();
}
public String[] getLevyIDs() {
return ifEmpty(levyIDs, () -> null);
}
public <T extends LevyQuery> T setLevyIDs(String... levyIDs) {
this.levyIDs = levyIDs;
return self();
}
public String getLevyId() {
return ifEmpty(levyId, () -> null);
}
public <T extends LevyQuery> T setLevyId(String levyId) {
this.levyId = levyId;
return self();
}
public String[] getRductIDs() {
return ifEmpty(rductIDs, () -> null);
}
public <T extends LevyQuery> T setRductIDs(String... rductIDs) {
this.rductIDs = rductIDs;
return self();
}
public String getRductId() {
return ifEmpty(rductId, () -> null);
}
public <T extends LevyQuery> T setRductId(String rductId) {
this.rductId = rductId;
return self();
}
public String getLevyYmd() {
return ifEmpty(levyYmd, () -> null);
}
public <T extends LevyQuery> T setLevyYmd(String levyYmd) {
this.levyYmd = levyYmd;
return self();
}
public String getDudtYmd() {
return ifEmpty(dudtYmd, () -> null);
}
public <T extends LevyQuery> T setDudtYmd(String dudtYmd) {
this.dudtYmd = dudtYmd;
return self();
}
public String getCrdnSttsCd() {
return ifEmpty(crdnSttsCd, () -> null);
}
public <T extends LevyQuery> T setCrdnSttsCd(String crdnSttsCd) {
this.crdnSttsCd = crdnSttsCd;
return self();
}
}

@ -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);
}

@ -42,6 +42,15 @@ public interface LevyService {
*/
DataObject getLevyInfo(LevyQuery req);
/** .
* @param req
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
String createRductLevy(LevyQuery req);
/** .
* @param levy
* @return

@ -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 {
* <li> false</li>
* </ul>
*/
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
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean createLevy(Levy levy) {
return levyMapper.insert(levy);
}

@ -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);

@ -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
* }</code></pre>
*/
@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);
}
/** .<br />

@ -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)

@ -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

@ -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)

@ -26,35 +26,37 @@
</resultMap>
<sql id="select">
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
</sql>
<select id="selectTaskInfoList" parameterType="map" resultType="dataobject">/* 업무 정보 목록 조회(taskInfoMapper.selectTaskInfoList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
<where></where>
WHERE TI.SGG_CD = #{sggCd}
AND TI.TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectTaskInfos" parameterType="map" resultMap="taskInfoRow">/* 업무 정보 객체 가져오기(taskInfoMapper.selectTaskInfos) */
<select id="selectTaskInfos" parameterType="map" resultType="dataobject">/* 업무 정보 객체 가져오기(taskInfoMapper.selectTaskInfos) */
<include refid="select" />
<where></where>
WHERE TI.SGG_CD = #{sggCd}
AND TI.TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
</select>

@ -15,15 +15,15 @@
<result property="instCd" column="INST_CD" /> <!-- 기관 코드 -->
<result property="deptCd" column="DEPT_CD" /> <!-- 부서 코드 -->
<result property="fyr" column="FYR" /> <!-- 회계 연도 -->
<result property="acntgSe" column="ACNTG_SE" /> <!-- 회계 구분 -->
<result property="acntgSeCd" column="ACNTG_SE_CD" /> <!-- 회계 구분 코드 -->
<result property="txitmCd" column="TXITM_CD" /> <!-- 세목 코드 -->
<result property="txitmNm" column="TXITM_NM" /> <!-- 세목 명 -->
<result property="operItemCd" column="OPER_ITEM_CD" /> <!-- 운영 항목 코드 -->
<result property="spclBizCd" column="SPCL_BIZ_CD" /> <!-- 특별회계 사업 코드 -->
<result property="levyNo" column="LEVY_NO" /> <!-- 부과 번호 -->
<result property="inspySn" column="INSPY_SN" /> <!-- 분납 순번 -->
<result property="levySeCd" column="LEVY_SE_CD" /> <!-- 부과 구분 코드 -->
<result property="untySeCd" column="UNTY_SE_CD" /> <!-- 통합 구분 코드 -->
<result property="inspySeNm" column="INSPY_SE_NM" /> <!-- 분납 구분 명 -->
<result property="rductSeCd" column="RDUCT_SE_CD" /> <!-- 감경 구분 코드 -->
<result property="rductSeNm" column="RDUCT_SE_NM" /> <!-- 감경 구분 명 -->
<result property="levyRtrcnSeNm" column="LEVY_RTRCN_SE_NM" /> <!-- 부과 취소 구분 명 -->
<result property="levySttsNm" column="LEVY_STTS_NM" /> <!-- 부과 상태 명 -->
@ -33,16 +33,17 @@
<result property="levyYmd" column="LEVY_YMD" /> <!-- 부과 일자 -->
<result property="frstDudtYmd" column="FRST_DUDT_YMD" /> <!-- 최초 납기 일자 -->
<result property="dudtYmd" column="DUDT_YMD" /> <!-- 납기 일자 -->
<result property="dudtAftrYmd" column="DUDT_AFTR_YMD" /> <!-- 납기 후 일자 -->
<result property="ffnlgAmt" column="FFNLG_AMT" /> <!-- 과태료 금액 -->
<result property="levyPcptax" column="LEVY_PCPTAX" /> <!-- 부과 본세 -->
<result property="levyAdamt" column="LEVY_ADAMT" /> <!-- 부과 가산금 -->
<result property="inspyInt" column="INSPY_INT" /> <!-- 분납 이자 -->
<result property="inspySe" column="INSPY_SE" /> <!-- 분납 구분 -->
<result property="rcvmtPcptax" column="RCVMT_PCPTAX" /> <!-- 수납 본세 -->
<result property="rcvmtAdamt" column="RCVMT_ADAMT" /> <!-- 수납 가산금 -->
<result property="rdcamtPcptax" column="RDCAMT_PCPTAX" /> <!-- 감액 본세 -->
<result property="rdcamtAdamt" column="RDCAMT_ADAMT" /> <!-- 감액 가산금 -->
<result property="sumAmt" column="SUM_AMT" /> <!-- 합계 금액 -->
<result property="dudtAftrAmt" column="DUDT_AFTR_AMT" /> <!-- 납기 후 금액 -->
<result property="txtnThing" column="TXTN_THING" /> <!-- 과세 물건 -->
<result property="mngArtcl1" column="MNG_ARTCL1" /> <!-- 관리 항목 1 -->
<result property="mngArtcl2" column="MNG_ARTCL2" /> <!-- 관리 항목 2 -->
@ -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 <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
AND L.LEVY_ID IS NULL <!-- 부과 ID -->
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
<if test="taskSeCd != null">
AND C.TASK_SE_CD = #{taskSeCd} <!-- 업무 구분 코드 -->
</if>
@ -198,14 +201,6 @@
<otherwise>
</otherwise>
</choose>
<choose>
<when test="crdnDelYn != null">
AND C.DEL_YN = #{crdnDelYn} <!-- 삭제 여부 -->
</when>
<otherwise>
AND C.DEL_YN = 'N' <!-- 삭제 여부 -->
</otherwise>
</choose>
<if test="by != null and by != '' and term != null">
<choose>
<when test="mainOption == 'codeValue' or mainOption == 'match' or mainOption == 'ymd'">
@ -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' /* 삭제 여부 */
</update>
<select id="selectCrdnInfo" parameterType="map" resultType="dataobject">/* 단속 정보 가져오기(levyMapper.selectCrdnInfo) */
SELECT C.CRDN_ID
, C.SGG_CD
, C.TASK_SE_CD
, C.CRDN_REG_SE_CD
, C.CRDN_INPT_SE_CD
, C.CVLCPT_LINK_YN
, C.LINK_TBL_NM
, C.LINK_ID
, C.RTPYR_ID
, C.CRDN_YMD
, C.CRDN_TM
, C.VHRNO
, C.CRDN_STDG_NM
, C.CRDN_ROAD_NM
, C.CRDN_PLC
, C.VLTN_ID
, C.GPS_X
, C.GPS_Y
, C.ATCH_FILE_CNT
, C.VIN
, C.VHCL_NM
, C.VHCL_COLOR
, C.FFNLG_CRDN_AMT
, C.FFNLG_RDUCT_RT
, C.FFNLG_AMT
, C.ADVNTCE_BGNG_YMD
, C.ADVNTCE_DUDT_YMD
, C.ADVNTCE_AMT
, C.OPNN_SBMSN_YN
, C.ETC_CN
, C.CRDN_STTS_CD
, C.CRDN_STTS_CHG_DT
, C.ADTN_AMT
, C.MINUS_AMT
, C.RCVMT_AMT
, C.BFR_CRDN_ID
, C.DEL_YN
, VI.VLTN_CD
, VI.VLTN_ARTCL
, VI.VLTN_LAW_NM
, VI.VLTN_LAW1
, VI.VLTN_LAW2
, VI.VLTN_LAW_ETC
, VI.ACNTG_SE_CD
, VI.TXITM_CD
, VI.OPER_ITEM_CD
, VI.SPCL_BIZ_CD
, <include refid="utility.today" /> AS TODAY <!-- 오늘 일자 -->
FROM TB_CRDN C
INNER JOIN TB_VLTN_INFO VI ON (C.VLTN_ID = VI.VLTN_ID AND C.SGG_CD = VI.SGG_CD AND C.TASK_SE_CD = VI.TASK_SE_CD)
WHERE C.CRDN_ID = #{crdnId} /* 단속 ID */
AND C.DEL_YN = 'N'
</select>
<select id="selectMaxLevyNo" parameterType="map" resultType="String">/* 고지번호 가져오기(levyMapper.selectMaxLevyNo) */
SELECT LPAD(IFNULL(MAX(LEVY_NO) + 1, 1), 6, '0') AS NEW_LEVY_NO
FROM TB_LEVY
WHERE SGG_CD = #{sggCd}
AND FYR = #{fyr}
AND ACNTG_SE_CD = #{acntgSeCd}
AND TXITM_CD = #{txitmCd}
</select>
</mapper>

@ -411,8 +411,7 @@
<include refid="selectAdvntceSndngTrgt" />
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 <![CDATA[ <> ]]> '00') <!-- 민원 처리 코드 -->
<if test="schCrdnYmdFrom != null">
AND C.CRDN_YMD <![CDATA[ >= ]]> #{schCrdnYmdFrom} <!-- 단속 일자 시작 -->

@ -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 <!-- 분납 순번 -->

@ -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);

Loading…
Cancel
Save