Browse Source

feat: 드론원스톱 관제과 전송 검색조건 추가

feature/dos/statistics
지대한 2 weeks ago
parent
commit
ccdb6047b8
  1. 15
      http/server/server.http
  2. 9
      pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java
  3. 1
      pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java
  4. 11
      pav-server/src/main/java/com/palnet/biz/config/convert/CodeToSendStatusTypeConverter.java
  5. 27
      pav-server/src/main/java/com/palnet/biz/jpa/entity/converter/SendStatusTypeConverter.java
  6. 36
      pav-server/src/main/java/com/palnet/biz/jpa/entity/type/SendStatusType.java
  7. 10
      pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java

15
http/server/server.http

@ -66,10 +66,11 @@ 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= &sendProcStatus=S
# &reviewedType=W
# &reviewedProcType=W # &reviewedProcType=W
# &limitZoneCd=
# &applyNo=T201118-3010 # &applyNo=T201118-3010
# &reviewedType=W
Authorization: {{accessToken}} Authorization: {{accessToken}}
> {% > {%
@ -234,11 +235,9 @@ Content-Type: application/json
{ {
"planAreaSnoList": [ "planAreaSnoList": [
11, 1
12,
13
], ],
"reviewedType": "Q" "reviewedType": "W"
} }
@ -268,7 +267,7 @@ GET {{appHost}}/api/ctr/cntrl/group
Authorization: {{accessToken}} Authorization: {{accessToken}}
### WS ### WS
WEBSOCKET ws://localhost:8081/ws WEBSOCKET {{wsHost}}/ws
### DOS ### DOS
WEBSOCKET ws://localhost:8081/ws/dos WEBSOCKET {{wsHost}}/dos

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

@ -2,6 +2,7 @@ package com.palnet.biz.api.bas.dos.model;
import com.palnet.biz.jpa.entity.type.ReviewedProcType; import com.palnet.biz.jpa.entity.type.ReviewedProcType;
import com.palnet.biz.jpa.entity.type.ReviewedType; import com.palnet.biz.jpa.entity.type.ReviewedType;
import com.palnet.biz.jpa.entity.type.SendStatusType;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
@ -43,9 +44,15 @@ public class BasDosPlanRq {
@Schema(description = "검토유형(운항과)", example = "W", implementation = ReviewedType.class) @Schema(description = "검토유형(운항과)", example = "W", implementation = ReviewedType.class)
private ReviewedType reviewedType; private ReviewedType reviewedType;
@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) @Schema(description = "장애물제한표면(C(원추), H(수평), null(모두)", example = "C", implementation = LimitZoneType.class)
private LimitZoneType limitZoneCd; private LimitZoneType limitZoneCd;
@Schema(description = "전송상태(관제과)", example = "S", implementation = SendStatusType.class)
private SendStatusType sendProcStatus;
// @Schema(description = "전송상태(운항과)", example = "S", implementation = SendStatusType.class)
// private SendStatusType sendPStatus;
} }

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

@ -95,6 +95,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
registry.addConverter(new CodeToReviewdTypeConverter()); registry.addConverter(new CodeToReviewdTypeConverter());
registry.addConverter(new CodeToReviewdProcTypeConverter()); registry.addConverter(new CodeToReviewdProcTypeConverter());
registry.addConverter(new CodeToLimitZoneTypeConverter()); registry.addConverter(new CodeToLimitZoneTypeConverter());
registry.addConverter(new CodeToSendStatusTypeConverter());
/* ISO 타입. /* ISO 타입.
registrar.setUseIsoFormat(true); registrar.setUseIsoFormat(true);

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

@ -0,0 +1,11 @@
package com.palnet.biz.config.convert;
import com.palnet.biz.jpa.entity.type.SendStatusType;
import org.springframework.core.convert.converter.Converter;
public class CodeToSendStatusTypeConverter implements Converter<String, SendStatusType> {
@Override
public SendStatusType convert(String s) {
return SendStatusType.fromCode(s);
}
}

27
pav-server/src/main/java/com/palnet/biz/jpa/entity/converter/SendStatusTypeConverter.java

@ -0,0 +1,27 @@
package com.palnet.biz.jpa.entity.converter;
import com.palnet.biz.jpa.entity.type.SendStatusType;
import org.apache.commons.lang3.StringUtils;
import javax.persistence.AttributeConverter;
import javax.persistence.Converter;
import java.util.Objects;
@Converter
public class SendStatusTypeConverter implements AttributeConverter<SendStatusType, String> {
@Override
public String convertToDatabaseColumn(SendStatusType attribute) {
if (Objects.isNull(attribute)) {
return null;
}
return attribute.getCode();
}
@Override
public SendStatusType convertToEntityAttribute(String dbData) {
if (StringUtils.isBlank(dbData)) {
return null;
}
return SendStatusType.fromCode(dbData);
}
}

36
pav-server/src/main/java/com/palnet/biz/jpa/entity/type/SendStatusType.java

@ -0,0 +1,36 @@
package com.palnet.biz.jpa.entity.type;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import lombok.Getter;
public enum SendStatusType {
SEND("S", "전송"),
NOT_SEND("N", "미전송");
private final String code;
@Getter
private final String value;
@JsonValue
public String getCode() {
return code;
}
SendStatusType(String code, String value) {
this.code = code;
this.value = value;
}
@JsonCreator
public static SendStatusType fromCode(String code) {
for (SendStatusType sendStatusType : SendStatusType.values()) {
if (sendStatusType.getCode().equals(code)) {
return sendStatusType;
}
}
return null;
}
}

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

@ -6,6 +6,8 @@ import com.palnet.biz.jpa.entity.DosFltPlanArea;
import com.palnet.biz.jpa.entity.DosFltPlanBas; import com.palnet.biz.jpa.entity.DosFltPlanBas;
import com.palnet.biz.jpa.entity.QDosFltPlanArea; import com.palnet.biz.jpa.entity.QDosFltPlanArea;
import com.palnet.biz.jpa.entity.QDosFltPlanBas; import com.palnet.biz.jpa.entity.QDosFltPlanBas;
import com.palnet.biz.jpa.entity.type.ReviewedProcType;
import com.palnet.biz.jpa.entity.type.SendStatusType;
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.BooleanBuilder;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -102,6 +104,14 @@ public class DosFltPlanQueryRepository {
if (rq.getLimitZoneCd() != null) { if (rq.getLimitZoneCd() != null) {
builder.and(qDosFltPlanArea.limitZone.eq(rq.getLimitZoneCd().getCode())); builder.and(qDosFltPlanArea.limitZone.eq(rq.getLimitZoneCd().getCode()));
} }
// 관제과 전송여부
if (rq.getSendProcStatus() != null) {
if(rq.getSendProcStatus() == SendStatusType.SEND) {
builder.and(qDosFltPlanArea.reviewedProcType.in(ReviewedProcType.CANCEL, ReviewedProcType.PROCESS, ReviewedProcType.RE_REVIEW, ReviewedProcType.SUCCESS));
} else if(rq.getSendProcStatus() == SendStatusType.NOT_SEND) {
builder.and(qDosFltPlanArea.reviewedProcType.eq(ReviewedProcType.WAIT));
}
}
return query return query
.select(qDosFltPlanArea) .select(qDosFltPlanArea)

Loading…
Cancel
Save