diff --git a/reports/report.xlsx b/reports/report.xlsx new file mode 100644 index 0000000..d8995fb Binary files /dev/null and b/reports/report.xlsx differ diff --git a/src/main/java/ru/egspt/ReportTableModel.java b/src/main/java/ru/egspt/ReportTableModel.java index 4ebd43d..345909f 100644 --- a/src/main/java/ru/egspt/ReportTableModel.java +++ b/src/main/java/ru/egspt/ReportTableModel.java @@ -91,7 +91,7 @@ public class ReportTableModel extends AbstractTableModel{ return header; } /** - * + * */ public void setData(Object[][] data){ this.data = data; @@ -276,13 +276,13 @@ public class ReportTableModel extends AbstractTableModel{ * - name/Фамилия Имя Отчество * - position/должность * - result/имеются или нет результаты - * + * * данные из файла подтягиваются по полю Login, * столбцы должны быть размещены в строгой последовательности: * 1. login * 2. ... - * 3. - * + * 3. + * * Лист с которого берем данные должен быть первым (желательно единственным) */ public void updateReport(File file) throws IOException{ @@ -297,18 +297,9 @@ public class ReportTableModel extends AbstractTableModel{ while (i < height){ if ((String)getData()[i][1] == row.getCell(0).getStringCellValue()){ //переписываем данные строки в модель - } - - i++; } - - - - - - book.close(); } } diff --git a/src/main/java/ru/egspt/implant/ExtendedUser.java b/src/main/java/ru/egspt/implant/ExtendedUser.java new file mode 100644 index 0000000..8c4c95e --- /dev/null +++ b/src/main/java/ru/egspt/implant/ExtendedUser.java @@ -0,0 +1,60 @@ +package ru.egspt.implant; + +public class ExtendedUser { + private String fullname; + private String position; + private String psk; + private String username; + /** + * Основной конструктор полей расширенного пользователя + * @param builder + */ + private ExtendedUser(ExtendedUserBuilder builder){ + fullname = builder.fullname; + position = builder.position; + psk = builder.psk; + username = builder.username; + } + /** + * Класс-строитель объектов ExtendedUser + */ + public static class ExtendedUserBuilder{ + private String fullname; + private String position; + private String psk; + private String username; + + /** + * Основной конструктор класса с обязательным полем username + * @param username + */ + public ExtendedUserBuilder(String username){ + this.username = username; + } + + /** + * @param fullname the fullname to set + */ + public ExtendedUserBuilder setFullname(String fullname) { + this.fullname = fullname; + return this; + } + /** + * @param position the position to set + */ + public ExtendedUserBuilder setPosition(String position) { + this.position = position; + return this; + } + /** + * @param psk the psk to set + */ + public ExtendedUserBuilder setPsk(String psk) { + this.psk = psk; + return this; + } + public ExtendedUser build(){ + return new ExtendedUser(this); + } + } +} diff --git a/src/main/java/ru/egspt/implant/Implant.java b/src/main/java/ru/egspt/implant/Implant.java new file mode 100644 index 0000000..2739c8c --- /dev/null +++ b/src/main/java/ru/egspt/implant/Implant.java @@ -0,0 +1,60 @@ +package ru.egspt.implant; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; + +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +import ru.egspt.implant.ExtendedUser.ExtendedUserBuilder; + +/** + * Данные из файлов excel, для консолидации с data при формировании полного отчета + */ +public class Implant { + ArrayList users = new ArrayList<>(); + public Implant(File file){ + // создание самого excel файла в памяти + try(FileInputStream fis = new FileInputStream(file)){ + XSSFWorkbook book = new XSSFWorkbook(new FileInputStream(file)); + XSSFSheet sheet = book.getSheetAt(0); + for (Row row : sheet) { + if (row.getRowNum() == 0){ + continue; //строка заголовков + } + String username = row.getCell(0).getStringCellValue(); + String fullname = row.getCell(1).getStringCellValue(); + String position = row.getCell(2).getStringCellValue(); + String psk = row.getCell(3).getStringCellValue(); + ExtendedUser eu = new ExtendedUserBuilder(username) + .setFullname(fullname) + .setPosition(position) + .setPsk(psk) + .build(); + users.add(eu); + } + book.close(); + }catch(IOException e){ + System.out.println("Путь к исходному файлу указан не верно!"); + System.out.println(e.getMessage()); + } + } + /** + * @param users the users to set + */ + public void setUsers(ArrayList users) { + this.users = users; + } + /** + * @return the users + */ + public ArrayList getUsers() { + return users; + } + + + +} diff --git a/src/main/java/ru/egspt/implant/Runner.java b/src/main/java/ru/egspt/implant/Runner.java new file mode 100644 index 0000000..af3322c --- /dev/null +++ b/src/main/java/ru/egspt/implant/Runner.java @@ -0,0 +1,39 @@ +package ru.egspt.implant; + +import java.util.ArrayList; + +import ru.egspt.Base; +import ru.egspt.Data; +import ru.egspt.Quiz; +import ru.egspt.Result; +import ru.egspt.User; + +public class Runner { + private Base base; + private Data data; + + /** + * @param base the base to set + */ + public void setBase(Base base) { + this.base = base; + } + /** + * @return the base + */ + public Base getBase() { + return base; + } + public static void main(String[] args) { + Runner r = new Runner(); + r.base = new Base("www.egspt.ru", "esoe", "psalm6912"); + r.base.connect(); + + r.data = new Data(); + ArrayList quizes = r.data.getQuizesFromBase(r.base); + ArrayList results = r.data.getResultsFromBase(r.base); + ArrayList users = r.data.getUsersFromBase(r.base); + + } + +} diff --git a/target/classes/ru/egspt/ReportTableModel.class b/target/classes/ru/egspt/ReportTableModel.class index 601a3fc..49d186f 100644 Binary files a/target/classes/ru/egspt/ReportTableModel.class and b/target/classes/ru/egspt/ReportTableModel.class differ diff --git a/target/classes/ru/egspt/implant/ExtendedUser$ExtendedUserBuilder.class b/target/classes/ru/egspt/implant/ExtendedUser$ExtendedUserBuilder.class new file mode 100644 index 0000000..8876518 Binary files /dev/null and b/target/classes/ru/egspt/implant/ExtendedUser$ExtendedUserBuilder.class differ diff --git a/target/classes/ru/egspt/implant/ExtendedUser.class b/target/classes/ru/egspt/implant/ExtendedUser.class new file mode 100644 index 0000000..ab0d83d Binary files /dev/null and b/target/classes/ru/egspt/implant/ExtendedUser.class differ diff --git a/target/classes/ru/egspt/implant/Implant.class b/target/classes/ru/egspt/implant/Implant.class new file mode 100644 index 0000000..840be90 Binary files /dev/null and b/target/classes/ru/egspt/implant/Implant.class differ diff --git a/target/classes/ru/egspt/implant/Runner.class b/target/classes/ru/egspt/implant/Runner.class new file mode 100644 index 0000000..0a3a7b8 Binary files /dev/null and b/target/classes/ru/egspt/implant/Runner.class differ diff --git a/target/moodle-anyreport-0.1-jar-with-dependencies.jar b/target/moodle-anyreport-0.1-jar-with-dependencies.jar index fab6ec8..bc33660 100644 Binary files a/target/moodle-anyreport-0.1-jar-with-dependencies.jar and b/target/moodle-anyreport-0.1-jar-with-dependencies.jar differ diff --git a/target/moodle-anyreport-0.1.jar b/target/moodle-anyreport-0.1.jar index 4438492..704f506 100644 Binary files a/target/moodle-anyreport-0.1.jar and b/target/moodle-anyreport-0.1.jar differ