В репозитории исходник (.java), скомпилированный класс (.class) и web-приложение (.war) с исходниками, у web версии функционал немного шире. Инструмент работает только с латинскими буквами и цифрами в масках, инструмент автоматически проверяет файл с масками на наличие невалидных символов и в случае если находит такие - сообщает где. Инструмент помагает при заведении условий классов номеров в двух ресурсных системах LIS и RIM, а именно, парсит условия классов номеров, которые нам предоставляют заказчики в виде масок, например, 996669DBB6, в готовый инсерт для двух ресурсных систем LIS или RIM на выбор (от чего зависят название таблиц, полей и значений в инсерте), в зависимости от соответствующего ключа. Помимо условия так же генерируется подходящий ему тестовый номер. Так же можно указывать идентификатор класса для инсерта и значения для конкатенации с условием или тестовым номером. Все остальные значения подставляются "стандартными". Далее будет описываться результат работы инструмента с маской 996XX9DBB6.
Инструкция по установке web-приложения number_parse.war:
-
Скачать с официального сайта apache-tomcat.
-
В файле /conf/tomcat-users.xml в секцию добавить строки:
-
Запустить сервер с помощью /bin/startup.bat, запустивщийся процесс не отключать.
-
По адресу http://localhost:8080/manager (admin/admin), в секции "WAR file to deploy", выбираем /web/number_parse.war и нажимаем "Deploy".
-
Приложение развернуто и доступно по адресу http://localhost:8080/number_parse/
Инструкция для работы с исполняемым файлом number_parse.class: У инструмента 10 обязательных параметров запуска:
1 Путь к текстовому файлу с условиями (масками) - любой тексовый файл, где каждая маска записана с новой строки. Пример: "C:/Users/vladislav.pirogov/Desktop/yota/condition.txt".
2 Путь, куда будет записываться результат работы программы - следует указывать так же имя файла, если самого файла не существует, то он будет создан. Пример: "C:/Users/vladislav.pirogov/Desktop/insert.sql".
3 Ресурсная система - на выбор 2 значения LIS или RIM, от этого зависит название таблиц и полей в составе инсерта. Пример: "LIS" или "RIM".
4 ID класса, к которому будет привязано условие - значение ключа просто будет подставленно соответствующему полю в инсерте. Пример: "100".
5 Параметр, который определяет могут ли цифры на месте разных символов быть равны друг другу. Принимает значения "A=B" или "A!=B".
- Пример результата работы для маски 996XX9DBB6 с "A=B" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6
- Пример результата работы для маски 996XX9DBB6 с "A!=B" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6 and :4 != :7 and :4 != :8 and :7 != :8
Синтаксис неравенства в RIM и LIS разнится, это учтено. Примеры выше для RIM, для LIS вместо "!=" будет "and not".
6 Параметр, который определяет учитывать ли указанный символ в условии. Принимает на вход один символ, если в этом нет необходимости задайте значение "".
- Пример результата работы для маски 996XX9DBB6 с "" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6
- Пример результата работы для маски 996XX9DBB6 с "X" - :1 = 9 and :2 = 9 and :3 = 6 and :6 = 9 and :8 = :9 and :10 = 6
7 Параметр, который определяет могут ли цифры на месте разных символов быть равны цифрам, которые уже фигурируют в маске. Принимает значения "A=1" или "A!=1".
- Пример результата работы для маски 996XX9DBB6 с "A=1" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6
- Пример результата работы для маски 996XX9DBB6 с "A!=1" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6 and :4 != 9 and :4 != 6 and :7 != 9 and :7 != 6 and :8 != 9 and :8 != 6
8 Параметр, который определяет смещение в условии класса. Принимает в качестве значения цифру, если смешение не нужно задайте параметру значение 1.
- Пример результата работы для маски 996XX9DBB6 с "1" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6 and :4 != :7 and :4 != :8 and :7 != :8
- Пример результата работы для маски 996XX9DBB6 с "3" - :3 = 9 and :4 = 9 and :5 = 6 and :6 = :7 and :8 = 9 and :10 = :11 and :12 = 6 and :6 != :9 and :6 != :10 and :9 != :10
9 Параметр, значение которого конкатенируется с условием в начале. Принимает любые значения, если в этом нет необходимости задайте значение "".
- Пример результата работы для маски 996XX9DBB6 с "" - :1 = 9 and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6 and :4 != :7 and :4 != :8 and :7 != :8
- Пример результата работы для маски 996XX9DBB6 со смещением "2" (предыдущий параметр) и с конкатенацией "(:1 = 8 or :1 = 9) and " - (:1 = 8 or :1 = 9) and :2 = 9 and :3 = 6 and :4 = :5 and :6 = 9 and :8 = :9 and :10 = 6 and :4 != :7 and :4 != :8 and :7 != :8
10 Параметр, значение которого конкатенируется с тестовым номером в начале. Принимает любые значения, если в этом нет необходимости задайте значение "".
Пример запуска инструмента со всеми параметрами:
- java -cp C:/Users/vladislav.pirogov/desktop number_parse "C:/Users/vladislav.pirogov/Desktop/yota/condition.txt" "C:/Users/vladislav.pirogov/Desktop/insert.sql" "RIM" "102" "A!=B" "X" "A=1" "6" ":1 = 9 and :2 = 9 and :3 = 8 and :4 = 9 and (:5 = 3 or :5 = 4) and " "99893" Где значения ключа -cp это путь, где локально лежит класс number_parse.