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 java.util.*;
import java.util.stream.Collectors;
import static com.jasamedika.medifirst2000.constants.Master.KelompokJabatan.PENUNJANG_MEDIK;
@Service("MapPegawaiJabatanToUnitKerjaService")
public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabatanToUnitKerjaService {
public class MapPegawaiJabatanToUnitKerjaServiceImpl extends BaseVoServiceImpl
implements MapPegawaiJabatanToUnitKerjaService {
@Autowired
private MappingPegawaiToAtasanService mappingPegawaiToAtasanService;
@ -1412,29 +1416,34 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata
@Override
public List<Map<String, Object>> getMapUnitKerjaByPegawai(Integer idPegawai) {
boolean isDirektur = false;
int levelJabatan = 0;
int sublevelJabatan = 0;
List<Integer> listIdJabatanKetuaKomiteNakesLain = splitDataSettingDatafixed("idJabatanKetuaKomiteNakesLain");
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)) {
isDirektur = true;
levelJabatan = Integer.parseInt(map.get("levelJabatan").toString());
sublevelJabatan = Integer.parseInt(map.get("subLevelJabatan").toString());
break;
}
}
List<Map<String, Object>> result = mapPegawaiJabatanToUnitKerjaDao.getMapUnitKerjaByPegawai(idPegawai);
if (isDirektur) {
if (isDirektur)
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;
} else {
return new ArrayList<>();
}
return new ArrayList<>();
}
@Override