Merge remote-tracking branch 'origin/develop' into develop
All checks were successful
IntegryManagementSystem_Multi/pipeline/head This commit looks good

This commit is contained in:
2025-12-01 08:48:08 +01:00
11 changed files with 766 additions and 15 deletions

View File

@@ -5,6 +5,10 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.http.ContentDisposition;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -28,10 +32,8 @@ public class DownloadController {
private MimeTypesHandler mimetypesFileTypeMap;
@RequestMapping(value = "download/{uuid}/{fileName}", method = RequestMethod.GET)
public byte[] download(HttpServletResponse response,
@PathVariable String uuid,
@PathVariable String fileName) throws Exception {
public ResponseEntity<byte[]> download(@PathVariable String uuid,
@PathVariable String fileName) throws Exception {
byte[] fileContent = downloadFileHandlerService.getDownloadFileContent(uuid);
if (fileContent != null) {
@@ -39,15 +41,17 @@ public class DownloadController {
String mimeType = Files.probeContentType(Paths.get(fileName));
response.setContentType(mimeType);
response.setStatus(HttpServletResponse.SC_OK);
response.addHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
response.setContentLength(fileContent.length);
return fileContent;
return ResponseEntity.ok()
.contentType(MediaType.parseMediaType(mimeType))
.contentLength(fileContent.length)
.header(HttpHeaders.CONTENT_DISPOSITION, ContentDisposition
.builder("attachment")
.filename(filename)
.build()
.toString())
.body(fileContent);
}
response.sendError(404, "File non trovato");
return null;
return ResponseEntity.notFound().build();
}
}

View File

@@ -0,0 +1,93 @@
package it.integry.ems.migration.model;
import it.integry.ems.migration._base.BaseMigration;
import it.integry.ems.migration._base.IntegryCustomerDB;
import it.integry.ems.migration._base.MigrationModelInterface;
public class Migration_20251128190648 extends BaseMigration implements MigrationModelInterface {
@Override
public void up() throws Exception {
if (isHistoryDB())
return;
if (isCustomerDb(IntegryCustomerDB.Carelli_Winact)) {
dropTable("crl_amac_manutenzioni_files");
dropTable("ctb_amac_manutenzioni");
executeStatement(
"create table dbo.ctb_amac_manutenzioni\n" +
"(\n" +
" id bigint identity\n" +
" constraint pk_ctb_amac_manutenzioni\n" +
" primary key,\n" +
" cod_cmac varchar(20) not null\n" +
" constraint FK_ctb_amac_manutenzioni_cod_cmac\n" +
" references dbo.ctb_amac,\n" +
" descrizione varchar(255) not null,\n" +
" data_manutenzione datetime not null,\n" +
" data_inserimento datetime not null,\n" +
" data_iniz datetime,\n" +
" data_fine datetime,\n" +
" stato int default 0 not null,\n" +
" esito varchar(8000),\n" +
" dati_macchina varchar(8000),\n" +
" ore_lavoro numeric(10, 2),\n" +
" esito_positivo bit default 1,\n" +
" manutenzione_ordinaria bit default 1,\n" +
" convalidato_da varchar(40),\n" +
" data_convalida datetime2,\n" +
" convalidato_da2 varchar(40),\n" +
" data_convalida2 datetime2\n" +
")",
"CREATE TABLE dbo.crl_amac_manutenzioni_files\n" +
"(\n" +
" id_manutenzione BIGINT NOT NULL\n" +
" CONSTRAINT fk_crl_amac_manutenzioni_files_ctb_amac_manutenzioni\n" +
" REFERENCES dbo.ctb_amac_manutenzioni,\n" +
" id_attach VARCHAR(40) NOT NULL\n" +
" CONSTRAINT fk_crl_amac_manutenzioni_files_stb_files_attached\n" +
" REFERENCES dbo.stb_files_attached,\n" +
" CONSTRAINT pk_crl_amac_manutenzioni_files\n" +
" PRIMARY KEY (id_manutenzione, id_attach)\n" +
")"
);
}
executeStatement(
"CREATE TABLE dbo.ctb_amac_ricambi\n" +
"(\n" +
" id BIGINT IDENTITY\n" +
" CONSTRAINT ctb_amac_ricambi_pk\n" +
" PRIMARY KEY,\n" +
" cod_cmac VARCHAR(20) NOT NULL\n" +
" CONSTRAINT ctb_amac_ricambi_ctb_amac_cod_cmac_fk\n" +
" REFERENCES dbo.ctb_amac,\n" +
" sezione VARCHAR(100),\n" +
" cod_mart VARCHAR(15) NOT NULL\n" +
" CONSTRAINT ctb_amac_ricambi_mtb_aart_cod_mart_fk\n" +
" REFERENCES dbo.mtb_aart,\n" +
" durata_gg INT\n" +
");",
"ALTER TABLE dbo.ctb_amac_manutenzioni\n" +
" ADD nome_squadra VARCHAR(250);",
"CREATE TABLE dbo.crl_amac_manutenzioni_ord\n" +
"(\n" +
" id_manutenzione BIGINT\n" +
" CONSTRAINT crl_amac_manutenzioni_ord_ctb_amac_manutenzioni_id_fk\n" +
" REFERENCES dbo.ctb_amac_manutenzioni,\n" +
" gestione VARCHAR,\n" +
" data_ord DATETIME,\n" +
" num_ord INT,\n" +
" CONSTRAINT crl_amac_manutenzioni_ord_pk\n" +
" PRIMARY KEY (id_manutenzione, gestione, num_ord, data_ord),\n" +
" CONSTRAINT crl_amac_manutenzioni_ord_dtb_ordt_gestione_data_ord_num_ord_fk\n" +
" FOREIGN KEY (gestione, data_ord, num_ord) REFERENCES dbo.dtb_ordt\n" +
");"
);
}
@Override
public void down() throws Exception {
}
}

View File

@@ -26,17 +26,17 @@ public class CrlAmacManutenzioniFiles extends EntityBase {
@PK
@SqlField(value = "id_manutenzione", nullable = false)
private Integer idManutenzione;
private Long idManutenzione;
@PK
@SqlField(value = "id_attach", maxLength = 40, nullable = false)
private String idAttach;
public Integer getIdManutenzione() {
public Long getIdManutenzione() {
return idManutenzione;
}
public CrlAmacManutenzioniFiles setIdManutenzione(Integer idManutenzione) {
public CrlAmacManutenzioniFiles setIdManutenzione(Long idManutenzione) {
this.idManutenzione = idManutenzione;
return this;
}

View File

@@ -0,0 +1,83 @@
package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EntityBase;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.util.Date;
@PropertyReactive
@Table(CrlAmacManutenzioniOrd.ENTITY)
@JsonTypeName(CrlAmacManutenzioniOrd.ENTITY)
public class CrlAmacManutenzioniOrd extends EntityBase {
public static final String ENTITY = "crl_amac_manutenzioni_ord";
private static final Logger logger = LogManager.getLogger();
@PK
@SqlField(value = "id_manutenzione", nullable = false)
@FK(tableName = CtbAmacManutenzioni.ENTITY, columnName = "id")
@ImportFromParent(value = "id", parentEntity = CtbAmacManutenzioni.class)
private Long idManutenzione;
@PK
@SqlField
@FK(tableName = DtbOrdt.ENTITY, columnName = "gestione")
@ImportFromParent(value = "gestione", parentEntity = DtbOrdt.class)
private String gestione;
@PK
@SqlField(value = "data_ord", nullable = false)
@FK(tableName = DtbOrdt.ENTITY, columnName = "data_ord")
@ImportFromParent(value = "dataOrd", parentEntity = DtbOrdt.class)
private Date dataOrd;
@PK
@SqlField(value = "num_ord", nullable = false)
@FK(tableName = DtbOrdt.ENTITY, columnName = "num_ord")
@ImportFromParent(value = "numOrd", parentEntity = DtbOrdt.class)
private Integer numOrd;
public CrlAmacManutenzioniOrd() {
super(logger);
}
public Long getIdManutenzione() {
return idManutenzione;
}
public CrlAmacManutenzioniOrd setIdManutenzione(Long idManutenzione) {
this.idManutenzione = idManutenzione;
return this;
}
public String getGestione() {
return gestione;
}
public CrlAmacManutenzioniOrd setGestione(String gestione) {
this.gestione = gestione;
return this;
}
public Date getDataOrd() {
return dataOrd;
}
public CrlAmacManutenzioniOrd setDataOrd(Date dataOrd) {
this.dataOrd = dataOrd;
return this;
}
public Integer getNumOrd() {
return numOrd;
}
public CrlAmacManutenzioniOrd setNumOrd(Integer numOrd) {
this.numOrd = numOrd;
return this;
}
}

View File

@@ -81,6 +81,9 @@ public class CtbAmac extends EntityBase {
@EntityChild
private List<CtbAmacCarat> ctbAmacCarat = new ArrayList<>();
@EntityChild
private List<CtbAmacRicambi> ctbAmacRicambi = new ArrayList<>();
public CtbAmac() {
super(logger);
}
@@ -220,6 +223,15 @@ public class CtbAmac extends EntityBase {
return this;
}
public List<CtbAmacRicambi> getCtbAmacRicambi() {
return ctbAmacRicambi;
}
public CtbAmac setCtbAmacRicambi(List<CtbAmacRicambi> ctbAmacRicambi) {
this.ctbAmacRicambi = ctbAmacRicambi;
return this;
}
public String getNote() {
return note;
}
@@ -263,6 +275,9 @@ public class CtbAmac extends EntityBase {
caratteristiche.manageWithParentConnection(connection, caratteristiche.getOperation(), dataCompleting, entityHolder);
}
for (CtbAmacRicambi ricambio : getCtbAmacRicambi()) {
ricambio.manageWithParentConnection(connection, ricambio.getOperation(), dataCompleting, entityHolder);
}
}
@Override
@@ -282,6 +297,8 @@ public class CtbAmac extends EntityBase {
caratteristiche.deleteAllEntities(connection, this);
DtbOrdMacc dtbOrdMacc = new DtbOrdMacc();
dtbOrdMacc.deleteAllEntities(connection, this);
CtbAmacRicambi ricambio = new CtbAmacRicambi();
ricambio.deleteAllEntities(connection, this);
}
public enum MachineType implements IBaseEnum<MachineType> {

View File

@@ -10,7 +10,9 @@ import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@PropertyReactive
@Table(CtbAmacManutenzioni.ENTITY)
@@ -77,6 +79,14 @@ public class CtbAmacManutenzioni extends EntityBase {
@SqlField(value = "data_convalida2")
private LocalDateTime dataConvalida2;
@SqlField(value = "nome_squadra", maxLength = 250)
private String nomeSquadra;
private List<CrlAmacManutenzioniFiles> crlAmacManutenzioniFiles = new ArrayList<>();
@EntityChild
private List<CrlAmacManutenzioniOrd> crlAmacManutenzioniOrd = new ArrayList<>();
public CtbAmacManutenzioni() {
super(logger);
}
@@ -182,6 +192,13 @@ public class CtbAmacManutenzioni extends EntityBase {
@Override
protected void insertChilds() throws Exception {
for(CrlAmacManutenzioniFiles crlAmacManutenzioniFiles : getCrlAmacManutenzioniFiles()) {
crlAmacManutenzioniFiles.manageWithParentConnection(connection, crlAmacManutenzioniFiles.getOperation(), dataCompleting, entityHolder);
}
for (CrlAmacManutenzioniOrd crlAmacManutenzioniOrd : getCrlAmacManutenzioniOrd()) {
crlAmacManutenzioniOrd.manageWithParentConnection(connection, crlAmacManutenzioniOrd.getOperation(), dataCompleting, entityHolder);
}
}
@Override
@@ -191,6 +208,11 @@ public class CtbAmacManutenzioni extends EntityBase {
@Override
protected void deleteChilds() throws Exception {
CrlAmacManutenzioniFiles crlAmacManutenzioniFiles = new CrlAmacManutenzioniFiles();
crlAmacManutenzioniFiles.deleteAllEntities(connection, this);
CrlAmacManutenzioniOrd crlAmacManutenzioniOrd = new CrlAmacManutenzioniOrd();
crlAmacManutenzioniOrd.deleteAllEntities(connection, this);
}
public Boolean getEsitoPositivo() {
@@ -247,6 +269,33 @@ public class CtbAmacManutenzioni extends EntityBase {
return this;
}
public String getNomeSquadra() {
return nomeSquadra;
}
public CtbAmacManutenzioni setNomeSquadra(String nomeSquadra) {
this.nomeSquadra = nomeSquadra;
return this;
}
public List<CrlAmacManutenzioniFiles> getCrlAmacManutenzioniFiles() {
return crlAmacManutenzioniFiles;
}
public CtbAmacManutenzioni setCrlAmacManutenzioniFiles(List<CrlAmacManutenzioniFiles> crlAmacManutenzioniFiles) {
this.crlAmacManutenzioniFiles = crlAmacManutenzioniFiles;
return this;
}
public List<CrlAmacManutenzioniOrd> getCrlAmacManutenzioniOrd() {
return crlAmacManutenzioniOrd;
}
public CtbAmacManutenzioni setCrlAmacManutenzioniOrd(List<CrlAmacManutenzioniOrd> crlAmacManutenzioniOrd) {
this.crlAmacManutenzioniOrd = crlAmacManutenzioniOrd;
return this;
}
public enum MaintenanceStatus implements IBaseEnum<MaintenanceStatus> {
PROGRAMMATA(0), AVVIATA(1), TERMINATA(2), ANNULLATA(3);

View File

@@ -0,0 +1,85 @@
package it.integry.ems_model.entity;
import com.fasterxml.jackson.annotation.JsonTypeName;
import it.integry.ems_model.annotation.*;
import it.integry.ems_model.base.EntityBase;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.kie.api.definition.type.PropertyReactive;
@PropertyReactive
@Table(CtbAmacRicambi.ENTITY)
@JsonTypeName(CtbAmacRicambi.ENTITY)
public class CtbAmacRicambi extends EntityBase {
public static final String ENTITY = "ctb_amac_ricambi";
private static final Logger logger = LogManager.getLogger();
private static final long serialVersionUID = 1L;
@Identity
@PK
@SqlField(nullable = false)
private Long id;
@SqlField(value = "cod_cmac", maxLength = 20, nullable = false)
private String codCmac;
@SqlField(maxLength = 100)
private String sezione;
@SqlField(value = "cod_mart", maxLength = 150, nullable = false)
private String codMart;
@SqlField(value = "durata_gg")
private Integer durataGg;
public CtbAmacRicambi() {
super(logger);
}
public Long getId() {
return id;
}
public CtbAmacRicambi setId(Long id) {
this.id = id;
return this;
}
public String getCodCmac() {
return codCmac;
}
public CtbAmacRicambi setCodCmac(String codCmac) {
this.codCmac = codCmac;
return this;
}
public String getSezione() {
return sezione;
}
public CtbAmacRicambi setSezione(String sezione) {
this.sezione = sezione;
return this;
}
public String getCodMart() {
return codMart;
}
public CtbAmacRicambi setCodMart(String codMart) {
this.codMart = codMart;
return this;
}
public Integer getDurataGg() {
return durataGg;
}
public CtbAmacRicambi setDurataGg(Integer durataGg) {
this.durataGg = durataGg;
return this;
}
}

View File

@@ -460,6 +460,9 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
@EntityChild
private List<ArlSchaccOrd> arlSchaccOrd = new ArrayList<>();
@EntityChild
private CrlAmacManutenzioniOrd crlAmacManutenzioniOrd;
@Priority(1)
private JtbComt jtbComt;
@@ -1725,6 +1728,15 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
return this;
}
public CrlAmacManutenzioniOrd getCrlAmacManutenzioniOrd() {
return crlAmacManutenzioniOrd;
}
public DtbOrdt setCrlAmacManutenzioniOrd(CrlAmacManutenzioniOrd crlAmacManutenzioniOrd) {
this.crlAmacManutenzioniOrd = crlAmacManutenzioniOrd;
return this;
}
public JtbComt getJtbComt() {
return jtbComt;
}
@@ -1838,6 +1850,9 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
for (ArlSchaccOrd arlSchaccOrd : getArlSchaccOrd()) {
arlSchaccOrd.manageWithParentConnection(connection, arlSchaccOrd.getOperation(), dataCompleting, entityHolder);
}
if (getCrlAmacManutenzioniOrd() != null) {
crlAmacManutenzioniOrd.manageWithParentConnection(connection, crlAmacManutenzioniOrd.getOperation(), dataCompleting, entityHolder);
}
}
@Override
@@ -1890,6 +1905,8 @@ public class DtbOrdt extends DtbDocOrdT implements EquatableEntityInterface<DtbO
if (jtbLott != null) {
jtbLott.manageWithParentConnection(connection, jtbLott.getOperation(), dataCompleting, entityHolder);
}
CrlAmacManutenzioniOrd crlAmacManutenzioniOrd = new CrlAmacManutenzioniOrd();
crlAmacManutenzioniOrd.deleteAllEntities(connection, this);
}
@Override

View File

@@ -0,0 +1,28 @@
package it.integry.ems.machine.controller;
import it.integry.ems.machine.dto.CreateManutenzioneRequestDTO;
import it.integry.ems.machine.service.MachineService;
import it.integry.ems.response.ServiceRestResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@RestController
@Scope(value = "request")
@RequestMapping(value = "machine")
public class MachineController {
@Autowired
private MachineService machineService;
@PostMapping(value = "manutenzione")
public ServiceRestResponse create(@RequestPart CreateManutenzioneRequestDTO createManutenzioneRequestDTO,
@RequestPart(value = "allegati", required = false) List<MultipartFile> allegati) throws Exception {
createManutenzioneRequestDTO.setAllegati(allegati);
return ServiceRestResponse.createPositiveResponse(machineService.createManutenzione(createManutenzioneRequestDTO));
}
}

View File

@@ -0,0 +1,158 @@
package it.integry.ems.machine.dto;
import it.integry.ems_model.entity.CtbAmacManutenzioni;
import it.integry.ems_model.entity.DtbOrdr;
import it.integry.ems_model.utility.UtilityString;
import org.springframework.web.multipart.MultipartFile;
import java.util.Date;
import java.util.List;
public class CreateManutenzioneRequestDTO {
private String codCmac;
private Long id;
private String descrizione;
private Date dataManutenzione;
private Date dataIniz;
private Date dataFine;
private CtbAmacManutenzioni.MaintenanceStatus stato;
private String esito;
private Float oreLavoro;
private Boolean esitoPositivo;
private Boolean manutenzioneOrdinaria;
private String nomeSquadra;
private List<DtbOrdr> ricambiSostituiti;
private List<MultipartFile> allegati;
public boolean isValid() {
return !UtilityString.isNullOrEmpty(codCmac);
}
public String getCodCmac() {
return codCmac;
}
public CreateManutenzioneRequestDTO setCodCmac(String codCmac) {
this.codCmac = codCmac;
return this;
}
public Long getId() {
return id;
}
public CreateManutenzioneRequestDTO setId(Long id) {
this.id = id;
return this;
}
public String getDescrizione() {
return descrizione;
}
public CreateManutenzioneRequestDTO setDescrizione(String descrizione) {
this.descrizione = descrizione;
return this;
}
public Date getDataManutenzione() {
return dataManutenzione;
}
public CreateManutenzioneRequestDTO setDataManutenzione(Date dataManutenzione) {
this.dataManutenzione = dataManutenzione;
return this;
}
public Date getDataIniz() {
return dataIniz;
}
public CreateManutenzioneRequestDTO setDataIniz(Date dataIniz) {
this.dataIniz = dataIniz;
return this;
}
public Date getDataFine() {
return dataFine;
}
public CreateManutenzioneRequestDTO setDataFine(Date dataFine) {
this.dataFine = dataFine;
return this;
}
public CtbAmacManutenzioni.MaintenanceStatus getStato() {
return stato;
}
public CreateManutenzioneRequestDTO setStato(CtbAmacManutenzioni.MaintenanceStatus stato) {
this.stato = stato;
return this;
}
public String getEsito() {
return esito;
}
public CreateManutenzioneRequestDTO setEsito(String esito) {
this.esito = esito;
return this;
}
public Float getOreLavoro() {
return oreLavoro;
}
public CreateManutenzioneRequestDTO setOreLavoro(Float oreLavoro) {
this.oreLavoro = oreLavoro;
return this;
}
public Boolean getEsitoPositivo() {
return esitoPositivo;
}
public CreateManutenzioneRequestDTO setEsitoPositivo(Boolean esitoPositivo) {
this.esitoPositivo = esitoPositivo;
return this;
}
public Boolean getManutenzioneOrdinaria() {
return manutenzioneOrdinaria;
}
public CreateManutenzioneRequestDTO setManutenzioneOrdinaria(Boolean manutenzioneOrdinaria) {
this.manutenzioneOrdinaria = manutenzioneOrdinaria;
return this;
}
public String getNomeSquadra() {
return nomeSquadra;
}
public CreateManutenzioneRequestDTO setNomeSquadra(String nomeSquadra) {
this.nomeSquadra = nomeSquadra;
return this;
}
public List<DtbOrdr> getRicambiSostituiti() {
return ricambiSostituiti;
}
public CreateManutenzioneRequestDTO setRicambiSostituiti(List<DtbOrdr> ricambiSostituiti) {
this.ricambiSostituiti = ricambiSostituiti;
return this;
}
public List<MultipartFile> getAllegati() {
return allegati;
}
public CreateManutenzioneRequestDTO setAllegati(List<MultipartFile> allegati) {
this.allegati = allegati;
return this;
}
}

View File

@@ -0,0 +1,217 @@
package it.integry.ems.machine.service;
import it.integry.ems.exception.MissingDataException;
import it.integry.ems.machine.dto.CreateManutenzioneRequestDTO;
import it.integry.ems.production.service.ProductionService;
import it.integry.ems.service.AziendaService;
import it.integry.ems.service.EntityProcessor;
import it.integry.ems.sync.MultiDBTransaction.MultiDBTransactionManager;
import it.integry.ems.utility.UtilityEntity;
import it.integry.ems_model.base.EntityBase;
import it.integry.ems_model.entity.*;
import it.integry.ems_model.types.OperationType;
import it.integry.ems_model.utility.Query;
import it.integry.ems_model.utility.UtilityDB;
import it.integry.ems_model.utility.UtilityList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Service
@Scope(value = "request")
public class MachineService {
@Autowired
private MultiDBTransactionManager multiDBTransactionManager;
@Autowired
private EntityProcessor entityProcessor;
@Autowired
private AziendaService aziendaService;
@Autowired
private ProductionService productionService;
public CtbAmac createManutenzione(CreateManutenzioneRequestDTO dto) throws Exception {
if (!dto.isValid()) {
throw new MissingDataException("Dto incompleto");
}
try {
CtbAmacManutenzioni ctbAmacManutenzioni = new CtbAmacManutenzioni()
.setDescrizione(dto.getDescrizione())
.setDataManutenzione(dto.getDataManutenzione())
.setDataIniz(dto.getDataIniz())
.setDataFine(dto.getDataFine())
.setStato(dto.getStato())
.setEsito(dto.getEsito())
.setOreLavoro(dto.getOreLavoro())
.setEsitoPositivo(dto.getEsitoPositivo())
.setManutenzioneOrdinaria(dto.getManutenzioneOrdinaria())
.setNomeSquadra(dto.getNomeSquadra());
if (dto.getId() != null) {
ctbAmacManutenzioni.setId(dto.getId());
ctbAmacManutenzioni.setOperation(OperationType.UPDATE);
} else {
ctbAmacManutenzioni.setDataInserimento(new Date());
ctbAmacManutenzioni.setOperation(OperationType.INSERT);
}
CtbAmac ctbAmac = new CtbAmac()
.setCodCmac(dto.getCodCmac())
.setCtbAmacManutenzioni(new ArrayList<>());
ctbAmac.getCtbAmacManutenzioni().add(ctbAmacManutenzioni);
ctbAmac.setOperation(OperationType.NO_OP);
entityProcessor.processEntity(ctbAmac, true, multiDBTransactionManager);
List<EntityBase> entitiesToSave = new ArrayList<>();
String sql = Query.format(
"SELECT id_manutenzione, gestione, data_ord, num_ord\n" +
"FROM crl_amac_manutenzioni_ord\n" +
"where id_manutenzione = %s",
ctbAmacManutenzioni.getId()
);
CrlAmacManutenzioniOrd crlAmacManutenzioniOrd = UtilityDB.executeSimpleQueryOnlyFirstRowDTO(multiDBTransactionManager.getPrimaryConnection(), sql, CrlAmacManutenzioniOrd.class);
DtbOrdt dtbOrdt = new DtbOrdt();
if (!UtilityList.isNullOrEmpty(dto.getRicambiSostituiti())) {
dtbOrdt.setDtbOrdr(dto.getRicambiSostituiti());
}
if (crlAmacManutenzioniOrd != null) {
crlAmacManutenzioniOrd.setOperation(OperationType.UPDATE);
dtbOrdt
.setGestione(crlAmacManutenzioniOrd.getGestione())
.setDataOrd(crlAmacManutenzioniOrd.getDataOrd())
.setNumOrd(crlAmacManutenzioniOrd.getNumOrd());
dtbOrdt.setOperation(OperationType.UPDATE);
} else {
crlAmacManutenzioniOrd = new CrlAmacManutenzioniOrd()
.setIdManutenzione(ctbAmacManutenzioni.getId());
crlAmacManutenzioniOrd.setOperation(OperationType.INSERT);
dtbOrdt
.setGestione("L")
.setDataOrd(ctbAmacManutenzioni.getDataManutenzione())
.setCodAnag(aziendaService.retrieveInternalCodAnagFornitore())
.setCodMdep("01");
dtbOrdt.setOperation(OperationType.INSERT);
}
dtbOrdt.setCrlAmacManutenzioniOrd(crlAmacManutenzioniOrd);
entitiesToSave.add(dtbOrdt);
if (!UtilityList.isNullOrEmpty(dto.getAllegati())) {
for (MultipartFile allegato : dto.getAllegati()) {
CrlAmacManutenzioniFiles crlAmacManutenzioniFiles = new CrlAmacManutenzioniFiles()
.setIdManutenzione(ctbAmacManutenzioni.getId());
crlAmacManutenzioniFiles.setOperation(OperationType.INSERT);
StbFilesAttached stbFilesAttached = new StbFilesAttached()
.setFileName(allegato.getOriginalFilename())
.setContent(allegato.getBytes())
.setDatetimeAttach(new Date())
.setFileSize(new BigDecimal(allegato.getBytes().length))
.setMimeType(allegato.getContentType())
.setCrlAmacManutenzioniFiles(crlAmacManutenzioniFiles);
stbFilesAttached.setOperation(OperationType.INSERT);
entitiesToSave.add(stbFilesAttached);
}
}
entityProcessor.processEntityList(entitiesToSave, multiDBTransactionManager, true);
UtilityEntity.throwEntitiesException(entitiesToSave);
multiDBTransactionManager.commitAll();
return ctbAmac;
} finally {
multiDBTransactionManager.rollbackAll();
}
//$id = array_get($data, "id");
// $codCmac = array_get($data, "codCmac");
//
// $ctbAmac = new EntityItem("ctb_amac");
// $ctbAmac
// ->no_op()
// ->set("codCmac", $codCmac);
//
// $ctbAmacManutenzioni = new EntityItem("ctb_amac_manutenzioni");
// $ctbAmacManutenzioni
// ->set("descrizione", $data["descrizione"])
// ->setDate("dataManutenzione", $data["dataManutenzione"])
// ->setDatetime("dataIniz", $data["dataIniz"])
// ->setDatetime("dataFine", $data["dataFine"])
// ->set("stato", $data["stato"])
// ->set("esito", $data["esito"])
// ->set("oreLavoro", $data["oreLavoro"])
// ->set("esitoPositivo", array_get($data, "esito_positivo") == "1" ? 1 : 0)
// ->set("manutenzioneOrdinaria", array_get($data, "manutenzione_ordinaria") == "1" ? 1 : 0)
// ->set("nomeSquadra", $data["nomeSquadra"]);
//
// if ($id) {
// $ctbAmacManutenzioni
// ->update()
// ->set("id", $id);
// } else {
// $ctbAmacManutenzioni
// ->insert()
// ->setDate("dataInserimento", Date::getToday());
// }
//
// $ctbAmac->onlyPkMaster(false)->set("ctbAmacManutenzioni")->append($ctbAmacManutenzioni);
//
// $ret = $ctbAmac->send();
// if ($ret->is_KO()) {
// return $ret;
// }
//
// $uploads = $_FILES;
//
// if (empty($uploads)) {
// return $ret;
// }
//
// $resultMac = $ret->get_entity();
// $manutenzione = $resultMac["ctbAmacManutenzioni"][0];
// foreach ($uploads as $file) {
// $filePath = $file["tmp_name"];
// if (file_exists($filePath)) {
// $crlAmacManutenzioniFiles = new \EntityItem("crl_amac_manutenzioni_files");
//
// $crlAmacManutenzioniFiles
// ->insert()
// ->set("idManutenzione", array_get($manutenzione, "id"));
//
// $ret = Allegati\StbFilesAttached::upload($file, $crlAmacManutenzioniFiles);
// if ($ret->is_KO()) {
// return $ret;
// }
// }
// }
// return $ret;
}
}