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")
|
+ "and model.pegawaiId = :pegawaiId")
|
||||||
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 "
|
||||||
|
+ "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) "
|
@Query("select new Map(mapp.id as idMapping, mapp.pegawaiId as idPegawai, mapp.atasanLangsungId as idAtasan, mapp.pejabatPenilaiId as idPenilai) "
|
||||||
+ "from MapPegawaiJabatanToUnitKerja mapp "
|
+ "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 "
|
+ "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;
|
package com.jasamedika.medifirst2000.dao;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
@ -12,4 +13,7 @@ import com.jasamedika.medifirst2000.entities.SlipGaji;
|
|||||||
public interface SlipGajiDao extends JpaRepository<SlipGaji, String> {
|
public interface SlipGajiDao extends JpaRepository<SlipGaji, String> {
|
||||||
@Query("select sg from SlipGaji sg where sg.pegawai.id = :pegawaiId")
|
@Query("select sg from SlipGaji sg where sg.pegawai.id = :pegawaiId")
|
||||||
Optional<SlipGaji> findByPegawai(@Param("pegawaiId") Integer 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
|
* @since Jan 20, 2023
|
||||||
*/
|
*/
|
||||||
public interface SlipGajiService {
|
public interface SlipGajiService {
|
||||||
|
void init();
|
||||||
|
|
||||||
void save(SlipGajiDto dto);
|
void save(SlipGajiDto dto);
|
||||||
|
|
||||||
SlipGajiDto get(Integer pegawaiId);
|
SlipGajiDto get(Integer pegawaiId);
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.jasamedika.medifirst2000.service.impl;
|
package com.jasamedika.medifirst2000.service.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
@ -10,24 +11,26 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.dao.JabatanDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
||||||
import com.jasamedika.medifirst2000.dao.NilaiKelompokJabatanDao;
|
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PenerimaanGajiDao;
|
import com.jasamedika.medifirst2000.dao.PenerimaanGajiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PenguranganGajiDao;
|
import com.jasamedika.medifirst2000.dao.PenguranganGajiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.SlipGajiDao;
|
import com.jasamedika.medifirst2000.dao.SlipGajiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.SlipGajiDetailDao;
|
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.dto.SlipGajiDto;
|
||||||
|
import com.jasamedika.medifirst2000.entities.Jabatan;
|
||||||
import com.jasamedika.medifirst2000.entities.MapPegawaiJabatanToUnitKerja;
|
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.PenerimaanGaji;
|
||||||
import com.jasamedika.medifirst2000.entities.PenguranganGaji;
|
import com.jasamedika.medifirst2000.entities.PenguranganGaji;
|
||||||
import com.jasamedika.medifirst2000.entities.SlipGaji;
|
import com.jasamedika.medifirst2000.entities.SlipGaji;
|
||||||
import com.jasamedika.medifirst2000.entities.SlipGajiDetail;
|
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.service.SlipGajiService;
|
||||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||||
|
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author salmanoe
|
* @author salmanoe
|
||||||
@ -54,17 +57,69 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao;
|
private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao;
|
||||||
|
|
||||||
@Autowired
|
@Override
|
||||||
private JabatanDao jabatanDao;
|
public void init() {
|
||||||
|
Date now = new Date();
|
||||||
@Autowired
|
Date startMonth = DateUtil.startMonth(now);
|
||||||
private UnitKerjaDao unitKerjaDao;
|
Date endMonth = DateUtil.endMonth(now);
|
||||||
|
List<Integer> listIdPegawaiSlip = slipGajiDao.findPegawaiByBulan(startMonth, endMonth);
|
||||||
@Autowired
|
List<MapPegawaiJabatanToUnitKerja> listJabatan = mappingJabatanDao.findAll();
|
||||||
private SubUnitKerjaDao subUnitKerjaDao;
|
listJabatan = listJabatan.stream().filter(j -> !listIdPegawaiSlip.contains(j.getPegawaiId()))
|
||||||
|
.sorted(Comparator.comparingInt(MapPegawaiJabatanToUnitKerja::getPegawaiId))
|
||||||
@Autowired
|
.collect(Collectors.toList());
|
||||||
private NilaiKelompokJabatanDao gradeDao;
|
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
|
@Override
|
||||||
public void save(SlipGajiDto dto) {
|
public void save(SlipGajiDto dto) {
|
||||||
@ -79,14 +134,6 @@ public class SlipGajiServiceImpl implements SlipGajiService {
|
|||||||
listMapping.forEach(j -> {
|
listMapping.forEach(j -> {
|
||||||
SlipGajiDetail.SlipGajiDetailBuilder detail = SlipGajiDetail.builder();
|
SlipGajiDetail.SlipGajiDetailBuilder detail = SlipGajiDetail.builder();
|
||||||
detail.slipGaji(savedSlip);
|
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()))
|
if (CommonUtil.isNotNullOrEmpty(j.getJabatan()))
|
||||||
detail.jabatan(j.getJabatan());
|
detail.jabatan(j.getJabatan());
|
||||||
if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawai()))
|
if (CommonUtil.isNotNullOrEmpty(j.getUnitKerjaPegawai()))
|
||||||
|
|||||||
@ -21,6 +21,17 @@ public class SlipGajiController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private SlipGajiService slipGajiService;
|
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)
|
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<Object> save(@RequestBody @Valid SlipGajiDto dto) {
|
public ResponseEntity<Object> save(@RequestBody @Valid SlipGajiDto dto) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user