Update PelayananPasienService

Pembuatan service reset klaim diskon
This commit is contained in:
salmanoersabhk 2022-06-13 07:57:42 +07:00
parent 717043ecba
commit c38df4ac9d
9 changed files with 131 additions and 16 deletions

View File

@ -64,8 +64,8 @@ public interface PasienDaftarDao extends PagingAndSortingRepository<PasienDaftar
List<PasienDaftar> finByNoIdAndTglRegistrasiList(@Param("kdProfile") short kdProfile, @Param("id") Integer id,
@Param("masuk") String masuk, @Param("keluar") String keluar);
@Query("select p from PasienDaftar p where p.noRegistrasi=:noRegistrasi ")
List<PasienDaftar> findByNoRegister(@Param("noRegistrasi") String noRegistrasi);
@Query("select pd from PasienDaftar pd where pd.statusEnabled is true and pd.noRegistrasi = :noRegistrasi")
List<PasienDaftar> findAll(@Param("noRegistrasi") String noRegistrasi);
@Query("select p from PasienDaftar p where p.pasien.noCm=:noCm and :kdProfile=:kdProfile ")
List<PasienDaftar> findPelayananRawatJalan(@Param("kdProfile") Short kdProfile, @Param("noCm") String noCm);

View File

@ -181,4 +181,14 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
@Param("produkLabRadiologi") List<Integer> produkLabRadiologi,
@Param("produkFarmasi") List<Integer> produkFarmasi, @Param("produkMpp") List<Integer> produkMpp);
@Query("select ppd from PelayananPasienDetail ppd " + "inner join ppd.pelayananPasien pp "
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "where apd.statusEnabled is true "
+ "and pd.statusEnabled is true " + "and pd.noRegistrasi = :noRegistrasi")
List<PelayananPasienDetail> findDetail(@Param("noRegistrasi") String noRegistrasi);
@Query("select pp from PelayananPasien pp " + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd "
+ "where apd.statusEnabled is true " + "and pd.statusEnabled is true "
+ "and pd.noRegistrasi = :noRegistrasi")
List<PelayananPasien> findAll(@Param("noRegistrasi") String noRegistrasi);
}

View File

@ -15,6 +15,8 @@ public interface PelayananPasienService {
List<Map<String, Object>> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir);
List<String> updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim, Integer jenisDiskon);
List<String> updateKlaimDiskon(String noRegistrasi, Double totalKlaim, Integer jenisDiskon);
String resetKlaimDiskon(String noRegistrasi);
}

View File

@ -19,11 +19,14 @@ import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao;
import com.jasamedika.medifirst2000.dao.LogAccDao;
import com.jasamedika.medifirst2000.dao.PasienDaftarDao;
import com.jasamedika.medifirst2000.dao.PelayananPasienDao;
import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
import com.jasamedika.medifirst2000.entities.JenisObat;
import com.jasamedika.medifirst2000.entities.LogAcc;
import com.jasamedika.medifirst2000.entities.PasienDaftar;
import com.jasamedika.medifirst2000.entities.PelayananPasien;
import com.jasamedika.medifirst2000.entities.PelayananPasienDetail;
import com.jasamedika.medifirst2000.entities.Produk;
import com.jasamedika.medifirst2000.service.PelayananPasienService;
import com.jasamedika.medifirst2000.util.CommonUtil;
@ -49,14 +52,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
@Autowired
private BaseConverterImpl<ProdukVO, Produk> produkConverter;
@Autowired
private PasienDaftarDao pasienDaftarDao;
@Autowired
private PelayananPasienDao pelayananPasienDao;
@Autowired
private LogAccDao logAccDao;
private AntrianPasienDiPeriksaDao antrianPasienDiPeriksaDao;
@Autowired
private AntrianPasienDiPeriksaDao antrianPasienDiPeriksaDao;
private LogAccDao logAccDao;
@Autowired
private StrukPelayananDao strukPelayananDao;
@ -255,7 +261,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
}
@Override
public List<String> updateKlaimDiskonKaryawan(String noRegistrasi, Double totalKlaim, Integer jenisDiskon) {
public List<String> updateKlaimDiskon(String noRegistrasi, Double totalKlaim, Integer jenisDiskon) {
List<String> result = new ArrayList<>();
List<Integer> labRadiologi = new ArrayList<>();
@ -293,4 +299,82 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
return result;
}
@Override
public String resetKlaimDiskon(String noRegistrasi) {
String result = "";
/*
* Update Pelayanan Pasien
*/
List<PelayananPasienDetail> detailLayanan = pelayananPasienDao.findDetail(noRegistrasi);
List<PelayananPasien> layanan = pelayananPasienDao.findAll(noRegistrasi);
double jasaObat = 800.00;
for (PelayananPasien pp : layanan) {
/*
* Get diskon jasamedis
*/
double diskonJasamedis = 0.0;
for (PelayananPasienDetail ppd : detailLayanan) {
if (pp.getNoRec().equals(ppd.getPelayananPasienId())
&& CommonUtil.isNotNullOrEmpty(ppd.getHargaDiscount()) && ppd.getHargaDiscount() > 0.0) {
diskonJasamedis += ppd.getHargaDiscount();
}
}
/*
* Set diskon layanan
*/
if (CommonUtil.isNotNullOrEmpty(pp.getHargaDiscount()) && pp.getHargaDiscount() > 0.0) {
if (diskonJasamedis > 0.0 && pp.getHargaDiscount() >= diskonJasamedis) {
pp.setHargaDiscount(diskonJasamedis);
if (CommonUtil.isNotNullOrEmpty(pp.getStrukResepId())) {
pp.setJasa(jasaObat);
}
} else {
pp.setHargaDiscount(0.0);
}
}
}
/*
* Update Flag Jenis Diskon Pasien Daftar
*/
List<PasienDaftar> pendaftaran = pasienDaftarDao.findAll(noRegistrasi);
for (PasienDaftar pd : pendaftaran) {
pd.setDiskonPegawai(0);
}
boolean exception = false;
for (PasienDaftar pd : pendaftaran) {
if (CommonUtil.isNotNullOrEmpty(pd.getStrukPelayananId())
&& CommonUtil.isNotNullOrEmpty(pd.getStrukBuktiPenerimaanId())) {
exception = true;
result = "Batal diskon gagal, tagihan layanan sudah lunas!";
break;
} else if (CommonUtil.isNotNullOrEmpty(pd.getStrukPelayananId())
&& CommonUtil.isNullOrEmpty(pd.getStrukBuktiPenerimaanId())) {
exception = true;
result = "Batal diskon gagal, pelayanan sudah terverifikasi!";
break;
} else if (CommonUtil.isNotNullOrEmpty(pd.getDiskonPegawai()) && pd.getDiskonPegawai() == 0) {
exception = true;
result = "Belum dilakukan diskon!";
break;
}
}
if (!exception) {
pelayananPasienDao.save(layanan);
pasienDaftarDao.save(pendaftaran);
result = "Batal diskon berhasil!";
}
return result;
}
}

View File

@ -106,7 +106,7 @@ public class PenanggungJawabPasienServiceImpl extends BaseVoServiceImpl implemen
}
if(CommonUtil.isNotNullOrEmpty(pj.getPasienDaftar())) {
List<PasienDaftar> listPasienDaftar = pasienDaftarDao.findByNoRegister(pj.getPasienDaftar().getNoRegistrasi());
List<PasienDaftar> listPasienDaftar = pasienDaftarDao.findAll(pj.getPasienDaftar().getNoRegistrasi());
if (!listPasienDaftar.isEmpty()) {
penanggungJawabPasien.setPasienDaftar(listPasienDaftar.get(0));
} else {

View File

@ -194,7 +194,7 @@ public class RegistrasiPelayananPasienServiceImpl extends BaseVoServiceImpl
if (list.size() != 0) {
antrianPasienDiPeriksa = list.get(0);
}
List<PasienDaftar> pasienDaftarList = pasienDaftarDao.findByNoRegister(noRegistrasi);
List<PasienDaftar> pasienDaftarList = pasienDaftarDao.findAll(noRegistrasi);
PasienDaftar pasienDaftar = pasienDaftarList.get(0);
// String noMasuk=getFormatNumberByMonthYear();

View File

@ -128,7 +128,7 @@ public class StrukBuktiPengeluaranServiceImpl implements StrukBuktiPengeluaranSe
strukPelayanan.setNostruk(getRunningNumber("StrukPelayanan"));
if (!vo.getNoregistrasi().getNoRegistrasi().isEmpty() || vo.getNoregistrasi().getNoRegistrasi() != null) {
List<PasienDaftar> listPasienDaftar = pasienDaftarDao.findByNoRegister(vo.getNoregistrasi().getNoRegistrasi());
List<PasienDaftar> listPasienDaftar = pasienDaftarDao.findAll(vo.getNoregistrasi().getNoRegistrasi());
if (!listPasienDaftar.isEmpty()) {
strukPelayanan.setNoregistrasi(listPasienDaftar.get(0));
}

View File

@ -242,7 +242,7 @@ public class PasienDaftar extends BaseTransaction {
private StrukBuktiPenerimaan strukBuktiPenerimaan;
@Column(name = "NoSbmLastFk", insertable = false, updatable = false)
private Integer strukBuktiPenerimaanId;
private String strukBuktiPenerimaanId;
@Caption(value = "Kode Status Diskon Pegawai")
@Column(name = "diskonpegawai", nullable = true)
@ -672,11 +672,11 @@ public class PasienDaftar extends BaseTransaction {
this.strukBuktiPenerimaan = strukBuktiPenerimaan;
}
public Integer getStrukBuktiPenerimaanId() {
public String getStrukBuktiPenerimaanId() {
return strukBuktiPenerimaanId;
}
public void setStrukBuktiPenerimaanId(Integer strukBuktiPenerimaanId) {
public void setStrukBuktiPenerimaanId(String strukBuktiPenerimaanId) {
this.strukBuktiPenerimaanId = strukBuktiPenerimaanId;
}

View File

@ -141,14 +141,33 @@ public class PelayananController extends LocaleController<PelayananPasienVO> {
}
}
@RequestMapping(value = "/klaim-diskon-karyawan", method = RequestMethod.GET)
public ResponseEntity<List<String>> updateKlaimDiskonKaryawan(HttpServletRequest request,
@RequestMapping(value = "/klaim-diskon", method = RequestMethod.GET)
public ResponseEntity<List<String>> KlaimDiskon(HttpServletRequest request,
@RequestParam(value = "noRegistrasi", required = true) String noRegistrasi,
@RequestParam(value = "totalKlaim", required = true) Double totalKlaim,
@RequestParam(value = "jenisDiskon", required = true) Integer jenisDiskon) {
try {
List<String> result = pelayananPasienService.updateKlaimDiskonKaryawan(noRegistrasi, totalKlaim,
jenisDiskon);
List<String> result = pelayananPasienService.updateKlaimDiskon(noRegistrasi, totalKlaim, jenisDiskon);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) {
LOGGER.error("Got exception {} when klaim diskon karyawan", e.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when klaim diskon karyawan", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/reset-klaim-diskon", method = RequestMethod.GET)
public ResponseEntity<String> ResetKlaimDiskon(HttpServletRequest request,
@RequestParam(value = "noRegistrasi") String noRegistrasi) {
try {
String result = pelayananPasienService.resetKlaimDiskon(noRegistrasi);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);