This commit is contained in:
dirgantarasiahaan 2023-06-05 17:15:16 +07:00
parent b648b3d7bf
commit f8fef28190
17 changed files with 279 additions and 44 deletions

View File

@ -1,38 +1,38 @@
package com.iconplus.smartproc.controller; package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.RksDaftarIsiRequest; import com.iconplus.smartproc.model.request.RksDaftarIsiRequest;
import com.iconplus.smartproc.model.request.RksIsiRequest; import com.iconplus.smartproc.model.request.RksIsiRequest;
import com.iconplus.smartproc.model.request.RksTemplateRequest;
import com.iconplus.smartproc.model.response.*; import com.iconplus.smartproc.model.response.*;
import com.iconplus.smartproc.service.rks.*; import com.iconplus.smartproc.service.rksdaftarisi.*;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true") @CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController @RestController
@RequestMapping("/api/rks") @RequestMapping("/api/rks/daftar-isi")
public class RksController { public class RksDaftarIsiController {
private final GetListRksDaftarIsiService getListRksDaftarIsiService; private final GetListRksDaftarIsiService getListRksDaftarIsiService;
private final PostCreateRksDaftarIsiService postCreateRksDaftarIsiService; private final PostCreateRksDaftarIsiService postCreateRksDaftarIsiService;
private final GetListRksIsiService getListRksIsiService; private final GetListRksIsiService getListRksIsiService;
private final PostCreateRksTemplateService postCreateRksTemplateService; private final DeleteRksDaftarIsiService deleteRksDaftarIsiService;
private final GetListRksTemplateService getListRksTemplateService; private final PutUpdateRksDaftarIsiService putUpdateRksDaftarIsiService;
public RksController(GetListRksDaftarIsiService getListRksDaftarIsiService, public RksDaftarIsiController(GetListRksDaftarIsiService getListRksDaftarIsiService,
PostCreateRksDaftarIsiService postCreateRksDaftarIsiService, PostCreateRksDaftarIsiService postCreateRksDaftarIsiService,
GetListRksIsiService getListRksIsiService, GetListRksIsiService getListRksIsiService,
PostCreateRksTemplateService postCreateRksTemplateService, DeleteRksDaftarIsiService deleteRksDaftarIsiService,
GetListRksTemplateService getListRksTemplateService) { PutUpdateRksDaftarIsiService putUpdateRksDaftarIsiService) {
this.getListRksDaftarIsiService = getListRksDaftarIsiService; this.getListRksDaftarIsiService = getListRksDaftarIsiService;
this.postCreateRksDaftarIsiService = postCreateRksDaftarIsiService; this.postCreateRksDaftarIsiService = postCreateRksDaftarIsiService;
this.getListRksIsiService = getListRksIsiService; this.getListRksIsiService = getListRksIsiService;
this.postCreateRksTemplateService = postCreateRksTemplateService; this.deleteRksDaftarIsiService = deleteRksDaftarIsiService;
this.getListRksTemplateService = getListRksTemplateService; this.putUpdateRksDaftarIsiService = putUpdateRksDaftarIsiService;
} }
@GetMapping("/daftar-isi") @GetMapping()
public ListRksDaftarIsiResponse getAllRksDaftarIsi(@RequestParam(name = "page", defaultValue = "1") Integer page, public ListRksDaftarIsiResponse getAllRksDaftarIsi(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size){ @RequestParam(name = "size", defaultValue = "5") Integer size){
@ -45,12 +45,12 @@ public class RksController {
} }
@PostMapping("/daftar-isi") @PostMapping()
public RksDaftarIsiResponse createRksDaftarIsi(@RequestBody RksDaftarIsiRequest rksDaftarIsiRequest) { public RksDaftarIsiResponse createRksDaftarIsi(@RequestBody RksDaftarIsiRequest rksDaftarIsiRequest) {
return postCreateRksDaftarIsiService.execute(rksDaftarIsiRequest); return postCreateRksDaftarIsiService.execute(rksDaftarIsiRequest);
} }
@GetMapping("/daftar-isi/{id}/isi") @GetMapping("/{id}/isi")
public ListRksIsiResponse getListRksIsi(@PathVariable(name = "id") Long id, public ListRksIsiResponse getListRksIsi(@PathVariable(name = "id") Long id,
@RequestParam(name = "page", defaultValue = "1") Integer page, @RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size) { @RequestParam(name = "size", defaultValue = "5") Integer size) {
@ -63,21 +63,18 @@ public class RksController {
return getListRksIsiService.execute(rksIsiRequest); return getListRksIsiService.execute(rksIsiRequest);
} }
@PostMapping("/template") @PutMapping("/{id}")
public RksTemplateResponse createRksTemplate(@RequestBody RksTemplateRequest rksTemplateRequest) { public RksDaftarIsiResponse editRksDaftarIsi(@PathVariable(name = "id") Long id,
return postCreateRksTemplateService.execute(rksTemplateRequest); @RequestBody RksDaftarIsiRequest rksDaftarIsiRequest) {
rksDaftarIsiRequest.setId(id);
return putUpdateRksDaftarIsiService.execute(rksDaftarIsiRequest);
} }
@GetMapping("/template") @DeleteMapping("/{id}")
public ListRksTemplateResponse getListRksTemplate(@RequestParam(name = "page", defaultValue = "1") Integer page, public EmptyResponse deleteRksDaftarIsi(@PathVariable(name = "id") Long id) {
@RequestParam(name = "size", defaultValue = "5") Integer size) { return deleteRksDaftarIsiService.execute(RksDaftarIsiRequest.builder()
.id(id)
Pageable pageable = PageRequest.of((page - 1), size); .build());
RksTemplateRequest rksTemplateRequest = RksTemplateRequest.builder()
.pageable(pageable)
.build();
return getListRksTemplateService.execute(rksTemplateRequest);
} }

View File

@ -0,0 +1,68 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.RksDaftarIsiRequest;
import com.iconplus.smartproc.model.request.RksTemplateRequest;
import com.iconplus.smartproc.model.response.ListRksTemplateResponse;
import com.iconplus.smartproc.model.response.RksDaftarIsiResponse;
import com.iconplus.smartproc.model.response.RksTemplateResponse;
import com.iconplus.smartproc.service.rkstemplate.DeleteRksTemplateService;
import com.iconplus.smartproc.service.rkstemplate.GetListRksTemplateService;
import com.iconplus.smartproc.service.rkstemplate.PostCreateRksTemplateService;
import com.iconplus.smartproc.service.rkstemplate.PutUpdateRksTemplateService;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController
@RequestMapping("/api/rks/template")
public class RksTemplateController {
private final PostCreateRksTemplateService postCreateRksTemplateService;
private final GetListRksTemplateService getListRksTemplateService;
private final PutUpdateRksTemplateService putUpdateRksTemplateService;
private final DeleteRksTemplateService deleteRksTemplateService;
public RksTemplateController(PostCreateRksTemplateService postCreateRksTemplateService,
GetListRksTemplateService getListRksTemplateService,
PutUpdateRksTemplateService putUpdateRksTemplateService,
DeleteRksTemplateService deleteRksTemplateService) {
this.postCreateRksTemplateService = postCreateRksTemplateService;
this.getListRksTemplateService = getListRksTemplateService;
this.putUpdateRksTemplateService = putUpdateRksTemplateService;
this.deleteRksTemplateService = deleteRksTemplateService;
}
@PostMapping()
public RksTemplateResponse createRksTemplate(@RequestBody RksTemplateRequest rksTemplateRequest) {
return postCreateRksTemplateService.execute(rksTemplateRequest);
}
@GetMapping()
public ListRksTemplateResponse getListRksTemplate(@RequestParam(name = "page", defaultValue = "1") Integer page,
@RequestParam(name = "size", defaultValue = "5") Integer size) {
Pageable pageable = PageRequest.of((page - 1), size);
RksTemplateRequest rksTemplateRequest = RksTemplateRequest.builder()
.pageable(pageable)
.build();
return getListRksTemplateService.execute(rksTemplateRequest);
}
@PutMapping("/{id}")
public RksTemplateResponse editRksTemplate(@PathVariable(name = "id") Long id,
@RequestBody RksTemplateRequest rksTemplateRequest) {
rksTemplateRequest.setId(id);
return putUpdateRksTemplateService.execute(rksTemplateRequest);
}
@DeleteMapping("/{id}")
public EmptyResponse deleteRksTemplate(@PathVariable(name = "id") Long id) {
return deleteRksTemplateService.execute(RksTemplateRequest.builder()
.id(id)
.build());
}
}

View File

@ -19,6 +19,8 @@ public class LoginResponse extends BaseResponse {
private Integer validity; private Integer validity;
private String refreshToken; private String refreshToken;
private String username; private String username;
private String nama;
private String telepon;
private String email; private String email;
private Long roleId; private Long roleId;
private String role; private String role;

View File

@ -26,4 +26,6 @@ public interface RksDaftarIsiRepository extends JpaRepository<RksDaftarIsi, Long
Optional<RksDaftarIsi> findByKodeTemplateAndIsDeleteFalse(String kodeTemplate); Optional<RksDaftarIsi> findByKodeTemplateAndIsDeleteFalse(String kodeTemplate);
Optional<RksDaftarIsi> findByIdAndIsDeleteFalse(Long id);
} }

View File

@ -4,10 +4,19 @@ import com.iconplus.smartproc.model.entity.RksIsi;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@Repository @Repository
public interface RksIsiRepository extends JpaRepository<RksIsi, Long> { public interface RksIsiRepository extends JpaRepository<RksIsi, Long> {
Page<RksIsi> findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId, Pageable pageable); Page<RksIsi> findByRksDaftarIsiIdAndIsDeleteFalse(Long rksDaftarIsiId, Pageable pageable);
@Modifying
@Query(value = "update RksIsi ri " +
"set ri.isDelete = true " +
"where ri.rksDaftarIsiId = :rksDaftarIsiId")
void deleteRksIsi(@Param("rksDaftarIsiId") Long rksDaftarIsiId);
} }

View File

@ -15,19 +15,21 @@ public interface RksTemplateRepository extends JpaRepository<RksTemplate, Long>
Optional<RksTemplate> findByKodeTemplateAndIsDeleteFalse(String kodeTemplate); Optional<RksTemplate> findByKodeTemplateAndIsDeleteFalse(String kodeTemplate);
Optional<RksTemplate> findByIdAndIsDeleteFalse(Long id);
@Query(value = "SELECT rt.id as id, " + @Query(value = "SELECT rt.id as id, " +
"rt.kode_template as kodeTemplate, " + "rt.kodeTemplate as kodeTemplate, " +
"rt.namaTemplate as namaTemplate, " + "rt.namaTemplate as namaTemplate, " +
"rt.metode_pengadaan_id as metodePengadaanId, " + "rt.metodePengadaanId as metodePengadaanId, " +
"m.metode_pengadaan as metodePengadaan, " + "m.metodePengadaan as metodePengadaan, " +
"rt.versi as versi, " + "rt.versi as versi, " +
"rt.rks_daftar_isi_id as rksDaftarIsiId, " + "rt.rksDaftarIsiId as rksDaftarIsiId, " +
"rdi.nama_template as daftarIsi, " + "rdi.namaTemplate as daftarIsi, " +
"rt.is_active as isActive " + "rt.isActive as isActive " +
"FROM rks_template as rt " + "FROM RksTemplate as rt " +
"JOIN rks_daftar_isi rdi ON rdi.id = rt.rks_daftar_isi_id " + "JOIN RksDaftarIsi rdi ON rdi.id = rt.rksDaftarIsiId " +
"JOIN metode_pengadaan m ON m.id = rt.metode_pengadaan_id " + "JOIN MetodePengadaan m ON m.id = rt.metodePengadaanId " +
"WHERE rt.is_delete = 0", nativeQuery = true) "WHERE rt.isDelete = 0")
Page<RksTemplateView> getListRksTemplate(Pageable pageable); Page<RksTemplateView> getListRksTemplate(Pageable pageable);
} }

View File

@ -61,6 +61,7 @@ public interface UsersRepository extends JpaRepository<Users, Long> {
"u.instansiId as instansiId, " + "u.instansiId as instansiId, " +
"i.instansi as instansi, " + "i.instansi as instansi, " +
"u.email as email, " + "u.email as email, " +
"u.telepon as telepon, " +
"u.isActive as isActive, " + "u.isActive as isActive, " +
"u.isDelete as isDelete " + "u.isDelete as isDelete " +
"FROM Users u " + "FROM Users u " +
@ -86,6 +87,7 @@ public interface UsersRepository extends JpaRepository<Users, Long> {
"u.instansiId as instansiId, " + "u.instansiId as instansiId, " +
"i.instansi as instansi, " + "i.instansi as instansi, " +
"u.email as email, " + "u.email as email, " +
"u.telepon as telepon, " +
"u.isActive as isActive, " + "u.isActive as isActive, " +
"u.isDelete as isDelete " + "u.isDelete as isDelete " +
"FROM Users u " + "FROM Users u " +

View File

@ -178,6 +178,8 @@ public class LoginService implements BaseService<LoginRequest, LoginResponse> {
.refreshToken(refreshToken) .refreshToken(refreshToken)
.userId(userRoleView.getId()) .userId(userRoleView.getId())
.username(userRoleView.getUsername()) .username(userRoleView.getUsername())
.nama(userRoleView.getNama())
.telepon(userRoleView.getTelepon())
.email(userRoleView.getEmail()) .email(userRoleView.getEmail())
.roleId(userRoleView.getRoleId()) .roleId(userRoleView.getRoleId())
.role(userRoleView.getRole()) .role(userRoleView.getRole())

View File

@ -0,0 +1,37 @@
package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RksDaftarIsiRequest;
import com.iconplus.smartproc.repository.RksDaftarIsiRepository;
import com.iconplus.smartproc.repository.RksIsiRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteRksDaftarIsiService implements BaseService<RksDaftarIsiRequest, EmptyResponse> {
private final RksDaftarIsiRepository rksDaftarIsiRepository;
private final RksIsiRepository rksIsiRepository;
public DeleteRksDaftarIsiService(RksDaftarIsiRepository rksDaftarIsiRepository,
RksIsiRepository rksIsiRepository) {
this.rksDaftarIsiRepository = rksDaftarIsiRepository;
this.rksIsiRepository = rksIsiRepository;
}
@Override
public EmptyResponse execute(RksDaftarIsiRequest input) {
var rksDaftarIsi= rksDaftarIsiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "RKS Daftar Isi", input.getId())));
rksDaftarIsi.setIsDelete(true);
rksDaftarIsiRepository.save(rksDaftarIsi);
rksIsiRepository.deleteRksIsi(rksDaftarIsi.getId());
return new EmptyResponse();
}
}

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.rks; package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.helper.model.Pagination; import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.rks; package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.helper.model.Pagination; import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.rks; package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -0,0 +1,38 @@
package com.iconplus.smartproc.service.rksdaftarisi;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RksDaftarIsiRequest;
import com.iconplus.smartproc.model.response.RksDaftarIsiResponse;
import com.iconplus.smartproc.repository.RksDaftarIsiRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateRksDaftarIsiService implements BaseService<RksDaftarIsiRequest, RksDaftarIsiResponse> {
private final RksDaftarIsiRepository rksDaftarIsiRepository;
public PutUpdateRksDaftarIsiService(RksDaftarIsiRepository rksDaftarIsiRepository) {
this.rksDaftarIsiRepository = rksDaftarIsiRepository;
}
@Override
public RksDaftarIsiResponse execute(RksDaftarIsiRequest input) {
var rksDaftarIsi= rksDaftarIsiRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(() -> new BusinessException(Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "RKS Daftar Isi", input.getId())));
rksDaftarIsi.setKodeTemplate(input.getKodeTemplate());
rksDaftarIsi.setNamaTemplate(input.getNamaTemplate());
rksDaftarIsi.setMetodePengadaanId(input.getMetodePengadaanId());
rksDaftarIsi.setVersi(input.getVersi());
rksDaftarIsiRepository.save(rksDaftarIsi);
return RksDaftarIsiResponse.builder()
.id(rksDaftarIsi.getId())
.build();
}
}

View File

@ -0,0 +1,34 @@
package com.iconplus.smartproc.service.rkstemplate;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RksTemplateRequest;
import com.iconplus.smartproc.repository.RksTemplateRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class DeleteRksTemplateService implements BaseService<RksTemplateRequest, EmptyResponse> {
private final RksTemplateRepository rksTemplateRepository;
public DeleteRksTemplateService(RksTemplateRepository rksTemplateRepository) {
this.rksTemplateRepository = rksTemplateRepository;
}
@Override
public EmptyResponse execute(RksTemplateRequest input) {
var rksTemplate = rksTemplateRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(()-> new BusinessException(
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "RKS Template", input.getId())
));
rksTemplate.setIsDelete(true);
rksTemplateRepository.save(rksTemplate);
return new EmptyResponse();
}
}

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.rks; package com.iconplus.smartproc.service.rkstemplate;
import com.iconplus.smartproc.helper.model.Pagination; import com.iconplus.smartproc.helper.model.Pagination;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -1,4 +1,4 @@
package com.iconplus.smartproc.service.rks; package com.iconplus.smartproc.service.rkstemplate;
import com.iconplus.smartproc.exception.BusinessException; import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService; import com.iconplus.smartproc.helper.service.BaseService;

View File

@ -0,0 +1,42 @@
package com.iconplus.smartproc.service.rkstemplate;
import com.iconplus.smartproc.exception.BusinessException;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.request.RksTemplateRequest;
import com.iconplus.smartproc.model.response.RksTemplateResponse;
import com.iconplus.smartproc.repository.RksTemplateRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
@Service
public class PutUpdateRksTemplateService implements BaseService<RksTemplateRequest, RksTemplateResponse> {
private final RksTemplateRepository rksTemplateRepository;
public PutUpdateRksTemplateService(RksTemplateRepository rksTemplateRepository) {
this.rksTemplateRepository = rksTemplateRepository;
}
@Override
public RksTemplateResponse execute(RksTemplateRequest input) {
var rksTemplate = rksTemplateRepository.findByIdAndIsDeleteFalse(input.getId())
.orElseThrow(()-> new BusinessException(
Constants.ERR_CODE_10001,
Constants.ERR_TTL_10001,
String.format(Constants.ERR_MSG_10001, "RKS Template", input.getId())
));
rksTemplate.setKodeTemplate(rksTemplate.getKodeTemplate());
rksTemplate.setNamaTemplate(rksTemplate.getNamaTemplate());
rksTemplate.setRksDaftarIsiId(rksTemplate.getRksDaftarIsiId());
rksTemplate.setMetodePengadaanId(rksTemplate.getMetodePengadaanId());
rksTemplate.setVersi(rksTemplate.getVersi());
rksTemplate.setIsActive(rksTemplate.getIsActive());
rksTemplateRepository.save(rksTemplate);
return RksTemplateResponse.builder()
.id(rksTemplate.getId())
.build();
}
}