Update SlipGajiService
Pembuatan service unggah daftar slip gaji pegawai dari excel template
This commit is contained in:
parent
f1ea106955
commit
3c46431352
@ -353,7 +353,8 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
|
||||
List<MapPegawaiJabatanToUnitKerja> findByPegawaiId(@Param("pegawaiId") Integer pegawaiId);
|
||||
|
||||
@Query("select model from MapPegawaiJabatanToUnitKerja model " + "inner join model.pegawai pg "
|
||||
+ "where model.statusEnabled is true " + "and pg.statusEnabled is true " + "and pg.namaLengkap <> '-'")
|
||||
+ "where model.statusEnabled is true " + "and pg.statusEnabled is true " + "and pg.namaLengkap <> '-' "
|
||||
+ "and lower(pg.namaLengkap) not like '%administrator%'")
|
||||
List<MapPegawaiJabatanToUnitKerja> getAll();
|
||||
|
||||
@Query("select new Map(mapp.id as idMapping, mapp.pegawaiId as idPegawai, mapp.atasanLangsungId as idAtasan, mapp.pejabatPenilaiId as idPenilai) "
|
||||
|
||||
@ -19,7 +19,7 @@ public interface SlipGajiDao extends JpaRepository<SlipGaji, String> {
|
||||
@Query("select pg.id from SlipGaji sg inner join sg.pegawai pg where sg.bulan between :start and :end")
|
||||
List<Integer> findPegawaiByBulan(@Param("start") Date start, @Param("end") Date end);
|
||||
|
||||
@Query("select new Map(pg.id as id,pg.namaLengkap as namaLengkap) " + "from SlipGaji sg "
|
||||
@Query("select new Map(sg.id as id,pg.id as idPegawai,pg.namaLengkap as namaPegawai) " + "from SlipGaji sg "
|
||||
+ "inner join sg.pegawai pg " + "where sg.bulan between :start and :end " + "order by pg.namaLengkap")
|
||||
List<Map<String, Object>> findAllByBulan(@Param("start") Date start, @Param("end") Date end);
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import com.jasamedika.medifirst2000.dto.SlipGajiDto;
|
||||
|
||||
@ -13,6 +14,8 @@ public interface SlipGajiService {
|
||||
|
||||
void save(SlipGajiDto dto);
|
||||
|
||||
void save(List<SlipGajiDto> dtoList);
|
||||
|
||||
void updateDetail(SlipGajiDto dto);
|
||||
|
||||
SlipGajiDto get(Integer pegawaiId, Long bulan);
|
||||
|
||||
@ -184,6 +184,13 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(List<SlipGajiDto> dtoList) {
|
||||
dtoList.forEach(dto -> {
|
||||
this.save(dto);
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDetail(SlipGajiDto dto) {
|
||||
{
|
||||
@ -265,30 +272,32 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
||||
Date month = new Date(bulan);
|
||||
Date start = DateUtil.startMonth(month);
|
||||
Date end = DateUtil.endMonth(month);
|
||||
List<Map<String, Object>> listPegawai = slipGajiDao.findAllByBulan(start, end);
|
||||
List<Map<String, Object>> listSlipPegawai = slipGajiDao.findAllByBulan(start, end);
|
||||
List<Map<String, Object>> allKomponen = komponenGajiDao.getAll();
|
||||
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||
HSSFSheet sheet = workbook.createSheet(new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")).format(month));
|
||||
List<Object> listIdKomponen = new ArrayList<>();
|
||||
List<Object> listKdKomponen = new ArrayList<>();
|
||||
listIdKomponen.add("ID");
|
||||
listIdKomponen.add("");
|
||||
listKdKomponen.add("");
|
||||
listKdKomponen.add("NAMA PEGAWAI / KOMPONEN");
|
||||
List<Object> row1 = new ArrayList<>();
|
||||
List<Object> row2 = new ArrayList<>();
|
||||
row1.add("ID");
|
||||
row1.add("");
|
||||
row1.add("");
|
||||
row2.add("");
|
||||
row2.add("ID PEGAWAI");
|
||||
row2.add("NAMA PEGAWAI / KOMPONEN");
|
||||
allKomponen.forEach(k -> {
|
||||
listIdKomponen.add(k.get("id"));
|
||||
listKdKomponen.add(k.get("namaKomponen"));
|
||||
row1.add(k.get("id"));
|
||||
row2.add(k.get("namaKomponen"));
|
||||
});
|
||||
Object[] arrId = new Object[listIdKomponen.size()];
|
||||
Object[] arrkd = new Object[listKdKomponen.size()];
|
||||
listIdKomponen.toArray(arrId);
|
||||
listKdKomponen.toArray(arrkd);
|
||||
Object[] arrId = new Object[row1.size()];
|
||||
Object[] arrkd = new Object[row2.size()];
|
||||
row1.toArray(arrId);
|
||||
row2.toArray(arrkd);
|
||||
Integer i = 1;
|
||||
Map<Integer, Object[]> data = new HashMap<>();
|
||||
data.put(i++, arrId);
|
||||
data.put(i++, arrkd);
|
||||
for (Map<String, Object> pegawai : listPegawai) {
|
||||
data.put(i++, new Object[] { pegawai.get("id"), pegawai.get("namaLengkap") });
|
||||
for (Map<String, Object> pegawai : listSlipPegawai) {
|
||||
data.put(i++, new Object[] { pegawai.get("id"), pegawai.get("idPegawai"), pegawai.get("namaPegawai") });
|
||||
}
|
||||
TreeMap<Integer, Object[]> sorted = new TreeMap<>();
|
||||
sorted.putAll(data);
|
||||
@ -308,11 +317,12 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
||||
}
|
||||
sheet.getRow(0).setZeroHeight(true);
|
||||
sheet.setColumnHidden(0, true);
|
||||
sheet.setColumnHidden(1, true);
|
||||
int colnums = sheet.getRow(0).getLastCellNum();
|
||||
for (int j = 0; j < colnums; j++) {
|
||||
sheet.autoSizeColumn(j);
|
||||
}
|
||||
sheet.createFreezePane(2, 2);
|
||||
sheet.createFreezePane(3, 2);
|
||||
DateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||
String timestampToString = df.format(new Date());
|
||||
String filename = "Template_Slip_Gaji_" + timestampToString + ".xls";
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.controller;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@ -55,6 +56,17 @@ public class SlipGajiController {
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/unggah", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Object> save(@RequestBody @Valid List<SlipGajiDto> dtoList) {
|
||||
try {
|
||||
slipGajiService.save(dtoList);
|
||||
return new ResponseEntity<>(true, HttpStatus.CREATED);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/detail/update", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Object> updateDetail(@RequestBody @Valid SlipGajiDto dto) {
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user