Update service pelayanan pasien
Pembuatan service simpan diskon tagihan
This commit is contained in:
parent
6ea45a2a35
commit
af91731cc0
@ -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,"
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user