2021-01-07 11:34:56 +07:00

132 lines
5.7 KiB
Java

package com.jasamedika.medifirst2000.dao;
import java.util.List;
import java.util.Map;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.NeracaLimbah;
/**
* Repository class for Departemen
*
* @author Roberto
*/
@Repository("NeracaLimbahDao")
public interface NeracaLimbahDao extends PagingAndSortingRepository<NeracaLimbah, String> {
@Query("select new map("
+ "coalesce(p.noRec,null) as noRec,"
+ "to_char(p.periodeAwal,'yyyy-MM-dd') as periodeAwal,"
+ "to_char(p.periodeAhir,'yyyy-MM-dd') as periodeAhir,"
+ "coalesce(p.residu,0.0) as residu,"
+ "coalesce(p.jumlahYangBelumTerkelola,0.0) as jumlahYangBelumTerkelola,"
+ "coalesce(p.kinerjaPengelolaan,0.0) as kinerjaPengelolaan,"
+ "coalesce(p.residu+p.kinerjaPengelolaan,0.0) as totaljmlygtersisa,"
+ "coalesce(p.Catatan,'-') as catatan, "
+ "coalesce(p.totalLimbahMasuk,0.0) as totalLimbahMasuk "
+ ")from NeracaLimbah p "
+ "where p.noRec=:noRec ")
Map<String, Object> findNeracaById(@Param("noRec") String noRec);
@Query("select new map(n.noRec as noRec, " +
" to_char(n.periodeAwal,'yyyy-MM-dd') as periodeAwal, " +
" to_char(n.periodeAhir,'yyyy-MM-dd') as periodeAhir, " +
" coalesce(n.residu,0.0) as residu, " +
" coalesce(n.jumlahYangBelumTerkelola,0.0) as jumlahYangBelumTerkelola, " +
" coalesce(n.kinerjaPengelolaan,0.0) as kinerjaPengelolaan, " +
" coalesce(n.residu+n.kinerjaPengelolaan,0.0) as totaljmlygtersisa, " +
" coalesce(n.Catatan,'-') as catatan, n.totalLimbahMasuk as totalLimbahMasuk) " +
" from NeracaLimbah n where n.noRec=:noRec")
Map<String, Object> getNeracaByNoRec(@Param("noRec")String noRec);
@Query("select new map("
+ "p.noRec as noRec,"
+ "j.jenisLimbahB3masuk as jenisLimbahB3Masuk,"
+ "p.jumlah as jumlah"
+ ")"
+ "from DetailJenisLimbah p "
+ "left join p.jenisLimbahB3Masuk j "
+ "where p.neracaLimbah.noRec=:noRec")
List<Map<String, Object>> getNeracaLimbahByNoRec(@Param("noRec") String noRec);
@Query("select new map(d.noRec as noRec, " +
" coalesce(d.jenisLimbahYangDikelola,'-') as jenisLimbahYangDikelola, " +
" coalesce(d.jumlah,0.0) as jumlah, " +
" coalesce(p.name,'-') as perlakuan, " +
" coalesce(z.name,'-') as perizinan) " +
" from DetailPerlakuan d " +
" left join d.perlakuan p " +
" left join d.neracaLimbah n " +
" left join d.perizinanLimbah z " +
" where n.noRec=:noRec")
List<Map<String, Object>> getNeracaLimbahPerlakuanByNoRec(@Param("noRec")String noRec);
@Query("select new map(j.id as id, j.jenisLimbahB3masuk as jenisLimbahB3masuk," +
" coalesce(sum(s.qtyproduk),0.0) as ttlqtymasuk)" +
" from StrukPelayanan s inner join " +
" s.jenisLimbahB3Masuk j where " +
" date(s.tglstruk) between date(:startDate) and date(:endDate) " +
" and (s.statusEnabled is null or s.statusEnabled is true) "+
" group by j.id,j.jenisLimbahB3masuk")
List<Map<String, Object>> getB3MasukJenisLimbahByPeriode(@Param("startDate")String startDate,
@Param("endDate")String endDate);
@Query("select coalesce(SUM(s.qtyproduk),0.0) as total " +
" from StrukPelayanan s inner join s.jenisLimbahB3Masuk j " +
" where date(s.tglstruk) between date(:startDate) and date(:endDate) "+
" and (s.statusEnabled is null or s.statusEnabled is true) ")
Double getTotalB3MasukByPeriode(@Param("startDate") String startDate,
@Param("endDate") String endDate);
@Query("select new map(p.id as id, p.name as Perlakuan, " +
" sum(l.jumlahLimbahB3Keluar) as ttlqtyKeluar) " +
" from LimbahB3Keluar l " +
" inner join l.perlakuan p " +
" inner join l.jenisLimbahB3Masuk j where " +
" date(l.tanggal) between date(:startDate) and date(:endDate) group by p.id, p.name")
List<Map<String, Object>> getB3KeluarByPerlakuan(@Param("startDate")String startDate,
@Param("endDate")String endDate);
@Query("select coalesce(sum(l.jumlahLimbahB3Keluar),0.0) as ttlqtyKeluar " +
" from LimbahB3Keluar l " +
" inner join l.perlakuan p " +
" inner join l.jenisLimbahB3Masuk j where " +
" date(l.tanggal) between date(:startDate) and date(:endDate) "+
" and (l.statusEnabled is null or l.statusEnabled is true) ")
Double getTotalB3KeluarByPeriode(@Param("startDate")String startDate, @Param("endDate")String endDate);
@Query("select new Map(jenisLimbah.jenisLimbahB3masuk as jenisAwalLimbah, "+
"limbahMasuk.jumlah as jumlah) "+
"from NeracaLimbah neracaLimbah "+
"left join neracaLimbah.detailJenisLimbah limbahMasuk "+
"left join limbahMasuk.jenisLimbahB3Masuk jenisLimbah "+
"where neracaLimbah.noRec = :noRec "+
"and (neracaLimbah.statusEnabled is null or neracaLimbah.statusEnabled is true) ")
List<Map<String, Object>> getReportLimbahB3Masuk(@Param("noRec")String noRec);
@Query("select new Map(perlakuan.name as perlakuan, "+
"limbahKeluar.jumlah as jumlah, "+
"perizinan.name as perizinan) "+
"from NeracaLimbah neracaLimbah "+
"left join neracaLimbah.detailPerlakuan limbahKeluar "+
"left join limbahKeluar.perlakuan perlakuan "+
"left join limbahKeluar.perizinanLimbah perizinan "+
"where neracaLimbah.noRec = :noRec "+
"and (neracaLimbah.statusEnabled is null or neracaLimbah.statusEnabled is true) ")
List<Map<String, Object>> getReportLimbahB3Keluar(@Param("noRec")String noRec);
@Query("select new Map(neracaLimbah.residu as residu, "+
"neracaLimbah.jumlahYangBelumTerkelola as totalJumlahSisa, "+
"neracaLimbah.kinerjaPengelolaan as persenKinerja) "+
"from NeracaLimbah neracaLimbah "+
"where neracaLimbah.noRec = :noRec")
Map<String, Object> getReportNeracaLimbahB3(@Param("noRec")String noRec);
}