Browse Source

비행통계 권한개입 추가

pull/11/head
lkd9125(이경도) 10 months ago
parent
commit
820a3998f9
  1. 8018
      pav-server/c:/project/log/control-server/data.log.20231109
  2. 838
      pav-server/c:/project/log/control-server/data.log.20231110
  3. 13
      pav-server/src/main/java/com/palnet/biz/api/main/statistics/controller/MainStatisticsController.java
  4. 14
      pav-server/src/main/java/com/palnet/biz/api/main/statistics/model/FlightStcsRQ.java
  5. 29
      pav-server/src/main/java/com/palnet/biz/api/main/statistics/service/MainStatisticsService.java
  6. 71
      pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

8018
pav-server/c:/project/log/control-server/data.log.20231109

File diff suppressed because one or more lines are too long

838
pav-server/c:/project/log/control-server/data.log.20231110

File diff suppressed because one or more lines are too long

13
pav-server/src/main/java/com/palnet/biz/api/main/statistics/controller/MainStatisticsController.java

@ -16,6 +16,7 @@ import com.palnet.biz.api.comn.response.ErrorResponse;
import com.palnet.biz.api.comn.response.SuccessResponse;
import com.palnet.biz.api.main.statistics.model.FlightStcsValueModel;
import com.palnet.biz.api.main.statistics.model.FlightStcsModel;
import com.palnet.biz.api.main.statistics.model.FlightStcsRQ;
import com.palnet.biz.api.main.statistics.service.MainStatisticsService;
import io.swagger.annotations.ApiImplicitParam;
@ -64,19 +65,19 @@ public class MainStatisticsController {
@ApiImplicitParam(name = "cate",value = "비행시간,거리,횟수[TIME]", dataTypeClass = String.class),
@ApiImplicitParam(name = "type",value = "날짜형식[month]", dataTypeClass = String.class)
})
public ResponseEntity<? extends BasicResponse> fltStcs(@RequestParam String cate, String date, @PathVariable String type){
log.warn("cate => {}, date => {}, type => {}", cate, date, type);
public ResponseEntity<? extends BasicResponse> fltStcs(FlightStcsRQ rq, @PathVariable String type){
log.warn("cate => {}, groupId => {}, date => {}, type => {}", rq.getCate(), rq.getGroupId(), rq.getDate(), type);
FlightStcsModel result = new FlightStcsModel();
try {
String[] formatParam = null;
if(date == null) date = "";
formatParam = service.paramCheck(date,type);
if(rq.getDate() == null) rq.setDate("");
formatParam = service.paramCheck(rq.getDate(),type);
List<FlightStcsValueModel> graphData = service.fltStatics(cate, date, formatParam);
List<FlightStcsValueModel> topData = service.fltTopStatics(cate, date, formatParam);
List<FlightStcsValueModel> graphData = service.fltStatics(rq, formatParam);
List<FlightStcsValueModel> topData = service.fltTopStatics(rq, formatParam);
result.setGraphData(graphData);
result.setTopData(topData);

14
pav-server/src/main/java/com/palnet/biz/api/main/statistics/model/FlightStcsRQ.java

@ -0,0 +1,14 @@
package com.palnet.biz.api.main.statistics.model;
import lombok.Data;
@Data
public class FlightStcsRQ {
private String cate;
private String groupId;
private String date;
}

29
pav-server/src/main/java/com/palnet/biz/api/main/statistics/service/MainStatisticsService.java

@ -12,6 +12,7 @@ import org.springframework.stereotype.Service;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.bas.group.model.BasGroupUserListModel;
import com.palnet.biz.api.bas.group.model.BasGroupUserModel;
import com.palnet.biz.api.main.statistics.model.FlightStcsRQ;
import com.palnet.biz.api.main.statistics.model.FlightStcsValueModel;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlQueryRepository;
import com.palnet.biz.jpa.repository.ctr.CtrCntrlWarnLogQueryRepository;
@ -28,7 +29,6 @@ import lombok.extern.slf4j.Slf4j;
@RequiredArgsConstructor
public class MainStatisticsService {
private final CtrCntrlQueryRepository cntrlQueryRepository;
private final CtrCntrlWarnLogQueryRepository ctrCntrlWarnLogQueryRepository;
@ -160,28 +160,29 @@ public class MainStatisticsService {
* @param formatParam
* @return
*/
public List<FlightStcsValueModel> fltStatics(String cate, String date, String[] formatParam){
public List<FlightStcsValueModel> fltStatics(FlightStcsRQ rq, String[] formatParam){
// 권한이 유저권한, 그룹권한 모두 user면 true , user가 하나라도 아닐 경우 모두 false;
boolean authCheck = authCheck(rq.getGroupId());
List<FlightStcsValueModel> resultList = new ArrayList<>();
switch (cate) {
switch (rq.getCate()) {
case "TIME":
resultList = cntrlQueryRepository.fltTimeStcs(date, formatParam);
resultList = cntrlQueryRepository.fltTimeStcs(rq.getDate(), rq.getGroupId(), authCheck, formatParam);
break;
case "DISTANCE":
resultList = cntrlQueryRepository.fltDistanceStcs(date, formatParam);
resultList = cntrlQueryRepository.fltDistanceStcs(rq.getDate(), rq.getGroupId(), authCheck, formatParam);
break;
case "FLT_COUNT":
resultList = cntrlQueryRepository.fltCountStcs(date, formatParam);
resultList = cntrlQueryRepository.fltCountStcs(rq.getDate(), rq.getGroupId(), authCheck, formatParam);
break;
default :
throw new CustomException(ErrorCode.NON_VALID_PARAMETER, cate, date);
throw new CustomException(ErrorCode.NON_VALID_PARAMETER, rq.getCate(), rq.getDate());
}
for(FlightStcsValueModel node : resultList){
@ -198,25 +199,25 @@ public class MainStatisticsService {
* @param formatParam
* @return
*/
public List<FlightStcsValueModel> fltTopStatics(String cate, String date, String[] formatParam){
public List<FlightStcsValueModel> fltTopStatics(FlightStcsRQ rq, String[] formatParam){
List<FlightStcsValueModel> resultList = new ArrayList<>();
switch (cate) {
switch (rq.getCate()) {
case "TIME":
resultList = cntrlQueryRepository.fltTopTimeStcs(date, formatParam);
resultList = cntrlQueryRepository.fltTopTimeStcs(rq.getDate(), formatParam);
break;
case "DISTANCE":
resultList = cntrlQueryRepository.fltTopDistanceStcs(date, formatParam);
resultList = cntrlQueryRepository.fltTopDistanceStcs(rq.getDate(), formatParam);
break;
case "FLT_COUNT":
resultList = cntrlQueryRepository.fltTopCountStcs(date, formatParam);
resultList = cntrlQueryRepository.fltTopCountStcs(rq.getDate(), formatParam);
break;
default :
throw new CustomException(ErrorCode.NON_VALID_PARAMETER, cate, date);
throw new CustomException(ErrorCode.NON_VALID_PARAMETER, rq.getCate(), rq.getDate());
}
for(FlightStcsValueModel node : resultList){

71
pav-server/src/main/java/com/palnet/biz/jpa/repository/ctr/CtrCntrlQueryRepository.java

@ -71,6 +71,7 @@ public class CtrCntrlQueryRepository{
@Autowired
private JwtTokenUtil jwtTokenUtil;
/**
* 비행 현황 데이터 조회
* @param rq
@ -1838,7 +1839,7 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
BooleanBuilder builder = new BooleanBuilder();
builder.and(qFltPlanBas.groupId.eq(groupId));
if(groupId != null && groupId.equals("")) builder.and(qFltPlanBas.groupId.eq(groupId));
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken()));
List<FlightStcsValueModel> queryResult = query
@ -1961,7 +1962,7 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
BooleanBuilder builder = new BooleanBuilder();
builder.and(qFltPlanBas.groupId.eq(groupId));
if(groupId != null && groupId.equals("")) builder.and(qFltPlanBas.groupId.eq(groupId));
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken()));
@ -2066,7 +2067,7 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
BooleanBuilder builder = new BooleanBuilder();
builder.and(qFltPlanBas.groupId.eq(groupId));
if(groupId != null && groupId.equals("")) builder.and(qFltPlanBas.groupId.eq(groupId));
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken()));
List<FlightStcsValueModel> queryResult = query
@ -2167,22 +2168,26 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
* @param formatParam
* @return
*/
public List<FlightStcsValueModel> fltTimeStcs(String date, String[] formatParam){
// QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
public List<FlightStcsValueModel> fltTimeStcs(String date, String groupId, boolean authCheck, String[] formatParam){
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas;
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel;
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
StringTemplate formattedDate = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, qCtrCntrlBas.createDt
, ConstantImpl.create(formatParam[0]));
StringTemplate formattedDate2 = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, qCtrCntrlBas.createDt
, ConstantImpl.create(formatParam[1]));
BooleanBuilder builder = new BooleanBuilder();
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
if(groupId != null && groupId.equals("")) builder.and(qFltPlanBas.groupId.eq(groupId));
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken()));
List<FlightStcsValueModel> result = query
.select(
@ -2191,12 +2196,16 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
formattedDate2.as("name"),
Expressions.stringTemplate(
"CONCAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF({0}, {1})))))",
bas.cntrlEndDt,
bas.cntrlStDt
qCtrCntrlBas.cntrlEndDt,
qCtrCntrlBas.cntrlStDt
).as("value")
)
)
.from(bas)
.from(qCtrCntrlBas)
.leftJoin(qFltPlanCtrCntrlRel)
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId))
.leftJoin(qFltPlanBas)
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno))
.where(builder)
.groupBy(formattedDate2)
.fetch();
@ -2219,32 +2228,40 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
* @param formatParam
* @return
*/
public List<FlightStcsValueModel> fltDistanceStcs(String date, String[] formatParam){
public List<FlightStcsValueModel> fltDistanceStcs(String date, String groupId, boolean authCheck, String[] formatParam){
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas;
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel;
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
StringTemplate formattedDate = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, qCtrCntrlBas.createDt
, ConstantImpl.create(formatParam[0]));
StringTemplate formattedDate2 = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, qCtrCntrlBas.createDt
, ConstantImpl.create(formatParam[1]));
BooleanBuilder builder = new BooleanBuilder();
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
if(groupId != null && groupId.equals("")) builder.and(qFltPlanBas.groupId.eq(groupId));
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken()));
List<FlightStcsValueModel> result = query
.select(
Projections.bean(
FlightStcsValueModel.class ,
formattedDate2.as("name"),
bas.ttlDstnc.sum().as("value")
qCtrCntrlBas.ttlDstnc.sum().as("value")
)
)
.from(bas)
.from(qCtrCntrlBas)
.leftJoin(qFltPlanCtrCntrlRel)
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId))
.leftJoin(qFltPlanBas)
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno))
.where(builder)
.groupBy(formattedDate2)
.fetch();
@ -2267,32 +2284,40 @@ public List<AnlsHstryDetailModel> listCntrlHstry(String id){
* @param formatParam
* @return
*/
public List<FlightStcsValueModel> fltCountStcs(String date, String[] formatParam){
public List<FlightStcsValueModel> fltCountStcs(String date, String groupId, boolean authCheck, String[] formatParam){
QCtrCntrlBas bas = QCtrCntrlBas.ctrCntrlBas;
QCtrCntrlBas qCtrCntrlBas = QCtrCntrlBas.ctrCntrlBas;
QFltPlanCtrCntrlRel qFltPlanCtrCntrlRel = QFltPlanCtrCntrlRel.fltPlanCtrCntrlRel;
QFltPlanBas qFltPlanBas = QFltPlanBas.fltPlanBas;
StringTemplate formattedDate = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, qCtrCntrlBas.createDt
, ConstantImpl.create(formatParam[0]));
StringTemplate formattedDate2 = Expressions.stringTemplate(
"DATE_FORMAT({0}, {1})"
, bas.createDt
, qCtrCntrlBas.createDt
, ConstantImpl.create(formatParam[1]));
BooleanBuilder builder = new BooleanBuilder();
if(date != null && date.length() > 0) builder.and(formattedDate.eq(date));
if(groupId != null && groupId.equals("")) builder.and(qFltPlanBas.groupId.eq(groupId));
if(authCheck) builder.and(qFltPlanBas.cstmrSno.eq(jwtTokenUtil.getCstmrSnoByToken()));
List<FlightStcsValueModel> result = query
.select(
Projections.bean(
FlightStcsValueModel.class ,
formattedDate2.as("name"),
bas.cntrlId.count().as("value")
qCtrCntrlBas.cntrlId.count().as("value")
)
)
.from(bas)
.from(qCtrCntrlBas)
.leftJoin(qFltPlanCtrCntrlRel)
.on(qCtrCntrlBas.cntrlId.eq(qFltPlanCtrCntrlRel.cntrlId))
.leftJoin(qFltPlanBas)
.on(qFltPlanCtrCntrlRel.planSno.eq(qFltPlanBas.planSno))
.where(builder)
.groupBy(formattedDate2)
.fetch();

Loading…
Cancel
Save