Update service slip gaji

Perubahan dto collection komponen slip gaji dari set menjadi list
This commit is contained in:
Salman Manoe 2023-04-17 16:50:02 +07:00
parent e9cd635bff
commit 78920e353e
2 changed files with 23 additions and 13 deletions

View File

@ -10,7 +10,6 @@ import java.util.ArrayList;
import java.util.Comparator; import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
@ -141,13 +140,20 @@ public class SlipGajiServiceImpl implements SlipGajiService {
@Override @Override
public void save(SlipGajiDto dto) { public void save(SlipGajiDto dto) {
SlipGaji.SlipGajiBuilder slipGaji = SlipGaji.builder(); 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<SlipGaji> 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.id(dto.getId());
}
slipGaji.pegawai(pegawaiDao.findById(dto.getIdPegawai())); slipGaji.pegawai(pegawaiDao.findById(dto.getIdPegawai()));
slipGaji.bulan(new Date(dto.getBulan())); slipGaji.bulan(month);
SlipGaji savedSlip = slipGajiDao.save(slipGaji.build()); SlipGaji savedSlip = slipGajiDao.save(slipGaji.build());
if (CommonUtil.isNotNullOrEmpty(savedSlip)) { if (CommonUtil.isNotNullOrEmpty(savedSlip)) {
if (CommonUtil.isNullOrEmpty(dto.getId())) { if (!existedSlipGaji.isPresent() && CommonUtil.isNullOrEmpty(dto.getId())) {
List<MapPegawaiJabatanToUnitKerja> listMapping = mappingJabatanDao.findByPegawaiId(dto.getIdPegawai()); List<MapPegawaiJabatanToUnitKerja> listMapping = mappingJabatanDao.findByPegawaiId(dto.getIdPegawai());
List<SlipGajiDetail> listDetail = new ArrayList<>(); List<SlipGajiDetail> listDetail = new ArrayList<>();
listMapping.forEach(j -> { listMapping.forEach(j -> {
@ -167,7 +173,7 @@ public class SlipGajiServiceImpl implements SlipGajiService {
} }
{ {
List<SlipGajiKomponen> listKomponen = new ArrayList<>(); List<SlipGajiKomponen> listKomponen = new ArrayList<>();
Set<SlipGajiKomponenDto> dtos = dto.getKomponen(); List<SlipGajiKomponenDto> dtos = dto.getKomponen();
dtos.forEach(k -> { dtos.forEach(k -> {
SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder(); SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder();
if (CommonUtil.isNotNullOrEmpty(k.getId())) if (CommonUtil.isNotNullOrEmpty(k.getId()))
@ -258,15 +264,19 @@ public class SlipGajiServiceImpl implements SlipGajiService {
} }
{ {
List<Map<String, Object>> listKomponen = slipGajiKomponenDao.findAll(pegawaiId, start, end); List<Map<String, Object>> listKomponen = slipGajiKomponenDao.findAll(pegawaiId, start, end);
Set<SlipGajiKomponenDto> dtoList = new HashSet<>(); List<SlipGajiKomponenDto> dtoList = new ArrayList<>();
listKomponen.forEach(k -> { listKomponen.forEach(k -> {
SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder(); SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder();
kBuilder.id(k.get("id").toString()); 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.idKomponen(Integer.valueOf(k.get("idKomponen").toString()));
kBuilder.namaKomponen(k.get("namaKomponen").toString()); kBuilder.namaKomponen(k.get("namaKomponen").toString());
kBuilder.nominal(new BigDecimal(k.get("nominal").toString())); kBuilder.nominal(new BigDecimal(k.get("nominal").toString()));
dtoList.add(kBuilder.build()); dtoList.add(kBuilder.build());
}); });
dtoList.stream().sorted(Comparator.comparing(o1 -> o1.getIdKomponen()))
.sorted(Comparator.comparing(o2 -> o2.getIdJenisKomponen())).collect(Collectors.toList());
dto.komponen(dtoList); dto.komponen(dtoList);
} }
} }

View File

@ -1,6 +1,6 @@
package com.jasamedika.medifirst2000.dto; package com.jasamedika.medifirst2000.dto;
import java.util.Set; import java.util.List;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
@ -37,13 +37,13 @@ public class SlipGajiDto {
private Long bulan; private Long bulan;
@Caption(value = "Komponen Gaji") @Caption(value = "Komponen Gaji")
private Set<SlipGajiKomponenDto> komponen; private List<SlipGajiKomponenDto> komponen;
public SlipGajiDto() { public SlipGajiDto() {
} }
public SlipGajiDto(String id, Integer idPegawai, String namaPegawai, String jabatan, String unitKerja, public SlipGajiDto(String id, Integer idPegawai, String namaPegawai, String jabatan, String unitKerja,
String subUnitKerja, String grade, Long bulan, Set<SlipGajiKomponenDto> komponen) { String subUnitKerja, String grade, Long bulan, List<SlipGajiKomponenDto> komponen) {
super(); super();
this.id = id; this.id = id;
this.idPegawai = idPegawai; this.idPegawai = idPegawai;
@ -120,11 +120,11 @@ public class SlipGajiDto {
this.bulan = bulan; this.bulan = bulan;
} }
public Set<SlipGajiKomponenDto> getKomponen() { public List<SlipGajiKomponenDto> getKomponen() {
return komponen; return komponen;
} }
public void setKomponen(Set<SlipGajiKomponenDto> komponen) { public void setKomponen(List<SlipGajiKomponenDto> komponen) {
this.komponen = komponen; this.komponen = komponen;
} }
@ -145,7 +145,7 @@ public class SlipGajiDto {
private String subUnitKerja; private String subUnitKerja;
private String grade; private String grade;
private Long bulan; private Long bulan;
private Set<SlipGajiKomponenDto> komponen; private List<SlipGajiKomponenDto> komponen;
public SlipGajiDtoBuilder() { public SlipGajiDtoBuilder() {
} }
@ -190,7 +190,7 @@ public class SlipGajiDto {
return this; return this;
} }
public SlipGajiDtoBuilder komponen(final Set<SlipGajiKomponenDto> komponen) { public SlipGajiDtoBuilder komponen(final List<SlipGajiKomponenDto> komponen) {
this.komponen = komponen; this.komponen = komponen;
return this; return this;
} }