From ccdb6047b80b48395f99c5efce168c236c4ce8b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dhji=28=EC=A7=80=EB=8C=80=ED=95=9C=29?= Date: Wed, 4 Sep 2024 16:28:48 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EB=93=9C=EB=A1=A0=EC=9B=90=EC=8A=A4?= =?UTF-8?q?=ED=86=B1=20=EA=B4=80=EC=A0=9C=EA=B3=BC=20=EC=A0=84=EC=86=A1=20?= =?UTF-8?q?=EA=B2=80=EC=83=89=EC=A1=B0=EA=B1=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- http/server/server.http | 15 ++++---- .../biz/api/bas/dos/model/BasDosPlanRq.java | 9 ++++- .../com/palnet/biz/config/WebMvcConfig.java | 1 + .../CodeToSendStatusTypeConverter.java | 11 ++++++ .../converter/SendStatusTypeConverter.java | 27 ++++++++++++++ .../biz/jpa/entity/type/SendStatusType.java | 36 +++++++++++++++++++ .../dos/DosFltPlanQueryRepository.java | 10 ++++++ 7 files changed, 100 insertions(+), 9 deletions(-) create mode 100644 pav-server/src/main/java/com/palnet/biz/config/convert/CodeToSendStatusTypeConverter.java create mode 100644 pav-server/src/main/java/com/palnet/biz/jpa/entity/converter/SendStatusTypeConverter.java create mode 100644 pav-server/src/main/java/com/palnet/biz/jpa/entity/type/SendStatusType.java diff --git a/http/server/server.http b/http/server/server.http index 8f2193fa..c281313a 100644 --- a/http/server/server.http +++ b/http/server/server.http @@ -66,10 +66,11 @@ Authorization: {{accessToken}} GET {{appHost}}/api/bas/dos/plan ?searchStDt=2023-06-29 &searchEndDt=2024-06-29 -# &limitZoneCd= + &sendProcStatus=S +# &reviewedType=W # &reviewedProcType=W +# &limitZoneCd= # &applyNo=T201118-3010 -# &reviewedType=W Authorization: {{accessToken}} > {% @@ -234,11 +235,9 @@ Content-Type: application/json { "planAreaSnoList": [ - 11, - 12, - 13 + 1 ], - "reviewedType": "Q" + "reviewedType": "W" } @@ -268,7 +267,7 @@ GET {{appHost}}/api/ctr/cntrl/group Authorization: {{accessToken}} ### WS -WEBSOCKET ws://localhost:8081/ws +WEBSOCKET {{wsHost}}/ws ### DOS -WEBSOCKET ws://localhost:8081/ws/dos \ No newline at end of file +WEBSOCKET {{wsHost}}/dos diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java b/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java index 74e98fa7..2fa18e13 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/dos/model/BasDosPlanRq.java +++ b/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.ReviewedType; +import com.palnet.biz.jpa.entity.type.SendStatusType; import io.swagger.v3.oas.annotations.media.Schema; import lombok.AllArgsConstructor; import lombok.Builder; @@ -43,9 +44,15 @@ public class BasDosPlanRq { @Schema(description = "검토유형(운항과)", example = "W", implementation = ReviewedType.class) private ReviewedType reviewedType; - @Schema(description = "검토유형(관제과)", example = "W", implementation = ReviewedProcType.class) + @Schema(description = "검토처리유형(관제과)", example = "W", implementation = ReviewedProcType.class) private ReviewedProcType reviewedProcType; @Schema(description = "장애물제한표면(C(원추), H(수평), null(모두)", example = "C", implementation = LimitZoneType.class) private LimitZoneType limitZoneCd; + + @Schema(description = "전송상태(관제과)", example = "S", implementation = SendStatusType.class) + private SendStatusType sendProcStatus; + +// @Schema(description = "전송상태(운항과)", example = "S", implementation = SendStatusType.class) +// private SendStatusType sendPStatus; } diff --git a/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java b/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java index f1500447..ea8b4670 100644 --- a/pav-server/src/main/java/com/palnet/biz/config/WebMvcConfig.java +++ b/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 CodeToReviewdProcTypeConverter()); registry.addConverter(new CodeToLimitZoneTypeConverter()); + registry.addConverter(new CodeToSendStatusTypeConverter()); /* ISO 타입. registrar.setUseIsoFormat(true); diff --git a/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToSendStatusTypeConverter.java b/pav-server/src/main/java/com/palnet/biz/config/convert/CodeToSendStatusTypeConverter.java new file mode 100644 index 00000000..bdd97a04 --- /dev/null +++ b/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 { + @Override + public SendStatusType convert(String s) { + return SendStatusType.fromCode(s); + } +} diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/entity/converter/SendStatusTypeConverter.java b/pav-server/src/main/java/com/palnet/biz/jpa/entity/converter/SendStatusTypeConverter.java new file mode 100644 index 00000000..3ad5cca4 --- /dev/null +++ b/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 { + @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); + } +} diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/entity/type/SendStatusType.java b/pav-server/src/main/java/com/palnet/biz/jpa/entity/type/SendStatusType.java new file mode 100644 index 00000000..3352a45c --- /dev/null +++ b/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; + } +} diff --git a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java b/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java index df89860d..81ecf1ae 100644 --- a/pav-server/src/main/java/com/palnet/biz/jpa/repository/dos/DosFltPlanQueryRepository.java +++ b/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.QDosFltPlanArea; 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.jpa.impl.JPAQueryFactory; import lombok.RequiredArgsConstructor; @@ -102,6 +104,14 @@ public class DosFltPlanQueryRepository { if (rq.getLimitZoneCd() != null) { 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 .select(qDosFltPlanArea)