의견제출 수정, 삭제 서비스 수정.

main
jjh 1 year ago
parent 93be2418d3
commit 2175e58afa

@ -56,4 +56,23 @@ public interface CrdnSttsHstryService {
* </ul> * </ul>
*/ */
boolean remove(CrdnSttsHstry crdnSttsHstry); boolean remove(CrdnSttsHstry crdnSttsHstry);
/** , .
* @param crdnSttsHstry
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry);
/** , .
* @param crdnSttsHstry
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean removeHstryUpdateCrdnSttsCd(String crdnId);
} }

@ -12,6 +12,7 @@ import cokr.xit.foundation.data.DataObject;
import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.CrdnSttsHstryQuery; import cokr.xit.fims.cmmn.CrdnSttsHstryQuery;
import cokr.xit.fims.cmmn.service.CrdnSttsHstryService; import cokr.xit.fims.cmmn.service.CrdnSttsHstryService;
import cokr.xit.fims.excl.Excl01Query;
/** . /** .
* *
@ -25,6 +26,7 @@ import cokr.xit.fims.cmmn.service.CrdnSttsHstryService;
*/ */
@Service("crdnSttsHstryService") @Service("crdnSttsHstryService")
public class CrdnSttsHstryServiceBean extends AbstractServiceBean implements CrdnSttsHstryService { public class CrdnSttsHstryServiceBean extends AbstractServiceBean implements CrdnSttsHstryService {
/** 단속 상태 이력 정보 Bean */ /** 단속 상태 이력 정보 Bean */
@Resource(name = "crdnSttsHstryBean") @Resource(name = "crdnSttsHstryBean")
private CrdnSttsHstryBean crdnSttsHstryBean; private CrdnSttsHstryBean crdnSttsHstryBean;
@ -53,4 +55,60 @@ public class CrdnSttsHstryServiceBean extends AbstractServiceBean implements Crd
public boolean remove(CrdnSttsHstry crdnSttsHstry) { public boolean remove(CrdnSttsHstry crdnSttsHstry) {
return crdnSttsHstryBean.remove(crdnSttsHstry); return crdnSttsHstryBean.remove(crdnSttsHstry);
} }
@Override
public boolean createHstryUpdateCrdnSttsCd(CrdnSttsHstry crdnSttsHstry) {
boolean retSuccess = false; // DB 처리 결과
// 단속상태이력 정보를 등록한다.
retSuccess = crdnSttsHstryBean.create(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다.");
}
// 단속상태이력 정보를 등록한다.
retSuccess = crdnSttsHstryBean.updateCrdn(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다.");
}
return retSuccess;
}
@Override
public boolean removeHstryUpdateCrdnSttsCd(String crdnId) {
boolean retSuccess = false; // DB 처리 결과
DataObject infoCrdnSttsHstry = new DataObject(); // 단속상태이력(TB_CRDN_STTS_HSTRY) 조회 정보
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry (); // 단속상태이력(TB_CRDN_STTS_HSTRY)
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 조회 한다.
infoCrdnSttsHstry = crdnSttsHstryBean.getCrdnSttsHstryInfo(crdnId);
// 단속상태이력(TB_CRDN_STTS_HSTRY)
crdnSttsHstry.setSttsHstryId(infoCrdnSttsHstry.string("STTS_HSTRY_ID")); // 상태 이력 ID
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryBean.remove(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 삭제 중 오류가 발생하였습니다.");
}
// 단속(TB_CRDN)
crdnSttsHstry.setCrdnId(infoCrdnSttsHstry.string("CRDN_ID")); // 단속 ID
crdnSttsHstry.setCrdnSttsCd(infoCrdnSttsHstry.string("BFR_STTS_CD")); // 상태 코드
crdnSttsHstry.setCrdnSttsChgDt(infoCrdnSttsHstry.string("BFR_STTS_CHG_DT")); // 상태 변경 일시
// 단속(TB_CRDN) 상태 코드를 수정 한다.
retSuccess = crdnSttsHstryBean.updateCrdn(crdnSttsHstry);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("단속상태이력 정보를 등록 중 오류가 발생하였습니다.");
}
return retSuccess;
}
} }

@ -26,6 +26,7 @@ import cokr.xit.fims.cmmn.service.CrdnSttsHstryService;
*/ */
@RequestMapping(name = "단속 상태 이력", value = "/crdnSttsHstry") @RequestMapping(name = "단속 상태 이력", value = "/crdnSttsHstry")
public class CrdnSttsHstryController extends AbstractController { public class CrdnSttsHstryController extends AbstractController {
/**단속 상태 이력 서비스*/ /**단속 상태 이력 서비스*/
@Resource(name = "crdnSttsHstryService") @Resource(name = "crdnSttsHstryService")
private CrdnSttsHstryService crdnSttsHstryService; private CrdnSttsHstryService crdnSttsHstryService;

@ -20,10 +20,12 @@ public class Excl01Query extends QueryRequest {
private String sggCd; // 시군구 코드 private String sggCd; // 시군구 코드
private String taskSeCd; // 업무 구분 코드 private String taskSeCd; // 업무 구분 코드
private String delYn; // 삭제 여부 private String delYn; // 삭제 여부
// ID // ID
private String[] levyExclIDs; // 부과 제외 ID private String[] levyExclIDs; // 부과 제외 ID
private String levyExclId; // 부과 제외 ID private String levyExclId; // 부과 제외 ID
private String crdnId; // 단속 ID private String crdnId; // 단속 ID
// 공통 조건 // 공통 조건
private String schDateOpt; // 검색 일자 구분 private String schDateOpt; // 검색 일자 구분
private String schDateFrom; // 검색 일자 시작 private String schDateFrom; // 검색 일자 시작
@ -37,6 +39,7 @@ public class Excl01Query extends QueryRequest {
private String schDetailUserOpt; // 상세 검색 사용자 구분 private String schDetailUserOpt; // 상세 검색 사용자 구분
private String schDetailUserNm; // 상세 검색 사용자 명 private String schDetailUserNm; // 상세 검색 사용자 명
private String schDetailUserCd; // 상세 검색 사용자 코드 private String schDetailUserCd; // 상세 검색 사용자 코드
// 검색 조건 // 검색 조건
private String schLevyExclYmdFrom; // 부과 제외 일자 시작 private String schLevyExclYmdFrom; // 부과 제외 일자 시작
private String schLevyExclYmdTo; // 부과 제외 일자 종료 private String schLevyExclYmdTo; // 부과 제외 일자 종료
@ -45,6 +48,7 @@ public class Excl01Query extends QueryRequest {
private String schRtpyrNm; // 납부자 명 - 납부자(TB_PAYER) private String schRtpyrNm; // 납부자 명 - 납부자(TB_PAYER)
private String schCrdnYmdFrom; // 단속 일자 시작 private String schCrdnYmdFrom; // 단속 일자 시작
private String schCrdnYmdTo; // 단속 일자 종료 private String schCrdnYmdTo; // 단속 일자 종료
// 동적 검색 조건 // 동적 검색 조건
private String mainOption; private String mainOption;
private String subOption; private String subOption;
@ -54,6 +58,9 @@ public class Excl01Query extends QueryRequest {
private String vhrno; // 차량번호 - 단속(TB_CRDN) private String vhrno; // 차량번호 - 단속(TB_CRDN)
private String rtpyrNm; // 납부자 명 - 납부자(TB_PAYER) private String rtpyrNm; // 납부자 명 - 납부자(TB_PAYER)
// ETC
private String delRsn; // 삭제 사유
public String getSggCd() { public String getSggCd() {
return ifEmpty(sggCd, () -> null); return ifEmpty(sggCd, () -> null);
} }
@ -376,4 +383,15 @@ public class Excl01Query extends QueryRequest {
} }
// 동적 검색 조건 /////////////////////////////////////////////////////////////// // 동적 검색 조건 ///////////////////////////////////////////////////////////////
// ETC /////////////////////////////////////////////////////////////////////
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}
public <T extends Excl02Query> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
} }

@ -1,7 +1,5 @@
package cokr.xit.fims.excl; package cokr.xit.fims.excl;
import java.lang.String;
import cokr.xit.foundation.AbstractEntity; import cokr.xit.foundation.AbstractEntity;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@ -20,7 +18,7 @@ import lombok.Setter;
@Setter @Setter
public class Excl02 extends AbstractEntity { public class Excl02 extends AbstractEntity {
public static String INF_TYPE = "110"; // 의견 진술 첨부파일 public static String INF_TYPE = "110"; // 의견 진술 첨부파일
/** /**
* IDs * IDs
@ -212,4 +210,9 @@ public class Excl02 extends AbstractEntity {
*/ */
private String delRsn; private String delRsn;
/**
*
*/
private String opnnSbmsnYn;
} }

@ -20,10 +20,12 @@ public class Excl02Query extends QueryRequest {
private String sggCd; // 시군구 코드 private String sggCd; // 시군구 코드
private String taskSeCd; // 업무 구분 코드 private String taskSeCd; // 업무 구분 코드
private String delYn; // 삭제 여부 private String delYn; // 삭제 여부
// ID // ID
private String[] opnnIDs; // 의견 제출 ID private String[] opnnIDs; // 의견 제출 ID
private String opnnId; // 의견 제출 ID private String opnnId; // 의견 제출 ID
private String crdnId; // 단속 ID private String crdnId; // 단속 ID
// 공통 조건 // 공통 조건
private String schDateOpt; // 검색 일자 구분 private String schDateOpt; // 검색 일자 구분
private String schDateFrom; // 검색 일자 시작 private String schDateFrom; // 검색 일자 시작
@ -37,6 +39,7 @@ public class Excl02Query extends QueryRequest {
private String schDetailUserOpt; // 상세 검색 사용자 구분 private String schDetailUserOpt; // 상세 검색 사용자 구분
private String schDetailUserNm; // 상세 검색 사용자 명 private String schDetailUserNm; // 상세 검색 사용자 명
private String schDetailUserCd; // 상세 검색 사용자 코드 private String schDetailUserCd; // 상세 검색 사용자 코드
// 검색 조건 // 검색 조건
private String schRcptYmdFrom; // 의견제출 접수 일자 시작 private String schRcptYmdFrom; // 의견제출 접수 일자 시작
private String schRcptYmdTo; // 의견제출 접수 일자 종료 private String schRcptYmdTo; // 의견제출 접수 일자 종료
@ -48,10 +51,14 @@ public class Excl02Query extends QueryRequest {
private String schRtpyrNm; // 납부자 명 - 납부자(TB_PAYER) private String schRtpyrNm; // 납부자 명 - 납부자(TB_PAYER)
private String schCrdnYmdFrom; // 단속 일자 시작 - 단속(TB_CRDN) private String schCrdnYmdFrom; // 단속 일자 시작 - 단속(TB_CRDN)
private String schCrdnYmdTo; // 단속 일자 종료 - 단속(TB_CRDN) private String schCrdnYmdTo; // 단속 일자 종료 - 단속(TB_CRDN)
// 동적 검색 조건 // 동적 검색 조건
private String mainOption; private String mainOption;
private String subOption; private String subOption;
// ETC
private String delRsn; // 삭제 사유
public String getSggCd() { public String getSggCd() {
return ifEmpty(sggCd, () -> null); return ifEmpty(sggCd, () -> null);
} }
@ -354,4 +361,16 @@ public class Excl02Query extends QueryRequest {
} }
// 동적 검색 조건 /////////////////////////////////////////////////////////////// // 동적 검색 조건 ///////////////////////////////////////////////////////////////
// ETC /////////////////////////////////////////////////////////////////////
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}
public <T extends Excl02Query> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
} }

@ -1,7 +1,5 @@
package cokr.xit.fims.excl; package cokr.xit.fims.excl;
import java.lang.String;
import cokr.xit.foundation.AbstractEntity; import cokr.xit.foundation.AbstractEntity;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;

@ -20,6 +20,7 @@ public class Excl03Query extends QueryRequest {
private String sggCd; // 시군구 코드 private String sggCd; // 시군구 코드
private String taskSeCd; // 업무 구분 코드 private String taskSeCd; // 업무 구분 코드
private String delYn; // 삭제 여부 private String delYn; // 삭제 여부
// ID // ID
private String[] reRegIDs; // 재등록 ID private String[] reRegIDs; // 재등록 ID
private String reRegId; // 재등록 ID private String reRegId; // 재등록 ID
@ -32,16 +33,21 @@ public class Excl03Query extends QueryRequest {
private String schDetailUserOpt; // 상세 검색 사용자 구분 private String schDetailUserOpt; // 상세 검색 사용자 구분
private String schDetailUserNm; // 상세 검색 사용자 명 private String schDetailUserNm; // 상세 검색 사용자 명
private String schDetailUserCd; // 상세 검색 사용자 코드 private String schDetailUserCd; // 상세 검색 사용자 코드
// 검색 조건 // 검색 조건
private String schReRegYmdFrom; // 재등록 일자 시작 private String schReRegYmdFrom; // 재등록 일자 시작
private String schReRegYmdTo; // 재등록 일자 종료 private String schReRegYmdTo; // 재등록 일자 종료
private String schVhrno; // 차량번호 - 단속(TB_CRDN) private String schVhrno; // 차량번호 - 단속(TB_CRDN)
private String schCrdnYmdFrom; // 단속 일자 시작 - 단속(TB_CRDN) private String schCrdnYmdFrom; // 단속 일자 시작 - 단속(TB_CRDN)
private String schCrdnYmdTo; // 단속 일자 종료 - 단속(TB_CRDN) private String schCrdnYmdTo; // 단속 일자 종료 - 단속(TB_CRDN)
// 동적 검색 조건 // 동적 검색 조건
private String mainOption; private String mainOption;
private String subOption; private String subOption;
// ETC
private String delRsn; // 삭제 사유
public String getSggCd() { public String getSggCd() {
return ifEmpty(sggCd, () -> null); return ifEmpty(sggCd, () -> null);
} }
@ -234,4 +240,16 @@ public class Excl03Query extends QueryRequest {
} }
// 동적 검색 조건 /////////////////////////////////////////////////////////////// // 동적 검색 조건 ///////////////////////////////////////////////////////////////
// ETC /////////////////////////////////////////////////////////////////////
public String getDelRsn() {
return ifEmpty(delRsn, () -> null);
}
public <T extends Excl03Query> T setDelRsn(String delRsn) {
this.delRsn = delRsn;
return self();
}
// ETC /////////////////////////////////////////////////////////////////////
} }

@ -117,4 +117,24 @@ public interface Excl02Mapper extends AbstractMapper {
return excl02 != null && deleteOpnnSbmsn(params().set("excl02", excl02)) == 1; return excl02 != null && deleteOpnnSbmsn(params().set("excl02", excl02)) == 1;
} }
/** .
* @param params
* <ul><li>"opnnSbmsn" - </li>
* <li>"currentUser" - </li>
* </ul>
* @return
*/
int updateOpnnSbmsnYn(Map<String, Object> params);
/** .
* @param opnnSbmsn
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
default boolean updateCrdn(Excl02 excl02) {
return excl02 != null && updateOpnnSbmsnYn(params().set("excl02", excl02)) == 1;
}
} }

@ -66,4 +66,13 @@ public interface Excl02Service {
*/ */
boolean remove(Excl02 excl02); boolean remove(Excl02 excl02);
/** .
* @param excl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
boolean removeList(Excl02Query req);
} }

@ -326,7 +326,7 @@ public class Excl01ServiceBean extends AbstractServiceBean implements Excl01Serv
// 변수 선언 // 변수 선언
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
int dataCount = 0; // 선택한 자료 건수 int dataCount = 0; // 선택한 자료 건수
Excl01 infoLevyExcl = new Excl01(); // 부과제외(TB_LEVY_EXCL) 조회 Excl01 infoLevyExcl = new Excl01(); // 부과제외(TB_LEVY_EXCL)
// 변수 셋팅 // 변수 셋팅
dataCount = excl01.getLevyExclIDs().length; // ID 건수 dataCount = excl01.getLevyExclIDs().length; // ID 건수

@ -66,7 +66,7 @@ public class Excl02Bean extends AbstractComponent {
} }
/** . /** .
* @param excl * @param excl02
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
* <li> false</li> * <li> false</li>
@ -77,7 +77,7 @@ public class Excl02Bean extends AbstractComponent {
} }
/** . /** .
* @param excl * @param excl02
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
* <li> false</li> * <li> false</li>
@ -88,7 +88,7 @@ public class Excl02Bean extends AbstractComponent {
} }
/** . /** .
* @param excl * @param excl02
* @return * @return
* <ul><li> true</li> * <ul><li> true</li>
* <li> false</li> * <li> false</li>
@ -106,4 +106,15 @@ public class Excl02Bean extends AbstractComponent {
return excl02Mapper.selectCrdnInfo(crdnId); return excl02Mapper.selectCrdnInfo(crdnId);
} }
/** (OPNN_SBMSN_YN) .
* @param excl02
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public boolean updateCrdn(Excl02 excl02) {
return excl02Mapper.updateCrdn(excl02);
}
} }

@ -13,7 +13,7 @@ import cokr.xit.base.file.FileInfo;
import cokr.xit.base.file.service.bean.FileBean; import cokr.xit.base.file.service.bean.FileBean;
import cokr.xit.base.file.web.FileInfoFactory; import cokr.xit.base.file.web.FileInfoFactory;
import cokr.xit.fims.cmmn.CrdnSttsHstry; import cokr.xit.fims.cmmn.CrdnSttsHstry;
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean; import cokr.xit.fims.cmmn.service.CrdnSttsHstryService;
import cokr.xit.fims.excl.Excl02; import cokr.xit.fims.excl.Excl02;
import cokr.xit.fims.excl.Excl02Query; import cokr.xit.fims.excl.Excl02Query;
import cokr.xit.fims.excl.service.Excl02Service; import cokr.xit.fims.excl.service.Excl02Service;
@ -41,9 +41,9 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
@Resource(name="fileBean") @Resource(name="fileBean")
private FileBean fileBean; private FileBean fileBean;
/** 단속 상태 이력 정보 관리 Bean */ /**단속 상태 이력 서비스*/
@Resource(name = "crdnSttsHstryBean") @Resource(name = "crdnSttsHstryService")
protected CrdnSttsHstryBean crdnSttsHstryBean; private CrdnSttsHstryService crdnSttsHstryService;
@Override @Override
public List<DataObject> getOpinionSubmissionList(Excl02Query req) { public List<DataObject> getOpinionSubmissionList(Excl02Query req) {
@ -75,15 +75,14 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
// 변수 선언 // 변수 선언
Map<String, String> retMap = new HashMap<String, String>(); // 결과 return Map<String, String> retMap = new HashMap<String, String>(); // 결과 return
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
String newCrdnSttsCd = ""; // 신규 단속 상태 코드
// 단속 ID로 단속, 의견제출 정보 조회 // 단속 ID로 단속, 의견제출 정보 조회
DataObject infoCrdnOpnnSbmsn = excl02Bean.getCrdnOpinionSubmission(excl02.getCrdnId()); DataObject infoCrdnOpnnSbmsn = excl02Bean.getCrdnOpinionSubmission(excl02.getCrdnId());
// 부과제외 ID가 있다면 이미 의견제출 자료가 존재하므로 종료.. // 의견제출ID가 있다면 이미 자료가 존재하므로 종료..
if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) { if (!infoCrdnOpnnSbmsn.string("OPNN_ID").equals("")) {
retMap.put("retSaved", "false"); retMap.put("retSaved", "false");
retMap.put("retMessage", "의견제출 정보가 이미 존재합니다."); retMap.put("retMessage", "의견제출대장에 정보가 이미 존재합니다.");
return retMap; return retMap;
} }
@ -95,12 +94,11 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
excl02.setAtchFileCnt(0); excl02.setAtchFileCnt(0);
} }
// 의견제출 등록 // 의견제출 대장을 등록 한다.
retSuccess = excl02Bean.create(excl02); retSuccess = excl02Bean.create(excl02);
if (!retSuccess) { // 등록 되지 않았다면.. if (!retSuccess) {
retMap.put("retSaved", "false"); retMap.put("retSaved", "false");
retMap.put("retMessage", "의견제출 대장 등록에 실패하였습니다."); retMap.put("retMessage", "의견제출대장 등록에 실패하였습니다.");
// 예외를 발생시켜서 오류메세지를 보내고 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 롤백..
throw new RuntimeException(retMap.get("retMessage")); throw new RuntimeException(retMap.get("retMessage"));
@ -115,38 +113,36 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
fileBean.create(fileInfoList); fileBean.create(fileInfoList);
} }
// 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견진술중으로 수정 // 단속 상태 코드가 사전통보중 이전일때만 단속의 상태를 의견진술중으로 수정 한다.
if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { if (Integer.parseInt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")) <= 42) { // 사전통보 완료
newCrdnSttsCd = "31"; // 신규 단속상태 코드 = 의견진술접수 // 단속상태이력(TB_CRDN_STTS_HSTRY)
// 단속상태이력(TB_CRDN_STTS_HSTRY) 대장 등록
CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry(); CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID")); crdnSttsHstry.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID"));
crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD")); crdnSttsHstry.setBfrSttsCd(infoCrdnOpnnSbmsn.string("CRDN_STTS_CD"));
crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT")); crdnSttsHstry.setBfrSttsChgDt(infoCrdnOpnnSbmsn.string("CRDN_STTS_CHG_DT"));
crdnSttsHstry.setCrdnSttsCd(newCrdnSttsCd); crdnSttsHstry.setCrdnSttsCd("31"); // 의견진술 접수
crdnSttsHstry.setTaskDtlId(excl02.getOpnnId()); crdnSttsHstry.setTaskDtlId(excl02.getOpnnId());
crdnSttsHstry.setEtcCn("의견제출 등록"); crdnSttsHstry.setEtcCn("의견제출대장 등록");
retSuccess = crdnSttsHstryBean.create(crdnSttsHstry); // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록 한다.
retSuccess = crdnSttsHstryService.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
if (!retSuccess) { if (!retSuccess) {
retMap.put("retSaved", "false");
retMap.put("retMessage", "단속상태이력 대장 등록에 실패하였습니다.");
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException(retMap.get("retMessage")); throw new RuntimeException("의견제출대장 등록 중 단속상태이력 등록에 실패하였습니다.");
} }
}
// 단속(TB_CRDN) 대장 상태 코드 수정 // 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다.
retSuccess = crdnSttsHstryBean.updateCrdn(crdnSttsHstry); Excl02 updtCrdn = new Excl02();
if (!retSuccess) {
retMap.put("retSaved", "false");
retMap.put("retMessage", "단속 대장에 단속상태 수정에 실패하였습니다.");
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. updtCrdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID"));
throw new RuntimeException(retMap.get("retMessage")); updtCrdn.setOpnnSbmsnYn("Y");
}
retSuccess = excl02Bean.updateCrdn(updtCrdn); // 단속 대장 수정
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("의견제출대장 등록 중 의견제출여부 변경에 실패하였습니다.");
} }
// 처리 성공 // 처리 성공
@ -162,16 +158,19 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
Map<String, String> retMap = new HashMap<String, String>(); // 결과 return Map<String, String> retMap = new HashMap<String, String>(); // 결과 return
boolean retSuccess = false; // DB 처리 결과 boolean retSuccess = false; // DB 처리 결과
// 의견제출 수정 // 의견제출 대장을 수정 한다.
retSuccess = excl02Bean.update(excl02); retSuccess = excl02Bean.update(excl02);
if (!retSuccess) { if (!retSuccess) {
retMap.put("retSaved", "false"); retMap.put("retSaved", "false");
retMap.put("retMessage", "의견제출 대장 수정에 실패하였습니다."); retMap.put("retMessage", "의견제출대장 수정에 실패하였습니다.");
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백.. // 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException(retMap.get("retMessage")); throw new RuntimeException(retMap.get("retMessage"));
} }
// 첨부 파일 수정..
// 처리 성공 // 처리 성공
retMap.put("retSaved", "true"); retMap.put("retSaved", "true");
retMap.put("retMessage", "저장 되었습니다."); retMap.put("retMessage", "저장 되었습니다.");
@ -181,7 +180,86 @@ public class Excl02ServiceBean extends AbstractServiceBean implements Excl02Serv
@Override @Override
public boolean remove(Excl02 excl02) { public boolean remove(Excl02 excl02) {
return excl02Bean.remove(excl02); // 변수 선언
boolean retSuccess = false; // DB 처리 결과
DataObject infoCrdnOpnnSbmsn = new DataObject(); // 단속(TB_CRDN) 조회
// 의견제출(TB_OPNN_SBMSN) + 단속(TB_CRDN) 자료 조회
infoCrdnOpnnSbmsn = excl02Bean.getInfo(new Excl02Query().setOpnnId(excl02.getOpnnId()));
/*
* ......
// 의견제출 상태가 수용이고, 단속 상태도 의견진술 수용이면 이전 상태로 복원 한다.
if (infoCrdnOpnnSbmsn.string("OPNN_SBMSN_STTS_CD").equals("02") && infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryService.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID"));
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("의견제출 대장 삭제 중 단속상태 변경에 실패하였습니다.");
}
}
*/
// 단속 상태 코드가 의견진술 접수(31) 또는 의견진술 수용(82) 이라면... 이전 단속 상태 코드로 복원 한다.
if (infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("31") || infoCrdnOpnnSbmsn.string("CRDN_STTS_CD").equals("82")) {
// 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장을 삭제 한다.
retSuccess = crdnSttsHstryService.removeHstryUpdateCrdnSttsCd(infoCrdnOpnnSbmsn.string("CRDN_ID"));
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("의견제출 대장 삭제 중 단속상태 변경에 실패하였습니다.");
}
}
// 의견제출(TB_OPNN_SBMSN) 대장을 삭제 한다.
retSuccess = excl02Bean.remove(excl02);
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("의견제출 대장 삭제 중 의견제출대장 삭제에 실패하였습니다.");
}
// 단속 대장(TB_CRDN) 의견제출여부(OPNN_SBMSN_YN) 정보를 수정 한다.
Excl02 updtCrdn = new Excl02();
updtCrdn.setCrdnId(infoCrdnOpnnSbmsn.string("CRDN_ID"));
updtCrdn.setOpnnSbmsnYn("N");
retSuccess = excl02Bean.updateCrdn(updtCrdn); // 단속 대장 수정
if (!retSuccess) {
// 예외를 발생시켜서 오류메세지를 보내고 Database 롤백..
throw new RuntimeException("의견제출 대장 삭제 중 의견제출여부 변경에 실패하였습니다.");
}
retSuccess = true;
return retSuccess;
}
@Override
public boolean removeList(Excl02Query req) {
// 변수 선언
boolean retSuccess = false; // DB 처리 결과
// 부과제외ID 건수를 확인하여 1건이하면.. 종료
if (req.getOpnnIDs().length < 1 ) {
return retSuccess;
}
// 부과제외ID 만큼 반복..
for (int iLoop = 0; iLoop < req.getOpnnIDs().length; iLoop++) {
Excl02 infoOpnnSbmsn = new Excl02();
infoOpnnSbmsn.setOpnnId(req.getOpnnIDs()[iLoop]); // 의견제출 ID
infoOpnnSbmsn.setDelRsn(req.getDelRsn()); // 삭제 사유
retSuccess = remove(infoOpnnSbmsn);
if (!retSuccess) {
return retSuccess;
}
}
// 처리 성공
retSuccess = true;
return retSuccess;
} }
} }

@ -132,7 +132,7 @@ public class Excl01Controller extends ApplicationController {
} }
/** ID . /** ID .
* @param levyExclIDs * @param levyExclID
* @return jsonView * @return jsonView
* <pre><code> { * <pre><code> {
* "affected": * "affected":

@ -133,7 +133,7 @@ public class Excl02Controller extends ApplicationController {
} }
/** . /** .
* @param opnnSbmsnIDs * @param opnnSbmsnID
* @return jsonView * @return jsonView
* <pre><code> { * <pre><code> {
* "affected": * "affected":
@ -148,4 +148,20 @@ public class Excl02Controller extends ApplicationController {
.addObject("saved", saved); .addObject("saved", saved);
} }
/** .
* @param opnnSbmsnIDs
* @return jsonView
* <pre><code> {
* "affected":
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name="의견제출 대장 제거", value="/010/removes.do")
public ModelAndView removeList(Excl02Query req) {
boolean saved = excl02Service.removeList(req);
return new ModelAndView("jsonView")
.addObject("saved", saved);
}
} }

@ -435,9 +435,17 @@
UPDATE TB_OPNN_SBMSN UPDATE TB_OPNN_SBMSN
SET DEL_YN = 'Y' SET DEL_YN = 'Y'
, DEL_DT = #{excl02.lastModified} /* 삭제 일시 */ , DEL_DT = #{excl02.lastModified} /* 삭제 일시 */
, DLTR = #{excl01.modifiedBy} /* 삭제자 */ , DLTR = #{excl02.modifiedBy} /* 삭제자 */
, DEL_RSN = #{excl02.delRsn} /* 삭제 사유 */ , DEL_RSN = #{excl02.delRsn} /* 삭제 사유 */
WHERE OPNN_ID = #{excl02.opnnId} /* 의견 ID */ WHERE OPNN_ID = #{excl02.opnnId} /* 의견 ID */
</update> </update>
<update id="updateOpnnSbmsnYn" parameterType="map">/* 의견제출 대장 삭제(excl02Mapper.updateOpnnSbmsnYn) */
UPDATE TB_CRDN
SET OPNN_SBMSN_YN = #{excl02.opnnSbmsnYn} /* 의견 제출 여부 */
, MDFCN_DT = #{excl02.lastModified} /* 수정 일시 */
, MDFR = #{excl02.modifiedBy} /* 수정자 */
WHERE CRDN_ID = #{excl02.crdnId} /* 단속 ID */
</update>
</mapper> </mapper>

@ -289,7 +289,7 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "opnnSbmsn" prefix : "opnn"
, prefixName : "의견제출" , prefixName : "의견제출"
, infoSize : "xl" , infoSize : "xl"
, keymapper : info => info ? info.OPNN_ID : "" , keymapper : info => info ? info.OPNN_ID : ""
@ -300,7 +300,7 @@
, getInfo : wctx.url(prefixUrl + "/020/info.do") // 등록 및 수정 팝업 , getInfo : wctx.url(prefixUrl + "/020/info.do") // 등록 및 수정 팝업
, create : wctx.url(prefixUrl + "/020/create.do") // 신규 등록 , create : wctx.url(prefixUrl + "/020/create.do") // 신규 등록
, update : wctx.url(prefixUrl + "/020/update.do") // 자료 수정 , update : wctx.url(prefixUrl + "/020/update.do") // 자료 수정
, remove : wctx.url(prefixUrl + "/010/remove.do") // 자료 삭제 , remove : wctx.url(prefixUrl + "/010/removes.do") // 선택(체크) 자료 삭제
} }
, formats : { , formats : {
RCPT_YMD : dateFormat RCPT_YMD : dateFormat

@ -135,7 +135,7 @@
<!-- 첨부 파일 등록 --> <!-- 첨부 파일 등록 -->
<div class="card"> <div class="card">
<form id="frmFile--${pageName}" class="dpv eca" method="post" enctype="multipart/form-data"> <form id="frmFile--${pageName}" class="dpv eca" method="post" enctype="multipart/form-data">
<input type="file" id="uploadFileList--${pageName}" name="uploadFileList" multiple='multiple' hidden /> <input type="file" id="uploadFileList--${pageName}" name="uploadFileList" multiple="multiple" hidden />
</form> </form>
<div class="col-md-12"> <div class="col-md-12">
<button class="btn btn-blue" id="btnAddFile--${pageName}" title="첨부파일추가">파일 추가</button> <button class="btn btn-blue" id="btnAddFile--${pageName}" title="첨부파일추가">파일 추가</button>
@ -172,7 +172,7 @@
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ var ${pageName}Control = new DatasetControl({
prefix : "opnnSbmsn" prefix : "opnn"
, prefixName : "의견제출" , prefixName : "의견제출"
, keymapper : info => info ? info.OPNN_ID : "" , keymapper : info => info ? info.OPNN_ID : ""
, dataGetter : obj => obj.opnnSbmsnInfo , dataGetter : obj => obj.opnnSbmsnInfo

Loading…
Cancel
Save