From c3ecc836ba20829f7d1aa925e606a0c51442d4f0 Mon Sep 17 00:00:00 2001 From: leebeomjun Date: Thu, 22 Feb 2024 10:49:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9E=A5=EB=B9=84=EB=8B=A8=EC=86=8D=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EB=A0=88=EC=9D=B4=EC=95=84=EC=9B=83=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/cmmn/ftp/RemoteSystemInfo.java | 1 + .../xit/fims/crdn/dao/CrdnStngMapper.java | 45 ++- .../xit/fims/crdn/dao/CrdnTeamMapper.java | 4 +- .../fims/crdn/service/CrdnStngService.java | 33 +- .../fims/crdn/service/bean/CrdnStngBean.java | 92 ++++- .../service/bean/CrdnStngServiceBean.java | 26 ++ .../xit/fims/crdn/web/Crdn01Controller.java | 163 ++++++++ .../xit/fims/crdn/web/Crdn05Controller.java | 2 +- .../cokr/xit/fims/task/web/BpvController.java | 38 ++ .../cokr/xit/fims/task/web/CmnController.java | 14 + .../cokr/xit/fims/task/web/DpvController.java | 38 ++ .../cokr/xit/fims/task/web/EcaController.java | 38 ++ .../cokr/xit/fims/task/web/PvsController.java | 38 ++ .../sql/mapper/fims/crdn/crdn-stng-mapper.xml | 192 +++++++++ .../WEB-INF/jsp/fims/crdn/crdn01010-main.jsp | 334 ++++++++++++++++ .../WEB-INF/jsp/fims/crdn/crdn01020-info.jsp | 363 ++++++++++++++++++ src/main/webapp/WEB-INF/jsp/include/top.jsp | 64 ++- 17 files changed, 1461 insertions(+), 24 deletions(-) create mode 100644 src/main/java/cokr/xit/fims/crdn/web/Crdn01Controller.java create mode 100644 src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01010-main.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01020-info.jsp diff --git a/src/main/java/cokr/xit/fims/cmmn/ftp/RemoteSystemInfo.java b/src/main/java/cokr/xit/fims/cmmn/ftp/RemoteSystemInfo.java index 16c5fef2..615cbf95 100644 --- a/src/main/java/cokr/xit/fims/cmmn/ftp/RemoteSystemInfo.java +++ b/src/main/java/cokr/xit/fims/cmmn/ftp/RemoteSystemInfo.java @@ -10,4 +10,5 @@ public class RemoteSystemInfo { String id; String pw; String osType; + String workPath; } diff --git a/src/main/java/cokr/xit/fims/crdn/dao/CrdnStngMapper.java b/src/main/java/cokr/xit/fims/crdn/dao/CrdnStngMapper.java index 8e026ca4..067fa5f1 100644 --- a/src/main/java/cokr/xit/fims/crdn/dao/CrdnStngMapper.java +++ b/src/main/java/cokr/xit/fims/crdn/dao/CrdnStngMapper.java @@ -32,9 +32,51 @@ public interface CrdnStngMapper extends AbstractMapper { */ List selectStdgCdListByStdgNm(Map map); + /** 연계파일 레이아웃 목록을 조회한다. + * @param query 연계파일 레이아웃 조회조건 + * @return 연계파일 레이아웃 목록 + */ + List selectLinkFileLayoutMetadataList(CrdnQuery query); + /** 연계파일 레이아웃 정보를 조회한다. + * @param 연계파일 레이아웃 ID + * @return 연계파일 레이아웃 상세 정보 + */ + DataObject selectLinkFileLayoutMetadataInfo(String fileLayoutId); + + /** 연계파일 레이아웃 정보를 등록한다. + * @param map 등록 요청 파라미터 + * @return 저장된 정보 수 + */ + int insertCrdnFileLayout(Map map); + + /** 파일연계 원격지 정보를 등록한다. + * @param map 등록 요청 파라미터 + * @return 저장된 정보 수 + */ + int insertFtpInfo(Map map); + + /** 연계파일 레이아웃 정보를 수정한다. + * @param map 수정 요청 파라미터 + * @return 저장된 정보 수 + */ + int updateCrdnFileLayout(Map map); + + /** 파일연계 원격지 정보를 수정한다. + * @param map 수정 요청 파라미터 + * @return 저장된 정보 수 + */ + int updateFtpInfo(Map map); + + /** 연계파일 레이아웃 정보를 삭제한다. + * @param map 삭제 요청 파라미터 + * @return 저장된 정보 수 + */ + int deleteCrdnFileLayout(Map map); + + /** 연계파일 레이아웃 엔티티 정보를 조회한다. * @param query 연계파일 레이아웃 조회조건 - * @return 연계파일 레이아웃 정보 + * @return 연계파일 레이아웃 엔티티 */ List selectLinkFileLayoutMetadata(CrdnQuery query); @@ -43,4 +85,5 @@ public interface CrdnStngMapper extends AbstractMapper { * @return ftp정보 */ DataObject selectRemoteInfo(String fileLayoutId); + } \ No newline at end of file diff --git a/src/main/java/cokr/xit/fims/crdn/dao/CrdnTeamMapper.java b/src/main/java/cokr/xit/fims/crdn/dao/CrdnTeamMapper.java index 8448d8cc..745baf0e 100644 --- a/src/main/java/cokr/xit/fims/crdn/dao/CrdnTeamMapper.java +++ b/src/main/java/cokr/xit/fims/crdn/dao/CrdnTeamMapper.java @@ -32,13 +32,13 @@ public interface CrdnTeamMapper extends AbstractMapper { /**단속팀 정보를 등록한다.
* @param team 단속팀 정보 - * @return 단속팀 정보 + * @return 저장된 정보 수 */ int insertTeamInfo(Team team); /**단속팀 정보를 수정한다.
* @param team 단속팀 정보 - * @return 단속팀 정보 + * @return 저장된 정보 수 */ int updateTeamInfo(Team team); diff --git a/src/main/java/cokr/xit/fims/crdn/service/CrdnStngService.java b/src/main/java/cokr/xit/fims/crdn/service/CrdnStngService.java index 017ad1e6..4f982ec0 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/CrdnStngService.java +++ b/src/main/java/cokr/xit/fims/crdn/service/CrdnStngService.java @@ -2,6 +2,7 @@ package cokr.xit.fims.crdn.service; import java.util.List; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.ExmptnVhcl; import cokr.xit.fims.crdn.Team; @@ -10,7 +11,37 @@ import cokr.xit.foundation.data.DataObject; public interface CrdnStngService { - /** 연계파일 레이아웃 정보를 조회한다. + /** 연계파일 레이아웃 목록을 조회한다. + * @param query 조회조건 + * @return 연계파일 레이아웃 목록 + */ + List getLinkFileLayoutMetadataList(CrdnQuery query); + + /** 연계파일 레이아웃 상세정보를 조회한다. + * @param fileLayoutId 파일 레이아웃 ID + * @return 연계파일 레이아웃 상세정보 + */ + DataObject getLinkFileLayoutMetadataInfo(String fileLayoutId); + + /** 연계파일 레이아웃 정보를 등록한다. + * @param layoutDescriptor 레이아웃 정보, remoteSystemInfo 파일연계 원격시스템 정보 + * @return 결과메시지 + */ + String createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo); + + /** 연계파일 레이아웃 정보를 수정한다. + * @param layoutDescriptor 레이아웃 정보, remoteSystemInfo 파일연계 원격시스템 정보 + * @return 결과메시지 + */ + String updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo); + + /** 연계파일 레이아웃 정보를 삭제한다. + * @param fileLayoutId 파일 레이아웃 ID + * @return 결과메시지 + */ + String removeLinkFileLayoutMetadata(String fileLayoutId); + + /** 연계파일 레이아웃 엔티티 목록을 조회한다. * @param sggCd 시군구코드, taskSeCd 과태료구분, instCd 기관코드, deptCd 부서코드 * @return 연계파일 레이아웃 정보 */ diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngBean.java index 741347ec..1c3b6429 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngBean.java @@ -8,6 +8,7 @@ import org.assertj.core.util.Arrays; import org.springframework.stereotype.Component; import cokr.xit.fims.cmmn.CmmnUtil; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.ExmptnVhcl; @@ -401,7 +402,93 @@ public class CrdnStngBean extends AbstractComponent { } - /** 연계파일 레이아웃 정보를 조회한다. + /** 연계파일 레이아웃 목록을 조회한다. + * @param query 연계파일 레이아웃 조회조건 + * @return 연계파일 레이아웃 목록 + */ + public List getLinkFileLayoutMetadataList(CrdnQuery query) { + query.setOrderBy("FILE_LAYOUT_ID"); + return crdnStngMapper.selectLinkFileLayoutMetadataList(query); + } + + /** 연계파일 레이아웃 상세정보를 조회한다. + * @param fileLayoutId 파일 레이아웃 ID + * @return 연계파일 레이아웃 상세정보 + */ + public DataObject getLinkFileLayoutMetadataInfo(String fileLayoutId) { + return crdnStngMapper.selectLinkFileLayoutMetadataInfo(fileLayoutId); + } + + /**장비단속파일 레이아웃 정보를 등록한다. + * @param layoutDescriptor 레이아웃 정보, remoteSystemInfo 파일연계 원격시스템 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + DataObject params = new DataObject(); + params.set("currentUser", currentUser()); + params.set("layoutDescriptor", layoutDescriptor); + params.set("remoteSystemInfo", remoteSystemInfo); + + int effected = 0; + effected += crdnStngMapper.insertCrdnFileLayout(params); + effected += crdnStngMapper.insertFtpInfo(params); + if(effected != 2) { + throw new RuntimeException("[F]레이아웃 등록 중 오류가 발생하였습니다."); + } + return true; + } + + /**장비단속파일 레이아웃 정보를 수정한다. + * @param layoutDescriptor 레이아웃 정보, remoteSystemInfo 파일연계 원격시스템 정보 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + DataObject params = new DataObject(); + params.set("currentUser", currentUser()); + params.set("layoutDescriptor", layoutDescriptor); + params.set("remoteSystemInfo", remoteSystemInfo); + + int effected = 0; + effected += crdnStngMapper.updateCrdnFileLayout(params); + + DataObject remoteInfo = crdnStngMapper.selectRemoteInfo(layoutDescriptor.getFileLayoutId()); + if(remoteInfo == null) { + effected += crdnStngMapper.insertFtpInfo(params); + } else { + effected += crdnStngMapper.updateFtpInfo(params); + } + + if(effected != 2) { + throw new RuntimeException("[F]레이아웃 수정 중 오류가 발생하였습니다."); + } + return true; + } + + /**장비단속파일 레이아웃 정보를 삭제한다. + * @param fileLayoutId 파일 레이아웃 ID + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + public boolean removeLinkFileLayoutMetadata(String fileLayoutId) { + DataObject params = new DataObject(); + params.set("currentUser", currentUser()); + params.set("fileLayoutId", fileLayoutId); + int effected = crdnStngMapper.deleteCrdnFileLayout(params); + if(effected != 1) { + return false; + } + return true; + } + + /** 연계파일 레이아웃 엔티티 목록을 조회한다. * @param query 연계파일 레이아웃 조회조건 * @return 연계파일 레이아웃 정보 */ @@ -571,7 +658,4 @@ public class CrdnStngBean extends AbstractComponent { return exmptnVhclMapper.selectExemptionVehicleHistoryList(exmptnVhclId); } - - - } diff --git a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngServiceBean.java b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngServiceBean.java index 3a045e30..2a2fc13d 100644 --- a/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngServiceBean.java +++ b/src/main/java/cokr/xit/fims/crdn/service/bean/CrdnStngServiceBean.java @@ -6,6 +6,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.ExmptnVhcl; import cokr.xit.fims.crdn.Team; @@ -20,6 +21,31 @@ public class CrdnStngServiceBean extends AbstractServiceBean implements CrdnStng @Resource(name="crdnStngBean") protected CrdnStngBean crdnStngBean; + @Override + public List getLinkFileLayoutMetadataList(CrdnQuery query) { + return crdnStngBean.getLinkFileLayoutMetadataList(query); + } + + @Override + public DataObject getLinkFileLayoutMetadataInfo(String fileLayoutId) { + return crdnStngBean.getLinkFileLayoutMetadataInfo(fileLayoutId); + } + + @Override + public String createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return crdnStngBean.createLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo) ? "[S]" : "[F]"; + } + + @Override + public String updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return crdnStngBean.updateLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo) ? "[S]" : "[F]"; + } + + @Override + public String removeLinkFileLayoutMetadata(String fileLayoutId) { + return crdnStngBean.removeLinkFileLayoutMetadata(fileLayoutId) ? "[S]" : "[F]"; + } + @Override public List getLinkFileLayoutMetadata(String sggCd, String taskSeCd, String instCd, String deptCd) { CrdnQuery query = new CrdnQuery(); diff --git a/src/main/java/cokr/xit/fims/crdn/web/Crdn01Controller.java b/src/main/java/cokr/xit/fims/crdn/web/Crdn01Controller.java new file mode 100644 index 00000000..b8abe080 --- /dev/null +++ b/src/main/java/cokr/xit/fims/crdn/web/Crdn01Controller.java @@ -0,0 +1,163 @@ +package cokr.xit.fims.crdn.web; + +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.base.code.CommonCode; +import cokr.xit.base.user.ManagedUser; +import cokr.xit.base.user.dao.UserMapper; +import cokr.xit.base.web.ApplicationController; +import cokr.xit.fims.cmmn.CmmnQuery; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; +import cokr.xit.fims.cmmn.service.bean.StngBean; +import cokr.xit.fims.crdn.CrdnQuery; +import cokr.xit.fims.crdn.receive.eqpmnt.LayoutDescriptor; +import cokr.xit.fims.crdn.service.CrdnStngService; +import cokr.xit.foundation.data.DataObject; + +/**장비단속레이아웃 관리 서비스 웹 컨트롤러.
+ * {웹 컨텍스트}/crdn/crdn01 로 접근할 수 있다. + * @author leebj + */ +public class Crdn01Controller extends ApplicationController { + + public static final String CLASS_URL = "/crdn/crdn01"; + + public class METHOD_URL { + public static final String + linkFileLayoutMain = "/010/main.do", + getLinkFileLayoutMetadataList = "/010/list.do", + getLinkFileLayoutMetadataInfo = "/020/info.do", + createLinkFileLayoutMetadata = "/020/create.do", + updateLinkFileLayoutMetadata = "/020/update.do", + removeLinkFileLayoutMetadata = "/020/remove.do" + ; + } + + @Resource(name = "stngBean") + private StngBean stngBean; + + @Resource(name = "userMapper") + private UserMapper userMapper; + + @Resource(name = "crdnStngService") + private CrdnStngService crdnStngService; + + /** 장비단속레이아웃 관리 메인화면을 연다. + * @return fims/crdn/crdn01010-main + */ + public ModelAndView linkFileLayoutMain() { + ModelAndView mav = new ModelAndView(); + mav.setViewName("fims/crdn/crdn01010-main"); + mav.addObject("pageName", "crdn01010"); + + Map> commonCodes = getCodesOf("FIM002", "FIM003","FIM054"); + mav.addObject("FIM002List", commonCodes.get("FIM002")); + mav.addObject("FIM003List", commonCodes.get("FIM003")); + mav.addObject("FIM054List", commonCodes.get("FIM054")); + mav.addObject("TaskListForSgg", stngBean.filterTaskSectionCodeForSgg(commonCodes.get("FIM054"))); + addCodes(commonCodes, mav, "FIM002", "FIM003"); + + return mav; + } + + /**장비단속 레이아웃 목록을 조회한다.
+ * {@link CrdnStngService#getLinkFileLayoutMetadataList(CmmnQuery)} 참고 + * @param query 장비단속 레이아웃 목록 조회 조건 + * @return jsonView + */ + public ModelAndView getLinkFileLayoutMetadataList(CrdnQuery query) { + ModelAndView mav = new ModelAndView("jsonView"); + setFetchSize(query); + + ManagedUser currentUser = userMapper.getUser(currentUser().getAccount(), currentUser().getInstitute()); + String sggCd = currentUser.getOrgID(); + query.setSggCd(sggCd); + List list = crdnStngService.getLinkFileLayoutMetadataList(query); + return setCollectionInfo(mav, list,"",""); + } + + /**장비단속 레이아웃 상세정보를 조회한다.
+ * @param query 장비단속 레이아웃 목록 조회 조건 + * @return jsonView + */ + public ModelAndView getLinkFileLayoutMetadataInfo(HttpServletRequest hReq, String fileLayoutId) { + boolean json = jsonResponse(); + + ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/crdn/crdn01020-info"); + mav.addObject("pageName", "crdn01020"); + + ManagedUser currentUser = userMapper.getUser(currentUser().getAccount(), currentUser().getInstitute()); + String sggCd = currentUser.getOrgID(); + mav.addObject("sggCd", sggCd); + + DataObject info = new DataObject(); + if(!ifEmpty(fileLayoutId, ()->"").equals("")) { + info = crdnStngService.getLinkFileLayoutMetadataInfo(fileLayoutId); + } else { + info = null; + } + mav.addObject("layoutInfo", json ? info : toJson(info)); + + String urlTaskSeCd = hReq.getServletPath().split("/")[1]; + mav.addObject("taskSeCd", urlTaskSeCd); + return mav; + } + + /**장비단속파일 레이아웃을 등록한다.
+ * @param + * @return jsonView + */ + public ModelAndView createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + + ModelAndView mav = new ModelAndView("jsonView"); + boolean saved = false; + + String rtnMsg = crdnStngService.createLinkFileLayoutMetadata(layoutDescriptor,remoteSystemInfo); + if(rtnMsg.contains("[S]")) { + saved = true; + } + mav.addObject("saved", saved); + return mav; + } + + /**장비단속파일 레이아웃을 수정한다.
+ * @param + * @return jsonView + */ + public ModelAndView updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + + ModelAndView mav = new ModelAndView("jsonView"); + boolean saved = false; + + String rtnMsg = crdnStngService.updateLinkFileLayoutMetadata(layoutDescriptor,remoteSystemInfo); + if(rtnMsg.contains("[S]")) { + saved = true; + } + mav.addObject("saved", saved); + return mav; + } + + /**장비단속파일 레이아웃을 삭제한다.
+ * @param fileLayoutId 파일 레이아웃 ID + * @return jsonView + */ + public ModelAndView removeLinkFileLayoutMetadata(String fileLayoutId) { + + ModelAndView mav = new ModelAndView("jsonView"); + boolean saved = false; + + String rtnMsg = crdnStngService.removeLinkFileLayoutMetadata(fileLayoutId); + if(rtnMsg.contains("[S]")) { + saved = true; + } + mav.addObject("saved", saved); + return mav; + } + +} diff --git a/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java b/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java index adff2675..e2ee5c37 100644 --- a/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java +++ b/src/main/java/cokr/xit/fims/crdn/web/Crdn05Controller.java @@ -165,7 +165,7 @@ public class Crdn05Controller extends ApplicationController { for(int i=0; i < layoutDescriptors.size(); i++) { DataObject remoteInfo = crdnStngMapper.selectRemoteInfo(layoutDescriptors.get(i).getFileLayoutId()); - if(remoteInfo == null) { + if(remoteInfo == null || remoteInfo.string("REMOTE_IP").equals("")) { continue; } diff --git a/src/main/java/cokr/xit/fims/task/web/BpvController.java b/src/main/java/cokr/xit/fims/task/web/BpvController.java index 1aec4d62..8e977037 100644 --- a/src/main/java/cokr/xit/fims/task/web/BpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/BpvController.java @@ -7,10 +7,12 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.ExmptnVhcl; import cokr.xit.fims.crdn.Team; +import cokr.xit.fims.crdn.receive.eqpmnt.LayoutDescriptor; import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.excl.CrdnReReg; import cokr.xit.fims.excl.LevyExcl; @@ -191,6 +193,42 @@ public class BpvController { } + @Controller + @RequestMapping(name="전용차로과태료업무 장비단속파일 레이아웃 관리 업무", value=CLASS_URL+Crdn01Controller.CLASS_URL) + class Crdn01Controller extends cokr.xit.fims.crdn.web.Crdn01Controller { + + @Override + @RequestMapping(name="전용차로과태료업무 장비단속파일 레이아웃 목록 조회", value=METHOD_URL.getLinkFileLayoutMetadataList) + public ModelAndView getLinkFileLayoutMetadataList(CrdnQuery query) { + return super.getLinkFileLayoutMetadataList(query); + } + + @Override + @RequestMapping(name="전용차로과태료업무 장비단속파일 레이아웃 상세정보 조회", value=METHOD_URL.getLinkFileLayoutMetadataInfo) + public ModelAndView getLinkFileLayoutMetadataInfo(HttpServletRequest hReq, String fileLayoutId) { + return super.getLinkFileLayoutMetadataInfo(hReq, fileLayoutId); + } + + @Override + @RequestMapping(name="전용차로과태료업무 장비단속파일 레이아웃 등록", value=METHOD_URL.createLinkFileLayoutMetadata) + public ModelAndView createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.createLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="전용차로과태료업무 장비단속파일 레이아웃 수정", value=METHOD_URL.updateLinkFileLayoutMetadata) + public ModelAndView updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.updateLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="전용차로과태료업무 장비단속파일 레이아웃 삭제", value=METHOD_URL.removeLinkFileLayoutMetadata) + public ModelAndView removeLinkFileLayoutMetadata(String fileLayoutId) { + return super.removeLinkFileLayoutMetadata(fileLayoutId); + } + + } + @Controller @RequestMapping(name="전용차로과태료업무 단속자료검사 업무", value=CLASS_URL+Crdn02Controller.CLASS_URL) class Crdn02Controller extends cokr.xit.fims.crdn.web.Crdn02Controller { diff --git a/src/main/java/cokr/xit/fims/task/web/CmnController.java b/src/main/java/cokr/xit/fims/task/web/CmnController.java index 3c1779e2..cd7341db 100644 --- a/src/main/java/cokr/xit/fims/task/web/CmnController.java +++ b/src/main/java/cokr/xit/fims/task/web/CmnController.java @@ -104,6 +104,20 @@ public class CmnController { } } + @Controller + @RequestMapping(name="장비단속 레이아웃 설정 관리", value=Crdn01Controller.CLASS_URL) + class Crdn01Controller extends cokr.xit.fims.crdn.web.Crdn01Controller { + + /** 장비단속 레이아웃 설정 관리 메인화면을 연다. + * @return fims/crdn/crdn01010-main + */ + @Override + @RequestMapping(name="장비단속 레이아웃 설정 관리 메인", value=METHOD_URL.linkFileLayoutMain) + public ModelAndView linkFileLayoutMain() { + return super.linkFileLayoutMain(); + } + } + @Controller @RequestMapping(name="단속 자료 검사", value=Crdn02Controller.CLASS_URL) class Crdn02Controller extends cokr.xit.fims.crdn.web.Crdn02Controller { diff --git a/src/main/java/cokr/xit/fims/task/web/DpvController.java b/src/main/java/cokr/xit/fims/task/web/DpvController.java index 6ecbfe34..6c76bdd1 100644 --- a/src/main/java/cokr/xit/fims/task/web/DpvController.java +++ b/src/main/java/cokr/xit/fims/task/web/DpvController.java @@ -8,8 +8,10 @@ import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import cokr.xit.fims.cmmn.PrintOption; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.CrdnQuery; +import cokr.xit.fims.crdn.receive.eqpmnt.LayoutDescriptor; import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.epst.EpostGdcc; import cokr.xit.fims.epst.EpostQuery; @@ -208,6 +210,42 @@ public class DpvController { } + @Controller + @RequestMapping(name="장애인과태료업무 장비단속파일 레이아웃 관리 업무", value=CLASS_URL+Crdn01Controller.CLASS_URL) + class Crdn01Controller extends cokr.xit.fims.crdn.web.Crdn01Controller { + + @Override + @RequestMapping(name="장애인과태료업무 장비단속파일 레이아웃 목록 조회", value=METHOD_URL.getLinkFileLayoutMetadataList) + public ModelAndView getLinkFileLayoutMetadataList(CrdnQuery query) { + return super.getLinkFileLayoutMetadataList(query); + } + + @Override + @RequestMapping(name="장애인과태료업무 장비단속파일 레이아웃 상세정보 조회", value=METHOD_URL.getLinkFileLayoutMetadataInfo) + public ModelAndView getLinkFileLayoutMetadataInfo(HttpServletRequest hReq, String fileLayoutId) { + return super.getLinkFileLayoutMetadataInfo(hReq, fileLayoutId); + } + + @Override + @RequestMapping(name="장애인과태료업무 장비단속파일 레이아웃 등록", value=METHOD_URL.createLinkFileLayoutMetadata) + public ModelAndView createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.createLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="장애인과태료업무 장비단속파일 레이아웃 수정", value=METHOD_URL.updateLinkFileLayoutMetadata) + public ModelAndView updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.updateLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="장애인과태료업무 장비단속파일 레이아웃 삭제", value=METHOD_URL.removeLinkFileLayoutMetadata) + public ModelAndView removeLinkFileLayoutMetadata(String fileLayoutId) { + return super.removeLinkFileLayoutMetadata(fileLayoutId); + } + + } + @Controller @RequestMapping(name="장애인과태료업무 단속자료검사 업무", value=CLASS_URL+Crdn02Controller.CLASS_URL) class Crdn02Controller extends cokr.xit.fims.crdn.web.Crdn02Controller { diff --git a/src/main/java/cokr/xit/fims/task/web/EcaController.java b/src/main/java/cokr/xit/fims/task/web/EcaController.java index fccae81e..6d0a10ef 100644 --- a/src/main/java/cokr/xit/fims/task/web/EcaController.java +++ b/src/main/java/cokr/xit/fims/task/web/EcaController.java @@ -7,8 +7,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.CrdnQuery; +import cokr.xit.fims.crdn.receive.eqpmnt.LayoutDescriptor; import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.excl.CrdnReReg; import cokr.xit.fims.excl.LevyExcl; @@ -189,6 +191,42 @@ public class EcaController { } + @Controller + @RequestMapping(name="전기차과태료업무 장비단속파일 레이아웃 관리 업무", value=CLASS_URL+Crdn01Controller.CLASS_URL) + class Crdn01Controller extends cokr.xit.fims.crdn.web.Crdn01Controller { + + @Override + @RequestMapping(name="전기차과태료업무 장비단속파일 레이아웃 목록 조회", value=METHOD_URL.getLinkFileLayoutMetadataList) + public ModelAndView getLinkFileLayoutMetadataList(CrdnQuery query) { + return super.getLinkFileLayoutMetadataList(query); + } + + @Override + @RequestMapping(name="전기차과태료업무 장비단속파일 레이아웃 상세정보 조회", value=METHOD_URL.getLinkFileLayoutMetadataInfo) + public ModelAndView getLinkFileLayoutMetadataInfo(HttpServletRequest hReq, String fileLayoutId) { + return super.getLinkFileLayoutMetadataInfo(hReq, fileLayoutId); + } + + @Override + @RequestMapping(name="전기차과태료업무 장비단속파일 레이아웃 등록", value=METHOD_URL.createLinkFileLayoutMetadata) + public ModelAndView createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.createLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="전기차과태료업무 장비단속파일 레이아웃 수정", value=METHOD_URL.updateLinkFileLayoutMetadata) + public ModelAndView updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.updateLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="전기차과태료업무 장비단속파일 레이아웃 삭제", value=METHOD_URL.removeLinkFileLayoutMetadata) + public ModelAndView removeLinkFileLayoutMetadata(String fileLayoutId) { + return super.removeLinkFileLayoutMetadata(fileLayoutId); + } + + } + @Controller @RequestMapping(name="전기차과태료업무 단속자료검사 업무", value=CLASS_URL+Crdn02Controller.CLASS_URL) class Crdn02Controller extends cokr.xit.fims.crdn.web.Crdn02Controller { diff --git a/src/main/java/cokr/xit/fims/task/web/PvsController.java b/src/main/java/cokr/xit/fims/task/web/PvsController.java index a62c1e11..8722e485 100644 --- a/src/main/java/cokr/xit/fims/task/web/PvsController.java +++ b/src/main/java/cokr/xit/fims/task/web/PvsController.java @@ -7,9 +7,11 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; +import cokr.xit.fims.cmmn.ftp.RemoteSystemInfo; import cokr.xit.fims.crdn.Crdn; import cokr.xit.fims.crdn.CrdnQuery; import cokr.xit.fims.crdn.Team; +import cokr.xit.fims.crdn.receive.eqpmnt.LayoutDescriptor; import cokr.xit.fims.cvlc.CrdnCvlcpt; import cokr.xit.fims.excl.CrdnReReg; import cokr.xit.fims.excl.LevyExcl; @@ -190,6 +192,42 @@ public class PvsController { } + @Controller + @RequestMapping(name="주정차과태료업무 장비단속파일 레이아웃 관리 업무", value=CLASS_URL+Crdn01Controller.CLASS_URL) + class Crdn01Controller extends cokr.xit.fims.crdn.web.Crdn01Controller { + + @Override + @RequestMapping(name="주정차과태료업무 장비단속파일 레이아웃 목록 조회", value=METHOD_URL.getLinkFileLayoutMetadataList) + public ModelAndView getLinkFileLayoutMetadataList(CrdnQuery query) { + return super.getLinkFileLayoutMetadataList(query); + } + + @Override + @RequestMapping(name="주정차과태료업무 장비단속파일 레이아웃 상세정보 조회", value=METHOD_URL.getLinkFileLayoutMetadataInfo) + public ModelAndView getLinkFileLayoutMetadataInfo(HttpServletRequest hReq, String fileLayoutId) { + return super.getLinkFileLayoutMetadataInfo(hReq, fileLayoutId); + } + + @Override + @RequestMapping(name="주정차과태료업무 장비단속파일 레이아웃 등록", value=METHOD_URL.createLinkFileLayoutMetadata) + public ModelAndView createLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.createLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="주정차과태료업무 장비단속파일 레이아웃 수정", value=METHOD_URL.updateLinkFileLayoutMetadata) + public ModelAndView updateLinkFileLayoutMetadata(LayoutDescriptor layoutDescriptor, RemoteSystemInfo remoteSystemInfo) { + return super.updateLinkFileLayoutMetadata(layoutDescriptor, remoteSystemInfo); + } + + @Override + @RequestMapping(name="주정차과태료업무 장비단속파일 레이아웃 삭제", value=METHOD_URL.removeLinkFileLayoutMetadata) + public ModelAndView removeLinkFileLayoutMetadata(String fileLayoutId) { + return super.removeLinkFileLayoutMetadata(fileLayoutId); + } + + } + @Controller @RequestMapping(name="주정차과태료업무 단속자료검사 업무", value=CLASS_URL+Crdn02Controller.CLASS_URL) class Crdn02Controller extends cokr.xit.fims.crdn.web.Crdn02Controller { diff --git a/src/main/resources/sql/mapper/fims/crdn/crdn-stng-mapper.xml b/src/main/resources/sql/mapper/fims/crdn/crdn-stng-mapper.xml index c2accb92..8088d3aa 100644 --- a/src/main/resources/sql/mapper/fims/crdn/crdn-stng-mapper.xml +++ b/src/main/resources/sql/mapper/fims/crdn/crdn-stng-mapper.xml @@ -46,6 +46,198 @@ SELECT STDG_CD AND SUBSTR(STDG_CD,1,5) = #{sggCd} + + + + + + +/* 연계파일 레이아웃 등록(crdnStngMapper.insertCrdnFileLayout) */ + +SELECT + LPAD(CAST(IFNULL(MAX(FILE_LAYOUT_ID) + 1, 1) AS INT), 10, '0') + AS NEW_ID +FROM TB_CRDN_FILE_LAYOUT + +INSERT + INTO TB_CRDN_FILE_LAYOUT ( + FILE_LAYOUT_ID + , SGG_CD + , TASK_SE_CD + , INST_CD + , DEPT_CD + , DATA_FILE_SE + , FILE_NM_SZ + , FILE_NM_SE_TYPE + , FILE_NM_LAYOUT + , DATA_SE_TYPE1 + , DATA_LAYOUT1 + , DATA_SE_TYPE2 + , DATA_LAYOUT2 + , FILE_TNOCS + , LINK_FILE_PATH + , ENT_NM + , SAME_ITEMS + , INCREASE_ITEM + , INCREASE_TYPE + , USE_YN + , REG_DT + , RGTR + , MDFCN_DT + , MDFR + ) VALUES ( + #{layoutDescriptor.fileLayoutId} + , #{layoutDescriptor.sggCd} + , #{layoutDescriptor.taskSeCd} + , #{layoutDescriptor.instCd} + , #{layoutDescriptor.deptCd} + , #{layoutDescriptor.fileGroup} + , #{layoutDescriptor.fileNameLength} + , #{layoutDescriptor.fileNameSeperator} + , #{layoutDescriptor.fileNameItmes} + , #{layoutDescriptor.contentSeperator} + , #{layoutDescriptor.contentItems} + , #{layoutDescriptor.contentSecondSeperator} + , #{layoutDescriptor.secondSeperatorStarterItems} + , #{layoutDescriptor.countPerFileGroup} + , #{layoutDescriptor.linkFileLocation} + , #{layoutDescriptor.enterpriseName} + , #{layoutDescriptor.sameItemsInFileGroup} + , #{layoutDescriptor.increaseItemInFileGroup} + , #{layoutDescriptor.increaseTypeInFileGroup} + , 'Y' + , + , #{currentUser.id} + , + , #{currentUser.id} + ) + + + +/* 파일연계 원격지 정보 등록(crdnStngMapper.insertFtpInfo) */ +INSERT + INTO TB_FTP_INFO ( + FILE_LAYOUT_ID + , REMOTE_IP + , REMOTE_ID + , REMOTE_PASSWORD + , REMOTE_OS + , REMOTE_WORK_PATH + , LINK_ENT_NM + ) VALUES ( + #{layoutDescriptor.fileLayoutId} + , #{remoteSystemInfo.ip} + , #{remoteSystemInfo.id} + , #{remoteSystemInfo.pw} + , #{remoteSystemInfo.osType} + , #{remoteSystemInfo.workPath} + , #{layoutDescriptor.linkEnterpriseName} + ) + + + +/* 연계파일 레이아웃 수정(crdnStngMapper.updateCrdnFileLayout) */ +UPDATE TB_CRDN_FILE_LAYOUT + SET SGG_CD = #{layoutDescriptor.sggCd} + , TASK_SE_CD = #{layoutDescriptor.taskSeCd} + , INST_CD = #{layoutDescriptor.instCd} + , DEPT_CD = #{layoutDescriptor.deptCd} + , DATA_FILE_SE = #{layoutDescriptor.fileGroup} + , FILE_NM_SZ = #{layoutDescriptor.fileNameLength} + , FILE_NM_SE_TYPE = #{layoutDescriptor.fileNameSeperator} + , FILE_NM_LAYOUT = #{layoutDescriptor.fileNameItmes} + , DATA_SE_TYPE1 = #{layoutDescriptor.contentSeperator} + , DATA_LAYOUT1 = #{layoutDescriptor.contentItems} + , DATA_SE_TYPE2 = #{layoutDescriptor.contentSecondSeperator} + , DATA_LAYOUT2 = #{layoutDescriptor.secondSeperatorStarterItems} + , FILE_TNOCS = #{layoutDescriptor.countPerFileGroup} + , LINK_FILE_PATH = #{layoutDescriptor.linkFileLocation} + , ENT_NM = #{layoutDescriptor.enterpriseName} + , SAME_ITEMS = #{layoutDescriptor.sameItemsInFileGroup} + , INCREASE_ITEM = #{layoutDescriptor.increaseItemInFileGroup} + , INCREASE_TYPE = #{layoutDescriptor.increaseTypeInFileGroup} + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE FILE_LAYOUT_ID = #{layoutDescriptor.fileLayoutId} + + + +/* 파일연계 원격지 정보 수정(crdnStngMapper.updateFtpInfo) */ +UPDATE TB_FTP_INFO + SET REMOTE_IP = #{remoteSystemInfo.ip} + , REMOTE_ID = #{remoteSystemInfo.id} + , REMOTE_PASSWORD = #{remoteSystemInfo.pw} + , REMOTE_OS = #{remoteSystemInfo.osType} + , REMOTE_WORK_PATH = #{remoteSystemInfo.workPath} + , LINK_ENT_NM = #{layoutDescriptor.linkEnterpriseName} + WHERE FILE_LAYOUT_ID = #{layoutDescriptor.fileLayoutId} + + + +/* 연계파일 레이아웃 삭제(crdnStngMapper.deleteCrdnFileLayout) */ +UPDATE TB_CRDN_FILE_LAYOUT + SET USE_YN = 'N' + , MDFCN_DT = + , MDFR = #{currentUser.id} + WHERE FILE_LAYOUT_ID = #{fileLayoutId} + + diff --git a/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01010-main.jsp new file mode 100644 index 00000000..a0c1dbaa --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01010-main.jsp @@ -0,0 +1,334 @@ +<%@ 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/fims/crdn/crdn01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01020-info.jsp new file mode 100644 index 00000000..b7a2ef0c --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/fims/crdn/crdn01020-info.jsp @@ -0,0 +1,363 @@ +<%@ 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/include/top.jsp b/src/main/webapp/WEB-INF/jsp/include/top.jsp index da58a76f..f1e5d70c 100644 --- a/src/main/webapp/WEB-INF/jsp/include/top.jsp +++ b/src/main/webapp/WEB-INF/jsp/include/top.jsp @@ -167,7 +167,7 @@