69 lines
2.8 KiB
Java
69 lines
2.8 KiB
Java
package net.gepafin.tendermanagement.dao;
|
|
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalTime;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
import net.gepafin.tendermanagement.enums.ProtocolTypeEnum;
|
|
import net.gepafin.tendermanagement.enums.VersionActionTypeEnum;
|
|
import net.gepafin.tendermanagement.model.request.VersionHistoryRequest;
|
|
import net.gepafin.tendermanagement.util.LoggingUtil;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
import net.gepafin.tendermanagement.entities.ApplicationEntity;
|
|
import net.gepafin.tendermanagement.entities.HubEntity;
|
|
import net.gepafin.tendermanagement.entities.ProtocolEntity;
|
|
import net.gepafin.tendermanagement.repositories.ProtocolRepository;
|
|
import net.gepafin.tendermanagement.util.DateTimeUtil;
|
|
|
|
@Component
|
|
public class ProtocolDao {
|
|
|
|
@Autowired
|
|
private ProtocolRepository protocolRepository;
|
|
|
|
|
|
@Value("${default.hub.uuid}")
|
|
private String defaultHubUuid;
|
|
|
|
@Autowired
|
|
private LoggingUtil loggingUtil;
|
|
|
|
@Autowired
|
|
private HttpServletRequest request;
|
|
|
|
public Long getProtocolNumber(HubEntity hubEntity) {
|
|
Long maxProtocolNumber = protocolRepository.findMaxProtocolNumberAndHubId(hubEntity.getId());
|
|
Long startNumber = 10000001L;
|
|
if(Boolean.FALSE.equals(defaultHubUuid.equals(hubEntity.getUniqueUuid()))) {
|
|
startNumber = 20000001L;
|
|
}
|
|
return (maxProtocolNumber != null) ? maxProtocolNumber + 1 : startNumber;
|
|
}
|
|
|
|
public ProtocolEntity createProtocolEntity(ApplicationEntity applicationEntity,Long protocolNumber, Long hubId,Boolean isForApplication){
|
|
ProtocolEntity protocolEntity=new ProtocolEntity();
|
|
protocolEntity.setCall(applicationEntity.getCall().getId());
|
|
LocalDateTime utcDateTime = DateTimeUtil.DateServerToUTC(LocalDateTime.now());
|
|
protocolEntity.setYear(utcDateTime.getYear());
|
|
protocolEntity.setProtocolNumber(protocolNumber);
|
|
LocalTime time = utcDateTime.toLocalTime().withNano(0);
|
|
protocolEntity.setTime(time);
|
|
protocolEntity.setApplicationId(applicationEntity.getId());
|
|
protocolEntity.setHubId(hubId);
|
|
if(Boolean.TRUE.equals(isForApplication)){
|
|
protocolEntity.setType(ProtocolTypeEnum.INPUT.getValue());
|
|
}else {
|
|
protocolEntity.setType(ProtocolTypeEnum.OUTPUT.getValue());
|
|
}
|
|
protocolRepository.save(protocolEntity);
|
|
|
|
/** This code is responsible for adding a version history log for "create protocol" operation. **/
|
|
loggingUtil.addVersionHistory(VersionHistoryRequest.builder().request(request).actionType(VersionActionTypeEnum.INSERT).oldData(null).newData(protocolEntity).build());
|
|
|
|
return protocolEntity;
|
|
}
|
|
}
|