swt-exporter http://jira.mfd.msk:8088/browse/CLS-317 поправил формат

This commit is contained in:
AKurakin 2023-06-20 18:36:07 +03:00
parent 8d4c38a9cb
commit 4382cc5572
4 changed files with 30 additions and 6 deletions

View file

@ -127,6 +127,15 @@ public abstract class AbstractExporterService<T extends SpcexObjectBase> {
return sdfImdg.getAllValues();
}
/**
* Последняя строка - количество
* @param records
* @return
*/
protected int countIssues(Collection<T> records) {
return records.size();
}
// Конвертация (поля см. meta.xml)
protected abstract String convertRecord(T record, ConvertionContext context);
@ -135,7 +144,7 @@ public abstract class AbstractExporterService<T extends SpcexObjectBase> {
protected void makeSWTData(SWTHeaderData header, Collection<T> records, OutputStream outStream) {
try (PrintWriter out = new PrintWriter(outStream)) {
out.print(header.buildString());
int counter = 0;
int counter = 1; // нумерация начинается с 1
int totalSize = records.size();
for (T row : records) {
ConvertionContext context = new ConvertionContext(mapClass, counter, totalSize);
@ -143,8 +152,8 @@ public abstract class AbstractExporterService<T extends SpcexObjectBase> {
out.print(data);
counter++;
}
out.print(totalSize);
out.print(lineSeparator);
int checkSumCount = countIssues(records);
out.print(checkSumCount); // количество
out.flush();
}
}

View file

@ -12,7 +12,9 @@ import ru.spcex.platform.enumeration.SwtTable;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Objects;
@Service
public class DF09Exporter extends AbstractExporterService<SDf09> {
@ -70,4 +72,9 @@ public class DF09Exporter extends AbstractExporterService<SDf09> {
return stringBuilder.toString();
}
@Override
protected int countIssues(Collection<SDf09> records) {
return (int) records.stream().map(SDf09::getSecurityCode).filter(Objects::nonNull).distinct().count();
}
}

View file

@ -13,7 +13,9 @@ import ru.spcex.platform.enumeration.SwtTable;
import ru.spcex.platform.imdg.api.ImdgProvider;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Objects;
@Service
@ -71,4 +73,10 @@ public class DF11Exporter extends AbstractExporterService<SDf11> {
}
return swtHeaderData;
}
@Override
protected int countIssues(Collection<SDf11> records) {
return (int) records.stream().map(SDf11::getSecurityCode).filter(Objects::nonNull).distinct().count();
}
}

View file

@ -39,7 +39,7 @@ public class DF12Exporter extends AbstractExporterService<SDf12> {
@Override
protected String typeForHeader() {
return "012";
return "580";
}
@Override
@ -57,8 +57,8 @@ public class DF12Exporter extends AbstractExporterService<SDf12> {
stringBuilder.append(context.getCountOfRecord()).append(lineSeparator);
stringBuilder.append(context.getTotalCountOfRecords()).append(lineSeparator);
stringBuilder.append(":23:").append(record.getDirection()).append(lineSeparator);
stringBuilder.append(":35A:").append(record.getQuantity()).append(lineSeparator);
stringBuilder.append(":35B:").append(record.getSecurityCode()).append(lineSeparator);
stringBuilder.append(":35A:SHS").append(record.getQuantity()).append(lineSeparator);
stringBuilder.append(":35B:ISIN ").append(record.getSecurityCode()).append(lineSeparator);
stringBuilder.append(":82D:").append(record.getDepoCodeSender()).append(lineSeparator);
stringBuilder.append(":87C:").append(record.getDepoCodeAdressee()).append(lineSeparator);
return stringBuilder.toString();