지대한
12 months ago
7 changed files with 214 additions and 1 deletions
@ -0,0 +1,36 @@ |
|||||||
|
package com.palnet.biz.api.comn.sms.model; |
||||||
|
|
||||||
|
import lombok.AllArgsConstructor; |
||||||
|
import lombok.Builder; |
||||||
|
import lombok.Data; |
||||||
|
import lombok.NoArgsConstructor; |
||||||
|
|
||||||
|
/** |
||||||
|
* packageName : com.palnet.biz.api.comn.sms.model |
||||||
|
* fileName : ComnSmsLaancAprov |
||||||
|
* author : dhji |
||||||
|
* date : 2023-10-06(006) |
||||||
|
* description : |
||||||
|
* =========================================================== |
||||||
|
* DATE AUTHOR NOTE |
||||||
|
* ----------------------------------------------------------- |
||||||
|
* 2023-10-06(006) dhji 최초 생성 |
||||||
|
*/ |
||||||
|
@Data |
||||||
|
@NoArgsConstructor |
||||||
|
@AllArgsConstructor |
||||||
|
@Builder |
||||||
|
public class ComnSmsLaancAprovModel { |
||||||
|
private String callphone; // 수신번호
|
||||||
|
|
||||||
|
private String pilotName; // 조종사 이름
|
||||||
|
// private String birthDate; // 조종사 생년월일
|
||||||
|
private String schFltStDt; // 비행시작일시
|
||||||
|
private String schFltEndDt; // 비행종료일시
|
||||||
|
private String fltPurpose; // 비행목적
|
||||||
|
// private String arcrftType; // 등록 종류
|
||||||
|
// private String idntfNum; // 신고번호
|
||||||
|
private String address; // 주소
|
||||||
|
private String elev; // 고도
|
||||||
|
// private String createDt; // 신청일자
|
||||||
|
} |
@ -0,0 +1,28 @@ |
|||||||
|
package com.palnet.biz.api.comn.sms.service; |
||||||
|
|
||||||
|
import com.palnet.biz.api.bas.laanc.service.BasLaancMapper; |
||||||
|
import com.palnet.biz.api.comn.sms.model.ComnSmsLaancAprovModel; |
||||||
|
import com.palnet.biz.jpa.entity.SuredataEntity; |
||||||
|
import org.mapstruct.Mapper; |
||||||
|
import org.mapstruct.NullValuePropertyMappingStrategy; |
||||||
|
import org.mapstruct.ReportingPolicy; |
||||||
|
import org.mapstruct.factory.Mappers; |
||||||
|
|
||||||
|
/** |
||||||
|
* packageName : com.palnet.biz.api.comn.sms.service |
||||||
|
* fileName : ComnSmsMapper |
||||||
|
* author : dhji |
||||||
|
* date : 2023-10-06(006) |
||||||
|
* description : |
||||||
|
* =========================================================== |
||||||
|
* DATE AUTHOR NOTE |
||||||
|
* ----------------------------------------------------------- |
||||||
|
* 2023-10-06(006) dhji 최초 생성 |
||||||
|
*/ |
||||||
|
@Mapper(unmappedSourcePolicy = ReportingPolicy.IGNORE, unmappedTargetPolicy = ReportingPolicy.IGNORE, nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE) |
||||||
|
public interface ComnSmsMapper { |
||||||
|
ComnSmsMapper MAPPER = Mappers.getMapper(ComnSmsMapper.class); |
||||||
|
|
||||||
|
|
||||||
|
SuredataEntity toEntity(ComnSmsLaancAprovModel model); |
||||||
|
} |
@ -0,0 +1,108 @@ |
|||||||
|
package com.palnet.biz.api.comn.sms.service; |
||||||
|
|
||||||
|
import com.palnet.biz.api.comn.sms.model.ComnSmsLaancAprovModel; |
||||||
|
import com.palnet.biz.jpa.entity.SuredataEntity; |
||||||
|
import com.palnet.biz.jpa.repository.pty.SuredataRepository; |
||||||
|
import com.palnet.comn.utils.InstantUtils; |
||||||
|
import lombok.RequiredArgsConstructor; |
||||||
|
import lombok.extern.slf4j.Slf4j; |
||||||
|
import org.springframework.core.io.ClassPathResource; |
||||||
|
import org.springframework.stereotype.Service; |
||||||
|
|
||||||
|
import java.io.BufferedReader; |
||||||
|
import java.io.IOException; |
||||||
|
import java.io.InputStreamReader; |
||||||
|
import java.nio.charset.StandardCharsets; |
||||||
|
import java.time.Instant; |
||||||
|
|
||||||
|
/** |
||||||
|
* packageName : com.palnet.biz.api.comn.sms.service |
||||||
|
* fileName : ComnSmsService |
||||||
|
* author : dhji |
||||||
|
* date : 2023-10-06(006) |
||||||
|
* description : |
||||||
|
* =========================================================== |
||||||
|
* DATE AUTHOR NOTE |
||||||
|
* ----------------------------------------------------------- |
||||||
|
* 2023-10-06(006) dhji 최초 생성 |
||||||
|
*/ |
||||||
|
@Slf4j |
||||||
|
@RequiredArgsConstructor |
||||||
|
@Service |
||||||
|
public class ComnSmsService { |
||||||
|
|
||||||
|
private final SuredataRepository suredataRepository; |
||||||
|
|
||||||
|
public void sendLaancAprovSms(ComnSmsLaancAprovModel model) { |
||||||
|
log.info("sendSms : {}", model); |
||||||
|
ClassPathResource resource = new ClassPathResource("templates/sms/SmsLaancAprov.txt"); |
||||||
|
|
||||||
|
String template = ""; |
||||||
|
try(BufferedReader br = new BufferedReader(new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))){ |
||||||
|
StringBuilder stringBuilder = new StringBuilder(); |
||||||
|
String line; |
||||||
|
boolean firstLine = true; // 첫 번째 줄은 개행 문자를 추가하지 않음
|
||||||
|
while ((line = br.readLine()) != null) { |
||||||
|
if (firstLine) { |
||||||
|
firstLine = false; |
||||||
|
} else { |
||||||
|
stringBuilder.append("\n"); // 개행 문자 추가
|
||||||
|
} |
||||||
|
stringBuilder.append(line); |
||||||
|
} |
||||||
|
template = stringBuilder.toString(); |
||||||
|
} catch (IOException e) { |
||||||
|
throw new RuntimeException(e); |
||||||
|
} |
||||||
|
|
||||||
|
template = template.replace("${pilotName}", model.getPilotName()); |
||||||
|
template = template.replace("${schFltStDt}", model.getSchFltStDt()); |
||||||
|
template = template.replace("${schFltEndDt}", model.getSchFltEndDt()); |
||||||
|
template = template.replace("${fltPurpose}", model.getFltPurpose()); |
||||||
|
template = template.replace("${address}", model.getAddress()); |
||||||
|
template = template.replace("${elev}", model.getElev()); |
||||||
|
|
||||||
|
SuredataEntity entity = getInitialEntity(); |
||||||
|
entity.setSubject("[비행승인 완료]"); |
||||||
|
entity.setMsg(template); |
||||||
|
entity.setCallname(model.getPilotName()); |
||||||
|
entity.setCallphone(model.getCallphone()); |
||||||
|
entity.setKind("M"); |
||||||
|
|
||||||
|
log.info("entity : {}", entity); |
||||||
|
log.info("========================================"); |
||||||
|
log.info("message : {}", template); |
||||||
|
log.info("========================================"); |
||||||
|
log.info("message : {}", entity.getMsg()); |
||||||
|
|
||||||
|
suredataRepository.save(entity); |
||||||
|
} |
||||||
|
|
||||||
|
private String getMessage(String templateStr, ComnSmsLaancAprovModel model) { |
||||||
|
String message = templateStr; |
||||||
|
message = message.replace("${pilotName}", model.getPilotName()); |
||||||
|
message = message.replace("${schFltStDt}", model.getSchFltStDt()); |
||||||
|
message = message.replace("${schFltEndDt}", model.getSchFltEndDt()); |
||||||
|
message = message.replace("${fltPurpose}", model.getFltPurpose()); |
||||||
|
message = message.replace("${address}", model.getAddress()); |
||||||
|
message = message.replace("${elev}", model.getElev()); |
||||||
|
return message; |
||||||
|
} |
||||||
|
|
||||||
|
public SuredataEntity getInitialEntity() { |
||||||
|
String nowStr = InstantUtils.toDatetimeStringByFormat(Instant.now(), "yyyyMMddHHmmss"); |
||||||
|
SuredataEntity entity = new SuredataEntity(); |
||||||
|
entity.setUsercode("palnet"); |
||||||
|
entity.setIntime(nowStr); |
||||||
|
entity.setReqname("한국공항공사"); |
||||||
|
entity.setReqphone("0262003912"); // 1661-2626
|
||||||
|
// entity.setCallname("지대한");
|
||||||
|
// entity.setCallphone("010-0000-0000");
|
||||||
|
// entity.setSubject("주제");
|
||||||
|
// entity.setMsg("");
|
||||||
|
entity.setReqtime("00000000000000"); |
||||||
|
entity.setResult("0"); |
||||||
|
entity.setKind("S"); |
||||||
|
return entity; |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,16 @@ |
|||||||
|
[비행승인 완료] |
||||||
|
|
||||||
|
${pilotName}님비행승인이 완료되었습니다. |
||||||
|
|
||||||
|
가. 비행개요 |
||||||
|
1. 비행일시 : ${schFltStDt} ~ ${schFltEndDt}까지 |
||||||
|
2. 비행목적 : ${fltPurpose} |
||||||
|
3. 비행경로 / 고도 : ${address} / ${elev}m |
||||||
|
|
||||||
|
나. 비행 준수사항 |
||||||
|
1. 승인된 시간, 장소 및 고도를 반드시 준수해 주십시오. |
||||||
|
2. 군작전, 경호 관련 안전위해요소과위규사항(지정된 장소, 고도, 시간 미준수)발생 시 비행이 취소 될 수 있습니다. |
||||||
|
3. 비행에 관련된 모든 책임은 해당 업체(개인)에 있으니 유의 하시기 바랍니다. |
||||||
|
4. 비행전/ 군 수방사로 반드시 연락 후 비행하시기 바랍니다. |
||||||
|
|
||||||
|
* 조종자 준수사항 미 준수시 항공안전법 제 161조, 같은 법 제 166조 등 관련 법령에 따라 처벌받을 수 있습니다. |
Loading…
Reference in new issue