lkd9125
1 year ago
4 changed files with 148 additions and 90 deletions
@ -0,0 +1,109 @@
|
||||
package com.palnet.biz.api.bas.flight.template.service; |
||||
|
||||
import java.io.File; |
||||
import java.io.FileOutputStream; |
||||
import java.io.IOException; |
||||
import java.io.InputStream; |
||||
import java.io.StringReader; |
||||
import java.nio.charset.Charset; |
||||
import java.nio.file.Files; |
||||
import java.nio.file.Paths; |
||||
import java.time.Instant; |
||||
import java.util.Map; |
||||
import java.util.Map.Entry; |
||||
|
||||
import javax.transaction.Transactional; |
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil; |
||||
import com.palnet.biz.api.bas.flight.template.vo.LaancPdfVO; |
||||
import com.palnet.biz.jpa.entity.ComFileBas; |
||||
import com.palnet.biz.jpa.repository.com.ComFileBasRepository; |
||||
import com.palnet.comn.utils.InstantUtils; |
||||
import com.palnet.comn.utils.PdfUtils; |
||||
|
||||
import lombok.extern.slf4j.Slf4j; |
||||
|
||||
@Service |
||||
@Slf4j |
||||
public class TemplateService { |
||||
|
||||
@Autowired |
||||
private PdfUtils pdfUtils; |
||||
|
||||
@Autowired |
||||
private JwtTokenUtil jwtTokenUtil; |
||||
|
||||
@Autowired |
||||
private ComFileBasRepository comFileBasRepository; |
||||
|
||||
@Value("${base-url}") |
||||
private String BASE_PATH; |
||||
|
||||
private final String FILE_EXTENSION = ".pdf"; |
||||
|
||||
/** |
||||
* 파일명 만들기, 앞에 기본으로 금일 날짜있음 |
||||
* [예시] 20230102_[추가파라미터] |
||||
* @param etcName |
||||
* @return |
||||
*/ |
||||
private String getLaancSaveName(String ...etcName){ |
||||
|
||||
String date = InstantUtils.toDateString(Instant.now()).replace("-", ""); |
||||
|
||||
StringBuilder result = new StringBuilder(); |
||||
result.append(date); |
||||
|
||||
for(String name : etcName){ |
||||
result.append("-") |
||||
.append(name); |
||||
} |
||||
|
||||
result.append(this.FILE_EXTENSION); |
||||
|
||||
return result.toString(); |
||||
} |
||||
|
||||
/** |
||||
* PDF 생성 |
||||
* @param vo |
||||
* @return |
||||
*/ |
||||
public ComFileBas makeLaancPdf(LaancPdfVO vo){ |
||||
|
||||
String airUser = vo.getUserName(); |
||||
String etc = String.valueOf(System.currentTimeMillis()); // 동명이인 방지
|
||||
String fileName = getLaancSaveName(airUser, etc); |
||||
|
||||
String htmlContent = pdfUtils.getHtmlToString(vo); |
||||
ComFileBas comFileBas = pdfUtils.generatePDF(htmlContent, fileName); |
||||
|
||||
String userId = jwtTokenUtil.getUserIdByToken(); |
||||
comFileBas.setCreateUserId(userId); |
||||
|
||||
return comFileBas; |
||||
} |
||||
|
||||
|
||||
|
||||
/** |
||||
* DB 인서트, 최신데이터 가져온 후 Group NO 1추가함 |
||||
* @param comFileBas |
||||
*/ |
||||
@Transactional |
||||
public void save(ComFileBas comFileBas){ |
||||
|
||||
// DB Insert
|
||||
ComFileBas lastComFileBas = comFileBasRepository.findFirstByOrderByFileSnoDesc(); |
||||
int fileGroupNo = (lastComFileBas == null) ? 1 : lastComFileBas.getFileGroupNo() + 1; |
||||
|
||||
comFileBas.setFileGroupNo(fileGroupNo); |
||||
|
||||
comFileBasRepository.save(comFileBas); |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue