Update service monitoring absensi

Penambahan hak akses view ketua komite nakes lain untuk monitoring presensi pegawai
This commit is contained in:
Salman Manoe 2024-08-22 14:35:14 +07:00
parent 54a5900b54
commit 1897e9f18f
2 changed files with 398 additions and 496 deletions

View File

@ -18,9 +18,13 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK;
@Service("MapPegawaiJabatanToUnitKerjaService") @Service("MapPegawaiJabatanToUnitKerjaService")
public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabatanToUnitKerjaService { public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl
implements MapPegawaiJabatanToUnitKerjaService {
@Autowired @Autowired
private MappingPegawaiToAtasanService mappingPegawaiToAtasanService; private MappingPegawaiToAtasanService mappingPegawaiToAtasanService;
@ -1412,29 +1416,34 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata
@Override @Override
public List<Map<String, Object>> getMapUnitKerjaByPegawai(Integer idPegawai) { public List<Map<String, Object>> getMapUnitKerjaByPegawai(Integer idPegawai) {
boolean isDirektur = false; boolean isDirektur = false;
int levelJabatan = 0; int levelJabatan = 0;
int sublevelJabatan = 0; int sublevelJabatan = 0;
List<Integer> listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain");
List<Map<String, Object>> mapLevel = mapPegawaiJabatanToUnitKerjaDao.getMappLevelByPegawai(idPegawai); List<Map<String, Object>> mapLevel = mapPegawaiJabatanToUnitKerjaDao.getMappLevelByPegawai(idPegawai);
for (Map<String, Object> map : mapLevel) { for (Map<String, Object> map : mapLevel)
if (map.get("levelJabatan").equals(Master.Jabatan.LEVEL_DIREKTUR)) { if (map.get("levelJabatan").equals(Master.Jabatan.LEVEL_DIREKTUR)) {
isDirektur = true; isDirektur = true;
levelJabatan = Integer.parseInt(map.get("levelJabatan").toString()); levelJabatan = Integer.parseInt(map.get("levelJabatan").toString());
sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString()); sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString());
break; break;
} }
}
List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai); List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai);
if (isDirektur) { if (isDirektur)
result.addAll(mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByLevelJabatan(levelJabatan, sublevelJabatan)); result.addAll(mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByLevelJabatan(levelJabatan, sublevelJabatan));
if (mapPegawaiJabatanToUnitKerjaDao.existsByPegawaiIdAndJabatanIdIn(idPegawai,
listIdJabatanKetuaKomiteNakesLain)) {
List<Map<String, Object>> listUnitKerja = mapPegawaiJabatanToUnitKerjaDao
.getMapUnitKerjaByKelompokJabatan(PENUNJANG_MEDIK);
List<Integer> alreadyAdded = result.stream().map(rs -> Integer.parseInt(rs.get("id").toString()))
.collect(Collectors.toList());
List<Map<String, Object>> unitKerjaNakesLain = listUnitKerja.stream()
.filter(unitKerja -> !alreadyAdded.contains(Integer.parseInt(unitKerja.get("id").toString())))
.collect(Collectors.toList());
result.addAll(unitKerjaNakesLain);
} }
if (CommonUtil.isNotNullOrEmpty(result))
if (CommonUtil.isNotNullOrEmpty(result)) {
return result; return result;
} else { return new ArrayList<>();
return new ArrayList<>();
}
} }
@Override @Override