Class RotinaRecalculoDAO
java.lang.Object
br.com.intersys.systextil.function.pcpc.rotinarecalculo.dao.RotinaRecalculoDAO
DAO responsável pelas operações de banco de dados da rotina de recálculo de ordens de produção (PCPC).
Corresponde à lógica originalmente implementada em rotina_recalculo e
insere_pacotes_recalculo no Vision (pcpc_f123).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuscaComponentesBasi050(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Atualiza oultimo_estagioda ordem naPCPC_020com o último estágio inserido após o recálculo.buscaDadosPcpc020(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Retorna os dados básicos da ordem de produção naPCPC_020, necessários para localizar o roteiro noMQOP_050.intbuscaLoteBasi020(br.com.intersys.systextil.connection.AppConnection conn, String referencia_peca, String tamanho) Retorna o lote de fabricação configurado naBASI_020para a referência e tamanho informados.intbuscaMaxOrdemConfeccaoPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao) Verifica se já existe um registro naPCPC_040para o período e ordem de confecção informados.buscaOrdemPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int periodo_inicial, int periodo_final) buscaOrdensMudarasBasi050(br.com.intersys.systextil.connection.AppConnection conn, int periodo_inicial, int periodo_final) Retorna os números de ordem de produção presentes naPCPC_040dentro de um intervalo de períodos.buscaOrdensMudarasPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int periodo_inicial, int periodo_final) buscaOrdensPorReferencia(br.com.intersys.systextil.connection.AppConnection conn, String referencia_peca) buscaPcpc032PorOrdem(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) int[]buscaTmrp615Pacote(br.com.intersys.systextil.connection.AppConnection conn, int nr_solicitacao, int codigo_usuario, String nivel, String referencia, String tamanho, String sortimento) Busca naTMRP_615um pacote salvo anteriormente para reaproveitar o número de ordem de confecção, evitando gerar um novo número desnecessariamente.intbuscaUltimoNumeroPcpc010(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao) Retorna o último número de ordem de confecção utilizado para o período (PCPC_010.ultimo_numero), usado como base para gerar o próximo número disponível.intcodEstagioLibOrdem(br.com.intersys.systextil.connection.AppConnection conn, int cod_empresa) Retorna o código do estágio de liberação da ordem configurado naFATU_503para a empresa.copiaEstruturaBasi050(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Retorna a estrutura de pacotes daPCPC_040para uma ordem de produção, agrupada por produto/confecção/período — equivalente ao cursor de cópia do Vision.copiaEstruturaPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) voiddeletePcpc040(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Exclui todos os estágios daPCPC_040pertencentes à ordem de produção.voiddeletePcpc045(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Exclui os registros daPCPC_045vinculados aos estágios da ordem de produção.booleanestagioPrepAberto(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao, int cod_estagio) Verifica se o estágio de preparação da ordem ainda possui saldo a produzir (qtde_pecas_prog - qtde_pecas_prod - qtde_conserto - qtde_pecas_2a - qtde_perdas > 0).booleanexisteBasi010(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String sub, String item) Verifica se o SKU (nivel/grupo/subgrupo/item) existe nabasi_010.booleanexisteMqop045(br.com.intersys.systextil.connection.AppConnection conn, int codigo_operacao) booleanexisteMqop050(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String subgrupo, String item, int alternativa, int roteiro) Verifica se existe roteiro configurado noMQOP_050para a combinação produto/alternativa/roteiro informada.booleanexisteOrdemConfeccaoPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao, int ordem_confeccao) intforEachPcpc021(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao, Consumer<br.com.intersys.systextil.connection.AppConnection> action) Itera os itens de confecção da ordem (PCPC_021+PCPC_020) com quantidade positiva, aplicandoactiona cada linha — equivalente ao cursorEXECUTINGdo Vision.intforEachRoteiroPorMqop(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String subgrupo, String item, int alternativa, int roteiro, Consumer<br.com.intersys.systextil.connection.AppConnection> action) Itera os estágios do roteiro noMQOP_050/MQOP_040, na ordem de execução, aplicandoactiona cada estágio — equivalente ao cursorEXECUTINGdo Vision.voidinsertPcpc040ComEstagio(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao, int ordem_confeccao, int codigo_estagio, int ordem_producao, String referencia, String tamanho, String sortimento, int qtde_lote, int estagio_anterior, int codigo_familia, int seq_operacao, int estagio_depende, int sequencia_estagio) Insere um estágio naPCPC_040para um pacote com roteiro definido noMQOP_050.voidinsertPcpc040SemEstagio(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao, int ordem_confeccao, int tipo_ordem, int estagio_devolucao, int ordem_producao, String referencia, String tamanho, String sortimento, int qtde_lote) Insere um registro padrão naPCPC_040para quando não existe roteiro noMQOP_050.voidinsertTmrp615(br.com.intersys.systextil.connection.AppConnection conn, RotinaRecalculoDTO dto, String nome_programa, int nr_solicitacao, int codigo_usuario, int seq_registro) Insere um registro de pacote naTMRP_615comtipo_registro = 347esituacao = 'X'.listaRoteiroPorMqop(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String subgrupo, String item, int alternativa, int roteiro) Retorna todos os passos do roteiro daMQOP_050em uma lista, fechando o cursor antes de retornar.voidupdatePcpc032(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao, int seqorcor, ComponenteDTO comp) voidupdatePcpc040(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Marca os registros daPCPC_040da ordem comoexecuta_trigger = 3, preparando-os para exclusão via trigger.voidupdatePcpc045(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Marca os registros daPCPC_045relacionados à ordem comoexecuta_trigger = 3, preparando-os para exclusão via trigger.voidupdateSituacaoTmrp615(br.com.intersys.systextil.connection.AppConnection conn, int nr_solicitacao, int codigo_usuario, String nivel, String referencia, String tamanho, String sortimento, int ordem_confeccao) Marca um pacote daTMRP_615como consumido (situacao = 'C'), após seu número de ordem de confecção ter sido reaproveitado.voidupdateUltimoEstagioPcpc020(br.com.intersys.systextil.connection.AppConnection conn, int ultimo_estagio, int ordem_producao) voidupdateUltimoNumeroPcpc010(br.com.intersys.systextil.connection.AppConnection conn, int ordem_confeccao, int periodo_producao) Atualiza oultimo_numeroemPCPC_010com a maior ordem de confecção gerada, garantindo que o próximo processo parta do número correto.voidzeraUltimoEstagioPcpc020(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Zera oultimo_estagioda ordem naPCPC_020para que seja recalculado após a reinserção dos estágios.
-
Constructor Details
-
RotinaRecalculoDAO
public RotinaRecalculoDAO()
-
-
Method Details
-
buscaOrdensMudarasBasi050
public List<Integer> buscaOrdensMudarasBasi050(br.com.intersys.systextil.connection.AppConnection conn, int periodo_inicial, int periodo_final) Retorna os números de ordem de produção presentes naPCPC_040dentro de um intervalo de períodos.- Parameters:
conn- conexão ativaperiodo_inicial- período de produção inicial (inclusive)periodo_final- período de produção final (inclusive)- Returns:
- lista de
ordem_producaoencontradas no intervalo
-
buscaOrdensMudarasPcpc040
-
buscaOrdensPorReferencia
-
buscaOrdemPcpc040
-
copiaEstruturaBasi050
public List<RotinaRecalculoDTO> copiaEstruturaBasi050(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Retorna a estrutura de pacotes daPCPC_040para uma ordem de produção, agrupada por produto/confecção/período — equivalente ao cursor de cópia do Vision.Mapeamento de colunas:
proconf_nivel99→RotinaRecalculoDTO.nivel_recal()proconf_grupo→RotinaRecalculoDTO.grupo_recal()proconf_subgrupo→RotinaRecalculoDTO.subrgrupo_recal()proconf_item→RotinaRecalculoDTO.item_recal()ordem_confeccao→RotinaRecalculoDTO.ordem_confeccao()periodo_producao→RotinaRecalculoDTO.periodo_producao_real()
- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção- Returns:
- lista de
RotinaRecalculoDTOcom os pacotes da ordem
-
copiaEstruturaPcpc040
public List<RotinaRecalculoDTO> copiaEstruturaPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) -
updatePcpc045
public void updatePcpc045(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Marca os registros daPCPC_045relacionados à ordem comoexecuta_trigger = 3, preparando-os para exclusão via trigger.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção
-
deletePcpc045
public void deletePcpc045(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Exclui os registros daPCPC_045vinculados aos estágios da ordem de produção.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção
-
updatePcpc040
public void updatePcpc040(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Marca os registros daPCPC_040da ordem comoexecuta_trigger = 3, preparando-os para exclusão via trigger.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção
-
deletePcpc040
public void deletePcpc040(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Exclui todos os estágios daPCPC_040pertencentes à ordem de produção.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção
-
estagioPrepAberto
public boolean estagioPrepAberto(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao, int cod_estagio) Verifica se o estágio de preparação da ordem ainda possui saldo a produzir (qtde_pecas_prog - qtde_pecas_prod - qtde_conserto - qtde_pecas_2a - qtde_perdas > 0).- Parameters:
conn- conexão ativaordem_producao- número da ordem de produçãocod_estagio- código do estágio de preparação a verificar- Returns:
truese o estágio ainda tem saldo aberto
-
codEstagioLibOrdem
public int codEstagioLibOrdem(br.com.intersys.systextil.connection.AppConnection conn, int cod_empresa) Retorna o código do estágio de liberação da ordem configurado naFATU_503para a empresa.- Parameters:
conn- conexão ativacod_empresa- código da empresa- Returns:
- código do estágio de liberação, ou
0se não configurado
-
insertTmrp615
public void insertTmrp615(br.com.intersys.systextil.connection.AppConnection conn, RotinaRecalculoDTO dto, String nome_programa, int nr_solicitacao, int codigo_usuario, int seq_registro) Insere um registro de pacote naTMRP_615comtipo_registro = 347esituacao = 'X'.- Parameters:
conn- conexão ativadto- dados do pacote (nível, grupo, subgrupo, item, ordem de confecção, período)nome_programa- identificador do programa chamador (ex:"tmrp_f010")nr_solicitacao- número de solicitação gerado porSequenciaNrSolicitacaocodigo_usuario- código do usuário que disparou o processoseq_registro- sequência do registro dentro da solicitação
-
buscaTmrp615Pacote
public int[] buscaTmrp615Pacote(br.com.intersys.systextil.connection.AppConnection conn, int nr_solicitacao, int codigo_usuario, String nivel, String referencia, String tamanho, String sortimento) Busca naTMRP_615um pacote salvo anteriormente para reaproveitar o número de ordem de confecção, evitando gerar um novo número desnecessariamente.- Parameters:
conn- conexão ativanr_solicitacao- número da solicitaçãocodigo_usuario- código do usuárionivel- nível do produto ("1")referencia- referência da peça (grupo)tamanho- tamanho do pacote (subgrupo)sortimento- sortimento do pacote (item)- Returns:
- array
int[]{ordem_confeccao, periodo_producao}se encontrado, ounullse não há pacote disponível
-
updateSituacaoTmrp615
public void updateSituacaoTmrp615(br.com.intersys.systextil.connection.AppConnection conn, int nr_solicitacao, int codigo_usuario, String nivel, String referencia, String tamanho, String sortimento, int ordem_confeccao) Marca um pacote daTMRP_615como consumido (situacao = 'C'), após seu número de ordem de confecção ter sido reaproveitado.- Parameters:
conn- conexão ativanr_solicitacao- número da solicitaçãocodigo_usuario- código do usuárionivel- nível do produtoreferencia- referência da peçatamanho- tamanho do pacotesortimento- sortimento do pacoteordem_confeccao- número da ordem de confecção a marcar como consumida
-
forEachPcpc021
public int forEachPcpc021(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao, Consumer<br.com.intersys.systextil.connection.AppConnection> action) Itera os itens de confecção da ordem (PCPC_021+PCPC_020) com quantidade positiva, aplicandoactiona cada linha — equivalente ao cursorEXECUTINGdo Vision.Colunas disponíveis no
Consumer:referencia_peca(pcpc_020)tamanho(pcpc_021)sortimento(pcpc_021)quantidade(pcpc_021)
- Parameters:
conn- conexão ativaordem_producao- número da ordem de produçãoaction- ação a executar para cada item; use uma flag externa para interromper antecipadamente- Returns:
- número de linhas processadas
-
buscaDadosPcpc020
public Pcpc020DTO buscaDadosPcpc020(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Retorna os dados básicos da ordem de produção naPCPC_020, necessários para localizar o roteiro noMQOP_050.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção- Returns:
Pcpc020DTOcom referência, período, alternativa e roteiro, ounullse não encontrado
-
zeraUltimoEstagioPcpc020
public void zeraUltimoEstagioPcpc020(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Zera oultimo_estagioda ordem naPCPC_020para que seja recalculado após a reinserção dos estágios.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produção
-
buscaComponentesBasi050
public List<ComponenteDTO> buscaComponentesBasi050(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) Atualiza oultimo_estagioda ordem naPCPC_020com o último estágio inserido após o recálculo.- Parameters:
conn- conexão ativaordem_producao- número da ordem de produçãoultimo_estagio- código do último estágio inserido
-
buscaPcpc032PorOrdem
public List<Pcpc032DTO> buscaPcpc032PorOrdem(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao) -
updatePcpc032
public void updatePcpc032(br.com.intersys.systextil.connection.AppConnection conn, int ordem_producao, int seqorcor, ComponenteDTO comp) -
updateUltimoEstagioPcpc020
public void updateUltimoEstagioPcpc020(br.com.intersys.systextil.connection.AppConnection conn, int ultimo_estagio, int ordem_producao) -
buscaUltimoNumeroPcpc010
public int buscaUltimoNumeroPcpc010(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao) Retorna o último número de ordem de confecção utilizado para o período (PCPC_010.ultimo_numero), usado como base para gerar o próximo número disponível.- Parameters:
conn- conexão ativaperiodo_producao- período de produção- Returns:
- último número utilizado, ou
0se o período não existir emPCPC_010
-
updateUltimoNumeroPcpc010
public void updateUltimoNumeroPcpc010(br.com.intersys.systextil.connection.AppConnection conn, int ordem_confeccao, int periodo_producao) Atualiza oultimo_numeroemPCPC_010com a maior ordem de confecção gerada, garantindo que o próximo processo parta do número correto.- Parameters:
conn- conexão ativaordem_confeccao- novo valor do último númeroperiodo_producao- período de produção correspondente
-
buscaLoteBasi020
public int buscaLoteBasi020(br.com.intersys.systextil.connection.AppConnection conn, String referencia_peca, String tamanho) Retorna o lote de fabricação configurado naBASI_020para a referência e tamanho informados.- Parameters:
conn- conexão ativareferencia_peca- referência do produtotamanho- tamanho do pacote- Returns:
- lote de fabricação, ou
0se não encontrado (chamador deve tratar como 99999999)
-
existeMqop050
public boolean existeMqop050(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String subgrupo, String item, int alternativa, int roteiro) Verifica se existe roteiro configurado noMQOP_050para a combinação produto/alternativa/roteiro informada.- Parameters:
conn- conexão ativanivel- nível da estrutura ("1")grupo- grupo da estrutura (referência da peça)subgrupo- subgrupo (tamanho)item- item (sortimento)alternativa- número da alternativaroteiro- número do roteiro- Returns:
truese o roteiro existe noMQOP_050
-
existeBasi010
public boolean existeBasi010(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String sub, String item) Verifica se o SKU (nivel/grupo/subgrupo/item) existe nabasi_010. Usado para pular pacotes cujo produto foi removido (evita ORA-02291 na pcpc_040). -
existeMqop045
public boolean existeMqop045(br.com.intersys.systextil.connection.AppConnection conn, int codigo_operacao) -
forEachRoteiroPorMqop
public int forEachRoteiroPorMqop(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String subgrupo, String item, int alternativa, int roteiro, Consumer<br.com.intersys.systextil.connection.AppConnection> action) Itera os estágios do roteiro noMQOP_050/MQOP_040, na ordem de execução, aplicandoactiona cada estágio — equivalente ao cursorEXECUTINGdo Vision.Colunas disponíveis no
Consumer:codigo_estagiocodigo_operacaocodigo_familiaseq_operacaosequencia_estagioestagio_dependepede_produto
- Parameters:
conn- conexão ativanivel- nível da estruturagrupo- grupo (referência da peça)subgrupo- subgrupo (tamanho)item- item (sortimento)alternativa- número da alternativaroteiro- número do roteiroaction- ação a executar para cada estágio- Returns:
- número de estágios processados (0 = nenhum estágio no roteiro)
-
listaRoteiroPorMqop
public List<PassoRoteiroDTO> listaRoteiroPorMqop(br.com.intersys.systextil.connection.AppConnection conn, String nivel, String grupo, String subgrupo, String item, int alternativa, int roteiro) Retorna todos os passos do roteiro daMQOP_050em uma lista, fechando o cursor antes de retornar. Use este método quando for fazer DML dentro do loop para evitar ORA-01002 causado por trigger com commit autônomo. -
buscaMaxOrdemConfeccaoPcpc040
public int buscaMaxOrdemConfeccaoPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao) Verifica se já existe um registro naPCPC_040para o período e ordem de confecção informados. Usado para encontrar o próximo número de ordem de confecção disponível.- Parameters:
conn- conexão ativaperiodo_producao- período de produçãoordem_confeccao- número de ordem de confecção a verificar- Returns:
truese a combinação período/ordem já está ocupada
-
existeOrdemConfeccaoPcpc040
public boolean existeOrdemConfeccaoPcpc040(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao, int ordem_confeccao) -
insertPcpc040ComEstagio
public void insertPcpc040ComEstagio(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao, int ordem_confeccao, int codigo_estagio, int ordem_producao, String referencia, String tamanho, String sortimento, int qtde_lote, int estagio_anterior, int codigo_familia, int seq_operacao, int estagio_depende, int sequencia_estagio) Insere um estágio naPCPC_040para um pacote com roteiro definido noMQOP_050.- Parameters:
conn- conexão ativaperiodo_producao- período de produçãoordem_confeccao- número da ordem de confecçãocodigo_estagio- código do estágio a inserirordem_producao- número da ordem de produçãoreferencia- referência da peça (proconf_grupo)tamanho- tamanho do pacote (proconf_subgrupo)sortimento- sortimento do pacote (proconf_item)qtde_lote- quantidade do lote (usada emqtde_pecas_progeqtde_programada)estagio_anterior- código do estágio anterior na sequênciacodigo_familia- código da família do estágioseq_operacao- sequência da operaçãoestagio_depende- estágio do qual este dependesequencia_estagio- sequência do estágio dentro da operação
-
insertPcpc040SemEstagio
public void insertPcpc040SemEstagio(br.com.intersys.systextil.connection.AppConnection conn, int periodo_producao, int ordem_confeccao, int tipo_ordem, int estagio_devolucao, int ordem_producao, String referencia, String tamanho, String sortimento, int qtde_lote) Insere um registro padrão naPCPC_040para quando não existe roteiro noMQOP_050. Ocodigo_estagioé derivado dedecode(tipo_ordem, 4, estagio_devolucao, 0).- Parameters:
conn- conexão ativaperiodo_producao- período de produçãoordem_confeccao- número da ordem de confecçãotipo_ordem- tipo da ordem (fieldpcpc_f120#tipo_ordem)estagio_devolucao- estágio de devolução (fieldpcpc_f120#estagio_devolucao)ordem_producao- número da ordem de produçãoreferencia- referência da peçatamanho- tamanho do pacotesortimento- sortimento do pacoteqtde_lote- quantidade do lote
-