마스터파일 생성 처리 스케쥴러로 변경

main
이범준 6 months ago
parent 8e49609ae8
commit 30771ffd01

@ -1,6 +1,10 @@
package cfs.schd;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
@ -18,6 +22,7 @@ import cfs.common.service.CfsCommonService;
import cfs.common.util.CarNo2Code;
import cfs.schd.dao.SchdDao;
import cfs.trsmrcv.dao.TrsmrcvDao;
import cfs.trsmrcv.service.CommCollectServer2Service;
import cfs.trsmrcv.service.CommCollectServerService;
@Component("prpCarInfo")
@ -27,6 +32,9 @@ public class PrpCarInfo {
@Resource(name="commCollectServerService")
private CommCollectServerService commCollectServerService;
@Resource(name="commCollectServer2Service")
private CommCollectServer2Service commCollectServer2Service;
@Resource(name="cfsCommonService")
private CfsCommonService cfsCommonService;
@ -36,6 +44,117 @@ public class PrpCarInfo {
@Resource(name="schdDao")
private SchdDao schdDao;
@Transactional
public void makePreregistMaster() {
SimpleDateFormat sdf8 = (new SimpleDateFormat("yyyyMMdd"));
Date now = new Date();
String workDt = sdf8.format(now);
// 사전등록 마스트 생성 쓰레드 호출
String command = String.format("sh /gpta/source-app/cfs/relay_jar/run_prp_send.sh %s", workDt);
System.out.println("============= 사전등록 shell 실행");
shellCmd(command);
}
public void makeScarMaster() {
System.out.println("============= Scar 마스터 수행 Thread start");
Map<String, Object> mapOrg = new HashMap<String, Object>();
mapOrg.put("RED_FLAG", "0");
try {
commCollectServer2Service.updateMstFlag(mapOrg);
} catch (Exception e){
}
// 감면 마스터 파일 생성
String command = String.format("sh /gpta/source-app/cfs/relay_jar/run_scar_send.sh");
System.out.println("============= 감면 shell 실행");
shellCmd(command);
}
public void makeExemptMaster() {
logger.info("============= 면제 마스터 수행 Thread start");
Map<String, Object> mapOrg = new HashMap<String, Object>();
mapOrg.put("EXEMPT_FLAG", "0");
try {
commCollectServer2Service.updateMstFlag(mapOrg);
} catch (Exception e){
}
// 면제 마스터 파일 생성
String command = String.format("sh /gpta/source-app/cfs/relay_jar/run_exempt_send.sh");
System.out.println("============= 면제 shell 실행");
shellCmd(command);
}
private boolean shellCmd(String cmd) {
Process process = null;
Runtime runtime = Runtime.getRuntime();
StringBuffer successOutput = new StringBuffer();
StringBuffer errorOutput = new StringBuffer();
BufferedReader successBufferReader = null;
BufferedReader errorBufferReader = null;
String msg = null;
boolean result = false;
logger.info("shellCmd - 1");
List<String> cmdList = new ArrayList<String>();
cmdList.add("/bin/sh");
cmdList.add("-c");
cmdList.add(cmd);
String[] array = cmdList.toArray(new String[cmdList.size()]);
try {
process = runtime.exec(array);
successBufferReader = new BufferedReader(new InputStreamReader(process.getInputStream(), "UTF-8"));
while ((msg = successBufferReader.readLine()) != null) {
successOutput.append(msg + System.getProperty("line.separator"));
}
errorBufferReader = new BufferedReader(new InputStreamReader(process.getErrorStream(), "UTF-8"));
while ((msg = errorBufferReader.readLine()) != null) {
errorOutput.append(msg + System.getProperty("line.separator"));
}
process.waitFor();
if (process.exitValue() == 0) {
result = true;
} else {
logger.info("abnormal finish error : " + successOutput.toString());
}
if (errorOutput.toString().length() > 0) {
logger.info("error : " + errorOutput.toString());
}
} catch (IOException e) {
logger.info(e.getMessage());
} catch (InterruptedException e) {
logger.info(e.getMessage());
} finally {
try {
process.destroy();
if (successBufferReader != null) successBufferReader.close();
if (errorBufferReader != null) errorBufferReader.close();
} catch (IOException e1) {
logger.info(e1.getMessage());
}
}
return result;
}
@Transactional
public void updatePrpChg() {
@ -70,11 +189,13 @@ public class PrpCarInfo {
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
)
) {
if(!obj.get(0).get("PRP_SENDTIME").toString().equals(endDt.substring(0, 8))){
//금일 마스터 작업전이므로 변동분 미처리
return;
}
if(!(obj.get(0).get("PRP_FLAG").toString().equals("1") || obj.get(0).get("PRP_FLAG").toString().equals("2"))) {
//마스터 작업중이므로 변동분 미처리
return;
}

@ -136,4 +136,25 @@ public class CfsScheduleCron {
exemptCarInfo.getRdcxptInfoDspsnVhcle();
}
/**
* ,,
*/
@Scheduled(cron = "5 0 0 * * *")
public void makeMasterScheduleRun() {
String runWAS = schdDao.selectRunWas("makeMaster");
if(!WASInfo.getWAS().equals(runWAS)){
return;
}
prpCarInfo.makeExemptMaster();
prpCarInfo.makeScarMaster();
prpCarInfo.makePreregistMaster();
}
}

@ -89,11 +89,11 @@ public class CommHoCController {
switch(Integer.parseInt(kind)) {
case 0: // 면제
return makeExempt(obj.get(0), workDt, result);
return checkExempt(obj.get(0), workDt, result);
case 1: // 감면
return makeScar(obj.get(0), workDt, result);
return checkScar(obj.get(0), workDt, result);
case 2: // 사전등록
return makePreregist(obj.get(0), workDt, result);
return checkPreregist(obj.get(0), workDt, result);
case 3: // RFID
logger.info("RFID현행화 막음");
default:
@ -110,38 +110,16 @@ public class CommHoCController {
return result.getResult();
}
private Map<String, Object> makeExempt(Map<String, Object> map, String workDt, ResultSmartPlatform result) {
private Map<String, Object> checkExempt(Map<String, Object> map, String workDt, ResultSmartPlatform result) {
Map<String, Object> mapResult = new HashMap<String, Object>();
try {
if(map.get("EXEMPT_SENDTIME").toString().equals(workDt) == false) {
Map<String, Object> mapOrg = new HashMap<String, Object>();
// 면제 마스트 생성 쓰레드 호출
logger.info("============= 면제 마스터 수행 Thread start");
mapOrg.put("EXEMPT_FLAG", "0");
if(commCollectServer2Service.updateMstFlag(mapOrg) < 0) {
logger.info("============= 2");
result.setErrorMsg(null, null);
logger.info(result.getResult().get("resultMessage").toString());
return result.getResult();
}
String command = String.format("sh /gpta/source-app/cfs/relay_jar/run_exempt_send.sh");
shellCmd(command);
System.out.println("============= 면제 shell 실행");
mapResult.put("flag", "0");
System.out.println("============= makeExempt 2 : " + mapResult);
}
else if(map.get("EXEMPT_SENDTIME").toString().equals(workDt) == true
if(map.get("EXEMPT_SENDTIME").toString().equals(workDt) == true
&& map.get("EXEMPT_FLAG").toString().equals("1") == true) {
mapResult.put("flag", "1");
System.out.println("============= makeExempt 2 : " + mapResult);
}
else {
} else {
mapResult.put("flag", "0");
System.out.println("============= makeExempt 3 : " + mapResult);
}
@ -159,34 +137,14 @@ public class CommHoCController {
return result.getResult();
}
private Map<String, Object> makeScar(Map<String, Object> map, String workDt, ResultSmartPlatform result) {
private Map<String, Object> checkScar(Map<String, Object> map, String workDt, ResultSmartPlatform result) {
Map<String, Object> mapResult = new HashMap<String, Object>();
try {
if(map.get("RED_SENDTIME").toString().equals(workDt) == false) {
Map<String, Object> mapOrg = new HashMap<String, Object>();
// 면제 마스트 생성 쓰레드 호출
mapOrg.put("RED_FLAG", "0");
System.out.println("============= Scar 마스터 수행 Thread start");
if(commCollectServer2Service.updateMstFlag(mapOrg) < 0) {
logger.info("============= 2");
result.setErrorMsg(null, null);
logger.info(result.getResult().get("resultMessage").toString());
return result.getResult();
}
String command = String.format("sh /gpta/source-app/cfs/relay_jar/run_scar_send.sh");
shellCmd(command);
System.out.println("============= 감면 shell 실행");
mapResult.put("flag", "0");
}
else if(map.get("RED_SENDTIME").toString().equals(workDt) == true
if(map.get("RED_SENDTIME").toString().equals(workDt) == true
&& map.get("RED_FLAG").toString().equals("1") == true) {
mapResult.put("flag", "1");
}
else {
} else {
mapResult.put("flag", "0");
}
} catch(RuntimeException e) {
@ -202,28 +160,17 @@ public class CommHoCController {
logger.info(result.getResult().get("resultMessage").toString());
return result.getResult();
}
private Map<String, Object> makePreregist(Map<String, Object> map, String workDt, ResultSmartPlatform result) {
private Map<String, Object> checkPreregist(Map<String, Object> map, String workDt, ResultSmartPlatform result) {
Map<String, Object> mapResult = new HashMap<String, Object>();
try {
System.out.println("============= makePreregist 1");
if(map.get("PRP_SENDTIME").toString().equals(workDt) == false) {
System.out.println("============= makePreregist 2");
// 사전등록 마스트 생성 쓰레드 호출
String command = String.format("sh /gpta/source-app/cfs/relay_jar/run_prp_send.sh %s", workDt);
System.out.println("============= makePreregist 3");
shellCmd(command);
System.out.println("============= 사전등록 shell 실행");
mapResult.put("flag", "0");
}
else if(map.get("PRP_SENDTIME").toString().equals(workDt) == true
if(map.get("PRP_SENDTIME").toString().equals(workDt) == true
&& map.get("PRP_FLAG").toString().equals("1") == true) {
mapResult.put("flag", "1");
}
else {
} else {
mapResult.put("flag", "0");
}
} catch(RuntimeException e) {
e.printStackTrace();
logger.info("catch check");

Loading…
Cancel
Save