[ROSSOGARGANO - accettazione da raccolta]
gestione scarichi
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomer;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240620182157 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
String value = null;
|
||||
if (isCustomer(IntegryCustomer.RossoGargano))
|
||||
value = "RIBLT";
|
||||
|
||||
createSetup("PVM", "PIAN_ACC_ROSSG", "COD_JFAS_VERSAMENTI", value, "Reparto padre delle linee dei ribaltatori", false, null, false, false, false, false, false, null, false, "COD_JFAS");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package it.integry.ems.migration.model;
|
||||
|
||||
import it.integry.ems.migration._base.BaseMigration;
|
||||
import it.integry.ems.migration._base.IntegryCustomer;
|
||||
import it.integry.ems.migration._base.MigrationModelInterface;
|
||||
|
||||
public class Migration_20240621115535 extends BaseMigration implements MigrationModelInterface {
|
||||
|
||||
@Override
|
||||
public void up() throws Exception {
|
||||
if (isHistoryDB())
|
||||
return;
|
||||
String value = null;
|
||||
if (isCustomer(IntegryCustomer.RossoGargano)){
|
||||
String sql1 = "INSERT INTO stb_activity_type (activity_type_id, estimated_duration, cod_jfas, user_name, flag_tipologia, link_gest, flag_attiva, flag_sal, flag_set_alarm, flag_generate_mov, flag_view_calendar) VALUES (N'ACCETTAZIONE_DA_RACCOLTA', 0, N'RACC', DEFAULT, N'A', N'ACCETTAZIONE', N'S', DEFAULT, DEFAULT, DEFAULT, DEFAULT)";
|
||||
String sql2 = "INSERT INTO stb_activity_type (activity_type_id, estimated_duration, cod_jfas, user_name, flag_tipologia, link_gest, flag_attiva, flag_sal, flag_set_alarm, flag_generate_mov, flag_view_calendar) VALUES (N'NOTE_VERSAMENTO', 0, N'RIBLT', DEFAULT, N'A', N'LAVORAZIONE', N'S', DEFAULT, DEFAULT, DEFAULT, DEFAULT)";
|
||||
|
||||
executeInsertStatement(sql1);
|
||||
executeInsertStatement(sql2);
|
||||
|
||||
}
|
||||
value = "NOTE_VERSAMENTO";
|
||||
|
||||
createSetup("PVM", "PIAN_ACC_ROSSG", "TIPO_ATTIVITA_VERSAMENTO", value, "Id tipo attività per note di scarico prodotto", false, null, false, false, false, false, false, null, false, "ACTIVITY_TYPE");
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void down() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -214,8 +214,9 @@ public class LoadColliDTO {
|
||||
return saveDoc;
|
||||
}
|
||||
|
||||
public void setSaveDoc(boolean saveDoc) {
|
||||
public LoadColliDTO setSaveDoc(boolean saveDoc) {
|
||||
this.saveDoc = saveDoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getActivityId() {
|
||||
|
||||
@@ -534,6 +534,12 @@ public class UtilityDB {
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static <T> T executePreparedStatementDTOOnlyFirstRow(Connection conn, PreparedStatement ps, Class<T> clazz) throws SQLException, DataConverterNotFoundException, InstantiationException, IllegalAccessException {
|
||||
List<T> results = executePreparedStatementDTO(conn, ps, clazz, null);
|
||||
return results == null || results.isEmpty() ? null : results.get(0);
|
||||
}
|
||||
|
||||
|
||||
public static String addTableFrom(String sqlString, String listTable) {
|
||||
int li_subQuery;
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package it.integry.ems.production.dto;
|
||||
|
||||
import it.integry.ems_model.annotation.SqlField;
|
||||
|
||||
public class PvmAuthorizationDTO {
|
||||
@SqlField("authorization_name")
|
||||
private String authorizationName;
|
||||
@SqlField("display_only")
|
||||
private String displayOnly;
|
||||
@SqlField("enabled")
|
||||
private String enabled;
|
||||
@SqlField("visible")
|
||||
private String visible;
|
||||
|
||||
|
||||
|
||||
public String getAuthorizationName() {
|
||||
return authorizationName;
|
||||
}
|
||||
|
||||
public PvmAuthorizationDTO setAuthorizationName(String authorizationName) {
|
||||
this.authorizationName = authorizationName;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDisplayOnly() {
|
||||
return displayOnly;
|
||||
}
|
||||
|
||||
public PvmAuthorizationDTO setDisplayOnly(String displayOnly) {
|
||||
this.displayOnly = displayOnly;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public PvmAuthorizationDTO setEnabled(String enabled) {
|
||||
this.enabled = enabled;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getVisible() {
|
||||
return visible;
|
||||
}
|
||||
|
||||
public PvmAuthorizationDTO setVisible(String visible) {
|
||||
this.visible = visible;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -15,6 +15,7 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
private LocalDateTime oraInizPrep;
|
||||
private String idPesata;
|
||||
private LocalDateTime dataVers;
|
||||
private LocalDateTime dataIns;
|
||||
private LocalDate dataOrd;
|
||||
private Integer numOrd;
|
||||
private Integer rigaOrd;
|
||||
@@ -68,7 +69,9 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
private Integer numDoc;
|
||||
private String codDtip;
|
||||
private BigDecimal valUnt;
|
||||
private boolean generaDocAcquisto = false;
|
||||
private boolean flagCaricoVerificato = false;
|
||||
|
||||
private AccettazioneOrtoFruttaDTO original;
|
||||
|
||||
|
||||
public String getGestione() {
|
||||
@@ -594,15 +597,6 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean getGeneraDocAcquisto() {
|
||||
return generaDocAcquisto;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO setGeneraDocAcquisto(boolean generaDocAcquisto) {
|
||||
this.generaDocAcquisto = generaDocAcquisto;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getSerDocProvv() {
|
||||
return serDocProvv;
|
||||
}
|
||||
@@ -629,4 +623,31 @@ public class AccettazioneOrtoFruttaDTO {
|
||||
this.idPesata = idPesata;
|
||||
return this;
|
||||
}
|
||||
|
||||
public LocalDateTime getDataIns() {
|
||||
return dataIns;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO setDataIns(LocalDateTime dataIns) {
|
||||
this.dataIns = dataIns;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean getFlagCaricoVerificato() {
|
||||
return flagCaricoVerificato;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO setFlagCaricoVerificato(boolean flagCaricoVerificato) {
|
||||
this.flagCaricoVerificato = flagCaricoVerificato;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO getOriginal() {
|
||||
return original;
|
||||
}
|
||||
|
||||
public AccettazioneOrtoFruttaDTO setOriginal(AccettazioneOrtoFruttaDTO original) {
|
||||
this.original = original;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1356,14 +1356,16 @@ public class MesProductionServiceV2 {
|
||||
default:
|
||||
command = null;
|
||||
}
|
||||
if (command != null) {
|
||||
|
||||
HashMap<String, Object> body = new HashMap<>();
|
||||
Integer idLotto = jtbLott != null ? jtbLott.getIdLotto() : Integer.parseInt(groupStepDTO.getIdLotto());
|
||||
body.put("idLotto", idLotto);
|
||||
body.put("codJfas", groupStepDTO.getCodJfas());
|
||||
HashMap<String, Object> body = new HashMap<>();
|
||||
Integer idLotto = jtbLott != null ? jtbLott.getIdLotto() : Integer.parseInt(groupStepDTO.getIdLotto());
|
||||
body.put("idLotto", idLotto);
|
||||
body.put("codJfas", groupStepDTO.getCodJfas());
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
sendCommand(groupStepDTO.getCodJfas(), command, mapper.convertValue(body, JsonNode.class));
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
sendCommand(groupStepDTO.getCodJfas(), command, mapper.convertValue(body, JsonNode.class));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1471,6 +1473,6 @@ public class MesProductionServiceV2 {
|
||||
"WHERE jtb_lott.cod_jfas = " + UtilityDB.valueToString(codJfas) + "\n" +
|
||||
" AND jtb_lott.id_lotto = " + UtilityDB.valueToString(idLotto) + "";
|
||||
|
||||
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(),sql,AttachmentDTO.class);
|
||||
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, AttachmentDTO.class);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,8 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
@@ -60,10 +62,10 @@ public class OrtoFruttaProductionService {
|
||||
|
||||
public List<EntityBase> accettazioneDaRaccoltaBatch(List<AccettazioneOrtoFruttaDTO> dtoList) throws Exception {
|
||||
List<EntityBase> entities = new ArrayList<>();
|
||||
for (AccettazioneOrtoFruttaDTO dto: dtoList){
|
||||
for (AccettazioneOrtoFruttaDTO dto : dtoList) {
|
||||
entities.add(accettazioneDaRaccolta(dto));
|
||||
}
|
||||
return entities;
|
||||
return entities;
|
||||
}
|
||||
|
||||
public EntityBase accettazioneDaRaccolta(AccettazioneOrtoFruttaDTO dto) throws Exception {
|
||||
@@ -75,7 +77,30 @@ public class OrtoFruttaProductionService {
|
||||
if (dto.getDataOrd() == null || dto.getNumOrd() == null)
|
||||
throw new Exception("Ordine di raccolta non selezionato!");
|
||||
|
||||
String sql = "SELECT *\n" +
|
||||
String codDtipAcqCar = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "CRUSCOTTO_PRODUZIONE",
|
||||
"SETUP",
|
||||
"COD_DTIP_ACCETTAZIONE");
|
||||
String serDocAcqCar = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "CRUSCOTTO_PRODUZIONE",
|
||||
"SETUP",
|
||||
"SER_DOC_ACCETTAZIONE");
|
||||
|
||||
String codJfas = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "w_lpianoprod_rc",
|
||||
"SETUP",
|
||||
"FASE_RACC");
|
||||
|
||||
if (UtilityString.isNullOrEmpty(dto.getSerDocProvv()))
|
||||
dto.setSerDocProvv(serDocAcqCar);
|
||||
|
||||
if (UtilityString.isNullOrEmpty(dto.getCodDtipProvv()))
|
||||
dto.setCodDtipProvv(codDtipAcqCar);
|
||||
|
||||
if (UtilityString.isNullOrEmpty(dto.getCodJfas())) {
|
||||
dto.setCodJfas(codJfas);
|
||||
}
|
||||
|
||||
|
||||
//controllo se il DDT richiesto è già occupato da un altro certificato
|
||||
String sql = "SELECT data_collo,ser_collo,num_collo,gestione\n" +
|
||||
"FROM mtb_colt\n" +
|
||||
"WHERE data_doc_provv = " + UtilityDB.valueDateToString(UtilityLocalDate.localDateToDate(dto.getDataDocProvv()), CommonConstants.DATE_FORMAT_YMD) + "\n" +
|
||||
" AND num_doc_provv = " + UtilityDB.valueToString(dto.getNumDocProvv()) + "\n" +
|
||||
@@ -87,43 +112,8 @@ public class OrtoFruttaProductionService {
|
||||
throw new Exception("Il documento di trasporto inserito è già esistente!");
|
||||
}
|
||||
|
||||
|
||||
sql = "SELECT *\n" +
|
||||
"FROM dtb_doct\n" +
|
||||
"WHERE data_doc = " + UtilityDB.valueDateToString(UtilityLocalDate.localDateToDate(dto.getDataDocProvv()), CommonConstants.DATE_FORMAT_YMD) + "\n" +
|
||||
" AND num_doc = " + UtilityDB.valueToString(dto.getNumDocProvv()) + "\n" +
|
||||
" AND cod_anag = " + UtilityDB.valueToString(dto.getCodAnagProduttore()) + "\n" +
|
||||
"AND cod_dtip = " + UtilityDB.valueToString(dto.getCodDtipProvv()) + "\n" +
|
||||
"and ser_doc = " + UtilityDB.valueToString(dto.getSerDocProvv()) + "\n";
|
||||
DtbDoct ddtE = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbDoct.class);
|
||||
if (ddtE != null){
|
||||
throw new Exception("Non è possibile modificare un arrivo il cui documento è già stato emesso!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
String codJfas = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "w_lpianoprod_rc",
|
||||
"SETUP",
|
||||
"FASE_RACC");
|
||||
String codDtipAcqCar = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "CRUSCOTTO_PRODUZIONE",
|
||||
"SETUP",
|
||||
"COD_DTIP_ACCETTAZIONE");
|
||||
String serDocAcqCar = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "CRUSCOTTO_PRODUZIONE",
|
||||
"SETUP",
|
||||
"SER_DOC_ACCETTAZIONE");
|
||||
|
||||
if (UtilityString.isNullOrEmpty(dto.getCodDtipProvv())) {
|
||||
dto.setCodDtipProvv(codDtipAcqCar);
|
||||
}
|
||||
if (UtilityString.isNullOrEmpty(dto.getSerDocProvv())) {
|
||||
dto.setSerDocProvv(serDocAcqCar);
|
||||
}
|
||||
if (UtilityString.isNullOrEmpty(dto.getCodJfas())) {
|
||||
dto.setCodJfas(codJfas);
|
||||
}
|
||||
|
||||
|
||||
MtbColt collo;
|
||||
//creo collo base se non esiste
|
||||
if (UtilityInteger.isNullOrZero(dto.getNumCollo())) {
|
||||
CaricoProdottoFinitoDTO createColloDto = new CaricoProdottoFinitoDTO();
|
||||
createColloDto
|
||||
@@ -140,7 +130,6 @@ public class OrtoFruttaProductionService {
|
||||
completeDatiCollo(collo);
|
||||
}
|
||||
|
||||
|
||||
String activityId = collo.getActivityId();
|
||||
|
||||
|
||||
@@ -148,7 +137,7 @@ public class OrtoFruttaProductionService {
|
||||
if (activityId == null) {
|
||||
StbActivity activity = new StbActivity()
|
||||
.setFlagTipologia("A")
|
||||
.setActivityTypeId("ACCETTAZIONE")
|
||||
.setActivityTypeId("ACCETTAZIONE_DA_RACCOLTA")
|
||||
.setUserName(requestDataDTO.getUsername());
|
||||
|
||||
activity.setOperation(OperationType.INSERT);
|
||||
@@ -157,8 +146,6 @@ public class OrtoFruttaProductionService {
|
||||
}
|
||||
|
||||
//Genero testata certificato di lavoro
|
||||
|
||||
|
||||
String codDtipLavCar = setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(), "CRUSCOTTO_PRODUZIONE",
|
||||
"SETUP",
|
||||
"COD_DTIP_CAR");
|
||||
@@ -207,15 +194,12 @@ public class OrtoFruttaProductionService {
|
||||
.setPesoNettoKg(BigDecimal.ZERO)
|
||||
.setOperation(OperationType.INSERT_OR_UPDATE);
|
||||
|
||||
if (setupGest.getSetupBoolean("PVM","PIAN_ACC_ROSSG","NUM_DOC_AS_BARCODE")){
|
||||
if (setupGest.getSetupBoolean("PVM", "PIAN_ACC_ROSSG", "NUM_DOC_AS_BARCODE")) {
|
||||
SimpleDateFormat dateFormat = new SimpleDateFormat("yy");
|
||||
collo.setBarcodeUl(dateFormat.format(UtilityLocalDate.localDateToDate(collo.getDataCollo())) + String.format("%06d", docLav.getNumDoc()));
|
||||
}
|
||||
|
||||
collo.setOraInizPrep(UtilityLocalDate.localDateTimeToDate(dto.getOraInizPrep(), null));
|
||||
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol()))
|
||||
collo.setOraFinePrep(new Date());
|
||||
collo.setDataVers(UtilityLocalDate.localDateTimeToDate(dto.getDataVers(), null));
|
||||
|
||||
MtbColr row = collo.getMtbColr().stream().filter(x -> x.getCodMart().equalsIgnoreCase(dto.getCodMart())).findFirst().orElse(new MtbColr());
|
||||
if (row.getNumOrd() == null) {
|
||||
@@ -231,7 +215,6 @@ public class OrtoFruttaProductionService {
|
||||
else
|
||||
row.setQtaCnf(dto.getQtaCnf());
|
||||
|
||||
|
||||
sql = "SELECT art_tcol.* from mtb_aart " +
|
||||
" inner join mtb_tcol on mtb_tcol.cod_tcol = mtb_aart.cod_tcol_UI " +
|
||||
" inner join mtb_aart art_tcol on art_tcol.cod_mart = mtb_tcol.cod_mart " +
|
||||
@@ -313,35 +296,33 @@ public class OrtoFruttaProductionService {
|
||||
}
|
||||
|
||||
|
||||
// if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol())) {
|
||||
List<MtbColt> lista = new ArrayList<>();
|
||||
lista.add(collo);
|
||||
LoadColliDTO loadColliDTO = new LoadColliDTO();
|
||||
loadColliDTO
|
||||
.setCodDtip(docLav.getCodDtip())
|
||||
.setCodAnag(docLav.getCodAnag())
|
||||
.setSerDoc(docLav.getSerDoc())
|
||||
.setDataDoc(docLav.getDataDoc())
|
||||
.setNumDoc(docLav.getNumDoc())
|
||||
.setCodMdep(docLav.getCodMdep())
|
||||
.setColli(lista);
|
||||
docLav = loadColliService.createDocFromColli(multiDBTransactionManager, loadColliDTO);
|
||||
entityProcessor.processEntity(docLav,true, multiDBTransactionManager);
|
||||
UtilityEntity.throwEntityException(docLav);
|
||||
// }
|
||||
List<MtbColt> lista = new ArrayList<>();
|
||||
lista.add(collo);
|
||||
LoadColliDTO loadColliDTO = new LoadColliDTO();
|
||||
loadColliDTO
|
||||
.setCodDtip(docLav.getCodDtip())
|
||||
.setCodAnag(docLav.getCodAnag())
|
||||
.setSerDoc(docLav.getSerDoc())
|
||||
.setDataDoc(docLav.getDataDoc())
|
||||
.setNumDoc(docLav.getNumDoc())
|
||||
.setCodMdep(docLav.getCodMdep())
|
||||
.setColli(lista);
|
||||
docLav = loadColliService.createDocFromColli(multiDBTransactionManager, loadColliDTO);
|
||||
entityProcessor.processEntity(docLav, true, multiDBTransactionManager);
|
||||
UtilityEntity.throwEntityException(docLav);
|
||||
|
||||
|
||||
//alla creazione della bolla (DDT) creare documento di acquisto e scarico di materiale alla pianta
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol()) && !UtilityBigDecimal.isNullOrZero(dto.getPrezzoFinale()) && dto.getGeneraDocAcquisto()) {
|
||||
DtbOrdr ordAcq = getOrdineAcquistoCollegato(dto.getGestione(),UtilityLocalDate.localDateToDate(dto.getDataOrd()),dto.getNumOrd());
|
||||
DtbDoct ddt = generaDdtAcq(dto,ordAcq,activityId);
|
||||
DtbDoct slav = generaScaricoLav(dto,ordAcq,activityId);
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getQtaCol()) && !UtilityBigDecimal.isNullOrZero(dto.getPrezzoFinale())) {
|
||||
DtbOrdr ordAcq = getOrdineAcquistoCollegato(dto.getGestione(), UtilityLocalDate.localDateToDate(dto.getDataOrd()), dto.getNumOrd());
|
||||
DtbDoct ddt = generaDdtAcq(dto, ordAcq, activityId);
|
||||
DtbDoct slav = generaScaricoLav(dto, ordAcq, activityId);
|
||||
}
|
||||
|
||||
return collo;
|
||||
}
|
||||
|
||||
private DtbOrdr getOrdineAcquistoCollegato(String gestione, Date dataOrd,Integer numOrd ) throws Exception {
|
||||
private DtbOrdr getOrdineAcquistoCollegato(String gestione, Date dataOrd, Integer numOrd) throws Exception {
|
||||
String sql = "WITH ordrLav AS (SELECT dtb_ordr.data_ord,\n" +
|
||||
" dtb_ordr.gestione,\n" +
|
||||
" dtb_ordr.num_ord,\n" +
|
||||
@@ -355,7 +336,7 @@ public class OrtoFruttaProductionService {
|
||||
" INNER JOIN mtb_aart ON dtb_ordr.cod_mart = mtb_aart.cod_mart AND mtb_aart.cod_mgrp = 'MP'\n" +
|
||||
" WHERE dtb_ordr.data_ord = " + UtilityDB.valueDateToString(dataOrd, CommonConstants.DATE_FORMAT_YMD) + "\n" +
|
||||
" AND dtb_ordr.num_ord = " + UtilityDB.valueToString(numOrd) + "\n" +
|
||||
" AND dtb_ordr.gestione = "+UtilityDB.valueToString(gestione)+")\n" +
|
||||
" AND dtb_ordr.gestione = " + UtilityDB.valueToString(gestione) + ")\n" +
|
||||
"SELECT dtb_ordr.*\n" +
|
||||
"FROM dtb_ordr\n" +
|
||||
" INNER JOIN dtb_ordt ON dtb_ordt.data_ord = dtb_ordr.data_ord AND\n" +
|
||||
@@ -365,7 +346,7 @@ public class OrtoFruttaProductionService {
|
||||
" ordrLav.partita_mag = dtb_ordr.partita_mag AND dtb_ordt.cod_anag = ordrLav.cod_anag\n" +
|
||||
"WHERE dtb_ordt.gestione = 'A'";
|
||||
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
|
||||
return UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, DtbOrdr.class);
|
||||
}
|
||||
|
||||
private DtbDoct generaScaricoLav(AccettazioneOrtoFruttaDTO dto, DtbOrdr ordAcq, String activityId) throws Exception {
|
||||
@@ -378,12 +359,12 @@ public class OrtoFruttaProductionService {
|
||||
"SETUP",
|
||||
"SER_DOC_SCAR");
|
||||
|
||||
String sql = "SELECT riga_ord from dtb_ordr where gestione = "+UtilityDB.valueToString(dto.getGestione())+" " +
|
||||
" and data_ord ="+UtilityDB.valueToString(dataOrd)+" " +
|
||||
"AND num_ord = "+UtilityDB.valueToString(dto.getNumOrd())+" "+
|
||||
"AND cod_mart = "+UtilityDB.valueToString(ordAcq.getCodMart())+" "+
|
||||
"AND partita_mag = "+UtilityDB.valueToString(ordAcq.getPartitaMag());
|
||||
Integer rigaOrd = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(),sql);
|
||||
String sql = "SELECT riga_ord from dtb_ordr where gestione = " + UtilityDB.valueToString(dto.getGestione()) + " " +
|
||||
" and data_ord =" + UtilityDB.valueToString(dataOrd) + " " +
|
||||
"AND num_ord = " + UtilityDB.valueToString(dto.getNumOrd()) + " " +
|
||||
"AND cod_mart = " + UtilityDB.valueToString(ordAcq.getCodMart()) + " " +
|
||||
"AND partita_mag = " + UtilityDB.valueToString(ordAcq.getPartitaMag());
|
||||
Integer rigaOrd = UtilityDB.executeSimpleQueryOnlyFirstRowFirstColumn(multiDBTransactionManager.getPrimaryConnection(), sql);
|
||||
|
||||
DtbDoct ddt = new DtbDoct();
|
||||
ddt.setOperation(OperationType.INSERT);
|
||||
@@ -420,8 +401,23 @@ public class OrtoFruttaProductionService {
|
||||
}
|
||||
|
||||
private DtbDoct generaDdtAcq(AccettazioneOrtoFruttaDTO dto, DtbOrdr ordAcq, String activityId) throws Exception {
|
||||
DtbDoct ddt = new DtbDoct();
|
||||
ddt.setOperation(OperationType.INSERT);
|
||||
DtbDoct ddt;
|
||||
|
||||
String sql = Query.format("SELECT * from dtb_doct where data_doc = %s and num_doc = %s AND ser_doc = %s and cod_anag = %s AND cod_dtip = %s and activity_id = %s ",
|
||||
dto.getDataDocProvv(), dto.getNumDocProvv(), dto.getSerDocProvv(), dto.getCodAnagProduttore(), dto.getCodDtipProvv(), activityId);
|
||||
|
||||
PreparedStatement ps = multiDBTransactionManager.getPrimaryConnection().prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
|
||||
ddt = UtilityDB.executePreparedStatementDTOOnlyFirstRow(multiDBTransactionManager.getPrimaryConnection(),ps,DtbDoct.class);
|
||||
|
||||
if (ddt != null){
|
||||
DtbDocr rowsDocLav = new DtbDocr();
|
||||
rowsDocLav.deleteAllEntities(multiDBTransactionManager.getPrimaryConnection(), ddt);
|
||||
ddt.setOperation(OperationType.UPDATE);
|
||||
} else {
|
||||
ddt = new DtbDoct();
|
||||
ddt.setOperation(OperationType.INSERT);
|
||||
}
|
||||
|
||||
ddt
|
||||
.setActivityId(activityId)
|
||||
.setCodDtip(dto.getCodDtipProvv())
|
||||
@@ -443,23 +439,12 @@ public class OrtoFruttaProductionService {
|
||||
.setRigaOrd(ordAcq.getRigaOrd())
|
||||
.setQtaDoc(dto.getQtaCol())
|
||||
.setValUnt(dto.getPrezzoFinale())
|
||||
.setSconto8(dto.getTassoRiduzione())
|
||||
.setOperation(OperationType.INSERT);
|
||||
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getTassoRiduzione()))
|
||||
rowPlus.setNote("SCARTO: "+dto.getTassoRiduzione()+"%");
|
||||
ddt.getDtbDocr().add(rowPlus);
|
||||
if (!UtilityBigDecimal.isNullOrZero(dto.getScarto())) {
|
||||
DtbDocr rowMinus = new DtbDocr();
|
||||
rowMinus
|
||||
.setCodMart(ordAcq.getCodMart())
|
||||
.setPartitaMag(ordAcq.getPartitaMag())
|
||||
.setDataOrd(ordAcq.getDataOrd())
|
||||
.setNumOrd(ordAcq.getNumOrd())
|
||||
.setRigaOrd(ordAcq.getRigaOrd())
|
||||
.setQtaDoc(dto.getScarto().multiply(BigDecimal.valueOf(-1)))
|
||||
.setValUnt(dto.getPrezzoFinale())
|
||||
.setNote("SCARTO")
|
||||
.setOperation(OperationType.INSERT);
|
||||
ddt.getDtbDocr().add(rowMinus);
|
||||
}
|
||||
entityProcessor.processEntity(ddt, true, multiDBTransactionManager);
|
||||
UtilityEntity.throwEntityException(ddt);
|
||||
return ddt;
|
||||
|
||||
@@ -408,8 +408,8 @@ public class PvmController {
|
||||
@RequestMapping(value = "checkDocReso", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse checkDocReso(HttpServletRequest request,
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody DocFromPickingDTO docFromPickingDTO) throws Exception {
|
||||
@RequestParam(CommonConstants.PROFILE_DB) String configuration,
|
||||
@RequestBody DocFromPickingDTO docFromPickingDTO) throws Exception {
|
||||
if (!userSession.isAttivo()) {
|
||||
throw new UsernameNotFoundException("Utente " + requestDataDTO.getUsername() + " non riconoscuto!");
|
||||
}
|
||||
@@ -784,4 +784,16 @@ public class PvmController {
|
||||
return ServiceRestResponse.createNegativeResponse(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = "pvm/gestione/{section}/permessi", method = RequestMethod.POST)
|
||||
public @ResponseBody
|
||||
ServiceRestResponse retrieveUserAuthorizations(@RequestParam(CommonConstants.PROFILE_DB) String profileDB,
|
||||
@PathVariable String section) throws Exception {
|
||||
|
||||
|
||||
return ServiceRestResponse.createPositiveResponse(pvmService.getAuthorizations(section));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -19,6 +19,7 @@ import it.integry.ems.order.dto.UserGroupENUM;
|
||||
import it.integry.ems.product.dto.CategorieCostoProdottoDTO;
|
||||
import it.integry.ems.product.dto.CostoProdottoDTO;
|
||||
import it.integry.ems.product.dto.TipoCosto;
|
||||
import it.integry.ems.production.dto.PvmAuthorizationDTO;
|
||||
import it.integry.ems.properties.EmsProperties;
|
||||
import it.integry.ems.report.dto.JasperDTO;
|
||||
import it.integry.ems.report.dto.PairsDTO;
|
||||
@@ -3764,4 +3765,17 @@ public class PvmService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public List<PvmAuthorizationDTO> getAuthorizations(String section) throws Exception {
|
||||
|
||||
String username = requestDataDTO.getUsername();
|
||||
String sql = "SELECT dw_colname AS authorization_name, display_only, enabled, visible\n" +
|
||||
"FROM stb_edit_limit\n" +
|
||||
"WHERE gest_name = 'PVM'\n" +
|
||||
" AND dw_name = "+UtilityDB.valueToString(section)+"\n" +
|
||||
" AND user_name = "+ UtilityDB.valueToString(username)+" ";
|
||||
|
||||
return UtilityDB.executeSimpleQueryDTO(multiDBTransactionManager.getPrimaryConnection(), sql, PvmAuthorizationDTO.class);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -5,13 +5,19 @@ import it.integry.ems.retail.wms.dto.InsertUDSRowRequestDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.MagazzinoBufferVersamentoMaterialeCloseRequestDTO;
|
||||
import it.integry.ems.retail.wms.generic.dto.MagazzinoBufferVersamentoMaterialeRequestDTO;
|
||||
import it.integry.ems.retail.wms.lavorazione.service.WMSLavorazioneService;
|
||||
import it.integry.ems.rules.businessLogic.LoadColliService;
|
||||
import it.integry.ems.rules.businessLogic.dto.LoadColliDTO;
|
||||
import it.integry.ems.service.EntityProcessor;
|
||||
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
|
||||
import it.integry.ems_model.base.EntityBase;
|
||||
import it.integry.ems_model.config.EmsRestConstants;
|
||||
import it.integry.ems_model.entity.MtbColr;
|
||||
import it.integry.ems_model.entity.MtbColt;
|
||||
import it.integry.ems_model.service.SetupGest;
|
||||
import it.integry.ems_model.types.OperationType;
|
||||
import it.integry.ems_model.utility.UtilityBigDecimal;
|
||||
import it.integry.ems_model.utility.UtilityDB;
|
||||
import it.integry.ems_model.utility.UtilityDate;
|
||||
import it.integry.ems_model.utility.UtilityLocalDate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Scope;
|
||||
@@ -21,6 +27,8 @@ import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@@ -36,6 +44,11 @@ public class WMSMagazzinoBufferService {
|
||||
@Autowired
|
||||
private EntityProcessor entityProcessor;
|
||||
|
||||
@Autowired
|
||||
private LoadColliService loadColliService;
|
||||
@Autowired
|
||||
private SetupGest setupGest;
|
||||
|
||||
|
||||
public boolean isVersamentoStarted(MagazzinoBufferVersamentoMaterialeRequestDTO magazzinoBufferVersamentoMaterialeRequestDTO, String posizione) throws Exception {
|
||||
|
||||
@@ -64,7 +77,9 @@ public class WMSMagazzinoBufferService {
|
||||
throw new Exception("C'è già un versamento attivo su questa posizione");
|
||||
|
||||
MtbColt mtbColtRef = magazzinoBufferVersamentoMaterialeRequestDTO.getInputMtbColt();
|
||||
|
||||
mtbColtRef.setOraInizPrep(new Date())
|
||||
.setOraFinePrep(EmsRestConstants.DATE_NULL)
|
||||
.setOperation(OperationType.UPDATE);
|
||||
String sql = "SELECT TOP 1 * " +
|
||||
" FROM mvw_sitart_udc_det_inventario " +
|
||||
" WHERE num_collo = " + UtilityDB.valueToString(mtbColtRef.getNumCollo()) +
|
||||
@@ -92,6 +107,9 @@ public class WMSMagazzinoBufferService {
|
||||
.setNumCnf(BigDecimal.ZERO)
|
||||
.setQtaCnf(udcMtbColr.getQtaCnf())
|
||||
.setPartitaMag(udcMtbColr.getPartitaMag()));
|
||||
|
||||
entityProcessor.processEntity(mtbColtRef,true,multiDBTransactionManager);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -148,6 +166,12 @@ public class WMSMagazzinoBufferService {
|
||||
.setOperation(OperationType.UPDATE);
|
||||
mtbColrsToSave.add(udsMtbColr);
|
||||
|
||||
List<EntityBase> entityList = new ArrayList<>();
|
||||
mtbColtRef
|
||||
.setOraFinePrep(UtilityLocalDate.localDateTimeToDate(endDateTime))
|
||||
.setOperation(OperationType.UPDATE);
|
||||
|
||||
entityList.add(mtbColtRef);
|
||||
for (int i = 0; i < totalNumCnf - 1; i++) {
|
||||
final MtbColr clone = (MtbColr) udsMtbColr.clone();
|
||||
|
||||
@@ -165,7 +189,15 @@ public class WMSMagazzinoBufferService {
|
||||
.setMtbColr(mtbColrsToSave);
|
||||
mtbColtToUpdate
|
||||
.setOperation(OperationType.UPDATE);
|
||||
entityList.add(mtbColtToUpdate);
|
||||
|
||||
entityProcessor.processEntity(mtbColtToUpdate, multiDBTransactionManager);
|
||||
entityProcessor.processEntityList(entityList, multiDBTransactionManager,true);
|
||||
|
||||
LoadColliDTO loadColliDTO = new LoadColliDTO()
|
||||
.setCodDtip(setupGest.getSetup(multiDBTransactionManager.getPrimaryConnection(),"W_PORDI_RC","SETUP_DOCUMENTI","COD_DTIP_SCAR"))
|
||||
.setCodMdep(mtbColtToUpdate.getCodMdep())
|
||||
.setSaveDoc(true)
|
||||
.setColli(Collections.singletonList(mtbColtToUpdate));
|
||||
loadColliService.createDocFromColli(multiDBTransactionManager,loadColliDTO);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user