From 721323cda1c10d613e38f2ec46193e9103f9619b Mon Sep 17 00:00:00 2001 From: leebj Date: Mon, 10 Nov 2025 12:15:40 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B1=B4=EB=AC=BC=EC=A3=BC=EC=86=8C=EA=B0=B1?= =?UTF-8?q?=EC=8B=A0=20=EC=9D=BC=EB=B3=80=EB=8F=99=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EC=9B=94=EB=B3=80=EB=8F=99=EC=9C=BC=EB=A1=9C=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/ui/cfs/system/ST009M01.xml | 231 +++++++----------- src/main/java/cfs/trsmrcv/dao/TrsmrcvDao.java | 12 +- .../cfs/trsmrcv/dao/mapper/Trsmrcv_mapper.xml | 101 +------- .../cfs/trsmrcv/vo/JusoUpdateResultVO.java | 41 +--- .../web/CommHealthCheckController.java | 13 +- .../CommWebBrowserSystemManageController.java | 61 ++--- src/main/java/cfs/trsmrcv/web/JusoThread.java | 35 +-- 7 files changed, 136 insertions(+), 358 deletions(-) diff --git a/WebContent/ui/cfs/system/ST009M01.xml b/WebContent/ui/cfs/system/ST009M01.xml index a4c1f97..d0e9af8 100644 --- a/WebContent/ui/cfs/system/ST009M01.xml +++ b/WebContent/ui/cfs/system/ST009M01.xml @@ -12,21 +12,14 @@ - - - - + - - - - + - @@ -48,70 +41,80 @@ scwin.onpageload = function() { var ymd = com.getToday(); - - ica_dataDateFrom.setValue( '20250801' ); - ica_dataDateTo.setValue( ymd ); - - ica_actionDateFrom.setValue( ymd ); - ica_actionDateTo.setValue( ymd ); - + var setYm = scwin.getBeforeMonth(ymd); + ica_ymForLink.setValue(setYm); }; + scwin.onpageunload = function() { }; + scwin.getBeforeMonth = function(ymd){ + var curY = ymd.substr(0,4); + var curM = ymd.substr(4,2); + var setYm = ""; + if(curM == "01"){ + setYm = ""+(Number(curY)-1)+"12"; + } else { + var setM = ""+(Number(curM)-1)+""; + if(setM.length == 1){ + setM = "0"+setM; + } + setYm = curY + setM; + } + return setYm; + } - scwin.btn_search_onclick = function(e) { - document.getElementById(ifi_buildJusoFile.id).value = null; - com.executeSubmission(sub_search); - }; - scwin.btn_upload_onclick = function(e) { + scwin.btn_makeLink_onclick = function(e) { + var td = document.getElementById(tdForLink.id); + while (td.firstChild) { + td.removeChild(td.firstChild); + } - var fileEl = document.getElementById(ifi_buildJusoFile.id); - if(fileEl.value == null || fileEl.value == ""){ - com.alert("첨부파일을 선택하세요."); + var in_ym = ica_ymForLink.getValue(); + if(in_ym == null || in_ym == "" || (in_ym+"").length != 6){ return; } - var formData = new FormData(); - formData.append("buildJusoFile", fileEl.files[0]); + var in_y = in_ym.substr(0,4); + if(in_y < "2000"){ + return; + } + var in_m = in_ym.substr(4,2); + if(in_m > "12" || in_m == "00"){ + return; + } - var pureAjaxOpt = { - url : '/cfs/trsmrcv/uploadJuso.do' - , async : false - , processData : false - , contentType : false - , type: 'POST' - , data : formData - , success : function(data) { - if(data == null || data.result == null){ - com.alert("업로드 중 오류가 발생하였습니다."); - return; - } - - if(data.result == "success"){ - com.alert("업로드 되었습니다."); - return; - } else { - if(data.failResn != null && data.failResn != ""){ - com.alert(data.failResn); - return; - } else { - com.alert("업로드 중 오류가 발생하였습니다."); - return; - } - } - - } - , error : function(){ - com.alert("업로드 중 오류가 발생하였습니다."); - } - }; + var curYmd = com.getToday(); + var curYm = curYmd.substr(0,6); + if(in_ym >= curYm){ + alert("월변동자료 미생성"); + return; + } - $.ajax( pureAjaxOpt ); + if(in_ym == scwin.getBeforeMonth(curYmd) && curYmd.substr(6,2) <= "05"){ + alert("월변동자료 미생성"); + return; + } + var linkString = "https://business.juso.go.kr/addrlink/download.do?reqType=ALLRDNM®Ymd="+in_y+"&ctprvnCd=01&stdde="+in_ym+"&fileName="+in_ym+"_%EA%B1%B4%EB%AC%BCDB_%EB%B3%80%EB%8F%99%EB%B6%84.zip&intNum=undefined&intFileNo=undefined&realFileName="+in_ym+"ALLRDNM01.zip"; + var newA = document.createElement('a'); + newA.setAttribute("href", linkString); + newA.setAttribute("download", ""); + newA.setAttribute("target", "_blank"); + newA.textContent = 'zip다운'; + td.appendChild(newA); + }; + + scwin.btn_search_onclick = function(e) { + document.getElementById(ifi_buildJusoFile.id).value = null; + com.executeSubmission(sub_search); }; + + + + ]]> @@ -125,56 +128,18 @@ - - - - + + + + + + - 변동일 - - - - - - - - - - 갱신처리일 - - - - - - - - - - - - - + + + + + + + + + + + + + + + 변동자료 - + @@ -216,56 +197,24 @@ - - - - - - - - - - - - - - - - diff --git a/src/main/java/cfs/trsmrcv/dao/TrsmrcvDao.java b/src/main/java/cfs/trsmrcv/dao/TrsmrcvDao.java index cf513d2..1113230 100644 --- a/src/main/java/cfs/trsmrcv/dao/TrsmrcvDao.java +++ b/src/main/java/cfs/trsmrcv/dao/TrsmrcvDao.java @@ -85,17 +85,11 @@ public interface TrsmrcvDao { public Map selectSendMail(String commandSeq); - public List findBuildJusoHist(Map searchMap); - public JusoUpdateResultVO findLastBuildJusoHist(String str); - public void insertJusoHist(String dataDate); + public JusoUpdateResultVO getJusoStat(String str); + public void updateJusoStat(String statCd); + - public void initJusoHist(String dataDate); - - public void updateJusoSuccResult(String dataDate); - - public void updateJusoFailResult(JusoUpdateResultVO vo); - public void mergeJuso(Map map); public List findReceivedAltMailList(Map searchMap); diff --git a/src/main/java/cfs/trsmrcv/dao/mapper/Trsmrcv_mapper.xml b/src/main/java/cfs/trsmrcv/dao/mapper/Trsmrcv_mapper.xml index c4971df..a8d4eb4 100644 --- a/src/main/java/cfs/trsmrcv/dao/mapper/Trsmrcv_mapper.xml +++ b/src/main/java/cfs/trsmrcv/dao/mapper/Trsmrcv_mapper.xml @@ -231,102 +231,25 @@ WHERE COMMAND_SEQ = #{commandSeq} - - - - - + + - - + SELECT STAT_CD + , DECODE(STAT_CD,'0','처리중','1','오류','완료') AS STAT_NM + , UPDATE_DATE + FROM TB_CFS_ADRES_BULD_INFO_STAT + WHERE ROWNUM = '1' - - - - INSERT - INTO TB_CFS_ADRES_BULD_INFO_HIST ( - DATA_DATE - , ACTION_DATE - , ACTION_START_TIME - , STAT_CD - ) - VALUES ( - #{dataDate} - , TO_CHAR(SYSDATE,'YYYYMMDD') - , TO_CHAR(SYSDATE,'HH24MISS') - , '0' - ) - - - - UPDATE TB_CFS_ADRES_BULD_INFO_HIST - SET ACTION_DATE = TO_CHAR(SYSDATE,'YYYYMMDD') - , ACTION_START_TIME = TO_CHAR(SYSDATE,'HH24MISS') - , ACTION_END_TIME = '' - , STAT_CD = '0' - , FAIL_ROW = 0 - WHERE DATA_DATE = #{dataDate} - - - - UPDATE TB_CFS_ADRES_BULD_INFO_HIST - SET ACTION_END_TIME = TO_CHAR(SYSDATE,'HH24MISS') - , STAT_CD = '2' - , FAIL_ROW = null - WHERE DATA_DATE = #{dataDate} + + UPDATE TB_CFS_ADRES_BULD_INFO_STAT + SET STAT_CD = #{statCd} + , UPDATE_DATE = SYSDATE - - UPDATE TB_CFS_ADRES_BULD_INFO_HIST - SET ACTION_END_TIME = TO_CHAR(SYSDATE,'HH24MISS') - , STAT_CD = '1' - , FAIL_ROW = #{failRow} - WHERE DATA_DATE = #{dataDate} - MERGE INTO TB_CFS_ADRES_BULD_INFO diff --git a/src/main/java/cfs/trsmrcv/vo/JusoUpdateResultVO.java b/src/main/java/cfs/trsmrcv/vo/JusoUpdateResultVO.java index 676c42c..2ea6c71 100644 --- a/src/main/java/cfs/trsmrcv/vo/JusoUpdateResultVO.java +++ b/src/main/java/cfs/trsmrcv/vo/JusoUpdateResultVO.java @@ -2,38 +2,11 @@ package cfs.trsmrcv.vo; public class JusoUpdateResultVO { - private String dataDate; - private String actionDate; - private String actionStartTime; - private String actionEndTime; + private String updateDate; private String statCd; private String statNm; - private int failRow; - public String getDataDate() { - return dataDate; - } - public void setDataDate(String dataDate) { - this.dataDate = dataDate; - } - public String getActionDate() { - return actionDate; - } - public void setActionDate(String actionDate) { - this.actionDate = actionDate; - } - public String getActionStartTime() { - return actionStartTime; - } - public void setActionStartTime(String actionStartTime) { - this.actionStartTime = actionStartTime; - } - public String getActionEndTime() { - return actionEndTime; - } - public void setActionEndTime(String actionEndTime) { - this.actionEndTime = actionEndTime; - } + public String getStatCd() { return statCd; } @@ -46,12 +19,12 @@ public class JusoUpdateResultVO { public void setStatNm(String statNm) { this.statNm = statNm; } - public int getFailRow() { - return failRow; + public String getUpdateDate() { + return updateDate; } - public void setFailRow(int failRow) { - this.failRow = failRow; + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; } - + } diff --git a/src/main/java/cfs/trsmrcv/web/CommHealthCheckController.java b/src/main/java/cfs/trsmrcv/web/CommHealthCheckController.java index 86e0a9e..0a82dfc 100644 --- a/src/main/java/cfs/trsmrcv/web/CommHealthCheckController.java +++ b/src/main/java/cfs/trsmrcv/web/CommHealthCheckController.java @@ -113,18 +113,7 @@ public class CommHealthCheckController { result.put("commandSeq",commandSeq); result.put("commandType",commandType); - if(commandType.equals("bringJuso")){ - Map bringJusoInfo = new HashMap(); - JusoUpdateResultVO lastData = trsmrcvDao.findLastBuildJusoHist(""); - String targetYmd = lastData.getDataDate().replace("-", ""); - bringJusoInfo.put("targetYmd", targetYmd); - - if(bringJusoInfo == null || bringJusoInfo.isEmpty()){ - result.put("res", "OK"); - return result; - } - result.put("commandDetail", bringJusoInfo); - } else if(commandType.equals("sendMail")){ + if(commandType.equals("sendMail")){ Map sendMailInfo = trsmrcvDao.selectSendMail(commandSeq); if(sendMailInfo == null || sendMailInfo.isEmpty()){ result.put("res", "OK"); diff --git a/src/main/java/cfs/trsmrcv/web/CommWebBrowserSystemManageController.java b/src/main/java/cfs/trsmrcv/web/CommWebBrowserSystemManageController.java index cacdaeb..2365363 100644 --- a/src/main/java/cfs/trsmrcv/web/CommWebBrowserSystemManageController.java +++ b/src/main/java/cfs/trsmrcv/web/CommWebBrowserSystemManageController.java @@ -7,6 +7,7 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.Enumeration; @@ -45,19 +46,20 @@ public class CommWebBrowserSystemManageController { private TrsmrcvDao trsmrcvDao; /** - * 주소 갱신 이력 조회 + * 주소 처리 상태 조회 *

 	*/
 	@RequestMapping(value="/cfs/trsmrcv/findBuildJusoHist.do", method=RequestMethod.POST)
 	public @ResponseBody Map findBuildJusoHist(@RequestBody ParamBean> param){
 
-		Map searchMap = param.getParam();
-		
+
 		Result result = new Result();
-		
-		List buildJusoHistList = trsmrcvDao.findBuildJusoHist(searchMap);
-		
-		result.setData("result", buildJusoHistList);
+		List jusoStats = new ArrayList();
+		JusoUpdateResultVO jusoStat = trsmrcvDao.getJusoStat("");
+		if(jusoStat != null){
+			jusoStats.add(jusoStat);
+		}
+		result.setData("result", jusoStats);
 
 		return result.getResult();
 	}
@@ -81,57 +83,24 @@ public class CommWebBrowserSystemManageController {
 		String ori = mfile.getOriginalFilename();
 		
 
-		if(!ori.startsWith("AlterD.JUSUBM.") || !ori.endsWith(".TI_SPBD_BULD.TXT")){
+		if(!ori.equals("build_mod.txt")){
 			result.put("result", "fail");
-			result.put("failResn", "건물주소 일변동 파일이 아닙니다.");
+			result.put("failResn", "건물주소 월변동 파일이 아닙니다.");
 			return result;
 		}
-		String[] ori2 = ori.split("\\.");
-		String dateOfFile = ori2[2];
-		String targetYmd = "";
 
 		
-		JusoUpdateResultVO lastData = trsmrcvDao.findLastBuildJusoHist("");
-		
-		boolean isNew = true;
+		JusoUpdateResultVO lastData = trsmrcvDao.getJusoStat("");
 		
+
 		if(lastData != null){
 			if(lastData.getStatCd().equals("0")){
 				result.put("result", "fail");
 				result.put("failResn", "주소 갱신이 처리중 입니다.");
 				return result;
 			}
-			
-			if(lastData.getStatCd().equals("1")){
-				targetYmd = lastData.getDataDate().replace("-", "");
-				isNew = false;
-			}
-			if(lastData.getStatCd().equals("2")){
-				String lastDataDate = lastData.getDataDate().replace("-", "");
-				SimpleDateFormat formatDt = new SimpleDateFormat("yyyyMMdd");
-				Calendar cal = Calendar.getInstance();
-				Date date;
-				try {
-					date = formatDt.parse(lastDataDate);
-				} catch (ParseException e) {
-					result.put("result", "fail");
-					return result;
-				}
-				cal.setTime(date);
-				cal.add(Calendar.DATE, +1);
-				String nextDate = formatDt.format(cal.getTime());
-				targetYmd = nextDate;
-			}
-		} else {
-			targetYmd = "20250801";
 		}
 
-		if(!dateOfFile.equals(targetYmd)){
-			result.put("result", "fail");
-			result.put("failResn", "다음으로 처리해야할 일변동날짜는 "+targetYmd+"입니다."
-			+"
업로드한 파일은 "+dateOfFile+" 자료입니다."); - return result; - } String workPath = "/gpta/source-app/cfs/jusoUploadData"; File workDir = new File(workPath); @@ -160,13 +129,15 @@ public class CommWebBrowserSystemManageController { return result; } - JusoThread jusoThread = new JusoThread(trsmrcvDao, targetYmd, isNew, destPath); + JusoThread jusoThread = new JusoThread(trsmrcvDao, destPath); Thread newThread = new Thread(jusoThread); newThread.setName("jusoThread #1"); newThread.start(); result.put("result", "success"); return result; + + } /** diff --git a/src/main/java/cfs/trsmrcv/web/JusoThread.java b/src/main/java/cfs/trsmrcv/web/JusoThread.java index 527bd59..4405746 100644 --- a/src/main/java/cfs/trsmrcv/web/JusoThread.java +++ b/src/main/java/cfs/trsmrcv/web/JusoThread.java @@ -22,14 +22,10 @@ public class JusoThread implements Runnable { protected Logger logger = LoggerFactory.getLogger(this.getClass()); private TrsmrcvDao trsmrcvDao; - private String targetYmd; - private boolean isNew; private String filePath; - public JusoThread(TrsmrcvDao dao, String ymd, boolean isNewFlag, String path) { + public JusoThread(TrsmrcvDao dao, String path) { this.trsmrcvDao = dao; - this.targetYmd = ymd; - this.isNew = isNewFlag; this.filePath = path; } @@ -69,38 +65,23 @@ public class JusoThread implements Runnable { @Override public void run() { - JusoUpdateResultVO vo = new JusoUpdateResultVO(); - vo.setDataDate(targetYmd); - vo.setFailRow(0); - - try { - if(isNew){ - trsmrcvDao.insertJusoHist(targetYmd); - } else { - trsmrcvDao.initJusoHist(targetYmd); - } - } catch (Exception e1) { - trsmrcvDao.updateJusoFailResult(vo); - return; - } + + trsmrcvDao.updateJusoStat("0"); - int failRow = 0; - int curRow = 0; + boolean succ = true; BufferedReader reader = null; try { reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath),"MS949")); } catch (Exception e1) { - trsmrcvDao.updateJusoFailResult(vo); + trsmrcvDao.updateJusoStat("1"); return; } try { for(String line = reader.readLine(); line != null; line = reader.readLine()) { - curRow++; - if(!line.equals("") && !line.equals("No Data")) { String[] line_split = line.split(Pattern.quote("|"), -1); @@ -115,7 +96,6 @@ public class JusoThread implements Runnable { } reader.close(); } catch (Exception e) { - failRow = curRow; succ = false; } finally { try { @@ -126,10 +106,9 @@ public class JusoThread implements Runnable { } if(succ){ - trsmrcvDao.updateJusoSuccResult(targetYmd); + trsmrcvDao.updateJusoStat("2"); } else { - vo.setFailRow(failRow); - trsmrcvDao.updateJusoFailResult(vo); + trsmrcvDao.updateJusoStat("1"); } }