From f4b37596d8d7efdd752b41a6984d6a5d132c1371 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Wed, 8 Jun 2016 02:01:08 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BE=D0=BF=D1=82=D0=B8=D0=BC=D0=B8=D0=B7?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F:=20=D0=B2=D1=8B=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BE=D0=B1=D1=89=D0=B8=D0=B9=20=D0=B0=D0=BB?= =?UTF-8?q?=D0=B3=D0=BE=D1=80=D0=B8=D1=82=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tarifs/AbstractTarifProcessor.java | 23 +++++++++++++++---- .../tarifs/Akcia3MountTarifProcessor.java | 13 +---------- .../tarifs/BasicTarifProcessor.java | 16 ++----------- .../tarifs/GroupCompanyTarifProcessor.java | 16 ++----------- .../tarifs/OptimalniyTarifProcessor.java | 16 ++----------- .../tarifs/StartTarifProcessor.java | 16 ++----------- 6 files changed, 27 insertions(+), 73 deletions(-) diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/AbstractTarifProcessor.java b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/AbstractTarifProcessor.java index 2081c7b..fa651e0 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/AbstractTarifProcessor.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/AbstractTarifProcessor.java @@ -9,10 +9,7 @@ import org.slf4j.LoggerFactory; import ru.dmitriymx.astralcheckreport.AstralSession; import ru.dmitriymx.astralcheckreport.ExcelDataRow; import ru.dmitriymx.astralcheckreport.Main; -import ru.dmitriymx.astralcheckreport.objects.Cert; -import ru.dmitriymx.astralcheckreport.objects.LeftObject; -import ru.dmitriymx.astralcheckreport.objects.Organization; -import ru.dmitriymx.astralcheckreport.objects.Product; +import ru.dmitriymx.astralcheckreport.objects.*; import java.util.List; @@ -45,7 +42,7 @@ public abstract class AbstractTarifProcessor { } } - protected int countActiveCert(List historyCert) { + int countActiveCert(List historyCert) { int result = 0; for (Cert cert : historyCert) { if (cert.endCertDate.after(Main.currentDate)) { @@ -56,5 +53,21 @@ public abstract class AbstractTarifProcessor { return result; } + boolean checkDateCert(Organization organization) { + Product product = organization.products.get(0); + Tarif tarif = product.contractTariffs.get(0); + if (product.certs.size() > 1) { + logger.warn("({}/{}): Обнаружено более 1 сертификата!", organization.inn, organization.kpp); + } + Cert cert = product.certs.get(0); + + if (cert.startCertDate.before(tarif.date_initialDate)) { + logger.error("({}/{}): Ошибка: сертификат выдан раньше тарифа!", organization.inn, organization.kpp); + return false; + } + + return true; + } + protected abstract void process0(AstralSession astral, Organization organization, ExcelDataRow data); } diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/Akcia3MountTarifProcessor.java b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/Akcia3MountTarifProcessor.java index 661ede6..74f52d9 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/Akcia3MountTarifProcessor.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/Akcia3MountTarifProcessor.java @@ -52,18 +52,7 @@ public class Akcia3MountTarifProcessor extends AbstractTarifProcessor { // Step III: Проверяем разницу дат. // Сертификат должен быть выдан в тот же день или позже, чем тариф - if (product.certs.size() > 1) { - logger.warn("({}/{}): Обнаружено более 1 сертификата!", organization.inn, organization.kpp); - } - Cert cert = product.certs.get(0); - - long tarifDateLong = tarif.date_initialDate.getTime(); - long certDateLong = cert.startCertDate.getTime(); - - if (certDateLong < tarifDateLong) { - logger.error("({}/{}): Ошибка: сертификат выдан раньше тарифа!", organization.inn, organization.kpp); -// return; - } + checkDateCert(organization); } else { logger.trace("Тариф игнорируется: \"{}\"", tarif.name); diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/BasicTarifProcessor.java b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/BasicTarifProcessor.java index 7779989..bd6f3f9 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/BasicTarifProcessor.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/BasicTarifProcessor.java @@ -20,22 +20,10 @@ public class BasicTarifProcessor extends AbstractTarifProcessor { protected void process0(AstralSession astral, Organization organization, ExcelDataRow data) { // Step I: Проверяем разницу дат. // Сертификат должен быть выдан в тот же день или позже, чем тариф - Product product = organization.products.get(0); - Tarif tarif = product.contractTariffs.get(0); - if (product.certs.size() > 1) { - logger.warn("({}/{}): Обнаружено более 1 сертификата!", organization.inn, organization.kpp); - } - Cert cert = product.certs.get(0); - - long tarifDateLong = tarif.date_initialDate.getTime(); - long certDateLong = cert.startCertDate.getTime(); - - if (certDateLong < tarifDateLong) { - logger.error("({}/{}): Ошибка: сертификат выдан раньше тарифа!", organization.inn, organization.kpp); - return; - } + if (!checkDateCert(organization)) return; // Step II: Проверяем кол-во Направлений + Product product = organization.products.get(0); if (!calcRecipients2(product, data)) { //TODO надо проверять по категориям logger.warn("({}/{}): Внимание! Не соответствие количества направлений!", organization.inn, organization.kpp); } diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/GroupCompanyTarifProcessor.java b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/GroupCompanyTarifProcessor.java index 776f43b..77711ca 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/GroupCompanyTarifProcessor.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/GroupCompanyTarifProcessor.java @@ -25,22 +25,10 @@ public class GroupCompanyTarifProcessor extends AbstractTarifProcessor { // Step II: Проверяем разницу дат. // Сертификат должен быть выдан в тот же день или позже, чем тариф - Product product = organization.products.get(0); - Tarif tarif = product.contractTariffs.get(0); - if (product.certs.size() > 1) { - logger.warn("({}/{}): Обнаружено более 1 сертификата!", organization.inn, organization.kpp); - } - Cert cert = product.certs.get(0); - - long tarifDateLong = tarif.date_initialDate.getTime(); - long certDateLong = cert.startCertDate.getTime(); - - if (certDateLong < tarifDateLong) { - logger.error("({}/{}): Ошибка: сертификат выдан раньше тарифа!", organization.inn, organization.kpp); - return; - } + if (!checkDateCert(organization)) return; // Step III: Проверяем кол-во Направлений + Product product = organization.products.get(0); if (!calcRecipients4(product, data)) { //TODO надо проверять по категориям logger.warn("({}/{}): Внимание! Не соответствие количества направлений!", organization.inn, organization.kpp); } diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/OptimalniyTarifProcessor.java b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/OptimalniyTarifProcessor.java index eee7b98..c7ade9f 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/OptimalniyTarifProcessor.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/OptimalniyTarifProcessor.java @@ -19,22 +19,10 @@ public class OptimalniyTarifProcessor extends AbstractTarifProcessor { protected void process0(AstralSession astral, Organization organization, ExcelDataRow data) { // Step I: Проверяем разницу дат. // Сертификат должен быть выдан в тот же день или позже, чем тариф - Product product = organization.products.get(0); - Tarif tarif = product.contractTariffs.get(0); - if (product.certs.size() > 1) { - logger.warn("({}/{}): Обнаружено более 1 сертификата!", organization.inn, organization.kpp); - } - Cert cert = product.certs.get(0); - - long tarifDateLong = tarif.date_initialDate.getTime(); - long certDateLong = cert.startCertDate.getTime(); - - if (certDateLong < tarifDateLong) { - logger.error("({}/{}): Ошибка: сертификат выдан раньше тарифа!", organization.inn, organization.kpp); - return; - } + if (!checkDateCert(organization)) return; // Step II: Проверяем кол-во Направлений + Product product = organization.products.get(0); if (!calcRecipients4(product, data)) { //TODO надо проверять по категориям logger.warn("({}/{}): Внимание! Не соответствие количества направлений!", organization.inn, organization.kpp); } diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/StartTarifProcessor.java b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/StartTarifProcessor.java index fb62230..ad030d0 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/StartTarifProcessor.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/tarifs/StartTarifProcessor.java @@ -20,22 +20,10 @@ public class StartTarifProcessor extends AbstractTarifProcessor { protected void process0(AstralSession astral, Organization organization, ExcelDataRow data) { // Step I: Проверяем разницу дат. // Сертификат должен быть выдан в тот же день или позже, чем тариф - Product product = organization.products.get(0); - Tarif tarif = product.contractTariffs.get(0); - if (product.certs.size() > 1) { - logger.warn("({}/{}): Обнаружено более 1 сертификата!", organization.inn, organization.kpp); - } - Cert cert = product.certs.get(0); - - long tarifDateLong = tarif.date_initialDate.getTime(); - long certDateLong = cert.startCertDate.getTime(); - - if (certDateLong < tarifDateLong) { - logger.error("({}/{}): Ошибка: сертификат выдан раньше тарифа!", organization.inn, organization.kpp); - return; - } + if (!checkDateCert(organization)) return; // Step II: Проверяем кол-во Направлений + Product product = organization.products.get(0); if (!calcRecipients1(product, data)) { //TODO надо проверять по категориям logger.warn("({}/{}): Внимание! Не соответствие количества направлений!", organization.inn, organization.kpp); }