Salman Manoe 0e3b77fdc2 Update domain entity
Penerapan lombok untuk mengurangi boilerplate code
2025-02-11 14:41:44 +07:00

245 lines
8.7 KiB
Java

package com.jasamedika.medifirst2000.controller;
import com.jasamedika.medifirst2000.dao.BridgingDao;
import com.jasamedika.medifirst2000.dao.LogSiranapDao;
import com.jasamedika.medifirst2000.entities.LogSiranap;
import com.jasamedika.medifirst2000.service.ModelService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapKamarVO;
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapListVO;
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapRuanganVO;
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping("/siranap")
public class BridgingSiranapController {
@Autowired
private ModelService modelServiceKelas;
@Autowired
private ModelService modelServiceRuangan;
@Autowired
private LogSiranapDao logSiranapDao;
@Autowired
private BridgingDao bridgingDao;
@RequestMapping(value = "/data-old", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE })
public BridgeSiranapListVO siranap() {
// Map antara ruang/kamar ke jenis perawatan belum tersedia
BridgeSiranapListVO y = new BridgeSiranapListVO();
@SuppressWarnings("unchecked")
List<Map<String, Object>> kamarT = modelServiceKelas.getAllData("Kamar",
"id,qtyBed,jumlaKamarIsi,jumlaKamarKosong,kelasId,ruanganId", 250, null, null, null, null, null, null,
null, null, null, null);
List<Map<String, Object>> ruanganT = modelServiceRuangan.getAllData("Ruangan", "id", 250, null, null, null,
null, null, null, null, null, null, null);
ArrayList<BridgeSiranapRuanganVO> aRuangan = new ArrayList<BridgeSiranapRuanganVO>();
ArrayList<BridgeSiranapKamarVO> aKamar = new ArrayList<BridgeSiranapKamarVO>();
for (int i = 0; i < ruanganT.size(); i++) {
BridgeSiranapRuanganVO nRuangan = new BridgeSiranapRuanganVO();
nRuangan.setId((Integer) kamarT.get(i).get("id"));
aRuangan.add(nRuangan);
}
for (int i = 0; i < kamarT.size(); i++) {
BridgeSiranapKamarVO nKamar = new BridgeSiranapKamarVO();
nKamar.setId((Integer) kamarT.get(i).get("id"));
nKamar.setJumlaKamarIsi((Integer) kamarT.get(i).get("jumlaKamarIsi"));
nKamar.setJumlaKamarKosong((Integer) kamarT.get(i).get("jumlaKamarKosong"));
nKamar.setQtyBed((Byte) kamarT.get(i).get("qtyBed"));
nKamar.setRuanganId((Integer) kamarT.get(i).get("ruanganId"));
Integer kelasId = (Integer) kamarT.get(i).get("kelasId");
String kelasPerawatan = "";
if (kelasId == 1) {// Kelas III
kelasPerawatan = "0005";
} else if (kelasId == 2) {// Kelas II
kelasPerawatan = "0004";
} else if (kelasId == 3) {// Kelas I
kelasPerawatan = "0003";
} else if (kelasId == 4) {// Kelas Intensif -> Rawat Khusus
kelasPerawatan = "0008";
} else if (kelasId == 5) {// VIP A
kelasPerawatan = "0002";
} else if (kelasId == 6) {// non Kelas
kelasPerawatan = "";
} else if (kelasId == 7) {// Isolasi
kelasPerawatan = "0007";
} else if (kelasId == 8) {// VIP B
kelasPerawatan = "0002";
} else {
kelasPerawatan = "";
}
nKamar.setKelasPerawatan(kelasPerawatan);
nKamar.setKelasId((Integer) kamarT.get(i).get("kelasId"));
if (!nKamar.getKelasPerawatan().equals("")) {
aKamar.add(nKamar);
}
}
// merelasikan:
for (int i = 0; i < aKamar.size(); i++) {
for (int j = 0; j < aRuangan.size(); j++) {
if (aKamar.get(i).getRuanganId() == aRuangan.get(j).getId()) {
aRuangan.get(j).addKamar(aKamar.get(i));
}
}
}
for (int i = 0; i < aKamar.size(); i++) {
BridgeSiranapVO x = new BridgeSiranapVO();
x.setTipePasien(aKamar.get(i).getKelasPerawatan());
x.setKodeRuang("belum ada mappingan");
// x.setTotalTT(aKamar.get(i).getQtyBed());
x.setKosongFemale(0);
x.setKosongMale(0);
x.setTerpakaiFemale(0);
x.setTerpakaiMale(0);
x.setWaiting(0);
Calendar cal = Calendar.getInstance();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
x.setTglUpdate(dateFormat.format(cal.getTime()));
y.addBridgeSiranapVO(x);
}
return y;
}
@RequestMapping(value = "/data", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE })
public BridgeSiranapListVO siranapNew() {
BridgeSiranapListVO result = new BridgeSiranapListVO();
String id = bridgingDao.findIdDepartemenRawatInap();//departemenRawatInap id = 16 dan icu = 35
List<Integer> listId = new ArrayList<Integer>();
String idDep[] = id.split(",");
for(int i=0;i<idDep.length;i++)
{
listId.add(Integer.parseInt(idDep[i]));
}
List<Integer> listRuangan = bridgingDao.findIdRuanganDepartemenRawatInap(listId);//list ruangan yg termasuk departemen rawat inap
List<Integer> listRuanganPerawatan = bridgingDao.findIdRuanganPerawatan(listRuangan);
for(Integer idRuanganPerawatan : listRuanganPerawatan)//listRuangan
{
List<Integer> listKelas = bridgingDao.findIdKelasRuangan(idRuanganPerawatan);
for(Integer idKelas : listKelas)//kelas per Ruangan
{
List<Map<String,Object>> listData = bridgingDao.findCountBed(idRuanganPerawatan,idKelas);
BridgeSiranapVO voTempatTidur = new BridgeSiranapVO();
Map<String,Object> dataTempatTidur = new HashMap<String,Object>();
Long total = (long)0;
for(Map<String,Object> data : listData)
{
Long count = (long)0;
if(CommonUtil.isNotNullOrEmpty(data.get("countBed")))
{
count = (Long)data.get("countBed");
}
if(CommonUtil.isNotNullOrEmpty(data.get("statusBed")))
{
dataTempatTidur.put(""+(String)data.get("statusBed"), count);
}
if(CommonUtil.isNotNullOrEmpty(data.get("tipePasien")))
{
dataTempatTidur.put("kode_ruang",(String)data.get("tipePasien"));
voTempatTidur.setTipePasien((String)data.get("tipePasien"));
}
if(CommonUtil.isNotNullOrEmpty(data.get("namaKelas")))
{
dataTempatTidur.put("namaKelas",(String)data.get("namaKelas"));
voTempatTidur.setKodeRuang((String)data.get("namaKelas"));
}
total +=count;
dataTempatTidur.put("total_TT", total);
voTempatTidur.setTotalTT(total);
List<String> tglUpdate = bridgingDao.findTanggalUpdate(idRuanganPerawatan, idKelas);
if(CommonUtil.isNotNullOrEmpty(tglUpdate))
{
dataTempatTidur.put("tglUpdate", tglUpdate.get(0));
}
}
//set to vo
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur))
{
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("ISI")))
{
Long isi = (Long)dataTempatTidur.get("ISI");
voTempatTidur.setTerpakaiFemale(isi.intValue());
}
else
{
voTempatTidur.setTerpakaiFemale(0);
}
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("KOSONG")))
{
Long kosong = (Long)dataTempatTidur.get("KOSONG");
voTempatTidur.setKosongFemale(kosong.intValue());
}
else
{
voTempatTidur.setKosongFemale(0);
}
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("Sedang Proses Administrasi")))
{
Long waiting = (Long)dataTempatTidur.get("Sedang Proses Administrasi");
voTempatTidur.setWaiting(waiting.intValue());
}
else
{
voTempatTidur.setWaiting(0);
}
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("tglUpdate")))
{
String tglUpdate = (String)dataTempatTidur.get("tglUpdate");
voTempatTidur.setTglUpdate(tglUpdate);
}
else
{
voTempatTidur.setTglUpdate(new SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()));
}
voTempatTidur.setKosongMale(0);
voTempatTidur.setTerpakaiMale(0);
saveLogSiranap(voTempatTidur);
}
result.addBridgeSiranapVO(voTempatTidur);
}
}
return result;
}
public void saveLogSiranap(BridgeSiranapVO voTempatTidur)
{
if(CommonUtil.isNotNullOrEmpty(voTempatTidur))
{
LogSiranap log = new LogSiranap();
log.setKodeRuang(voTempatTidur.getKodeRuang());
log.setKosongFemale(voTempatTidur.getKosongFemale()+"");
log.setKosongMale(voTempatTidur.getKosongMale()+"");
log.setTerpakaiFemale(voTempatTidur.getTerpakaiFemale()+"");
log.setTerpakaiMale(voTempatTidur.getTerpakaiMale()+"");
log.setTglUpdate(voTempatTidur.getTglUpdate());
log.setTipePasien(voTempatTidur.getTipePasien());
log.setTotalTempatTidur(voTempatTidur.getTotalTT()+"");
log.setWaiting(voTempatTidur.getWaiting()+"");
log.setTglAccess(new Date());
if(CommonUtil.isNotNullOrEmpty(log))
{
logSiranapDao.save(log);
}
}
}
}