Browse Source

add: 임시커밋

feature/sunset-scheduler
lkd9125(이경도) 8 months ago
parent
commit
fa0742f2b2
  1. 14
      pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java
  2. 21
      pav-server/src/main/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerService.java

14
pav-server/src/main/java/com/palnet/biz/jpa/repository/com/ComRiseSetQueryRepository.java

@ -15,6 +15,7 @@ import org.springframework.stereotype.Repository;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
/**
@ -34,6 +35,19 @@ import java.util.List;
public class ComRiseSetQueryRepository {
private final JPAQueryFactory query;
public List<String> findUnDuplicatoinLocationByLocDate(String locDate){
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;
List<String> result = query
.selectDistinct(bas.id.location)
.from(bas)
.where(bas.id.location.eq(locDate))
.fetch();
return result;
}
public List<ComRiseSetBas> findAllBySearch(ComnSunrisesetRq rq) {
QComRiseSetBas bas = QComRiseSetBas.comRiseSetBas;

21
pav-server/src/main/java/com/palnet/biz/scheduler/external/service/SunRiseSchedulerService.java vendored

@ -6,6 +6,7 @@ import com.palnet.biz.api.external.service.SunRiseSetMapper;
import com.palnet.biz.jpa.entity.ComRiseSetBas;
import com.palnet.biz.jpa.entity.ComRiseSetBasPK;
import com.palnet.biz.jpa.repository.com.ComRiseSetBasRepository;
import com.palnet.biz.jpa.repository.com.ComRiseSetQueryRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
import lombok.RequiredArgsConstructor;
@ -32,6 +33,8 @@ import java.util.List;
@RequiredArgsConstructor
public class SunRiseSchedulerService {
private final ComRiseSetQueryRepository comRiseSetQueryRepository;
private final ComRiseSetBasRepository comRiseSetBasRepository;
@Value("${external.sunriseset.url}")
@ -70,7 +73,6 @@ public class SunRiseSchedulerService {
};
public void sunsetSchedule(){
List<String> todayLocation = this.todayLocation();
LocalDate today = LocalDate.now();
List<String> timeColumn = List.of("sunrise", "suntransit", "sunset", "moonrise", "moontransit", "moonset", "civilm", "civile", "nautm", "naute", "astm", "aste");
@ -82,10 +84,13 @@ public class SunRiseSchedulerService {
today = today.plusDays(1);
String locdate = today.format(DateTimeFormatter.ofPattern("yyyyMMdd"));
for(int j = 0; j < todayLocation.size(); j ++){
String location = todayLocation.get(j);
List<String> rotateLocation = getUnDuplicationLocation(todayLocation,locdate);
for(int j = 0; j < rotateLocation.size(); j ++){
String location = rotateLocation.get(j);
List<SunRiseSetRs> results = callSunRiseSet(locdate, location);
// trim 제거 및 6자리로 맞추기
results.forEach(result -> {
Class<? extends SunRiseSetRs> aClass = result.getClass();
@ -129,6 +134,16 @@ public class SunRiseSchedulerService {
}
}
private List<String> getUnDuplicationLocation(List<String> todayLocation, String location){
List<String> dateLocation = comRiseSetQueryRepository.findUnDuplicatoinLocationByLocDate(location);
HashSet<String> set = new HashSet<>(todayLocation);
set.removeAll(dateLocation);
return new ArrayList<>(set);
}
private List<SunRiseSetRs> callSunRiseSet(String locdate, String location) {
String uriStr = UriComponentsBuilder.fromUriString(AREA_RISE_SEET_INFO_URL)

Loading…
Cancel
Save