0

Рефакторинг класса ExcelDataRow

This commit is contained in:
2016-06-04 15:39:17 +03:00
parent 6dc119cc45
commit 6c8b2e1fa4
3 changed files with 63 additions and 60 deletions

View File

@@ -4,27 +4,55 @@
*/
package ru.dmitriymx.astralcheckreport;
class ExcelDataRow {
String inn, kpp, tarif;
int addonNaprov, fsrar, addonCert, egrul, addonKpp, tranzaks;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
ExcelDataRow(String inn, String kpp, String tarif,
int addonNaprov, int fsrar, int addonCert, int egrul, int addonKpp, int tranzaks) {
this.inn = inn;
this.kpp = kpp;
this.tarif = tarif;
this.addonNaprov = addonNaprov;
this.fsrar = fsrar;
this.addonCert = addonCert;
this.egrul = egrul;
this.addonKpp = addonKpp;
this.tranzaks = tranzaks;
class ExcelDataRow {
private Row row;
ExcelDataRow(Row row) {
this.row = row;
}
String getInn() {
Cell cellInn = row.getCell(2);
cellInn.setCellType(Cell.CELL_TYPE_STRING);
return cellInn.getStringCellValue();
}
String getKpp() {
Cell cellKpp = row.getCell(3);
cellKpp.setCellType(Cell.CELL_TYPE_STRING);
return cellKpp.getStringCellValue();
}
String getTarif() {
Cell cellTarif = row.getCell(6);
return cellTarif.getStringCellValue();
}
int getAddonCert() {
Cell cellAddonCert = row.getCell(11);
cellAddonCert.setCellType(Cell.CELL_TYPE_NUMERIC);
return (int)cellAddonCert.getNumericCellValue();
}
int getAddonKpp() {
Cell cellAddonKpp = row.getCell(13);
cellAddonKpp.setCellType(Cell.CELL_TYPE_NUMERIC);
return (int)cellAddonKpp.getNumericCellValue();
}
int getAddonNaprov() {
Cell cellAddonNaprov = row.getCell(9);
cellAddonNaprov.setCellType(Cell.CELL_TYPE_NUMERIC);
return (int)cellAddonNaprov.getNumericCellValue();
}
@Override
public String toString() {
return "{inn: \"" + inn +
"\", kpp:\"" + kpp +
"\", tarif:\"" + tarif + "\"}";
return "{inn: \"" + getInn() +
"\", kpp:\"" + getKpp() +
"\", tarif:\"" + getTarif() + "\"}";
}
}

View File

@@ -25,32 +25,7 @@ class ExcelReader {
Cell cellInn = row.getCell(2);
cellInn.setCellType(Cell.CELL_TYPE_STRING);
if (cellInn.getStringCellValue().isEmpty()) return null;
Cell cellKpp = row.getCell(3);
cellKpp.setCellType(Cell.CELL_TYPE_STRING);
Cell cellTarif = row.getCell(6);
Cell cellAddonNaprov = row.getCell(9);
cellAddonNaprov.setCellType(Cell.CELL_TYPE_NUMERIC);
Cell cellFsrar = row.getCell(10);
cellFsrar.setCellType(Cell.CELL_TYPE_NUMERIC);
Cell cellAddonCert = row.getCell(11);
cellAddonCert.setCellType(Cell.CELL_TYPE_NUMERIC);
Cell cellEgrul = row.getCell(12);
cellEgrul.setCellType(Cell.CELL_TYPE_NUMERIC);
Cell cellAddonKpp = row.getCell(13);
cellAddonKpp.setCellType(Cell.CELL_TYPE_NUMERIC);
Cell cellTranzaks = row.getCell(14);
cellTranzaks.setCellType(Cell.CELL_TYPE_NUMERIC);
return new ExcelDataRow(
cellInn.getStringCellValue(),
cellKpp.getStringCellValue(),
cellTarif.getStringCellValue(),
(int)cellAddonNaprov.getNumericCellValue(),
(int)cellFsrar.getNumericCellValue(),
(int)cellAddonCert.getNumericCellValue(),
(int)cellEgrul.getNumericCellValue(),
(int)cellAddonKpp.getNumericCellValue(),
(int)cellTranzaks.getNumericCellValue()
);
return new ExcelDataRow(row);
}
}

View File

@@ -81,30 +81,30 @@ public class Main implements Runnable {
ExcelDataRow data;
while( !Thread.currentThread().isInterrupted() && ((data = nextData()) != null) ) {
logger.info("Проверяю {} / {} ...", data.inn, data.kpp);
logger.info("Проверяю {} / {} ...", data.getInn(), data.getKpp());
logger.debug("data = {}", data);
Organization organization = astral.getOrganization(data.inn, data.kpp);
Organization organization = astral.getOrganization(data.getInn(), data.getKpp());
if (organization == null) {
logger.error("({}/{}): Организация не найдена!", data.inn, data.kpp);
logger.error("({}/{}): Организация не найдена!", data.getInn(), data.getKpp());
safeSleep(sleepThread);
continue;
}
logger.debug("result = {}", organization);
if (data.tarif.equalsIgnoreCase("Акция 3 месяца")) {
if (data.getTarif().equalsIgnoreCase("Акция 3 месяца")) {
tarif_Akcia3Mount(astral, organization, data);
}
else if (data.tarif.equalsIgnoreCase("Группа компаний")) {
else if (data.getTarif().equalsIgnoreCase("Группа компаний")) {
tarif_GroupCompany(organization, data);
}
else if (data.tarif.equalsIgnoreCase("Оптимальный, 4 направ.")) {
else if (data.getTarif().equalsIgnoreCase("Оптимальный, 4 направ.")) {
tarif_Optimalniy(astral, organization, data);
}
else if (data.tarif.equalsIgnoreCase("Базовый, 2 направ.")) {
else if (data.getTarif().equalsIgnoreCase("Базовый, 2 направ.")) {
tarif_Basic(astral, organization, data);
}
else {
logger.info("Не задана логика для тарифа: \"{}\"", data.tarif);
logger.info("Не задана логика для тарифа: \"{}\"", data.getTarif());
}
safeSleep(sleepThread);
@@ -139,7 +139,7 @@ public class Main implements Runnable {
JsonObject historyCert = astral.historyCert(product.id);
int totalCert = historyCert.get("total").getAsInt();
if (totalCert > 1) {
if (totalCert != (1 + data.addonCert)) {
if (totalCert != (1 + data.getAddonCert())) {
logger.error("({}/{}): Ошибка количества сертификатов!", organization.inn, organization.kpp);
}
}
@@ -288,15 +288,15 @@ public class Main implements Runnable {
}
}
boolean boolFNS = (countFNS == 0 || countFNS == 1 + data.addonKpp);
if (countFNS == 0 && data.addonKpp > 0) {
logger.warn("({}/{}): Внимание! Странное значение ФНС/Доп.КПП", data.inn, data.kpp);
boolean boolFNS = (countFNS == 0 || countFNS == 1 + data.getAddonKpp());
if (countFNS == 0 && data.getAddonKpp() > 0) {
logger.warn("({}/{}): Внимание! Странное значение ФНС/Доп.КПП", data.getInn(), data.getKpp());
}
boolean boolFSS = (countFSS == 0 || countFSS == 1);
boolean boolRosstat = (countRosstat == 0 || countRosstat == 1);
boolean boolPFR = (countPFR == 0 || countPFR == 1);
if (countFNS + countFSS + countRosstat + countPFR > 4 + data.addonKpp) {
if (countFNS + countFSS + countRosstat + countPFR > 4 + data.getAddonKpp()) {
return false;
}
@@ -331,15 +331,15 @@ public class Main implements Runnable {
}
}
boolean boolFNS = (countFNS == 0 || countFNS == 1 + data.addonKpp);
if (countFNS == 0 && data.addonKpp > 0) {
logger.warn("({}/{}): Внимание! Странное значение ФНС/Доп.КПП", data.inn, data.kpp);
boolean boolFNS = (countFNS == 0 || countFNS == 1 + data.getAddonKpp());
if (countFNS == 0 && data.getAddonKpp() > 0) {
logger.warn("({}/{}): Внимание! Странное значение ФНС/Доп.КПП", data.getInn(), data.getInn());
}
boolean boolFSS = (countFSS == 0 || countFSS == 1);
boolean boolRosstat = (countRosstat == 0 || countRosstat == 1);
boolean boolPFR = (countPFR == 0 || countPFR == 1);
if (countFNS + countFSS + countRosstat + countPFR > 2 + data.addonKpp + data.addonNaprov) {
if (countFNS + countFSS + countRosstat + countPFR > 2 + data.getAddonKpp() + data.getAddonNaprov()) {
return false;
}