package com.jasamedika.medifirst2000.entities; import com.fasterxml.jackson.annotation.JsonBackReference; import com.jasamedika.medifirst2000.base.BaseMasterPegawai; import com.jasamedika.medifirst2000.helper.Caption; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.Date; import java.util.HashSet; import java.util.Set; import static javax.persistence.FetchType.LAZY; @Getter @Setter @Entity @Table(name = "Pegawai_M") public class Pegawai extends BaseMasterPegawai { public Pegawai(String namaLengkap, String namaPanggilan, String nikIntern, String nipPns, String noIdentitas, String npwp, Integer id) { super(); this.namaLengkap = namaLengkap; this.namaPanggilan = namaPanggilan; this.nikIntern = nikIntern; this.nipPns = nipPns; this.noIdentitas = noIdentitas; this.npwp = npwp; this.id = id; } public Pegawai(String namaLengkap, String namaPanggilan, String nikIntern, String nipPns, String noIdentitas, String npwp, Integer id, String email, Integer ruanganId, String namaRuangan, String kdDepartemen, String namaDepartemen, Integer departemenId) { super(); this.namaLengkap = namaLengkap; this.namaPanggilan = namaPanggilan; this.nikIntern = nikIntern; this.nipPns = nipPns; this.noIdentitas = noIdentitas; this.npwp = npwp; this.id = id; this.email = email; this.ruangan = new Ruangan(namaRuangan, ruanganId, kdDepartemen, namaDepartemen, departemenId); } public Pegawai(String namaLengkap, String namaPanggilan, String nikIntern, String nipPns, String noIdentitas, String npwp, Integer unitKerjaId, String unitKerja, Integer id, String email, Integer ruanganId, String namaRuangan, String kdDepartemen, String namaDepartemen, Integer departemenId) { super(); this.namaLengkap = namaLengkap; this.namaPanggilan = namaPanggilan; this.nikIntern = nikIntern; this.nipPns = nipPns; this.noIdentitas = noIdentitas; this.npwp = npwp; this.id = id; this.email = email; this.unitKerja = new SubUnitKerjaPegawai(unitKerjaId, unitKerja); this.ruangan = new Ruangan(namaRuangan, ruanganId, kdDepartemen, namaDepartemen, departemenId); } public Pegawai(String namaLengkap, String namaPanggilan, String nikIntern, String nipPns, String noIdentitas, String npwp, Integer id, short qPegawai) { this(namaLengkap, namaPanggilan, nikIntern, nipPns, noIdentitas, npwp, id); this.qPegawai = qPegawai; } public Pegawai(Integer id, String namaLengkap) { super(); this.id = id; this.namaLengkap = namaLengkap; } public Pegawai(Integer id, String namaLengkap, String nipPns) { this.id = id; this.namaLengkap = namaLengkap; this.nipPns = nipPns; } public Pegawai(Integer pegawai, Integer jabatan, String namaJabatan, Integer subUnitKerjaPegawai, Integer unitKerjaPegawai) { super(); this.id = pegawai; this.jabatanInternal = new Jabatan(jabatan, namaJabatan); this.unitKerja = new SubUnitKerjaPegawai(subUnitKerjaPegawai); this.unitKerja.setUnitKerja(new UnitKerjaPegawai(unitKerjaPegawai)); } public Pegawai() { } @Column(name = "Nip") @Caption(value = "Nip") private String nip; @Column(name = "Nama") @Caption(value = "Nama") private String nama; @ManyToOne(fetch = LAZY) @JoinColumn(name = "KedudukanFk") @Caption(value = "Kedudukan") private Kedudukan kedudukan; @Column(name = "KedudukanFk", insertable = false, updatable = false) private Integer kedudukanId; @Column(name = "TanggalMeninggal") @Caption(value = "TanggalMeninggal") private Date tanggalMeninggal; @Column(name = "IdFinger") @Caption(value = "IdFinger") private String idFinger; @Column(name = "KodeGapokFk", insertable = false, updatable = false) private String kodeGapokId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectGolonganFk") @Caption(value = "Golongan") private Golongan Golongan; @Column(name = "ObjectGolonganFk", insertable = false, updatable = false) private Integer GolonganId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectGolonganPegawaiFk") @Caption(value = "Golongan Pegawai") private GolonganPegawai golonganPegawai; @Column(name = "ObjectGolonganPegawaiFk", insertable = false, updatable = false) private Integer golonganPegawaiId; @Column(name = "Pensiun") @Caption(value = "Pensiun") private Integer pensiun; @Column(name = "tglPensiun") @Caption(value = "tglPensiun") private Date tglPensiun; @Column(name = "TunjanganFungsional") @Caption(value = "TunjanganFungsional") private String tunjanganFungsional; @Column(name = "TunjanganPapua") @Caption(value = "TunjanganPapua") private Integer tunjanganPapua; @Column(name = "WilayahTerperinci") @Caption(value = "WilayahTerperinci") private Integer wilayahTerperinci; @Column(name = "TunjanganUmum") @Caption(value = "TunjanganUmum") private Integer tunjanganUmum; @ManyToOne(fetch = LAZY) @JoinColumn(name = "StatusKawinFk") @Caption(value = "Status Kawin") private StatusPerkawinan statusKawin; @Column(name = "StatusKawinFk", insertable = false, updatable = false) private Integer statusKawinId; @Column(name = "Beras") @Caption(value = "Beras") private String beras; @Column(name = "SewaRumah") @Caption(value = "SewaRumah") private String sewaRumah; @Column(name = "NomorRekening") @Caption(value = "NomorRekening") private String nomorRekening; @Column(name = "NamaRekening") @Caption(value = "NamaRekening") private String namaRekening; @Column(name = "KodeBank") @Caption(value = "KodeBank") private String kodeBank; @Column(name = "Alamat") @Caption(value = "Alamat") private String alamat; @Column(name = "KodePos") @Caption(value = "KodePos") private String kodePos; @Caption(value = "Bank Rekening Atas Nama") @Column(name = "BankRekeningAtasNama") private String bankRekeningAtasNama; @Caption(value = "Bank Rekening Nama") @Column(name = "BankRekeningNama") private String bankRekeningNama; @Caption(value = "Bank Rekening Nomor") @Column(name = "BankRekeningNomor") private String bankRekeningNomor; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectAgamaFk") @Caption(value = "Object Agama") private Agama agama; @Column(name = "ObjectAgamaFk", insertable = false, updatable = false) private Integer agamaId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectDetailKategoryPegawaiFk") @Caption(value = "Object Detail Kategory Pegawai") private DetailKategoryPegawai detailKategoryPegawai; @Column(name = "ObjectDetailKategoryPegawaiFk", insertable = false, updatable = false) private Integer detailKategoryPegawaiId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectDokumenSuratLamarFk") @Caption(value = "Object Dokumen Surat Lamar") private Dokumen dokumen; @Column(name = "ObjectDokumenSuratLamarFk", insertable = false, updatable = false) private Integer dokumenId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectEselonFk") @Caption(value = "Object Eselon") private Eselon eselon; @Column(name = "ObjectEselonFk", insertable = false, updatable = false) private Integer eselonId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectGolonganDarahFk") @Caption(value = "Object Golongan Darah") private GolonganDarah golonganDarah; @Column(name = "ObjectGolonganDarahFk", insertable = false, updatable = false) private Integer golonganDarahId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJabatanFungsionalFk") @Caption(value = "Object Jabatan Fungsional") private Jabatan jabatanFungsional; @Column(name = "ObjectJabatanFungsionalFk", insertable = false, updatable = false) private Integer jabatanFungsionalId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectUnitkerjaPegawaiFk") @Caption(value = "Object Unitkerja") private SubUnitKerjaPegawai unitKerja; @Column(name = "ObjectUnitkerjaPegawaiFk", insertable = false, updatable = false) private Integer unitKerjaId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "objectjabatanInternalfk") @Caption(value = "Object Jabatan Internal") private Jabatan jabatanInternal; @Column(name = "objectjabatanInternalfk", insertable = false, updatable = false) private Integer jabatanInternalId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJabatanLamarFk") @Caption(value = "Object Jabatan Lamar") private Jabatan jabatanLamar; @Column(name = "ObjectJabatanLamarFk", insertable = false, updatable = false) private Integer jabatanLamarId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJabatanStrukturalFk") @Caption(value = "Object Jabatan Struktural") private Jabatan jabatanStruktural; @Column(name = "ObjectJabatanStrukturalFk", insertable = false, updatable = false) private Integer jabatanStrukturalId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJenisKelaminFk") @Caption(value = "Object Jenis Kelamin") private JenisKelamin jenisKelamin; @Column(name = "ObjectJenisKelaminFk", insertable = false, updatable = false) private Integer jenisKelaminId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJenisPegawaiFk") @Caption(value = "Object Jenis Pegawai") private JenisPegawai jenisPegawai; @Column(name = "ObjectJenisPegawaiFk", insertable = false, updatable = false) private Integer jenisPegawaiId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectJenisPegawaiLamarFk") @Caption(value = "Object Jenis Pegawai Lamar") private JenisPegawai jenisPegawaiLamar; @Column(name = "ObjectJenisPegawaiLamarFk", insertable = false, updatable = false, nullable = false) private Integer jenisPegawaiLamarId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectKualifikasiJurusanFk") @Caption(value = "Object Kualifikasi Jurusan") private KualifikasiJurusan kualifikasiJurusan; @Column(name = "ObjectKualifikasiJurusanFk", insertable = false, updatable = false) private Integer kualifikasiJurusanId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectNegaraFk") @Caption(value = "Object Negara") private Negara negara; @Column(name = "ObjectNegaraFk", insertable = false, updatable = false) private Integer negaraId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectPangkatFk") @Caption(value = "Object Pangkat") private Pangkat pangkat; @Column(name = "ObjectPangkatFk", insertable = false, updatable = false, nullable = false) private Integer pangkatId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectPendidikanTerakhirFk") @Caption(value = "Object Pendidikan Terakhir") private Pendidikan pendidikan; @Column(name = "ObjectPendidikanTerakhirFk", insertable = false, updatable = false) private Integer pendidikanId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectPTKPFk") @Caption(value = "Object P T K P") private PenghasilanTidakKenaPajak penghasilanTidakKenaPajak; @Column(name = "ObjectPTKPFk", insertable = false, updatable = false) private Integer penghasilanTidakKenaPajakId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectRangeTotalNilaiScoreFk") @Caption(value = "Object Range Total Nilai Score") private Range range; @Column(name = "ObjectRangeTotalNilaiScoreFk", insertable = false, updatable = false) private Integer rangeId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectRuanganKerjaFk") @Caption(value = "Object Ruangan Kerja") private Ruangan ruangan; @Column(name = "ObjectRuanganKerjaFk", insertable = false, updatable = false) private Integer ruanganId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectShiftKerja") @Caption(value = "ObjectShiftKerja") private KelompokShift shiftKerja; @ManyToOne(fetch = LAZY) @JoinColumn(name = "LevelTingkatFk") @Caption(value = "Level Tingkat") private LevelTingkat levelTingkat; @Column(name = "LevelTingkatFk", insertable = false, updatable = false) private Integer levelTingkatId; @Column(name = "ObjectShiftKerja", insertable = false, updatable = false) private Integer shiftKerjaId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "KategoryPegawai") @Caption(value = "Object Status Pegawai") private KategoryPegawai kategoryPegawai; @Column(name = "KategoryPegawai", insertable = false, updatable = false) private Integer kategoryPegawaiId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectStatusPegawaiFk") @Caption(value = "Object Status Pegawai") private StatusPegawai statusPegawai; @Column(name = "ObjectStatusPegawaiFk", insertable = false, updatable = false) private Integer statusPegawaiId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectStatusPerkawinanPegawaiFk") @Caption(value = "Object Status Perkawinan Pegawai") private StatusPerkawinanPegawai statusPerkawinanPegawai; @Column(name = "ObjectStatusPerkawinanPegawaiFk", insertable = false, updatable = false) private Integer statusPerkawinanPegawaiId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectSukuFk") @Caption(value = "Object Suku") private Suku suku; @Column(name = "ObjectSukuFk", insertable = false, updatable = false) private Integer sukuId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectTitleFk") @Caption(value = "Object Title") private TitlePasien titlePasien; @Column(name = "ObjectTitleFk", insertable = false, updatable = false) private Integer titlePasienId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectTypePegawaiFk") @Caption(value = "Object Type Pegawai") private TypePegawai typePegawai; @Column(name = "ObjectTypePegawaiFk", insertable = false, updatable = false) private Integer typePegawaiId; @Caption(value = "Nama Keluarga") @Column(name = "NamaKeluarga") private String namaKeluarga; @Caption(value = "Nama Lengkap") @Column(name = "NamaLengkap") private String namaLengkap; @Caption(value = "Nama Panggilan") @Column(name = "NamaPanggilan") private String namaPanggilan; @Caption(value = "NIK_ Intern") @Column(name = "NIK_Intern") private String nikIntern; @Caption(value = "NIP_ P N S") @Column(name = "NIP_PNS") private String nipPns; @Caption(value = "No Identitas") @Column(name = "NoIdentitas") private String noIdentitas; @Column(name = "noCm", unique = true) @Caption(value = "No C M") private String noCm; @Column(name = "NoStruk_TTujuanLastFk", insertable = false, updatable = false) private Integer noStruk_TTujuanLastId; @Caption(value = "NP W P") @Column(name = "NPWP") private String npwp; @Caption(value = "gelarDepan") @Column(name = "gelarDepan") private String gelarDepan; @Caption(value = "gelarBelakang") @Column(name = "gelarBelakang") private String gelarBelakang; @Caption(value = "Photo Diri") @Column(name = "PhotoDiri") private String photoDiri; @Caption(value = "QPegawai") @Column(name = "QPegawai") private short qPegawai; @Caption(value = "Qty Anak") @Column(name = "QtyAnak") private Byte qtyAnak; @Caption(value = "Qty Tanggungan") @Column(name = "QtyTanggungan") private Byte qtyTanggungan; @Caption(value = "Qty Total Jiwa") @Column(name = "QtyTotalJiwa") private Byte qtyTotalJiwa; @Caption(value = "Status Rhesus") @Column(name = "StatusRhesus") private String statusRhesus; @Caption(value = "Tempat Lahir") @Column(name = "TempatLahir") private String tempatLahir; @Caption(value = "Total Nilai Score") @Column(name = "TotalNilaiScore") private Double totalNilaiScore; @Caption(value = "Email") @Column(name = "Email") private String email; @Caption(value = "Email Alternatif") @Column(name = "EmailAlternatif") private String emailAlternatif; @Caption(value = "No Tlp") @Column(name = "NoTlp") private String noTlp; @Caption(value = "No Handphone") @Column(name = "NoHandphone") private String noHandphone; @Column(name = "tglkeluar") private Date tglkeluar; @Column(name = "TglMasuk") private Date tglMasuk; @Column(name = "TglLahir") private Date tglLahir; @Column(name = "noBPJS") private String noBPJS; @Column(name = "noSip") private String noSip; @Column(name = "tglTerbitSip") private Date tglTerbitSip; @Column(name = "tglBerakhirSip") private Date tglBerakhirSip; @Column(name = "noStr") private String noStr; @Column(name = "tglTerbitStr") private Date tglTerbitStr; @Column(name = "tglBerakhirStr") private Date tglBerakhirStr; @JsonBackReference @OneToMany(cascade = CascadeType.ALL, fetch = LAZY, mappedBy = "pegawai") private Set riwayatPendidikanSet = new HashSet<>(); @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectSatuanKerjaFK") private SatuanKerja satuanKerja; @Column(name = "ObjectSatuanKerjaFK", insertable = false, updatable = false) private Integer satuanKerjaId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectRekananFk") @Caption(value = "Object Rekanan") private Rekanan rekanan; @Column(name = "ObjectRekananFk", insertable = false, updatable = false) private Integer rekananId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectPeriodePengajarFk") @Caption(value = "Object periodePengajar") private PeriodePengajar periodePengajar; @Column(name = "ObjectPeriodePengajarFk", columnDefinition = "CHAR(32)", insertable = false, updatable = false) private String periodePengajarId; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectKelompokJabatanFk") @Caption(value = "Object KelompokJabatan") private NilaiKelompokJabatan detailKelompokJabatan; @Column(name = "ObjectKelompokJabatanFk", insertable = false, updatable = false) private Integer detailKelompokJabatanId; @Column(name = "grade") private Double grade; @Column(name = "nilaiJabatan") private Double nilaiJabatan; @Column(name = "isMenanggung") private Boolean isMenanggung; @ManyToOne(fetch = LAZY) @JoinColumn(name = "ObjectPegawaiPembimbingFk") @Caption(value = "Object PegawaiPembimbing") private Pegawai pegawaiPembimbing; @Column(name = "ObjectPegawaiPembimbingFk", insertable = false, updatable = false) private Integer pegawaiPembimbingId; }