사전등록결제회원정보 변동분 조회 쿼리 수정

main
이범준 7 months ago
parent 99ff4c8c6f
commit 42611f3d02

@ -211,160 +211,6 @@ public class CfsServerCron {
}
@Transactional
public void prpChgScheduleRun_webservice() {
try {
long start = System.currentTimeMillis(); // 작동 시간 측정용
SimpleDateFormat sdf14 = (new SimpleDateFormat("yyyyMMddHHmmss"));
Date now = new Date();
String reqDate = sdf14.format(now);
String endDt = sdf14.format(now);
logger.info("=== 현재시간 : " + endDt);
Calendar cal = Calendar.getInstance();
cal.setTime(now);
cal.add(Calendar.MINUTE, -6);
String startDt = sdf14.format(cal.getTime());
logger.info("=== 사전등록결제 변동분 startDt : " + startDt);
logger.info("=== 사전등록결제 변동분 endDt : " + endDt);
//---------------
//---------------
Map<String, String> mapOrg = new HashMap<String, String>();
mapOrg.put("insttNo", "BRSMC0300001");
mapOrg.put("insttCntcJobSe", "016");
mapOrg.put("requstDt", startDt);
mapOrg.put("startDt", startDt);
mapOrg.put("endDt", endDt);
mapOrg.put("indexStart", "0");
mapOrg.put("indexEnd", "1000");
logger.info("=== 사전등록결제 변동분 mapOrg : " + mapOrg.toString());
List<Map<String, Object>> obj = commCollectServerService.selectMstFlag(new HashMap<String, Object>());
if(obj == null || obj.size() == 0) {
return ;
}
logger.info("==== 사전등록결제정보 변동분 조회 신규 - 2");
logger.info("==== PRP_FLAG : " + obj.get(0).get("PRP_FLAG").toString());
logger.info("==== PRP_SENDTIME : " + obj.get(0).get("PRP_SENDTIME").toString());
logger.info("==== end_dt.substring(0, 8) : " + endDt.substring(0, 8));
if(!(
obj.get(0).get("PRP_FLAG").toString().equals("2") == true
&& obj.get(0).get("PRP_SENDTIME").toString().equals(endDt.substring(0, 8)) == true
)
) {
//마스터 작업중이므로 변동분 미처리
return ;
}
//마스터 작업중아니므로 변동분 처리
if(Long.parseLong(obj.get(0).get("PRP_CHG_TIME").toString()) < Long.parseLong(startDt)) {
//startDt를 바꿈
mapOrg.put("startDt", obj.get(0).get("PRP_CHG_TIME").toString());
} else {
//startDt를 안바꿈
}
// 사전등록결제 웹서비스 호출
String url = cfsCommonService.findCommonSecureGet("ITF_CFS_O_037");
CallWebService callWebService = new CallWebService(url);
Map<String, String> apiResultMap = callWebService.callWebServicePost(mapOrg);
if(apiResultMap == null || apiResultMap.get("result").toString().equals("FAIL") == true) {
return ;
}
JSONParser parser = new JSONParser();
JSONObject jsonParam = (JSONObject)parser.parse(apiResultMap.get("data").toString());
System.out.println("=== " + jsonParam.toJSONString());
List<Map<String, Object>> brsDataArray = (List<Map<String, Object>>)jsonParam.get("dataArray");
if(brsDataArray == null || brsDataArray.size() == 0){
Map<String, Object> mapOrgTemp = new HashMap<String, Object>();
mapOrgTemp.put("PRP_UPDATE_YN", "Y");
commCollectServerService.updateMstFlag(mapOrgTemp);
return ;
}
String strExmptCode = "";
// 사전등록정보 갱신
for(int i=0; i< brsDataArray.size(); i++){
brsDataArray.get(i).put("CAR_NO", brsDataArray.get(i).get("vhcleNo").toString());
brsDataArray.get(i).put("CAR_OWNER_CI", brsDataArray.get(i).get("vhcleOwnerCi").toString());
brsDataArray.get(i).put("REQ_DATE", reqDate);
brsDataArray.get(i).put("VHCLE_STTUS_TY", brsDataArray.get(i).get("vhcleSttusTy").toString());
brsDataArray.get(i).put("NAMSAN_PASMNY", brsDataArray.get(i).get("namsanPasmny").toString());
brsDataArray.get(i).put("SECSN_YN", brsDataArray.get(i).get("secsnAt").toString());
if(brsDataArray.get(i).get("SECSN_YN").equals("Y")){
brsDataArray.get(i).put("SECSN_DATE", brsDataArray.get(i).get("secsnDt").toString());
brsDataArray.get(i).put("OWNER_NM", "delete");
}else{
brsDataArray.get(i).put("OWNER_NM", brsDataArray.get(i).get("mberNm").toString());
}
// 01: 일반, 02: 경차, 03: 면제
// 면제차량 확인
strExmptCode = commCollectServerService.searchExmptCarNo(brsDataArray.get(i).get("CAR_NO").toString(), false);
// 감면차량 확인
if(strExmptCode.equals("") == true) {
strExmptCode = commCollectServerService.searchHalfExmptCarNo(brsDataArray.get(i).get("CAR_NO").toString());
}
brsDataArray.get(i).put("EXMP_CD", strExmptCode);
brsDataArray.get(i).put("CAR_NO_HEX", CarNo2Code.runCarNo2Code(brsDataArray.get(i).get("CAR_NO").toString()));
brsDataArray.get(i).put("WORKER", "admin");
brsDataArray.get(i).put("MODI_YN", "N");
logger.info("=== 1 : " + brsDataArray.get(i).get("CAR_NO").toString()); //전인종
// 탈퇴이거나 차량을 삭제하면 삭제만 함.
if(brsDataArray.get(i).get("SECSN_YN").toString().equals("Y") == true
|| brsDataArray.get(i).get("VHCLE_STTUS_TY").toString().equals("02") == true
|| brsDataArray.get(i).get("VHCLE_STTUS_TY").toString().equals("03") == true
|| brsDataArray.get(i).get("NAMSAN_PASMNY").toString().equals("N") == true
) {
//마스터 데이터 삭제
brsDataArray.get(i).put("SECSN_YN", "Y");
brsDataArray.get(i).put("SECSN_DATE", "");
logger.info("=== 사전등록결제 회원 탈퇴 : " + brsDataArray.get(i).get("CAR_NO").toString());
}
commCollectServerService.insertPreRegistInfoModi(brsDataArray.get(i));
}
Map<String, Object> mapOrgTemp = new HashMap<String, Object>();
mapOrgTemp.put("PRP_UPDATE_YN", "Y");
commCollectServerService.updateMstFlag(mapOrgTemp);
long end = System.currentTimeMillis(); // 작동 시간 측정용
double d = end -start;
logger.info("==== 사전등록결제정보 변동분 스케쥴 소요시간 : " + d) ;
} catch(RuntimeException e) {
logger.error("scheduleRun RuntimeException : "+e.getClass().getName());
} catch(Exception e) {
logger.error("scheduleRun Exception : "+e.getClass().getName());
}
}
}

@ -53,6 +53,7 @@ SELECT CHANGED_DATA.*
, TRIM(B.MBER_NM) AS MBER_NM
, TRIM(B.MBER_CI) AS MBER_CI
, TRIM(TO_CHAR(B.SBSCRB_DT,'YYYYMMDDHH24MISS')) AS SBSCRB_DT
, TRIM(B.MBER_STTUS_TY) AS MBER_STTUS_TY
, TRIM(TO_CHAR(B.UPDT_DT,'YYYYMMDDHH24MISS')) AS MBER_UPDT_DT
, TRIM(B.SECSN_AT) AS SECSN_AT
, TRIM(TO_CHAR(B.SECSN_DT,'YYYYMMDDHH24MISS')) AS SECSN_DT
@ -60,25 +61,41 @@ SELECT CHANGED_DATA.*
, TRIM(NVL(C.NAMSAN_FFNLG,'N')) AS NAMSAN_FFNLG
, TRIM(TO_CHAR(C.UPDT_DT,'YYYYMMDDHH24MISS')) AS AGRE_UPDT_DT
, (CASE
WHEN C.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS') AND C.NAMSAN_PASMNY='Y' AND B.SECSN_AT ='N'
WHEN C.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS') AND C.NAMSAN_PASMNY='Y' AND B.SECSN_AT ='N' AND B.MBER_STTUS_TY NOT IN ('2','3')
THEN CASE
WHEN A.VHCLE_STTUS_TY = '01' AND (A.CMPNY_VHCLE_RCIV_ENDDE IS NULL OR A.CMPNY_VHCLE_RCIV_ENDDE <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYYMMDD'))
THEN '추가'
ELSE '비대상'
ELSE CASE
WHEN (
A.REGIST_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
OR A.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
OR (A.CMPNY_VHCLE_RCIV_ENDDE IS NOT NULL AND (A.CMPNY_VHCLE_RCIV_ENDDE || '235959') BETWEEN #{startDt} AND #{endDt})
)
THEN '삭제'
ELSE '비대상'
END
END
WHEN C.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
WHEN C.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
THEN '삭제'
WHEN C.NAMSAN_PASMNY='N'
THEN '비대상'
WHEN B.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS') AND SECSN_AT ='N'
WHEN B.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS') AND SECSN_AT ='N' AND B.MBER_STTUS_TY NOT IN ('2','3')
THEN CASE
WHEN A.VHCLE_STTUS_TY = '01' AND (A.CMPNY_VHCLE_RCIV_ENDDE IS NULL OR A.CMPNY_VHCLE_RCIV_ENDDE <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYYMMDD'))
THEN '추가'
ELSE '비대상'
ELSE CASE
WHEN (
A.REGIST_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
OR A.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
OR (A.CMPNY_VHCLE_RCIV_ENDDE IS NOT NULL AND (A.CMPNY_VHCLE_RCIV_ENDDE || '235959') BETWEEN #{startDt} AND #{endDt})
)
THEN '삭제'
ELSE '비대상'
END
END
WHEN B.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
WHEN B.UPDT_DT BETWEEN TO_DATE(#{startDt}, 'YYYYMMDDHH24MISS') AND TO_DATE(#{endDt}, 'YYYYMMDDHH24MISS')
THEN '삭제'
WHEN B.SECSN_AT='Y'
WHEN B.SECSN_AT='Y' OR B.MBER_STTUS_TY IN ('2','3')
THEN '비대상'
ELSE CASE
WHEN A.VHCLE_STTUS_TY = '01' AND (A.CMPNY_VHCLE_RCIV_ENDDE IS NULL OR A.CMPNY_VHCLE_RCIV_ENDDE <![CDATA[ >= ]]> TO_CHAR(SYSDATE, 'YYYYMMDD'))
@ -127,6 +144,7 @@ ORDER BY CHANGED_DATA.CHANGED_DT
LEFT OUTER JOIN DBUSER_BRSPW.TB_BRS_SETLE_AGRE_AT C ON (A.MBER_NO = C.MBER_NO)
WHERE A.VHCLE_NO = #{carNo}
AND B.SECSN_AT = 'N'
AND B.MBER_STTUS_TY NOT IN ('2','3')
AND C.NAMSAN_PASMNY = 'Y'
AND A.VHCLE_STTUS_TY = '01'
AND (

@ -763,226 +763,6 @@ public class CommCollectServerController {
return result.getResult();
}
/**
* ()
* <pre></pre>
*/
@Transactional
@RequestMapping(value="/cfs/trsmrcv/selectPreRegistCarInfoChangeNeo1.do", method=RequestMethod.POST)
public @ResponseBody Map<String, Object> selectPreRegistCarInfoChangeNeo1 (
@RequestParam String start_dt
, @RequestParam String end_dt
, @RequestParam String index_start
, @RequestParam String index_end
, @RequestParam String req_seq
, HttpServletRequest request) throws Exception {
ResultSmartPlatform result = new ResultSmartPlatform();
logger.info("변동분 수신받음");
Map<String, String> susinInfo = TrsmrcvUtil.getInfoMapForConnSusinLog(request);
trsmrcvDao.insertConnSusinLog(susinInfo);
logger.info("변동분 수신로그");
String reqDate = (new SimpleDateFormat ("yyyyMMddHHmmss")).format(new Date());
//---------------
//---------------
Map<String, String> mapOrg = new HashMap<String, String>();
mapOrg.put("insttNo", "BRSMC0300001");
mapOrg.put("insttCntcJobSe", "016");
mapOrg.put("requstDt", start_dt);
mapOrg.put("startDt", start_dt);
mapOrg.put("endDt", end_dt);
mapOrg.put("indexStart", "0");
mapOrg.put("indexEnd", "1000");
mapOrg.put("req_seq", req_seq);
logger.info("=== 사전등록결제 변동분 mapOrg : " + mapOrg.toString());
try {
long start = System.currentTimeMillis(); // 작동 시간 측정용
List<Map<String, Object>> obj = commCollectServerService.selectMstFlag(new HashMap<String, Object>());
if(obj == null || obj.size() == 0) {
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
}
logger.info("==== 사전등록결제정보 변동분 조회 신규 - 2");
logger.info("==== PRP_FLAG : " + obj.get(0).get("PRP_FLAG").toString());
logger.info("==== PRP_SENDTIME : " + obj.get(0).get("PRP_SENDTIME").toString());
logger.info("==== end_dt.substring(0, 8) : " + end_dt.substring(0, 8));
if(!(
obj.get(0).get("PRP_FLAG").toString().equals("2") == true
&& obj.get(0).get("PRP_SENDTIME").toString().equals(end_dt.substring(0, 8)) == true
)
) {
//마스터 작업중이므로 변동분 미처리
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
}
//마스터 작업중아니므로 변동분 처리
if(Long.parseLong(obj.get(0).get("PRP_CHG_TIME").toString()) < Long.parseLong(start_dt)) {
//startDt를 바꿈
mapOrg.put("startDt", obj.get(0).get("PRP_CHG_TIME").toString());
} else {
//startDt를 안바꿈
}
// 사전등록결제 웹서비스 호출
String url = cfsCommonService.findCommonSecureGet("ITF_CFS_O_037");
CallWebService callWebService = new CallWebService(url);
Map<String, String> apiResultMap = callWebService.callWebServicePost(mapOrg);
if(apiResultMap == null || apiResultMap.get("result").toString().equals("FAIL") == true) {
// 조회 실패
logger.info("CarInfoChangeNeo_조회 실패");
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
}
JSONParser parser = new JSONParser();
JSONObject jsonParam = (JSONObject)parser.parse(apiResultMap.get("data").toString());
System.out.println("=== " + jsonParam.toJSONString());
List<Map<String, Object>> brsDataArray = (List<Map<String, Object>>)jsonParam.get("dataArray");
if(brsDataArray == null || brsDataArray.size() == 0){
Map<String, Object> mapOrgTemp = new HashMap<String, Object>();
mapOrgTemp.put("PRP_UPDATE_YN", "Y");
commCollectServerService.updateMstFlag(mapOrgTemp);
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
}
String strExmptCode = "";
// 사전등록정보 갱신
for(int i=0; i< brsDataArray.size(); i++){
brsDataArray.get(i).put("CAR_NO", brsDataArray.get(i).get("vhcleNo").toString());
brsDataArray.get(i).put("CAR_OWNER_CI", brsDataArray.get(i).get("vhcleOwnerCi").toString());
brsDataArray.get(i).put("REQ_DATE", reqDate);
brsDataArray.get(i).put("VHCLE_STTUS_TY", brsDataArray.get(i).get("vhcleSttusTy").toString());
brsDataArray.get(i).put("NAMSAN_PASMNY", brsDataArray.get(i).get("namsanPasmny").toString());
brsDataArray.get(i).put("SECSN_YN", brsDataArray.get(i).get("secsnAt").toString());
if(brsDataArray.get(i).get("SECSN_YN").equals("Y")){
brsDataArray.get(i).put("SECSN_DATE", brsDataArray.get(i).get("secsnDt").toString());
brsDataArray.get(i).put("OWNER_NM", "delete");
}else{
brsDataArray.get(i).put("OWNER_NM", brsDataArray.get(i).get("mberNm").toString());
}
// 01: 일반, 02: 경차, 03: 면제
// 면제차량 확인
strExmptCode = this.searchExmptCarNo(brsDataArray.get(i).get("CAR_NO").toString(), false);
// 감면차량 확인
if(strExmptCode.equals("") == true) {
strExmptCode = this.searchHalfExmptCarNo(brsDataArray.get(i).get("CAR_NO").toString());
}
brsDataArray.get(i).put("EXMP_CD", strExmptCode);
brsDataArray.get(i).put("CAR_NO_HEX", CarNo2Code.runCarNo2Code(brsDataArray.get(i).get("CAR_NO").toString()));
brsDataArray.get(i).put("WORKER", "admin");
brsDataArray.get(i).put("MODI_YN", "N");
logger.info("=== 1 : " + brsDataArray.get(i).get("CAR_NO").toString()); //전인종
// 탈퇴이거나 차량을 삭제하면 삭제만 함.
if(brsDataArray.get(i).get("SECSN_YN").toString().equals("Y") == true
|| brsDataArray.get(i).get("VHCLE_STTUS_TY").toString().equals("02") == true
|| brsDataArray.get(i).get("VHCLE_STTUS_TY").toString().equals("03") == true
|| brsDataArray.get(i).get("NAMSAN_PASMNY").toString().equals("N") == true
) {
//마스터 데이터 삭제
brsDataArray.get(i).put("SECSN_YN", "Y");
brsDataArray.get(i).put("SECSN_DATE", "");
logger.info("=== 사전등록결제 회원 탈퇴 : " + brsDataArray.get(i).get("CAR_NO").toString());
}
commCollectServerService.insertPreRegistInfoModi(brsDataArray.get(i));
}
List<Map<String, Object>> newList = commCollectServerService.selectSendPreRegistCarInfo(mapOrg);
if(newList == null || newList.size() == 0) {
Map<String, Object> mapOrgTemp = new HashMap<String, Object>();
mapOrgTemp.put("PRP_UPDATE_YN", "Y");
commCollectServerService.updateMstFlag(mapOrgTemp);
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
}
logger.info("==== 사전등록결제정보 변동분 조회 신규 - 6");
String str = "";
StringBuffer strbuf = new StringBuffer();
for(int i = 0; i < newList.size(); i++) {
str = String.format("%010d%s%s%s"
, Integer.parseInt(newList.get(i).get("PRP_INFO_SEQ").toString())
, newList.get(i).get("REGIST_DIV").toString()
, newList.get(i).get("CHG_DATA_KIND").toString()
, newList.get(i).get("CAR_NO_HEX").toString().trim());
strbuf.append(str);
}
long end = System.currentTimeMillis(); // 작동 시간 측정용
double d = end -start;
logger.info("==== 사전등록결제정보 변동분 조회 소요시간 1 :" + d) ;
logger.info("==== 사전등록결제정보 변동분 조회 신규 - 7");
commCollectServerService.updatePreRegistInfoSend(newList);
d = end -start;
logger.info("==== 사전등록결제정보 변동분 조회 소요시간 2 :" + d) ;
d = end -start;
logger.info("==== 사전등록결제정보 변동분 조회 소요시간 3 :" + d) ;
logger.info("==== 사전등록결제정보 변동분 조회 신규 - 8");
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, strbuf.toString());
Map<String, Object> mapOrgTemp = new HashMap<String, Object>();
mapOrgTemp.put("PRP_UPDATE_YN", "Y");
commCollectServerService.updateMstFlag(mapOrgTemp);
}catch(RuntimeException e) {
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
} catch (Exception e) {
result.setMsg(ResultSmartPlatform.STATUS_SUCESS, "정상적으로 처리되었습니다.");
result.setMsg(ResultSmartPlatform.RESULT_KEY_DEFAULT, "조회결과가 없습니다.");
return result.getResult();
}
logger.info(result.getResult().get("resultMessage").toString());
return result.getResult();
}
/**
*

Loading…
Cancel
Save