diff --git a/src/main/java/cokr/xit/DateUtil.java b/src/main/java/cokr/xit/DateUtil.java new file mode 100644 index 00000000..09b1c9ab --- /dev/null +++ b/src/main/java/cokr/xit/DateUtil.java @@ -0,0 +1,19 @@ +package cokr.xit; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +public class DateUtil { + + public static String addDay(String yyyymmdd, int dayN) throws ParseException{ + SimpleDateFormat sdf8 = (new SimpleDateFormat("yyyyMMdd")); + Calendar cal = Calendar.getInstance(); + Date dateObj = sdf8.parse(yyyymmdd); + cal.setTime(dateObj); + cal.add(Calendar.DAY_OF_MONTH, dayN); + String calc = sdf8.format(cal.getTime()); + return calc; + } +} diff --git a/src/main/java/externalsystem/cleanparking/PlaceVO.java b/src/main/java/externalsystem/cleanparking/PlaceVO.java new file mode 100644 index 00000000..48ae9d6b --- /dev/null +++ b/src/main/java/externalsystem/cleanparking/PlaceVO.java @@ -0,0 +1,19 @@ +package externalsystem.cleanparking; + +import lombok.Getter; + +@Getter +public class PlaceVO { + private String placeName; + private String stdgCode; + + + public PlaceVO setPlaceName(String placeName) { + this.placeName = placeName; + return this; + } + public PlaceVO setStdgCode(String stdgCode) { + this.stdgCode = stdgCode; + return this; + } +} \ No newline at end of file diff --git a/src/main/java/externalsystem/cleanparking/RentCorpVO.java b/src/main/java/externalsystem/cleanparking/RentCorpVO.java new file mode 100644 index 00000000..021fadde --- /dev/null +++ b/src/main/java/externalsystem/cleanparking/RentCorpVO.java @@ -0,0 +1,13 @@ +package externalsystem.cleanparking; + +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class RentCorpVO { + private String corpName; + private String corpNo6; + private String corpNoEnc; + +} diff --git a/src/main/java/externalsystem/cleanparking/web/CpController.java b/src/main/java/externalsystem/cleanparking/web/CpController.java index 10e5aebc..1448b013 100644 --- a/src/main/java/externalsystem/cleanparking/web/CpController.java +++ b/src/main/java/externalsystem/cleanparking/web/CpController.java @@ -1,17 +1,31 @@ package externalsystem.cleanparking.web; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; import java.util.HashMap; +import java.util.List; import javax.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.servlet.ModelAndView; +import cokr.xit.DateUtil; import cokr.xit.base.crypto.bean.XitAria; import cokr.xit.foundation.web.AbstractController; import externalsystem.cleanparking.ConfUtil; +import externalsystem.cleanparking.PlaceVO; +import externalsystem.cleanparking.RentCorpVO; @Controller @RequestMapping(name="클린파킹", value="/cleanparking") public class CpController extends AbstractController { @@ -76,4 +90,269 @@ public class CpController extends AbstractController { return returnStr; } + + //단속자료생성메인 + @RequestMapping(name="단속 자료 생성 화면", value="/createCrdnMain.do") + public ModelAndView createCrdnMain() { + ModelAndView mav = new ModelAndView(); + + mav.setViewName("cp/createCrdn-main"); + mav.addObject("pageName", "createCrdn"); + return mav; + } + + //단속자료생성요청 + @RequestMapping(name="단속 자료 생성", value="/createCrdn.do") + public ModelAndView createCrdn(HttpServletRequest req) { + + ModelAndView mav = new ModelAndView("jsonView"); + + String selectedCorp = req.getParameter("rentCorp"); + String vhrno = req.getParameter("vhrno"); + System.out.println(selectedCorp); + System.out.println(vhrno); + + RentCorpVO rentCorpVO = new RentCorpVO(); + if(selectedCorp.equals("롯데렌탈")) { + rentCorpVO.setCorpName(selectedCorp); + rentCorpVO.setCorpNo6("110111"); + rentCorpVO.setCorpNoEnc("vzsOW39f73ncSY/ssxvFbnwhF6FEv7kZ9HWEnI6PWMw="); + + } else if(selectedCorp.equals("SK렌터카")) { + rentCorpVO.setCorpName(selectedCorp); + rentCorpVO.setCorpNo6("110111"); + rentCorpVO.setCorpNoEnc("qk68JgkyNAIRy0SoobSo1/crcaBSTAEMe9m/tYIOd/A="); + + } else { + mav.addObject("saved", false); + return mav; + } + + // + Date now = new Date(); + SimpleDateFormat sdf_yyyy = new SimpleDateFormat ("yyyy"); + SimpleDateFormat sdf_ymd = new SimpleDateFormat ("yyyyMMdd"); + SimpleDateFormat sdf_14 = new SimpleDateFormat ("yyyyMMddHHmmss"); + String curYear = sdf_yyyy.format(now); + String cur14 = sdf_14.format(now); + String curYmd = sdf_ymd.format(now); + + List newlyDates = this.makeDateRange_newly(curYmd); + Collections.shuffle(newlyDates); + + List hourRange = this.makeHourRange(); + Collections.shuffle(hourRange); + List minuteRange = this.makeMinuteRange(); + Collections.shuffle(minuteRange); + + List placeList = this.makePlaceList(); + Collections.shuffle(placeList); + + String[] connInfo = {"org.mariadb.jdbc.Driver", + "jdbc:mariadb://211.119.124.122:53306/electricparking_jejusi", + "root","xit5811807"}; + String sggCd = "50110"; + + Connection conn = null; + try { + + conn = getConn(connInfo[0],connInfo[1],connInfo[2],connInfo[3]); + + StringBuffer strSQL = new StringBuffer(); + strSQL.append("SELECT MAX(MM_CODE) FROM CP_MAIN "); + strSQL.append("WHERE MM_CODE LIKE '"+sggCd+"%' "); + strSQL.append("AND SUBSTR(MM_CODE,6,4) = '"+curYear+"' "); + PreparedStatement ps = conn.prepareStatement(strSQL.toString()); + //ps.setString + ResultSet rs = ps.executeQuery(); + String nextMainKey = ""; + if(rs.next()) { + String maxMainKey = rs.getString(1); + if(maxMainKey == null || maxMainKey.equals("")) { + nextMainKey = sggCd + curYear + "0000001"; + } else { + nextMainKey = sggCd + curYear + StringUtils.leftPad(Integer.toString(Integer.parseInt(maxMainKey.substring(9))+1), 7, "0"); + } + } else { + nextMainKey = sggCd+curYear + "0000001"; + } + + + strSQL = new StringBuffer(); + strSQL.append("SELECT MAX(OM_CODE) FROM CP_OWNER "); + strSQL.append("WHERE OM_CODE LIKE '"+sggCd+"%' "); + ps = conn.prepareStatement(strSQL.toString()); + rs = ps.executeQuery(); + String nextOwnerKey = ""; + if(rs.next()) { + String maxOwnerKey = rs.getString(1); + if(maxOwnerKey == null || maxOwnerKey.equals("")) { + nextOwnerKey = sggCd + "00000001"; + } else { + nextOwnerKey = sggCd + StringUtils.leftPad(Integer.toString(Integer.parseInt(maxOwnerKey.substring(5))+1), 8, "0"); + } + } else { + nextOwnerKey = sggCd + "00000001"; + } + + + + strSQL = new StringBuffer(); + strSQL.append("INSERT INTO CP_OWNER "); + strSQL.append(" VALUES (" + +"'"+nextOwnerKey+"'," + +"'"+sggCd+"'," + +"'"+rentCorpVO.getCorpName()+"'," + +"'"+rentCorpVO.getCorpNo6()+"'," + +"'"+rentCorpVO.getCorpNoEnc()+"'," + +"'13'," // 개인,외국인,법인사업자 + +"'경기도 안양시 동안구 전파로 88'," + +"'N층'," + +"'14042'," + +"'411713182024'," + +"'0'," + +"'88'," + +"'0'," + +"''," + +"'2'," + +"'"+cur14+"'," + +"'4117110100'" + +")" + ); + ps = conn.prepareStatement(strSQL.toString()); + //ps.setString + ps.executeUpdate(); + + + + strSQL = new StringBuffer(); + strSQL.append("INSERT INTO CP_MAIN " + +" VALUES (" + +"'"+nextMainKey+"'," + +"'"+sggCd+"'," + +"'1'," // 수기등록 + +"'3'," // 시청등록 + +"'"+newlyDates.get(0)+"'," // 단속일 + +"'"+hourRange.get(0)+minuteRange.get(0)+"'," // 단속시분 + +"'1'," // 법코드 + +"''," + +"''," + +"'전기차 위반 신고합니다.'," // 민원내용 + +"'"+placeList.get(0).getPlaceName()+"'," // 단속장소 + +"'"+placeList.get(0).getStdgCode()+"'," // 법정동코드 + +"''," + +"''," + +"'0'," // 견인여부 + +"''," // 단속일련번호 + +"'0'," // 이미지갯수 + +"'1'," + +"'"+vhrno+"'," // 차량번호 + +"''," // 차대번호 + +"''," // 차량구분1 + +"''," // 차량구분2 + +"'"+nextOwnerKey+"'," // 소유자코드 + +"''," + +"''," + +"'80000'," // 사전감경금액 + +"'100000'," // 금액 + +"'0'," + +"'0'," + +"'0'," + +"'0'," + +"'0'," + +"'"+cur14+"'," // 생성일 + +"'11'," // 상태코드 + +"'"+cur14+"'," // 변경일시 + +"'0'," + +"''," + +"''," // 기타 + +"''," + +"''," + +"''," + +"''," + +"'아반떼'," + +"'회색'," + +"'h'," + +"''," + +"''" + +")" + ); + ps = conn.prepareStatement(strSQL.toString()); + //ps.setString + ps.executeUpdate(); + + conn.commit(); + + ps.close(); + conn.close(); + } catch (Exception e) { + e.printStackTrace(); + mav.addObject("saved", false); + return mav; + } + + boolean saved = true; + + mav.addObject("saved", saved); + return mav; + } + + private List makeDateRange_newly(String curYmd) { + try { + List result = new ArrayList<>(); + for(int i=1; i<=30 ;i++) { + String dayn = DateUtil.addDay(curYmd, -i); + result.add(dayn); + } + return result; + } catch (Exception e){ + return null; + } + } + + private List makeHourRange() { + List result = new ArrayList<>(); + for(int i=0; i<=23; i++) { + String item = Integer.toString(i); + if(item.length() == 1) { + item = "0"+item; + } + result.add(item); + } + return result; + } + private List makeMinuteRange() { + List result = new ArrayList<>(); + for(int i=0; i<=59; i++) { + String item = Integer.toString(i); + if(item.length() == 1) { + item = "0"+item; + } + result.add(item); + } + return result; + } + + private List makePlaceList() { + List result = new ArrayList<>(); + result.add(new PlaceVO().setPlaceName("우도면 123").setStdgCode("5011033000")); + result.add(new PlaceVO().setPlaceName("우도면 456").setStdgCode("5011033000")); + result.add(new PlaceVO().setPlaceName("우도면 789").setStdgCode("5011033000")); + result.add(new PlaceVO().setPlaceName("애월읍 111").setStdgCode("5011025392")); + result.add(new PlaceVO().setPlaceName("애월읍 222").setStdgCode("5011025392")); + result.add(new PlaceVO().setPlaceName("애월읍 333").setStdgCode("5011025392")); + result.add(new PlaceVO().setPlaceName("조천읍 1-1").setStdgCode("5011025930")); + result.add(new PlaceVO().setPlaceName("조천읍 13-13").setStdgCode("5011025930")); + result.add(new PlaceVO().setPlaceName("조천읍 6-6").setStdgCode("5011025930")); + result.add(new PlaceVO().setPlaceName("한경면 1117").setStdgCode("5011031025")); + result.add(new PlaceVO().setPlaceName("한경면 1118").setStdgCode("5011031025")); + result.add(new PlaceVO().setPlaceName("한경면 1119").setStdgCode("5011031025")); + return result; + } + + private Connection getConn(String driver, String connInfo, String id, String pw) throws Exception{ + Class.forName(driver); + return DriverManager.getConnection(connInfo, id, pw); + } + } diff --git a/src/main/webapp/WEB-INF/jsp/cp/createCrdn-main.jsp b/src/main/webapp/WEB-INF/jsp/cp/createCrdn-main.jsp new file mode 100644 index 00000000..5779ed08 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/cp/createCrdn-main.jsp @@ -0,0 +1,56 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%> +<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%> +
+
+ +
+

단속자료 생성

+
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+ +
+
+ \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/jsp/index.jsp b/src/main/webapp/WEB-INF/jsp/index.jsp index 9aeddb96..23c93a3b 100644 --- a/src/main/webapp/WEB-INF/jsp/index.jsp +++ b/src/main/webapp/WEB-INF/jsp/index.jsp @@ -30,7 +30,10 @@
주소
- +
+
클린파킹
+ +
@@ -213,6 +216,28 @@ $("#btnPopEstablishJuso").on("click", function(){ }); +$("#btnCreateCrdnPop").on("click", function(){ + + $.ajax({ + type : "GET", + ContentType : "text/html;charset=UTF-8", + url : "/cleanparking/createCrdnMain.do", + data: {}, + success: (resp) => { + dialog.open({ + id: "cpCreateCrdnDialog", + title: "클린파킹 단속 자료 생성", + content: resp , + size: "md", + init:() => {} + }); + }, + error : function(xhr, status, error) { + }, + complete : function(xhr, status) { + } + }); +}); $(function(){ });