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);
|
List<MapPegawaiJabatanToUnitKerja> findByPegawaiId(@Param("pegawaiId") Integer pegawaiId);
|
||||||
|
|
||||||
@Query("select model from MapPegawaiJabatanToUnitKerja model " + "inner join model.pegawai pg "
|
@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();
|
List<MapPegawaiJabatanToUnitKerja> getAll();
|
||||||
|
|
||||||
@Query("select new Map(mapp.id as idMapping, mapp.pegawaiId as idPegawai, mapp.atasanLangsungId as idAtasan, mapp.pejabatPenilaiId as idPenilai) "
|
@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")
|
@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);
|
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")
|
+ "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);
|
List<Map<String, Object>> findAllByBulan(@Param("start") Date start, @Param("end") Date end);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.jasamedika.medifirst2000.service;
|
package com.jasamedika.medifirst2000.service;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.dto.SlipGajiDto;
|
import com.jasamedika.medifirst2000.dto.SlipGajiDto;
|
||||||
|
|
||||||
@ -13,6 +14,8 @@ public interface SlipGajiService {
|
|||||||
|
|
||||||
void save(SlipGajiDto dto);
|
void save(SlipGajiDto dto);
|
||||||
|
|
||||||
|
void save(List<SlipGajiDto> dtoList);
|
||||||
|
|
||||||
void updateDetail(SlipGajiDto dto);
|
void updateDetail(SlipGajiDto dto);
|
||||||
|
|
||||||
SlipGajiDto get(Integer pegawaiId, Long bulan);
|
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
|
@Override
|
||||||
public void updateDetail(SlipGajiDto dto) {
|
public void updateDetail(SlipGajiDto dto) {
|
||||||
{
|
{
|
||||||
@ -265,30 +272,32 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
|||||||
Date month = new Date(bulan);
|
Date month = new Date(bulan);
|
||||||
Date start = DateUtil.startMonth(month);
|
Date start = DateUtil.startMonth(month);
|
||||||
Date end = DateUtil.endMonth(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();
|
List<Map<String, Object>> allKomponen = komponenGajiDao.getAll();
|
||||||
HSSFWorkbook workbook = new HSSFWorkbook();
|
HSSFWorkbook workbook = new HSSFWorkbook();
|
||||||
HSSFSheet sheet = workbook.createSheet(new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")).format(month));
|
HSSFSheet sheet = workbook.createSheet(new SimpleDateFormat("MMMM yyyy", new Locale("in", "ID")).format(month));
|
||||||
List<Object> listIdKomponen = new ArrayList<>();
|
List<Object> row1 = new ArrayList<>();
|
||||||
List<Object> listKdKomponen = new ArrayList<>();
|
List<Object> row2 = new ArrayList<>();
|
||||||
listIdKomponen.add("ID");
|
row1.add("ID");
|
||||||
listIdKomponen.add("");
|
row1.add("");
|
||||||
listKdKomponen.add("");
|
row1.add("");
|
||||||
listKdKomponen.add("NAMA PEGAWAI / KOMPONEN");
|
row2.add("");
|
||||||
|
row2.add("ID PEGAWAI");
|
||||||
|
row2.add("NAMA PEGAWAI / KOMPONEN");
|
||||||
allKomponen.forEach(k -> {
|
allKomponen.forEach(k -> {
|
||||||
listIdKomponen.add(k.get("id"));
|
row1.add(k.get("id"));
|
||||||
listKdKomponen.add(k.get("namaKomponen"));
|
row2.add(k.get("namaKomponen"));
|
||||||
});
|
});
|
||||||
Object[] arrId = new Object[listIdKomponen.size()];
|
Object[] arrId = new Object[row1.size()];
|
||||||
Object[] arrkd = new Object[listKdKomponen.size()];
|
Object[] arrkd = new Object[row2.size()];
|
||||||
listIdKomponen.toArray(arrId);
|
row1.toArray(arrId);
|
||||||
listKdKomponen.toArray(arrkd);
|
row2.toArray(arrkd);
|
||||||
Integer i = 1;
|
Integer i = 1;
|
||||||
Map<Integer, Object[]> data = new HashMap<>();
|
Map<Integer, Object[]> data = new HashMap<>();
|
||||||
data.put(i++, arrId);
|
data.put(i++, arrId);
|
||||||
data.put(i++, arrkd);
|
data.put(i++, arrkd);
|
||||||
for (Map<String, Object> pegawai : listPegawai) {
|
for (Map<String, Object> pegawai : listSlipPegawai) {
|
||||||
data.put(i++, new Object[] { pegawai.get("id"), pegawai.get("namaLengkap") });
|
data.put(i++, new Object[] { pegawai.get("id"), pegawai.get("idPegawai"), pegawai.get("namaPegawai") });
|
||||||
}
|
}
|
||||||
TreeMap<Integer, Object[]> sorted = new TreeMap<>();
|
TreeMap<Integer, Object[]> sorted = new TreeMap<>();
|
||||||
sorted.putAll(data);
|
sorted.putAll(data);
|
||||||
@ -308,11 +317,12 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
|||||||
}
|
}
|
||||||
sheet.getRow(0).setZeroHeight(true);
|
sheet.getRow(0).setZeroHeight(true);
|
||||||
sheet.setColumnHidden(0, true);
|
sheet.setColumnHidden(0, true);
|
||||||
|
sheet.setColumnHidden(1, true);
|
||||||
int colnums = sheet.getRow(0).getLastCellNum();
|
int colnums = sheet.getRow(0).getLastCellNum();
|
||||||
for (int j = 0; j < colnums; j++) {
|
for (int j = 0; j < colnums; j++) {
|
||||||
sheet.autoSizeColumn(j);
|
sheet.autoSizeColumn(j);
|
||||||
}
|
}
|
||||||
sheet.createFreezePane(2, 2);
|
sheet.createFreezePane(3, 2);
|
||||||
DateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
DateFormat df = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||||
String timestampToString = df.format(new Date());
|
String timestampToString = df.format(new Date());
|
||||||
String filename = "Template_Slip_Gaji_" + timestampToString + ".xls";
|
String filename = "Template_Slip_Gaji_" + timestampToString + ".xls";
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.jasamedika.medifirst2000.controller;
|
package com.jasamedika.medifirst2000.controller;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
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)
|
@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) {
|
public ResponseEntity<Object> updateDetail(@RequestBody @Valid SlipGajiDto dto) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user