Browse Source

feat: 드론원스톱 장애물 제한 표면 검색조건 추가

feature/dos/statistics
지대한 3 weeks ago
parent
commit
8f51b1eca4
  1. 5
      http/server/server.http
  2. 3
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java
  3. 3
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java
  4. 48
      pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java
  5. 11
      pav-server/src/main/java/com/palnet/biz/config/convert/CodeToLimitZoneTypeConverter.java
  6. 4
      pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java

5
http/server/server.http

@ -66,6 +66,7 @@ Authorization: {{accessToken}}
GET {{appHost}}/api/bas/dos/plan GET {{appHost}}/api/bas/dos/plan
?searchStDt=2023-06-29 ?searchStDt=2023-06-29
&searchEndDt=2024-06-29 &searchEndDt=2024-06-29
# &limitZoneCd=
# &reviewedProcType=W # &reviewedProcType=W
# &applyNo=T201118-3010 # &applyNo=T201118-3010
# &reviewedType=W # &reviewedType=W
@ -78,8 +79,8 @@ Authorization: {{accessToken}}
const {planSno, applyNo, areaList} = d; const {planSno, applyNo, areaList} = d;
console.log(`planSno: ${planSno}, applyNo: ${applyNo}`); console.log(`planSno: ${planSno}, applyNo: ${applyNo}`);
areaList.forEach(a => { areaList.forEach(a => {
const {planAreaSno, zoneNo, reviewedType, reviewedProcType, approvalCd} = a; const {planAreaSno, zoneNo, reviewedType, reviewedProcType, approvalCd, limitZoneCd} = a;
console.log(`planAreaSno: ${planAreaSno}, zoneNo: ${zoneNo}, reviewedType: ${reviewedType}, reviewedProcType: ${reviewedProcType}, approvalCd: ${approvalCd}`); console.log(`planAreaSno: ${planAreaSno}, zoneNo: ${zoneNo}, reviewedType: ${reviewedType}, reviewedProcType: ${reviewedProcType}, approvalCd: ${approvalCd}, limitZoneCd: ${limitZoneCd}`);
}) })
}); });

3
pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java

@ -45,4 +45,7 @@ public class BasDosPlanRq {
@Schema(description = "검토유형(관제과)", example = "W", implementation = ReviewedProcType.class) @Schema(description = "검토유형(관제과)", example = "W", implementation = ReviewedProcType.class)
private ReviewedProcType reviewedProcType; private ReviewedProcType reviewedProcType;
@Schema(description = "장애물제한표면(C(원추), H(수평), null(모두)", example = "C", implementation = LimitZoneType.class)
private LimitZoneType limitZoneCd;
} }

3
pav-server/src/main/java/com/palnet/biz/api/bas/dos/service/BasDosService.java

@ -76,7 +76,6 @@ public class BasDosService {
private final DosFltPlanDroneRepository dosFltPlanDroneRepository; private final DosFltPlanDroneRepository dosFltPlanDroneRepository;
private final DosFltPlanPilotRepository dosFltPlanPilotRepository; private final DosFltPlanPilotRepository dosFltPlanPilotRepository;
private final DronOneStopService dronOneStopService; private final DronOneStopService dronOneStopService;
private final ComnCoordinateService comnCoordinateService;
private final AreaUtils areaUtils; private final AreaUtils areaUtils;
private final PdfUtils pdfUtils; private final PdfUtils pdfUtils;
private final JwtTokenUtil jwtTokenUtil; private final JwtTokenUtil jwtTokenUtil;
@ -468,7 +467,7 @@ public class BasDosService {
} }
for (DosFltPlanArea area : planAreaList) { for (DosFltPlanArea area : planAreaList) {
if(area.getReviewedProcType() == ReviewedProcType.SUCCESS) { if (area.getReviewedProcType() == ReviewedProcType.SUCCESS) {
log.warn("reviewedProcType is not changed because status is SUCCESS: area:{}/rq:{}", area.getReviewedProcType(), rq.getReviewedProcType()); log.warn("reviewedProcType is not changed because status is SUCCESS: area:{}/rq:{}", area.getReviewedProcType(), rq.getReviewedProcType());
continue; continue;
} }

48
pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java

@ -1,9 +1,6 @@
package com.palnet.biz.config; package com.palnet.biz.config;
import com.palnet.biz.config.convert.CodeToFltPurposeBinding; import com.palnet.biz.config.convert.*;
import com.palnet.biz.config.convert.CodeToReviewdProcTypeConverter;
import com.palnet.biz.config.convert.CodeToReviewdTypeConverter;
import com.palnet.biz.config.convert.StringToInstantBinding;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.format.FormatterRegistry; import org.springframework.format.FormatterRegistry;
@ -17,11 +14,11 @@ import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
@Configuration @Configuration
public class WebMvcConfig implements WebMvcConfigurer{ public class WebMvcConfig implements WebMvcConfigurer {
private static final String dateFormat = "yyyy-MM-dd"; private static final String dateFormat = "yyyy-MM-dd";
private static final String timeFormat = "HH:mm:ss"; private static final String timeFormat = "HH:mm:ss";
private static final String dateTimeFormat = "yyyy-MM-dd HH:mm:ss"; private static final String dateTimeFormat = "yyyy-MM-dd HH:mm:ss";
/*@Autowired /*@Autowired
AccsUUIDcheckInterceptor accsUUIDcheckInterceptor;*/ AccsUUIDcheckInterceptor accsUUIDcheckInterceptor;*/
@ -37,7 +34,7 @@ public class WebMvcConfig implements WebMvcConfigurer{
// converters.add(escapingConverter()); // converters.add(escapingConverter());
// } // }
public void addResourceHandlers(final ResourceHandlerRegistry registry) { public void addResourceHandlers(final ResourceHandlerRegistry registry) {
/*registry.addResourceHandler("/web/**").addResourceLocations("/web/") /*registry.addResourceHandler("/web/**").addResourceLocations("/web/")
.setCacheControl(CacheControl.maxAge(10, TimeUnit.DAYS)).resourceChain(true) .setCacheControl(CacheControl.maxAge(10, TimeUnit.DAYS)).resourceChain(true)
// .setCacheControl(CacheControl.noStore()).resourceChain(true) // .setCacheControl(CacheControl.noStore()).resourceChain(true)
@ -45,20 +42,20 @@ public class WebMvcConfig implements WebMvcConfigurer{
.addContentVersionStrategy("/**")) .addContentVersionStrategy("/**"))
.addTransformer(new AppCacheManifestTransformer());*/ .addTransformer(new AppCacheManifestTransformer());*/
// html 가능 하게 설정 // html 가능 하게 설정
/*registry.addResourceHandler("/**").addResourceLocations("/web/hcws/html/");*/ /*registry.addResourceHandler("/**").addResourceLocations("/web/hcws/html/");*/
} }
@Bean @Bean
public ResourceUrlEncodingFilter resourceUrlEncodingFilter() { public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {
return new ResourceUrlEncodingFilter(); return new ResourceUrlEncodingFilter();
} }
@Override @Override
public void addCorsMappings(CorsRegistry registry) { public void addCorsMappings(CorsRegistry registry) {
//임시로 크로스오리진 전체를 품 //임시로 크로스오리진 전체를 품
registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"); registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS");
} }
// //
// @Bean // @Bean
@ -97,6 +94,7 @@ public class WebMvcConfig implements WebMvcConfigurer{
registry.addConverter(new CodeToFltPurposeBinding()); registry.addConverter(new CodeToFltPurposeBinding());
registry.addConverter(new CodeToReviewdTypeConverter()); registry.addConverter(new CodeToReviewdTypeConverter());
registry.addConverter(new CodeToReviewdProcTypeConverter()); registry.addConverter(new CodeToReviewdProcTypeConverter());
registry.addConverter(new CodeToLimitZoneTypeConverter());
/* ISO 타입. /* ISO 타입.
registrar.setUseIsoFormat(true); registrar.setUseIsoFormat(true);
@ -105,10 +103,10 @@ public class WebMvcConfig implements WebMvcConfigurer{
} }
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
//접근고유ID 체크 Interceptor //접근고유ID 체크 Interceptor
/*registry.addInterceptor(accsUUIDcheckInterceptor) /*registry.addInterceptor(accsUUIDcheckInterceptor)
.addPathPatterns("/sendbox/") .addPathPatterns("/sendbox/")
.addPathPatterns("/sendbox/index");*/ .addPathPatterns("/sendbox/index");*/
@ -138,5 +136,5 @@ public class WebMvcConfig implements WebMvcConfigurer{
.excludePathPatterns("/rest/**"); .excludePathPatterns("/rest/**");
*/ */
} }
} }

11
pav-server/src/main/java/com/palnet/biz/config/convert/CodeToLimitZoneTypeConverter.java

@ -0,0 +1,11 @@
package com.palnet.biz.config.convert;
import com.palnet.biz.api.bas.dos.model.LimitZoneType;
import org.springframework.core.convert.converter.Converter;
public class CodeToLimitZoneTypeConverter implements Converter<String, LimitZoneType> {
@Override
public LimitZoneType convert(String s) {
return LimitZoneType.fromCode(s);
}
}

4
pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java

@ -98,6 +98,10 @@ public class DosFltPlanQueryRepository {
if (rq.getReviewedProcType() != null) { if (rq.getReviewedProcType() != null) {
builder.and(qDosFltPlanArea.reviewedProcType.eq(rq.getReviewedProcType())); builder.and(qDosFltPlanArea.reviewedProcType.eq(rq.getReviewedProcType()));
} }
// 장애물 제한 표면
if (rq.getLimitZoneCd() != null) {
builder.and(qDosFltPlanArea.limitZone.eq(rq.getLimitZoneCd().getCode()));
}
return query return query
.select(qDosFltPlanArea) .select(qDosFltPlanArea)

Loading…
Cancel
Save