diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/AstralSession.java b/src/main/java/ru/dmitriymx/astralcheckreport/AstralSession.java index 0642d63..de30781 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/AstralSession.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/AstralSession.java @@ -46,7 +46,14 @@ class AstralSession { "\"CreationInterval\":-1,\"SortingColumn\":\"abonentId\",\"SortingOrder\":\"desc\"}}"; browser.setHeader("Content-Type", "application/json;charset=utf-8"); - String jsonStr = browser.post("http://reg.astralnalog.ru/AbonentModule.aspx/GetAbonentData", postData); + String jsonStr; + do { + jsonStr = browser.post("http://reg.astralnalog.ru/AbonentModule.aspx/GetAbonentData", postData); + if (jsonStr.isEmpty()) { + logger.warn("Слишком быстро! Повторяю запрос..."); + Main.safeSleep(Main.sleepThread); + } + } while (jsonStr.isEmpty()); JsonObject jsonObj = str2jsonObj(jsonStr); jsonObj = str2jsonObj(jsonObj.get("d").getAsString()); diff --git a/src/main/java/ru/dmitriymx/astralcheckreport/Main.java b/src/main/java/ru/dmitriymx/astralcheckreport/Main.java index 76c1c97..c02a514 100644 --- a/src/main/java/ru/dmitriymx/astralcheckreport/Main.java +++ b/src/main/java/ru/dmitriymx/astralcheckreport/Main.java @@ -13,7 +13,6 @@ import ru.dmitriymx.astralcheckreport.objects.*; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; -import java.util.List; import java.util.Properties; public class Main implements Runnable { @@ -278,7 +277,7 @@ public class Main implements Runnable { case 10: break; case 6: case 13: - countFNS += recipient.kpp.size(); + countFNS += (recipient.kpp.size() > 0 ? recipient.kpp.size() : 1); break; case 5: countFSS++; break; case 4: countRosstat++; break; @@ -297,7 +296,7 @@ public class Main implements Runnable { boolean boolRosstat = (countRosstat == 0 || countRosstat == 1); boolean boolPFR = (countPFR == 0 || countPFR == 1); - if (countFNS + countFSS + countRosstat + countPFR + data.addonKpp > 4 + data.addonKpp) { + if (countFNS + countFSS + countRosstat + countPFR > 4 + data.addonKpp) { return false; } @@ -321,7 +320,7 @@ public class Main implements Runnable { case 10: break; case 6: case 13: - countFNS += recipient.kpp.size(); + countFNS += (recipient.kpp.size() > 0 ? recipient.kpp.size() : 1); break; case 5: countFSS++; break; case 4: countRosstat++; break; @@ -340,7 +339,7 @@ public class Main implements Runnable { boolean boolRosstat = (countRosstat == 0 || countRosstat == 1); boolean boolPFR = (countPFR == 0 || countPFR == 1); - if (countFNS + countFSS + countRosstat + countPFR + data.addonKpp > 2 + data.addonKpp + data.addonNaprov) { + if (countFNS + countFSS + countRosstat + countPFR > 2 + data.addonKpp + data.addonNaprov) { return false; }