From 78920e353e0725499c2d0fab7cc0074167de4e88 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 17 Apr 2023 16:50:02 +0700 Subject: [PATCH] Update service slip gaji Perubahan dto collection komponen slip gaji dari set menjadi list --- .../service/impl/SlipGajiServiceImpl.java | 22 ++++++++++++++----- .../medifirst2000/dto/SlipGajiDto.java | 14 ++++++------ 2 files changed, 23 insertions(+), 13 deletions(-) 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 daf7b76c..886e53f5 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 @@ -10,7 +10,6 @@ import java.util.ArrayList; import java.util.Comparator; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Locale; import java.util.Map; @@ -141,13 +140,20 @@ public class SlipGajiServiceImpl implements SlipGajiService { @Override public void save(SlipGajiDto dto) { SlipGaji.SlipGajiBuilder slipGaji = SlipGaji.builder(); - if (CommonUtil.isNotNullOrEmpty(dto.getId())) + Date month = new Date(dto.getBulan()); + Date start = DateUtil.startMonth(month); + Date end = DateUtil.endMonth(month); + Optional existedSlipGaji = slipGajiDao.findByPegawaiAndBulan(dto.getIdPegawai(), start, end); + if (existedSlipGaji.isPresent()) { + slipGaji.id(existedSlipGaji.get().getId()); + } else if (CommonUtil.isNotNullOrEmpty(dto.getId())) { slipGaji.id(dto.getId()); + } slipGaji.pegawai(pegawaiDao.findById(dto.getIdPegawai())); - slipGaji.bulan(new Date(dto.getBulan())); + slipGaji.bulan(month); SlipGaji savedSlip = slipGajiDao.save(slipGaji.build()); if (CommonUtil.isNotNullOrEmpty(savedSlip)) { - if (CommonUtil.isNullOrEmpty(dto.getId())) { + if (!existedSlipGaji.isPresent() && CommonUtil.isNullOrEmpty(dto.getId())) { List listMapping = mappingJabatanDao.findByPegawaiId(dto.getIdPegawai()); List listDetail = new ArrayList<>(); listMapping.forEach(j -> { @@ -167,7 +173,7 @@ public class SlipGajiServiceImpl implements SlipGajiService { } { List listKomponen = new ArrayList<>(); - Set dtos = dto.getKomponen(); + List dtos = dto.getKomponen(); dtos.forEach(k -> { SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder(); if (CommonUtil.isNotNullOrEmpty(k.getId())) @@ -258,15 +264,19 @@ public class SlipGajiServiceImpl implements SlipGajiService { } { List> listKomponen = slipGajiKomponenDao.findAll(pegawaiId, start, end); - Set dtoList = new HashSet<>(); + List dtoList = new ArrayList<>(); listKomponen.forEach(k -> { SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder(); kBuilder.id(k.get("id").toString()); + kBuilder.idJenisKomponen(Integer.valueOf(k.get("idJenisKomponen").toString())); + kBuilder.jenisKomponen(k.get("jenisKomponen").toString()); kBuilder.idKomponen(Integer.valueOf(k.get("idKomponen").toString())); kBuilder.namaKomponen(k.get("namaKomponen").toString()); kBuilder.nominal(new BigDecimal(k.get("nominal").toString())); dtoList.add(kBuilder.build()); }); + dtoList.stream().sorted(Comparator.comparing(o1 -> o1.getIdKomponen())) + .sorted(Comparator.comparing(o2 -> o2.getIdJenisKomponen())).collect(Collectors.toList()); dto.komponen(dtoList); } } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java index 85499b07..d3099bfb 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/dto/SlipGajiDto.java @@ -1,6 +1,6 @@ package com.jasamedika.medifirst2000.dto; -import java.util.Set; +import java.util.List; import javax.validation.constraints.NotNull; @@ -37,13 +37,13 @@ public class SlipGajiDto { private Long bulan; @Caption(value = "Komponen Gaji") - private Set komponen; + private List komponen; public SlipGajiDto() { } public SlipGajiDto(String id, Integer idPegawai, String namaPegawai, String jabatan, String unitKerja, - String subUnitKerja, String grade, Long bulan, Set komponen) { + String subUnitKerja, String grade, Long bulan, List komponen) { super(); this.id = id; this.idPegawai = idPegawai; @@ -120,11 +120,11 @@ public class SlipGajiDto { this.bulan = bulan; } - public Set getKomponen() { + public List getKomponen() { return komponen; } - public void setKomponen(Set komponen) { + public void setKomponen(List komponen) { this.komponen = komponen; } @@ -145,7 +145,7 @@ public class SlipGajiDto { private String subUnitKerja; private String grade; private Long bulan; - private Set komponen; + private List komponen; public SlipGajiDtoBuilder() { } @@ -190,7 +190,7 @@ public class SlipGajiDto { return this; } - public SlipGajiDtoBuilder komponen(final Set komponen) { + public SlipGajiDtoBuilder komponen(final List komponen) { this.komponen = komponen; return this; }