Update IndekKinerjaService
Perbaikan rumus menghitung perkiraan kontribusi menjadi berdasarkan komponen harga tarif
This commit is contained in:
parent
ec1294e84b
commit
393398a171
@ -127,10 +127,10 @@ public class Master {
|
||||
}
|
||||
|
||||
public static final class JenisPetugasPelaksana {
|
||||
public static final int ASISTEN_SPESIALIS = 13;
|
||||
public static final int DOKTER_PEMERIKSA = 4;
|
||||
public static final int DOKTER_ANASTESI = 6;
|
||||
public static final int PETUGAS_PELAKSANA = 2;
|
||||
public static final Integer ASISTEN_SPESIALIS = 13;
|
||||
public static final Integer DOKTER_PEMERIKSA = 4;
|
||||
public static final Integer DOKTER_ANASTESI = 6;
|
||||
public static final Integer PETUGAS_PELAKSANA = 2;
|
||||
|
||||
public static final Integer[] MEDIS_UTAMA = { 4, 6, 13 };
|
||||
public static final Integer[] DOKTER_ANASTESI_OR_ASISTEN_SPESIALIS = { 6, 13 };
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
@ -16,12 +17,16 @@ public interface HargaNettoProdukByKelasDDao extends PagingAndSortingRepository<
|
||||
public List<HargaNettoProdukByKelasD> findProdByKelas(@Param("produkId") Integer produkId,
|
||||
@Param("kelasId") Integer kelasId, @Param("asalProdukId") Integer asalProdukId,
|
||||
@Param("jenisTarifId") Integer jenisTarifId);
|
||||
|
||||
@Query("select a from HargaNettoProdukByKelasD a "
|
||||
+ "left join a.kelas b "
|
||||
+ "left join a.produk d "
|
||||
|
||||
@Query("select a from HargaNettoProdukByKelasD a " + "left join a.kelas b " + "left join a.produk d "
|
||||
+ "where b.id=:kelasId and d.id=:produkId")
|
||||
public List<HargaNettoProdukByKelasD> findByKelasNProduk(
|
||||
@Param("kelasId") Integer kelasId,
|
||||
public List<HargaNettoProdukByKelasD> findByKelasNProduk(@Param("kelasId") Integer kelasId,
|
||||
@Param("produkId") Integer produkId);
|
||||
|
||||
@Query("select hnd.hargaNetto1 " + "from HargaNettoProdukByKelasD hnd " + "inner join hnd.produk prd "
|
||||
+ "inner join hnd.kelas kls " + "where hnd.statusEnabled is true " + "and prd.statusEnabled is true "
|
||||
+ "and kls.statusEnabled is true " + "and hnd.komponenHargaId = :komponenHargaId "
|
||||
+ "and hnd.produkId = :produkId " + "and hnd.kelasId = :kelasId")
|
||||
public Optional<Double> findHargetNetto1Komponen(@Param("komponenHargaId") Integer idKomponenHarga,
|
||||
@Param("produkId") Integer idProduk, @Param("kelasId") Integer idKelas);
|
||||
}
|
||||
|
||||
@ -18,6 +18,7 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
|
||||
import org.joda.time.Chronology;
|
||||
import org.joda.time.chrono.ISOChronology;
|
||||
@ -30,6 +31,7 @@ import com.jasamedika.medifirst2000.constants.Master;
|
||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.CustomIndexKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.DetailLogbookDokterDao;
|
||||
import com.jasamedika.medifirst2000.dao.HargaNettoProdukByKelasDDao;
|
||||
import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao;
|
||||
import com.jasamedika.medifirst2000.dao.IndekKinerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.IndeksKinerjaIndividuDao;
|
||||
@ -166,6 +168,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
@Autowired
|
||||
private DetailLogbookDokterDao detailLogbookDokterDao;
|
||||
|
||||
@Autowired
|
||||
private HargaNettoProdukByKelasDDao detailHargaNettoDao;
|
||||
|
||||
@Autowired
|
||||
private IndeksKinerjaDaoCustom indeksKinerjaDaoCustom;
|
||||
|
||||
@ -3153,7 +3158,29 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
isDiskonJasamedis1);
|
||||
pointQty = point * totalProduk1.doubleValue();
|
||||
formatPointQty = Double.parseDouble(df.format(pointQty));
|
||||
formatRpKontribusi = totalProduk1 * harga;
|
||||
|
||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
||||
.equals(mapResult1.get("idJenisPelaksana"))) {
|
||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
||||
Master.KomponenHarga.JASA_DOKTER,
|
||||
Integer.parseInt(mapResult1.get("idProduk").toString()),
|
||||
Integer.parseInt(mapResult1.get("idKelas").toString()));
|
||||
formatRpKontribusi = totalProduk1 * nettoKomponen.orElse(0.0);
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
|
||||
.equals(mapResult1.get("idJenisPelaksana"))) {
|
||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
||||
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
|
||||
Integer.parseInt(mapResult1.get("idProduk").toString()),
|
||||
Integer.parseInt(mapResult1.get("idKelas").toString()));
|
||||
formatRpKontribusi = totalProduk1 * nettoKomponen.orElse(0.0);
|
||||
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
|
||||
.equals(mapResult1.get("idJenisPelaksana"))) {
|
||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
||||
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
|
||||
Integer.parseInt(mapResult1.get("idProduk").toString()),
|
||||
Integer.parseInt(mapResult1.get("idKelas").toString()));
|
||||
formatRpKontribusi = totalProduk1 * nettoKomponen.orElse(0.0);
|
||||
}
|
||||
|
||||
mapResult1.put("totalKonsul", totalKonsul1.longValue());
|
||||
mapResult1.put("totalVisit", totalVisit1.longValue());
|
||||
@ -3211,7 +3238,29 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
isDiskonJasamedis2);
|
||||
pointQty = point * totalProduk2.doubleValue();
|
||||
formatPointQty = Double.parseDouble(df.format(pointQty));
|
||||
formatRpKontribusi = totalProduk2 * harga;
|
||||
|
||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
||||
.equals(mapResult2.get("idJenisPelaksana"))) {
|
||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
||||
Master.KomponenHarga.JASA_DOKTER,
|
||||
Integer.parseInt(mapResult2.get("idProduk").toString()),
|
||||
Integer.parseInt(mapResult2.get("idKelas").toString()));
|
||||
formatRpKontribusi = totalProduk2 * nettoKomponen.orElse(0.0);
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
|
||||
.equals(mapResult2.get("idJenisPelaksana"))) {
|
||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
||||
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
|
||||
Integer.parseInt(mapResult2.get("idProduk").toString()),
|
||||
Integer.parseInt(mapResult2.get("idKelas").toString()));
|
||||
formatRpKontribusi = totalProduk2 * nettoKomponen.orElse(0.0);
|
||||
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
|
||||
.equals(mapResult2.get("idJenisPelaksana"))) {
|
||||
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
|
||||
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
|
||||
Integer.parseInt(mapResult2.get("idProduk").toString()),
|
||||
Integer.parseInt(mapResult2.get("idKelas").toString()));
|
||||
formatRpKontribusi = totalProduk2 * nettoKomponen.orElse(0.0);
|
||||
}
|
||||
|
||||
mapResult2.put("totalKonsul", totalKonsul2.longValue());
|
||||
mapResult2.put("totalVisit", totalVisit2.longValue());
|
||||
|
||||
@ -24,6 +24,8 @@ import javax.persistence.Id;
|
||||
@Table(name = "HargaNettoProdukByKelas_M")
|
||||
public class HargaNettoProdukByKelas extends BaseMaster {
|
||||
|
||||
private static final long serialVersionUID = 9094957646615611317L;
|
||||
|
||||
public HargaNettoProdukByKelas(Double hargaSatuan, Integer id) {
|
||||
super();
|
||||
this.hargaSatuan = hargaSatuan;
|
||||
|
||||
@ -24,6 +24,8 @@ import com.jasamedika.medifirst2000.helper.Caption;
|
||||
@Table(name = "HargaNettoProdukByKelasD_M")
|
||||
public class HargaNettoProdukByKelasD extends BaseMaster {
|
||||
|
||||
private static final long serialVersionUID = -2040691507588284089L;
|
||||
|
||||
@NotNull(message = "Factor Rate tidak boleh kosong")
|
||||
@Column(name = "FactorRate", nullable = false)
|
||||
@Caption(value = "Factor Rate")
|
||||
|
||||
@ -1,26 +1,17 @@
|
||||
package com.jasamedika.medifirst2000.entities;
|
||||
|
||||
import java.io.Serializable;
|
||||
import org.hibernate.envers.Audited;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.persistence.*;
|
||||
|
||||
import org.hibernate.validator.constraints.NotEmpty;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseMaster;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
import org.hibernate.validator.internal.util.logging.Messages;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||
import com.jasamedika.medifirst2000.base.BaseMaster;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
import org.hibernate.envers.Audited;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.Table;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseMaster;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
|
||||
/**
|
||||
* class KomponenHarga
|
||||
@ -30,6 +21,8 @@ import javax.persistence.Id;
|
||||
@Entity // @Audited
|
||||
@Table(name = "KomponenHarga_M")
|
||||
public class KomponenHarga extends BaseMaster {
|
||||
private static final long serialVersionUID = 2283865782290922330L;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "ObjectDepartemenFk")
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user