penyesuaian validasi duplikat nama jabatan

This commit is contained in:
salmanoe 2021-05-04 08:04:44 +07:00
parent a5cdae75d6
commit 20480f0886
4 changed files with 14 additions and 9 deletions

View File

@ -57,17 +57,18 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
String strDuplikatJabatan = "select new Map(jb.id as id, jb.namaJabatan as namaJabatan) " String strDuplikatJabatan = "select new Map(jb.id as id, jb.namaJabatan as namaJabatan) "
+ "from Jabatan jb where jb.statusEnabled is true " + "from Jabatan jb where jb.statusEnabled is true "
+ "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan " + "and lower(regexp_replace(jb.namaJabatan,'[^0-9a-zA-Z]+', '', 'g')) = :namaJabatan "
+ "and jb.jenisJabatanId = :jenisJabatanId"; + "and jb.jenisJabatanId = :jenisJabatanId " + "and jb.unitKerjaId = :unitKerjaId";
String notJabatanId = " and jb.id <> :jabatanId"; String notJabatanId = " and jb.id <> :jabatanId";
@Query(strDuplikatJabatan) @Query(strDuplikatJabatan)
List<Map<String, Object>> checkNamaJabatan(@Param("namaJabatan") String namaJabatan, List<Map<String, Object>> checkNamaJabatan(@Param("namaJabatan") String namaJabatan,
@Param("jenisJabatanId") Integer jenisJabatanId); @Param("jenisJabatanId") Integer jenisJabatanId, @Param("unitKerjaId") Integer unitKerjaId);
@Query(strDuplikatJabatan + notJabatanId) @Query(strDuplikatJabatan + notJabatanId)
List<Map<String, Object>> checkNamaJabatan(@Param("jabatanId") Integer idJabatan, List<Map<String, Object>> checkNamaJabatan(@Param("jabatanId") Integer idJabatan,
@Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan); @Param("namaJabatan") String namaJabatan, @Param("jenisJabatanId") Integer idJenisJabatan,
@Param("unitKerjaId") Integer idUnitKerja);
String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan," String strJabatan = "select new Map(jb.id as id,jb.namaJabatan as namaJabatan,"
+ "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi," + "jb.levelJabatan as levelJabatan,jb.subLevelJabatan as levelDireksi,"

View File

@ -29,7 +29,8 @@ public interface JabatanService extends BaseVoService<Jabatan, JabatanVO, Intege
JabatanVO deleteJabatan(JabatanVO vo); JabatanVO deleteJabatan(JabatanVO vo);
Map<String, Object> validateNamaJabatan(Integer idJabatan, String namaJabatan, Integer idJenisJabatan); Map<String, Object> validateNamaJabatan(Integer idJabatan, String namaJabatan, Integer idJenisJabatan,
Integer idUnitKerja) throws JpaSystemException;
List<Map<String, Object>> findJabatan(String namaJabatan, Integer idJenisJabatan, Integer idUnitKerja); List<Map<String, Object>> findJabatan(String namaJabatan, Integer idJenisJabatan, Integer idUnitKerja);

View File

@ -301,16 +301,17 @@ public class JabatanServiceImpl extends BaseVoServiceImpl implements JabatanServ
} }
@Override @Override
public Map<String, Object> validateNamaJabatan(Integer idJabatan, String namaJabatan, Integer idJenisJabatan) { public Map<String, Object> validateNamaJabatan(Integer idJabatan, String namaJabatan, Integer idJenisJabatan,
Integer idUnitKerja) throws JpaSystemException {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
String patternText = settingDataFixedDao.getSettingDataFixed("patternTextDuplicate"); String patternText = settingDataFixedDao.getSettingDataFixed("patternTextDuplicate");
String replacedNamaJabatan = namaJabatan.replaceAll(patternText, "").toLowerCase(); String replacedNamaJabatan = namaJabatan.replaceAll(patternText, "").toLowerCase();
List<Map<String, Object>> listNamaJabatan = new ArrayList<>(); List<Map<String, Object>> listNamaJabatan = new ArrayList<>();
if (CommonUtil.isNotNullOrEmpty(idJabatan)) { if (CommonUtil.isNotNullOrEmpty(idJabatan)) {
listNamaJabatan = jabatanDao.checkNamaJabatan(idJabatan, replacedNamaJabatan, idJenisJabatan); listNamaJabatan = jabatanDao.checkNamaJabatan(idJabatan, replacedNamaJabatan, idJenisJabatan, idUnitKerja);
} else { } else {
listNamaJabatan = jabatanDao.checkNamaJabatan(replacedNamaJabatan, idJenisJabatan); listNamaJabatan = jabatanDao.checkNamaJabatan(replacedNamaJabatan, idJenisJabatan, idUnitKerja);
} }
if (CommonUtil.isNotNullOrEmpty(listNamaJabatan)) { if (CommonUtil.isNotNullOrEmpty(listNamaJabatan)) {

View File

@ -218,9 +218,11 @@ public class JabatanController extends LocaleController<JabatanVO> {
public ResponseEntity<Map<String, Object>> validateNamaJabatan(HttpServletRequest request, public ResponseEntity<Map<String, Object>> validateNamaJabatan(HttpServletRequest request,
@RequestParam(value = "idJabatan", required = false) Integer idJabatan, @RequestParam(value = "idJabatan", required = false) Integer idJabatan,
@RequestParam(value = "namaJabatan", required = true) String namaJabatan, @RequestParam(value = "namaJabatan", required = true) String namaJabatan,
@RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan) { @RequestParam(value = "idJenisJabatan", required = true) Integer idJenisJabatan,
@RequestParam(value = "idUnitKerja", required = true) Integer idUnitKerja) {
try { try {
Map<String, Object> result = jabatanService.validateNamaJabatan(idJabatan, namaJabatan, idJenisJabatan); Map<String, Object> result = jabatanService.validateNamaJabatan(idJabatan, namaJabatan, idJenisJabatan,
idUnitKerja);
return RestUtil.getJsonResponse(result, HttpStatus.OK); return RestUtil.getJsonResponse(result, HttpStatus.OK);
} catch (ServiceVOException e) { } catch (ServiceVOException e) {