diff --git a/src/main/java/cokr/xit/fims/mngt/MsgEntity.java b/src/main/java/cokr/xit/fims/mngt/MsgEntity.java new file mode 100644 index 00000000..46bf50fe --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/MsgEntity.java @@ -0,0 +1,310 @@ +package cokr.xit.fims.mngt; + +import cokr.xit.foundation.AbstractEntity; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class MsgEntity extends AbstractEntity { + /** + * 고유번호 + */ + private String msgKey; + + /** + * G/W에 전송할 아이디 + */ + private String msgSubId; + + /** + * 사용자 고유 번호 + */ + private String userKey; + + /** + * 사용자 그룹 + */ + private String userGroup; + + /** + * 사용자 고유 아이디 + */ + private String userId; + + /** + * 사용자 JOB 아이디 + */ + private String userJobid; + + /** + * 전송라인(추후 요구 시 사용) + */ + private String centerKey; + + /** + * 메시지 전송 우선 순위(추후 요구 시 사용) + */ + private String msgPriority; + + /** + * 메시지 상태 값 + */ + private String msgState; + + /** + * 메시지 입력시간(DB 서버 시간 기준) + */ + private String inputDate; + + /** + * 메시지 예약일시 + */ + private String resDate; + + /** + * 메시지를 수집한 시간 + */ + private String queDate; + + /** + * 메시지를 전송한 시간 + */ + private String sentDate; + + /** + * 핸드폰에 전달된 시간 + */ + private String rsltDate; + + /** + * G/W에서 결과를 수신한 시간 + */ + private String reportDate; + + /** + * 결과처리 상세코드 + */ + private String rsltCode; + + /** + * 결과처리 통신사 + */ + private String rsltNet; + + /** + * 결과처리된 메시지 유형 + */ + private String rsltType; + + /** + * 결과처리 히스토리 재전송 횟수 + */ + private String sentCount; + + /** + * 결과처리 히스토리 전송 타입 + */ + private String historyMsgType; + + /** + * 결과처리 히스토리 결과처리 상세코드 + */ + private String historyRsltCode; + + /** + * 메시지 식별자코드 + */ + private String identifier; + + /** + * 수신 번호 + */ + private String phone; + + /** + * 발신 번호 + */ + private String callback; + + /** + * 전송 타입 1번째 + */ + private String msgType1; + + /** + * 메시지 내용에 대한 타입 1번째 + */ + private String contentsType1; + + /** + * 1번째 메시지 수집한 시간 + */ + private String queDate1; + + /** + * 1번째 메시지 전송한 시간 + */ + private String sentDate1; + + /** + * 전송 타입 2번째 + */ + private String msgType2; + + /** + * 메시지 내용에 대한 타입 2번째 + */ + private String contentsType2; + + /** + * 2번째 메시지 수집한 시간 + */ + private String queDate2; + + /** + * 2번째 메시지 전송한 시간 + */ + private String sentDate2; + + /** + * 전송 타입 3번째 + */ + private String msgType3; + + /** + * 메시지 내용에 대한 타입 3번째 + */ + private String contentsType3; + + /** + * 3번째 메시지 수집한 시간 + */ + private String queDate3; + + /** + * 3번째 메시지 전송한 시간 + */ + private String sentDate3; + + /** + * XMS 결과처리 상세코드 + */ + private String xmsRsltCode; + + /** + * XMS 결과처리 통신사 + */ + private String xmsRsltNet; + + /** + * XMS 핸드폰에 전달된 시간 + */ + private String xmsRsltDate; + + /** + * XMS G/W에서 결과를 수신한 시간 + */ + private String xmsReportDate; + + /** + * ALT 결과처리 상세코드 + */ + private String altRsltCode; + + /** + * ALT 결과처리 통신사 + */ + private String altRsltNet; + + /** + * ALT 핸드폰에 전달된 시간 + */ + private String altRsltDate; + + /** + * ALT G/W에서 결과를 수신한 시간 + */ + private String altReportDate; + + /** + * RCS 결과처리 상세코드 + */ + private String rcsRsltCode; + + /** + * RCS 결과처리 통신사 + */ + private String rcsRsltNet; + + /** + * RCS 핸드폰에 전달된 시간 + */ + private String rcsRsltDate; + + /** + * RCS G/W에서 결과를 수신한 시간 + */ + private String rcsReportDate; + + /** + * 메시지 타이틀(LMS/MMS) + */ + private String xmsSubject; + + /** + * 메시지 본문(SMS/LMS/MMS) + */ + private String xmsText; + + /** + * 파일경로를 포함한 파일명1(MMS) + */ + private String xmsFileName1; + + /** + * 파일경로를 포함한 파일명2(MMS) + */ + private String xmsFileName2; + + /** + * 파일경로를 포함한 파일명3(MMS) + */ + private String xmsFileName3; + + /** + * ALT 국가코드(ALT,ALI) + */ + private String altCountryCode; + + /** + * ALT 사용자 아이디(ALT,ALI) + */ + private String altSenderKey; + + /** + * ALT 등록된 템플릿 고유키(ALT,ALI) + */ + private String altTemplateCode; + + /** + * 메시지 본문(ALT,ALI) + */ + private String altJson; + + /** + * RCS 브랜드 키 + */ + private String rcsBrandKey; + + /** + * RCS 메시지 베이스 아이디 + */ + private String rcsMassageBaseId; + + /** + * 메시지 본문(RCS) + */ + private String rcsJson; + +} diff --git a/src/main/java/cokr/xit/fims/mngt/MsgQuery.java b/src/main/java/cokr/xit/fims/mngt/MsgQuery.java new file mode 100644 index 00000000..57e89586 --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/MsgQuery.java @@ -0,0 +1,37 @@ +package cokr.xit.fims.mngt; + +import cokr.xit.fims.cmmn.CmmnQuery; + +public class MsgQuery extends CmmnQuery { + + private static final long serialVersionUID = 1L; + + private String schInputDateFrom; + + private String schInputDateTo; + + private String msgPrps; //고장신고,사전알림,주차신고민원 + private String msgDtlPrps; + + private String callback; + private String phone; + private String msgState; + + public String getSchInputDateFrom() { + return ifEmpty(schInputDateFrom, () -> null); + } + + public T setSchInputDateFrom(String schInputDateFrom) { + this.schInputDateFrom = schInputDateFrom; + return self(); + } + + public String getSchInputDateTo() { + return ifEmpty(schInputDateTo, () -> null); + } + + public T setSchInputDateTo(String schInputDateTo) { + this.schInputDateTo = schInputDateTo; + return self(); + } +} diff --git a/src/main/java/cokr/xit/fims/mngt/dao/MsgMapper.java b/src/main/java/cokr/xit/fims/mngt/dao/MsgMapper.java new file mode 100644 index 00000000..9a85dc16 --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/dao/MsgMapper.java @@ -0,0 +1,19 @@ +package cokr.xit.fims.mngt.dao; + +import java.util.List; + +import org.egovframe.rte.psl.dataaccess.mapper.Mapper; + +import cokr.xit.fims.mngt.MsgEntity; +import cokr.xit.fims.mngt.MsgQuery; +import cokr.xit.foundation.component.AbstractMapper; +import cokr.xit.foundation.data.DataObject; + +@Mapper("msgMapper") +public interface MsgMapper extends AbstractMapper { + + int insert(MsgEntity msgEntity); + + List selectList(MsgQuery msgQuery); + +} diff --git a/src/main/java/cokr/xit/fims/mngt/service/MsgService.java b/src/main/java/cokr/xit/fims/mngt/service/MsgService.java new file mode 100644 index 00000000..bb7f514a --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/service/MsgService.java @@ -0,0 +1,16 @@ +package cokr.xit.fims.mngt.service; + +import java.util.List; + +import cokr.xit.fims.mngt.MsgEntity; +import cokr.xit.fims.mngt.MsgQuery; +import cokr.xit.foundation.data.DataObject; + + +public interface MsgService { + + void regist(MsgEntity msgEntity); + + List getList(MsgQuery msgQuery); + +} diff --git a/src/main/java/cokr/xit/fims/mngt/service/bean/MsgBean.java b/src/main/java/cokr/xit/fims/mngt/service/bean/MsgBean.java new file mode 100644 index 00000000..2621ca16 --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/service/bean/MsgBean.java @@ -0,0 +1,32 @@ +package cokr.xit.fims.mngt.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Component; + +import cokr.xit.fims.mngt.MsgEntity; +import cokr.xit.fims.mngt.MsgQuery; +import cokr.xit.fims.mngt.dao.MsgMapper; +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.foundation.data.DataObject; + +@Component("msgBean") +public class MsgBean extends AbstractBean { + + @Resource(name="msgMapper") + private MsgMapper msgMapper; + + public void regist(MsgEntity msgEntity) { + msgMapper.insert(msgEntity); + } + + public List getList(MsgQuery msgQuery) { + if(ifEmpty(msgQuery.getOrderBy(), ()->"").equals("")) { + msgQuery.setOrderBy("MSG_KEY"); + } + return msgMapper.selectList(msgQuery); + } + +} diff --git a/src/main/java/cokr/xit/fims/mngt/service/bean/MsgServiceBean.java b/src/main/java/cokr/xit/fims/mngt/service/bean/MsgServiceBean.java new file mode 100644 index 00000000..0f0c0673 --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/service/bean/MsgServiceBean.java @@ -0,0 +1,31 @@ +package cokr.xit.fims.mngt.service.bean; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.fims.mngt.MsgEntity; +import cokr.xit.fims.mngt.MsgQuery; +import cokr.xit.fims.mngt.service.MsgService; +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.foundation.data.DataObject; + +@Service("msgService") +public class MsgServiceBean extends AbstractServiceBean implements MsgService { + + @Resource(name="msgBean") + private MsgBean msgBean; + + @Override + public void regist(MsgEntity msgEntity) { + msgBean.regist(msgEntity); + } + + @Override + public List getList(MsgQuery msgQuery) { + return msgBean.getList(msgQuery); + } + +} diff --git a/src/main/java/cokr/xit/fims/mngt/web/Mngt03Controller.java b/src/main/java/cokr/xit/fims/mngt/web/Mngt03Controller.java new file mode 100644 index 00000000..e6fc9e52 --- /dev/null +++ b/src/main/java/cokr/xit/fims/mngt/web/Mngt03Controller.java @@ -0,0 +1,60 @@ +package cokr.xit.fims.mngt.web; + +import java.util.List; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.base.web.ApplicationController; +import cokr.xit.fims.mngt.MsgQuery; +import cokr.xit.fims.mngt.service.MsgService; +import cokr.xit.foundation.data.DataObject; + +@Controller +@RequestMapping(name="문자전송 관리", value=Mngt03Controller.CLASS_URL) +public class Mngt03Controller extends ApplicationController { + + public static final String CLASS_URL = "/mngt/mngt03"; + + public class METHOD_URL { + public static final String + main = "/010/main.do" // 문자전송 현황 메인 화면 + , list = "/010/list.do" // 문자전송 현황 목록 조회 + , regist = "/010/regist.do" // 문자전송 요청 등록 + ; + } + + @Resource(name="msgService") + private MsgService msgService; + + @RequestMapping(name="문자전송 현황 메인", value=METHOD_URL.main) + public ModelAndView main() { + ModelAndView mav = new ModelAndView(); + mav.setViewName("fims/mngt/mngt03010-main"); + mav.addObject("pageName", "mngt03010"); + + return mav; + } + + @RequestMapping(name="문자전송 목록", value=METHOD_URL.list) + public ModelAndView list(MsgQuery msgQuery) { + ModelAndView mav = new ModelAndView("jsonView"); + + List list = msgService.getList(msgQuery); + + return setPagingInfo(mav, list, ""); + } + + @RequestMapping(name="문자전송 요청 등록", value=METHOD_URL.regist) + public ModelAndView regist(HttpServletRequest req, DataObject spec) { + ModelAndView mav = new ModelAndView("jsonView"); + + + + return mav; + } +} diff --git a/src/main/resources/sql/mapper/fims/mngt/msg-mapper.xml b/src/main/resources/sql/mapper/fims/mngt/msg-mapper.xml new file mode 100644 index 00000000..45d68c83 --- /dev/null +++ b/src/main/resources/sql/mapper/fims/mngt/msg-mapper.xml @@ -0,0 +1,208 @@ + + + + + +/* 문자전송 요청 등록(msgMapper.insert) */ +INSERT + INTO NRMSG_DATA ( + MSG_KEY + , MSG_SUB_ID + , USER_KEY + , USER_GROUP + , USER_ID + , USER_JOBID + , CENTER_KEY + , MSG_PRIORITY + , MSG_STATE + , INPUT_DATE + , INPUT_YMD + , RES_DATE + , QUE_DATE + , SENT_DATE + , RSLT_DATE + , REPORT_DATE + , RSLT_CODE + , RSLT_NET + , RSLT_TYPE + , SENT_COUNT + , HISTORY_MSG_TYPE + , HISTORY_RSLT_CODE + , IDENTIFIER + , PHONE + , CALLBACK + , MSG_TYPE_1 + , CONTENTS_TYPE_1 + , QUE_DATE_1 + , SENT_DATE_1 + , MSG_TYPE_2 + , CONTENTS_TYPE_2 + , QUE_DATE_2 + , SENT_DATE_2 + , MSG_TYPE_3 + , CONTENTS_TYPE_3 + , QUE_DATE_3 + , SENT_DATE_3 + , XMS_RSLT_CODE + , XMS_RSLT_NET + , XMS_RSLT_DATE + , XMS_REPORT_DATE + , ALT_RSLT_CODE + , ALT_RSLT_NET + , ALT_RSLT_DATE + , ALT_REPORT_DATE + , RCS_RSLT_CODE + , RCS_RSLT_NET + , RCS_RSLT_DATE + , RCS_REPORT_DATE + , XMS_SUBJECT + , XMS_TEXT + , XMS_FILE_NAME_1 + , XMS_FILE_NAME_2 + , XMS_FILE_NAME_3 + , ALT_COUNTRY_CODE + , ALT_SENDER_KEY + , ALT_TEMPLATE_CODE + , ALT_JSON + , RCS_BRAND_KEY + , RCS_MASSAGE_BASE_ID + , RCS_JSON +) +VALUES ( + NRMSG_DATA_SEQ.NEXTVAL + , #{msgSubId} + , #{userKey} + , #{userGroup} + , #{userId} + , #{userJobid} + , #{centerKey} + , #{msgPriority} + , #{msgState} + , CURRENT_TIMESTAMP + , + , #{resDate} + , #{queDate} + , #{sentDate} + , #{rsltDate} + , #{reportDate} + , #{rsltCode} + , #{rsltNet} + , #{rsltType} + , #{sentCount} + , #{historyMsgType} + , #{historyRsltCode} + , #{identifier} + , #{phone} + , #{callback} + , #{msgType1} + , #{contentsType1} + , #{queDate1} + , #{sentDate1} + , #{msgType2} + , #{contentsType2} + , #{queDate2} + , #{sentDate2} + , #{msgType3} + , #{contentsType3} + , #{queDate3} + , #{sentDate3} + , #{xmsRsltCode} + , #{xmsRsltNet} + , #{xmsRsltDate} + , #{xmsReportDate} + , #{altRsltCode} + , #{altRsltNet} + , #{altRsltDate} + , #{altReportDate} + , #{rcsRsltCode} + , #{rcsRsltNet} + , #{rcsRsltDate} + , #{rcsReportDate} + , #{xmsSubject} + , #{xmsText} + , #{xmsFileName1} + , #{xmsFileName2} + , #{xmsFileName3} + , #{altCountryCode} + , #{altSenderKey} + , #{altTemplateCode} + , #{altJson} + , #{rcsBrandKey} + , #{rcsMassageBaseId} + , #{rcsJson} +) + + + + + \ No newline at end of file