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