fix api post drp
This commit is contained in:
		| @@ -1,10 +1,13 @@ | ||||
| package com.iconplus.smartproc.controller; | ||||
|  | ||||
| import com.iconplus.smartproc.model.request.DrpPengadaanRequest; | ||||
| import com.iconplus.smartproc.model.request.DrpRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpPengadaanResponse; | ||||
| import com.iconplus.smartproc.model.response.DrpResponse; | ||||
| import com.iconplus.smartproc.model.response.GetListDrpResponse; | ||||
| import com.iconplus.smartproc.service.drp.GetDrpService; | ||||
| import com.iconplus.smartproc.service.drp.GetListDrpService; | ||||
| import com.iconplus.smartproc.service.drp.PostCreateDrpPengadaanService; | ||||
| import com.iconplus.smartproc.service.drp.PostCreateDrpService; | ||||
| import org.springframework.data.domain.PageRequest; | ||||
| import org.springframework.data.domain.Pageable; | ||||
| @@ -18,13 +21,16 @@ public class DrpController { | ||||
|     private final GetDrpService getDrpService; | ||||
|     private final GetListDrpService getListDrpService; | ||||
|     private final PostCreateDrpService postCreateDrpService; | ||||
|     private final PostCreateDrpPengadaanService postCreateDrpPengadaanService; | ||||
|  | ||||
|     public DrpController(GetDrpService getDrpService, | ||||
|                          GetListDrpService getListDrpService, | ||||
|                          PostCreateDrpService postCreateDrpService) { | ||||
|                          PostCreateDrpService postCreateDrpService, | ||||
|                          PostCreateDrpPengadaanService postCreateDrpPengadaanService) { | ||||
|         this.getDrpService = getDrpService; | ||||
|         this.getListDrpService = getListDrpService; | ||||
|         this.postCreateDrpService = postCreateDrpService; | ||||
|         this.postCreateDrpPengadaanService = postCreateDrpPengadaanService; | ||||
|     } | ||||
|  | ||||
|     @GetMapping | ||||
| @@ -53,4 +59,14 @@ public class DrpController { | ||||
|         return postCreateDrpService.execute(drpRequest); | ||||
|     } | ||||
|  | ||||
|     @PostMapping("/pengadaan") | ||||
|     public DrpPengadaanResponse createDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) { | ||||
|         return postCreateDrpPengadaanService.execute(drpPengadaanRequest); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/pengadaan") | ||||
|     public DrpPengadaanResponse getDrpPengadaan(@RequestBody DrpPengadaanRequest drpPengadaanRequest) { | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,82 @@ | ||||
| package com.iconplus.smartproc.model.entity; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseEntity; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| @Entity | ||||
| @Table(name = "drp_pengadaan") | ||||
| public class DrpPengadaan extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.IDENTITY) | ||||
|     private Long id; | ||||
|  | ||||
|     @Column(name = "drp_id") | ||||
|     private Long drpId; | ||||
|  | ||||
|     @Column(name = "nomor") | ||||
|     private String nomor; | ||||
|  | ||||
|     @Column(name = "nama_pengadaan") | ||||
|     private String namaPengadaan; | ||||
|  | ||||
|     @Column(name = "lokasi_id") | ||||
|     private Long lokasiId; | ||||
|  | ||||
|     @Column(name = "jenis_pengadaan_id") | ||||
|     private Long jenisPengadaanId; | ||||
|  | ||||
|     @Column(name = "unit_inisiator_id") | ||||
|     private Long unitInisiatorId; | ||||
|  | ||||
|     @Column(name = "pagu") | ||||
|     private BigDecimal pagu; | ||||
|  | ||||
|     @Column(name = "sumber_dana_id") | ||||
|     private Long sumberDanaId; | ||||
|  | ||||
|     @Column(name = "supply_positioning_matrix_id") | ||||
|     private Long supplyPositioningMatrixId; | ||||
|  | ||||
|     @Column(name = "metode_pengadaan_id") | ||||
|     private Long metodePengadaanId; | ||||
|  | ||||
|     @Column(name = "metode_penyampaian_id") | ||||
|     private Long metodePenyampaianId; | ||||
|  | ||||
|     @Column(name = "jenis_kontrak_id") | ||||
|     private Long jenisKontrakId; | ||||
|  | ||||
|     @Column(name = "strategi_pengadaan_id") | ||||
|     private Long strategiPengadaanId; | ||||
|  | ||||
|     @Column(name = "rencana_tanggal") | ||||
|     private Timestamp rencanaTanggal; | ||||
|  | ||||
|     @Column(name = "target_tanggal") | ||||
|     private Timestamp targetTanggal; | ||||
|  | ||||
|     @Column(name = "hpe") | ||||
|     private BigDecimal hpe; | ||||
|  | ||||
|     @Column(name = "is_active") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isActive; | ||||
|  | ||||
|     @Column(name = "is_delete") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isDelete; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,48 @@ | ||||
| package com.iconplus.smartproc.model.entity; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseEntity; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
|  | ||||
| import javax.persistence.*; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| @Entity | ||||
| @Table(name = "drp_pengadaan_dokumen") | ||||
| public class DrpPengadaanDokumen extends BaseEntity { | ||||
|  | ||||
|     @Id | ||||
|     @GeneratedValue(strategy = GenerationType.IDENTITY) | ||||
|     @Column(name = "id") | ||||
|     private Long id; | ||||
|  | ||||
|     @Column(name = "drp_id") | ||||
|     private Long drpId; | ||||
|  | ||||
|     @Column(name = "jenis_dokumen_id") | ||||
|     private Long jenisDokumenId; | ||||
|  | ||||
|     @Column(name = "filename") | ||||
|     private String filename; | ||||
|  | ||||
|     @Column(name = "file") | ||||
|     private byte[] file; | ||||
|  | ||||
|     @Column(name = "keterangan") | ||||
|     private String keterangan; | ||||
|  | ||||
|     @Column(name = "is_active") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isActive; | ||||
|  | ||||
|     @Column(name = "is_delete") | ||||
|     @Type(type = "org.hibernate.type.NumericBooleanType") | ||||
|     private Boolean isDelete; | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,25 @@ | ||||
| package com.iconplus.smartproc.model.request; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseRequest; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import javax.persistence.Entity; | ||||
| import javax.persistence.Table; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpPengadaanDokumenRequest extends BaseRequest { | ||||
|  | ||||
|     private Long id; | ||||
|     private Long drpId; | ||||
|     private Long jenisDokumenId; | ||||
|     private String filename; | ||||
|     private byte[] file; | ||||
|     private String keterangan; | ||||
|     private Boolean isDelete; | ||||
| } | ||||
| @@ -0,0 +1,49 @@ | ||||
| package com.iconplus.smartproc.model.request; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseRequest; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
| import org.hibernate.annotations.Type; | ||||
| import org.springframework.data.domain.Pageable; | ||||
|  | ||||
| import javax.persistence.Column; | ||||
| import javax.persistence.GeneratedValue; | ||||
| import javax.persistence.GenerationType; | ||||
| import javax.persistence.Id; | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Timestamp; | ||||
| import java.util.List; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpPengadaanRequest extends BaseRequest { | ||||
|  | ||||
|     private Long id; | ||||
|     private Long drpId; | ||||
|     private String nomor; | ||||
|     private String namaPengadaan; | ||||
|     private Long lokasiId; | ||||
|     private Long jenisPengadaanId; | ||||
|     private Long unitInisiatorId; | ||||
|     private BigDecimal pagu; | ||||
|     private Long sumberDanaId; | ||||
|     private Long supplyPositioningMatrixId; | ||||
|     private Long metodePengadaanId; | ||||
|     private Long metodePenyampaianId; | ||||
|     private Long jenisKontrakId; | ||||
|     private Long strategiPengadaanId; | ||||
|     private Timestamp rencanaTanggal; | ||||
|     private Timestamp targetTanggal; | ||||
|     private BigDecimal hpe; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
|  | ||||
|     private List<DrpPengadaanDokumenRequest> dataDrpPengadaanDokumen; | ||||
|  | ||||
|     private transient Pageable pageable; | ||||
|  | ||||
| } | ||||
| @@ -21,7 +21,9 @@ public class DrpRequest extends BaseRequest { | ||||
|     private Timestamp approveDate; | ||||
|     private Boolean isActive; | ||||
|  | ||||
|     private List<DrpDokumenRequest> data; | ||||
|     private List<DrpDokumenRequest> dataDrpDokumen; | ||||
|  | ||||
|     private List<DrpPengadaanDokumenRequest> dataDrpPengadaanDokumen; | ||||
|  | ||||
|     private String search; | ||||
|     private transient Pageable pageable; | ||||
|   | ||||
| @@ -0,0 +1,37 @@ | ||||
| package com.iconplus.smartproc.model.response; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.base.BaseResponse; | ||||
| import lombok.AllArgsConstructor; | ||||
| import lombok.Builder; | ||||
| import lombok.Data; | ||||
| import lombok.NoArgsConstructor; | ||||
|  | ||||
| import java.math.BigDecimal; | ||||
| import java.sql.Timestamp; | ||||
|  | ||||
| @Data | ||||
| @Builder | ||||
| @AllArgsConstructor | ||||
| @NoArgsConstructor | ||||
| public class DrpPengadaanResponse extends BaseResponse { | ||||
|  | ||||
|     private Long id; | ||||
|     private Long drpId; | ||||
|     private String nomor; | ||||
|     private String namaPengadaan; | ||||
|     private Long lokasiId; | ||||
|     private Long jenisPengadaanId; | ||||
|     private Long unitInisiatorId; | ||||
|     private BigDecimal pagu; | ||||
|     private Long sumberDanaId; | ||||
|     private Long supplyPositioningMatrixId; | ||||
|     private Long metodePengadaanId; | ||||
|     private Long metodePenyampaianId; | ||||
|     private Long jenisKontrakId; | ||||
|     private Long strategiPengadaanId; | ||||
|     private Timestamp rencanaTanggal; | ||||
|     private Timestamp targetTanggal; | ||||
|     private BigDecimal hpe; | ||||
|     private Boolean isActive; | ||||
|     private Boolean isDelete; | ||||
| } | ||||
| @@ -0,0 +1,9 @@ | ||||
| package com.iconplus.smartproc.repository; | ||||
|  | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpPengadaanDokumenRepository extends JpaRepository<DrpPengadaanDokumen, Long> { | ||||
| } | ||||
| @@ -0,0 +1,9 @@ | ||||
| package com.iconplus.smartproc.repository; | ||||
|  | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaan; | ||||
| import org.springframework.data.jpa.repository.JpaRepository; | ||||
| import org.springframework.stereotype.Repository; | ||||
|  | ||||
| @Repository | ||||
| public interface DrpPengadaanRepository extends JpaRepository<DrpPengadaan, Long> { | ||||
| } | ||||
| @@ -0,0 +1,77 @@ | ||||
| package com.iconplus.smartproc.service.drp; | ||||
|  | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaan; | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen; | ||||
| import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest; | ||||
| import com.iconplus.smartproc.model.request.DrpPengadaanRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpPengadaanResponse; | ||||
| import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository; | ||||
| import com.iconplus.smartproc.repository.DrpPengadaanRepository; | ||||
| import org.apache.commons.lang3.ObjectUtils; | ||||
| import org.springframework.stereotype.Service; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| @Service | ||||
| public class PostCreateDrpPengadaanService implements BaseService<DrpPengadaanRequest, DrpPengadaanResponse> { | ||||
|  | ||||
|     private final DrpPengadaanRepository drpPengadaanRepository; | ||||
|     private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository; | ||||
|  | ||||
|     public PostCreateDrpPengadaanService(DrpPengadaanRepository drpPengadaanRepository, | ||||
|                                          DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) { | ||||
|         this.drpPengadaanRepository = drpPengadaanRepository; | ||||
|         this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public DrpPengadaanResponse execute(DrpPengadaanRequest input) { | ||||
|  | ||||
|         DrpPengadaan drpPengadaan = DrpPengadaan.builder() | ||||
|                 .drpId(input.getDrpId()) | ||||
|                 .nomor(input.getNomor()) | ||||
|                 .namaPengadaan(input.getNamaPengadaan()) | ||||
|                 .lokasiId(input.getLokasiId()) | ||||
|                 .jenisPengadaanId(input.getJenisPengadaanId()) | ||||
|                 .unitInisiatorId(input.getUnitInisiatorId()) | ||||
|                 .pagu(input.getPagu()) | ||||
|                 .sumberDanaId(input.getSumberDanaId()) | ||||
|                 .supplyPositioningMatrixId(input.getSupplyPositioningMatrixId()) | ||||
|                 .metodePengadaanId(input.getMetodePengadaanId()) | ||||
|                 .metodePenyampaianId(input.getMetodePenyampaianId()) | ||||
|                 .jenisKontrakId(input.getJenisKontrakId()) | ||||
|                 .strategiPengadaanId(input.getStrategiPengadaanId()) | ||||
|                 .rencanaTanggal(input.getRencanaTanggal()) | ||||
|                 .targetTanggal(input.getTargetTanggal()) | ||||
|                 .hpe(input.getHpe()) | ||||
|                 .isActive(input.getIsActive()) | ||||
|                 .isDelete(false) | ||||
|                 .build(); | ||||
|  | ||||
|         List<DrpPengadaanDokumen> drpPengadaanDokumenList = new ArrayList<>(); | ||||
|         if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) { | ||||
|             for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) { | ||||
|                 DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder() | ||||
|                         .drpId(input.getDrpId()) | ||||
|                         .jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId()) | ||||
|                         .filename(drpPengadaanDokumenRequest.getFilename()) | ||||
|                         .file(drpPengadaanDokumenRequest.getFile()) | ||||
|                         .keterangan(drpPengadaanDokumenRequest.getKeterangan()) | ||||
|                         .isDelete(false) | ||||
|                         .build(); | ||||
|                 drpPengadaanDokumenList.add(drpPengadaanDokumen); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         var result = drpPengadaanRepository.save(drpPengadaan); | ||||
|         drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList); | ||||
|  | ||||
|         return DrpPengadaanResponse.builder() | ||||
|                 .id(result.getId()) | ||||
|                 .build(); | ||||
|  | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -4,10 +4,13 @@ import com.iconplus.smartproc.exception.BusinessException; | ||||
| import com.iconplus.smartproc.helper.service.BaseService; | ||||
| import com.iconplus.smartproc.model.entity.Drp; | ||||
| import com.iconplus.smartproc.model.entity.DrpDokumen; | ||||
| import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen; | ||||
| import com.iconplus.smartproc.model.request.DrpDokumenRequest; | ||||
| import com.iconplus.smartproc.model.request.DrpPengadaanDokumenRequest; | ||||
| import com.iconplus.smartproc.model.request.DrpRequest; | ||||
| import com.iconplus.smartproc.model.response.DrpResponse; | ||||
| import com.iconplus.smartproc.repository.DrpDokumenRepository; | ||||
| import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository; | ||||
| import com.iconplus.smartproc.repository.DrpRepository; | ||||
| import com.iconplus.smartproc.util.Constants; | ||||
| import org.apache.commons.lang3.ObjectUtils; | ||||
| @@ -22,11 +25,14 @@ public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse | ||||
|  | ||||
|     private final DrpRepository drpRepository; | ||||
|     private final DrpDokumenRepository drpDokumenRepository; | ||||
|     private final DrpPengadaanDokumenRepository drpPengadaanDokumenRepository; | ||||
|  | ||||
|     public PostCreateDrpService (DrpRepository drpRepository, | ||||
|                                  DrpDokumenRepository drpDokumenRepository) { | ||||
|                                  DrpDokumenRepository drpDokumenRepository, | ||||
|                                  DrpPengadaanDokumenRepository drpPengadaanDokumenRepository) { | ||||
|         this.drpRepository = drpRepository; | ||||
|         this.drpDokumenRepository = drpDokumenRepository; | ||||
|         this.drpPengadaanDokumenRepository = drpPengadaanDokumenRepository; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -49,8 +55,8 @@ public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse | ||||
|         var drpSaved = drpRepository.save(drp); | ||||
|  | ||||
|         List<DrpDokumen> drpDokumenList = new ArrayList<>(); | ||||
|         if (ObjectUtils.isNotEmpty(input.getData())) { | ||||
|             for (DrpDokumenRequest drpDokumenRequest : input.getData()) { | ||||
|         if (ObjectUtils.isNotEmpty(input.getDataDrpDokumen())) { | ||||
|             for (DrpDokumenRequest drpDokumenRequest : input.getDataDrpDokumen()) { | ||||
|                 DrpDokumen drpDokumen = DrpDokumen.builder() | ||||
|                         .drpId(drpSaved.getId()) | ||||
|                         .jenisDokumenId(drpDokumenRequest.getJenisDokumenId()) | ||||
| @@ -63,7 +69,24 @@ public class PostCreateDrpService implements BaseService<DrpRequest, DrpResponse | ||||
|             } | ||||
|  | ||||
|         } | ||||
|  | ||||
|         List<DrpPengadaanDokumen> drpPengadaanDokumenList = new ArrayList<>(); | ||||
|         if (ObjectUtils.isNotEmpty(input.getDataDrpPengadaanDokumen())) { | ||||
|             for (DrpPengadaanDokumenRequest drpPengadaanDokumenRequest : input.getDataDrpPengadaanDokumen()) { | ||||
|                 DrpPengadaanDokumen drpPengadaanDokumen = DrpPengadaanDokumen.builder() | ||||
|                         .drpId(drpSaved.getId()) | ||||
|                         .jenisDokumenId(drpPengadaanDokumenRequest.getJenisDokumenId()) | ||||
|                         .filename(drpPengadaanDokumenRequest.getFilename()) | ||||
|                         .file(drpPengadaanDokumenRequest.getFile()) | ||||
|                         .keterangan(drpPengadaanDokumenRequest.getKeterangan()) | ||||
|                         .isDelete(false) | ||||
|                         .build(); | ||||
|                 drpPengadaanDokumenList.add(drpPengadaanDokumen); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         drpDokumenRepository.saveAll(drpDokumenList); | ||||
|         drpPengadaanDokumenRepository.saveAll(drpPengadaanDokumenList); | ||||
|  | ||||
|         return DrpResponse.builder() | ||||
|                 .id(drpSaved.getId()) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user