From 00d836c9a224c78fb0cf89d3f2b69ab05c28cff8 Mon Sep 17 00:00:00 2001
From: jhjang <jhjang@maprex.co.kr>
Date: 화, 08 2월 2022 09:55:05 +0900
Subject: [PATCH] - 임포트 날짜 코드 예외처리 추가

---
 src/main/java/kr/wisestone/owl/util/CommonUtil.java |  139 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 130 insertions(+), 9 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/util/CommonUtil.java b/src/main/java/kr/wisestone/owl/util/CommonUtil.java
index 0fac1dd..801fff6 100644
--- a/src/main/java/kr/wisestone/owl/util/CommonUtil.java
+++ b/src/main/java/kr/wisestone/owl/util/CommonUtil.java
@@ -6,11 +6,13 @@
 import com.google.gson.Gson;
 import kr.wisestone.owl.domain.enumType.FileType;
 import kr.wisestone.owl.type.LikeType;
+import kr.wisestone.owl.vo.DepartmentVo;
 import kr.wisestone.owl.vo.UserVo;
 import org.apache.commons.codec.binary.*;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
 import org.apache.poi.ss.usermodel.Cell;
 import org.jsoup.Jsoup;
 import org.slf4j.Logger;
@@ -39,7 +41,11 @@
 import java.security.MessageDigest;
 import java.security.spec.KeySpec;
 import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 public class CommonUtil {
     private static final Logger LOGGER = LoggerFactory.getLogger(CommonUtil.class);
@@ -343,6 +349,24 @@
         return fileMap;
     }
 
+    //  string file �젙蹂대�� file Map �삎�깭濡� 蹂�寃쏀븳�떎.
+    public static Map<String, Object> makeFileMap(String fileName, String file, String contentType) {
+        Map<String, Object> fileMap = new HashMap<>();
+
+        try {
+            byte[] bytes = Base64.decodeBase64(file);
+
+            fileMap.put("fileName", fileName);
+            fileMap.put("fileSize", bytes.length);
+            fileMap.put("contentType", contentType);
+            fileMap.put("file", CommonUtil.bytesToFile(fileName, bytes));
+        } catch (Exception e) {
+            LOGGER.debug(e.getMessage());
+        }
+
+        return fileMap;
+    }
+
     public static String getPostDataString(Map<String, String> params) throws UnsupportedEncodingException {
         StringBuilder result = new StringBuilder();
         boolean first = true;
@@ -372,6 +396,42 @@
             multipart.transferTo(convertFile);
         } catch (IllegalStateException | IOException e) {
             LOGGER.debug("multipart �뙆�씪 file 蹂��솚 �삤瑜�");
+        }
+
+        return convertFile;
+    }
+
+    // string�쓣 �뙆�씪濡� 蹂��솚
+    public static File stringToFile(String fileName, String file) {
+
+        byte[] bytes = null;
+        try {
+            bytes = Base64.decodeBase64(file);
+
+        } catch (Exception ex) {
+            LOGGER.debug("string to bytes 蹂��솚 �삤瑜�");
+        }
+
+        if (bytes != null) {
+            return bytesToFile(fileName, bytes);
+        }
+        return  null;
+    }
+
+    // bytes瑜� �뙆�씪濡� 蹂��솚
+    public static File bytesToFile(String fileName, byte[] bytes) {
+        File convertFile = new File(WebAppUtil.getContextRealPath() + TMP_UPLOAD_FOLDER + getFileNameByUUID(fileName));
+        if (!convertFile.exists()) {
+            convertFile.mkdirs();
+        }
+
+        try{
+            FileOutputStream lFileOutputStream = new FileOutputStream(convertFile);
+            lFileOutputStream.write(bytes);
+            lFileOutputStream.close();
+
+        }catch (IllegalStateException | IOException e) {
+            LOGGER.debug("bytes �뙆�씪 file 蹂��솚 �삤瑜�");
         }
 
         return convertFile;
@@ -690,6 +750,36 @@
         return stringBuilder.toString();
     }
 
+    //  DepartmentVos �뿉�꽌 遺��꽌 �젙蹂대�� 異붿텧�빐�꽌 臾몄옄�뿴濡� 由ы꽩�빐以��떎. - 二쇰줈 �뿊�� download �뿉�꽌 �궗�슜�맂�떎.
+    public static String convertDepartmentVosToString(List<DepartmentVo> departmentVos) {
+        StringBuilder stringBuilder = new StringBuilder();
+        int count = 0;
+
+        for (DepartmentVo departmentVo : departmentVos) {
+            if (count > 0) {
+                stringBuilder.append("\n");
+            }
+
+            stringBuilder.append(departmentVo.getDepartmentName());
+            count++;
+        }
+        return stringBuilder.toString();
+    }
+
+    public static List<Date> findSearchPeriod(Date startDate, Date endDate) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(endDate);
+        List<Date> days = Lists.newArrayList();
+
+        //  �씠踰덈떖 �궇吏� 由ъ뒪�듃 媛��졇�삤湲�
+        while (cal.getTime().after(startDate)){
+            days.add(cal.getTime());
+            cal.add(Calendar.DATE, -1);
+        }
+
+        return days;
+    }
+
     //  寃��깋 �씪�옄瑜� 援ы븳�떎.
     public static List<Date> findSearchPeriod(String searchPeriod) {
         List<Date> searchDates = Lists.newArrayList();
@@ -871,17 +961,22 @@
 
         switch (cell.getCellType()) {
             case Cell.CELL_TYPE_NUMERIC :
-                double doubleValue = cell.getNumericCellValue();
-                int intValue;
+                if (HSSFDateUtil.isCellDateFormatted(cell)) {
+                    Date date = cell.getDateCellValue();
+                    cellValue = DateUtil.convertDateToStr(date, "yyyy-MM-dd hh:mm:ss");
 
-                if (doubleValue%1 == 0) {
-                    intValue = (int)doubleValue;
-                    cellValue = intValue + "";
-                }
-                else {
-                    cellValue = doubleValue + "";
-                }
+                } else {
+                    double doubleValue = cell.getNumericCellValue();
+                    int intValue;
 
+                    if (doubleValue % 1 == 0) {
+                        intValue = (int)doubleValue;
+                        cellValue = intValue + "";
+                    }
+                    else {
+                        cellValue = doubleValue + "";
+                    }
+                }
                 break;
 
             case Cell.CELL_TYPE_STRING :
@@ -919,4 +1014,30 @@
         }
     }
 
+    // 硫붿씤 url留� 異붿텧
+    public static String extractUrl(String content){
+        try {
+            String REGEX = "(http(s)?:\\/\\/)([a-z0-9\\w]+\\.*)+[a-z0-9]{2,4}";
+            Pattern p = Pattern.compile(REGEX, Pattern.CASE_INSENSITIVE);
+            Matcher m = p.matcher(content);
+            if (m.find()) {
+                return m.group();
+            }
+            return "";
+        } catch (Exception e) {
+            return "";
+        }
+    }
+
+    // 硫붿씤 url 異붿텧�쓣 �쐞�빐 http: �솗�씤
+    public static String getUrl(String fullUrl) {
+        if (fullUrl != null) {
+            if (fullUrl.indexOf("http") == -1) {
+                fullUrl = "http://" + fullUrl;
+            }
+
+            return extractUrl(fullUrl);
+        }
+        return "";
+    }
 }

--
Gitblit v1.8.0