diff --git a/src/main/java/kr/xit/fims/biz/ec/web/EcCtznSttemntController.java b/src/main/java/kr/xit/fims/biz/ec/web/EcCtznSttemntController.java index 8d0c9e82..a0e87518 100644 --- a/src/main/java/kr/xit/fims/biz/ec/web/EcCtznSttemntController.java +++ b/src/main/java/kr/xit/fims/biz/ec/web/EcCtznSttemntController.java @@ -1,5 +1,7 @@ package kr.xit.fims.biz.ec.web; +import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @@ -20,6 +22,7 @@ import kr.xit.framework.biz.cmm.model.CmmFileDTO; import kr.xit.framework.biz.cmm.service.ICmmFileService; import kr.xit.framework.core.model.ResultResponse; import kr.xit.framework.support.mybatis.MybatisUtils; +import kr.xit.framework.support.util.ConvertUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -43,13 +46,14 @@ public class EcCtznSttemntController { } @RequestMapping(value = "/ecCtznSttemntMgtPopup") - @ResponseBody + //@ResponseBody public ModelAndView ecCtznSttemntMgtPopup(final String interfaceSeqN){ ModelAndView mav = new ModelAndView(FimsConst.FIMS_JSP_BASE_PATH +"ec/ecCtznSttemntMgtPopup.popup"); CtznStmtDTO.Request reqDTO = CtznStmtDTO.Request.builder() .interfaceSeqN(interfaceSeqN) - .ctznSttemntDetailSn("01").build(); + //.ctznSttemntDetailSn("01") + .build(); mav.addObject("interfaceSeqN", interfaceSeqN); mav.addObject("ctznStmtDTO", service.findCtznStmt(reqDTO)); mav.addObject("ctznStmtDtlDTOs", service.findCtznStmtDtls(reqDTO)); diff --git a/src/main/java/kr/xit/framework/support/util/ConvertUtils.java b/src/main/java/kr/xit/framework/support/util/ConvertUtils.java index af42e632..4470b621 100644 --- a/src/main/java/kr/xit/framework/support/util/ConvertUtils.java +++ b/src/main/java/kr/xit/framework/support/util/ConvertUtils.java @@ -1,7 +1,13 @@ package kr.xit.framework.support.util; +import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; import java.util.Map; +import java.util.Objects; import org.apache.commons.beanutils.BeanUtils; @@ -22,4 +28,123 @@ public class ConvertUtils { //noinspection unchecked return (T) o; } + + /** + * Class > Map + * @param obj + * @return + */ + public static Map convertToMap(Object obj) { + try { + if (Objects.isNull(obj)) { + return Collections.emptyMap(); + } + Map convertMap = new HashMap<>(); + + Field[] fields = obj.getClass().getDeclaredFields(); + + for (Field field : fields) { + field.setAccessible(true); + convertMap.put(field.getName(), field.get(obj)); + } + return convertMap; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * Map > Class + * @param map + * @param type + * @return + * @param + */ + public static T convertToValueObject(Map map, Class type) { + try { + Objects.requireNonNull(type, "Class cannot be null"); + T instance = type.getConstructor().newInstance(); + + if (map == null || map.isEmpty()) { + return instance; + } + + Field[] fields = type.getDeclaredFields(); + + for (Map.Entry entry : map.entrySet()) { + String key = entry.getKey(); + Object value = entry.getValue(); + + for (Field field : fields) { + field.setAccessible(true); + String name = field.getName(); + + if (value != null) { + boolean isSameType = value.getClass().equals(getReferenceType(field.getType())); + boolean isSameName = key.equals(name); + + if (isSameType && isSameName) { + field.set(instance, map.get(name)); + break; + } + } + } + } + return instance; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * List > List + * @param list + * @return + */ + public static List> convertToMaps(List list) { + if (list == null || list.isEmpty()) { + return Collections.emptyList(); + } + List> convertList = new ArrayList<>(list.size()); + + for (Object obj : list) { + convertList.add(ConvertUtils.convertToMap(obj)); + } + return convertList; + } + + /** + * List > List + * @param list + * @param type + * @return + * @param + */ + public static List convertToValueObjects(List> list, Class type) { + Objects.requireNonNull(type, "Class cannot be null"); + + if (list == null || list.isEmpty()) { + return Collections.emptyList(); + } + List convertList = new ArrayList<>(list.size()); + + for (Map map : list) { + convertList.add(ConvertUtils.convertToValueObject(map, type)); + } + return convertList; + } + + private static Class getReferenceType(Class type) { + switch (type.getName()) { + case "boolean" : return Boolean.class; + case "byte" : return Byte.class; + case "short" : return Short.class; + case "char" : return Character.class; + case "int" : return Integer.class; + case "long" : return Long.class; + case "float" : return Float.class; + case "double" : return Double.class; + default : return type; + } + } } diff --git a/src/main/webapp/WEB-INF/jsp/fims/biz/ec/ecCtznSttemntMgtPopup.jsp b/src/main/webapp/WEB-INF/jsp/fims/biz/ec/ecCtznSttemntMgtPopup.jsp index 0d8623b5..75cf25a4 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/biz/ec/ecCtznSttemntMgtPopup.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/biz/ec/ecCtznSttemntMgtPopup.jsp @@ -125,6 +125,8 @@
+ + @@ -136,73 +138,69 @@ -<%-- --%> + + + - + + + + + + + + + + + + + + + + + + + + + + + + + -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -<%-- --%> -
상세
순번 + + 차량번호 -<%-- --%> -<%-- --%> -<%-- --%> + 순번단속ID -<%-- --%> -<%-- --%> + +
단속일시 + + + 단속장소 + + 위반내역 + +
GPS위도 + + GPS경도 + + 기관코드 + +
과태료코드 + + 처리상태 + + 등록일시 + + 단속ID--%> -<%-- --%> -<%--
단속일시--%> -<%-- --%> -<%-- ' readonly>--%> -<%-- 단속장소--%> -<%-- --%> -<%-- 위반내역--%> -<%-- --%> -<%--
GPS위도--%> -<%-- --%> -<%-- GPS경도--%> -<%-- --%> -<%-- 기관코드--%> -<%-- --%> -<%--
과태료코드--%> -<%-- --%> -<%-- 처리상태--%> -<%-- --%> -<%-- 등록일시--%> -<%-- --%> -<%-- ' readonly>--%> -<%--
+
@@ -299,15 +297,6 @@ **************************************************************************/ $(document).ready(function () { // orgData = $('form').serialize(); -// fnBiz.downloadImg(); -<%-- console.log('eeee');--%> -<%-- fnBiz.viewImg();--%> -<%-- //CtznStmtDTO.CtznStmtDtl--%> -<%-- --%> -<%-- '';--%> -<%-- '';--%> -<%-- --%> -<%-- --%> - + fnBiz.downloadImg(); });