발전시뮬레이션 모듈 순서 변경

This commit is contained in:
DESKTOP-6ARNG1Q\dlsgk 2025-01-16 14:07:44 +09:00
parent 98c8da7859
commit 333ae0fa04
2 changed files with 36 additions and 40 deletions

View File

@ -123,44 +123,46 @@ public class PwrGnrSimService {
return exceptionRes; return exceptionRes;
} }
// 지붕재의 모든 모듈 Item 조회 // 지붕재의 모든 Group 모듈 Item 조회
pwrGnrSimRequest.setItemGroup("MODULE_"); pwrGnrSimRequest.setItemGroup("MODULE_");
List<PwrGnrSimRoofResponse> roofModuleList = List<PwrGnrSimRoofResponse> roofGroupModuleList =
pwrGnrSimMapper.selectRoofItemList(pwrGnrSimRequest); pwrGnrSimMapper.selectRoofItemList(pwrGnrSimRequest);
// 전체 모듈에서 모듈 그룹형태로 변경 // 전체 모듈에서 SORT 변경 (총용량 DESC)
List<PwrGnrSimRoofResponse> moduleGroupList = List<PwrGnrSimRoofResponse> moduleGroupList =
roofModuleList.stream() roofGroupModuleList.stream()
.collect(
Collectors.groupingBy(
PwrGnrSimRoofResponse::getItemId, // 번째 그룹화 기준
Collectors.collectingAndThen(
Collectors.toList(),
list -> {
// 그룹화된 번째 요소를 기반으로 객체 생성
ObjectMapper mapper = new ObjectMapper();
PwrGnrSimRoofResponse setDto =
mapper.convertValue(list.get(0), PwrGnrSimRoofResponse.class);
// specification 합산
double totSpecification =
list.stream()
.mapToDouble(response -> response.getTotSpecification())
.sum();
totSpecification = totSpecification / 1000;
// 합산 결과 설정
setDto.setTotSpecification(totSpecification);
return setDto;
})))
.values()
.stream()
.sorted( .sorted(
Comparator.comparingDouble(PwrGnrSimRoofResponse::getTotSpecification) Comparator.comparingDouble(PwrGnrSimRoofResponse::getTotSpecification)
.reversed()) // 내림차순 정렬 .reversed()) // 내림차순 정렬
.collect(Collectors.toList()); .collect(Collectors.toList());
// .collect(
// Collectors.groupingBy(
// PwrGnrSimRoofResponse::getItemId, // 번째 그룹화 기준
// Collectors.collectingAndThen(
// Collectors.toList(),
// list -> {
// // 그룹화된 번째 요소를 기반으로 객체 생성
// ObjectMapper mapper = new ObjectMapper();
// PwrGnrSimRoofResponse setDto =
// mapper.convertValue(list.get(0),
// PwrGnrSimRoofResponse.class);
//
// // specification 합산
// double totSpecification =
// list.stream()
// .mapToDouble(response ->
// response.getTotSpecification())
// .sum();
//
// totSpecification = totSpecification / 1000;
//
// // 합산 결과 설정
// setDto.setTotSpecification(totSpecification);
//
// return setDto;
// })))
// .values()
// .stream()
// 모듈 아이템이 없음. // 모듈 아이템이 없음.
if (moduleGroupList.isEmpty()) { if (moduleGroupList.isEmpty()) {
@ -168,12 +170,7 @@ public class PwrGnrSimService {
return exceptionRes; return exceptionRes;
} }
// 지붕재의 모든 PCS Item 조회 // 모든GROUP PCS Group Item 조회
// pwrGnrSimRequest.setItemGroup("PC_");
// List<PwrGnrSimRoofResponse> roofPcsList =
// pwrGnrSimMapper.selectRoofItemList(pwrGnrSimRequest);
// GROUP PCS Group Item 조회
List<PwrGnrSimRoofResponse> pcsGroupList = List<PwrGnrSimRoofResponse> pcsGroupList =
pwrGnrSimMapper.selectRoofPcsGroupList(pwrGnrSimRequest); pwrGnrSimMapper.selectRoofPcsGroupList(pwrGnrSimRequest);
@ -261,7 +258,7 @@ public class PwrGnrSimService {
// 지붕별 모듈정보 셋팅 // 지붕별 모듈정보 셋팅
int j = 0; int j = 0;
for (PwrGnrSimRoofResponse m : roofModuleList) { for (PwrGnrSimRoofResponse m : moduleGroupList) {
if (data.getRoofSurfaceId().equals(m.getRoofSurfaceId())) { if (data.getRoofSurfaceId().equals(m.getRoofSurfaceId())) {
dSpecification += m.getTotSpecification(); dSpecification += m.getTotSpecification();
if (j == 0) { if (j == 0) {
@ -271,7 +268,6 @@ public class PwrGnrSimService {
} else { } else {
dModuleInput3[i] = Integer.parseInt(m.getAmount()); dModuleInput3[i] = Integer.parseInt(m.getAmount());
} }
j++; j++;
} }
} }
@ -306,7 +302,7 @@ public class PwrGnrSimService {
pwrGnrSimRes.setAreaName(planInfo.getAreaName()); pwrGnrSimRes.setAreaName(planInfo.getAreaName());
pwrGnrSimRes.setSnowfall(planInfo.getSnowfall()); pwrGnrSimRes.setSnowfall(planInfo.getSnowfall());
pwrGnrSimRes.setStandardWindSpeedId(planInfo.getStandardWindSpeedId()); pwrGnrSimRes.setStandardWindSpeedId(planInfo.getStandardWindSpeedId());
pwrGnrSimRes.setRoofModuleList(roofModuleList); pwrGnrSimRes.setRoofModuleList(roofGroupModuleList);
pwrGnrSimRes.setPcsList(pcsGroupList); pwrGnrSimRes.setPcsList(pcsGroupList);
return pwrGnrSimRes; return pwrGnrSimRes;

View File

@ -103,6 +103,6 @@
AND C.ITEM_GROUP = #{itemGroup} AND C.ITEM_GROUP = #{itemGroup}
GROUP BY A.ROOF_SURFACE_ID, A.ROOF_SURFACE, A.CLASS_TYPE, A.AZIMUTH, A.ANGLE, A.SLOPE, B.ITEM_ID, B.ITEM_NO GROUP BY A.ROOF_SURFACE_ID, A.ROOF_SURFACE, A.CLASS_TYPE, A.AZIMUTH, A.ANGLE, A.SLOPE, B.ITEM_ID, B.ITEM_NO
) T ) T
ORDER BY T.SPECIFICATION DESC ORDER BY T.ROOF_SURFACE_ID ASC, T.ITEM_ID ASC
</select> </select>
</mapper> </mapper>