diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiKomponenDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiKomponenDao.java index a7a04e5d..d5848698 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiKomponenDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SlipGajiKomponenDao.java @@ -30,6 +30,8 @@ public interface SlipGajiKomponenDao extends JpaRepository> findAll(@Param("start") Date start, @Param("end") Date end); - @Query("select sgk from SlipGajiKomponen sgk where sgk.slipGaji.id in (:listId)") - List findBySlipId(@Param("listId") List listId); + @Query("select sgk from SlipGajiKomponen sgk " + "where sgk.slipGaji.id = :idSlipGaji " + + "and sgk.komponen.id = :idKomponen") + SlipGajiKomponen findBySlipGajiAndKomponen(@Param("idSlipGaji") String idSlipGaji, + @Param("idKomponen") Integer idKomponen); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java index 00f0cda1..11d2551e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SlipGajiService.java @@ -17,8 +17,6 @@ public interface SlipGajiService { void save(List dtoList); - void delete(List dtoList); - void updateDetail(SlipGajiDto dto); SlipGajiDto get(Integer pegawaiId, Long bulan); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java index 8331be5c..c7745130 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SlipGajiServiceImpl.java @@ -177,15 +177,22 @@ public class SlipGajiServiceImpl implements SlipGajiService { List dtos = dto.getKomponen(); dtos.forEach(k -> { if (CommonUtil.isNotNullOrEmpty(k.getNominal())) { - SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder(); - if (CommonUtil.isNotNullOrEmpty(k.getId())) - kBuilder.id(k.getId()); - KomponenGaji kGaji = new KomponenGaji(); - kGaji.setId(k.getIdKomponen()); - kBuilder.komponen(kGaji); - kBuilder.nominal(k.getNominal()); - kBuilder.slipGaji(savedSlip); - listKomponen.add(kBuilder.build()); + SlipGajiKomponen existedKomponen = slipGajiKomponenDao.findBySlipGajiAndKomponen(dto.getId(), + k.getIdKomponen()); + if (CommonUtil.isNotNullOrEmpty(existedKomponen)) { + existedKomponen.setNominal(k.getNominal()); + listKomponen.add(existedKomponen); + } else { + SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder(); + if (CommonUtil.isNotNullOrEmpty(k.getId())) + kBuilder.id(k.getId()); + KomponenGaji kGaji = new KomponenGaji(); + kGaji.setId(k.getIdKomponen()); + kBuilder.komponen(kGaji); + kBuilder.nominal(k.getNominal()); + kBuilder.slipGaji(savedSlip); + listKomponen.add(kBuilder.build()); + } } }); slipGajiKomponenDao.save(listKomponen); @@ -200,13 +207,6 @@ public class SlipGajiServiceImpl implements SlipGajiService { }); } - @Override - public void delete(List dtoList) { - List listIdSlip = dtoList.stream().map(m -> m.getId()).collect(Collectors.toList()); - List slipGajiKomponen = slipGajiKomponenDao.findBySlipId(listIdSlip); - slipGajiKomponenDao.delete(slipGajiKomponen); - } - @Override public void updateDetail(SlipGajiDto dto) { { diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java index 2c322101..800b1a1d 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SlipGajiController.java @@ -59,7 +59,6 @@ public class SlipGajiController { @RequestMapping(value = "/unggah", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public ResponseEntity save(@RequestBody List dtoList) { try { - slipGajiService.delete(dtoList); slipGajiService.save(dtoList); return new ResponseEntity<>(true, HttpStatus.CREATED); } catch (Exception e) {