Update service pelayanan pasien

Pembuatan service simpan diskon tagihan
This commit is contained in:
Salman Manoe 2023-07-17 11:56:36 +07:00
parent 6ea45a2a35
commit af91731cc0
6 changed files with 68 additions and 48 deletions

View File

@ -1,22 +1,21 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
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.PelayananPasien;
import com.jasamedika.medifirst2000.entities.PelayananPasienDetail;
import com.jasamedika.medifirst2000.entities.StrukPelayanan;
import com.jasamedika.medifirst2000.entities.StrukResep;
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 java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Repository class for PelayananPasien
*
*
* @author Generator
*/
@Repository("PelayananPasienDao")
@ -197,6 +196,9 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
+ "and pd.noRegistrasi = :noRegistrasi")
List<PelayananPasien> findAll(@Param("noRegistrasi") String noRegistrasi);
@Query("select pp from PelayananPasien pp where pp.noRec in (:listNoRec)")
List<PelayananPasien> findAll(@Param("listNoRec") List<String> listNoRec);
@Query("select new Map(pr.id as idProduk,pr.namaProduk as namaProduk,"
+ "pr.detailJenisProdukId as idDetailJenisProduk,pr.golonganProdukId as idGolonganProduk,"
+ "djp.jenisProdukId as idJenisProduk," + "pd.kelompokPasienId as idKelompokPasien,"

View File

@ -1,11 +1,11 @@
package com.jasamedika.medifirst2000.service;
import java.util.List;
import java.util.Map;
import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto;
import com.jasamedika.medifirst2000.vo.PelayananPasienVO;
import java.util.List;
import java.util.Map;
public interface PelayananPasienService {
Map<String, Object> savePelayananPasien(PelayananPasienVO vo);
@ -30,5 +30,5 @@ public interface PelayananPasienService {
List<TagihanPendaftaranDto> tagihan(String noRegistrasi);
void diskonTagihan(List<TagihanPendaftaranDto> dto);
void diskonTagihan(List<TagihanPendaftaranDto> dtoList);
}

View File

@ -5,6 +5,7 @@ import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
import com.jasamedika.medifirst2000.dao.*;
import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto;
import com.jasamedika.medifirst2000.entities.*;
import com.jasamedika.medifirst2000.exception.ServiceVOException;
import com.jasamedika.medifirst2000.service.PelayananPasienService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
@ -2247,16 +2248,28 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
.namaPegawai(t.get("namaPegawai").toString()).jumlah(Double.parseDouble(t.get("jumlah").toString()))
.hargaJual(Double.parseDouble(t.get("hargaJual").toString()))
.hargaDiskon(Double.parseDouble(t.get("hargaDiskon").toString()))
.hargaJasa(Double.parseDouble(t.get("hargaJasa").toString()))
.totalHargaJual(Double.parseDouble(t.get("totalHargaJual").toString()));
.hargaJasa(Double.parseDouble(t.get("hargaJasa").toString()));
result.add(dtoBuilder.build());
});
return result;
}
@Override
public void diskonTagihan(List<TagihanPendaftaranDto> dto) {
public void diskonTagihan(List<TagihanPendaftaranDto> dtoList) {
double totalDiskon = dtoList.stream().mapToDouble(TagihanPendaftaranDto::getHargaDiskon).sum();
if (totalDiskon > 5_000_000.00)
throw new ServiceVOException("Total Diskon melebihi Rp5.000.000,00");
List<String> listNoRec = dtoList.stream().map(TagihanPendaftaranDto::getNoRec).collect(Collectors.toList());
List<PelayananPasien> listPelayanan = pelayananPasienDao.findAll(listNoRec);
listPelayanan.forEach(p -> {
Optional<TagihanPendaftaranDto> dto = dtoList.stream().filter(d -> d.getNoRec().equals(p.getNoRec()))
.findFirst();
dto.ifPresent(tagihanPendaftaranDto -> {
p.setHargaDiscount(tagihanPendaftaranDto.getHargaDiskon());
p.setJasa(tagihanPendaftaranDto.getHargaJasa());
});
});
pelayananPasienDao.save(listPelayanan);
}
}

View File

@ -22,7 +22,6 @@ public class TagihanPendaftaranDto {
private Double hargaJual;
private Double hargaDiskon;
private Double hargaJasa;
private Double totalHargaJual;
public TagihanPendaftaranDto() {
}
@ -30,7 +29,7 @@ public class TagihanPendaftaranDto {
public TagihanPendaftaranDto(String noRec, Integer idRuangan, String namaRuangan, Date tglPelayanan,
String tglPelayananStr, Integer idProduk, String namaProduk, Integer idKelas, String namaKelas,
Integer idPegawai, String namaPegawai, Double jumlah, Double hargaJual, Double hargaDiskon,
Double hargaJasa, Double totalHargaJual) {
Double hargaJasa) {
super();
this.noRec = noRec;
this.idRuangan = idRuangan;
@ -47,7 +46,6 @@ public class TagihanPendaftaranDto {
this.hargaJual = hargaJual;
this.hargaDiskon = hargaDiskon;
this.hargaJasa = hargaJasa;
this.totalHargaJual = totalHargaJual;
}
public String getNoRec() {
@ -170,14 +168,6 @@ public class TagihanPendaftaranDto {
this.hargaJasa = hargaJasa;
}
public Double getTotalHargaJual() {
return totalHargaJual;
}
public void setTotalHargaJual(Double totalHargaJual) {
this.totalHargaJual = totalHargaJual;
}
public static TagihanPendaftaranDtoBuilder builder() {
return new TagihanPendaftaranDtoBuilder();
}
@ -198,7 +188,6 @@ public class TagihanPendaftaranDto {
private Double hargaJual;
private Double hargaDiskon;
private Double hargaJasa;
private Double totalHargaJual;
public TagihanPendaftaranDtoBuilder() {
}
@ -278,16 +267,10 @@ public class TagihanPendaftaranDto {
return this;
}
public TagihanPendaftaranDtoBuilder totalHargaJual(final Double totalHargaJual) {
this.totalHargaJual = totalHargaJual;
return this;
}
public TagihanPendaftaranDto build() {
return new TagihanPendaftaranDto(this.noRec, this.idRuangan, this.namaRuangan, this.tglPelayanan,
this.tglPelayananStr, this.idProduk, this.namaProduk, this.idKelas, this.namaKelas, this.idPegawai,
this.namaPegawai, this.jumlah, this.hargaJual, this.hargaDiskon, this.hargaJasa,
this.totalHargaJual);
this.namaPegawai, this.jumlah, this.hargaJual, this.hargaDiskon, this.hargaJasa);
}
}
}

View File

@ -21,7 +21,7 @@ import com.jasamedika.medifirst2000.helper.Caption;
@Table(name = "PelayananPasien_T")
public class PelayananPasien extends MedicalRecordTransaction {
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "Generik")
@Caption(value = "Generik")
private Generik generik;
@ -37,7 +37,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "jasa")
private Double jasa;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "KelasFk")
@Caption(value = "Produk")
private Kelas kelas;
@ -123,7 +123,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "piutangRumahSakit", nullable = true)
private Double piutangRumahSakit;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "NoBatch")
@Caption(value = "Struk Order")
private StrukPelayananDNoBatch noBatch;
@ -131,7 +131,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "NoBatch", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = true)
private String noBatchId;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "satuanViewFK")
@Caption(value = "satuanView")
private SatuanStandar satuanView;
@ -147,7 +147,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "StrukOrderFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false)
private String strukOrderId;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "JenisObatFk")
@Caption(value = "Jenis Obat")
private JenisObat jenisObat;
@ -155,7 +155,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "JenisObatFk", insertable = false, updatable = false)
private Integer jenisObatId;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ProdukFk")
@NotNull(message = "Produk Harus Diisi")
@Caption(value = "Produk")
@ -176,7 +176,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Caption(value = "AturanPakai")
private String aturanPakai;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "RouteFk")
@Caption(value = "Route")
private RouteFarmasi route;
@ -184,7 +184,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "RouteFk", insertable = false, updatable = false)
private Integer routeId;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "KeteranganPakaiFk")
@Caption(value = "Keterangan Pakai")
private Stigma keteranganPakai;
@ -196,7 +196,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Caption(value = "KeteranganPakai2")
private String keteranganPakai2;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@Caption(value = "Kelompok Transaksi")
@JoinColumn(name = "KdKelompokTransaksi")
private KelompokTransaksi kelompokTransaksi;
@ -224,7 +224,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "noRecTriger", nullable = true)
private String noRecTriger;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "StrukResepFk")
@Caption(value = "StrukResep")
private StrukResep strukResep;
@ -232,7 +232,7 @@ public class PelayananPasien extends MedicalRecordTransaction {
@Column(name = "StrukResepFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = true)
private String strukResepId;
@ManyToOne
@ManyToOne(fetch = FetchType.LAZY)
@Caption(value = "JenisKemasan")
@JoinColumn(name = "JenisKemasanFK")
private JenisKemasan jenisKemasan;

View File

@ -22,6 +22,8 @@ import org.springframework.orm.jpa.JpaSystemException;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -214,4 +216,24 @@ public class PelayananController extends LocaleController<PelayananPasienVO> {
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/tagihan/diskon/save", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> simpanDiskonTagihan(HttpServletRequest request,
@RequestBody List<TagihanPendaftaranDto> dtoList) {
try {
pelayananPasienService.diskonTagihan(dtoList);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(dtoList, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException e) {
LOGGER.error("Got exception {} when simpan diskon tagihan {}", e.getMessage(), null);
Map<String, String> error = new HashMap<String, String>();
error.put("bad-request", e.getMessage());
return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when simpan diskon tagihan {}", jse.getMessage(), null);
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
}