Update SlipGajiServiceImpl.java

Perbaikan tampilkan semua komponen untuk front-end saat edit pengaturan data penghasilan
This commit is contained in:
Salman Manoe 2023-06-21 14:49:31 +07:00
parent 7ba7884986
commit 5691a5d22e

View File

@ -1,23 +1,13 @@
package com.jasamedika.medifirst2000.service.impl; package com.jasamedika.medifirst2000.service.impl;
import java.io.File; import com.jasamedika.medifirst2000.dao.*;
import java.io.FileOutputStream; import com.jasamedika.medifirst2000.dto.KomponenGajiDto;
import java.io.IOException; import com.jasamedika.medifirst2000.dto.SlipGajiDto;
import java.math.BigDecimal; import com.jasamedika.medifirst2000.dto.SlipGajiKomponenDto;
import java.text.DateFormat; import com.jasamedika.medifirst2000.entities.*;
import java.text.SimpleDateFormat; import com.jasamedika.medifirst2000.service.SlipGajiService;
import java.util.ArrayList; import com.jasamedika.medifirst2000.util.CommonUtil;
import java.util.Comparator; import com.jasamedika.medifirst2000.util.DateUtil;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import java.util.TreeMap;
import java.util.stream.Collectors;
import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Cell;
@ -28,28 +18,14 @@ import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import com.jasamedika.medifirst2000.dao.KomponenGajiDao; import java.io.File;
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; import java.io.FileOutputStream;
import com.jasamedika.medifirst2000.dao.PegawaiDao; import java.io.IOException;
import com.jasamedika.medifirst2000.dao.SlipGajiDao; import java.math.BigDecimal;
import com.jasamedika.medifirst2000.dao.SlipGajiDetailDao; import java.text.DateFormat;
import com.jasamedika.medifirst2000.dao.SlipGajiKomponenDao; import java.text.SimpleDateFormat;
import com.jasamedika.medifirst2000.dto.KomponenGajiDto; import java.util.*;
import com.jasamedika.medifirst2000.dto.SlipGajiDto; import java.util.stream.Collectors;
import com.jasamedika.medifirst2000.dto.SlipGajiKomponenDto;
import com.jasamedika.medifirst2000.entities.Jabatan;
import com.jasamedika.medifirst2000.entities.KomponenGaji;
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
import com.jasamedika.medifirst2000.entities.NilaiKelompokJabatan;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.SlipGaji;
import com.jasamedika.medifirst2000.entities.SlipGajiDetail;
import com.jasamedika.medifirst2000.entities.SlipGajiKomponen;
import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai;
import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai;
import com.jasamedika.medifirst2000.service.SlipGajiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
/** /**
* @author salmanoe * @author salmanoe
@ -275,21 +251,37 @@ public class SlipGajiServiceImpl implements SlipGajiService {
dto.grade(String.join("/", listNamaGrade)); dto.grade(String.join("/", listNamaGrade));
} }
{ {
List<Map<String, Object>> listKomponen = slipGajiKomponenDao.findAll(pegawaiId, start, end);
List<SlipGajiKomponenDto> dtoList = new ArrayList<>(); List<SlipGajiKomponenDto> dtoList = new ArrayList<>();
listKomponen.forEach(k -> { List<KomponenGaji> komponenGajiList = komponenGajiDao.findAll();
SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder(); List<Map<String, Object>> listKomponen = slipGajiKomponenDao.findAll(pegawaiId, start, end);
kBuilder.id(k.get("id").toString()); komponenGajiList.forEach(e -> {
kBuilder.idJenisKomponen(Integer.valueOf(k.get("idJenisKomponen").toString())); Optional<Map<String, Object>> first = listKomponen.stream()
kBuilder.jenisKomponen(k.get("jenisKomponen").toString()); .filter(k -> e.getId().equals(k.get("idKomponen"))).findFirst();
kBuilder.idKomponen(Integer.valueOf(k.get("idKomponen").toString())); if (first.isPresent()) {
kBuilder.namaKomponen(k.get("namaKomponen").toString()); SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder();
kBuilder.nominal(new BigDecimal(k.get("nominal").toString())); kBuilder.id(first.get().get("id").toString());
dtoList.add(kBuilder.build()); kBuilder.idJenisKomponen(Integer.valueOf(first.get().get("idJenisKomponen").toString()));
kBuilder.jenisKomponen(first.get().get("jenisKomponen").toString());
kBuilder.idKomponen(Integer.valueOf(first.get().get("idKomponen").toString()));
kBuilder.namaKomponen(first.get().get("namaKomponen").toString());
kBuilder.nominal(new BigDecimal(first.get().get("nominal").toString()));
dtoList.add(kBuilder.build());
} else {
SlipGajiKomponenDto.SlipGajiKomponenDtoBuilder kBuilder = SlipGajiKomponenDto.builder();
kBuilder.id(null);
kBuilder.idJenisKomponen(e.getJenisKomponen());
kBuilder.jenisKomponen(e.getJenisKomponen() == 1 ? "Penerimaan" : "Pemotongan");
kBuilder.idKomponen(e.getId());
kBuilder.namaKomponen(e.getNamaKomponen());
kBuilder.nominal(null);
dtoList.add(kBuilder.build());
}
}); });
dtoList.stream().sorted(Comparator.comparing(o1 -> o1.getIdKomponen())) List<SlipGajiKomponenDto> collectDto = dtoList.stream()
.sorted(Comparator.comparing(o2 -> o2.getIdJenisKomponen())).collect(Collectors.toList()); .sorted(Comparator.comparing(SlipGajiKomponenDto::getIdKomponen))
dto.komponen(dtoList); .sorted(Comparator.comparing(SlipGajiKomponenDto::getIdJenisKomponen))
.collect(Collectors.toList());
dto.komponen(collectDto);
} }
} }
return dto.build(); return dto.build();