Как добавить список LocalDate в myList в Java - PullRequest
0 голосов
/ 25 июня 2018

Как добавить локальный список дат в myList в java

Найдите приведенный ниже код и проверьте, где я допустил ошибку, чтобы добавить даты в myList

Я объявляю Список как Локальную дату, теперь нужно конвертировать в myModel

ошибка возникает в // myList.addAll (employeeReportsModel.getReportFromDt ());

 @RequestMapping(value = "/getMusterRollDateBased", method = RequestMethod.GET)
 public ModelAndView getMusterRollDateBased(EmployeeReportsModel employeeReportsModel) {
    ModelAndView mv = new ModelAndView();
    String tablePrefix = "at_hr_logs_";

      try {
       System.out.println("refort from date.."+employeeReportsModel.getReportFromDt());

        System.out.println("refort to date.."+employeeReportsModel.getReportToDt());
        String fromdate = employeeReportsModel.getReportFromDt();
        String todate = employeeReportsModel.getReportToDt();
        Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(fromdate);
        Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(todate);
        System.out.println(date1 + "-----" + date2);            
        // parse the date into another format           
        SimpleDateFormat sdfDestination = new SimpleDateFormat("yyyy-MM-dd");           
        String fromdate1 = sdfDestination.format(date1);
        String todate1 = sdfDestination.format(date2);          
       employeeReportsModel.setReportFromDt(fromdate1);         
       // get dates between two dates           
       String startString = fromdate1;          
       String endString = todate1;

       LocalDate incrementingDate = LocalDate.parse(startString);
       LocalDate endDate = LocalDate.parse(endString);
       List<LocalDate> allDates = new ArrayList<>();

        while (!incrementingDate.isAfter(endDate)) {
            allDates.add(incrementingDate);
            incrementingDate = incrementingDate.plusDays(1);
        }

        System.err.println(allDates);
        List<EmployeeReportsModel> myList = null;   
        mv.addObject("allDates",allDates);
        for (LocalDate date : allDates) {
            //System.out.println();             
            System.out.println("dates is..." + date);
            employeeReportsModel.setReportFromDt(date.toString());              
            String[] parts = date.toString().split("-");
            String part1 = parts[0]; // 004
            String part2 = parts[1]; // 034556
            System.out.println("year ....." + part1);
            System.out.println("Month....." + part2);

            String tableName = tablePrefix + part1 + '_' + part2;
            System.out.println("hks table name is.." + tableName);
            employeeReportsModel.setDynamicTableName(tableName);
            myList.addAll(employeeReportsModel.getReportFromDt());
          //here we get a problem to add
}

    } catch (Exception e) {
        e.printStackTrace();
    }
    mv.setViewName("/" + moduleName + "/employeeMusterRollBasedOnDateInter");
    return mv;

}

1 Ответ

0 голосов
/ 25 июня 2018

Во-первых, вы вызываете myList.addAll() для нулевого объекта.Ваш список должен быть правильно инициализирован, как myList = new ArrayList().

Затем вы пытаетесь сохранить тип String в своем списке, который ожидает объект типа EmployeeReportsModel.

Таким образом, вы можете либо изменить свой myList навыглядеть как List<String> или изменить тип возврата метода getReportFromDt().

Я предлагаю вам переосмыслить текущий код.

В настоящее время вы в основном делаете следующее: получите локальную дату> создать из нее строку> сохранить ее с помощью setReportFromDt> вызвать getReportFromDt> попытаться сохранить LocalDate в виде строки в список типа EmployeeReportsModel

...