http://jira.mfd.msk:8088/browse/CLS-254 meta webtype
This commit is contained in:
parent
50e5d8d7bc
commit
ae1d52794a
4 changed files with 50 additions and 17 deletions
|
|
@ -52,6 +52,11 @@ public class ActionField {
|
||||||
@JsonSerialize(using = MetaDataTypeSerializer.class, include = JsonSerialize.Inclusion.NON_EMPTY)
|
@JsonSerialize(using = MetaDataTypeSerializer.class, include = JsonSerialize.Inclusion.NON_EMPTY)
|
||||||
private MetaDataTypes type;
|
private MetaDataTypes type;
|
||||||
|
|
||||||
|
@JsonProperty(value = "webtype")
|
||||||
|
@JsonDeserialize(using = MetaDataTypeDeserializer.class)
|
||||||
|
@JsonSerialize(using = MetaDataTypeSerializer.class, include = JsonSerialize.Inclusion.NON_EMPTY)
|
||||||
|
private MetaDataTypes webtype;
|
||||||
|
|
||||||
@JsonProperty(value = "virtual")
|
@JsonProperty(value = "virtual")
|
||||||
@JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
|
@JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
|
||||||
private Boolean virtual;
|
private Boolean virtual;
|
||||||
|
|
@ -115,4 +120,8 @@ public class ActionField {
|
||||||
public void setVirtual(Boolean virtual) {
|
public void setVirtual(Boolean virtual) {
|
||||||
this.virtual = virtual;
|
this.virtual = virtual;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MetaDataTypes getWebtype() {
|
||||||
|
return webtype;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,11 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
import ru.spcex.platform.utils.time.TimeUtil;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
@ -82,7 +84,7 @@ public class GetResponseFactory {
|
||||||
currentField = field;
|
currentField = field;
|
||||||
// if (fieldsToAdd.contains(field.getField().getCode())) {
|
// if (fieldsToAdd.contains(field.getField().getCode())) {
|
||||||
try {
|
try {
|
||||||
add(r, field.getField().getCode(), field.extractValue(o));
|
add(r, field, field.extractValue(o));
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
log.trace(ExceptionUtils.getStackTrace(
|
log.trace(ExceptionUtils.getStackTrace(
|
||||||
new RuntimeException(String.format("Can't extract value for field='%s' of %s(%s): %s -> %s\n%s",
|
new RuntimeException(String.format("Can't extract value for field='%s' of %s(%s): %s -> %s\n%s",
|
||||||
|
|
@ -102,9 +104,20 @@ public class GetResponseFactory {
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void add(Map<String, Object> response, String name, Object value) {
|
private void add(Map<String, Object> response, FieldExtracted fieldExtracted, Object value) {
|
||||||
|
MetaDataTypes webtype = fieldExtracted.getField().getWebtype();
|
||||||
|
String name = fieldExtracted.getField().getCode();
|
||||||
Object data;
|
Object data;
|
||||||
if (value instanceof Date) {
|
if (webtype != null && !MetaDataTypes.Time.equals(webtype)) {
|
||||||
|
throw new IllegalStateException("not implemented transforming " + webtype);
|
||||||
|
} else if (value != null && MetaDataTypes.Time.equals(webtype)) {
|
||||||
|
if (value instanceof Instant) {
|
||||||
|
LocalDateTime dtTm = TimeUtil.toDateTime((Instant) value);
|
||||||
|
data = timeFormatter.format(dtTm.toLocalTime());
|
||||||
|
} else {
|
||||||
|
throw new IllegalStateException("not implemented transforming ");
|
||||||
|
}
|
||||||
|
} else if (value instanceof Date) {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+03:00");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+03:00");
|
||||||
data = sdf.format(value);
|
data = sdf.format(value);
|
||||||
} else if (value instanceof Instant) {
|
} else if (value instanceof Instant) {
|
||||||
|
|
|
||||||
|
|
@ -254,8 +254,8 @@
|
||||||
<objects>
|
<objects>
|
||||||
<userCls name="Пользователь" destination="users" class="ru.clearing.classes.statics.data.user.User" logUpdates="true" table="user_cls">
|
<userCls name="Пользователь" destination="users" class="ru.clearing.classes.statics.data.user.User" logUpdates="true" table="user_cls">
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
||||||
<identifier type="2" length="250" name="Внешний идентификатор" shortname="Идентификатор" searchable="true" sortable="true" visible="true"/>
|
<identifier type="2" length="250" name="Внешний идентификатор" shortname="Идентификатор" searchable="true" sortable="true" visible="true"/>
|
||||||
<name type="2" length="250" name="Имя и фамилия пользователя" shortname="Имя и фамилия" searchable="true" sortable="true" visible="true"/>
|
<name type="2" length="250" name="Имя и фамилия пользователя" shortname="Имя и фамилия" searchable="true" sortable="true" visible="true"/>
|
||||||
<firstName type="2" length="250" name="Имя пользователя" shortname="Имя" searchable="true" sortable="true" visible="true"/>
|
<firstName type="2" length="250" name="Имя пользователя" shortname="Имя" searchable="true" sortable="true" visible="true"/>
|
||||||
|
|
@ -291,8 +291,8 @@
|
||||||
</userSettings>
|
</userSettings>
|
||||||
<userConnect name="Активность пользователей в системе" class="ru.clearing.classes.statics.data.user.UserConnect" logUpdates="true" table="user_connect">
|
<userConnect name="Активность пользователей в системе" class="ru.clearing.classes.statics.data.user.UserConnect" logUpdates="true" table="user_connect">
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
||||||
<userId type="1" dbname="Идентификатор пользователя" name="Имя и фамилия пользователя" shortname="Пользователь" searchable="true" sortable="true" visible="true" link="userCls"/>
|
<userId type="1" dbname="Идентификатор пользователя" name="Имя и фамилия пользователя" shortname="Пользователь" searchable="true" sortable="true" visible="true" link="userCls"/>
|
||||||
<connectionTime type="4" name="Последнее соединение" shortname="Вход" searchable="true" sortable="true"/>
|
<connectionTime type="4" name="Последнее соединение" shortname="Вход" searchable="true" sortable="true"/>
|
||||||
<disconnectionTime type="4" name="Разрыв соединения" shortname="Выход" searchable="true" sortable="true"/>
|
<disconnectionTime type="4" name="Разрыв соединения" shortname="Выход" searchable="true" sortable="true"/>
|
||||||
|
|
@ -313,8 +313,8 @@
|
||||||
<companySymbolValue field="id" type="2" length="255" name="Значение реквизита" shortname="Значение реквизита" searchable="true" sortable="true" visible="true" linkKeyCode="companyId" linkCode="companySymbolValue" link="companySymbols" extends="companySymbols"/>
|
<companySymbolValue field="id" type="2" length="255" name="Значение реквизита" shortname="Значение реквизита" searchable="true" sortable="true" visible="true" linkKeyCode="companyId" linkCode="companySymbolValue" link="companySymbols" extends="companySymbols"/>
|
||||||
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" link="workflowStatus"/>
|
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" link="workflowStatus"/>
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
||||||
<actions>
|
<actions>
|
||||||
<post name="Добавление компании" confirmation="shortName,tradingCode,companySymbol,companySymbolValue,workflowStatus">
|
<post name="Добавление компании" confirmation="shortName,tradingCode,companySymbol,companySymbolValue,workflowStatus">
|
||||||
<shortName type="2" length="255" name="Краткое наименование Компании" shortname="Компания" required="true"/>
|
<shortName type="2" length="255" name="Краткое наименование Компании" shortname="Компания" required="true"/>
|
||||||
|
|
@ -468,8 +468,8 @@
|
||||||
<isin type="2" length="50" name="Наименование инструмента ISIN" shortname="ISIN" searchable="true" sortable="true" visible="true"/>
|
<isin type="2" length="50" name="Наименование инструмента ISIN" shortname="ISIN" searchable="true" sortable="true" visible="true"/>
|
||||||
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" visible="true" link="workflowStatus"/>
|
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" visible="true" link="workflowStatus"/>
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
||||||
</security>
|
</security>
|
||||||
<currency name="Валюты" destination="currencies" class="ru.clearing.classes.statics.data.misc.Currency" logUpdates="true" table="currency">
|
<currency name="Валюты" destination="currencies" class="ru.clearing.classes.statics.data.misc.Currency" logUpdates="true" table="currency">
|
||||||
<countryCode type="12" dbname="Код страны" name="Наименование страны" shortname="Страна" searchable="true" sortable="true" visible="true" link="countryCode"/>
|
<countryCode type="12" dbname="Код страны" name="Наименование страны" shortname="Страна" searchable="true" sortable="true" visible="true" link="countryCode"/>
|
||||||
|
|
@ -672,8 +672,8 @@
|
||||||
<tradingCurrency type="12" dbname="Код валюты расчета" name="Наименование валюты расчета" shortname="Валюта" searchable="true" sortable="true" visible="true" link="currencyCode" linkCode="code"/>
|
<tradingCurrency type="12" dbname="Код валюты расчета" name="Наименование валюты расчета" shortname="Валюта" searchable="true" sortable="true" visible="true" link="currencyCode" linkCode="code"/>
|
||||||
<workflowStatus type="12" dbname="Код статуса листинга в системе" name="Наименование статуса листинга в системе" shortname="Статус" searchable="true" sortable="true" visible="true" link="workflowStatus"/>
|
<workflowStatus type="12" dbname="Код статуса листинга в системе" name="Наименование статуса листинга в системе" shortname="Статус" searchable="true" sortable="true" visible="true" link="workflowStatus"/>
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
||||||
</listing>
|
</listing>
|
||||||
<market name="Торговые секции" destination="markets" class="ru.clearing.classes.statics.data.misc.Market" logUpdates="true" table="market">
|
<market name="Торговые секции" destination="markets" class="ru.clearing.classes.statics.data.misc.Market" logUpdates="true" table="market">
|
||||||
<description type="2" length="255" name="Описание" shortname="Описание" searchable="true" sortable="true"/>
|
<description type="2" length="255" name="Описание" shortname="Описание" searchable="true" sortable="true"/>
|
||||||
|
|
@ -683,13 +683,13 @@
|
||||||
<settlementCurrency type="12" dbname="Код валюты расчета" name="Наименование валюты расчета" shortname="Валюта" searchable="true" sortable="true" visible="true" link="currencyCode" linkCode="code"/>
|
<settlementCurrency type="12" dbname="Код валюты расчета" name="Наименование валюты расчета" shortname="Валюта" searchable="true" sortable="true" visible="true" link="currencyCode" linkCode="code"/>
|
||||||
<section type="12" dbname="Код секции" name="Наименование секции" shortname="Секция" searchable="true" sortable="true" visible="true" link="section"/>
|
<section type="12" dbname="Код секции" name="Наименование секции" shortname="Секция" searchable="true" sortable="true" visible="true" link="section"/>
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
||||||
</market>
|
</market>
|
||||||
<errorText name="Полные тексты ошибок" destination="error-texts" class="ru.clearing.classes.statics.data.messages.ErrorText" table="error_text">
|
<errorText name="Полные тексты ошибок" destination="error-texts" class="ru.clearing.classes.statics.data.messages.ErrorText" table="error_text">
|
||||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
<createdAt field="created" type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true" ignore="true"/>
|
||||||
<updatedAt type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
<updatedAt field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true" ignore="true"/>
|
||||||
<errorCodeId type="1" dbname="Идентификатор кода ошибки" name="Код ошибки" shortname="Код" searchable="true" sortable="true" visible="true" link="errorCode"/>
|
<errorCodeId type="1" dbname="Идентификатор кода ошибки" name="Код ошибки" shortname="Код" searchable="true" sortable="true" visible="true" link="errorCode"/>
|
||||||
<text type="2" length="255" name="Полный текст ошибки" shortname="Ошибка" searchable="true" sortable="true" visible="true"/>
|
<text type="2" length="255" name="Полный текст ошибки" shortname="Ошибка" searchable="true" sortable="true" visible="true"/>
|
||||||
<userId type="1" dbname="Идентификатор автора сообщения" name="Автор сообщения" shortname="Сотрудник" searchable="true" sortable="true" visible="true" link="userCls" ignore="true"/>
|
<userId type="1" dbname="Идентификатор автора сообщения" name="Автор сообщения" shortname="Сотрудник" searchable="true" sortable="true" visible="true" link="userCls" ignore="true"/>
|
||||||
|
|
|
||||||
|
|
@ -68,4 +68,15 @@ public class TimeUtil {
|
||||||
if (date == null) return null;
|
if (date == null) return null;
|
||||||
return LocalDate.ofInstant(date, ZoneId.systemDefault());
|
return LocalDate.ofInstant(date, ZoneId.systemDefault());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static ZonedDateTime toZoned(Instant instant) {
|
||||||
|
if (instant == null) return null;
|
||||||
|
return instant.atZone(zone);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LocalDateTime toDateTime(Instant instant) {
|
||||||
|
ZonedDateTime zoned = toZoned(instant);
|
||||||
|
if (zoned == null) return null;
|
||||||
|
return zoned.toLocalDateTime();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue