위반 내역(TB_VLTN_INFO) 관련 조회 추가.

main
jjh 1 year ago
parent cbd8a4a9ce
commit 6ffa467974

@ -0,0 +1,86 @@
package cokr.xit.fims.cmmn;
import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
/**
*
* @author JoJH
*/
@Getter
@Setter
public class VltnInfo extends AbstractEntity {
/**
* ID
*/
private String vltnId;
/**
*
*/
private String sggCd;
/**
*
*/
private String taskSeCd;
/**
*
*/
private String lawCd;
/**
*
*/
private String vltnCd;
/**
*
*/
private String vltnArtcl;
/**
*
*/
private String acntgSeCd;
/**
*
*/
private String acntgSeNm;
/**
*
*/
private String txitmCd;
/**
*
*/
private String txitmNm;
/**
*
*/
private String operItemCd;
/**
*
*/
private String operItemNm;
/**
*
*/
private String spclBizCd;
/**
*
*/
private String useYN;
}

@ -0,0 +1,100 @@
package cokr.xit.fims.cmmn;
import cokr.xit.foundation.component.QueryRequest;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-16 JoJH
* ================================
* </pre>
*/
public class VltnInfoQuery extends QueryRequest {
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; // 위반 항목
private String acntgSeCd; // 회계 구분 코드
private String txitmCd; // 세목 코드
public String getVltnId() {
return ifEmpty(vltnId, () -> null);
}
public <T extends VltnInfoQuery> T setVltnId(String vltnId) {
this.vltnId = vltnId;
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);
}
public <T extends VltnInfoQuery> T setLawCd(String lawCd) {
this.lawCd = lawCd;
return self();
}
public String getVltnCd() {
return ifEmpty(vltnCd, () -> null);
}
public <T extends VltnInfoQuery> T setVltnCd(String vltnCd) {
this.vltnCd = vltnCd;
return self();
}
public String getVltnArtcl() {
return ifEmpty(vltnArtcl, () -> null);
}
public <T extends VltnInfoQuery> T setVltnArtcl(String vltnArtcl) {
this.vltnArtcl = vltnArtcl;
return self();
}
public String getAcntgSeCd() {
return ifEmpty(acntgSeCd, () -> null);
}
public <T extends VltnInfoQuery> T setAcntgSeCd(String acntgSeCd) {
this.acntgSeCd = acntgSeCd;
return self();
}
public String getTxitmCd() {
return ifEmpty(txitmCd, () -> null);
}
public <T extends VltnInfoQuery> T setTxitmCd(String txitmCd) {
this.txitmCd = txitmCd;
return self();
}
}

@ -0,0 +1,109 @@
package cokr.xit.fims.cmmn.dao;
import java.util.List;
import java.util.Map;
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
import cokr.xit.foundation.component.AbstractMapper;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.VltnInfo;
import cokr.xit.fims.cmmn.VltnInfoQuery;
/** DAO
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-16 JoJH
* ================================
* </pre>
*/
@Mapper("vltnInfoMapper")
public interface VltnInfoMapper extends AbstractMapper {
/** .<br />
* @param req
* @return
*/
List<DataObject> selectVltnInfoList(VltnInfoQuery req);
/** .
* @param req
* @return
*/
List<DataObject> selectVltnInfos(VltnInfoQuery req);
/** .
* @param req
* @return
*/
default DataObject selectVltnInfo(VltnInfoQuery req) {
List<DataObject> vltnInfos = selectVltnInfos(req);
return !vltnInfos.isEmpty() ? vltnInfos.get(0) : null;
}
/** .
* @param params
* <ul><li>"vltnInfo" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int insertVltnInfo(Map<String, Object> params);
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean insert(VltnInfo vltnInfo) {
return vltnInfo != null && insertVltnInfo(params().set("vltnInfo", vltnInfo)) == 1;
}
/** .
* @param params
* <ul><li>"vltnInfo" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateVltnInfo(Map<String, Object> params);
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean update(VltnInfo vltnInfo) {
return vltnInfo != null && updateVltnInfo(params().set("vltnInfo", vltnInfo)) == 1;
}
/** .
* @param params
* <ul><li>"vltnInfo" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int deleteVltnInfo(Map<String, ?> params);
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean delete(VltnInfo vltnInfo) {
return vltnInfo != null && deleteVltnInfo(params().set("vltnInfo", vltnInfo)) == 1;
}
}

@ -0,0 +1,61 @@
package cokr.xit.fims.cmmn.service;
import java.util.List;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.VltnInfo;
import cokr.xit.fims.cmmn.VltnInfoQuery;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-16 JoJH
* ================================
* </pre>
*/
public interface VltnInfoService {
/** .
* @param req
* @return
*/
List<DataObject> getVltnInfoList(VltnInfoQuery req);
/** .
* @param req
* @return
*/
List<DataObject> getVltnInfos(VltnInfoQuery req);
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean create(VltnInfo vltnInfo);
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean update(VltnInfo vltnInfo);
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean remove(VltnInfo vltnInfo);
}

@ -0,0 +1,90 @@
package cokr.xit.fims.cmmn.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.VltnInfo;
import cokr.xit.fims.cmmn.VltnInfoQuery;
import cokr.xit.fims.cmmn.dao.VltnInfoMapper;
/** Bean
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-16 JoJH
* ================================
* </pre>
*/
@Component("vltnInfoBean")
public class VltnInfoBean extends AbstractComponent {
/** 위반 정보 정보 DAO */
@Resource(name = "vltnInfoMapper")
private VltnInfoMapper vltnInfoMapper;
/** .
* @param req
* @return
*/
public List<DataObject> getVltnInfoList(VltnInfoQuery req) {
return vltnInfoMapper.selectVltnInfoList(req);
}
/** .
* @param req
* @return
*/
public List<DataObject> getVltnInfos(VltnInfoQuery req) {
return vltnInfoMapper.selectVltnInfos(req);
}
/** .
* @param req
* @return
*/
public DataObject getVltnInfo(VltnInfoQuery req) {
return vltnInfoMapper.selectVltnInfo(req);
}
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean create(VltnInfo vltnInfo) {
return vltnInfoMapper.insert(vltnInfo);
}
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean update(VltnInfo vltnInfo) {
return vltnInfoMapper.update(vltnInfo);
}
/** .
* @param vltnInfo
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean remove(VltnInfo vltnInfo) {
return vltnInfoMapper.delete(vltnInfo);
}
}

@ -0,0 +1,58 @@
package cokr.xit.fims.cmmn.service.bean;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import cokr.xit.foundation.component.AbstractServiceBean;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.VltnInfo;
import cokr.xit.fims.cmmn.VltnInfoQuery;
import cokr.xit.fims.cmmn.service.VltnInfoService;
/** .
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-16 JoJH
* ================================
* </pre>
*/
@Service("vltnInfoService")
public class VltnInfoServiceBean extends AbstractServiceBean implements VltnInfoService {
/** 위반 정보 정보 Bean */
@Resource(name = "vltnInfoBean")
private VltnInfoBean vltnInfoBean;
@Override
public List<DataObject> getVltnInfoList(VltnInfoQuery req) {
return vltnInfoBean.getVltnInfoList(req);
}
@Override
public List<DataObject> getVltnInfos(VltnInfoQuery req) {
return vltnInfoBean.getVltnInfos(req);
}
@Override
public boolean create(VltnInfo vltnInfo) {
return vltnInfoBean.create(vltnInfo);
}
@Override
public boolean update(VltnInfo vltnInfo) {
return vltnInfoBean.update(vltnInfo);
}
@Override
public boolean remove(VltnInfo vltnInfo) {
return vltnInfoBean.remove(vltnInfo);
}
}

@ -0,0 +1,105 @@
package cokr.xit.fims.cmmn.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import cokr.xit.foundation.web.AbstractController;
import cokr.xit.fims.cmmn.VltnInfo;
import cokr.xit.fims.cmmn.VltnInfoQuery;
import cokr.xit.fims.cmmn.service.VltnInfoService;
/**
*
* <p> :
*
* <pre>
* ============ ============
* 2023-10-16 JoJH
* ================================
* </pre>
*/
@RequestMapping(name = "위반 정보", value = "/vltnInfo")
public class VltnInfoController extends AbstractController {
/**위반 정보 서비스*/
@Resource(name = "vltnInfoService")
private VltnInfoService vltnInfoService;
/** (vltnInfo/vltnInfo-main) .
* {@link #getVltnInfoList(VltnInfoQuery) } .
* @return /vltnInfo/vltnInfo-main
*/
@RequestMapping(name = "위반 정보 메인", value = "/main.do")
public ModelAndView main() {
ModelAndView mav = getVltnInfoList(new VltnInfoQuery().setPageNum(1));
mav.setViewName("/vltnInfo/vltnInfo-main");
return mav.addObject("vltnInfoList", toJson(mav.getModel().get("vltnInfoList")));
}
/** .<br />
* {@link VltnInfoService#getVltnInfoList(VltnInfoQuery)}
* @param req
* @return jsonView
* <pre><code> {
* "vltnInfoList": [ ]
* "vltnInfoStart":
* "vltnInfoFetch":
* "vltnInfoTotal":
* }</code></pre>
*/
@RequestMapping(name = "위반 정보 조회", value = "/list.do")
public ModelAndView getVltnInfoList(VltnInfoQuery req) {
List<?> result = vltnInfoService.getVltnInfoList(setFetchSize(req));
return setCollectionInfo(new ModelAndView("jsonView"), result, "vltnInfo");
}
/** .
* @param vltnInfo
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "위반 정보 등록", value = "/create.do")
public ModelAndView create(VltnInfo vltnInfo) {
boolean saved = vltnInfoService.create(vltnInfo);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param vltnInfo
* @return jsonView
* <pre><code> {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "위반 정보 수정", value = "/update.do")
public ModelAndView update(VltnInfo vltnInfo) {
boolean saved = vltnInfoService.update(vltnInfo);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
/** .
* @param vltnInfoIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "위반 정보 제거", value = "/remove.do")
public ModelAndView remove(VltnInfo vltnInfo) {
boolean saved = vltnInfoService.remove(vltnInfo);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
}

@ -21,7 +21,7 @@ import cokr.xit.fims.epst.EpostRcptDtl;
*
* <pre>
* ============ ============
* 2023-10-11 mjkhan
* 2023-10-11 JoJH
* ================================
* </pre>
*/

@ -1,14 +1,12 @@
package cokr.xit.fims.sndb.service.bean;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.foundation.AbstractComponent;
import cokr.xit.foundation.UserInfo;
import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.sndb.Sndng;
@ -16,12 +14,13 @@ import cokr.xit.fims.sndb.SndngDtl;
import cokr.xit.fims.sndb.Svbtc;
import cokr.xit.base.user.service.bean.UserBean;
import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.VltnInfoQuery;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
import cokr.xit.fims.cmmn.service.bean.VltnInfoBean;
import cokr.xit.fims.enis.EnisMtchg;
import cokr.xit.fims.enis.service.bean.EnisMtchgBean;
import cokr.xit.fims.epst.EpostRcptDtl;
import cokr.xit.fims.epst.EpostRcptReg;
import cokr.xit.fims.epst.dao.EpostRcptRegMapper;
import cokr.xit.fims.epst.service.bean.EpostRcptRegBean;
import cokr.xit.fims.levy.Levy;
import cokr.xit.fims.levy.service.bean.LevyBean;
@ -70,6 +69,10 @@ public class SndngBean extends AbstractComponent {
@Resource(name = "epostRcptRegBean")
private EpostRcptRegBean epostRcptRegBean;
/** 위반 정보 정보 Bean */
@Resource(name = "vltnInfoBean")
private VltnInfoBean vltnInfoBean;
/** .
* @param req
* @return
@ -410,25 +413,39 @@ public class SndngBean extends AbstractComponent {
// 발송 정보 조회
DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId());
if (sndngInfo.string("VLTN_CD").equals("")) {
if (sndngInfo.string("VLTN_ID").equals("")) {
jobCd = "01";
} else {
jobCd = sndngInfo.string("VLTN_CD");
}
if (sndng.getSndngSeCd().equals("01")) { // 계고장
// 위반 정보 조회
VltnInfoQuery vltnInfoQuery = new VltnInfoQuery();
if (sndngInfo.string("VLTN_ID").equals("")) {
vltnInfoQuery.setSggCd(sndngInfo.string("SGG_CD"));
vltnInfoQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD"));
vltnInfoQuery.setVltnCd(jobCd);
} else {
vltnInfoQuery.setVltnId(sndngInfo.string("VLTN_ID"));
}
DataObject vltnInfo = vltnInfoBean.getVltnInfo(vltnInfoQuery);
//
if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계고장
jobCd = jobCd + "01";
} else if (sndng.getSndngSeCd().equals("02")) { // 사전통지
} else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지
jobCd = jobCd + "02";
} else if (sndng.getSndngSeCd().equals("03")) { // 부과
} else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과
jobCd = jobCd + "03";
} else if (sndng.getSndngSeCd().equals("04")) { // 독촉
} else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉
jobCd = jobCd + "04";
} else if (sndng.getSndngSeCd().equals("05")) { // 압류예고
} else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고
jobCd = jobCd + "05";
} else if (sndng.getSndngSeCd().equals("06")) { // 압류통지
} else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지
jobCd = jobCd + "06";
} else if (sndng.getSndngSeCd().equals("09")) { // 체납분
} else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납분
jobCd = jobCd + "09";
} else {
retMessage = "[E] 작업중 발송구분이 지정되지 않았습니다.";
@ -454,13 +471,13 @@ public class SndngBean extends AbstractComponent {
// 전자우편 접수 등록
EpostRcptReg epostRcptReg = new EpostRcptReg();
epostRcptReg.setConKey(conKey); //
epostRcptReg.setRceptId(epostInfo.string("RCEPT_ID")); //
epostRcptReg.setDataCd("00"); //
epostRcptReg.setConKey(conKey); // 외부연계식별키
epostRcptReg.setRceptId(epostInfo.string("RCEPT_ID")); // 접수우체국국기호
epostRcptReg.setDataCd("00"); // 접수코드
// 000=일반 001=등기 201=선택등기
if (sndng.getPostSndngSeCd().equals("1")) {
if (sndng.getSggCd().equals("11500")) {
if (sndngInfo.string("SGG_CD").equals("11500")) {
epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
epostRcptReg.setSealCd("1" + "2" + workId);
} else {
@ -475,11 +492,12 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setDfpayyn("001");
epostRcptReg.setRcptKb("020");
epostRcptReg.setWordKb("001");
epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 건수 확인 필요하다.
epostRcptReg.setEnvCd("003"); // 접착식
// 건수 확인 필요하다. /////////////////////////////////////////////////
epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수
epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식
// 서울
if ("11".equals(sndng.getSggCd().substring(0, 2))) {
if ("11".equals(sndngInfo.string("SGG_CD").substring(0, 2))) { // 서울특별시
epostRcptReg.setColorYn("Y");
epostRcptReg.setMailCnt(2);
@ -489,64 +507,157 @@ public class SndngBean extends AbstractComponent {
epostRcptReg.setFlexCd("Y");
}
} else {
if (sndng.getSggCd().equals("44200")) { // 아산시청
if (sndngInfo.string("SGG_CD").equals("44200")) { // 아산시청
if (sndng.getSndngSeCd().equals("02")) { // 사전통지는 컬러로..
epostRcptReg.setColorYn("Y");
} else {
epostRcptReg.setColorYn("N");
}
} else if (sndng.getSggCd().equals("50110")) { // 제주시청
} else if (sndngInfo.string("SGG_CD").equals("50110")) { // 제주시청
if (sndng.getSndngSeCd().equals("02") || sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("10")) { // 사전통지, 계도 컬러로
epostRcptReg.setColorYn("Y");
} else {
epostRcptReg.setColorYn("N");
}
} else {
epostRcptReg.setColorYn("N"); // 칼라우편물
}
epostRcptReg.setFlexCd("N");
epostRcptReg.setMailCnt(1);
epostRcptReg.setFlexCd("N"); // 이면구분
epostRcptReg.setMailCnt(1); // 내용문 매수
}
epostRcptReg.setMmYn("Y");
epostRcptReg.setDmCnt(0);
epostRcptReg.setSbFg("Y");
epostRcptReg.setMmYn("Y"); // 메일머지 플래그
epostRcptReg.setDmCnt(0); // 동봉물 개수
epostRcptReg.setSbFg("Y"); // 반송불필요 여부
epostRcptReg.setApvlNb(epostInfo.string("APVL_NB")); // 후납계약 승인번호
epostRcptReg.setSendDate(sndngInfo.string("NOW").substring(0, 8));
epostRcptReg.setSendTime(sndngInfo.string("NOW").substring(8));
epostRcptReg.setSendDate(sndngInfo.string("NOW").substring(0, 8)); // 신청 일자
epostRcptReg.setSendTime(sndngInfo.string("NOW").substring(8)); // 전송 시간
if ("420".equals(epostInfo.string("DEPT_CD").substring(0,3)) && (sndngInfo.string("TASK_SE_CD").equals("ECA"))) {
epostRcptReg.setRelorsectCd(epostInfo.string("4200999"));
epostRcptReg.setRelorsectCd(epostInfo.string("4200999")); // 연계기관결제부서코드
} else {
epostRcptReg.setRelorsectCd(epostInfo.string("DEPT_CD")); // 연계기관결제부서코드
}
epostRcptReg.setRecevSenderOrgCode(epostInfo.string("DEPT_CD") + "0000"); // 발송기관코드
epostRcptReg.setRecevSenderNm(epostInfo.string("INST_NM") + " " + epostInfo.string("DEPT_NM")); // 발송인명
epostRcptReg.setRecevSenderZipcode(epostInfo.string("INST_ZIP")); // 발송인 우편번호
epostRcptReg.setRecevSenderAddr(epostInfo.string("INST_ADDR")); // 주소
epostRcptReg.setRecevSenderDetailaddr(epostInfo.string("INST_DADDR")); // 상세주소
epostRcptReg.setRecevSenderDepartTel(epostInfo.string("DEPT_TELNO")); // 부과부서 전화번호
epostRcptReg.setRecevSenderDepartNm(epostInfo.string("DEPT_NM")); // 부과부서
epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd()); // 등기구분
epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK")); // 출력일자
epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4)); // 출력연도
epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6)); // 출력월
epostRcptReg.setRecevPrintDay(sndngInfo.string("TODAY").substring(6, 8)); // 출력일
epostRcptReg.setRecevSenderFax(epostInfo.string("DEPT_FXNO")); // 부과부서 팩스번호
epostRcptReg.setRecevSerderStaff(userInfo.string("USER_NM")); // 부과부서 담당자
epostRcptReg.setRecevSenderEmail(userInfo.string("EML_ADRS")); // 부과부서 이메일
epostRcptReg.setJobCd(jobCd); // 작업 코드
epostRcptReg.setPostProcStt("01"); // 우편 처리 상태
epostRcptReg.setDelYn("N"); // 삭제 여부
epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자
epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
// 전자우편 접수 내역을 등록한다.
retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다.");
}
// 전자우편 접수 상세
String gojiStep = "00"; // 고지순번이 아님 01은 분납
String gojiGubun = "2"; // 1=정기분 2=수시분
String gojiTitle = sndngInfo.string("TXITM_NM");
String prtGubun = "";
if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도
prtGubun = "계도";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지서
prtGubun = "사전";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과고지서
prtGubun = "부과";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉고지서
prtGubun = "독촉";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고통지서
prtGubun = "예고";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지
prtGubun = "압류";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("07")) { // 사전통지서(개별)
prtGubun = "사전";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("08")) { // 체납고지서(개별)
prtGubun = "체납";
} else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납고지서
prtGubun = "체납";
}
String docStr1 = gojiTitle; // 장애인주주차위반과태료
String docStr2 = "납부(" + prtGubun + ")서 영수증"; // 납부(사전)서 영수증
String docStr3 = "[" + prtGubun + "]"; // [사전]
String docStr4 = "[시세외]" + gojiTitle;
String docStr5 = "영수필통지서";
String im_subj2 = "";
if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 계도, 사전통지서
im_subj2 = "";
} else {
epostRcptReg.setRelorsectCd(epostInfo.string("DEPT_CD"));
im_subj2 = "가산금";
}
epostRcptReg.setRecevSenderOrgCode(epostInfo.string("DEPT_CD") + "0000");
epostRcptReg.setRecevSenderNm(epostInfo.string("INST_NM") + " " + epostInfo.string("DEPT_NM"));
epostRcptReg.setRecevSenderZipcode(epostInfo.string("INST_ZIP"));
epostRcptReg.setRecevSenderAddr(epostInfo.string("INST_ADDR"));
epostRcptReg.setRecevSenderDetailaddr(epostInfo.string("INST_DADDR"));
epostRcptReg.setRecevSenderDepartTel(epostInfo.string("DEPT_TELNO"));
epostRcptReg.setRecevSenderDepartNm(epostInfo.string("DEPT_NM"));
epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd());
epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK"));
epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4));
epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6));
epostRcptReg.setRecevPrintDay(sndngInfo.string("TODAY").substring(6, 8));
epostRcptReg.setRecevSenderFax(epostInfo.string("DEPT_FXNO"));
epostRcptReg.setRecevSerderStaff(userInfo.string("USER_NM"));
epostRcptReg.setRecevSenderEmail(userInfo.string("EML_ADRS"));
// epostRcptReg.set_
String im_SggName = epostInfo.string("INST_CHIEF_NM");
//
for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) {
// 전자우편 접수 상세
EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
// 발송 상세 정보 조회
DataObject sndngDtlInfo = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]);
// for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) {
// // 전자우편 접수 상세
// EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
//
// // 발송 상세 정보 조회
// DataObject sndngDtlInfo = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]);
// if regist_gubun = '1' then // 등기
// begin
// try
// im_regt_no := Get_TRGST_NMBR(regist_gubun);
// except
// on e:exception do begin
// showmessage(e.Message);
// fData.UniConnection1.Rollback;
// Exit;
// end;
//
// end;
// end
// else begin
// Inc(nSeqNo);
// im_regt_no := sToday + FormatFloat('00000', nSeqNo);
// end;
//
//
// epostRcptDtl.setConKey(conKey);
// epostRcptDtl.setRgstNmbr(); // 등기번호
//
//
// qryPutDetail.ParamByName('RECEV_SEQ').AsString := FieldByName('GP_MMCODE').AsString;
// qryPutDetail.ParamByName('RECEV_CODE').AsString := FieldByName('gp_code').AsString;
// qryPutDetail.ParamByName('RECEV_BAR1D').AsString := im_SggName; // 2019.06.04'';
// qryPutDetail.ParamByName('RECEV_BAR2D').AsString := '';
// qryPutDetail.ParamByName('RECEV_BILL_NUMBER').AsString := im_Gojino;
// qryPutDetail.ParamByName('RECEV_DOC_CD1').AsString := gDoc_Str2;
// qryPutDetail.ParamByName('RECEV_DOC_CD2').AsString := SizeString(trim(im_GwataeName),30); // 2019.06.04 gDoc_Str1;
// qryPutDetail.ParamByName('RECEV_DOC_CD3').AsString := gDoc_Str3;
// qryPutDetail.ParamByName('RECEV_DOC_CD4').AsString := gDoc_Str4;
// qryPutDetail.ParamByName('RECEV_DOC_CD5').AsString := gDoc_Str5;
// qryPutDetail.ParamByName('RECEV_SUBJ1').AsString := Get_Keum_Gubun_Str(CPSystem_Info.Job_Group_Code);
// qryPutDetail.ParamByName('RECEV_SUBJ2').AsString := im_subj2;
// qryPutDetail.ParamByName('RECEV_SUBJ3').AsString := CPSystem_Info.Sido_Name; // 2019.06.04 '';
// qryPutDetail.ParamByName('RECEV_VIOLATE_DT').AsString := FieldByName('GP_MM_WDATETIME').AsString;
// qryPutDetail.ParamByName('RECEV_VIOLATE_DONG').AsString := Get_MM_BDONG_Str(FieldByName('MM_BDCODE').AsString);
// qryPutDetail.ParamByName('RECEV_VIOLATE_PLACE').AsString := copy(im_sgpos,1,80);
// qryPutDetail.ParamByName('RECEV_LAWS').AsString := im_Laws;
// }
retMessage = "[S] 작업이 정상 처리 되었습니다.";

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="cokr.xit.fims.cmmn.dao.VltnInfoMapper">
<!-- 위반 정보 정보 매퍼
========== 변경 이력 ==========
2023-10-16 JoJH 최초 작성
============================ -->
<resultMap id="vltnInfoRow" type="cokr.xit.fims.cmmn.VltnInfo">
<result property="vltnId" column="VLTN_ID" /> <!-- 위반 ID -->
<result property="sggCd" column="SGG_CD" /> <!-- 시군구 코드 -->
<result property="taskSeCd" column="TASK_SE_CD" /> <!-- 업무 구분 코드 -->
<result property="lawCd" column="LAW_CD" /> <!-- 법 코드 -->
<result property="vltnCd" column="VLTN_CD" /> <!-- 위반 코드 -->
<result property="vltnArtcl" column="VLTN_ARTCL" /> <!-- 위반 항목 -->
<result property="acntgSeCd" column="ACNTG_SE_CD" /> <!-- 회계 구분 코드 -->
<result property="acntgSeNm" column="ACNTG_SE_NM" /> <!-- 회계 구분 명 -->
<result property="txitmCd" column="TXITM_CD" /> <!-- 세목 코드 -->
<result property="txitmNm" column="TXITM_NM" /> <!-- 세목 명 -->
<result property="operItemCd" column="OPER_ITEM_CD" /> <!-- 운영 항목 코드 -->
<result property="operItemNm" column="OPER_ITEM_NM" /> <!-- 운영 항목 명 -->
<result property="spclBizCd" column="SPCL_BIZ_CD" /> <!-- 특별회계 사업 코드 -->
<result property="useYn" column="USE_YN" /> <!-- 사용 여부 -->
<result property="createdAt" column="REG_DT" /> <!-- 등록 일시 -->
<result property="createdBy" column="RGTR" /> <!-- 등록자 -->
<result property="lastModified" column="MDFCN_DT" /> <!-- 수정 일시 -->
<result property="modifiedBy" column="MDFR" /> <!-- 수정자 -->
</resultMap>
<sql id="select">
SELECT VI.VLTN_ID <!-- 위반 ID -->
, VI.SGG_CD <!-- 시군구 코드 -->
, VI.TASK_SE_CD <!-- 업무 구분 코드 -->
, VI.LAW_CD <!-- 법 코드 -->
, VI.VLTN_CD <!-- 위반 코드 -->
, VI.VLTN_ARTCL <!-- 위반 항목 -->
, VI.ACNTG_SE_CD <!-- 회계 구분 코드 -->
, VI.ACNTG_SE_NM <!-- 회계 구분 명 -->
, VI.TXITM_CD <!-- 세목 코드 -->
, VI.TXITM_NM <!-- 세목 명 -->
, VI.OPER_ITEM_CD <!-- 운영 항목 코드 -->
, VI.OPER_ITEM_NM <!-- 운영 항목 명 -->
, VI.SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, VI.USE_YN <!-- 사용 여부 -->
, VI.REG_DT <!-- 등록 일시 -->
, VI.RGTR <!-- 등록자 -->
, VI.MDFCN_DT <!-- 수정 일시 -->
, VI.MDFR <!-- 수정자 -->
FROM TB_VLTN_INFO VI
</sql>
<select id="selectVltnInfoList" parameterType="map" resultType="dataobject">/* 위반 정보 목록 조회(vltnInfoMapper.selectVltnInfoList) */
<include refid="utility.paging-prefix" />
<include refid="select" />
WHERE VI.SGG_CD = #{sggCd}
AND VI.TASK_SE_CD = #{taskSeCd}
<include refid="utility.orderBy" />
<include refid="utility.paging-suffix" />
</select>
<select id="selectVltnInfos" parameterType="map" resultType="dataobject">/* 위반 정보 객체 가져오기(vltnInfoMapper.selectVltnInfos) */
<include refid="select" />
WHERE VI.SGG_CD = #{sggCd}
AND VI.TASK_SE_CD = #{taskSeCd}
<if test="vltnId != null">
AND VI.VLTN_ID = #{vltnId}
</if>
<if test="lawCd != null">
AND VI.LAW_CD = #{lawCd}
</if>
<if test="vltnCd != null">
AND VI.VLTN_CD = #{vltnCd}
</if>
<if test="vltnArtcl != null">
AND VI.VLTN_ARTCL = #{vltnArtcl}
</if>
<if test="acntgSeCd != null">
AND VI.ACNTG_SE_CD = #{acntgSeCd}
</if>
<if test="txitmCd != null">
AND VI.TXITM_CD = #{txitmCd}
</if>
<include refid="utility.orderBy" />
</select>
<insert id="insertVltnInfo" parameterType="map">/* 위반 정보 등록(vltnInfoMapper.insertVltnInfo) */
INSERT
INTO TB_VLTN_INFO (
VLTN_ID <!-- 위반 ID -->
, SGG_CD <!-- 시군구 코드 -->
, TASK_SE_CD <!-- 업무 구분 코드 -->
, LAW_CD <!-- 법 코드 -->
, VLTN_CD <!-- 위반 코드 -->
, VLTN_ARTCL <!-- 위반 항목 -->
, ACNTG_SE_CD <!-- 회계 구분 코드 -->
, ACNTG_SE_NM <!-- 회계 구분 명 -->
, TXITM_CD <!-- 세목 코드 -->
, TXITM_NM <!-- 세목 명 -->
, OPER_ITEM_CD <!-- 운영 항목 코드 -->
, OPER_ITEM_NM <!-- 운영 항목 명 -->
, SPCL_BIZ_CD <!-- 특별회계 사업 코드 -->
, USE_YN <!-- 사용 여부 -->
, REG_DT <!-- 등록 일시 -->
, RGTR <!-- 등록자 -->
, MDFCN_DT <!-- 수정 일시 -->
, MDFR <!-- 수정자 -->
)
VALUES (
#{vltnInfo.vltnId} <!-- 위반 ID -->
, #{vltnInfo.sggCd} <!-- 시군구 코드 -->
, #{vltnInfo.taskSeCd} <!-- 업무 구분 코드 -->
, #{vltnInfo.lawCd} <!-- 법 코드 -->
, #{vltnInfo.vltnCd} <!-- 위반 코드 -->
, #{vltnInfo.vltnArtcl} <!-- 위반 항목 -->
, #{vltnInfo.acntgSeCd} <!-- 회계 구분 코드 -->
, #{vltnInfo.acntgSeNm} <!-- 회계 구분 명 -->
, #{vltnInfo.txitmCd} <!-- 세목 코드 -->
, #{vltnInfo.txitmNm} <!-- 세목 명 -->
, #{vltnInfo.operItemCd} <!-- 운영 항목 코드 -->
, #{vltnInfo.operItemNm} <!-- 운영 항목 명 -->
, #{vltnInfo.spclBizCd} <!-- 특별회계 사업 코드 -->
, #{vltnInfo.useYn} <!-- 사용 여부 -->
, <include refid="utility.now" /> <!-- 등록 일시 -->
, #{currentUser.id} <!-- 등록자 -->
, <include refid="utility.now" /> <!-- 수정 일시 -->
, #{currentUser.id} <!-- 수정자 -->
)
</insert>
<update id="updateVltnInfo" parameterType="map">/* 위반 정보 수정(vltnInfoMapper.updateVltnInfo) */
UPDATE TB_VLTN_INFO
SET LAW_CD = #{vltnInfo.lawCd} <!-- 법 코드 -->
, VLTN_CD = #{vltnInfo.vltnCd} <!-- 위반 코드 -->
, VLTN_ARTCL = #{vltnInfo.vltnArtcl} <!-- 위반 항목 -->
, ACNTG_SE_CD = #{vltnInfo.acntgSeCd} <!-- 회계 구분 코드 -->
, ACNTG_SE_NM = #{vltnInfo.acntgSeNm} <!-- 회계 구분 명 -->
, TXITM_CD = #{vltnInfo.txitmCd} <!-- 세목 코드 -->
, TXITM_NM = #{vltnInfo.txitmNm} <!-- 세목 명 -->
, OPER_ITEM_CD = #{vltnInfo.operItemCd} <!-- 운영 항목 코드 -->
, OPER_ITEM_NM = #{vltnInfo.operItemNm} <!-- 운영 항목 명 -->
, SPCL_BIZ_CD = #{vltnInfo.spclBizCd} <!-- 특별회계 사업 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{vltnInfo.modifiedBy} <!-- 수정자 -->
WHERE VLTN_ID = #{vltnInfo.vltnId}
</update>
<update id="deleteVltnInfo" parameterType="map">/* 위반 정보 삭제(vltnInfoMapper.deleteVltnInfo) */
UPDATE TB_VLTN_INFO
SET USE_YN = 'N' <!-- 사용 여부 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{vltnInfo.modifiedBy} <!-- 수정자 -->
WHERE VLTN_ID = #{vltnInfo.vltnId}
</update>
</mapper>

@ -679,11 +679,15 @@ UPDATE TB_EPOST_RCPT_DTL SET
, DI.RG_NO_HEADER <!-- 등기 번호 헤더 -->
, DI.VRBACNT_LINK_SE_CD <!-- 가상계좌 연계 구분 코드 -->
, SI.SGG_CD <!-- 시군구 코드 -->
, SI.SGG_NM <!-- 시군구 명 -->
, SI.INST_CD <!-- 기관 코드 -->
, SI.INST_NM <!-- 기관 명 -->
, SI.INST_CHIEF_NM <!-- 기관 장 명 -->
, SI.INST_ADDR <!-- 기관 주소 -->
, SI.INST_DADDR <!-- 기관 상세주소 -->
, INST_ZIP <!-- 기관 우편번호 -->
, SI.INST_ZIP <!-- 기관 우편번호 -->
, SI.UP_INST_CD <!-- 상위 기관 코드 -->
, SI.UP_INST_NM <!-- 상위 기관 명 -->
FROM TB_DEPT_INFO DI
INNER JOIN TB_SGG_INFO SI ON (DI.SGG_CD = SI.SGG_CD AND DI.INST_CD = SI.INST_CD)
WHERE DEPT_CD = #{deptCd}

@ -135,6 +135,7 @@
<th class="cmn" style="width: 72px;">NO.</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('TASK_SE_CD', this.innerText, 'codeValue', 'FIM054');">업무구분</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_REG_SE_CD', this.innerText, 'codeValue', 'FIM067');">등록구분</th>
<th class="cmn" style="width: 160px;" onclick="searchFromGridTitle('VLTN_ARTCL', this.innerText, 'match', 'part');">위반항목</th>
<th class="cmn" style="width: 120px;" onclick="searchFromGridTitle('SNDNG_YMD', this.innerText, 'ymd', '');">발송일자</th>
<th class="cmn" style="width: 100px;" onclick="searchFromGridTitle('TNOCS', this.innerText, 'match', 'part');">총건수</th>
<th class="cmn" style="width: 140px;" onclick="searchFromGridTitle('GRAMT', this.innerText, 'match', 'part');">총금액</th>
@ -155,6 +156,7 @@
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{ROW_NUM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{TASK_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_REG_SE_NM}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{VLTN_ARTCL}</td>
<td class="cmn text-center" onclick="{onclick}" ondblclick="{ondblclick}">{SNDNG_YMD}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{TNOCS}</td>
<td class="cmn text-end" onclick="{onclick}" ondblclick="{ondblclick}">{GRAMT}</td>

@ -12,6 +12,7 @@
<form id="frmEdit--${pageName}" name="frmEdit">
<input type="hidden" id="sggCd--${pageName}" name="sggCd" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" />
<input type="hidden" id="vltnId--${pageName}" name="vltnId" />
</form> <!-- /입력 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
@ -458,6 +459,7 @@
$("#sggCd--${pageName}").val(${pageName}Control.dataset.getValue("SGG_CD")); // 시군구 코드
$("#taskSeCd--${pageName}").val(${pageName}Control.dataset.getValue("TASK_SE_CD")); // 업무 구분 코드
$("#vltnId--${pageName}").val( ); // 위반 ID
});
</script>

Loading…
Cancel
Save