Update service jatah cuti

Pembuatan endpoint monitoring jatah cuti disertai cuti bersama dan status penangguhan
This commit is contained in:
Salman Manoe 2025-02-05 12:34:51 +07:00
parent a8ac4be519
commit 960383dd9a
5 changed files with 67 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.dao;
import com.jasamedika.medifirst2000.dto.MonitoringJatahCutiDto;
import com.jasamedika.medifirst2000.entities.JatahCutiDanIzin;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
@ -79,4 +80,14 @@ public interface JatahCutiDanIzinDao extends JpaRepository<JatahCutiDanIzin, Str
+ "where jc.pegawaiId = :pegawaiId and jc.tahun < :tahun")
Integer getHistoriCutiTerpakai(@Param("pegawaiId") Integer idPegawai, @Param("tahun") String tahun);
@Query("select new com.jasamedika.medifirst2000.dto.MonitoringJatahCutiDto(" + "jc.noRec as noRec,"
+ "kx.komponenIndex as komponenCuti," + "cast(jc.tahun as int) as tahun," + "jc.value as jatahCuti,"
+ "jc.cutiTerpakai as cutiTerpakai," + "jc.sisaCuti as sisaCuti,"
+ "case when jc.isTangguhkan is true and kx.id = 5 then 'Ditangguhkan'"
+ "when jc.isTangguhkan is false and kx.id = 5 then 'Belum/Tidak Ditangguhkan'"
+ "else 'Tidak Dapat Ditangguhkan' end as statusPenangguhan) " + "from JatahCutiDanIzin jc "
+ "inner join jc.komponenIndex kx " + "where jc.pegawaiId = :pegawaiId "
+ "order by cast(jc.tahun as int), jc.komponenIndexId desc")
List<MonitoringJatahCutiDto> findByPegawaiId(@Param("pegawaiId") Integer idPegawai);
}

View File

@ -1,6 +1,7 @@
package com.jasamedika.medifirst2000.service;
import com.jasamedika.medifirst2000.dto.DataCutiDto;
import com.jasamedika.medifirst2000.dto.MonitoringJatahCutiDto;
import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekapIndex;
import com.jasamedika.medifirst2000.vo.JatahCutiDanIzinVO;
import com.jasamedika.medifirst2000.vo.KelompokShiftKerjaCustomVO;
@ -82,6 +83,8 @@ public interface PermohonanStatusPegawaiService {
List<Map<String, Object>> getAllDataCuti();
List<MonitoringJatahCutiDto> findByPegawai(Integer idPegawai);
List<Map<String, Object>> getAllDataCuti(Integer idPegawai);
Map<String, Object> updatePlanningPegawaiStatus(PlanningPegawaiStatusVO vo);

View File

@ -5,6 +5,7 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.*;
import com.jasamedika.medifirst2000.dao.custom.PlanningPegawaiStatusDaoCustom;
import com.jasamedika.medifirst2000.dto.DataCutiDto;
import com.jasamedika.medifirst2000.dto.MonitoringJatahCutiDto;
import com.jasamedika.medifirst2000.entities.*;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.JatahCutiDanIzinService;
@ -2160,6 +2161,11 @@ public class PermohonanStatusPegawaiImpl implements PermohonanStatusPegawaiServi
return jatahCutiDanIzinDao.getAllJatahCuti(Integer.valueOf(komponen));
}
@Override
public List<MonitoringJatahCutiDto> findByPegawai(Integer idPegawai) {
return jatahCutiDanIzinDao.findByPegawaiId(idPegawai);
}
@Override
public List<Map<String, Object>> getAllDataCuti(Integer idPegawai) {
LocalDateTime now = LocalDateTime.now();

View File

@ -0,0 +1,33 @@
package com.jasamedika.medifirst2000.dto;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Salman
* @version 1.0.0
* @since 2/5/2025
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class MonitoringJatahCutiDto {
private String noRec;
private String komponenCuti;
private Integer tahun;
private Integer jatahCuti;
private Integer cutiTerpakai;
private Integer sisaCuti;
private String statusPenangguhan;
}

View File

@ -8,6 +8,7 @@ import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.dao.JenisGajiDao;
import com.jasamedika.medifirst2000.dao.MapUraianTugasToRincianKegiatanDao;
import com.jasamedika.medifirst2000.dto.DataCutiDto;
import com.jasamedika.medifirst2000.dto.MonitoringJatahCutiDto;
import com.jasamedika.medifirst2000.entities.JenisGaji;
import com.jasamedika.medifirst2000.entities.MapUraianTugasToRincianKegiatan;
import com.jasamedika.medifirst2000.entities.Pegawai;
@ -4976,6 +4977,19 @@ public class SdmController extends LocaleController<AkunVO> {
}
}
@RequestMapping(value = "/jatah-cuti/{pegawai_id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<MonitoringJatahCutiDto>> getListJatahCuti(HttpServletRequest request,
@PathVariable("pegawai_id") Integer idPegawai) {
try {
List<MonitoringJatahCutiDto> dtoList = servicePermohonanStatus.findByPegawai(idPegawai);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(dtoList, HttpStatus.OK);
} catch (Exception e) {
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@RequestMapping(value = "/get-all-jatah-cuti-pegawai/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getListJatahCuti(
@RequestParam(value = "idPegawai") Integer idPegawai, HttpServletRequest request) {