면제차량 중복 체크 오류 수정

main
이범준 6 months ago
parent 913bf71330
commit 4b826cf135

File diff suppressed because it is too large Load Diff

@ -55,9 +55,8 @@ public interface StandardCodeInfoDao {
public List<StandardCodeInfoVO> findStandardExemptCarList(StandardCodeInfoVO standardCodeInfoVO);
public Map<String, String> findStandardExemptCarDetail(StandardCodeInfoVO standardCodeInfoVO);
public Map<String, String> findStandardExemptCarTypeId(StandardCodeInfoVO standardCodeInfoVO);
public Map<String, String> findStandardExemptCarDupCheck(StandardCodeInfoVO standardCodeInfoVO);
public int findStandardExemptCarDupCheck(StandardCodeInfoVO standardCodeInfoVO);
public void insertStandardExemptCarInfo(StandardCodeInfoVO standardCodeInfoVO);
public void insertStandardExemptCarHist(StandardCodeInfoVO standardCodeInfoVO);
public void updateStandardExemptCarInfo(StandardCodeInfoVO standardCodeInfoVO);

@ -1607,70 +1607,34 @@
<!-- [SD007M01] 면제차량 1건 조회 -->
<select id="findStandardExemptCarDetail" parameterType="cfs.standard.vo.StandardCodeInfoVO" resultMap="findStandardExemptCarDetail_resultMap">
SELECT A.DOCUMENT_NO AS DOCUMENT_NO
SELECT A.DOCUMENT_NO AS DOCUMENT_NO
, to_char(A.DOCUMENT_DATE,'yyyyMMdd') AS DOCUMENT_DATE
, to_char(A.ENFORCE_DATE,'yyyyMMdd') AS ENFORCE_DATE
, to_char(A.END_DATE,'yyyyMMdd') AS END_DATE
, A.CAR_NO AS CAR_NO
, A.REPLACE_CAR_NO AS REPLACE_CAR_NO
, A.REPLACE_KBN AS REPLACE_KBN
, A.OWNER AS OWNER
, A.CARS_TYPE_ID AS CARS_TYPE_ID
, A.CAR_TYPE_NAME AS CAR_TYPE_NAME
, A.EXEMPT_KBN AS EXEMPT_KBN
, A.END_KBN AS END_KBN
, A.COMPANY_KBN AS COMPANY_KBN
, A.USE_REMARK AS USE_REMARK
, A.POSITION_BODY AS POSITION_BODY
, A.REMARKS AS REMARKS
, AUTOADD_END
, to_char(A.ENFORCE_DATE,'yyyyMMdd') AS ENFORCE_DATE
, to_char(A.END_DATE,'yyyyMMdd') AS END_DATE
, A.CAR_NO AS CAR_NO
, A.REPLACE_CAR_NO AS REPLACE_CAR_NO
, A.REPLACE_KBN AS REPLACE_KBN
, A.OWNER AS OWNER
, A.CARS_TYPE_ID AS CARS_TYPE_ID
, A.CAR_TYPE_NAME AS CAR_TYPE_NAME
, A.EXEMPT_KBN AS EXEMPT_KBN
, A.END_KBN AS END_KBN
, A.COMPANY_KBN AS COMPANY_KBN
, A.USE_REMARK AS USE_REMARK
, A.POSITION_BODY AS POSITION_BODY
, A.REMARKS AS REMARKS
, A.AUTOADD_END AS AUTOADD_END
FROM EXEMPT_CARS_INFO A
WHERE A.CAR_NO = #{carNo}
<if test='documentNo != "" and documentNo != null'>
AND A.DOCUMENT_NO LIKE '%' || #{documentNo} || '%'
</if>
AND A.DOCUMENT_NO = #{documentNo}
</select>
<!-- [SD007M01] - 면제차량번호의 차종코드 조회 -->
<select id="findStandardExemptCarTypeId" parameterType="cfs.standard.vo.StandardCodeInfoVO" resultMap="findStandardExemptCarDetail_resultMap">
SELECT NVL(MAX(A.CARS_TYPE_ID),'5') AS CARS_TYPE_ID
FROM CARS_TYPE_CODE_INFO A
WHERE 1=1
<if test="length == '12'">
AND A.STT_FNO <![CDATA[<= ]]> substr(#{carNo},5,2)
AND A.END_FNO <![CDATA[>= ]]> substr(#{carNo},5,2)
</if>
<if test="length == '11'">
AND A.STT_SNO <![CDATA[<= ]]> substr(#{carNo},5,1)
AND A.END_SNO <![CDATA[>= ]]> substr(#{carNo},5,1)
</if>
<if test="length != '11' and length != '12'">
AND A.CARS_TYPE_ID = '5'
</if>
</select>
<!-- [SD007M01] - 면제차량 중복 자료 조회 -->
<select id="findStandardExemptCarDupCheck" parameterType="cfs.standard.vo.StandardCodeInfoVO" resultMap="findStandardExemptCarDetail_resultMap">
SELECT count(*) AS resultCnt
, TO_CHAR(max(A.ENFORCE_DATE),'YYYYMMDD') AS ENFORCE_DATE
, TO_CHAR(TO_DATE(#{enforceDate},'YYYY-MM-DD')-1,'YYYYMMDD') AS END_DATE
<!-- [SD007M01] - 면제차량 중복 체크 -->
<select id="findStandardExemptCarDupCheck" parameterType="cfs.standard.vo.StandardCodeInfoVO" resultType="Integer">
SELECT COUNT(*) AS resultCnt
FROM EXEMPT_CARS_INFO A
WHERE A.CAR_NO = #{carNo}
<if test="kbn == 'insert'">
AND A.ENFORCE_DATE = TO_DATE(REPLACE(#{enforceDate},'-',''),'YYYYMMDD')
</if>
<if test="kbn == 'update'">
AND TO_CHAR(A.ENFORCE_DATE,'YYYYMMDD') = #{enforceDate}
</if>
<if test="kbn == 'duplicate'">
AND A.ENFORCE_DATE = TO_DATE(REPLACE(#{enforceDate},'-',''),'YYYYMMDD')
AND A.END_DATE = TO_DATE(REPLACE(#{endDate}, '-',''),'YYYYMMDD')
</if>
<if test="kbn == 'dup'">
AND A.ENFORCE_DATE <![CDATA[ <= ]]> TO_DATE(REPLACE(#{enforceDate},'-',''),'YYYYMMDD')
AND A.END_DATE <![CDATA[ >= ]]> TO_DATE(REPLACE(#{enforceDate},'-',''),'YYYYMMDD')
</if>
AND A.DOCUMENT_NO = #{documentNo}
</select>
@ -1727,7 +1691,7 @@
<update id="updateStandardExemptCarInfo" parameterType="cfs.standard.vo.StandardCodeInfoVO">
UPDATE EXEMPT_CARS_INFO
SET CARS_TYPE_ID = #{carTypeId}
, DOCUMENT_NO = #{documentNo}
, ENFORCE_DATE = TO_DATE(#{enforceDate},'YYYYMMDD')
, POSITION_BODY = #{positionBody}
, CAR_TYPE_NAME = #{carTypeName}
, OWNER = #{owner}
@ -1744,8 +1708,8 @@
, AUTOADD_END = #{autoaddEnd}
, UPDATE_DATE = SYSDATE
, UPDATER = #{sessionUserNm}
WHERE ENFORCE_DATE = TO_DATE(#{enforceDate},'YYYYMMDD')
AND CAR_NO = #{carNo}
WHERE CAR_NO = #{carNo}
AND DOCUMENT_NO = #{documentNo}
</update>
<!-- [SD007M01] 이력 저장 -->
@ -1874,7 +1838,7 @@
INSERT
INTO DBUSER_CFS.EXEMPT_CARS_INFO (
ENFORCE_DATE, END_DATE, END_KBN
, CAR_NO, CAR_NO_HEX,
, CAR_NO, CAR_NO_HEX
, EXEMPT_KBN
, CAR_TYPE_NAME
, DOCUMENT_NO, DOCUMENT_DATE
@ -1887,7 +1851,7 @@
)
VALUES (
TO_DATE(#{inStDate},'YYYYMMDD'), TO_DATE(#{endDate},'YYYYMMDD'), #{endKbn}
, #{carNum}, fun_car_code(#{carNum})
, #{carNum}, FUN_CAR_CODE(#{carNum})
, #{exemptKbn}
, #{carKind}
, #{documentNo}, TO_DATE(#{documentDate},'YYYYMMDD')
@ -1899,7 +1863,8 @@
, sysdate, 'test', sysdate, 'test'
)
</insert>
<!-- 면제차량 정보 엑셀업로드 처리 내역 등록[SD007M01] -->
<insert id="insertExcelExemptCarsError" parameterType="cfs.standard.vo.StandardCodeInfoVO">
INSERT
INTO DBUSER_CFS.EXEMPT_EXCEL_ERROR (
@ -1936,7 +1901,7 @@
)
</insert>
<!-- 면제 엑셀 업로드 오류 내역 삭제 -->
<!-- 면제 엑셀 업로드 처리 내역 삭제 -->
<delete id="deleteExcelExemptCarsError" parameterType="cfs.standard.vo.StandardCodeInfoVO">
DELETE FROM EXEMPT_EXCEL_ERROR
</delete>

@ -54,7 +54,6 @@ public interface StandardCodeInfoService {
public List<StandardCodeInfoVO> findStandardExemptCarList(StandardCodeInfoVO standardCodeInfoVO) throws Exception;
public Map<String, String> findStandardExemptCarDetail(StandardCodeInfoVO standardCodeInfoVO) throws Exception;
public Map<String, String> findStandardExemptCarTypeId(StandardCodeInfoVO standardCodeInfoVO) throws Exception;
public Map<String, String> saveStandardExemptCarInfo(StandardCodeInfoVO standardCodeInfoVO) throws Exception;
public void deleteExemptList(StandardCodeInfoVO standardCodeInfoVO) throws Exception;

@ -177,7 +177,7 @@ public class StandardCodeInfoServiceImpl implements StandardCodeInfoService{
@Override
public List<StandardCodeInfoVO> findStandardExemptCarList(StandardCodeInfoVO standardCodeInfoVO) throws Exception {
List<StandardCodeInfoVO> result =StandardCodeInfoDao.findStandardExemptCarList(standardCodeInfoVO);
List<StandardCodeInfoVO> result = StandardCodeInfoDao.findStandardExemptCarList(standardCodeInfoVO);
return result;
}
@ -186,7 +186,7 @@ public class StandardCodeInfoServiceImpl implements StandardCodeInfoService{
public Map<String, String> findStandardExemptCarDetail(StandardCodeInfoVO standardCodeInfoVO) throws Exception {
Map<String, String> result = null;
try{
result =StandardCodeInfoDao.findStandardExemptCarDetail(standardCodeInfoVO);
result = StandardCodeInfoDao.findStandardExemptCarDetail(standardCodeInfoVO);
}catch (Exception e) {
e.printStackTrace();
}
@ -194,37 +194,39 @@ public class StandardCodeInfoServiceImpl implements StandardCodeInfoService{
return result;
}
@Override
public Map<String, String> findStandardExemptCarTypeId(StandardCodeInfoVO standardCodeInfoVO) throws Exception {
Map<String, String> result =StandardCodeInfoDao.findStandardExemptCarTypeId(standardCodeInfoVO);
return result;
}
@Override
public Map<String, String> saveStandardExemptCarInfo(StandardCodeInfoVO standardCodeInfoVO) throws Exception {
Map<String, String> result = null;
Map<String, String> saveResult = new HashMap<String, String>();
standardCodeInfoVO.setCarNo(standardCodeInfoVO.getCarNo().replace(" ", ""));
String carCode = CarNo2Code.runCarNo2Code(standardCodeInfoVO.getCarNo());
if(carCode.equals("0000000000")){
saveResult.put("error", "carCode");
return saveResult;
}
//신규인 경우 기존 자료가 있는지 체크
if (standardCodeInfoVO.getKbn().equals("insert")){
result = StandardCodeInfoDao.findStandardExemptCarDupCheck(standardCodeInfoVO);
if (String.valueOf(result.get("resultCnt")).equals("0")) {
int dupCnt = StandardCodeInfoDao.findStandardExemptCarDupCheck(standardCodeInfoVO);
if(dupCnt == 0) {
StandardCodeInfoDao.insertStandardExemptCarInfo(standardCodeInfoVO);
} else {
saveResult.put("error", "insertDup");
}
}else{
result = StandardCodeInfoDao.findStandardExemptCarDupCheck(standardCodeInfoVO);
if (Integer.parseInt(String.valueOf(result.get("resultCnt"))) == 1) {
StandardCodeInfoDao.insertStandardExemptCarHist(standardCodeInfoVO);
StandardCodeInfoDao.updateStandardExemptCarInfo(standardCodeInfoVO); //SP_TBE000E_UPDATE
}
StandardCodeInfoDao.insertStandardExemptCarHist(standardCodeInfoVO);
StandardCodeInfoDao.updateStandardExemptCarInfo(standardCodeInfoVO); //SP_TBE000E_UPDATE
}
return result;
return saveResult;
}
@Override
@ -336,32 +338,41 @@ public class StandardCodeInfoServiceImpl implements StandardCodeInfoService{
StandardCodeInfoDao.deleteExcelExemptCarsError();
try {
for(StandardCodeInfoVO param : standardCodeInfoVO){
int cnt = StandardCodeInfoDao.countExemptCarNoAndDocumentNo(param);
if(cnt == 0){ //등록되어있지않으면 insert해준다
try {
int cnt = StandardCodeInfoDao.countExemptCarNoAndDocumentNo(param);
if(cnt != 0){
param.setErrorReson("동일차량번호 존재 중복오류");
param.setResultKbn("0");
result = StandardCodeInfoDao.insertExcelExemptCarsError(param);
continue;
}
String carCode = CarNo2Code.runCarNo2Code(param.getCarNum());
if(carCode.equals("0000000000")){
param.setErrorReson("차량번호 형식 오류");
param.setResultKbn("0");
result = StandardCodeInfoDao.insertExcelExemptCarsError(param);
continue;
}
if(param.getEndKbn().equals("0")){
param.setEndDate("99991231");
}else{
param.setEndDate("20210101");
}
//인서트
result =StandardCodeInfoDao.insertExcelExemptCars(param);
result = StandardCodeInfoDao.insertExcelExemptCars(param);
param.setErrorReson("");
param.setResultKbn("1");
result =StandardCodeInfoDao.insertExcelExemptCarsError(param);
result = StandardCodeInfoDao.insertExcelExemptCarsError(param);
}else{ //이미 등록되어 있으면 등록된 excel을 반환한다
param.setErrorReson("동일차량번호 존재 중복오류");
param.setResultKbn("0");
result =StandardCodeInfoDao.insertExcelExemptCarsError(param);
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return result;
}

@ -571,33 +571,6 @@ public class StandardCodeInfoController {
return result.getResult();
}
/**
*
*
* @author cfs02
* @task [SD007M01]
* @param param
* @return
*
*/
@RequestMapping(value="/cfs/standard/findStandardExemptCarTypeId.do", method=RequestMethod.POST)
public @ResponseBody Map<String, Object> findStandardExemptCarTypeId(@RequestBody ParamBean<StandardCodeInfoVO> param, HttpServletRequest request) {
StandardCodeInfoVO standardCodeInfoVO = param.getParam();
Result result = new Result();
Map <String,String> statMap = null;
try {
statMap = StandardCodeInfoService.findStandardExemptCarTypeId(standardCodeInfoVO);
result.setData("result", statMap);
result.setMsg(Result.STATUS_SUCESS, "정상적으로 조회가 완료되었습니다.");
}catch(RuntimeException e) {
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
} catch (Exception e) {
result.setErrorMsg(Result.STATUS_ERROR, Result.STATUS_ERROR_MESSAGE);
}
return result.getResult();
}
/**
*

Loading…
Cancel
Save