|
|
|
@ -288,6 +288,7 @@ public class BasDosService {
|
|
|
|
|
.reviewedType(reviewedType) |
|
|
|
|
.reviewedReason(area.getReviewedReason()) |
|
|
|
|
.reviewedProcType(area.getReviewedProcType()) |
|
|
|
|
.sendStatus(area.getSendStatus()) |
|
|
|
|
.reqRadius(area.getReqRadius()) |
|
|
|
|
.allowRadius(area.getAllowRadius()) |
|
|
|
|
.limitZoneCd(area.getLimitZone()) |
|
|
|
@ -419,7 +420,7 @@ public class BasDosService {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 상태 변경 알림
|
|
|
|
|
if(!sharePlanAreaSnoList.isEmpty()) { |
|
|
|
|
if (!sharePlanAreaSnoList.isEmpty()) { |
|
|
|
|
shareService.shareStateUpdate(sharePlanAreaSnoList); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -991,12 +992,13 @@ public class BasDosService {
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 페이징처리 |
|
|
|
|
* |
|
|
|
|
* @param rq |
|
|
|
|
* @param type |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
@Transactional(readOnly = true) |
|
|
|
|
public SearchBasDosPlanRS getPagingDosPlan(SearchBasDosPlanRQ rq, PlanSelectType type){ |
|
|
|
|
public SearchBasDosPlanRS getPagingDosPlan(SearchBasDosPlanRQ rq, PlanSelectType type) { |
|
|
|
|
List<DosFltPlanBas> planBasList = dosFltPlanQueryRepository.findPlanByBasSearch(rq); |
|
|
|
|
|
|
|
|
|
if (planBasList.isEmpty()) { |
|
|
|
@ -1008,9 +1010,10 @@ public class BasDosService {
|
|
|
|
|
Long totalDataCount = dosFltPlanQueryRepository.countByPlanSnoInAndSearchOrderByZoneNoAsc(planSnoList, rq); |
|
|
|
|
Long totalPages = totalDataCount / rq.getPageDataSize(); |
|
|
|
|
|
|
|
|
|
if(totalDataCount % rq.getPageDataSize() > 0) totalPages ++; |
|
|
|
|
if (totalDataCount % rq.getPageDataSize() > 0) totalPages++; |
|
|
|
|
|
|
|
|
|
if(rq.getPage() > totalPages || rq.getPage() < 1) throw new CustomException(ErrorCode.NON_VALID_PARAMETER, String.format("페이지는 [ %s ] page 부터 [ %s ] page 까지입니다.", 1, totalPages)); |
|
|
|
|
if (rq.getPage() > totalPages || rq.getPage() < 1) |
|
|
|
|
throw new CustomException(ErrorCode.NON_VALID_PARAMETER, String.format("페이지는 [ %s ] page 부터 [ %s ] page 까지입니다.", 1, totalPages)); |
|
|
|
|
|
|
|
|
|
Boolean isFirst = rq.getPage() == 1; |
|
|
|
|
Boolean isLast = rq.getPage().equals(totalPages); |
|
|
|
@ -1023,8 +1026,8 @@ public class BasDosService {
|
|
|
|
|
pagination.setIsFirst(isFirst); |
|
|
|
|
pagination.setIsLast(isLast); |
|
|
|
|
|
|
|
|
|
Map<Long , DosFltPlanBas> fltPlanBasMap = this.getConvertMap(planBasList, "planSno", Long.class); |
|
|
|
|
Map<Long , List<BasDosPlanDroneRs>> fltDroneBasMap = dosFltPlanDroneRepository.findByPlanSnoIn(planSnoList).stream() |
|
|
|
|
Map<Long, DosFltPlanBas> fltPlanBasMap = this.getConvertMap(planBasList, "planSno", Long.class); |
|
|
|
|
Map<Long, List<BasDosPlanDroneRs>> fltDroneBasMap = dosFltPlanDroneRepository.findByPlanSnoIn(planSnoList).stream() |
|
|
|
|
.map(drone -> { |
|
|
|
|
String weightCd = drone.getWeightCd(); |
|
|
|
|
WeightCdType weightCdType = WeightCdType.fromCode(weightCd); |
|
|
|
@ -1038,9 +1041,10 @@ public class BasDosService {
|
|
|
|
|
.planSno(drone.getPlanSno()) |
|
|
|
|
.build(); |
|
|
|
|
}) |
|
|
|
|
.collect(Collectors.groupingBy(BasDosPlanDroneRs::getPlanSno));; |
|
|
|
|
.collect(Collectors.groupingBy(BasDosPlanDroneRs::getPlanSno)); |
|
|
|
|
; |
|
|
|
|
|
|
|
|
|
Map<Long , List<BasDosPlanPilotRs>> fltPliotBasMap = dosFltPlanPilotRepository.findByPlanSnoIn(planSnoList).stream() |
|
|
|
|
Map<Long, List<BasDosPlanPilotRs>> fltPliotBasMap = dosFltPlanPilotRepository.findByPlanSnoIn(planSnoList).stream() |
|
|
|
|
.map(pilot -> { |
|
|
|
|
return BasDosPlanPilotRs.builder() |
|
|
|
|
.planPilotSno(pilot.getPlanPilotSno()) |
|
|
|
@ -1060,7 +1064,7 @@ public class BasDosService {
|
|
|
|
|
removePlanSnoSet.removeAll(areaPlanSno); |
|
|
|
|
|
|
|
|
|
List<Long> removeList = new ArrayList<>(removePlanSnoSet); |
|
|
|
|
for(Long removePlanSno : removeList){ |
|
|
|
|
for (Long removePlanSno : removeList) { |
|
|
|
|
fltPlanBasMap.remove(removePlanSno); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1082,7 +1086,7 @@ public class BasDosService {
|
|
|
|
|
LinkedHashMap::new |
|
|
|
|
)); |
|
|
|
|
|
|
|
|
|
for(Map.Entry<Long, DosFltPlanBas> entry : sortedMap.entrySet()){ |
|
|
|
|
for (Map.Entry<Long, DosFltPlanBas> entry : sortedMap.entrySet()) { |
|
|
|
|
Long planSno = entry.getKey(); |
|
|
|
|
DosFltPlanBas bas = entry.getValue(); |
|
|
|
|
|
|
|
|
@ -1103,7 +1107,7 @@ public class BasDosService {
|
|
|
|
|
|
|
|
|
|
List<BasDosPlanAreaRs> areaRsList = new ArrayList<>(); |
|
|
|
|
|
|
|
|
|
for (int i = 0; i < areaList.size(); i ++) { |
|
|
|
|
for (int i = 0; i < areaList.size(); i++) { |
|
|
|
|
|
|
|
|
|
DosFltPlanArea area = areaList.get(i); |
|
|
|
|
|
|
|
|
@ -1306,7 +1310,7 @@ public class BasDosService {
|
|
|
|
|
|
|
|
|
|
int count = 0; |
|
|
|
|
|
|
|
|
|
for(int i = 0; i < rs.size(); i ++){ |
|
|
|
|
for (int i = 0; i < rs.size(); i++) { |
|
|
|
|
BasDosPlanRs rsNode = rs.get(i); |
|
|
|
|
|
|
|
|
|
count += rsNode.getAreaList().size(); |
|
|
|
@ -1322,13 +1326,14 @@ public class BasDosService {
|
|
|
|
|
/** |
|
|
|
|
* List 노드객체의 컬럼중 하나를 Key값으로 잡아 Map을 만듬 |
|
|
|
|
* EX -> PlanBas의 planSno를 키값으로 잡아 Map<planSno, PlanBas> 형태로 변환 |
|
|
|
|
* |
|
|
|
|
* @param list Map으로 바꿀 리스트 |
|
|
|
|
* @param fieldName Map의 key가 될 컬럼 이름 |
|
|
|
|
* @param keyType Map의 key가 될 클래스 타입 |
|
|
|
|
* @return |
|
|
|
|
* @param <P> |
|
|
|
|
* @param <B> |
|
|
|
|
* @param <C> |
|
|
|
|
* @return |
|
|
|
|
*/ |
|
|
|
|
private <P, B extends List<C>, C> Map<P, C> getConvertMap(B list, String fieldName, Class<P> keyType) { |
|
|
|
|
Map<P, C> result = new HashMap<>(); |
|
|
|
@ -1357,12 +1362,12 @@ public class BasDosService {
|
|
|
|
|
*/ |
|
|
|
|
public void sendDosPlan(BasDosSendDosPlanRq rq) { |
|
|
|
|
List<DosFltPlanArea> dosFltPlanAreaList = dosFltPlanAreaRepository.findByPlanAreaSnoIn(rq.getPlanAreaSnoList()); |
|
|
|
|
if(dosFltPlanAreaList == null || dosFltPlanAreaList.isEmpty()) { |
|
|
|
|
if (dosFltPlanAreaList == null || dosFltPlanAreaList.isEmpty()) { |
|
|
|
|
throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
boolean isNotSuccess = dosFltPlanAreaList.stream().anyMatch(area -> area.getReviewedType() != ReviewedType.SUCCESS); |
|
|
|
|
if(isNotSuccess) { |
|
|
|
|
if (isNotSuccess) { |
|
|
|
|
throw new CustomException(ErrorCode.DOS_NOT_VALID_REVIEWED_TYPE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|