| Line 117... |
Line 117... |
| 117 |
}
|
117 |
}
|
| 118 |
|
118 |
|
| 119 |
@Override
|
119 |
@Override
|
| 120 |
public List<RbmTargetAndAchievementsModel> getRbmTargetsAndAchievemnts(LocalDate startDate, LocalDate endDate) {
|
120 |
public List<RbmTargetAndAchievementsModel> getRbmTargetsAndAchievemnts(LocalDate startDate, LocalDate endDate) {
|
| 121 |
|
121 |
|
| 122 |
List<RbmTargets> rbmTargetsList = rbmTargetsRepository.selectTargetsByDates(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX));
|
122 |
List<RbmTargetsModel> rbmTargetsList = rbmTargetsRepository.selectTargetsModelListByDates(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX));
|
| 123 |
|
123 |
|
| 124 |
LOGGER.info("rbmTargetsList {}", rbmTargetsList);
|
124 |
LOGGER.info("rbmTargetsList {}", rbmTargetsList);
|
| 125 |
// Group Targtes by RBM and Warehouse
|
125 |
// Group Targtes by RBM and Warehouse
|
| 126 |
Map<String, RbmTargets> targetsMap = rbmTargetsList.stream()
|
126 |
Map<String, RbmTargetsModel> targetsMap = rbmTargetsList.stream()
|
| 127 |
.collect(Collectors.toMap(
|
127 |
.collect(Collectors.toMap(
|
| 128 |
a -> a.getRbmAuthId() + "-" + a.getWarehouseId(),
|
128 |
a -> a.getRbmAuthId() + "-" + a.getWarehouseId(),
|
| 129 |
a -> a,
|
129 |
a -> a,
|
| 130 |
(a1, a2) -> mergeTargets(a1, a2) // Handle duplicates by merging
|
130 |
(a1, a2) -> mergeTargets(a1, a2) // Handle duplicates by merging
|
| 131 |
));
|
131 |
));
|
| 132 |
|
132 |
|
| 133 |
|
133 |
|
| 134 |
List<RbmAchievements> rbmAchievements = rbmAchievementsRepository.selectAchievementsByDates(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX));
|
134 |
List<RbmAchievementsModel> rbmAchievements = rbmAchievementsRepository.selectAchievementsModelListByDates(startDate.atStartOfDay(), endDate.atTime(LocalTime.MAX));
|
| 135 |
LOGGER.info("rbmTargetsList {}", rbmAchievements);
|
135 |
LOGGER.info("rbmTargetsList {}", rbmAchievements);
|
| 136 |
// Group achievements by RBM and Warehouse
|
136 |
// Group achievements by RBM and Warehouse
|
| 137 |
Map<String, RbmAchievements> achievementMap = rbmAchievements.stream()
|
137 |
Map<String, RbmAchievementsModel> achievementMap = rbmAchievements.stream()
|
| 138 |
.collect(Collectors.toMap(
|
138 |
.collect(Collectors.toMap(
|
| 139 |
a -> a.getRbmAuthId() + "-" + a.getWarehouseId(),
|
139 |
a -> a.getRbmAuthId() + "-" + a.getWarehouseId(),
|
| 140 |
a -> a,
|
140 |
a -> a,
|
| 141 |
(a1, a2) -> mergeAchievements(a1, a2) // Handle duplicates by merging
|
141 |
(a1, a2) -> mergeAchievements(a1, a2) // Handle duplicates by merging
|
| 142 |
));
|
142 |
));
|
| Line 145... |
Line 145... |
| 145 |
.map(key -> {
|
145 |
.map(key -> {
|
| 146 |
String[] parts = key.split("-");
|
146 |
String[] parts = key.split("-");
|
| 147 |
int rbmAuthId = Integer.parseInt(parts[0]);
|
147 |
int rbmAuthId = Integer.parseInt(parts[0]);
|
| 148 |
int warehouseId = Integer.parseInt(parts[1]);
|
148 |
int warehouseId = Integer.parseInt(parts[1]);
|
| 149 |
|
149 |
|
| 150 |
RbmTargets target = targetsMap.get(key);
|
150 |
RbmTargetsModel target = targetsMap.get(key);
|
| 151 |
RbmAchievements achievement = achievementMap.getOrDefault(key, new RbmAchievements());
|
151 |
RbmAchievementsModel achievement = achievementMap.getOrDefault(key, new RbmAchievementsModel());
|
| 152 |
|
152 |
|
| 153 |
RbmTargetAndAchievementsModel model = new RbmTargetAndAchievementsModel();
|
153 |
RbmTargetAndAchievementsModel model = new RbmTargetAndAchievementsModel();
|
| 154 |
model.setAuthId(rbmAuthId);
|
154 |
model.setAuthId(rbmAuthId);
|
| 155 |
model.setRbmName(target.getRbmName());
|
155 |
model.setRbmName(target.getRbmName());
|
| 156 |
model.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP.getOrDefault(warehouseId, "Unknown"));
|
156 |
model.setWarehouseName(ProfitMandiConstants.WAREHOUSE_MAP.getOrDefault(warehouseId, "Unknown"));
|
| Line 188... |
Line 188... |
| 188 |
})
|
188 |
})
|
| 189 |
.collect(Collectors.toList());
|
189 |
.collect(Collectors.toList());
|
| 190 |
|
190 |
|
| 191 |
}
|
191 |
}
|
| 192 |
|
192 |
|
| 193 |
private RbmTargets mergeTargets(RbmTargets a1, RbmTargets a2) {
|
193 |
private RbmTargetsModel mergeTargets(RbmTargetsModel a1, RbmTargetsModel a2) {
|
| 194 |
|
194 |
|
| 195 |
// Merge logic for achievements (aggregate the target and achieved values)
|
195 |
// Merge logic for achievements (aggregate the target and achieved values)
|
| 196 |
a1.setHidTarget((a1.getHidTarget() != null ? a1.getHidTarget() : 0L) +
|
196 |
a1.setHidTarget((a1.getHidTarget() != null ? a1.getHidTarget() : 0L) +
|
| 197 |
(a2.getHidTarget() != null ? a2.getHidTarget() : 0L));
|
197 |
(a2.getHidTarget() != null ? a2.getHidTarget() : 0L));
|
| 198 |
|
198 |
|
| Line 208... |
Line 208... |
| 208 |
a1.setOtherTarget((a1.getOtherTarget() != null ? a1.getOtherTarget() : 0L) +
|
208 |
a1.setOtherTarget((a1.getOtherTarget() != null ? a1.getOtherTarget() : 0L) +
|
| 209 |
(a2.getOtherTarget() != null ? a2.getOtherTarget() : 0L));
|
209 |
(a2.getOtherTarget() != null ? a2.getOtherTarget() : 0L));
|
| 210 |
return a1;
|
210 |
return a1;
|
| 211 |
}
|
211 |
}
|
| 212 |
|
212 |
|
| 213 |
private RbmAchievements mergeAchievements(RbmAchievements a1, RbmAchievements a2) {
|
213 |
private RbmAchievementsModel mergeAchievements(RbmAchievementsModel a1, RbmAchievementsModel a2) {
|
| 214 |
// Merge logic for achievements (aggregate the target and achieved values)
|
214 |
// Merge logic for achievements (aggregate the target and achieved values)
|
| 215 |
a1.setAchievedHidTarget((a1.getAchievedHidTarget() != null ? a1.getAchievedHidTarget() : 0L) +
|
215 |
a1.setAchievedHidTarget((a1.getAchievedHidTarget() != null ? a1.getAchievedHidTarget() : 0L) +
|
| 216 |
(a2.getAchievedHidTarget() != null ? a2.getAchievedHidTarget() : 0L));
|
216 |
(a2.getAchievedHidTarget() != null ? a2.getAchievedHidTarget() : 0L));
|
| 217 |
|
217 |
|
| 218 |
a1.setAchievedEolTarget((a1.getAchievedEolTarget() != null ? a1.getAchievedEolTarget() : 0L) +
|
218 |
a1.setAchievedEolTarget((a1.getAchievedEolTarget() != null ? a1.getAchievedEolTarget() : 0L) +
|
| Line 227... |
Line 227... |
| 227 |
a1.setAchievedOtherTarget((a1.getAchievedOtherTarget() != null ? a1.getAchievedOtherTarget() : 0L) +
|
227 |
a1.setAchievedOtherTarget((a1.getAchievedOtherTarget() != null ? a1.getAchievedOtherTarget() : 0L) +
|
| 228 |
(a2.getAchievedOtherTarget() != null ? a2.getAchievedOtherTarget() : 0L));
|
228 |
(a2.getAchievedOtherTarget() != null ? a2.getAchievedOtherTarget() : 0L));
|
| 229 |
|
229 |
|
| 230 |
return a1;
|
230 |
return a1;
|
| 231 |
}
|
231 |
}
|
| - |
|
232 |
|
| 232 |
@Override
|
233 |
@Override
|
| 233 |
public List<RbmArrViewModel> getRbmTodayArr(LocalDate todayDate) throws Exception {
|
234 |
public List<RbmArrViewModel> getRbmTodayArr(LocalDate todayDate) throws Exception {
|
| 234 |
|
235 |
|
| 235 |
LocalDate startDateOfMonthDay1 = LocalDate.now().withDayOfMonth(1);
|
236 |
LocalDate startDateOfMonthDay1 = LocalDate.now().withDayOfMonth(1);
|
| 236 |
|
237 |
|