package seed.com.gtm.seedfile; import java.io.File; import java.util.Date; import java.util.List; import java.util.Map; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import egovframework.rte.fdl.property.EgovPropertyService; import egovframework.rte.psl.dataaccess.util.EgovMap; import seed.com.gtm.dao.SeedFileDao; import seed.com.gtm.service.BaseService; import seed.utils.SeedDateUtil; import seed.utils.SeedProperties; import seed.utils.SeedUtils; @Service public class SeedFileService { /*AS-IS 분쟁조정은 config.properties에서 프로퍼티 호출 현재는 globals.properties 프로퍼티 호출*/ @Autowired private SeedFileDao dao; @Autowired private BaseService bservice; @Resource(name = "propertiesService") protected EgovPropertyService propertyService; //임시 파일 저장 경로 @Value("#{globalSettings['file.temp.path']}") private String globalTempPath; //파일 저장 경로 @Value("#{globalSettings['file.real.path']}") private String globalRealPath; //루트 경로 @Value("#{globalSettings['root.path']}") private String globalRootPath; public void fileInsert(Map paramMap, HttpServletRequest request, HttpSession session){ String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx")); if(siteIdx.equals("")){ siteIdx = SeedUtils.setReplaceNull(request.getParameter("siteIdx")); } String fileFuncType = (String)paramMap.get("fileFuncType"); String fileChgType = (String)paramMap.get("fileChgType"); SeedProperties seedProperties = new SeedProperties(); /*AS-IS 분쟁조정 첨부파일 경로 설정*/ /*String rootPath = null; String tempPath = seedProperties.getConfigValue("file.temp.path"); if(fileFuncType.equals("trublchargermng")){ rootPath = seedProperties.getConfigValue("root.path"); }else{ rootPath = seedProperties.getConfigValue("file.real.path"); }*/ String rootPath = null; String tempPath = globalTempPath; if(fileFuncType.equals("trublchargermng") || fileFuncType.indexOf("X-")>-1){ //gw 연동용 파일 rootPath = globalRootPath; }else{ rootPath = globalRealPath; } SeedDateUtil seedDateUtil = new SeedDateUtil(); String toDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd"); String renameDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss"); SeedUtils.setSeedMkDirs(rootPath + "/"+siteIdx+"/"+ fileFuncType); int fileCnt = 0; String[] uploadFileName = request.getParameterValues("uploadFileName"); String[] uploadFileReName = request.getParameterValues("uploadFileReName"); String[] copyContractYnList = request.getParameterValues("copyContractYn"); try { System.out.println("uploadFileName"); /*System.out.println(uploadFileName.length); */ }catch(Exception ex) { ex.printStackTrace(); } if(uploadFileName!=null && uploadFileName.length > 0){ for(int i=0; i-1){ oldFile = new File(rootPath + "/"+siteIdx+"/upload/tempFiles/"+fileFuncType+ "/" + uploadFileReNameData); }else{ oldFile = new File(tempPath + "/"+siteIdx+"/"+fileFuncType+ "/" + uploadFileReNameData); } System.out.println(oldFile.getAbsolutePath()); if(oldFile.exists()){ Long fileSize = oldFile.length(); String filePath =""; if(fileFuncType.equals("trublchargermng") || fileFuncType.indexOf("X-")>-1){ SeedUtils.setSeedFileCopy(rootPath + "/"+siteIdx+"/upload/tempFiles/"+fileFuncType+ "/" + uploadFileReNameData, rootPath + "/"+siteIdx+"/upload/uploadFiles/"+fileFuncType+"/"+reFileName+"."+fileType); filePath = rootPath + "/"+siteIdx+"/upload/uploadFiles/"+fileFuncType+"/"+reFileName+"."+fileType; }else{ //241029 - 첨부파일 복사를 위해 real 파일 생성 처리 /* File makeFile = null; makeFile = new File(rootPath + "/"+siteIdx+"/"+fileFuncType+"/"+reFileName); if(! makeFile.exists()){ //경로에 해당하는 디렉토리들을 생성 if(makeFile.getParentFile().mkdirs()){ try { makeFile.createNewFile(); //이후 파일 생성 } catch (IOException e) { // TODO Auto-generated catch block } } }*/ SeedUtils.setSeedFileCopy(tempPath + "/"+siteIdx+"/"+fileFuncType + "/" + uploadFileReNameData, rootPath + "/"+siteIdx+"/"+fileFuncType+"/"+reFileName+"."+fileType); filePath = rootPath + "/"+siteIdx+"/"+fileFuncType+"/"+reFileName+"."+fileType; } System.out.println(oldFile.getAbsolutePath()); paramMap.put("uploadFileNameData", uploadFileNameData); paramMap.put("reFileName", reFileName+"."+fileType); paramMap.put("fileSize", fileSize); paramMap.put("fileType", fileType); paramMap.put("filePath", filePath); paramMap.put("copyContractYn", copyContractYn); //파일타입에 따라서 sql분기 if(fileFuncType.equals("mediation")){ System.out.println(oldFile.getAbsolutePath()); dao.caseInsert(paramMap); }else{ System.out.println(oldFile.getAbsolutePath()); if (!"".equals(fileChgType)) { paramMap.put("fileFuncType", fileChgType); } System.out.println(paramMap.get("fileText").toString()); dao.fileInsert(paramMap); } oldFile.delete(); fileCnt = fileCnt+1; } } } } public void fileInsertEgov(EgovMap paramMap, HttpServletRequest request, HttpSession session)throws Exception { System.out.println(">>>>>>>fileInsertEgov<<<<<<<<<"); try { String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx")); if(siteIdx.equals("")){ siteIdx = SeedUtils.setReplaceNull(request.getParameter("siteIdx")); } String fileFuncType = (String)paramMap.get("fileFuncType"); SeedProperties seedProperties = new SeedProperties(); /*String rootPath = seedProperties.getConfigValue("file.real.path"); String tempPath = seedProperties.getConfigValue("file.temp.path");*/ /*241216 global 값으로 수정*/ /*String rootPath = propertyService.getString("file.real.path"); String tempPath = propertyService.getString("file.temp.path");*/ String rootPath = globalRealPath; String tempPath = globalTempPath; SeedDateUtil seedDateUtil = new SeedDateUtil(); String toDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd"); String renameDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss"); SeedUtils.setSeedMkDirs(rootPath + "/"+siteIdx+ "/" +fileFuncType); int fileCnt = 0; String[] uploadFileName = request.getParameterValues("uploadFileName"); String[] uploadFileReName = request.getParameterValues("uploadFileReName"); String[] copyContractYnList = request.getParameterValues("copyContractYn"); String[] fileGubun = request.getParameterValues("fileGubun"); String[] fileMemo = request.getParameterValues("fileMemo"); if(uploadFileName!=null && uploadFileName.length > 0){ for(int i=0; i 0){ if(uploadFileName.length == fileMemo.length){ fileMemoData = fileMemo[i]; } } String copyContractYn = ""; if(copyContractYnList != null){ copyContractYn = copyContractYnList[i]; } String fileType = uploadFileNameData.substring(uploadFileNameData.lastIndexOf(".")+1, uploadFileNameData.length()); String reFileName = renameDate + "_" + SeedUtils.getSeedMD5Code(String.valueOf(SeedUtils.getRandom(999,1))); File oldFile = new File(tempPath + "/"+siteIdx+"/"+fileFuncType+ "/" + uploadFileReNameData); System.out.println(">>>>>>>fileInsertEgov0<<<<<<<<<"+tempPath + "/"+siteIdx+"/"+fileFuncType+ "/" + uploadFileReNameData); if(oldFile.exists()){ Long fileSize = oldFile.length(); SeedUtils.setSeedFileCopy(tempPath + "/"+siteIdx+"/"+fileFuncType + "/" + uploadFileReNameData, rootPath + "/"+siteIdx+"/"+fileFuncType+"/"+reFileName+"."+fileType); paramMap.put("uploadFileNameData", uploadFileNameData); paramMap.put("reFileName", reFileName+"."+fileType); paramMap.put("fileSize", fileSize); paramMap.put("fileType", fileType); paramMap.put("filePath", rootPath + "/"+siteIdx+"/"+fileFuncType+"/"); paramMap.put("copyContractYn", copyContractYn); paramMap.put("fileGubun", fileGubunData); paramMap.put("fileMemo", fileMemoData); //파일타입에 따라서 sql분기 /*if(fileFuncType.equals("mediation")){ dao.caseInsert(paramMap); }else{ dao.fileInsert(paramMap); }*/ System.out.println(">>>>>>>fileInsertEgov1<<<<<<<<<"); bservice.insert(paramMap); System.out.println(">>>>>>>fileInsertEgov2<<<<<<<<<"); oldFile.delete(); fileCnt = fileCnt+1; } } } } catch (Exception e) { e.printStackTrace(); throw e; } } public void fileInsertSameTime(EgovMap paramMap, HttpServletRequest request, HttpSession session)throws Exception { System.out.println(">>>>>>>fileInsertEgov<<<<<<<<<"); try { String siteIdx = SeedUtils.setReplaceNull(session.getAttribute("siteIdx")); if(siteIdx.equals("")){ siteIdx = SeedUtils.setReplaceNull(request.getParameter("siteIdx")); } String fileFuncType = (String)paramMap.get("fileFuncType"); String fileGubun = (String)paramMap.get("fileGubun"); String fileMemo = (String)paramMap.get("fileMemo"); SeedProperties seedProperties = new SeedProperties(); /*String rootPath = seedProperties.getConfigValue("file.real.path"); String tempPath = seedProperties.getConfigValue("file.temp.path");*/ /*241216 global 값으로 수정*/ /*String rootPath = propertyService.getString("file.real.path"); String tempPath = propertyService.getString("file.temp.path");*/ String rootPath = globalRealPath; String tempPath = globalTempPath; SeedDateUtil seedDateUtil = new SeedDateUtil(); String toDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMdd"); String renameDate = seedDateUtil.getSimpleDateFormat(new Date(), "yyyyMMddHHmmss"); SeedUtils.setSeedMkDirs(rootPath + "/"+siteIdx+ "/" +fileFuncType); int fileCnt = 0; String[] uploadFileName = request.getParameterValues("uploadFileName"); String[] uploadFileReName = request.getParameterValues("uploadFileReName"); String[] copyContractYnList = request.getParameterValues("copyContractYn"); String[] uploadFileTarget = request.getParameterValues("uploadFileTarget"); if(uploadFileName!=null && uploadFileName.length > 0){ for(int i=0; i>>>>>>fileInsertEgov0<<<<<<<<<"+tempPath + "/"+siteIdx+"/"+fileFuncType+ "/" + uploadFileReNameData); if(oldFile.exists()){ Long fileSize = oldFile.length(); SeedUtils.setSeedFileCopy(tempPath + "/"+siteIdx+"/"+fileFuncType + "/" + uploadFileReNameData, rootPath + "/"+siteIdx+"/"+fileFuncType+"/"+reFileName+"."+fileType); paramMap.put("uploadFileNameData", uploadFileNameData); paramMap.put("reFileName", reFileName+"."+fileType); paramMap.put("fileSize", fileSize); paramMap.put("fileType", fileType); paramMap.put("filePath", rootPath + "/"+siteIdx+"/"+fileFuncType+"/"); paramMap.put("copyContractYn", copyContractYn); paramMap.put("fileGubun", fileGubun); paramMap.put("fileMemo", fileMemo); //파일타입에 따라서 sql분기 /*if(fileFuncType.equals("mediation")){ dao.caseInsert(paramMap); }else{ dao.fileInsert(paramMap); }*/ System.out.println(">>>>>>>fileInsertEgov1<<<<<<<<<"); try { String[] target = uploadFileTarget[i].split("@"); String rceptNo = target[0]; String caseNo = target[1]; paramMap.put("rceptNo", rceptNo); paramMap.put("fileAdd1", caseNo); bservice.insert(paramMap); }catch(Exception e){ e.printStackTrace(); } System.out.println(">>>>>>>fileInsertEgov2<<<<<<<<<"); oldFile.delete(); fileCnt = fileCnt+1; } } } } catch (Exception e) { e.printStackTrace(); throw e; } } public List> fileList(Map paramMap){ return dao.fileList(paramMap); } public Map fileOne(Map paramMap){ return dao.fileOne(paramMap); } /*일반 게시판 파일 (T_EXTRA_FILE)*/ public void fileDel(Map paramMap){ if(paramMap.get("deleteFileData") != "" && paramMap.get("deleteFileData") != null){ String delIdx = (String)paramMap.get("deleteFileData"); String[] delList = delIdx.split(","); for(int i = 0; i < delList.length; i++){ paramMap.put("dataIdx", delList[i]); dao.fileDel(paramMap); } } } /*사건관련 파일 (C_CASEFILE)*/ public void caseFileDel(Map paramMap){ if(paramMap.get("deleteFileData") != "" && paramMap.get("deleteFileData") != null){ String delIdx = (String)paramMap.get("deleteFileData"); String[] delList = delIdx.split(","); for(int i = 0; i < delList.length; i++){ paramMap.put("dataIdx", delList[i]); dao.caseDelete(paramMap); } } } public void fileDelAll(Map paramMap){ dao.fileDelAll(paramMap); } public List> caseFileList(Map paramMap){ return dao.caseFileList(paramMap); } public List caseFileListEgov(EgovMap paramMap){ return dao.caseFileListEgov(paramMap); } public Map caseFileOne(Map paramMap){ return dao.caseFileOne(paramMap); } public void hisInsert(Map paramMap){ dao.hisInsert(paramMap); } }