Update SlipGajiService
Pembuatan service initialisasi data untuk download template slip gaji
This commit is contained in:
parent
e4e5e0dabb
commit
b2210f374c
@ -352,6 +352,10 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
|
||||
+ "and model.pegawaiId = :pegawaiId")
|
||||
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")
|
||||
List<MapPegawaiJabatanToUnitKerja> findAll();
|
||||
|
||||
@Query("select new Map(mapp.id as idMapping, mapp.pegawaiId as idPegawai, mapp.atasanLangsungId as idAtasan, mapp.pejabatPenilaiId as idPenilai) "
|
||||
+ "from MapPegawaiJabatanToUnitKerja mapp "
|
||||
+ "where mapp.statusEnabled is true and mapp.jabatanId is not null and mapp.unitKerjaPegawaiId is not null and mapp.subUnitKerjaPegawaiId is not null "
|
||||
|
||||
@ -1,7 +1,8 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
@ -12,4 +13,7 @@ import com.jasamedika.medifirst2000.entities.SlipGaji;
|
||||
public interface SlipGajiDao extends JpaRepository<SlipGaji, String> {
|
||||
@Query("select sg from SlipGaji sg where sg.pegawai.id = :pegawaiId")
|
||||
Optional<SlipGaji> findByPegawai(@Param("pegawaiId") Integer pegawaiId);
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@ -7,6 +7,8 @@ import com.jasamedika.medifirst2000.dto.SlipGajiDto;
|
||||
* @since Jan 20, 2023
|
||||
*/
|
||||
public interface SlipGajiService {
|
||||
void init();
|
||||
|
||||
void save(SlipGajiDto dto);
|
||||
|
||||
SlipGajiDto get(Integer pegawaiId);
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
@ -10,24 +11,26 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.jasamedika.medifirst2000.dao.JabatanDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.NilaiKelompokJabatanDao;
|
||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PenerimaanGajiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PenguranganGajiDao;
|
||||
import com.jasamedika.medifirst2000.dao.SlipGajiDao;
|
||||
import com.jasamedika.medifirst2000.dao.SlipGajiDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.UnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dto.SlipGajiDto;
|
||||
import com.jasamedika.medifirst2000.entities.Jabatan;
|
||||
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
|
||||
import com.jasamedika.medifirst2000.entities.NilaiKelompokJabatan;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.PenerimaanGaji;
|
||||
import com.jasamedika.medifirst2000.entities.PenguranganGaji;
|
||||
import com.jasamedika.medifirst2000.entities.SlipGaji;
|
||||
import com.jasamedika.medifirst2000.entities.SlipGajiDetail;
|
||||
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
|
||||
@ -54,17 +57,69 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
||||
@Autowired
|
||||
private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao;
|
||||
|
||||
@Autowired
|
||||
private JabatanDao jabatanDao;
|
||||
|
||||
@Autowired
|
||||
private UnitKerjaDao unitKerjaDao;
|
||||
|
||||
@Autowired
|
||||
private SubUnitKerjaDao subUnitKerjaDao;
|
||||
|
||||
@Autowired
|
||||
private NilaiKelompokJabatanDao gradeDao;
|
||||
@Override
|
||||
public void init() {
|
||||
Date now = new Date();
|
||||
Date startMonth = DateUtil.startMonth(now);
|
||||
Date endMonth = DateUtil.endMonth(now);
|
||||
List<Integer> listIdPegawaiSlip = slipGajiDao.findPegawaiByBulan(startMonth, endMonth);
|
||||
List<MapPegawaiJabatanToUnitKerja> listJabatan = mappingJabatanDao.findAll();
|
||||
listJabatan = listJabatan.stream().filter(j -> !listIdPegawaiSlip.contains(j.getPegawaiId()))
|
||||
.sorted(Comparator.comparingInt(MapPegawaiJabatanToUnitKerja::getPegawaiId))
|
||||
.collect(Collectors.toList());
|
||||
List<Integer> listIdPegawai = new ArrayList<>();
|
||||
listJabatan.forEach(j -> {
|
||||
if (!listIdPegawai.contains(j.getPegawaiId()))
|
||||
listIdPegawai.add(j.getPegawaiId());
|
||||
});
|
||||
List<SlipGaji> listSlipGaji = new ArrayList<>();
|
||||
List<SlipGajiDetail> listSlipGajiDetail = new ArrayList<>();
|
||||
for (Integer idPegawai : listIdPegawai) {
|
||||
SlipGaji.SlipGajiBuilder b = SlipGaji.builder();
|
||||
for (MapPegawaiJabatanToUnitKerja j : listJabatan) {
|
||||
if (idPegawai.equals(j.getPegawaiId())) {
|
||||
Pegawai pegawai = new Pegawai();
|
||||
pegawai.setId(j.getPegawaiId());
|
||||
b.pegawai(pegawai);
|
||||
b.bulan(now);
|
||||
break;
|
||||
}
|
||||
}
|
||||
SlipGaji slipGaji = b.build();
|
||||
listSlipGaji.add(slipGaji);
|
||||
if (CommonUtil.isNotNullOrEmpty(slipGaji)) {
|
||||
for (MapPegawaiJabatanToUnitKerja j : listJabatan) {
|
||||
if (idPegawai.equals(j.getPegawaiId())) {
|
||||
SlipGajiDetail.SlipGajiDetailBuilder detail = SlipGajiDetail.builder();
|
||||
detail.slipGaji(slipGaji);
|
||||
if (CommonUtil.isNotNullOrEmpty(j.getJabatanId())) {
|
||||
Jabatan jabatan = new Jabatan();
|
||||
jabatan.setId(j.getJabatanId());
|
||||
detail.jabatan(jabatan);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawaiId())) {
|
||||
UnitKerjaPegawai unitKerja = new UnitKerjaPegawai();
|
||||
unitKerja.setId(j.getUnitKerjaPegawaiId());
|
||||
detail.unitKerja(unitKerja);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(j.getSubUnitKerjaPegawaiId())) {
|
||||
SubUnitKerjaPegawai subunitKerja = new SubUnitKerjaPegawai();
|
||||
subunitKerja.setId(j.getSubUnitKerjaPegawaiId());
|
||||
detail.subUnitKerja(subunitKerja);
|
||||
}
|
||||
if (CommonUtil.isNotNullOrEmpty(j.getGradeId())) {
|
||||
NilaiKelompokJabatan grade = new NilaiKelompokJabatan();
|
||||
grade.setId(j.getGradeId());
|
||||
detail.grade(grade);
|
||||
}
|
||||
listSlipGajiDetail.add(detail.build());
|
||||
}
|
||||
}
|
||||
}
|
||||
slipGajiDao.save(listSlipGaji);
|
||||
slipGajiDetailDao.save(listSlipGajiDetail);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(SlipGajiDto dto) {
|
||||
@ -79,14 +134,6 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
||||
listMapping.forEach(j -> {
|
||||
SlipGajiDetail.SlipGajiDetailBuilder detail = SlipGajiDetail.builder();
|
||||
detail.slipGaji(savedSlip);
|
||||
// if (CommonUtil.isNotNullOrEmpty(j.getJabatanId()))
|
||||
// detail.jabatan(jabatanDao.findOne(j.getJabatanId()));
|
||||
// if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawaiId()))
|
||||
// detail.unitKerja(unitKerjaDao.findOne(j.getUnitKerjaPegawaiId()));
|
||||
// if (CommonUtil.isNotNullOrEmpty(j.getSubUnitKerjaPegawaiId()))
|
||||
// detail.subUnitKerja(subUnitKerjaDao.findOne(j.getSubUnitKerjaPegawaiId()));
|
||||
// if (CommonUtil.isNotNullOrEmpty(j.getGradeId()))
|
||||
// detail.grade(gradeDao.findOne(j.getGradeId()));
|
||||
if (CommonUtil.isNotNullOrEmpty(j.getJabatan()))
|
||||
detail.jabatan(j.getJabatan());
|
||||
if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawai()))
|
||||
|
||||
@ -21,6 +21,17 @@ public class SlipGajiController {
|
||||
@Autowired
|
||||
private SlipGajiService slipGajiService;
|
||||
|
||||
@RequestMapping(value = "/init", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Object> init() {
|
||||
try {
|
||||
slipGajiService.init();
|
||||
return new ResponseEntity<>(true, HttpStatus.CREATED);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Object> save(@RequestBody @Valid SlipGajiDto dto) {
|
||||
try {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user