System.out.println("Предупреждение : Дата рождения пациента некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : Дата рождения пациента некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
}
//документ, удостоверяющий личность
DirectorySimpleItem doctype = dirDocumentType.getItemFromExtKey(fields.get(Col.C_DOC).get().trim());
if (doctype == null) {
c.docTypeId = 0;
System.out.println("Предупреждение : не найден тип документа " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : не найден тип документа " + dbf.getName() + " snils=(" + c.snils + ")");
}
else {
c.docTypeId = doctype.getID();
}
c.docSN = fields.get(Col.SN_DOC).get().trim();
//адрес, регистрация
c.address = fields.get(Col.ADRES).get().trim();
c.building = fields.get(Col.DOM).get().trim();
c.corpus = fields.get(Col.KOR).get().trim();
c.flat = fields.get(Col.KV).get().trim();
c.okatoReg = fields.get(Col.OKATO_REG).get().trim();
//льготность
Integer flag = null;
try {
flag = Integer.parseInt(fields.get(Col.S_EDV).get().trim());
if (flag < 0 || flag > 1) {
throw new NumberFormatException();
}
} catch (NumberFormatException ex) {
flag = null;
System.out.println("Предупреждение : признак получения НСУ некорректен " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : признак получения НСУ некорректен " + dbf.getName() + " snils=(" + c.snils + ")");
}
c.flagNSU = flag;
c.nsuBegin = null;
try {
Calendar nsuBegin = ((DateField)fields.get(Col.DB_EDV)).getCalendar();
if (Comparator.dataEqual(nullDate, nsuBegin.getTime())) {
c.nsuBegin = null;
}
else {
c.nsuBegin = nsuBegin.getTime();
}
} catch (NumberFormatException ex) {
System.out.println("Предупреждение : Дата начала действия права на получение НСУ некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : Дата начала действия права на получение НСУ некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
}
c.nsuEnd = null;
try {
Calendar nsuEnd = ((DateField)fields.get(Col.DE_EDV)).getCalendar();
if (Comparator.dataEqual(nullDate, nsuEnd.getTime())) {
c.nsuEnd = null;
}
else {
c.nsuEnd = nsuEnd.getTime();
}
} catch (NumberFormatException ex) {
System.out.println("Предупреждение : Дата окончания действия права на получение НСУ некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : Дата окончания действия права на получение НСУ некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
}
DirectorySimpleItem exemp1 = dirExemption.getItemFromExtKey(fields.get(Col.C_KAT1).get().trim());
if (exemp1 == null) {
c.exemp1Id = 0;
}
else {
c.exemp1Id = exemp1.getID();
}
DirectorySimpleItem exemp2 = dirExemption.getItemFromExtKey(fields.get(Col.C_KAT2).get().trim());
if (exemp2 == null) {
c.exemp2Id = 0;
}
else {
c.exemp2Id = exemp2.getID();
}
if (c.exemp1Id == 0 && c.exemp2Id == 0) {
System.out.println("Предупреждение : не найдена категория льготности " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : не найдена категория льготности " + dbf.getName() + " snils=(" + c.snils + ")");
}
else if (c.exemp1Id != 0 && c.exemp2Id != 0) {
System.out.println("Предупреждение : указаны две категории льготности " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : указаны две категории льготности " + dbf.getName() + " snils=(" + c.snils + ")");
}
//даты включения в регистр и исключения из регистра
c.regBegin = null;
try {
Calendar regBegin = ((DateField)fields.get(Col.DATE_RSB)).getCalendar();
if (Comparator.dataEqual(nullDate, regBegin.getTime())) {
c.regBegin = null;
}
else {
c.regBegin = regBegin.getTime();
}
} catch (NumberFormatException ex) {
System.out.println("Предупреждение : Дата включения в региональный Регистр некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : Дата включения в региональный Регистр некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
}
c.regEnd = null;
try {
Calendar regEnd = ((DateField)fields.get(Col.DATE_RSE)).getCalendar();
if (Comparator.dataEqual(nullDate, regEnd.getTime())) {
c.regEnd = null;
}
else {
c.regEnd = regEnd.getTime();
}
} catch (NumberFormatException ex) {
System.out.println("Предупреждение : Дата исключения из регионального Регистра некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
out.println("Предупреждение : Дата исключения из регионального Регистра некорректна " + dbf.getName() + " snils=(" + c.snils + ")");
}
//признак "особый случай"
c.dType = fields.get(Col.D_TYPE).get().trim();
c.c_reg = fields.get(Col.C_REG).get().trim();
clientList.add(c);
} catch (IOException ex) {
closeDBF(dbf);
throw new ClipsException("Ошибка при чтении данных из файла " + dbf.getName() + " (строка " + i + ")", ex);
} catch (xBaseJException ex) {
closeDBF(dbf);
throw new ClipsException("Ошибка при чтении данных из файла " + dbf.getName() + " (строка " + i + ")", ex);
}
}
closeDBF(dbf);
GregorianCalendar gc2 = new GregorianCalendar();
long mc = gc2.getTimeInMillis() - gc1.getTimeInMillis();
System.out.println("Закончилось чтение льготников из файла. Work time: " + mc + " ms");
out.println("Закончилось чтение льготников из файла. Work time: " + mc + " ms");
File fileDoc = new File(cfg.getLastDBFImportPath(), "C_REGL.DBF");
DBF dbfDoc = createDBF(fileDoc);
HashMap<ColDoc, Field> docFields = new HashMap<ColDoc, Field>();
try {
for (int i = 0; i < ColDoc.values().length; i++) {
ColDoc col = ColDoc.values()[i];
docFields.put(col, dbfDoc.getField(col.toString()));
}
} catch (xBaseJException ex) {
throw new ClipsException("Ошибка при чтении данных из файла " + dbfDoc.getName(), ex);
}
recordCount = dbfDoc.getRecordCount();
gc1 = new GregorianCalendar();
ArrayList<FacilityDocumentDetails> docList = new ArrayList<FacilityDocumentDetails>(recordCount);
Set<String> snilsSet = new HashSet<String>();
for (int i = 0; i < recordCount; i++) {
try {
dbfDoc.read();
if ((counter%500) == 0) {
try {
UserInfo.get().disturbServer();
} catch (Throwable ex) {
//пофиг
}
}
if ((i%1000) == 0) {
System.out.println("Обновление данных о документах льготности : " + i/((float)recordCount)*100 + "% (" + i + ") запись");
gc2 = new GregorianCalendar();
mc = gc2.getTimeInMillis() - gc1.getTimeInMillis();
System.out.println("Work time: " + mc + " ms");
}
if (dbfDoc.deleted()) {
continue;
}
FacilityDocumentDetails d = new FacilityDocumentDetails();
String snils = docFields.get(ColDoc.SS).get().trim();
Integer uType = snilsMap.get(snils);
if (snilsSet.contains(snils) && uType != null && uType != FacilityClient.CHANGES_IN_INFO) {
throw new ClipsException("Повторяющийся СНИЛС " + dbfDoc.getName() + " snils=(" + snils + ")" + " строка=" + i);
}
snilsSet.add(snils);
d.snils = snils;
DirectorySimpleItem exemp = dirExemption.getItemFromExtKey(docFields.get(ColDoc.C_KAT).get().trim());
if (exemp == null) {
d.exempId = 0;
System.out.println("Предупреждение : не найден тип льготности " + dbfDoc.getName() + " snils=(" + d.snils + ")");
out.println("Предупреждение : не найден тип льготности " + dbfDoc.getName() + " snils=(" + d.snils + ")");
}
else {
d.exempId = exemp.getID();
}
d.docType = docFields.get(ColDoc.NAME_DL).get().trim();
d.docSN = docFields.get(ColDoc.SN_DL).get().trim();
d.gspBegin = null;