Update ProdukService

Pembuatan cetakan informasi tarif lama
This commit is contained in:
salmanoe 2022-11-02 20:04:15 +07:00
parent dd882039c5
commit 3b629a2f13
5 changed files with 172 additions and 6 deletions

View File

@ -308,7 +308,7 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
@Query("select NEW Produk(p.kdProduk,p.namaProduk,p.id) from Produk p where lower(p.namaProduk) = lower (:name) and p.detailJenisProduk.jenisProduk.kelompokProduk.id='279' and p.statusEnabled=true")
Produk findProdukByName(@Param("name") String name);
String strQueryTarifLayanan = "select distinct new Map(pd.id as idProduk,pd.namaProduk as namaProduk,"
String strQueryTarifLayananBaru = "select distinct new Map(pd.id as idProduk,pd.namaProduk as namaProduk,"
+ "kl.id as idKelas,kl.namaKelas as namaKelas,"
+ "kh.id as idJasa,hp.hargaNetto1 as hargaLayanan,hd.hargaNetto1 as hargaJasa) "
+ "from MapRuanganToProduk mr, HargaNettoProdukByKelas hp, HargaNettoProdukByKelasD hd "
@ -324,6 +324,23 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
+ "and jp.id not in (43,82,91,97,116,178,184,186,188,191,197,216) " + "and ru.id = :idRuangan "
+ "and hp.statusEnabled is true " + "and hd.statusEnabled is true " + "and pd.statusEnabled is true "
+ "and kh.statusEnabled is true ";
String strQueryTarifLayananLama = "select distinct new Map(pd.id as idProduk,pd.namaProduk as namaProduk,"
+ "kl.id as idKelas,kl.namaKelas as namaKelas,"
+ "kh.id as idJasa,hp.hargaNetto1 as hargaLayanan,hd.hargaNetto1 as hargaJasa) "
+ "from MapRuanganToProduk mr, HargaNettoProdukByKelas hp, HargaNettoProdukByKelasD hd "
+ "inner join mr.produk pd " + "inner join mr.ruangan ru " + "inner join hp.kelas kl "
+ "inner join hd.komponenHarga kh " + "inner join pd.detailJenisProduk dj " + "inner join ru.departemen dp "
+ "inner join dj.jenisProduk jp " + "where mr.produkId = hp.produkId and mr.produkId = hd.produkId "
+ "and hp.produkId = hd.produkId and hp.kelasId = hd.kelasId and hp.produkId = pd.id "
+ "and hd.produkId = pd.id and hd.kelasId = kl.id "
+ "and pd.id not in (402611,10011571,10011572,10014240,10014241,10014242,10014243) "
+ "and ((kl.id in (1,2,3,5,6,8) and dp.id = 25 or (dp.id in (1,16) and ru.id in (42,45,75,76,79,80,328,463,464,466))) "
+ "or (kl.id in (1,2,3,5,8) and dp.id = 16 and ru.id not in (45,75,76,79,80,328,463,464,466)) "
+ "or (kl.id = 6 and dp.id in (3,18,24,27,28))) " + "and kh.id in (6,21,22,25,26,27,30,35,38) "
+ "and jp.id not in (43,82,91,97,116,178,184,186,188,191,197,216) " + "and ru.id = :idRuangan "
+ "and hp.statusEnabled is false " + "and pd.statusEnabled is true "
+ "and kh.statusEnabled is true ";
String produkTarifLayanan = "and pd.id = :idProduk ";
@ -331,20 +348,36 @@ public interface ProdukDao extends PagingAndSortingRepository<Produk, Integer> {
String sortTarifLayanan = " order by pd.namaProduk,kl.namaKelas";
@Query(strQueryTarifLayanan + produkTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
@Query(strQueryTarifLayananBaru + produkTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananKelasProduk(@Param("idRuangan") Integer idRuangan,
@Param("idProduk") Integer idProduk, @Param("idKelas") Integer idKelas);
@Query(strQueryTarifLayanan + produkTarifLayanan + sortTarifLayanan)
@Query(strQueryTarifLayananBaru + produkTarifLayanan + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananProduk(@Param("idRuangan") Integer idRuangan,
@Param("idProduk") Integer idProduk);
@Query(strQueryTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
@Query(strQueryTarifLayananBaru + kelasTarifLayanan + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananKelas(@Param("idRuangan") Integer idRuangan,
@Param("idKelas") Integer idKelas);
@Query(strQueryTarifLayanan + sortTarifLayanan)
@Query(strQueryTarifLayananBaru + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananRuangan(@Param("idRuangan") Integer idRuangan);
@Query(strQueryTarifLayananLama + produkTarifLayanan + kelasTarifLayanan + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananLamaKelasProduk(@Param("idRuangan") Integer idRuangan,
@Param("idProduk") Integer idProduk, @Param("idKelas") Integer idKelas);
@Query(strQueryTarifLayananLama + produkTarifLayanan + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananLamaProduk(@Param("idRuangan") Integer idRuangan,
@Param("idProduk") Integer idProduk);
@Query(strQueryTarifLayananLama + kelasTarifLayanan + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananLamaKelas(@Param("idRuangan") Integer idRuangan,
@Param("idKelas") Integer idKelas);
@Query(strQueryTarifLayananLama + sortTarifLayanan)
public List<Map<String, Object>> findTarifLayananLamaRuangan(@Param("idRuangan") Integer idRuangan);
String strQryCekNamaProduk = "select new Map(pd.id as id,pd.namaProduk as namaProduk) "
+ "from Produk pd where pd.statusEnabled is true "

View File

@ -103,6 +103,8 @@ public interface ProdukService extends BaseVoService<Produk, ProdukVO, Integer>
List<JenisProdukVO> findJenisProdukLaboratorium();
List<Map<String, Object>> findTarifLayanan(Integer idRuangan, Integer idKelas, Integer idProduk);
List<Map<String, Object>> findTarifLayananLama(Integer idRuangan, Integer idKelas, Integer idProduk);
Map<String, Object> validateNamaProduk(Integer idProduk, String namaProduk);

View File

@ -1161,6 +1161,112 @@ public class ProdukServiceImpl extends BaseAngaranServiceImpl implements ProdukS
return result;
}
@Override
public List<Map<String, Object>> findTarifLayananLama(Integer idRuangan, Integer idKelas, Integer idProduk) {
List<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> data = new ArrayList<>();
List<Integer> listProduk = new ArrayList<>();
List<Integer> listKelas = new ArrayList<>();
DecimalFormatSymbols formatRp = new DecimalFormatSymbols();
formatRp.setCurrencySymbol("Rp");
formatRp.setMonetaryDecimalSeparator(',');
formatRp.setGroupingSeparator('.');
DecimalFormat kursINA = (DecimalFormat) DecimalFormat.getCurrencyInstance();
kursINA.setDecimalFormatSymbols(formatRp);
if (CommonUtil.isNotNullOrEmpty(idKelas) && CommonUtil.isNotNullOrEmpty(idProduk)) {
data = produkDao.findTarifLayananLamaKelasProduk(idRuangan, idProduk, idKelas);
} else if (CommonUtil.isNotNullOrEmpty(idKelas) && CommonUtil.isNullOrEmpty(idProduk)) {
data = produkDao.findTarifLayananLamaKelas(idRuangan, idKelas);
} else if (CommonUtil.isNullOrEmpty(idKelas) && CommonUtil.isNotNullOrEmpty(idProduk)) {
data = produkDao.findTarifLayananLamaProduk(idRuangan, idProduk);
} else if (CommonUtil.isNullOrEmpty(idKelas) && CommonUtil.isNullOrEmpty(idProduk)) {
data = produkDao.findTarifLayananLamaRuangan(idRuangan);
}
for (Map<String, Object> map : data) {
if (!listProduk.contains(map.get("idProduk"))) {
listProduk.add(Integer.parseInt(map.get("idProduk").toString()));
}
if (!listKelas.contains(map.get("idKelas"))) {
listKelas.add(Integer.parseInt(map.get("idKelas").toString()));
}
}
for (Integer produkId : listProduk) {
for (Integer kelasId : listKelas) {
Map<String, Object> mapRs = new HashMap<>();
Double jasaMedis = 0.0;
Double jasaParamedis = 0.0;
Double jasaSarana = 0.0;
Double jasaUmum = 0.0;
for (Map<String, Object> map : data) {
if (map.get("idProduk").equals(produkId) && map.get("idKelas").equals(kelasId)) {
if (Arrays.asList(Master.KomponenHarga.JASA_MEDIS).contains(map.get("idJasa"))) {
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
jasaMedis += Double.parseDouble(map.get("hargaJasa").toString());
} else {
jasaMedis += 0.0;
}
} else if (Arrays.asList(Master.KomponenHarga.JASA_PARAMEDIS).contains(map.get("idJasa"))) {
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
jasaParamedis += Double.parseDouble(map.get("hargaJasa").toString());
} else {
jasaParamedis += 0.0;
}
} else if (Arrays.asList(Master.KomponenHarga.JASA_SARANA).contains(map.get("idJasa"))) {
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
jasaSarana += Double.parseDouble(map.get("hargaJasa").toString());
} else {
jasaSarana += 0.0;
}
} else {
if (CommonUtil.isNotNullOrEmpty(map.get("hargaJasa"))) {
jasaUmum += Double.parseDouble(map.get("hargaJasa").toString());
} else {
jasaUmum += 0.0;
}
}
mapRs.putAll(map);
mapRs.put("hargaLayanan",
kursINA.format(Double.parseDouble(map.get("hargaLayanan").toString())).toString());
if (!jasaMedis.equals(0.0)) {
mapRs.put("jasaMedis", kursINA.format(jasaMedis).toString());
} else {
mapRs.put("jasaMedis", "-");
}
if (!jasaParamedis.equals(0.0)) {
mapRs.put("jasaParamedis", kursINA.format(jasaParamedis).toString());
} else {
mapRs.put("jasaParamedis", "-");
}
if (!jasaSarana.equals(0.0)) {
mapRs.put("jasaSarana", kursINA.format(jasaSarana).toString());
} else {
mapRs.put("jasaSarana", "-");
}
if (!jasaUmum.equals(0.0)) {
mapRs.put("jasaUmum", kursINA.format(jasaUmum).toString());
} else {
mapRs.put("jasaUmum", "-");
}
mapRs.remove("idJasa");
mapRs.remove("hargaJasa");
}
}
if (CommonUtil.isNotNullOrEmpty(mapRs)) {
result.add(mapRs);
}
}
}
return result;
}
@Override
public Map<String, Object> validateNamaProduk(Integer idProduk, String namaProduk) {

View File

@ -7812,6 +7812,27 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
return m;
}
@SuppressWarnings("unchecked")
@RequestMapping("/tarifLayananLamaRuangan")
public ModelAndView getTarifLayananLama(ModelAndView m, @RequestParam(value = "format", required = false) String format,
@RequestParam(value = "idRuangan", required = true) Integer idRuangan,
@RequestParam(value = "idKelas", required = false) Integer idKelas,
@RequestParam(value = "idProduk", required = false) Integer idProduk) {
List<Map<String, Object>> result = produkService.findTarifLayananLama(idRuangan, idKelas, idProduk);
Map<String, Object> ruangan = ruanganService.getRuanganById(idRuangan);
m.addObject("dataSource", result);
m.addObject("namaRuangan", ruangan.get("namaRuangan").toString().replace("/", "-"));
m.addObject("format", "xls");
if (format != null && !format.isEmpty()) {
m.addObject("format", format);
}
return m;
}
@RequestMapping(value = "/master-bed", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getMasterBed(HttpServletRequest request) {

View File

@ -572,4 +572,8 @@ reporting/lapGrafikSuhuMesin.url=/WEB-INF/templates/jrxml/lapGrafikSuhuMesin.jrx
#tarifLayananRuangan
reporting/tarifLayananRuangan.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView
reporting/tarifLayananRuangan.url=/WEB-INF/templates/jrxml/tarifLayananRuangan.jrxml
reporting/tarifLayananRuangan.url=/WEB-INF/templates/jrxml/tarifLayananRuangan.jrxml
#tarifLayananLamaRuangan
reporting/tarifLayananLamaRuangan.(class)=org.springframework.web.servlet.view.jasperreports.JasperReportsMultiFormatView
reporting/tarifLayananLamaRuangan.url=/WEB-INF/templates/jrxml/tarifLayananRuangan.jrxml