Aggiornato il supporto a Pers Orario
This commit is contained in:
parent
ce44e0ea8d
commit
45a041cc83
|
@ -0,0 +1,297 @@
|
||||||
|
package it.cnr.isti.epasmed.domain;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import javax.persistence.Column;
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.Table;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Leaves
|
||||||
|
*/
|
||||||
|
@Entity
|
||||||
|
@Table(name = "persorario")
|
||||||
|
public class PersOrario implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@Id
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
private Integer idPersona;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(nullable = false)
|
||||||
|
private String cf;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(nullable = false)
|
||||||
|
private LocalDate dal;
|
||||||
|
|
||||||
|
private LocalDate al;
|
||||||
|
|
||||||
|
private String descrizione;
|
||||||
|
|
||||||
|
private Integer lun;
|
||||||
|
private Integer mar;
|
||||||
|
private Integer mer;
|
||||||
|
private Integer gio;
|
||||||
|
private Integer ven;
|
||||||
|
private Integer sab;
|
||||||
|
|
||||||
|
private Integer percentuale;
|
||||||
|
|
||||||
|
private String turno;
|
||||||
|
private Integer oreTurno;
|
||||||
|
private String festivo;
|
||||||
|
private String notturno;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Column(nullable = false)
|
||||||
|
private LocalDateTime dataMod;
|
||||||
|
|
||||||
|
public Integer getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(Integer id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getIdPersona() {
|
||||||
|
return idPersona;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdPersona(Integer idPersona) {
|
||||||
|
this.idPersona = idPersona;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCf() {
|
||||||
|
return cf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCf(String cf) {
|
||||||
|
this.cf = cf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getDal() {
|
||||||
|
return dal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDal(LocalDate dal) {
|
||||||
|
this.dal = dal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDate getAl() {
|
||||||
|
return al;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAl(LocalDate al) {
|
||||||
|
this.al = al;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescrizione() {
|
||||||
|
return descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescrizione(String descrizione) {
|
||||||
|
this.descrizione = descrizione;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getLun() {
|
||||||
|
return lun;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLun(Integer lun) {
|
||||||
|
this.lun = lun;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMar() {
|
||||||
|
return mar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMar(Integer mar) {
|
||||||
|
this.mar = mar;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getMer() {
|
||||||
|
return mer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMer(Integer mer) {
|
||||||
|
this.mer = mer;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getGio() {
|
||||||
|
return gio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGio(Integer gio) {
|
||||||
|
this.gio = gio;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getVen() {
|
||||||
|
return ven;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVen(Integer ven) {
|
||||||
|
this.ven = ven;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getSab() {
|
||||||
|
return sab;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSab(Integer sab) {
|
||||||
|
this.sab = sab;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getPercentuale() {
|
||||||
|
return percentuale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPercentuale(Integer percentuale) {
|
||||||
|
this.percentuale = percentuale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTurno() {
|
||||||
|
return turno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTurno(String turno) {
|
||||||
|
this.turno = turno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Integer getOreTurno() {
|
||||||
|
return oreTurno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOreTurno(Integer oreTurno) {
|
||||||
|
this.oreTurno = oreTurno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFestivo() {
|
||||||
|
return festivo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFestivo(String festivo) {
|
||||||
|
this.festivo = festivo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNotturno() {
|
||||||
|
return notturno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNotturno(String notturno) {
|
||||||
|
this.notturno = notturno;
|
||||||
|
}
|
||||||
|
|
||||||
|
public LocalDateTime getDataMod() {
|
||||||
|
return dataMod;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDataMod(LocalDateTime dataMod) {
|
||||||
|
this.dataMod = dataMod;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "PersOrario [id=" + id + ", idPersona=" + idPersona + ", cf=" + cf + ", dal=" + dal + ", al=" + al
|
||||||
|
+ ", descrizione=" + descrizione + ", lun=" + lun + ", mar=" + mar + ", mer=" + mer + ", gio=" + gio
|
||||||
|
+ ", ven=" + ven + ", sab=" + sab + ", percentuale=" + percentuale + ", turno=" + turno + ", oreTurno="
|
||||||
|
+ oreTurno + ", festivo=" + festivo + ", notturno=" + notturno + ", dataMod=" + dataMod + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object o) {
|
||||||
|
if (this == o) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(o instanceof PersOrario)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return id != null && id.equals(((PersOrario) o).id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean same(PersOrario l) {
|
||||||
|
boolean same = false;
|
||||||
|
|
||||||
|
if (id != null && id.compareTo(l.getId()) == 0) {
|
||||||
|
if (cf != null && cf.compareTo(l.getCf()) == 0) {
|
||||||
|
if (idPersona != null && idPersona.compareTo(l.getIdPersona()) == 0) {
|
||||||
|
if (dal != null && dal.compareTo(l.getDal()) == 0) {
|
||||||
|
if (al == null && l.getAl() == null) {
|
||||||
|
sameOthersFields(l);
|
||||||
|
} else {
|
||||||
|
if (al != null && al.compareTo(l.getAl()) == 0) {
|
||||||
|
sameOthersFields(l);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return same;
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean sameOthersFields(PersOrario l) {
|
||||||
|
boolean someOthers = false;
|
||||||
|
if (lun == l.getLun() && mar == l.getMar() && mer == l.getMer() && gio == l.getGio() && ven == l.getVen()
|
||||||
|
&& sab == l.getSab() && percentuale == l.getPercentuale()) {
|
||||||
|
if (turno != null && turno.compareTo(l.getTurno()) == 0) {
|
||||||
|
if (oreTurno == l.getOreTurno()) {
|
||||||
|
if (festivo != null && festivo.compareTo(l.getFestivo()) == 0) {
|
||||||
|
if (notturno != null && notturno.compareTo(l.getNotturno()) == 0) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (notturno == null && l.getNotturno() == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (festivo == null && l.getFestivo() == null) {
|
||||||
|
if (notturno != null && notturno.compareTo(l.getNotturno()) == 0) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (notturno == null && l.getNotturno() == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (turno == null && l.getTurno() == null) {
|
||||||
|
if (oreTurno == l.getOreTurno()) {
|
||||||
|
if (festivo != null && festivo.compareTo(l.getFestivo()) == 0) {
|
||||||
|
if (notturno != null && notturno.compareTo(l.getNotturno()) == 0) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (notturno == null && l.getNotturno() == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (festivo == null && l.getFestivo() == null) {
|
||||||
|
if (notturno != null && notturno.compareTo(l.getNotturno()) == 0) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
if (notturno == null && l.getNotturno() == null) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return someOthers;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package it.cnr.isti.epasmed.repository;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import it.cnr.isti.epasmed.domain.PersOrario;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Spring Data JPA repository for the {@link PersOrario} entity.
|
||||||
|
*/
|
||||||
|
@Repository
|
||||||
|
public interface PersOrarioRepository extends JpaRepository<PersOrario, Integer> {
|
||||||
|
|
||||||
|
Optional<PersOrario> findOneByCf(String cf);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,215 @@
|
||||||
|
package it.cnr.isti.epasmed.service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import it.cnr.isti.epasmed.domain.PersOrario;
|
||||||
|
import it.cnr.isti.epasmed.repository.PersOrarioRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Service class for managing PersOrario.
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Transactional("epasMedTransactionManager")
|
||||||
|
public class PersOrarioService {
|
||||||
|
|
||||||
|
private final Logger log = LoggerFactory.getLogger(PersOrarioService.class);
|
||||||
|
|
||||||
|
private final PersOrarioRepository persOrarioRepository;
|
||||||
|
|
||||||
|
public PersOrarioService(PersOrarioRepository persOrarioRepository) {
|
||||||
|
this.persOrarioRepository = persOrarioRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "epasMedTransactionManager", readOnly = true)
|
||||||
|
public Page<PersOrario> getAllPersOrario(Pageable pageable) {
|
||||||
|
log.debug("PersOrarioService getAllPersOrario(): {}", pageable);
|
||||||
|
persOrarioRepository.findAll();
|
||||||
|
return persOrarioRepository.findAll(pageable);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "epasMedTransactionManager", readOnly = true)
|
||||||
|
public List<PersOrario> getAllPersOrario() {
|
||||||
|
log.debug("PersOrarioService getAllPersOrario()");
|
||||||
|
return persOrarioRepository.findAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional(value = "epasMedTransactionManager", readOnly = true)
|
||||||
|
public Optional<PersOrario> getPersOrarioById(Integer id) {
|
||||||
|
return persOrarioRepository.findById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public PersOrario createPersOrario(PersOrario persOrarioDTO) {
|
||||||
|
log.debug("Creating new PersOrario: {}", persOrarioDTO);
|
||||||
|
PersOrario persOrario = new PersOrario();
|
||||||
|
persOrario.setId(persOrarioDTO.getId());
|
||||||
|
persOrario.setIdPersona(persOrarioDTO.getIdPersona());
|
||||||
|
persOrario.setCf(persOrarioDTO.getCf());
|
||||||
|
persOrario.setDal(persOrarioDTO.getDal());
|
||||||
|
persOrario.setAl(persOrarioDTO.getAl());
|
||||||
|
persOrario.setDescrizione(persOrarioDTO.getDescrizione());
|
||||||
|
persOrario.setLun(persOrarioDTO.getLun());
|
||||||
|
persOrario.setMar(persOrarioDTO.getMar());
|
||||||
|
persOrario.setMer(persOrarioDTO.getMer());
|
||||||
|
persOrario.setGio(persOrarioDTO.getGio());
|
||||||
|
persOrario.setVen(persOrarioDTO.getVen());
|
||||||
|
persOrario.setSab(persOrarioDTO.getSab());
|
||||||
|
persOrario.setPercentuale(persOrarioDTO.getPercentuale());
|
||||||
|
persOrario.setTurno(persOrarioDTO.getTurno());
|
||||||
|
persOrario.setOreTurno(persOrarioDTO.getOreTurno());
|
||||||
|
persOrario.setFestivo(persOrarioDTO.getFestivo());
|
||||||
|
persOrario.setNotturno(persOrarioDTO.getNotturno());
|
||||||
|
persOrario.setDataMod(persOrarioDTO.getDataMod());
|
||||||
|
persOrarioRepository.save(persOrario);
|
||||||
|
|
||||||
|
log.debug("Created PersOrario: {}", persOrario);
|
||||||
|
return persOrario;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update all information
|
||||||
|
*
|
||||||
|
* @param persOrarioDTO pers orario to update.
|
||||||
|
* @return updated table.
|
||||||
|
*/
|
||||||
|
public Optional<PersOrario> updatePersOrario(PersOrario persOrarioDTO) {
|
||||||
|
Optional<PersOrario> po = persOrarioRepository.findById(persOrarioDTO.getId());
|
||||||
|
if (po.isPresent()) {
|
||||||
|
PersOrario persOrario = po.get();
|
||||||
|
persOrario.setId(persOrarioDTO.getId());
|
||||||
|
persOrario.setIdPersona(persOrarioDTO.getIdPersona());
|
||||||
|
persOrario.setCf(persOrarioDTO.getCf());
|
||||||
|
persOrario.setDal(persOrarioDTO.getDal());
|
||||||
|
persOrario.setAl(persOrarioDTO.getAl());
|
||||||
|
persOrario.setDescrizione(persOrarioDTO.getDescrizione());
|
||||||
|
persOrario.setLun(persOrarioDTO.getLun());
|
||||||
|
persOrario.setMar(persOrarioDTO.getMar());
|
||||||
|
persOrario.setMer(persOrarioDTO.getMer());
|
||||||
|
persOrario.setGio(persOrarioDTO.getGio());
|
||||||
|
persOrario.setVen(persOrarioDTO.getVen());
|
||||||
|
persOrario.setSab(persOrarioDTO.getSab());
|
||||||
|
persOrario.setPercentuale(persOrarioDTO.getPercentuale());
|
||||||
|
persOrario.setTurno(persOrarioDTO.getTurno());
|
||||||
|
persOrario.setOreTurno(persOrarioDTO.getOreTurno());
|
||||||
|
persOrario.setFestivo(persOrarioDTO.getFestivo());
|
||||||
|
persOrario.setNotturno(persOrarioDTO.getNotturno());
|
||||||
|
persOrario.setDataMod(persOrarioDTO.getDataMod());
|
||||||
|
persOrario = persOrarioRepository.save(persOrario);
|
||||||
|
log.debug("Changed Information for : {}", persOrario);
|
||||||
|
return Optional.of(persOrario);
|
||||||
|
} else {
|
||||||
|
return po;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deletePersOrario(Integer id) {
|
||||||
|
persOrarioRepository.findById(id).ifPresent(perOrario -> {
|
||||||
|
persOrarioRepository.delete(perOrario);
|
||||||
|
log.debug("Deleted PersOrario: {}", perOrario);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void updatePersOrario(String id, String idPersona, String cf, String dal, String al, String descrizione,
|
||||||
|
String lun, String mar, String mer, String gio, String ven, String sab, String percentuale, String turno,
|
||||||
|
String oreTurno, String festivo, String notturno, String dataMod) {
|
||||||
|
|
||||||
|
Optional.of(persOrarioRepository.findById(Integer.valueOf(id))).filter(Optional::isPresent).map(Optional::get)
|
||||||
|
.map(persOrario -> {
|
||||||
|
LocalDate dataI = null;
|
||||||
|
LocalDate dataF = null;
|
||||||
|
LocalDateTime dataM = null;
|
||||||
|
|
||||||
|
if (dal != null && !dal.isEmpty()) {
|
||||||
|
dataI = LocalDate.parse(dal);
|
||||||
|
}
|
||||||
|
if (al != null && !al.isEmpty()) {
|
||||||
|
dataF = LocalDate.parse(al);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dataMod != null && !dataMod.isEmpty()) {
|
||||||
|
dataM = LocalDateTime.parse(dataMod);
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer lu = null;
|
||||||
|
try {
|
||||||
|
lu = Integer.valueOf(lun);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
Integer ma = null;
|
||||||
|
try {
|
||||||
|
ma = Integer.valueOf(mar);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
Integer me = null;
|
||||||
|
try {
|
||||||
|
me = Integer.valueOf(mer);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
Integer gi = null;
|
||||||
|
try {
|
||||||
|
gi = Integer.valueOf(gio);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
Integer ve = null;
|
||||||
|
try {
|
||||||
|
ve = Integer.valueOf(ven);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
Integer sa = null;
|
||||||
|
try {
|
||||||
|
sa = Integer.valueOf(sab);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer perc = null;
|
||||||
|
try {
|
||||||
|
perc = Integer.valueOf(percentuale);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer oreTu = null;
|
||||||
|
try {
|
||||||
|
oreTu = Integer.valueOf(oreTurno);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
log.error(e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
persOrario.setIdPersona(Integer.valueOf(idPersona));
|
||||||
|
persOrario.setCf(cf);
|
||||||
|
persOrario.setDal(dataI);
|
||||||
|
persOrario.setAl(dataF);
|
||||||
|
persOrario.setDescrizione(descrizione);
|
||||||
|
persOrario.setLun(lu);
|
||||||
|
persOrario.setMar(ma);
|
||||||
|
persOrario.setMer(me);
|
||||||
|
persOrario.setGio(gi);
|
||||||
|
persOrario.setVen(ve);
|
||||||
|
persOrario.setSab(sa);
|
||||||
|
persOrario.setPercentuale(perc);
|
||||||
|
persOrario.setTurno(turno);
|
||||||
|
persOrario.setOreTurno(oreTu);
|
||||||
|
persOrario.setFestivo(festivo);
|
||||||
|
persOrario.setNotturno(notturno);
|
||||||
|
persOrario.setDataMod(dataM);
|
||||||
|
log.debug("Changed Information for PersOrario: {}", persOrario);
|
||||||
|
return persOrario;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,51 @@
|
||||||
|
package it.cnr.isti.epasmed.service.mapper;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import it.cnr.isti.epasmed.domain.PersOrario;
|
||||||
|
import it.cnr.isti.epasmed.sistemainformativo.model.SIPersOrario;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class PersOrarioMapper {
|
||||||
|
|
||||||
|
private final SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
public PersOrario siPersOrarioToPersOrario(SIPersOrario siPersOrario) {
|
||||||
|
if (siPersOrario == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
PersOrario persOrario = new PersOrario();
|
||||||
|
persOrario.setId(siPersOrario.getId());
|
||||||
|
persOrario.setIdPersona(siPersOrario.getIdpersona());
|
||||||
|
persOrario.setCf(siPersOrario.getCf());
|
||||||
|
LocalDate dataInizio = null;
|
||||||
|
if (siPersOrario.getDal() != null) {
|
||||||
|
dataInizio = LocalDate.parse(sdfDate.format(siPersOrario.getDal()));
|
||||||
|
}
|
||||||
|
LocalDate dataFine = null;
|
||||||
|
if (siPersOrario.getAl() != null) {
|
||||||
|
dataFine = LocalDate.parse(sdfDate.format(siPersOrario.getAl()));
|
||||||
|
}
|
||||||
|
|
||||||
|
persOrario.setDal(dataInizio);
|
||||||
|
persOrario.setAl(dataFine);
|
||||||
|
persOrario.setDescrizione(siPersOrario.getDescrizione());
|
||||||
|
persOrario.setLun(siPersOrario.getLun());
|
||||||
|
persOrario.setMar(siPersOrario.getMar());
|
||||||
|
persOrario.setMer(siPersOrario.getMer());
|
||||||
|
persOrario.setGio(siPersOrario.getGio());
|
||||||
|
persOrario.setVen(siPersOrario.getVen());
|
||||||
|
persOrario.setSab(siPersOrario.getSab());
|
||||||
|
persOrario.setPercentuale(siPersOrario.getPercentuale());
|
||||||
|
persOrario.setTurno(siPersOrario.getTurno());
|
||||||
|
persOrario.setOreTurno(siPersOrario.getOre_turno());
|
||||||
|
persOrario.setFestivo(siPersOrario.getFestivo());
|
||||||
|
persOrario.setNotturno(siPersOrario.getNotturno());
|
||||||
|
persOrario.setDataMod(siPersOrario.getData_mod().toLocalDateTime());
|
||||||
|
return persOrario;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import it.cnr.isti.epasmed.domain.Leaves;
|
import it.cnr.isti.epasmed.domain.Leaves;
|
||||||
|
import it.cnr.isti.epasmed.domain.PersOrario;
|
||||||
import it.cnr.isti.epasmed.domain.TabsSI;
|
import it.cnr.isti.epasmed.domain.TabsSI;
|
||||||
import it.cnr.isti.epasmed.domain.TimeCardsReporting;
|
import it.cnr.isti.epasmed.domain.TimeCardsReporting;
|
||||||
import it.cnr.isti.epasmed.epas.dto.EPASAffiliationsDTO;
|
import it.cnr.isti.epasmed.epas.dto.EPASAffiliationsDTO;
|
||||||
|
@ -58,9 +59,11 @@ import it.cnr.isti.epasmed.epas.service.EPASTimeCardsService;
|
||||||
import it.cnr.isti.epasmed.epas.service.EPASValidatesService;
|
import it.cnr.isti.epasmed.epas.service.EPASValidatesService;
|
||||||
import it.cnr.isti.epasmed.epas.service.EPASWorkingTimeTypesService;
|
import it.cnr.isti.epasmed.epas.service.EPASWorkingTimeTypesService;
|
||||||
import it.cnr.isti.epasmed.service.LeavesService;
|
import it.cnr.isti.epasmed.service.LeavesService;
|
||||||
|
import it.cnr.isti.epasmed.service.PersOrarioService;
|
||||||
import it.cnr.isti.epasmed.service.TabsSIService;
|
import it.cnr.isti.epasmed.service.TabsSIService;
|
||||||
import it.cnr.isti.epasmed.service.TimeCardsReportingService;
|
import it.cnr.isti.epasmed.service.TimeCardsReportingService;
|
||||||
import it.cnr.isti.epasmed.service.mapper.LeavesMapper;
|
import it.cnr.isti.epasmed.service.mapper.LeavesMapper;
|
||||||
|
import it.cnr.isti.epasmed.service.mapper.PersOrarioMapper;
|
||||||
import it.cnr.isti.epasmed.sistemainformativo.model.SIAnagrafico;
|
import it.cnr.isti.epasmed.sistemainformativo.model.SIAnagrafico;
|
||||||
import it.cnr.isti.epasmed.sistemainformativo.model.SIAspettative;
|
import it.cnr.isti.epasmed.sistemainformativo.model.SIAspettative;
|
||||||
import it.cnr.isti.epasmed.sistemainformativo.model.SICartellini;
|
import it.cnr.isti.epasmed.sistemainformativo.model.SICartellini;
|
||||||
|
@ -112,7 +115,11 @@ public class SyncService {
|
||||||
LeavesService leavesService;
|
LeavesService leavesService;
|
||||||
@Autowired
|
@Autowired
|
||||||
LeavesMapper leavesMapper;
|
LeavesMapper leavesMapper;
|
||||||
|
@Autowired
|
||||||
|
PersOrarioService persOrarioService;
|
||||||
|
@Autowired
|
||||||
|
PersOrarioMapper persOrarioMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
SIMasterLogService siMasterLogService;
|
SIMasterLogService siMasterLogService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -1421,7 +1428,8 @@ public class SyncService {
|
||||||
} else {
|
} else {
|
||||||
logger.info("PersonWorkingTimeDTOList size: {}", epasPersonWorkingTimeDTOList.size());
|
logger.info("PersonWorkingTimeDTOList size: {}", epasPersonWorkingTimeDTOList.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int count=0;
|
||||||
// SI
|
// SI
|
||||||
for (EPASPersonWorkingTimeDTO pwtDTO : epasPersonWorkingTimeDTOList) {
|
for (EPASPersonWorkingTimeDTO pwtDTO : epasPersonWorkingTimeDTOList) {
|
||||||
logger.info("Writing Person Working Time: {}", pwtDTO);
|
logger.info("Writing Person Working Time: {}", pwtDTO);
|
||||||
|
@ -1491,22 +1499,55 @@ public class SyncService {
|
||||||
LocalDateTime dMod = now.truncatedTo(ChronoUnit.SECONDS);
|
LocalDateTime dMod = now.truncatedTo(ChronoUnit.SECONDS);
|
||||||
Timestamp dataMod = Timestamp.valueOf(dMod);
|
Timestamp dataMod = Timestamp.valueOf(dMod);
|
||||||
|
|
||||||
|
|
||||||
SIPersOrario siPersOrario = new SIPersOrario(id, idPersona, pwtDTO.getCf(), startDate, endDate,
|
SIPersOrario siPersOrario = new SIPersOrario(id, idPersona, pwtDTO.getCf(), startDate, endDate,
|
||||||
pwtDTO.getDescrizione(), pwtDTO.getLun(), pwtDTO.getMar(), pwtDTO.getMer(), pwtDTO.getGio(),
|
pwtDTO.getDescrizione(), pwtDTO.getLun(), pwtDTO.getMar(), pwtDTO.getMer(), pwtDTO.getGio(),
|
||||||
pwtDTO.getVen(), pwtDTO.getSab(), pwtDTO.getPercentuale(), pwtDTO.getTurno(), pwtDTO.getOre_turno(),
|
pwtDTO.getVen(), pwtDTO.getSab(), pwtDTO.getPercentuale(), pwtDTO.getTurno(), pwtDTO.getOre_turno(),
|
||||||
pwtDTO.getFestivo(), pwtDTO.getNotturno(), dataMod, SI_FLAG_DEL_FALSE, fluxId);
|
pwtDTO.getFestivo(), pwtDTO.getNotturno(), dataMod, SI_FLAG_DEL_FALSE, fluxId);
|
||||||
logger.info("Write SIPersOrario: {}", siPersOrario);
|
|
||||||
siPersOrarioService.writeNewFlux(fluxId, siPersOrario);
|
if (checkSIPersOrarioIsUpgradeable(siPersOrario)) {
|
||||||
|
logger.info("Write SIPersOrario: {}", siPersOrario);
|
||||||
|
count=count+1;
|
||||||
|
siPersOrarioService.writeNewFlux(fluxId, siPersOrario);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
logger.info("Peronale Orario scritto su SI: {}",count);
|
||||||
|
|
||||||
logger.info("SIPersOrario Updated");
|
logger.info("SIPersOrario Updated");
|
||||||
|
|
||||||
bpers_orario = true;
|
bpers_orario = true;
|
||||||
tab.setIdFlusso(fluxId);
|
tab.setIdFlusso(fluxId);
|
||||||
tab.setLastUpdate(now);
|
tab.setLastUpdate(now);
|
||||||
tabsSIService.updateTabsSI(tab);
|
tabsSIService.updateTabsSI(tab);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean checkSIPersOrarioIsUpgradeable(SIPersOrario siPersOrario) {
|
||||||
|
boolean upgradeable = false;
|
||||||
|
try {
|
||||||
|
Optional<PersOrario> persOrario = persOrarioService.getPersOrarioById(siPersOrario.getId());
|
||||||
|
if (persOrario.isPresent()) {
|
||||||
|
PersOrario found = persOrario.get();
|
||||||
|
PersOrario persOrarioDTO = persOrarioMapper.siPersOrarioToPersOrario(siPersOrario);
|
||||||
|
if (!found.same(persOrarioDTO)) {
|
||||||
|
upgradeable = true;
|
||||||
|
persOrarioService.updatePersOrario(persOrarioDTO);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
upgradeable = true;
|
||||||
|
PersOrario persOrarioDTO = persOrarioMapper.siPersOrarioToPersOrario(siPersOrario);
|
||||||
|
persOrarioService.createPersOrario(persOrarioDTO);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error("Error in check SI Per Orario: {}", e.getLocalizedMessage(), e);
|
||||||
|
}
|
||||||
|
|
||||||
|
return upgradeable;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void syncCartelliniRendicontazioni(Long fluxId, TabsSI tab, String year, String month, LocalDateTime now,
|
private void syncCartelliniRendicontazioni(Long fluxId, TabsSI tab, String year, String month, LocalDateTime now,
|
||||||
TimeCardsReporting timeCardsReporting) throws Exception {
|
TimeCardsReporting timeCardsReporting) throws Exception {
|
||||||
|
@ -1762,8 +1803,6 @@ public class SyncService {
|
||||||
if (epasPersonDay.getAbsences() != null && epasPersonDay.getAbsences().length > 0) {
|
if (epasPersonDay.getAbsences() != null && epasPersonDay.getAbsences().length > 0) {
|
||||||
for (EPASAbsences epasAbsences : epasPersonDay.getAbsences()) {
|
for (EPASAbsences epasAbsences : epasPersonDay.getAbsences()) {
|
||||||
motivo.append("[");
|
motivo.append("[");
|
||||||
// motivo.append(epasAbsences.getJustifiedType());
|
|
||||||
// motivo.append("-");
|
|
||||||
motivo.append(epasAbsences.getCode());
|
motivo.append(epasAbsences.getCode());
|
||||||
|
|
||||||
if (epasAbsenceTypeMap != null && !epasAbsenceTypeMap.isEmpty()) {
|
if (epasAbsenceTypeMap != null && !epasAbsenceTypeMap.isEmpty()) {
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class LeavesResource {
|
||||||
*
|
*
|
||||||
* @param leavesDTO Leave to create.
|
* @param leavesDTO Leave to create.
|
||||||
* @return the {@link ResponseEntity} with status {@code 201 (Created)} and with
|
* @return the {@link ResponseEntity} with status {@code 201 (Created)} and with
|
||||||
* body the new table SI, or with status {@code 400 (Bad Request)} if
|
* body the new Leave, or with status {@code 400 (Bad Request)} if
|
||||||
* the id is already in use.
|
* the id is already in use.
|
||||||
* @throws URISyntaxException if the Location URI syntax is incorrect.
|
* @throws URISyntaxException if the Location URI syntax is incorrect.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,167 @@
|
||||||
|
package it.cnr.isti.epasmed.web.rest;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.data.domain.Page;
|
||||||
|
import org.springframework.data.domain.Pageable;
|
||||||
|
import org.springframework.data.domain.Sort;
|
||||||
|
import org.springframework.http.HttpHeaders;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PutMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
|
||||||
|
|
||||||
|
import io.github.jhipster.web.util.HeaderUtil;
|
||||||
|
import io.github.jhipster.web.util.PaginationUtil;
|
||||||
|
import io.github.jhipster.web.util.ResponseUtil;
|
||||||
|
import it.cnr.isti.epasmed.config.Constants;
|
||||||
|
import it.cnr.isti.epasmed.domain.Leaves;
|
||||||
|
import it.cnr.isti.epasmed.domain.PersOrario;
|
||||||
|
import it.cnr.isti.epasmed.security.AuthoritiesConstants;
|
||||||
|
import it.cnr.isti.epasmed.service.PersOrarioService;
|
||||||
|
import it.cnr.isti.epasmed.web.rest.errors.BadRequestAlertException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* REST controller for managing PersOrario.
|
||||||
|
* <p>
|
||||||
|
* This class accesses the {@link Leaves} entity.
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/api")
|
||||||
|
public class PersOrarioResource {
|
||||||
|
private static final List<String> ALLOWED_ORDERED_PROPERTIES = Collections
|
||||||
|
.unmodifiableList(Arrays.asList("id", "idPersona", "cf", "dal",
|
||||||
|
"al","descrizione","dataMod"));
|
||||||
|
|
||||||
|
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(PersOrarioResource.class);
|
||||||
|
|
||||||
|
@Value("${jhipster.clientApp.name}")
|
||||||
|
private String applicationName;
|
||||||
|
|
||||||
|
private final PersOrarioService persOrarioService;
|
||||||
|
|
||||||
|
public PersOrarioResource(PersOrarioService persOrarioService) {
|
||||||
|
this.persOrarioService = persOrarioService;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code GET /persorario} : get all pers orario.
|
||||||
|
*
|
||||||
|
* @param pageable the pagination information.
|
||||||
|
* @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body
|
||||||
|
* all pers orario.
|
||||||
|
*/
|
||||||
|
@GetMapping("/persorario")
|
||||||
|
public ResponseEntity<List<PersOrario>> getAllPersOrario(Pageable pageable) {
|
||||||
|
logger.info("REST request to read PersOrario : {}", pageable);
|
||||||
|
|
||||||
|
if (!onlyContainsAllowedProperties(pageable)) {
|
||||||
|
return ResponseEntity.badRequest().build();
|
||||||
|
}
|
||||||
|
|
||||||
|
final Page<PersOrario> page = persOrarioService.getAllPersOrario(pageable);
|
||||||
|
HttpHeaders headers = PaginationUtil
|
||||||
|
.generatePaginationHttpHeaders(ServletUriComponentsBuilder.fromCurrentRequest(), page);
|
||||||
|
return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean onlyContainsAllowedProperties(Pageable pageable) {
|
||||||
|
return pageable.getSort().stream().map(Sort.Order::getProperty).allMatch(ALLOWED_ORDERED_PROPERTIES::contains);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code POST /persorario} : Creates a new pers orario.
|
||||||
|
* <p>
|
||||||
|
*
|
||||||
|
* @param persOrarioDTO PersOrario to create.
|
||||||
|
* @return the {@link ResponseEntity} with status {@code 201 (Created)} and with
|
||||||
|
* body the new PersOrario, or with status {@code 400 (Bad Request)} if
|
||||||
|
* the id is already in use.
|
||||||
|
* @throws URISyntaxException if the Location URI syntax is incorrect.
|
||||||
|
*/
|
||||||
|
@PostMapping("/persorario")
|
||||||
|
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||||
|
public ResponseEntity<PersOrario> createPersOrario(@Valid @RequestBody PersOrario persOrarioDTO) throws URISyntaxException {
|
||||||
|
logger.info("REST request to save PersOrario : {}", persOrarioDTO);
|
||||||
|
|
||||||
|
if (persOrarioDTO.getId() != null) {
|
||||||
|
throw new BadRequestAlertException("A new pers orario cannot already have an ID", "PersOrario", "idexists");
|
||||||
|
} else {
|
||||||
|
PersOrario persOrario = persOrarioService.createPersOrario(persOrarioDTO);
|
||||||
|
return ResponseEntity.created(new URI("/api/persorario/" + persOrario.getId())).headers(HeaderUtil
|
||||||
|
.createAlert(applicationName, "A pers orario is created with identifier " + persOrario.getId(), persOrario.getCf()))
|
||||||
|
.body(persOrario);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code PUT /persorario} : Updates pers orario.
|
||||||
|
*
|
||||||
|
* @param persOrarioDTO the pers orario to update.
|
||||||
|
* @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body
|
||||||
|
* the updated pers orario.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@PutMapping("/persorario")
|
||||||
|
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||||
|
public ResponseEntity<PersOrario> updatePersOrario(@Valid @RequestBody PersOrario persOrarioDTO) {
|
||||||
|
logger.debug("REST request to update PersOrario : {}", persOrarioDTO);
|
||||||
|
Optional<PersOrario> updatedLeaves = persOrarioService.updatePersOrario(persOrarioDTO);
|
||||||
|
|
||||||
|
return ResponseUtil.wrapOrNotFound(updatedLeaves, HeaderUtil.createAlert(applicationName,
|
||||||
|
"A pers orario is updated with identifier " + persOrarioDTO.getId(), persOrarioDTO.getCf()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code GET /persorario/:id} : get the "id" of pers orario.
|
||||||
|
*
|
||||||
|
* @param id the id of the pers orario to find.
|
||||||
|
* @return the {@link ResponseEntity} with status {@code 200 (OK)} and with body
|
||||||
|
* the pers orario, or with status {@code 404 (Not Found)}.
|
||||||
|
*/
|
||||||
|
@GetMapping("/persorario/{id:" + Constants.VALID_NUMBER_REGEX + "}")
|
||||||
|
public ResponseEntity<PersOrario> getPersOrario(@PathVariable String id) {
|
||||||
|
logger.debug("REST request to get Pers Orario : {}", id);
|
||||||
|
return ResponseUtil.wrapOrNotFound(persOrarioService.getPersOrarioById(Integer.valueOf(id)));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* {@code DELETE /persorario/:id} : delete the "id" Leave.
|
||||||
|
*
|
||||||
|
* @param id the id of the pers orario to delete.
|
||||||
|
* @return the {@link ResponseEntity} with status {@code 204 (NO_CONTENT)}.
|
||||||
|
*/
|
||||||
|
@DeleteMapping("/persorario/{id:" + Constants.VALID_NUMBER_REGEX + "}")
|
||||||
|
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||||
|
public ResponseEntity<Void> deletePersOrario(@PathVariable String id) {
|
||||||
|
logger.debug("REST request to delete Pers Orario id: {}", id);
|
||||||
|
persOrarioService.deletePersOrario(Integer.valueOf(id));
|
||||||
|
return ResponseEntity.noContent()
|
||||||
|
.headers(HeaderUtil.createAlert(applicationName, "A Pers Orario is deleted with identifier " + id, id))
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -240,4 +240,32 @@
|
||||||
<column name="data_mod" type="timestamp" />
|
<column name="data_mod" type="timestamp" />
|
||||||
</createTable>
|
</createTable>
|
||||||
</changeSet>
|
</changeSet>
|
||||||
|
|
||||||
|
<changeSet id="00000000000005" author="jhipster">
|
||||||
|
|
||||||
|
<createTable tableName="persorario">
|
||||||
|
<column name="id" type="int">
|
||||||
|
<constraints primaryKey="true"
|
||||||
|
primaryKeyName="persorario_id" />
|
||||||
|
</column>
|
||||||
|
<column name="id_persona" type="int" />
|
||||||
|
<column name="cf" type="varchar(16)" />
|
||||||
|
<column name="dal" type="date" />
|
||||||
|
<column name="al" type="date" />
|
||||||
|
<column name="descrizione" type="varchar(100)" />
|
||||||
|
<column name="lun" type="int" />
|
||||||
|
<column name="mar" type="int" />
|
||||||
|
<column name="mer" type="int" />
|
||||||
|
<column name="gio" type="int" />
|
||||||
|
<column name="ven" type="int" />
|
||||||
|
<column name="sab" type="int" />
|
||||||
|
<column name="percentuale" type="int" />
|
||||||
|
<column name="turno" type="char(2)" />
|
||||||
|
<column name="ore_turno" type="int" />
|
||||||
|
<column name="festivo" type="char(2)" />
|
||||||
|
<column name="notturno" type="char(2)" />
|
||||||
|
<column name="data_mod" type="timestamp" />
|
||||||
|
</createTable>
|
||||||
|
</changeSet>
|
||||||
|
|
||||||
</databaseChangeLog>
|
</databaseChangeLog>
|
||||||
|
|
Loading…
Reference in New Issue