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