Merge branch 'sdm'
This commit is contained in:
commit
29247ed49d
@ -15,9 +15,13 @@ import com.jasamedika.medifirst2000.entities.SlipGajiKomponen;
|
|||||||
* @since Jan 30, 2023
|
* @since Jan 30, 2023
|
||||||
*/
|
*/
|
||||||
public interface SlipGajiKomponenDao extends JpaRepository<SlipGajiKomponen, String> {
|
public interface SlipGajiKomponenDao extends JpaRepository<SlipGajiKomponen, String> {
|
||||||
@Query("select new Map(sgk.id as id," + "sgk.komponen.id as idKomponen,"
|
@Query("select new Map(sgk.id as id," + "sgk.komponen.jenisKomponen as idJenisKomponen,"
|
||||||
+ "sgk.komponen.namaKomponen as namaKomponen," + "sgk.nominal as nominal) " + "from SlipGajiKomponen sgk "
|
+ "case when sgk.komponen.jenisKomponen = 1 then 'Penerimaan' "
|
||||||
+ "where sgk.slipGaji.pegawai.id = :pegawaiId " + "and sgk.slipGaji.bulan between :start and :end")
|
+ "when sgk.komponen.jenisKomponen = 2 then 'Pemotongan' end as jenisKomponen,"
|
||||||
|
+ "sgk.komponen.id as idKomponen," + "sgk.komponen.namaKomponen as namaKomponen,"
|
||||||
|
+ "sgk.nominal as nominal) " + "from SlipGajiKomponen sgk " + "where sgk.slipGaji.pegawai.id = :pegawaiId "
|
||||||
|
+ "and sgk.slipGaji.bulan between :start and :end "
|
||||||
|
+ "order by sgk.komponen.jenisKomponen, sgk.komponen.id")
|
||||||
List<Map<String, Object>> findAll(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
|
List<Map<String, Object>> findAll(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
|
||||||
@Param("end") Date end);
|
@Param("end") Date end);
|
||||||
|
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -8,6 +8,12 @@ public class SlipGajiKomponenDto {
|
|||||||
@Caption(value = "ID")
|
@Caption(value = "ID")
|
||||||
private String id;
|
private String id;
|
||||||
|
|
||||||
|
@Caption(value = "ID Jenis Komponen Gaji")
|
||||||
|
private Integer idJenisKomponen;
|
||||||
|
|
||||||
|
@Caption(value = "Jenis Komponen Gaji")
|
||||||
|
private String jenisKomponen;
|
||||||
|
|
||||||
@Caption(value = "ID Komponen Gaji")
|
@Caption(value = "ID Komponen Gaji")
|
||||||
private Integer idKomponen;
|
private Integer idKomponen;
|
||||||
|
|
||||||
@ -20,8 +26,11 @@ public class SlipGajiKomponenDto {
|
|||||||
public SlipGajiKomponenDto() {
|
public SlipGajiKomponenDto() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public SlipGajiKomponenDto(String id, Integer idKomponen, String namaKomponen, BigDecimal nominal) {
|
public SlipGajiKomponenDto(String id, Integer idJenisKomponen, String jenisKomponen, Integer idKomponen,
|
||||||
|
String namaKomponen, BigDecimal nominal) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
this.idJenisKomponen = idJenisKomponen;
|
||||||
|
this.jenisKomponen = jenisKomponen;
|
||||||
this.idKomponen = idKomponen;
|
this.idKomponen = idKomponen;
|
||||||
this.namaKomponen = namaKomponen;
|
this.namaKomponen = namaKomponen;
|
||||||
this.nominal = nominal;
|
this.nominal = nominal;
|
||||||
@ -35,6 +44,22 @@ public class SlipGajiKomponenDto {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getIdJenisKomponen() {
|
||||||
|
return idJenisKomponen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIdJenisKomponen(Integer idJenisKomponen) {
|
||||||
|
this.idJenisKomponen = idJenisKomponen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getJenisKomponen() {
|
||||||
|
return jenisKomponen;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setJenisKomponen(String jenisKomponen) {
|
||||||
|
this.jenisKomponen = jenisKomponen;
|
||||||
|
}
|
||||||
|
|
||||||
public Integer getIdKomponen() {
|
public Integer getIdKomponen() {
|
||||||
return idKomponen;
|
return idKomponen;
|
||||||
}
|
}
|
||||||
@ -65,6 +90,8 @@ public class SlipGajiKomponenDto {
|
|||||||
|
|
||||||
public static class SlipGajiKomponenDtoBuilder {
|
public static class SlipGajiKomponenDtoBuilder {
|
||||||
private String id;
|
private String id;
|
||||||
|
private Integer idJenisKomponen;
|
||||||
|
private String jenisKomponen;
|
||||||
private Integer idKomponen;
|
private Integer idKomponen;
|
||||||
private String namaKomponen;
|
private String namaKomponen;
|
||||||
private BigDecimal nominal;
|
private BigDecimal nominal;
|
||||||
@ -77,6 +104,16 @@ public class SlipGajiKomponenDto {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SlipGajiKomponenDtoBuilder idJenisKomponen(final Integer idJenisKomponen) {
|
||||||
|
this.idJenisKomponen = idJenisKomponen;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SlipGajiKomponenDtoBuilder jenisKomponen(final String jenisKomponen) {
|
||||||
|
this.jenisKomponen = jenisKomponen;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public SlipGajiKomponenDtoBuilder idKomponen(final Integer idKomponen) {
|
public SlipGajiKomponenDtoBuilder idKomponen(final Integer idKomponen) {
|
||||||
this.idKomponen = idKomponen;
|
this.idKomponen = idKomponen;
|
||||||
return this;
|
return this;
|
||||||
@ -93,7 +130,8 @@ public class SlipGajiKomponenDto {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public SlipGajiKomponenDto build() {
|
public SlipGajiKomponenDto build() {
|
||||||
return new SlipGajiKomponenDto(this.id, this.idKomponen, this.namaKomponen, this.nominal);
|
return new SlipGajiKomponenDto(this.id, this.idJenisKomponen, this.jenisKomponen, this.idKomponen,
|
||||||
|
this.namaKomponen, this.nominal);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user