diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapJabatanProfesiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapJabatanProfesiDao.java new file mode 100644 index 00000000..c7777a45 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapJabatanProfesiDao.java @@ -0,0 +1,24 @@ +package com.jasamedika.medifirst2000.dao; + +import java.util.List; +import java.util.Map; + +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import com.jasamedika.medifirst2000.entities.MapJabatanProfesi; + +/** + * @author salmanoe + * @since Dec 31, 2021 + */ +@Repository("mapProfesiJabatanDao") +public interface MapJabatanProfesiDao extends PagingAndSortingRepository { + + @Query("select new Map(mjp.id as id," + "prf.id as profesiId,prf.namaProfesi as profesi," + + "jb.id as jabatanId,jb.namaJabatan as jabatan) " + "from MapJabatanProfesi mjp " + + "inner join mjp.profesi prf " + "inner join mjp.jabatan jb " + "where mjp.statusEnabled is true") + List> findMapping(); + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapJabatanProfesiService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapJabatanProfesiService.java new file mode 100644 index 00000000..ef77eb45 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MapJabatanProfesiService.java @@ -0,0 +1,19 @@ +package com.jasamedika.medifirst2000.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.orm.jpa.JpaSystemException; + +import com.jasamedika.medifirst2000.entities.MapJabatanProfesi; +import com.jasamedika.medifirst2000.vo.MapJabatanProfesiVO; + +/** + * @author salmanoe + * @since Dec 31, 2021 + */ +public interface MapJabatanProfesiService extends BaseVoService { + + public List> findMapping() throws JpaSystemException; + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapJabatanProfesiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapJabatanProfesiServiceImpl.java new file mode 100644 index 00000000..236d3b9a --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MapJabatanProfesiServiceImpl.java @@ -0,0 +1,125 @@ +package com.jasamedika.medifirst2000.service.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.stereotype.Service; + +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.MapJabatanProfesiDao; +import com.jasamedika.medifirst2000.entities.Jabatan; +import com.jasamedika.medifirst2000.entities.MapJabatanProfesi; +import com.jasamedika.medifirst2000.entities.Profesi; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.MapJabatanProfesiService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.JabatanVO; +import com.jasamedika.medifirst2000.vo.MapJabatanProfesiVO; +import com.jasamedika.medifirst2000.vo.ProfesiVO; + +/** + * @author salmanoe + * @since Dec 31, 2021 + */ +@Service("mapProfesiJabatanService") +public class MapJabatanProfesiServiceImpl extends BaseVoServiceImpl implements MapJabatanProfesiService { + + @Autowired + private BaseConverterImpl mappingConverter; + + @Autowired + private BaseConverterImpl profesiConverter; + + @Autowired + private BaseConverterImpl jabatanConverter; + + @Autowired + private MapJabatanProfesiDao mapJabatanProfesiDao; + + @Override + public MapJabatanProfesiVO add(MapJabatanProfesiVO vo) throws JpaSystemException, ServiceVOException { + Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + Profesi profesi = profesiConverter.transferVOToModel(vo.getProfesi(), new Profesi()); + + MapJabatanProfesi mapJabatanProfesi = mappingConverter.transferVOToModel(vo, new MapJabatanProfesi()); + mapJabatanProfesi.setJabatan(jabatan); + mapJabatanProfesi.setProfesi(profesi); + MapJabatanProfesi resultModel = mapJabatanProfesiDao.save(mapJabatanProfesi); + + MapJabatanProfesiVO resultVO = new MapJabatanProfesiVO(); + resultVO = mappingConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public MapJabatanProfesiVO update(MapJabatanProfesiVO vo) throws JpaSystemException, ServiceVOException { + MapJabatanProfesi mapJabatanProfesiLama = mapJabatanProfesiDao.findOne(vo.getId()); + + Jabatan jabatan = jabatanConverter.transferVOToModel(vo.getJabatan(), new Jabatan()); + Profesi profesi = profesiConverter.transferVOToModel(vo.getProfesi(), new Profesi()); + + MapJabatanProfesi mapJabatanProfesiBaru = mappingConverter.transferVOToModel(vo, mapJabatanProfesiLama); + mapJabatanProfesiBaru.setProfesi(profesi); + mapJabatanProfesiBaru.setJabatan(jabatan); + MapJabatanProfesi resultModel = mapJabatanProfesiDao.save(mapJabatanProfesiBaru); + + MapJabatanProfesiVO resultVO = new MapJabatanProfesiVO(); + resultVO = mappingConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(Integer key) throws JpaSystemException { + mapJabatanProfesiDao.delete(key); + + return true; + } + + @Override + public MapJabatanProfesiVO findById(Integer key) throws JpaSystemException { + MapJabatanProfesiVO result = new MapJabatanProfesiVO(); + + MapJabatanProfesi mapJabatanProfesi = mapJabatanProfesiDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(mapJabatanProfesi)) { + result = mappingConverter.transferModelToVO(mapJabatanProfesi, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = mapJabatanProfesiDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (MapJabatanProfesi model : models) { + MapJabatanProfesiVO vo = new MapJabatanProfesiVO(); + vo = mappingConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + + return result; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + + return null; + } + + @Override + public List> findMapping() throws JpaSystemException { + List> result = mapJabatanProfesiDao.findMapping(); + + return result; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapJabatanProfesi.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapJabatanProfesi.java new file mode 100644 index 00000000..e67eadc2 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/MapJabatanProfesi.java @@ -0,0 +1,92 @@ +package com.jasamedika.medifirst2000.entities; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; + +import com.jasamedika.medifirst2000.base.BaseActive; +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author salmanoe + * @since Dec 31, 2021 + */ +@Entity +@Table(name = "sdm_mapjabatanprofesi_m") +public class MapJabatanProfesi extends BaseActive { + + private static final long serialVersionUID = 3888545942252692215L; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "jabatanfk") + @NotNull(message = "Jabatan harus diisi") + @Caption(value = "Jabatan") + private Jabatan jabatan; + + @Column(name = "jabatanfk", insertable = false, updatable = false, nullable = false) + private Integer jabatanId; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "profesifk") + @NotNull(message = "Profesi harus diisi") + @Caption(value = "Profesi") + private Profesi profesi; + + @Column(name = "profesifk", insertable = false, updatable = false, nullable = false) + private Integer profesiId; + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.sdm_mapjabatanprofesi_m_seq_gen") + @SequenceGenerator(name = "public.sdm_mapjabatanprofesi_m_seq_gen", sequenceName = "public.sdm_mapjabatanprofesi_m_id_seq", allocationSize = 1) + @Column(name = "id") + protected Integer id; + + public Jabatan getJabatan() { + return jabatan; + } + + public void setJabatan(Jabatan jabatan) { + this.jabatan = jabatan; + } + + public Integer getJabatanId() { + return jabatanId; + } + + public void setJabatanId(Integer jabatanId) { + this.jabatanId = jabatanId; + } + + public Profesi getProfesi() { + return profesi; + } + + public void setProfesi(Profesi profesi) { + this.profesi = profesi; + } + + public Integer getProfesiId() { + return profesiId; + } + + public void setProfesiId(Integer profesiId) { + this.profesiId = profesiId; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapJabatanProfesiVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapJabatanProfesiVO.java new file mode 100644 index 00000000..353b5a1f --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/MapJabatanProfesiVO.java @@ -0,0 +1,64 @@ +package com.jasamedika.medifirst2000.vo; + +import com.jasamedika.medifirst2000.base.vo.BaseActiveVO; +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author salmanoe + * @since Dec 31, 2021 + */ +public class MapJabatanProfesiVO extends BaseActiveVO { + + @Caption(value = "Jabatan") + private JabatanVO jabatan; + + private Integer jabatanId; + + @Caption(value = "Profesi") + private ProfesiVO profesi; + + private Integer profesiId; + + protected Integer id; + + public JabatanVO getJabatan() { + return jabatan; + } + + public void setJabatan(JabatanVO jabatan) { + this.jabatan = jabatan; + } + + public Integer getJabatanId() { + return jabatanId; + } + + public void setJabatanId(Integer jabatanId) { + this.jabatanId = jabatanId; + } + + public ProfesiVO getProfesi() { + return profesi; + } + + public void setProfesi(ProfesiVO profesi) { + this.profesi = profesi; + } + + public Integer getProfesiId() { + return profesiId; + } + + public void setProfesiId(Integer profesiId) { + this.profesiId = profesiId; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + +}