add approval user

This commit is contained in:
dirgantarasiahaan 2023-05-30 20:26:16 +07:00
parent ff2a77032f
commit 774c3d2138
9 changed files with 167 additions and 2 deletions

View File

@ -0,0 +1,34 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyRequest;
import com.iconplus.smartproc.model.response.GetListUserApprovalResponse;
import com.iconplus.smartproc.service.approval.GetListUserDirekturKomiteService;
import com.iconplus.smartproc.service.approval.GetListUserVpService;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@CrossOrigin(origins = "${fe.server}", allowCredentials = "true")
@RestController
@RequestMapping("/api/drp/approval")
public class ApprovalDrpController {
private GetListUserVpService getListUserVpService;
private GetListUserDirekturKomiteService getListUserDirekturKomiteService;
public ApprovalDrpController(GetListUserVpService getListUserVpService,
GetListUserDirekturKomiteService getListUserDirekturKomiteService) {
this.getListUserVpService = getListUserVpService;
this.getListUserDirekturKomiteService = getListUserDirekturKomiteService;
}
@GetMapping("/vp")
public GetListUserApprovalResponse getUserVp(EmptyRequest emptyRequest) {
return getListUserVpService.execute(emptyRequest);
}
@GetMapping("direktur-komite")
public GetListUserApprovalResponse getUserDirekturKomite(EmptyRequest emptyRequest) {
return getListUserDirekturKomiteService.execute(emptyRequest);
}
}

View File

@ -1,6 +1,5 @@
package com.iconplus.smartproc.controller;
import com.iconplus.smartproc.helper.model.EmptyResponse;
import com.iconplus.smartproc.model.request.DrpDokumenRequest;
import com.iconplus.smartproc.model.request.DrpPengadaanRequest;
import com.iconplus.smartproc.model.request.DrpRequest;

View File

@ -0,0 +1,17 @@
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.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GetListUserApprovalResponse extends BaseResponse {
private List<UserApprovalResponse> data;
}

View File

@ -0,0 +1,19 @@
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.util.List;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class UserApprovalResponse extends BaseResponse {
private Long id;
private String nama;
}

View File

@ -8,6 +8,7 @@ import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Optional;
@Repository
@ -101,5 +102,16 @@ public interface UsersRepository extends JpaRepository<Users, Long> {
"AND is_delete = 0 " +
"AND expired_time >= CURRENT_TIMESTAMP", nativeQuery = true)
Optional<Users> getUsersByEmailAndExpiredTime(String rememberId);
@Query(value = "SELECT u.id as id, " +
"u.nama as nama, " +
"u.jabatanId as jabatanId, " +
"j.jabatan as jabatan " +
"FROM Users u " +
"JOIN Jabatan j ON j.id = u.jabatanId " +
"WHERE u.isDelete = false " +
"AND j.jabatan like :jabatan " +
"ORDER BY u.id")
List<UserRoleView> getListUserJabatan(String jabatan);
}

View File

@ -0,0 +1,42 @@
package com.iconplus.smartproc.service.approval;
import com.iconplus.smartproc.helper.model.EmptyRequest;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.UserRoleView;
import com.iconplus.smartproc.model.response.GetListUserApprovalResponse;
import com.iconplus.smartproc.model.response.UserApprovalResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListUserDirekturKomiteService implements BaseService<EmptyRequest, GetListUserApprovalResponse> {
private UsersRepository usersRepository;
public GetListUserDirekturKomiteService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@Override
public GetListUserApprovalResponse execute(EmptyRequest input) {
List<UserApprovalResponse> userApprovalResponseList = new ArrayList<>();
var userRoleViews = usersRepository.getListUserJabatan(Constants.JABATAN_DIREKTUR_KOMITE);
for (UserRoleView userRoleView : userRoleViews) {
UserApprovalResponse userApprovalResponse = UserApprovalResponse.builder()
.id(userRoleView.getId())
.nama(userRoleView.getNama() + "-" + userRoleView.getJabatan())
.build();
userApprovalResponseList.add(userApprovalResponse);
}
return GetListUserApprovalResponse.builder()
.data(userApprovalResponseList)
.build();
}
}

View File

@ -0,0 +1,41 @@
package com.iconplus.smartproc.service.approval;
import com.iconplus.smartproc.helper.model.EmptyRequest;
import com.iconplus.smartproc.helper.service.BaseService;
import com.iconplus.smartproc.model.projection.UserRoleView;
import com.iconplus.smartproc.model.response.GetListUserApprovalResponse;
import com.iconplus.smartproc.model.response.UserApprovalResponse;
import com.iconplus.smartproc.repository.UsersRepository;
import com.iconplus.smartproc.util.Constants;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class GetListUserVpService implements BaseService<EmptyRequest, GetListUserApprovalResponse> {
private UsersRepository usersRepository;
public GetListUserVpService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
@Override
public GetListUserApprovalResponse execute(EmptyRequest input) {
List<UserApprovalResponse> userApprovalResponseList = new ArrayList<>();
var userRoleViews = usersRepository.getListUserJabatan(Constants.JABATAN_VP);
for (UserRoleView userRoleView : userRoleViews) {
UserApprovalResponse userApprovalResponse = UserApprovalResponse.builder()
.id(userRoleView.getId())
.nama(userRoleView.getNama() + "-" + userRoleView.getJabatan())
.build();
userApprovalResponseList.add(userApprovalResponse);
}
return GetListUserApprovalResponse.builder()
.data(userApprovalResponseList)
.build();
}
}

View File

@ -7,7 +7,6 @@ import com.iconplus.smartproc.model.entity.DrpPengadaanDokumen;
import com.iconplus.smartproc.model.request.DrpRequest;
import com.iconplus.smartproc.model.response.DrpDokumenResponse;
import com.iconplus.smartproc.model.response.DrpPengadaanDokumenResponse;
import com.iconplus.smartproc.model.response.DrpPengadaanResponse;
import com.iconplus.smartproc.model.response.DrpResponse;
import com.iconplus.smartproc.repository.DrpDokumenRepository;
import com.iconplus.smartproc.repository.DrpPengadaanDokumenRepository;

View File

@ -76,5 +76,7 @@ public class Constants {
public static final String INVALID_KEY_EXCEPTION = "InvalidKeyException : ";
public static final String ILEGAL_BLOCK_SIZE_EXCEPTION = "IllegalBlockSizeException : ";
public static final String BAD_PADDING_EXCEPTION = "BadPaddingException : ";
public static final String JABATAN_VP = "%VP%";
public static final String JABATAN_DIREKTUR_KOMITE = "%DIR%";
}