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)
|
||||
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")
|
||||
@JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
|
||||
private Boolean virtual;
|
||||
|
|
@ -115,4 +120,8 @@ public class ActionField {
|
|||
public void setVirtual(Boolean virtual) {
|
||||
this.virtual = virtual;
|
||||
}
|
||||
|
||||
public MetaDataTypes getWebtype() {
|
||||
return webtype;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,9 +5,11 @@ import org.slf4j.Logger;
|
|||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import ru.spcex.platform.utils.time.TimeUtil;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
|
@ -82,7 +84,7 @@ public class GetResponseFactory {
|
|||
currentField = field;
|
||||
// if (fieldsToAdd.contains(field.getField().getCode())) {
|
||||
try {
|
||||
add(r, field.getField().getCode(), field.extractValue(o));
|
||||
add(r, field, field.extractValue(o));
|
||||
} catch (Throwable e) {
|
||||
log.trace(ExceptionUtils.getStackTrace(
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
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");
|
||||
data = sdf.format(value);
|
||||
} else if (value instanceof Instant) {
|
||||
|
|
|
|||
|
|
@ -254,8 +254,8 @@
|
|||
<objects>
|
||||
<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"/>
|
||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||
<updatedAt 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 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"/>
|
||||
<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"/>
|
||||
|
|
@ -291,8 +291,8 @@
|
|||
</userSettings>
|
||||
<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"/>
|
||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||
<updatedAt 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 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"/>
|
||||
<connectionTime 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"/>
|
||||
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" link="workflowStatus"/>
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||
<updatedAt 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 field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
||||
<actions>
|
||||
<post name="Добавление компании" confirmation="shortName,tradingCode,companySymbol,companySymbolValue,workflowStatus">
|
||||
<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"/>
|
||||
<workflowStatus type="12" dbname="Код статуса" name="Наименование статуса" shortname="Статус" searchable="true" sortable="true" visible="true" link="workflowStatus"/>
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
<createdAt type="4" webtype="5" dbname="Дата-время создания записи" name="Время создания записи" shortname="Создано" searchable="true" sortable="true"/>
|
||||
<updatedAt 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 field="updated" type="4" webtype="5" dbname="Дата-время изменения записи" name="Время изменения записи" shortname="Изменено" searchable="true" sortable="true"/>
|
||||
</security>
|
||||
<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"/>
|
||||
|
|
@ -672,8 +672,8 @@
|
|||
<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"/>
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
<createdAt 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"/>
|
||||
<createdAt field="created" 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>
|
||||
<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"/>
|
||||
|
|
@ -683,13 +683,13 @@
|
|||
<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"/>
|
||||
<id type="1" name="Идентификатор записи" shortname="ID" searchable="true" sortable="true"/>
|
||||
<createdAt 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"/>
|
||||
<createdAt field="created" 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>
|
||||
<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"/>
|
||||
<createdAt 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"/>
|
||||
<createdAt field="created" 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"/>
|
||||
<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"/>
|
||||
|
|
|
|||
|
|
@ -68,4 +68,15 @@ public class TimeUtil {
|
|||
if (date == null) return null;
|
||||
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