Update perbaikan performance karena format tanggal

This commit is contained in:
salmanoe 2022-10-17 20:43:11 +07:00
parent 8d8b0af40c
commit bd6390cac0
5 changed files with 36 additions and 31 deletions

View File

@ -5705,10 +5705,12 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
@RequestParam(value = "format", required = false) String format,
@RequestParam(value = "periode", required = true) String periode,
@RequestParam(value = "idPegawai", required = false) Integer idPegawai) {
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
Pegawai pegawaiLoggedIn = indekKinerjaService.getPegawaiByUserLogin();
Map<String, Object> pegawai = pegawaiDao.findPegawaiById(pegawaiLoggedIn.getId());
List<Map<String, Object>> result = indekKinerjaDao.findTindakanByIdPegawaiAndPeriod(periode,
List<Map<String, Object>> result = indekKinerjaDao.findTindakanByIdPegawaiAndPeriod(start, end,
pegawaiLoggedIn.getId(), indekKinerjaService.splitIdProdukAdministrasi());
if (CommonUtil.isNullOrEmpty(result)) {
Map<String, Object> data = new HashMap<String, Object>();
@ -5730,7 +5732,7 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
m.addObject("jabatanAtasan", atasan.get("jabatanInternal"));
m.addObject("atasan", atasan.get("nama"));
m.addObject("nipAtasan", atasan.get("nipPns"));
m.addObject("total", indekKinerjaDao.findTotalTindakanPerMonth(pegawaiLoggedIn.getId(), periode,
m.addObject("total", indekKinerjaDao.findTotalTindakanPerMonth(pegawaiLoggedIn.getId(), start, end,
indekKinerjaService.splitIdProdukAdministrasi()));
m.addObject("format", "pdf");

View File

@ -111,10 +111,10 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join detail.jenisProduk jenisProduk "
+ " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')=:tgl "
+ " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) and pelayananPasien.tglPelayanan between :start and :end "
+ " group by produk.namaProduk, produk.id,pelayananPasien.hargaSatuan ,detail.id,jenisProduk.id")
public List<Map<String, Object>> findTindakanByIdUser(@Param("id") Integer id, @Param("tgl") String tgl,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
public List<Map<String, Object>> findTindakanByIdUser(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select new map (produk.namaProduk as namaProduk,produk.id as produkId,"
+ " count(produk.namaProduk) as count,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglPelayanan )"
@ -124,11 +124,11 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join detail.jenisProduk jenisProduk "
+ " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) "
+ " and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')= "
+ " :date group by produk.namaProduk,produk.id,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')"
+ " and pelayananPasien.tglPelayanan between :start and :end "
+ "group by produk.namaProduk,produk.id,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')"
+ " order by to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')")
public List<Map<String, Object>> findTindakanByIdUserAndPeriod(@Param("id") Integer id, @Param("date") String date,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
public List<Map<String, Object>> findTindakanByIdUserAndPeriod(@Param("id") Integer id, @Param("start") Date start,
@Param("end") Date end, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select new map (produk.namaProduk as namaProduk,produk.id as produkId,"
+ " count(produk.namaProduk) as count,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tglPelayanan )"
@ -138,11 +138,12 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join detail.jenisProduk jenisProduk "
+ " where dokter.id=:id and jenisProduk.id not in (:listIdJenisProduk) and detail.id not in (:listIdDetailJenisProduk) "
+ " and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')= "
+ " :date group by produk.namaProduk,produk.id,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')"
+ " and pelayananPasien.tglPelayanan between :start and :end"
+ " group by produk.namaProduk,produk.id,to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')"
+ " order by to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd')")
public List<Map<String, Object>> findTindakanByIdUserAndPeriodWithException(@Param("id") Integer id,
@Param("date") String date, @Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("start") Date start, @Param("end") Date end,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk,
@Param("listIdDetailJenisProduk") List<Integer> listIdDetailJenisProduk);
@Query(" select new Map(rincianKegiatan.rincianKegiatan as rincianKegiatan, rincianKegiatan.id as idRincianKegiatan, "
@ -167,11 +168,11 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk " + " left join produk.detailJenisProduk detail"
+ " left join detail.jenisProduk jenisProduk "
+ "where dokter.id=:id and to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') "
+ "between :startDate and :endDate and jenisProduk.id not in (:listIdJenisProduk) group by produk.namaProduk,jenisProduk.id")
+ " left join detail.jenisProduk jenisProduk"
+ " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end"
+ " and jenisProduk.id not in (:listIdJenisProduk) group by produk.namaProduk,jenisProduk.id")
public List<Map<String, Object>> findCountTindakanByIdUserAndPeriod(@Param("id") Integer id,
@Param("startDate") String startDate, @Param("endDate") String endDate,
@Param("start") Date start, @Param("end") Date end,
@Param("listIdJenisProduk") List<Integer> listIdJenisProduk);
@Query(" select new Map( produk.namaProduk as namaProduk, count( distinct pelayananPasien.noRec) as count,jenisProduk.id as idJenisProduk)"
@ -269,7 +270,7 @@ public interface IndekKinerjaDao extends PagingAndSortingRepository<IndekKinerja
+ " left join pelayananPasienPetugas.kdpegawai dokter"
+ " left join pelayananPasienPetugas.pelayananPasien pelayananPasien"
+ " left join pelayananPasien.produk produk"
+ " where dokter.id=:id and pelayananPasien.tglPelayanan between and :start and :end"
+ " where dokter.id=:id and pelayananPasien.tglPelayanan between :start and :end"
+ " and produk.id = :idProduk")
public Long findTotalProdukPerPeriode(@Param("id") Integer id, @Param("idProduk") Integer idProduk,
@Param("start") Date start, @Param("end") Date end);

View File

@ -24,14 +24,14 @@ public interface TargetSkorDokterDetailDao extends PagingAndSortingRepository<Ta
public List<Map<String, Object>> findByHeadId(@Param("noRec") String noRec) throws JpaSystemException;
@Query("select tsd.skor " + "from TargetSkorDokterDetail tsd " + "inner join tsd.targetSkor ts "
+ "where tsd.pegawaiId = :pegawaiId " + "and ts.tmt <= :endMonth " + "ts.tmt between :start and :end "
+ "where tsd.pegawaiId = :pegawaiId " + "and ts.tmt <= :endMonth " + " and ts.tmt between :start and :end "
+ "order by ts.tmt desc")
public List<Double> findTargetByPegawai(@Param("pegawaiId") Integer idPegawai, @Param("endMonth") Date endMonth,
@Param("start") Date start, @Param("end") Date end) throws JpaSystemException;
@Query("select new Map(tsd.pegawaiId as pegawaiId,tsd.skor as skor) " + "from TargetSkorDokterDetail tsd "
+ "inner join tsd.targetSkor ts " + "where tsd.pegawaiId in (:listIdPegawai) " + "and ts.tmt <= :endMonth "
+ "ts.tmt between :start and :end " + "order by ts.tmt desc")
+ "and ts.tmt between :start and :end " + "order by ts.tmt desc")
public List<Map<String, Object>> findTargetByPegawai(@Param("listIdPegawai") List<Integer> listIdPegawai,
@Param("endMonth") Date endMonth, @Param("start") Date start, @Param("end") Date end)
throws JpaSystemException;

View File

@ -371,6 +371,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
@Override
public List<Map<String, Object>> findTindakanByIdUserAndPeriod(String month) {
Date start = DateUtil.startMonth(month);
Date end = DateUtil.endMonth(month);
Pegawai pegawai = new Pegawai();
pegawai = this.getPegawaiByUserLogin();
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
@ -388,11 +390,11 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
int idPegawai = pegawai.getId();
Long totalPerTanggal;
if (CommonUtil.isNullOrEmpty(listDetailException)) {
result = indekKinerjaDao.findTindakanByIdUserAndPeriod(idPegawai, date, splitIdProdukAdministrasi());
result = indekKinerjaDao.findTindakanByIdUserAndPeriod(idPegawai, start, end, splitIdProdukAdministrasi());
totalPerTanggal = indekKinerjaDao.findTotalTindakanPerTanggal(idPegawai, date,
splitIdProdukAdministrasi());
} else {
result = indekKinerjaDao.findTindakanByIdUserAndPeriodWithException(idPegawai, date,
result = indekKinerjaDao.findTindakanByIdUserAndPeriodWithException(idPegawai, start, end,
splitIdProdukAdministrasi(), listDetailException);
totalPerTanggal = indekKinerjaDao.findTotalTindakanPerTanggalWithException(idPegawai, date,
splitIdProdukAdministrasi(), listDetailException);

View File

@ -337,7 +337,7 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
@Autowired
private CatatanPerkembanganPasienTerintegrasiService cpptService;
@Autowired
private ResepDokterService resepDokterService;
@ -5745,10 +5745,11 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
@RequestParam(value = "format", required = false) String format,
@RequestParam(value = "periode", required = true) String periode,
@RequestParam(value = "idPegawai", required = false) Integer idPegawai) {
Date start = DateUtil.startMonth(periode);
Date end = DateUtil.endMonth(periode);
Pegawai pegawaiLoggedIn = indekKinerjaService.getPegawaiByUserLogin();
Map<String, Object> pegawai = pegawaiDao.findPegawaiById(pegawaiLoggedIn.getId());
List<Map<String, Object>> result = indekKinerjaDao.findTindakanByIdPegawaiAndPeriod(periode,
List<Map<String, Object>> result = indekKinerjaDao.findTindakanByIdPegawaiAndPeriod(start, end,
pegawaiLoggedIn.getId(), indekKinerjaService.splitIdProdukAdministrasi());
if (CommonUtil.isNullOrEmpty(result)) {
// Map<String, Object> data = new HashMap<String, Object>();
@ -5770,7 +5771,7 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
m.addObject("jabatanAtasan", atasan.get("jabatanInternal"));
m.addObject("atasan", atasan.get("nama"));
m.addObject("nipAtasan", atasan.get("nipPns"));
m.addObject("total", indekKinerjaDao.findTotalTindakanPerMonth(pegawaiLoggedIn.getId(), periode,
m.addObject("total", indekKinerjaDao.findTotalTindakanPerMonth(pegawaiLoggedIn.getId(), start, end,
indekKinerjaService.splitIdProdukAdministrasi()));
m.addObject("format", "pdf");
@ -6628,7 +6629,7 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
return m;
}
@RequestMapping("/logbookPelayananDokterDetailPasien")
public ModelAndView generateLogbookPelayananDokterDetailPasien(ModelAndView m,
@RequestParam(value = "format", required = false) String format,
@ -7178,7 +7179,7 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
return m;
}
@RequestMapping("/lapLogbookPelayananStaffMedis")
public ModelAndView generatelapLogbookPelayananStaffMedis(ModelAndView m,
@RequestParam(value = "format", required = false) String format,
@ -7914,15 +7915,14 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping("/resep")
public ModelAndView generateResep(ModelAndView m,
@RequestParam(value = "format", required = false) String format,
public ModelAndView generateResep(ModelAndView m, @RequestParam(value = "format", required = false) String format,
@RequestParam(value = "struk_order_id", required = true) String strukOrderId) {
Map<String, Object> headerResep = resepDokterService.findHeaderResep(strukOrderId);
List<Map<String, Object>> dsResep = resepDokterService.findResepSatuan(strukOrderId);
List<Map<String, Object>> sdsResep = resepDokterService.findResepRacikan(strukOrderId);
m.addObject("dsResep", dsResep);
m.addObject("sdsResep", sdsResep);
m.addObject("noRec", headerResep.get("noRec"));