Aggiornata sincronizzazione
This commit is contained in:
parent
c81a54f25b
commit
1ffb8c4a82
|
@ -15,6 +15,7 @@ import org.springframework.stereotype.Component;
|
|||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import it.cnr.isti.epasmed.config.ApplicationProperties;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASOffSiteWorks;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASPersonDays;
|
||||
|
||||
@Component
|
||||
|
@ -79,20 +80,21 @@ public class EPASOffSiteWorksClient {
|
|||
return listEPASPersonDays;
|
||||
}
|
||||
|
||||
public List<EPASPersonDays> getListByOfficeCodeId(String id, String year, String month) {
|
||||
|
||||
public List<EPASOffSiteWorks> getListByOfficeCodeId(String id, String year, String month) {
|
||||
log.info("Retrieving Off Site Works List by office code id: {}", id);
|
||||
Map<String, String> uriVariables = new HashMap<>();
|
||||
uriVariables.put("sedeId", id);
|
||||
uriVariables.put("year", year);
|
||||
uriVariables.put("month", month);
|
||||
|
||||
ResponseEntity<List<EPASPersonDays>> responseEntity = rt.exchange(appProps.getDatasourceEpasRest().getRestUrl()
|
||||
+ "/v3/personDays/offSiteWorkByPersonAndMonth?sedeId={sedeId}&year={year}&month={month}",
|
||||
HttpMethod.GET, null, new ParameterizedTypeReference<List<EPASPersonDays>>() {
|
||||
ResponseEntity<List<EPASOffSiteWorks>> responseEntity = rt.exchange(appProps.getDatasourceEpasRest().getRestUrl()
|
||||
+ "/v3/personDays/offSiteWorkByOfficeAndMonth?sedeId={sedeId}&year={year}&month={month}",
|
||||
HttpMethod.GET, null, new ParameterizedTypeReference<List<EPASOffSiteWorks>>() {
|
||||
}, uriVariables);
|
||||
List<EPASPersonDays> listEPASPersonDays = responseEntity.getBody();
|
||||
log.info("Retrieved Off Site Works List: {}", listEPASPersonDays);
|
||||
return listEPASPersonDays;
|
||||
List<EPASOffSiteWorks> listEPASOffSiteWorks = responseEntity.getBody();
|
||||
log.info("Retrieved Off Site Works List: {}", listEPASOffSiteWorks);
|
||||
return listEPASOffSiteWorks;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package it.cnr.isti.epasmed.epas.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class EPASOffSiteWorks implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private EPASAbsences[] absences;
|
||||
private String date;
|
||||
private Integer difference;
|
||||
private String id;
|
||||
private Boolean isHoliday;
|
||||
private Boolean isTicketAvailable;
|
||||
private EPASPersons person;
|
||||
private Integer progressive;
|
||||
private EPASStampings[] stampings;
|
||||
private Integer timeAtWork;
|
||||
|
||||
}
|
|
@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import it.cnr.isti.epasmed.epas.client.EPASOffSiteWorksClient;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASOffSiteWorks;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASPersonDays;
|
||||
|
||||
@Service
|
||||
|
@ -26,7 +27,7 @@ public class EPASOffSiteWorksService {
|
|||
return epasOffSiteWorksClient.getListByPersonEmail(email, year, month);
|
||||
}
|
||||
|
||||
public List<EPASPersonDays> getListByOfficeCodeId(String id, String year, String month) {
|
||||
public List<EPASOffSiteWorks> getListByOfficeCodeId(String id, String year, String month) {
|
||||
return epasOffSiteWorksClient.getListByOfficeCodeId(id, year, month);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package it.cnr.isti.epasmed.sistemainformativo.model;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.sql.Timestamp;
|
||||
import java.sql.Date;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SILavoroFuoriSede implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
private Long id;
|
||||
private Integer idpersona;
|
||||
private String cf;
|
||||
private Date giorno;
|
||||
private String luogo;
|
||||
private String motivo;
|
||||
private String way;
|
||||
private Timestamp data_mod;
|
||||
private String flag_del;
|
||||
private Long id_flusso;
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package it.cnr.isti.epasmed.sistemainformativo.repository;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.jdbc.core.JdbcTemplate;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SILavoroFuoriSede;
|
||||
|
||||
@Repository
|
||||
public class SILavoroFuoriSedeRepository {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(SILavoroFuoriSedeRepository.class);
|
||||
|
||||
private JdbcTemplate jdbcTemplate;
|
||||
|
||||
//
|
||||
public SILavoroFuoriSedeRepository(final @Qualifier("sistemaInformativoDataSource") DataSource dataSource) {
|
||||
super();
|
||||
this.jdbcTemplate = new JdbcTemplate(dataSource);
|
||||
}
|
||||
|
||||
public void writeNewFlux(Long fluxId, SILavoroFuoriSede siLavoroFuoriSede) {
|
||||
jdbcTemplate.update("INSERT INTO epas_lavoro_fuori_sede (id,idpersona,cf,"
|
||||
+ "giorno,luogo,motivo,way,data_mod,flag_del,id_flusso) "
|
||||
+ "VALUES (?,?,?,?,?,?,?,?,?,?)",
|
||||
siLavoroFuoriSede.getId(),siLavoroFuoriSede.getIdpersona(),siLavoroFuoriSede.getCf(),
|
||||
siLavoroFuoriSede.getGiorno(),siLavoroFuoriSede.getLuogo(),siLavoroFuoriSede.getMotivo(),
|
||||
siLavoroFuoriSede.getWay(),siLavoroFuoriSede.getData_mod(),siLavoroFuoriSede.getFlag_del(),fluxId);
|
||||
logger.debug("Writed SILavoroFuoriSede: {}",siLavoroFuoriSede);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -34,7 +34,7 @@ public class SIMasterLogRepository {
|
|||
public void startFluxReads() {
|
||||
logger.info("Iniziato Flusso in lettura");
|
||||
jdbcTemplate.update("INSERT INTO master_log (codice_flusso, tabelle, operazione, data_inizio_oper) "
|
||||
+ "VALUES ('epas','anagrafico,mail,telefoni,gruppi','L',current_timestamp)");
|
||||
+ "VALUES ('epas','anagrafico,mail,telefoni,gruppi,gruppo_pers','L',current_timestamp)");
|
||||
logger.info("Flusso in lettura aperto");
|
||||
|
||||
}
|
||||
|
@ -75,8 +75,8 @@ public class SIMasterLogRepository {
|
|||
public Long startFluxWrites() throws Exception {
|
||||
logger.info("Iniziato Flusso in scrittura");
|
||||
jdbcTemplate.update("INSERT INTO master_log (codice_flusso, tabelle, operazione, data_inizio_oper)"
|
||||
+ " VALUES ('epas','epas_cartellini, epas_cartellini_rendicontazioni, epas_festivita,"
|
||||
+ " epas_orario, epas_pers_orario,"
|
||||
+ " VALUES ('epas','epas_cartellini, epas_cartellini_rendicontazioni,"
|
||||
+ " epas_orario,"
|
||||
+ " epas_lavoro_fuori_sede',"
|
||||
+ " 'S',current_timestamp)");
|
||||
logger.info("Flusso in scrittura aperto");
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package it.cnr.isti.epasmed.sistemainformativo.service;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SILavoroFuoriSede;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.repository.SILavoroFuoriSedeRepository;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Service class for managing Lavoro Fuori Sede.
|
||||
*/
|
||||
@Service
|
||||
@Transactional("sistemaInformativoTransactionManager")
|
||||
public class SILavoroFuoriSedeService {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
private final SILavoroFuoriSedeRepository siLavoroFuoriSedeRepository;
|
||||
|
||||
public SILavoroFuoriSedeService(SILavoroFuoriSedeRepository siLavoroFuoriSedeRepository) {
|
||||
super();
|
||||
this.siLavoroFuoriSedeRepository = siLavoroFuoriSedeRepository;
|
||||
}
|
||||
|
||||
public void writeNewFlux(Long fluxId, SILavoroFuoriSede siLavoroFuoriSede) {
|
||||
log.debug("Write SILavoroFuoriSede Flux = {}",fluxId);
|
||||
siLavoroFuoriSedeRepository.writeNewFlux(fluxId,siLavoroFuoriSede);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -6,6 +6,7 @@ import java.time.LocalDateTime;
|
|||
import java.time.YearMonth;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.format.DateTimeFormatterBuilder;
|
||||
import java.time.format.DateTimeParseException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
@ -31,6 +32,7 @@ import it.cnr.isti.epasmed.epas.mapper.EPASPersonsMapper;
|
|||
import it.cnr.isti.epasmed.epas.model.EPASAbsences;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASAffiliations;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASGroups;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASOffSiteWorks;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASPersonDays;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASPersons;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASStampings;
|
||||
|
@ -39,6 +41,7 @@ import it.cnr.isti.epasmed.epas.model.EPASValidates;
|
|||
import it.cnr.isti.epasmed.epas.model.EPASWorkingTimeTypes;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASAffiliationsService;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASGroupsService;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASOffSiteWorksService;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASPersonsService;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASTimeCardsService;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASValidatesService;
|
||||
|
@ -51,6 +54,7 @@ import it.cnr.isti.epasmed.sistemainformativo.model.SICartelliniRendicontazioni;
|
|||
import it.cnr.isti.epasmed.sistemainformativo.model.SIEmail;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SIGruppi;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SIGruppiPers;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SILavoroFuoriSede;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SIOrario;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.model.SITelefoni;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SIAnagraficoService;
|
||||
|
@ -59,6 +63,7 @@ import it.cnr.isti.epasmed.sistemainformativo.service.SICartelliniService;
|
|||
import it.cnr.isti.epasmed.sistemainformativo.service.SIEmailService;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SIGruppiPersService;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SIGruppiService;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SILavoroFuoriSedeService;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SIMasterLogService;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SIOrarioService;
|
||||
import it.cnr.isti.epasmed.sistemainformativo.service.SITelefoniService;
|
||||
|
@ -103,6 +108,8 @@ public class SyncService {
|
|||
SICartelliniRendicontazioniService siCartelliniRendicontazioniService;
|
||||
@Autowired
|
||||
SIOrarioService siOrarioService;
|
||||
@Autowired
|
||||
SILavoroFuoriSedeService siLavoroFuoriSedeService;
|
||||
|
||||
@Autowired
|
||||
EPASPersonsService epasPersonsService;
|
||||
|
@ -114,11 +121,12 @@ public class SyncService {
|
|||
EPASAffiliationsService epasAffiliationsService;
|
||||
@Autowired
|
||||
EPASWorkingTimeTypesService epasWorkingTimeTypesService;
|
||||
|
||||
@Autowired
|
||||
EPASTimeCardsService epasTimeCardsService;
|
||||
@Autowired
|
||||
EPASValidatesService epasValidatesService;
|
||||
@Autowired
|
||||
EPASOffSiteWorksService epasOffSiteWorksService;
|
||||
|
||||
private boolean banagrafico;
|
||||
private boolean bemail;
|
||||
|
@ -134,15 +142,25 @@ public class SyncService {
|
|||
private boolean blavoro_fuori_sede;
|
||||
private boolean baspettative;
|
||||
|
||||
public void executeReads() throws Exception {
|
||||
private void setBReadTables() {
|
||||
banagrafico = false;
|
||||
bemail = false;
|
||||
btelefoni = false;
|
||||
bgruppi = false;
|
||||
bgruppo_pers = false;
|
||||
// bposizioni = false;
|
||||
// bproroghe = false;
|
||||
}
|
||||
|
||||
private void setBWriteTables() {
|
||||
bcartellini = false;
|
||||
bcartellini_rendicontazioni = false;
|
||||
borario = false;
|
||||
bpers_orario = false;
|
||||
blavoro_fuori_sede = false;
|
||||
// baspettative=false;
|
||||
}
|
||||
|
||||
public void executeReads() throws Exception {
|
||||
setBReadTables();
|
||||
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||
siMasterLogService.startFluxReads();
|
||||
readData(tabsSI);
|
||||
|
@ -150,36 +168,42 @@ public class SyncService {
|
|||
|
||||
}
|
||||
|
||||
public void executeWrites() throws Exception {
|
||||
borario = false;
|
||||
bcartellini = false;
|
||||
bcartellini_rendicontazioni = false;
|
||||
bpers_orario = false;
|
||||
blavoro_fuori_sede = false;
|
||||
baspettative = false;
|
||||
|
||||
public void executeWrites(String year, String month) throws Exception {
|
||||
setBWriteTables();
|
||||
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||
Long fluxId = siMasterLogService.startFluxWrites();
|
||||
writeData(fluxId, tabsSI);
|
||||
writeData(fluxId, tabsSI, year, month);
|
||||
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
||||
}
|
||||
|
||||
public void executeWritesOrario() throws Exception {
|
||||
setBWriteTables();
|
||||
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||
Long fluxId = siMasterLogService.startFluxWrites();
|
||||
writeOrarioData(fluxId, tabsSI);
|
||||
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
||||
|
||||
}
|
||||
|
||||
public void executeTimeCardsWrites() throws Exception {
|
||||
borario = false;
|
||||
bcartellini = false;
|
||||
bcartellini_rendicontazioni = false;
|
||||
bpers_orario = false;
|
||||
blavoro_fuori_sede = false;
|
||||
baspettative = false;
|
||||
|
||||
public void executeWritesTimeCards(String year, String month) throws Exception {
|
||||
setBWriteTables();
|
||||
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||
Long fluxId = siMasterLogService.startFluxWrites();
|
||||
writeTimeCardsData(fluxId, tabsSI);
|
||||
writeTimeCardsData(fluxId, tabsSI, year, month);
|
||||
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
||||
|
||||
}
|
||||
|
||||
public void executeWriteOffSiteWorks(String year, String month) throws Exception {
|
||||
setBWriteTables();
|
||||
List<TabsSI> tabsSI = tabsSIService.getAllTabsSI();
|
||||
Long fluxId = siMasterLogService.startFluxWrites();
|
||||
writeOffSiteWorksData(fluxId, tabsSI, year, month);
|
||||
siMasterLogService.closeFluxWrites(fluxId, writeTabs());
|
||||
|
||||
}
|
||||
|
||||
|
||||
private void readData(List<TabsSI> tabsSI) {
|
||||
// TabsSI posizioniTab = null;
|
||||
// TabsSI prorogheTab = null;
|
||||
|
@ -780,8 +804,7 @@ public class SyncService {
|
|||
return writeTabs;
|
||||
}
|
||||
|
||||
private void writeData(Long fluxId, List<TabsSI> tabsSI) {
|
||||
|
||||
private void writeOrarioData(Long fluxId, List<TabsSI> tabsSI) {
|
||||
for (TabsSI tab : tabsSI) {
|
||||
logger.info("TabSI: {}", tab);
|
||||
if (tab.getOperazioni() != null && !tab.getOperazioni().isEmpty()
|
||||
|
@ -816,7 +839,11 @@ public class SyncService {
|
|||
}
|
||||
}
|
||||
|
||||
private void writeTimeCardsData(Long fluxId, List<TabsSI> tabsSI) throws Exception {
|
||||
private void writeData(Long fluxId, List<TabsSI> tabsSI, String year, String month) throws Exception {
|
||||
logger.info("Report {}-{}", year, month);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
checkValidMonthToSend(year, month);
|
||||
TimeCardsReporting timeCardsReporting = createTimeCardReporting(fluxId, year, month, now);
|
||||
|
||||
for (TabsSI tab : tabsSI) {
|
||||
logger.info("TabSI: {}", tab);
|
||||
|
@ -836,7 +863,46 @@ public class SyncService {
|
|||
case "cartellini":
|
||||
break;
|
||||
case "cartellini_rendicontazioni":
|
||||
syncCartelliniRendicontazioni(fluxId, tab);
|
||||
syncCartelliniRendicontazioni(fluxId, tab, year, month, now, timeCardsReporting);
|
||||
break;
|
||||
case "lavoro_fuori_sede":
|
||||
syncLavoroFuoriSede(fluxId, tab, year, month, now);
|
||||
break;
|
||||
// case "aspettative":
|
||||
// syncAspettative(fluxId,tab);
|
||||
// break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void writeTimeCardsData(Long fluxId, List<TabsSI> tabsSI, String year, String month) throws Exception {
|
||||
logger.info("Report {}-{}", year, month);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
checkValidMonthToSend(year, month);
|
||||
TimeCardsReporting timeCardsReporting = createTimeCardReporting(fluxId, year, month, now);
|
||||
|
||||
for (TabsSI tab : tabsSI) {
|
||||
logger.info("TabSI: {}", tab);
|
||||
if (tab.getOperazioni() != null && !tab.getOperazioni().isEmpty()
|
||||
&& tab.getOperazioni().compareTo("W") == 0) {
|
||||
if (tab.getNome() == null || tab.getNome().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (tab.getNome()) {
|
||||
// case "orario":
|
||||
// syncOrario(fluxId, tab);
|
||||
// break;
|
||||
// case "pers_orario":
|
||||
// syncPersOrario(fluxId,tab);
|
||||
// break;
|
||||
case "cartellini":
|
||||
break;
|
||||
case "cartellini_rendicontazioni":
|
||||
syncCartelliniRendicontazioni(fluxId, tab, year, month, now, timeCardsReporting);
|
||||
break;
|
||||
// case "lavoro_fuori_sede":
|
||||
// syncLavoroFuoriSede(fluxId,tab);
|
||||
|
@ -852,6 +918,45 @@ public class SyncService {
|
|||
}
|
||||
}
|
||||
|
||||
private void writeOffSiteWorksData(Long fluxId, List<TabsSI> tabsSI, String year, String month) throws Exception {
|
||||
logger.info("Report {}-{}", year, month);
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
checkValidMonthToSend(year, month);
|
||||
|
||||
for (TabsSI tab : tabsSI) {
|
||||
logger.info("TabSI: {}", tab);
|
||||
if (tab.getOperazioni() != null && !tab.getOperazioni().isEmpty()
|
||||
&& tab.getOperazioni().compareTo("W") == 0) {
|
||||
if (tab.getNome() == null || tab.getNome().isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (tab.getNome()) {
|
||||
// case "orario":
|
||||
// syncOrario(fluxId, tab);
|
||||
// break;
|
||||
// case "pers_orario":
|
||||
// syncPersOrario(fluxId,tab);
|
||||
// break;
|
||||
// case "cartellini":
|
||||
// break;
|
||||
// case "cartellini_rendicontazioni":
|
||||
// syncCartelliniRendicontazioni(fluxId, tab);
|
||||
// break;
|
||||
case "lavoro_fuori_sede":
|
||||
syncLavoroFuoriSede(fluxId, tab, year, month, now);
|
||||
break;
|
||||
// case "aspettative":
|
||||
// syncAspettative(fluxId,tab);
|
||||
// break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void syncOrario(Long fluxId, TabsSI tab) {
|
||||
if (tab.getIdFlusso() == null || tab.getIdFlusso().longValue() == 0) {
|
||||
logger.error("Invalid Id Flusso for tab: {}", tab);
|
||||
|
@ -894,50 +999,130 @@ public class SyncService {
|
|||
}
|
||||
}
|
||||
|
||||
private void syncCartelliniRendicontazioni(Long fluxId, TabsSI tab) throws Exception {
|
||||
private void syncLavoroFuoriSede(Long fluxId, TabsSI tab, String year, String month, LocalDateTime now)
|
||||
throws Exception {
|
||||
|
||||
if (tab.getIdFlusso() == null || tab.getIdFlusso().longValue() == 0) {
|
||||
logger.error("Invalid Id Flusso for tab: {}", tab);
|
||||
return;
|
||||
}
|
||||
|
||||
Optional<TimeCardsReporting> lastTcR = timeCardsReportingService.getLastTimeCardsReporting();
|
||||
if (!lastTcR.isPresent()) {
|
||||
logger.error("Invalid TimeCardsReporting start point: {}", tab);
|
||||
logger.info("Reference: {}-{}", year, month);
|
||||
|
||||
List<EPASOffSiteWorks> epasOffSiteWorksList = epasOffSiteWorksService.getListByOfficeCodeId(ISTI_OFFICE_CODEID,
|
||||
year, month);
|
||||
|
||||
if (epasOffSiteWorksList == null || epasOffSiteWorksList.isEmpty()) {
|
||||
logger.info("OffSiteWorks not found for: {} - {} ", year, month);
|
||||
return;
|
||||
}
|
||||
Integer year = lastTcR.get().getYear();
|
||||
Integer month = lastTcR.get().getMonth();
|
||||
|
||||
YearMonth nextMonthToSent = YearMonth.of(year, month);
|
||||
nextMonthToSent = nextMonthToSent.plusMonths(1);
|
||||
// "2021-02-03T09:49:05.231072"
|
||||
DateTimeFormatter formatter = new DateTimeFormatterBuilder().parseCaseInsensitive()
|
||||
.append(DateTimeFormatter.ISO_LOCAL_DATE_TIME).optionalStart().appendPattern(".SSSSSS").optionalEnd()
|
||||
.optionalStart().appendZoneOrOffsetId().optionalEnd().toFormatter();
|
||||
|
||||
String yearRef = String.valueOf(nextMonthToSent.getYear());
|
||||
String monthRef = String.valueOf(nextMonthToSent.getMonthValue());
|
||||
// SI
|
||||
for (EPASOffSiteWorks offSiteWorks : epasOffSiteWorksList) {
|
||||
logger.info("Writing OffSiteWorks: {}", offSiteWorks);
|
||||
if (offSiteWorks == null || offSiteWorks.getPerson() == null) {
|
||||
logger.error("Invalid Off Site Works: {}", offSiteWorks);
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.info("Reference: {} - {} ", yearRef, monthRef);
|
||||
if (offSiteWorks.getPerson().getFiscalCode() == null
|
||||
|| offSiteWorks.getPerson().getFiscalCode().isEmpty()) {
|
||||
logger.error("Invalid FiscalCode: {}", offSiteWorks.getPerson().getFiscalCode());
|
||||
continue;
|
||||
} else {
|
||||
logger.info("FiscalCode: {}", offSiteWorks.getPerson().getFiscalCode());
|
||||
}
|
||||
|
||||
EPASValidates epasValidates = epasValidatesService.getValidatesByOfficeCodeId(ISTI_OFFICE_CODEID, yearRef,
|
||||
monthRef);
|
||||
Integer idPersona = 0;
|
||||
try {
|
||||
idPersona = Integer.valueOf(offSiteWorks.getPerson().getId());
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("Invalid Person Id: {}", offSiteWorks.getPerson().getId());
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.info("Date: {}", offSiteWorks.getDate());
|
||||
|
||||
java.sql.Date date = null;
|
||||
try {
|
||||
date = java.sql.Date.valueOf(offSiteWorks.getDate());
|
||||
} catch (Exception e) {
|
||||
logger.error("Invalid date format: {}", offSiteWorks.getDate());
|
||||
continue;
|
||||
}
|
||||
|
||||
for (EPASStampings epasStamping : offSiteWorks.getStampings()) {
|
||||
if (epasStamping == null) {
|
||||
logger.error("Invalid Stamping: {}", epasStamping);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (epasStamping.getStampType() != null && !epasStamping.getStampType().isEmpty()
|
||||
&& epasStamping.getStampType().compareTo("lavoroFuoriSede") == 0) {
|
||||
logger.debug("Stamping Type: {}", epasStamping.getStampType());
|
||||
|
||||
Long id = 0L;
|
||||
try {
|
||||
id = Long.valueOf(epasStamping.getId());
|
||||
} catch (NumberFormatException e) {
|
||||
logger.error("Invalid id for stamping: {}", e.getLocalizedMessage(), e);
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.debug("Stamping Data: {}", epasStamping.getDate());
|
||||
Timestamp dataMod;
|
||||
try {
|
||||
LocalDateTime dMod = LocalDateTime.parse(epasStamping.getDate(), formatter);
|
||||
dataMod = Timestamp.valueOf(dMod);
|
||||
} catch (IllegalArgumentException | DateTimeParseException e) {
|
||||
logger.error("Invalid stamping data format: {}", e.getLocalizedMessage(), e);
|
||||
continue;
|
||||
}
|
||||
logger.debug("DataMod: {}", dataMod);
|
||||
|
||||
SILavoroFuoriSede siLavoroFuoriSede = new SILavoroFuoriSede(id, idPersona,
|
||||
offSiteWorks.getPerson().getFiscalCode(), date, epasStamping.getPlace(),
|
||||
epasStamping.getReason(), epasStamping.getWay(), dataMod, SI_FLAG_DEL_FALSE, fluxId);
|
||||
|
||||
siLavoroFuoriSedeService.writeNewFlux(fluxId, siLavoroFuoriSede);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
logger.info("SILavoroFuoriSede Updated");
|
||||
|
||||
blavoro_fuori_sede = true;
|
||||
tab.setIdFlusso(fluxId);
|
||||
tab.setLastUpdate(now);
|
||||
tabsSIService.updateTabsSI(tab);
|
||||
|
||||
}
|
||||
|
||||
private void syncCartelliniRendicontazioni(Long fluxId, TabsSI tab, String year, String month, LocalDateTime now,
|
||||
TimeCardsReporting timeCardsReporting) throws Exception {
|
||||
if (tab.getIdFlusso() == null || tab.getIdFlusso().longValue() == 0) {
|
||||
logger.error("Invalid Id Flusso for tab: {}", tab);
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info("Reference: {}-{}", year, month);
|
||||
|
||||
EPASValidates epasValidates = epasValidatesService.getValidatesByOfficeCodeId(ISTI_OFFICE_CODEID, year, month);
|
||||
// if (!epasValidates.getAllCertificationsValidated()) {
|
||||
// logger.info("No month closed on EPAS: {}", nextMonthToSent);
|
||||
// return;
|
||||
// }
|
||||
|
||||
logger.info("Certifications Validated: {}", nextMonthToSent);
|
||||
// Set Update DateTime
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
Timestamp dataMod = Timestamp.valueOf(now);
|
||||
|
||||
// EPASMed
|
||||
TimeCardsReporting timeCardsReporting = new TimeCardsReporting();
|
||||
timeCardsReporting.setYear(nextMonthToSent.getYear());
|
||||
timeCardsReporting.setMonth(nextMonthToSent.getMonthValue());
|
||||
timeCardsReporting.setIdFlusso(fluxId);
|
||||
timeCardsReporting.setLastUpdate(now);
|
||||
|
||||
timeCardsReporting = timeCardsReportingService.createTimeCardsReporting(timeCardsReporting);
|
||||
|
||||
logger.info("Persons Validated: {}", epasValidates.getValidatedPersons().length);
|
||||
checkFiscalCode(epasValidates.getValidatedPersons());
|
||||
|
||||
|
@ -952,7 +1137,7 @@ public class SyncService {
|
|||
}
|
||||
|
||||
EPASTimeCards epasTimeCards = epasTimeCardsService.getTimeCardByPersonFiscalCode(person.getFiscalCode(),
|
||||
yearRef, monthRef);
|
||||
year, month);
|
||||
|
||||
EPASPersons epasPerson = epasTimeCards.getPerson();
|
||||
Integer personId = Integer.valueOf(epasPerson.getId());
|
||||
|
@ -981,19 +1166,61 @@ public class SyncService {
|
|||
logger.info("SICartellini Updated");
|
||||
|
||||
SICartelliniRendicontazioni siCartelliniRendicontazioni = new SICartelliniRendicontazioni(
|
||||
timeCardsReporting.getId(), timeCardsReporting.getYear(), timeCardsReporting.getMonth(),
|
||||
Timestamp.valueOf(timeCardsReporting.getLastUpdate()), SI_FLAG_DEL_FALSE, fluxId);
|
||||
timeCardsReporting.getId(), timeCardsReporting.getYear(), timeCardsReporting.getMonth(), dataMod,
|
||||
SI_FLAG_DEL_FALSE, fluxId);
|
||||
siCartelliniRendicontazioniService.writeNewFlux(fluxId, siCartelliniRendicontazioni);
|
||||
logger.info("SICartelliniRendicontazioni Updated");
|
||||
|
||||
bcartellini_rendicontazioni = true;
|
||||
bcartellini = true;
|
||||
bcartellini_rendicontazioni = true;
|
||||
tab.setIdFlusso(fluxId);
|
||||
tab.setLastUpdate(timeCardsReporting.getLastUpdate());
|
||||
tab.setLastUpdate(now);
|
||||
tabsSIService.updateTabsSI(tab);
|
||||
|
||||
}
|
||||
|
||||
private TimeCardsReporting createTimeCardReporting(Long fluxId, String year, String month, LocalDateTime now) {
|
||||
Integer iYear = Integer.parseInt(year);
|
||||
Integer iMonth = Integer.parseInt(month);
|
||||
|
||||
// EPASMed
|
||||
TimeCardsReporting timeCardsReporting = new TimeCardsReporting();
|
||||
timeCardsReporting.setYear(iYear);
|
||||
timeCardsReporting.setMonth(iMonth);
|
||||
timeCardsReporting.setIdFlusso(fluxId);
|
||||
timeCardsReporting.setLastUpdate(now);
|
||||
timeCardsReporting = timeCardsReportingService.createTimeCardsReporting(timeCardsReporting);
|
||||
return timeCardsReporting;
|
||||
}
|
||||
|
||||
private void checkValidMonthToSend(String year, String month) throws Exception {
|
||||
Integer iYear = Integer.valueOf(year);
|
||||
Integer iMonth = Integer.valueOf(month);
|
||||
YearMonth selectedMonth = YearMonth.of(iYear, iMonth);
|
||||
YearMonth nextMonthToSent = nextMonthToSend();
|
||||
|
||||
if (selectedMonth.compareTo(nextMonthToSent) != 0) {
|
||||
String error = "Attenzione il mese richiesto non è valido per la rendicontazione.";
|
||||
logger.error(error);
|
||||
throw new Exception(error);
|
||||
}
|
||||
}
|
||||
|
||||
private YearMonth nextMonthToSend() throws Exception {
|
||||
Optional<TimeCardsReporting> lastTcR = timeCardsReportingService.getLastTimeCardsReporting();
|
||||
if (!lastTcR.isPresent()) {
|
||||
String error = "Invalid TimeCardsReporting start point, no value found.";
|
||||
logger.error(error);
|
||||
throw new Exception(error);
|
||||
}
|
||||
Integer latestY = lastTcR.get().getYear();
|
||||
Integer latestM = lastTcR.get().getMonth();
|
||||
|
||||
YearMonth nextMonthToSent = YearMonth.of(latestY, latestM);
|
||||
nextMonthToSent = nextMonthToSent.plusMonths(1);
|
||||
return nextMonthToSent;
|
||||
}
|
||||
|
||||
private void checkFiscalCode(EPASPersons[] validatedPersons) throws Exception {
|
||||
if (validatedPersons != null && validatedPersons.length > 0) {
|
||||
ArrayList<String> personsWithInvalidFiscalCode = new ArrayList<>();
|
||||
|
@ -1031,9 +1258,8 @@ public class SyncService {
|
|||
boolean foundLavoroFuoriSede = false;
|
||||
boolean foundMotiviDiServizio = false;
|
||||
for (EPASStampings epasStamping : epasPersonDay.getStampings()) {
|
||||
if (epasStamping.getStampType()!=null&&
|
||||
!epasStamping.getStampType().isEmpty()) {
|
||||
switch(epasStamping.getStampType()) {
|
||||
if (epasStamping.getStampType() != null && !epasStamping.getStampType().isEmpty()) {
|
||||
switch (epasStamping.getStampType()) {
|
||||
case "lavoroFuoriSede":
|
||||
foundLavoroFuoriSede = true;
|
||||
break;
|
||||
|
@ -1044,7 +1270,7 @@ public class SyncService {
|
|||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (foundLavoroFuoriSede) {
|
||||
motivo.append("[Lavoro Fuori Sede]");
|
||||
|
|
|
@ -14,6 +14,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||
|
||||
import io.github.jhipster.web.util.HeaderUtil;
|
||||
import io.github.jhipster.web.util.ResponseUtil;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASOffSiteWorks;
|
||||
import it.cnr.isti.epasmed.epas.model.EPASPersonDays;
|
||||
import it.cnr.isti.epasmed.epas.service.EPASOffSiteWorksService;
|
||||
|
||||
|
@ -87,10 +88,10 @@ public class EPASOffSiteWorksResource {
|
|||
* the EPAS Off Site Works List, or with status {@code 404 (Not Found)}.
|
||||
*/
|
||||
@GetMapping("/offsiteworks/byOffice")
|
||||
public ResponseEntity<List<EPASPersonDays>> getOffSiteWorksByOffice(@RequestParam("codeId") String id,
|
||||
public ResponseEntity<List<EPASOffSiteWorks>> getOffSiteWorksByOffice(@RequestParam("codeId") String id,
|
||||
@RequestParam("year") String year, @RequestParam("month") String month) {
|
||||
log.info("REST request to get ePAS Off Site Works list: officeCodeId={}, year={}, month={}", id,year,month);
|
||||
List<EPASPersonDays> epasOffSiteWorksList = epasOffSiteWorksService.getListByOfficeCodeId(id, year, month);
|
||||
List<EPASOffSiteWorks> epasOffSiteWorksList = epasOffSiteWorksService.getListByOfficeCodeId(id, year, month);
|
||||
return ResponseUtil.wrapOrNotFound(Optional.of(epasOffSiteWorksList));
|
||||
|
||||
}
|
||||
|
|
|
@ -9,6 +9,7 @@ import org.springframework.http.ResponseEntity;
|
|||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import io.github.jhipster.web.util.HeaderUtil;
|
||||
|
@ -66,10 +67,14 @@ public class SyncResource {
|
|||
return res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* {@code GET /sync/writes} : Retrieve new flux from ePAS and
|
||||
* {@code GET /sync/writes} : Report from ePAS and
|
||||
* update SistemaInformativo.
|
||||
*
|
||||
* @param year the year.
|
||||
* @param month the month.
|
||||
* @return the {@link ResponseEntity} with status {@code 201 (Executed)}
|
||||
* or with status {@code 400 (Bad Request)} if there is a error.
|
||||
*
|
||||
|
@ -77,20 +82,51 @@ public class SyncResource {
|
|||
*/
|
||||
@GetMapping("/sync/writes")
|
||||
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||
public ResponseEntity<Void> syncWrites() throws URISyntaxException {
|
||||
logger.info("REST request syncWrites)");
|
||||
public ResponseEntity<Void> syncWrites(@RequestParam("year") String year,
|
||||
@RequestParam("month") String month) throws URISyntaxException {
|
||||
logger.info("REST request syncWrites");
|
||||
|
||||
ResponseEntity<Void> res;
|
||||
try {
|
||||
syncService.executeWrites();
|
||||
String msg="Sincronizzazione delle scritture eseguita correttamente.";
|
||||
syncService.executeWrites(year,month);
|
||||
String msg="Rendicontazione eseguita correttamente.";
|
||||
logger.info(msg);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
msg,"")).build();
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Errore nella sincronizzazione delle scritture: {}", e.getLocalizedMessage(), e);
|
||||
logger.error("Errore nella rendicontazione: {}", e.getLocalizedMessage(), e);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
"Errore nella sincronizzazione delle scritture: {}", e.getLocalizedMessage())).build();
|
||||
"Errore nella rendicontazione: {}", e.getLocalizedMessage())).build();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@code GET /sync/writesOrario} : Report Orario from ePAS and
|
||||
* update SistemaInformativo.
|
||||
*
|
||||
* @return the {@link ResponseEntity} with status {@code 201 (Executed)}
|
||||
* or with status {@code 400 (Bad Request)} if there is a error.
|
||||
*
|
||||
|
||||
*/
|
||||
@GetMapping("/sync/writesOrario")
|
||||
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||
public ResponseEntity<Void> syncWritesOrario() throws URISyntaxException {
|
||||
logger.info("REST request syncWritesOrario)");
|
||||
ResponseEntity<Void> res;
|
||||
try {
|
||||
syncService.executeWritesOrario();
|
||||
String msg="Rendicontazione dell'orario eseguita correttamente.";
|
||||
logger.info(msg);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
msg,"")).build();
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Errore nella rendicontazione dell'orario: {}", e.getLocalizedMessage(), e);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
"Errore nella rendicontazione dell'orario: {}", e.getLocalizedMessage())).build();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
@ -100,6 +136,8 @@ public class SyncResource {
|
|||
* {@code GET /sync/writesTimeCards} : Reports TimeCards from ePAS
|
||||
* in SistemaInformativo.
|
||||
*
|
||||
* @param year the year.
|
||||
* @param month the month.
|
||||
* @return the {@link ResponseEntity} with status {@code 201 (Executed)}
|
||||
* or with status {@code 400 (Bad Request)} if there is a error.
|
||||
*
|
||||
|
@ -107,11 +145,12 @@ public class SyncResource {
|
|||
*/
|
||||
@GetMapping("/sync/writesTimeCards")
|
||||
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||
public ResponseEntity<Void> syncTimeCardsWrites() throws URISyntaxException {
|
||||
logger.info("REST request syncWrites)");
|
||||
public ResponseEntity<Void> syncWritesTimeCards(@RequestParam("year") String year,
|
||||
@RequestParam("month") String month) throws URISyntaxException {
|
||||
logger.info("REST request syncWritesTimeCards)");
|
||||
ResponseEntity<Void> res;
|
||||
try {
|
||||
syncService.executeTimeCardsWrites();
|
||||
syncService.executeWritesTimeCards(year,month);
|
||||
String msg="Rendicontazione dei cartellini eseguita correttamente.";
|
||||
logger.info(msg);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
|
@ -125,4 +164,36 @@ public class SyncResource {
|
|||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@code GET /sync/writesOffSiteWorks} : Reports Off Site Works from ePAS
|
||||
* in SistemaInformativo.
|
||||
*
|
||||
* @param year the year.
|
||||
* @param month the month.
|
||||
* @return the {@link ResponseEntity} with status {@code 201 (Executed)}
|
||||
* or with status {@code 400 (Bad Request)} if there is a error.
|
||||
*
|
||||
|
||||
*/
|
||||
@GetMapping("/sync/writesOffSiteWorks")
|
||||
@PreAuthorize("hasAuthority(\"" + AuthoritiesConstants.ADMIN + "\")")
|
||||
public ResponseEntity<Void> syncWritesOffSiteWorks(@RequestParam("year") String year,
|
||||
@RequestParam("month") String month) throws URISyntaxException {
|
||||
logger.info("REST request syncWritesOffSiteWorks)");
|
||||
ResponseEntity<Void> res;
|
||||
try {
|
||||
syncService.executeWriteOffSiteWorks(year,month);
|
||||
String msg="Rendicontazione del lavoro fuori sede eseguita correttamente.";
|
||||
logger.info(msg);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
msg,"")).build();
|
||||
|
||||
} catch (Throwable e) {
|
||||
logger.error("Errore nella rendicontazione del lavoro fuori sede: {}", e.getLocalizedMessage(), e);
|
||||
res=ResponseEntity.noContent().headers(HeaderUtil.createAlert(applicationName,
|
||||
"Errore nella rendicontazione del lavoro fuori sede: {}", e.getLocalizedMessage())).build();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
<div class="table-responsive">
|
||||
<h2 id="logs-page-heading">Sync</h2>
|
||||
|
||||
|
||||
<jhi-alert-error></jhi-alert-error>
|
||||
|
||||
<jhi-alert></jhi-alert>
|
||||
|
||||
|
||||
<p>Sync Sistema Informativo ed ePAS.</p>
|
||||
|
||||
|
||||
<div class="d-grid gap-2 d-md-block">
|
||||
<ngb-datepicker (navigate)="dateNavigate($event)"
|
||||
[showWeekdays]="false" class="datepicker-only-month-select"></ngb-datepicker>
|
||||
|
||||
<button class="btn btn-primary" type="button" [disabled]="isLoading"
|
||||
(click)="sync('reads')">Reads</button>
|
||||
<button class="btn btn-primary" type="button" [disabled]="isLoading"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import { Component, OnInit } from '@angular/core';
|
||||
import { NgbDatepickerNavigateEvent } from '@ng-bootstrap/ng-bootstrap';
|
||||
|
||||
import { SyncType } from './sync.model';
|
||||
import { SyncService } from './sync.service';
|
||||
|
@ -9,19 +10,36 @@ import { SyncService } from './sync.service';
|
|||
})
|
||||
export class SyncComponent implements OnInit {
|
||||
syncT: SyncType | null = null;
|
||||
year: number;
|
||||
month: number;
|
||||
isLoading = false; // hidden by default
|
||||
|
||||
constructor(private syncService: SyncService) {}
|
||||
constructor(private syncService: SyncService) {
|
||||
const date: Date = new Date();
|
||||
this.year = date.getFullYear();
|
||||
this.month = date.getMonth();
|
||||
}
|
||||
|
||||
ngOnInit(): void {}
|
||||
|
||||
sync(syncType: SyncType): void {
|
||||
this.isLoading = true;
|
||||
this.syncT = syncType;
|
||||
this.syncService.sync(syncType).subscribe(
|
||||
() => this.onSuccess(),
|
||||
() => this.onError()
|
||||
);
|
||||
if (this.year == null || this.year <= 0) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Select the year');
|
||||
return;
|
||||
}
|
||||
if (this.month == null || this.month <= 0) {
|
||||
// eslint-disable-next-line no-console
|
||||
console.log('Select the month');
|
||||
return;
|
||||
}
|
||||
|
||||
// this.syncService.sync(syncType, this.year,this.month).subscribe(
|
||||
// () => this.onSuccess(),
|
||||
// () => this.onError()
|
||||
// );
|
||||
}
|
||||
|
||||
private onSuccess(): void {
|
||||
|
@ -32,5 +50,16 @@ export class SyncComponent implements OnInit {
|
|||
this.isLoading = false;
|
||||
}
|
||||
|
||||
dateNavigate($event: NgbDatepickerNavigateEvent): void {
|
||||
this.year = $event.next.year;
|
||||
this.month = $event.next.month;
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(this.year);
|
||||
// eslint-disable-next-line no-console
|
||||
console.log(this.month);
|
||||
|
||||
// old value is contained in $event.current
|
||||
}
|
||||
|
||||
//
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ import { SyncType } from './sync.model';
|
|||
export class SyncService {
|
||||
constructor(private http: HttpClient) {}
|
||||
|
||||
sync(syncType: SyncType): Observable<{}> {
|
||||
return this.http.get(SERVER_API_URL + 'api/sync/' + syncType);
|
||||
sync(syncType: SyncType, year: number, month: number): Observable<{}> {
|
||||
return this.http.get(SERVER_API_URL + 'api/sync/' + syncType + '?year=' + year + '&month=' + month);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<title>epasmed</title>
|
||||
<title>ePASMed</title>
|
||||
<meta name="description" content="Description for epasmed">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<meta name="theme-color" content="#000000">
|
||||
|
|
|
@ -24,7 +24,7 @@ import it.cnr.isti.epasmed.security.AuthoritiesConstants;
|
|||
@AutoConfigureMockMvc
|
||||
@WithMockUser(authorities = AuthoritiesConstants.ADMIN)
|
||||
@SpringBootTest(classes = EpasmedApp.class)
|
||||
@EnabledIf("false")
|
||||
@EnabledIf("true")
|
||||
public class EPASOffSiteWorksResourceIT {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
|
@ -24,10 +24,12 @@ import it.cnr.isti.epasmed.security.AuthoritiesConstants;
|
|||
@AutoConfigureMockMvc
|
||||
@WithMockUser(authorities = AuthoritiesConstants.ADMIN)
|
||||
@SpringBootTest(classes = EpasmedApp.class)
|
||||
@EnabledIf("false")
|
||||
@EnabledIf("true")
|
||||
public class SyncResourceIT {
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private static final String YEAR="2022";
|
||||
private static final String MONTH="6";
|
||||
|
||||
|
||||
@Autowired
|
||||
|
@ -54,13 +56,25 @@ public class SyncResourceIT {
|
|||
|
||||
@Test
|
||||
public void syncWrites() throws Exception {
|
||||
restSyncMockMvc.perform(get("/api/sync/writes"))
|
||||
restSyncMockMvc.perform(get("/api/sync/writes?year="+YEAR+"&month="+MONTH))
|
||||
.andExpect(status().is2xxSuccessful());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void syncTimeCardsWrites() throws Exception {
|
||||
restSyncMockMvc.perform(get("/api/sync/writesTimeCards"))
|
||||
public void syncWritesOrario() throws Exception {
|
||||
restSyncMockMvc.perform(get("/api/sync/writesOrario"))
|
||||
.andExpect(status().is2xxSuccessful());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void syncWritesTimeCards() throws Exception {
|
||||
restSyncMockMvc.perform(get("/api/sync/writesTimeCards?year="+YEAR+"&month="+MONTH))
|
||||
.andExpect(status().is2xxSuccessful());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void syncWritesOffSiteWorks() throws Exception {
|
||||
restSyncMockMvc.perform(get("/api/sync/writesOffSiteWorks?year="+YEAR+"&month="+MONTH))
|
||||
.andExpect(status().is2xxSuccessful());
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue