Subversion Repositories SmartDukaan

Rev

Rev 33997 | Rev 34006 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 33997 Rev 34002
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