Update service slip gaji

Penyesuaian generate excel untuk update
This commit is contained in:
Salman Manoe 2023-04-27 17:46:46 +07:00
parent 036a6860d6
commit 13f28efbaf
3 changed files with 55 additions and 3 deletions

View File

@ -25,6 +25,11 @@ public interface SlipGajiKomponenDao extends JpaRepository<SlipGajiKomponen, Str
List<Map<String, Object>> findAll(@Param("pegawaiId") Integer pegawaiId, @Param("start") Date start,
@Param("end") Date end);
@Query("select new Map(sgk.id as id," + "pg.id as idPegawai," + "mk.id as idKomponen," + "sgk.nominal as nominal) "
+ "from SlipGajiKomponen sgk " + "inner join sgk.slipGaji sg " + "inner join sgk.komponen mk "
+ "inner join sg.pegawai pg " + "where sg.bulan between :start and :end " + "order by pg.id, mk.id")
List<Map<String, Object>> findAll(@Param("start") Date start, @Param("end") Date end);
@Query("select sgk from SlipGajiKomponen sgk where sgk.slipGaji.id in (:listId)")
List<SlipGajiKomponen> findBySlipId(@Param("listId") List<String> listId);
}

View File

@ -2,6 +2,7 @@ package com.jasamedika.medifirst2000.service;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import com.jasamedika.medifirst2000.dto.SlipGajiDto;
@ -15,7 +16,7 @@ public interface SlipGajiService {
void save(SlipGajiDto dto);
void save(List<SlipGajiDto> dtoList);
void delete(List<SlipGajiDto> dtoList);
void updateDetail(SlipGajiDto dto);
@ -23,4 +24,6 @@ public interface SlipGajiService {
SlipGajiDto get(Integer pegawaiId, Long bulan);
String writeExcel(Long bulan) throws IOException;
Map<String, Object> previewPdf(Integer pegawaiId, Long bulan);
}

View File

@ -23,6 +23,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -298,6 +299,22 @@ public class SlipGajiServiceImpl implements SlipGajiService {
Date end = DateUtil.endMonth(month);
List<Map<String, Object>> listSlipPegawai = slipGajiDao.findAllByBulan(start, end);
List<Map<String, Object>> allKomponen = komponenGajiDao.getAll();
List<Map<String, Object>> listAllKomponen = new ArrayList<>();
{
List<Map<String, Object>> listSlipKomponen = slipGajiKomponenDao.findAll(start, end);
for (Map<String, Object> p : listSlipPegawai) {
for (Map<String, Object> k : allKomponen) {
p.put(k.get("id").toString(), null);
for (Map<String, Object> s : listSlipKomponen) {
if (p.get("idPegawai").equals(s.get("idPegawai")) && k.get("id").equals(s.get("idKomponen"))) {
p.put(k.get("id").toString(), s.get("nominal"));
break;
}
}
}
listAllKomponen.add(p);
}
}
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet(new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")).format(month));
List<Object> row1 = new ArrayList<>();
@ -320,8 +337,12 @@ public class SlipGajiServiceImpl implements SlipGajiService {
Map<Integer, Object[]> data = new HashMap<>();
data.put(i++, arrId);
data.put(i++, arrkd);
for (Map<String, Object> pegawai : listSlipPegawai) {
data.put(i++, new Object[] { pegawai.get("id"), pegawai.get("idPegawai"), pegawai.get("namaPegawai") });
for (Map<String, Object> d : listAllKomponen) {
data.put(i++,
new Object[] { d.get("id"), d.get("idPegawai"), d.get("namaPegawai"), d.get("1"), d.get("2"),
d.get("3"), d.get("4"), d.get("5"), d.get("6"), d.get("7"), d.get("8"), d.get("9"),
d.get("10"), d.get("11"), d.get("12"), d.get("13"), d.get("14"), d.get("15"), d.get("16"),
d.get("17"), d.get("18") });
}
TreeMap<Integer, Object[]> sorted = new TreeMap<>();
sorted.putAll(data);
@ -337,6 +358,8 @@ public class SlipGajiServiceImpl implements SlipGajiService {
cell.setCellValue((String) obj);
else if (obj instanceof Integer)
cell.setCellValue((Integer) obj);
else if (obj instanceof BigDecimal)
cell.setCellValue(((BigDecimal) obj).doubleValue());
}
}
sheet.getRow(0).setZeroHeight(true);
@ -375,4 +398,25 @@ public class SlipGajiServiceImpl implements SlipGajiService {
}
return absoluteFilePath;
}
@Override
public Map<String, Object> previewPdf(Integer pegawaiId, Long bulan) {
SlipGajiDto dto = this.get(pegawaiId, bulan);
Map<String, Object> result = new HashMap<>();
result.put("namaPegawai", dto.getNamaPegawai());
result.put("nip", dto.getNip());
result.put("jabatan", dto.getJabatan());
result.put("unitKerja", dto.getUnitKerja());
result.put("subUnitKerja", dto.getSubUnitKerja());
List<SlipGajiKomponenDto> komponenDto = dto.getKomponen();
List<KomponenGaji> listMasterKomponen = komponenGajiDao.findAll(new Sort("id"));
for (KomponenGaji m : listMasterKomponen) {
for (SlipGajiKomponenDto k : komponenDto) {
if (m.getId().equals(k.getIdKomponen())) {
}
}
}
return result;
}
}