- pembuatan fungsi simpan, edit, hapus master jabatan spesifik unit kerja

- perbaikan metode mendapatkan nilai jabatan tertinggi saat evaluasi jabatan dan simpan data jabatan pegawai
This commit is contained in:
salmanoe 2021-04-08 21:44:07 +07:00
parent 3f435627e4
commit 3205c29c08
6 changed files with 228 additions and 71 deletions

View File

@ -75,4 +75,45 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
+ "where j.statusEnabled is true and j.kdJabatan = 'ANJAB' order by j.namaExternal")
List<String> findUnitKerjaAnjab();
String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"
+ "jj.id as jenisJabatanId,jj.jenisJabatan as jenisJabatan," + "uk.id as unitKerjaId,uk.name as unitKerja,"
+ "el.id as eselonId,el.eselon as eselon) " + "from Jabatan jb " + "inner join jb.jenisJabatan jj "
+ "inner join jb.unitKerja uk " + "left join jb.eselon el with el.statusEnabled is true "
+ "where jb.statusEnabled is true " + "and jj.statusEnabled is true " + "and uk.statusEnabled is true";
String namaJabatan = " and lower(jb.namaJabatan) like %:namaJabatan%";
String jenisJabatan = " and jj.id = :jenisJabatanId";
String unitKerja = " and uk.id = :unitKerjaId";
@Query(strJabatan)
List<Map<String, Object>> findJabatan();
@Query(strJabatan + namaJabatan)
List<Map<String, Object>> findJabatanByNama(@Param("namaJabatan") String namaJabatan);
@Query(strJabatan + jenisJabatan)
List<Map<String, Object>> findJabatanByJenis(@Param("jenisJabatanId") Integer idJenisJabatan);
@Query(strJabatan + unitKerja)
List<Map<String, Object>> findJabatanByUnit(@Param("unitKerjaId") Integer idUnitKerja);
@Query(strJabatan + namaJabatan + jenisJabatan)
List<Map<String, Object>> findJabatanByNamaJenis(@Param("namaJabatan") String namaJabatan,
@Param("jenisJabatanId") Integer idJenisJabatan);
@Query(strJabatan + namaJabatan + unitKerja)
List<Map<String, Object>> findJabatanByNamaUnit(@Param("namaJabatan") String namaJabatan,
@Param("unitKerjaId") Integer idUnitKerja);
@Query(strJabatan + jenisJabatan + unitKerja)
List<Map<String, Object>> findJabatanByJenisUnit(@Param("jenisJabatanId") Integer idJenisJabatan,
@Param("unitKerjaId") Integer idUnitKerja);
@Query(strJabatan + namaJabatan + jenisJabatan + unitKerja)
List<Map<String, Object>> findJabatanByNamaJenisUnit(@Param("namaJabatan") String namaJabatan,
@Param("jenisJabatanId") Integer idJenisJabatan, @Param("unitKerjaId") Integer idUnitKerja);
}

View File

@ -24,11 +24,13 @@ public interface JabatanService extends BaseVoService<Jabatan, JabatanVO, Intege
List<Map<String, Object>> getKelompokJabatan();
JabatanVO deleteJabatan(JabatanVO vo);
Map<String, Object> validateNamaJabatan(String namaJabatan, Integer idJenisJabatan);
List<Map<String, Object>> getListJabatanAnjabByUnitKerja(String unitKerja);
List<String> getListUnitKerjaAnjab();
List<Map<String, Object>> findJabatan(String namaJabatan, Integer idJenisJabatan, Integer idUnitKerja);
}

View File

@ -175,10 +175,14 @@ public class EvaluasiJabatanServiceImpl extends BaseVoServiceImpl implements Eva
List<Pegawai> listPegawai = new ArrayList<>();
for (Integer idPegawai : listIdPegawai) {
Pegawai pegawai = pegawaiDao.findOne(idPegawai);
pegawai.setNilaiJabatan(model.getTotalNilai());
pegawai.setGrade(Double.valueOf(nilaiKelompokJabatan.getGradeDesc()));
pegawai.setDetailKelompokJabatan(nilaiKelompokJabatan);
listPegawai.add(pegawai);
if ((CommonUtil.isNotNullOrEmpty(pegawai.getNilaiJabatan())
&& pegawai.getNilaiJabatan() < model.getTotalNilai())
|| CommonUtil.isNullOrEmpty(pegawai.getNilaiJabatan())) {
pegawai.setNilaiJabatan(model.getTotalNilai());
pegawai.setGrade(Double.valueOf(nilaiKelompokJabatan.getGradeDesc()));
pegawai.setDetailKelompokJabatan(nilaiKelompokJabatan);
listPegawai.add(pegawai);
}
}
if (CommonUtil.isNotNullOrEmpty(listPegawai)) {
pegawaiDao.save(listPegawai);

View File

@ -9,7 +9,6 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.JabatanDao;
@ -22,8 +21,11 @@ import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.JabatanService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.EselonVO;
import com.jasamedika.medifirst2000.vo.JabatanVO;
import com.jasamedika.medifirst2000.vo.JenisJabatanVO;
import com.jasamedika.medifirst2000.vo.KelompokJabatanVO;
import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO;
/**
* Implement class for JabatanService
@ -37,10 +39,19 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
private BaseConverterImpl<JabatanVO, Jabatan> jabatanConverter;
@Autowired
private JabatanDao jabatanDao;
private BaseConverterImpl<KelompokJabatanVO, KelompokJabatan> kelompokJabatanConverter;
@Autowired
private BaseConverterImpl<KelompokJabatanVO, KelompokJabatan> kelompokJabatanConverter;
private BaseConverterImpl<JenisJabatanVO, JenisJabatan> jenisJabatanConverter;
@Autowired
private BaseConverterImpl<UnitKerjaPegawaiVO, UnitKerjaPegawai> unitKerjaConverter;
@Autowired
private BaseConverterImpl<EselonVO, Eselon> eselonConverter;
@Autowired
private JabatanDao jabatanDao;
@Autowired
private KelompokJabatanDao kelompokJabatanDao;
@ -63,58 +74,91 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
}
@Override
@Transactional(readOnly = false)
public JabatanVO add(JabatanVO vo) throws JpaSystemException, ServiceVOException {
Jabatan jabatan = jabatanConverter.transferVOToModel(vo, new Jabatan());
jabatanDao.save(jabatan);
return vo;
JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan());
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai());
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) {
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
new KelompokJabatan());
jabatan.setKelompokJabatan(kelompokJabatan);
}
if (CommonUtil.isNotNullOrEmpty(vo.getEselon())) {
Eselon eselon = eselonConverter.transferVOToModel(vo.getEselon(), new Eselon());
jabatan.setEselon(eselon);
}
jabatan.setUnitKerja(unitKerja);
jabatan.setJenisJabatan(jenisJabatan);
Jabatan resultModel = jabatanDao.save(jabatan);
JabatanVO resultVO = new JabatanVO();
resultVO = jabatanConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
@Transactional(readOnly = false)
public JabatanVO update(JabatanVO vo) throws JpaSystemException, ServiceVOException {
Jabatan jabatan = jabatanDao.findOne(vo.getId());
Jabatan jabatanLama = jabatanDao.findOne(vo.getId());
Jabatan jabatanBaru = jabatanConverter.transferVOToModel(vo, jabatanLama);
if (CommonUtil.isNotNullOrEmpty(jabatan)) {
JenisJabatan jenisJabatan = new JenisJabatan();
jenisJabatan.setId(vo.getJenisJabatan().getId());
JenisJabatan jenisJabatan = jenisJabatanConverter.transferVOToModel(vo.getJenisJabatan(), new JenisJabatan());
UnitKerjaPegawai unitKerja = unitKerjaConverter.transferVOToModel(vo.getUnitKerja(), new UnitKerjaPegawai());
Eselon eselon = new Eselon();
eselon.setId(vo.getEselon().getId());
BeanUtils.copyProperties(vo, jabatan);
jabatan.setJenisJabatan(jenisJabatan);
jabatan.setEselon(eselon);
jabatanDao.save(jabatan);
vo.setNoRec(jabatan.getNoRec());
if (CommonUtil.isNotNullOrEmpty(vo.getKelompokJabatan())) {
KelompokJabatan kelompokJabatan = kelompokJabatanConverter.transferVOToModel(vo.getKelompokJabatan(),
new KelompokJabatan());
jabatanBaru.setKelompokJabatan(kelompokJabatan);
}
if (CommonUtil.isNotNullOrEmpty(vo.getEselon())) {
Eselon eselon = eselonConverter.transferVOToModel(vo.getEselon(), new Eselon());
jabatanBaru.setEselon(eselon);
}
jabatanBaru.setUnitKerja(unitKerja);
jabatanBaru.setJenisJabatan(jenisJabatan);
Jabatan resultModel = jabatanDao.save(jabatanBaru);
return vo;
JabatanVO resultVO = new JabatanVO();
resultVO = jabatanConverter.transferModelToVO(resultModel, resultVO);
return resultVO;
}
@Override
public Boolean delete(Integer key) throws JpaSystemException {
if (CommonUtil.isNotNullOrEmpty(key)) {
Jabatan jabatan = jabatanDao.findOne(key);
jabatanDao.delete(jabatan);
return true;
} else {
return false;
}
jabatanDao.delete(key);
return true;
}
@Override
public JabatanVO findById(Integer key) throws JpaSystemException {
return null;
JabatanVO result = new JabatanVO();
Jabatan jabatan = jabatanDao.findOne(key);
if (CommonUtil.isNotNullOrEmpty(jabatan)) {
result = jabatanConverter.transferModelToVO(jabatan, result);
}
return result;
}
@Override
public List<JabatanVO> findAll() throws JpaSystemException {
return null;
List<JabatanVO> result = new ArrayList<>();
Iterable<Jabatan> models = jabatanDao.findAll();
if (CommonUtil.isNotNullOrEmpty(models)) {
for (Jabatan model : models) {
JabatanVO vo = new JabatanVO();
vo = jabatanConverter.transferModelToVO(model, vo);
result.add(vo);
}
}
return result;
}
@Override
@ -265,4 +309,37 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
return result;
}
@Override
public List<Map<String, Object>> findJabatan(String namaJabatan, Integer idJenisJabatan, Integer idUnitKerja) {
List<Map<String, Object>> result = new ArrayList<>();
if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatan();
} else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByNama(namaJabatan);
} else if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByJenis(idJenisJabatan);
} else if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNotNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByUnit(idUnitKerja);
} else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByNamaJenis(namaJabatan, idJenisJabatan);
} else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNotNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByNamaUnit(namaJabatan, idUnitKerja);
} else if (CommonUtil.isNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNotNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByJenisUnit(idJenisJabatan, idUnitKerja);
} else if (CommonUtil.isNotNullOrEmpty(namaJabatan) && CommonUtil.isNotNullOrEmpty(idJenisJabatan)
&& CommonUtil.isNotNullOrEmpty(idUnitKerja)) {
result = jabatanDao.findJabatanByNamaJenisUnit(namaJabatan, idJenisJabatan, idUnitKerja);
}
return result;
}
}

View File

@ -261,7 +261,12 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata
if (CommonUtil.isNotNullOrEmpty(map.getPegawaiId())) {
Map<String, Object> evaluasiJabatan = this.getEvaluasiJabatanByPegawai(map.getPegawaiId());
pegawai.setId(map.getPegawaiId());
if (CommonUtil.isNotNullOrEmpty(evaluasiJabatan)) {
if ((CommonUtil.isNotNullOrEmpty(evaluasiJabatan)
&& CommonUtil.isNullOrEmpty(pegawai.getNilaiJabatan()))
|| (CommonUtil.isNotNullOrEmpty(evaluasiJabatan)
&& CommonUtil.isNotNullOrEmpty(pegawai.getNilaiJabatan())
&& pegawai.getNilaiJabatan() < Double
.valueOf(evaluasiJabatan.get("nilaiJabatan").toString()))) {
pegawai.setNilaiJabatan(Double.valueOf(evaluasiJabatan.get("nilaiJabatan").toString()));
pegawai.setGrade(Double.valueOf(evaluasiJabatan.get("grade").toString()));
NilaiKelompokJabatan detailKelompokJabatan = new NilaiKelompokJabatan();
@ -675,7 +680,12 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata
if (CommonUtil.isNotNullOrEmpty(vo.getPegawai())) {
Map<String, Object> evaluasiJabatan = this.getEvaluasiJabatanByPegawai(vo.getPegawai().getId());
pegawai.setId(vo.getPegawai().getId());
if (CommonUtil.isNotNullOrEmpty(evaluasiJabatan)) {
if ((CommonUtil.isNotNullOrEmpty(evaluasiJabatan)
&& CommonUtil.isNullOrEmpty(pegawai.getNilaiJabatan()))
|| (CommonUtil.isNotNullOrEmpty(evaluasiJabatan)
&& CommonUtil.isNotNullOrEmpty(pegawai.getNilaiJabatan())
&& pegawai.getNilaiJabatan() < Double
.valueOf(evaluasiJabatan.get("nilaiJabatan").toString()))) {
pegawai.setNilaiJabatan(Double.valueOf(evaluasiJabatan.get("nilaiJabatan").toString()));
pegawai.setGrade(Double.valueOf(evaluasiJabatan.get("grade").toString()));
NilaiKelompokJabatan detailKelompokJabatan = new NilaiKelompokJabatan();
@ -1623,6 +1633,7 @@ public class MapPegawaiJabatanToUnitKerjaServiceImpl implements MapPegawaiJabata
Map<String, Object> result = new HashMap<>();
List<Map<String, Object>> data = mapPegawaiJabatanToUnitKerjaDao.findEvaluasiJabatanByPegawai(idPegawai);
if (CommonUtil.isNotNullOrEmpty(data)) {
result = data.get(0);
}

View File

@ -1,5 +1,6 @@
package com.jasamedika.medifirst2000.controller;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
@ -24,7 +25,6 @@ import org.springframework.web.bind.annotation.RestController;
import com.jasamedika.medifirst2000.constants.Constants;
import com.jasamedika.medifirst2000.constants.MessageResource;
import com.jasamedika.medifirst2000.controller.base.IBaseRestController;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.core.web.WebConstants;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
@ -35,23 +35,12 @@ import com.jasamedika.medifirst2000.vo.JabatanVO;
@RestController
@RequestMapping("/jabatan")
public class JabatanController extends LocaleController<JabatanVO> implements IBaseRestController<JabatanVO> {
@Autowired
private JabatanService jabatanService;
public class JabatanController extends LocaleController<JabatanVO> {
private static final Logger LOGGER = LoggerFactory.getLogger(JabatanController.class);
@Override
public ResponseEntity<Collection<JabatanVO>> getAllVOWithQueryString(HttpServletRequest request, Integer page,
Integer limit, String sort, String dir) {
return null;
}
@Override
public ResponseEntity<JabatanVO> getVO(Integer id) {
return null;
}
@Autowired
private JabatanService jabatanService;
@RequestMapping(value = "/save-jabatan-internal/", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> addVO(@Valid @RequestBody JabatanVO vo, HttpServletRequest request) {
@ -134,6 +123,54 @@ public class JabatanController extends LocaleController<JabatanVO> implements IB
}
}
@RequestMapping(value = "/save-master-jabatan", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<JabatanVO> saveJabatan(HttpServletRequest request, @Valid @RequestBody JabatanVO vo) {
try {
JabatanVO result = new JabatanVO();
if (CommonUtil.isNotNullOrEmpty(vo.getId())) {
result = jabatanService.update(vo);
} else {
result = jabatanService.add(vo);
}
if (CommonUtil.isNotNullOrEmpty(result)) {
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage);
} else {
return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE);
}
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when add/update master jabatan", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when add/update master jabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-master-jabatan", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getMasterJabatan(HttpServletRequest request,
@RequestParam(value = "namaJabatan", required = false) String namaJabatan,
@RequestParam(value = "jenisJabatanId", required = false) Integer idJenisJabatan,
@RequestParam(value = "unitKerjaId", required = false) Integer idUnitKerja) throws ParseException {
try {
List<Map<String, Object>> result = jabatanService.findJabatan(namaJabatan, idJenisJabatan, idUnitKerja);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get master jabatan", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get master jabatan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@SuppressWarnings("unchecked")
@RequestMapping(value = "/search-jabatan", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Collection<JabatanVO>> getAllVOWithQueryString(
@ -147,16 +184,6 @@ public class JabatanController extends LocaleController<JabatanVO> implements IB
return constructListPageResult(resultPageMap);
}
@Override
public ResponseEntity<String> addVO(JabatanVO vo) {
return null;
}
@Override
public ResponseEntity<List<JabatanVO>> getAllVO() {
return null;
}
@RequestMapping(value = "/get-all-jabatan-struktural", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<List<Map<String, Object>>> getAllJabatanStruktural(HttpServletRequest request) {
List<Map<String, Object>> result = null;
@ -188,11 +215,6 @@ public class JabatanController extends LocaleController<JabatanVO> implements IB
return RestUtil.getJsonResponse(result, HttpStatus.OK);
}
@Override
public ResponseEntity<String> deleteVO(Integer id) {
return null;
}
@RequestMapping(value = "/validate-nama-jabatan/", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Map<String, Object>> validateNamaJabatan(HttpServletRequest request,
@RequestParam(value = "namaJabatan", required = true) String namaJabatan,