지대한
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