사전등록결제 정보 테이블 현행화 스케쥴 배치 추가
parent
8688ac415c
commit
bf5b123425
@ -0,0 +1,364 @@
|
||||
package cfs.scheduler;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.json.simple.parser.JSONParser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import cfs.WASInfo;
|
||||
import cfs.common.service.CfsCommonService;
|
||||
import cfs.common.util.CallWebService;
|
||||
import cfs.common.util.CarNo2Code;
|
||||
import cfs.common.util.ResultSmartPlatform;
|
||||
import cfs.trsmrcv.dao.TrsmrcvDao;
|
||||
import cfs.trsmrcv.service.CommCollectServerService;
|
||||
import cfs.trsmrcv.web.TrsmrcvUtil;
|
||||
|
||||
@EnableScheduling
|
||||
@Component
|
||||
public class CheckCfsServerCron {
|
||||
|
||||
protected Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||
|
||||
@Resource(name="commCollectServerService")
|
||||
private CommCollectServerService commCollectServerService;
|
||||
|
||||
@Resource(name="cfsCommonService")
|
||||
private CfsCommonService cfsCommonService;
|
||||
|
||||
@Resource(name="trsmrcvDao")
|
||||
private TrsmrcvDao trsmrcvDao;
|
||||
|
||||
@Scheduled(cron = "12 */4 * * * *")
|
||||
public void scheduleRun() {
|
||||
|
||||
if(!WASInfo.getWAS().equals("A")){
|
||||
return;
|
||||
}
|
||||
|
||||
Map<String, String> susinInfo = new HashMap<String, String>();
|
||||
susinInfo.put("DATETIME", (new SimpleDateFormat("yyyyMMddHHmmss").format(new Date())));
|
||||
susinInfo.put("RUN_WAS", WASInfo.getWAS());
|
||||
susinInfo.put("CALL_URI", "없음(schedule)");
|
||||
susinInfo.put("REQ_IP", "");
|
||||
trsmrcvDao.insertConnSusinLog(susinInfo);
|
||||
|
||||
scheduleRunExec2();
|
||||
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void scheduleRunExec() {
|
||||
|
||||
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);
|
||||
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
//마스터 작업중아니므로 변동분 처리
|
||||
Map<String,String> brsSearchMap = new HashMap<String,String>();
|
||||
|
||||
brsSearchMap.put("endDt", endDt);
|
||||
|
||||
|
||||
if(Long.parseLong(obj.get(0).get("PRP_CHG_TIME").toString()) < Long.parseLong(startDt)) {
|
||||
|
||||
//startDt를 바꿈
|
||||
brsSearchMap.put("startDt", obj.get(0).get("PRP_CHG_TIME").toString());
|
||||
|
||||
} else {
|
||||
//startDt를 안바꿈
|
||||
brsSearchMap.put("startDt", startDt);
|
||||
}
|
||||
|
||||
|
||||
List<Map<String, Object>> brsDataArray = commCollectServerService.selectPreRegistCarInfoChange(brsSearchMap);
|
||||
|
||||
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("VHCLE_NO").toString());
|
||||
brsDataArray.get(i).put("CAR_OWNER_CI", brsDataArray.get(i).get("VHCLE_OWNER_CI").toString());
|
||||
|
||||
brsDataArray.get(i).put("REQ_DATE", reqDate);
|
||||
|
||||
brsDataArray.get(i).put("SECSN_YN", brsDataArray.get(i).get("SECSN_AT").toString());
|
||||
|
||||
if(brsDataArray.get(i).get("SECSN_YN").equals("Y")){
|
||||
brsDataArray.get(i).put("OWNER_NM", "delete");
|
||||
}else{
|
||||
brsDataArray.get(i).put("OWNER_NM", brsDataArray.get(i).get("MBER_NM").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()); //전인종
|
||||
|
||||
|
||||
|
||||
boolean skip = false;
|
||||
|
||||
// 탈퇴이거나 차량을 삭제하면 삭제만 함.
|
||||
if(brsDataArray.get(i).get("DEL_YN").toString().equals("삭제")) {
|
||||
|
||||
//마스터 데이터 삭제
|
||||
brsDataArray.get(i).put("SECSN_YN", "Y");
|
||||
brsDataArray.get(i).put("SECSN_DATE", "");
|
||||
logger.info("=== 사전등록결제 회원 탈퇴 : " + brsDataArray.get(i).get("CAR_NO").toString());
|
||||
|
||||
|
||||
Map<String,String> brsSearchMap2 = new HashMap<String,String>();
|
||||
brsSearchMap2.put("carNo", brsDataArray.get(i).get("CAR_NO").toString());
|
||||
List<Map<String,Object>> liveData = commCollectServerService.selectPreRegistCarInfoLive(brsSearchMap2);
|
||||
if(liveData != null && !liveData.isEmpty()){
|
||||
skip = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!skip){
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Transactional
|
||||
public void scheduleRunExec2() {
|
||||
|
||||
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());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue