Subversion Repositories SmartDukaan

Rev

Rev 37821 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 37821 Rev 37836
Line 396... Line 396...
396
                    leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus, authUserIds, color, LocalDateTime.now().minusMonths(1));
396
                    leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus, authUserIds, color, LocalDateTime.now().minusMonths(1));
397
                }
397
                }
398
 
398
 
399
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
399
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
400
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
400
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
401
                    leads.addAll(leadFollowUp);
401
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
402
                }
402
                }
403
 
403
 
404
            } else {
404
            } else {
405
 
405
 
406
                if (!leadStatus.contains(LeadStatus.followUp)) {
406
                if (!leadStatus.contains(LeadStatus.followUp)) {
Line 409... Line 409...
409
 
409
 
410
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
410
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
411
 
411
 
412
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
412
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
413
 
413
 
414
                    leads.addAll(leadFollowUp);
414
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
415
 
415
 
416
                }
416
                }
417
 
417
 
418
            }
418
            }
419
 
419
 
Line 426... Line 426...
426
                }
426
                }
427
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
427
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
428
 
428
 
429
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
429
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
430
 
430
 
431
                    leads.addAll(leadFollowUp);
431
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
432
                }
432
                }
433
                LOGGER.info("leadlocalDateTime1" + leads);
433
                LOGGER.info("leadlocalDateTime1" + leads);
434
 
434
 
435
            } else {
435
            } else {
436
                if (!leadStatus.contains(LeadStatus.followUp)) {
436
                if (!leadStatus.contains(LeadStatus.followUp)) {
437
                    leads = leadRepository.selectAllByColorStatusAndBetweenCreatedDate(leadStatus, color, startDateTime, endDateTime);
437
                    leads = leadRepository.selectAllByColorStatusAndBetweenCreatedDate(leadStatus, color, startDateTime, endDateTime);
438
                }
438
                }
439
 
439
 
440
                if (leadStatus.contains(LeadStatus.followUp)) {
440
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
441
 
441
 
442
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
442
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
443
 
443
 
444
                    leads.addAll(leadFollowUp);
444
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
445
                }
445
                }
446
                LOGGER.info("leadlocalDateTime2" + leads);
446
                LOGGER.info("leadlocalDateTime2" + leads);
447
 
447
 
448
            }
448
            }
449
 
449
 
Line 685... Line 685...
685
        cm.setOptions(om);
685
        cm.setOptions(om);
686
 
686
 
687
        return cm;
687
        return cm;
688
    }
688
    }
689
 
689
 
-
 
690
 
-
 
691
    /**
-
 
692
     * When the user has picked a date range, follow-up leads must respect it too; otherwise (no range)
-
 
693
     * follow-ups stay undated, as before. Used by both the lead list and the CSV download so they agree.
-
 
694
     */
-
 
695
    private static List<Lead> withinCreatedRange(List<Lead> leads, LocalDateTime start, LocalDateTime end) {
-
 
696
        if (start == null) {
-
 
697
            return leads;
-
 
698
        }
-
 
699
        return leads.stream()
-
 
700
                .filter(l -> l.getCreatedTimestamp() != null
-
 
701
                        && !l.getCreatedTimestamp().isBefore(start)
-
 
702
                        && (end == null || !l.getCreatedTimestamp().isAfter(end)))
-
 
703
                .collect(Collectors.toList());
-
 
704
    }
-
 
705
 
690
    @RequestMapping(value = "/downloadDateWiseLead", method = RequestMethod.GET)
706
    @RequestMapping(value = "/downloadDateWiseLead", method = RequestMethod.GET)
691
    public ResponseEntity<?> getdownloadLeadDataByDate(HttpServletRequest request,
707
    public ResponseEntity<?> getdownloadLeadDataByDate(HttpServletRequest request,
692
                                                       @RequestParam(name = "leadStatus", required = false, defaultValue = "All") List<LeadStatus> leadStatus,
708
                                                       @RequestParam(name = "leadStatus", required = false, defaultValue = "All") List<LeadStatus> leadStatus,
693
                                                       @RequestParam(name = "color", required = false, defaultValue = "All") List<String> color,
709
                                                       @RequestParam(name = "color", required = false, defaultValue = "All") List<String> color,
694
                                                       @RequestParam(name = "startDate", required = false) LocalDate startDate,
710
                                                       @RequestParam(name = "startDate", required = false) LocalDate startDate,
Line 727... Line 743...
727
                if (!leadStatus.contains(LeadStatus.followUp)) {
743
                if (!leadStatus.contains(LeadStatus.followUp)) {
728
                    leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus, authUserIds, color, LocalDateTime.now().minusMonths(1));
744
                    leads = leadRepository.selectAllByColorStatusAndUpdatedTimestampAndAuthIds(leadStatus, authUserIds, color, LocalDateTime.now().minusMonths(1));
729
                }
745
                }
730
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
746
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
731
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
747
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
732
                    leads.addAll(leadFollowUp);
748
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
733
                }
749
                }
734
            } else {
750
            } else {
735
                // Date range: non-follow-up statuses created within [start, end], PLUS all follow-ups
751
                // Date range: non-follow-up statuses created within [start, end], PLUS all follow-ups
736
                // (undated) — mirrors the on-screen view so the CSV matches what the user sees.
752
                // (undated) — mirrors the on-screen view so the CSV matches what the user sees.
737
                if (!leadStatus.contains(LeadStatus.followUp)) {
753
                if (!leadStatus.contains(LeadStatus.followUp)) {
738
                    leads = leadRepository.selectAllByColorStatusAndBetweenCreatedDateAndAuthIds(leadStatus, authUserIds, color, startDateTime, endDateTime);
754
                    leads = leadRepository.selectAllByColorStatusAndBetweenCreatedDateAndAuthIds(leadStatus, authUserIds, color, startDateTime, endDateTime);
739
                }
755
                }
740
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
756
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
741
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
757
                    leadFollowUp = leadRepository.selectByAssignAuthIdsAndStatus(authUserIds, LeadStatus.followUp);
742
                    leads.addAll(leadFollowUp);
758
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
743
                }
759
                }
744
            }
760
            }
745
        } else {
761
        } else {
746
            if (startDateTime == null) {
762
            if (startDateTime == null) {
747
                if (!leadStatus.contains(LeadStatus.followUp)) {
763
                if (!leadStatus.contains(LeadStatus.followUp)) {
748
                    leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color, LocalDateTime.now().minusMonths(1));
764
                    leads = leadRepository.selectAllByColorStatusAndUpdatedTimestamp(leadStatus, color, LocalDateTime.now().minusMonths(1));
749
                }
765
                }
750
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
766
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
751
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
767
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
752
                    leads.addAll(leadFollowUp);
768
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
753
                }
769
                }
754
            } else {
770
            } else {
755
                // Date range: non-follow-up statuses created within [start, end], PLUS all follow-ups
771
                // Date range: non-follow-up statuses created within [start, end], PLUS all follow-ups
756
                // (undated) — mirrors the on-screen view.
772
                // (undated) — mirrors the on-screen view.
757
                if (!leadStatus.contains(LeadStatus.followUp)) {
773
                if (!leadStatus.contains(LeadStatus.followUp)) {
758
                    leads = leadRepository.selectAllByColorStatusAndBetweenCreatedDate(leadStatus, color, startDateTime, endDateTime);
774
                    leads = leadRepository.selectAllByColorStatusAndBetweenCreatedDate(leadStatus, color, startDateTime, endDateTime);
759
                }
775
                }
760
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
776
                if (leadStatus.contains(LeadStatus.followUp) || leadStatus.contains(LeadStatus.All)) {
761
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
777
                    leadFollowUp = leadRepository.selectAllByStatus(LeadStatus.followUp);
762
                    leads.addAll(leadFollowUp);
778
                    leads.addAll(withinCreatedRange(leadFollowUp, startDateTime, endDateTime));
763
                }
779
                }
764
            }
780
            }
765
        }
781
        }
766
 
782
 
767
        // Build activity map and auth map (SAME AS VIEW ENDPOINT)
783
        // Build activity map and auth map (SAME AS VIEW ENDPOINT)