Class TraducaoDeCadastro
ERP_TRANSLATION
Tabela genérica de tradução manual de cadastros (Estágio, Produto, Operação, ...). É polimórfica:
não há FK física para a tabela de origem, a chave de negócio é espelhada em CHAVE_1..4. Cada
chamada preenche de 1 a 4 posições de chave, sempre começando por CHAVE_1, conforme o que aquele
caso específico precisa — a mesma tabela de origem pode ser referenciada com menos partes da
chave em cenários diferentes (ex.: Produto hoje usa nivel+grupo+subgrupo+item, mas nada impede um
cadastro futuro do mesmo domínio usar só parte disso). Não há validação de quantidade nesta
classe; alinhar a posição certa e decidir quantas usar é responsabilidade de quem chama
getTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) e salvarTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.String, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object).
O NXJ não resolve varargs nem converte FIELD/NullableString para String;
por isso getTraduzido/salvarTraduzido têm aridade fixa (sempre as 4 posições de
chave) e usam Object, convertido internamente via str(Object).
Fachada HTTP do systextil-backend. getTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) chama
GET /v1/erp-translations, salvarTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.String, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) chama
PUT /v1/erp-translations e agendarBatch(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, int) chama
POST /v1/erp-translations/agendar-batch. A sessão é a mesma do
RfidEpcClient: JWT em POST /auth (managerId + login) e URL do parâmetro
rfid.urlBackend. O texto traduzido fica em bytes UTF-8 (coluna BLOB) porque o charset
do banco não suporta mandarim em VARCHAR2/CHAR.
getTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) devolve vazio quando o backend responde 404 (BLOB vazio, ou status
diferente de TRADUZIDO e de nulo). salvarTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.String, java.lang.String, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object) grava o BLOB e marca
status TRADUZIDO; o usuário gravado é o do JWT. agendarBatch(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, int) agenda o
OPER_001 com o usuário do JWT como solicitante.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enum -
Method Summary
Modifier and TypeMethodDescriptionstatic voidagendarBatch(br.com.intersys.systextil.connection.AppConnection conn, Mdi mdi, int codigoEmpresa) Agenda o primeiro ciclo do job de tradução (OPER_001) para a empresa.getTraduzido(br.com.intersys.systextil.connection.AppConnection conn, Mdi mdi, TraducaoDeCadastro.Dominio domain, Object language, TraducaoDeCadastro.Campo campo, Object chave1, Object chave2, Object chave3, Object chave4) Busca o texto traduzido gravado para o domínio/idioma/campo informados.static voidsalvarTraduzido(br.com.intersys.systextil.connection.AppConnection conn, Mdi mdi, TraducaoDeCadastro.Dominio domain, Object language, TraducaoDeCadastro.Campo campo, String texto, String usuario, Object chave1, Object chave2, Object chave3, Object chave4) Grava (insere ou atualiza) o texto traduzido para o domínio/idioma/campo/chaves informados.
-
Method Details
-
getTraduzido
public static Optional<String> getTraduzido(br.com.intersys.systextil.connection.AppConnection conn, Mdi mdi, TraducaoDeCadastro.Dominio domain, Object language, TraducaoDeCadastro.Campo campo, Object chave1, Object chave2, Object chave3, Object chave4) Busca o texto traduzido gravado para o domínio/idioma/campo informados.chave1..chave4são posicionais:chave1vai para CHAVE_1,chave2para CHAVE_2, e assim por diante. Informe apenas as posições realmente usadas naquele caso, deixandonullas demais:- Estágio (MQOP_005) costuma usar só CHAVE_1:
getTraduzido(conn, mdi, Dominio.MQOP_005, lang, Campo.DESCRICAO, codigoEstagio, null, null, null) - Operação (MQOP_040) costuma usar CHAVE_1..3:
getTraduzido(conn, mdi, Dominio.MQOP_040, lang, Campo.NOME_OPERACAO, codigoOperacao, grupoMaquinas, subMaquina, null) - Produto (BASI_010) costuma usar as 4 posições (nivel, grupo, subgrupo, item):
getTraduzido(conn, mdi, Dominio.BASI_010, lang, Campo.DESCRICAO_15, nivel, grupo, subgrupo, item)
- Parameters:
mdi- sessão do legado: empresa e login usados na URL do backend e no JWT- Returns:
- o texto traduzido, ou
Optional.empty()se o backend responder 404 (sem tradução utilizável); cabe ao chamador decidir o fallback (em geral, o texto original em PT do cadastro).
- Estágio (MQOP_005) costuma usar só CHAVE_1:
-
salvarTraduzido
public static void salvarTraduzido(br.com.intersys.systextil.connection.AppConnection conn, Mdi mdi, TraducaoDeCadastro.Dominio domain, Object language, TraducaoDeCadastro.Campo campo, String texto, String usuario, Object chave1, Object chave2, Object chave3, Object chave4) Grava (insere ou atualiza) o texto traduzido para o domínio/idioma/campo/chaves informados. O contrato posicional dechave1..chave4é o mesmo degetTraduzido(br.com.intersys.systextil.connection.AppConnection, br.com.intersys.systextil.global.Mdi, systextil.dao.TraducaoDeCadastro.Dominio, java.lang.Object, systextil.dao.TraducaoDeCadastro.Campo, java.lang.Object, java.lang.Object, java.lang.Object, java.lang.Object).usuariopermanece na assinatura para os chamadores atuais. O endpoint grava o usuário do JWT (mdi), não este argumento.- Parameters:
mdi- sessão do legado: empresa e login usados na URL do backend e no JWT
-
agendarBatch
public static void agendarBatch(br.com.intersys.systextil.connection.AppConnection conn, Mdi mdi, int codigoEmpresa) Agenda o primeiro ciclo do job de tradução (OPER_001) para a empresa. Execução imediata. O solicitante gravado é o usuário do JWT. O service ignora empresa inelegível e não cria segundo processo pendente da mesma ação: nesses casos o endpoint responde 200 com lista vazia.- Parameters:
mdi- sessão do legado: empresa e login usados na URL do backend e no JWT. A empresa do corpo écodigoEmpresa, que pode ser outra filial.
-