fix
This commit is contained in:
parent
dbbde49f59
commit
abc89d32d0
11
pom.xml
11
pom.xml
@ -59,6 +59,17 @@
|
||||
<version>5.3.9.RELEASE</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.zxing</groupId>
|
||||
<artifactId>core</artifactId>
|
||||
<version>3.3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.zxing</groupId>
|
||||
<artifactId>javase</artifactId>
|
||||
<version>3.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>io.jsonwebtoken</groupId>
|
||||
<artifactId>jjwt</artifactId>
|
||||
|
@ -1,8 +1,11 @@
|
||||
package com.iconplus.smartproc.controller;
|
||||
|
||||
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
||||
import com.iconplus.smartproc.model.request.PrintDrpRequest;
|
||||
import com.iconplus.smartproc.model.request.RolesRequest;
|
||||
import com.iconplus.smartproc.model.response.GetListPrintDrpResponse;
|
||||
import com.iconplus.smartproc.model.response.PrintDrpResponse;
|
||||
import com.iconplus.smartproc.service.print.DrpPrintExecutionService;
|
||||
import com.iconplus.smartproc.service.print.GetListPrintDrpService;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
@ -14,9 +17,12 @@ import org.springframework.web.bind.annotation.*;
|
||||
public class PrintController {
|
||||
|
||||
private final GetListPrintDrpService getListPrintDrpService;
|
||||
private final DrpPrintExecutionService drpPrintExecutionService;
|
||||
|
||||
public PrintController(GetListPrintDrpService getListPrintDrpService) {
|
||||
public PrintController(GetListPrintDrpService getListPrintDrpService,
|
||||
DrpPrintExecutionService drpPrintExecutionService) {
|
||||
this.getListPrintDrpService = getListPrintDrpService;
|
||||
this.drpPrintExecutionService = drpPrintExecutionService;
|
||||
|
||||
}
|
||||
|
||||
@ -33,5 +39,10 @@ public class PrintController {
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("execution")
|
||||
public EmptyResponse drpPrintExecution(@RequestBody PrintDrpRequest printDrpRequest) throws Exception {
|
||||
return drpPrintExecutionService.execute(printDrpRequest);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -8,5 +8,5 @@ import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
|
||||
public interface BaseService<T extends BaseRequest, V extends BaseResponse> {
|
||||
V execute(T input) throws IOException;
|
||||
V execute(T input) throws Exception;
|
||||
}
|
||||
|
@ -47,4 +47,7 @@ public interface DrpApprovalView {
|
||||
String getLevel();
|
||||
void setLevel(String level);
|
||||
|
||||
Long getApproverUserId();
|
||||
void setApproverUserId(Long approverUserId);
|
||||
|
||||
}
|
||||
|
@ -13,5 +13,6 @@ import org.springframework.data.domain.Pageable;
|
||||
@NoArgsConstructor
|
||||
public class PrintDrpRequest extends BaseRequest {
|
||||
|
||||
private Long drpId;
|
||||
private transient Pageable pageable;
|
||||
}
|
||||
|
@ -27,23 +27,26 @@ public interface DrpApprovalRepository extends JpaRepository<DrpApproval, Long>
|
||||
List<DrpApproval> findByDrpIdAndIsDeleteFalse(Long drpId);
|
||||
|
||||
@Query(value = "SELECT da.drpId as drpId, " +
|
||||
"da.isApprove as isApprove, " +
|
||||
"da.catatan as catatan, " +
|
||||
"da.approverUserId as approverUserId, " +
|
||||
"u.nama as nama, " +
|
||||
"j.jabatan as jabatan, " +
|
||||
"da.level as level " +
|
||||
"j.jabatan as jabatan " +
|
||||
"FROM DrpApproval da " +
|
||||
"JOIN Users u ON u.id = da.approverUserId " +
|
||||
"JOIN Jabatan j ON j.id = u.jabatanId " +
|
||||
"WHERE da.isDelete = false " +
|
||||
"AND da.isApprove is not null " +
|
||||
"AND da.drpId = :drpId " +
|
||||
"ORDER BY da.lastUpdate")
|
||||
"AND da.isApprove = true " +
|
||||
"ORDER BY da.level desc")
|
||||
List<DrpApprovalView> getDrpApproval(Long drpId);
|
||||
|
||||
Optional<DrpApproval> findByDrpIdAndLevelAndIsDeleteFalse(Long drpId, String level);
|
||||
|
||||
@Query(value = "UPDATE drp_approval " +
|
||||
"SET is_delete = 1 " +
|
||||
"WHERE drp_id = :drpId " +
|
||||
"AND is_delete = 0", nativeQuery = true)
|
||||
void deleteApprovalByDrpId(Long drpId);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -1,5 +1,9 @@
|
||||
package com.iconplus.smartproc.service;
|
||||
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
import com.google.zxing.client.j2se.MatrixToImageWriter;
|
||||
import com.google.zxing.common.BitMatrix;
|
||||
import com.google.zxing.qrcode.QRCodeWriter;
|
||||
import com.iconplus.smartproc.exception.BusinessException;
|
||||
import com.iconplus.smartproc.model.entity.TokenManagement;
|
||||
import com.iconplus.smartproc.model.request.UsersRequest;
|
||||
@ -11,6 +15,7 @@ import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.Instant;
|
||||
|
||||
@ -105,4 +110,12 @@ public class CommonService {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public BufferedImage generateQRCodeImage(String barcodeText) throws Exception {
|
||||
QRCodeWriter barcodeWriter = new QRCodeWriter();
|
||||
BitMatrix bitMatrix =
|
||||
barcodeWriter.encode(barcodeText, BarcodeFormat.QR_CODE, 200, 200);
|
||||
|
||||
return MatrixToImageWriter.toBufferedImage(bitMatrix);
|
||||
}
|
||||
}
|
||||
|
@ -52,6 +52,9 @@ public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalR
|
||||
|
||||
Date dateNow = Date.valueOf(LocalDate.now());
|
||||
|
||||
drpApproval.setIsApprove(input.getIsApprove());
|
||||
drpApproval.setCatatan(input.getCatatan());
|
||||
|
||||
List<DrpApprovalHistory> drpApprovalHistoryList = new ArrayList<>();
|
||||
var listDrpApproval = drpApprovalRepository.findByDrpIdAndIsDeleteFalse(input.getDrpId());
|
||||
|
||||
@ -64,23 +67,28 @@ public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalR
|
||||
drpApprovalHistoryList.add(drpApprovalHistoryExecutor);
|
||||
|
||||
if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "VP")) {
|
||||
drpApproval.setIsApprove(input.getIsApprove());
|
||||
drp.setVpApproveDate(dateNow);
|
||||
drp.setApproveStatus(Constants.STATUS_APPROVAL_VP);
|
||||
drpApproval.setCatatan(input.getCatatan());
|
||||
|
||||
for (DrpApproval drpAppr : listDrpApproval) {
|
||||
if (StringUtils.equalsIgnoreCase(drpAppr.getLevel(), "KOMITE")) {
|
||||
DrpApprovalHistory drpApprovalHistory = DrpApprovalHistory.builder()
|
||||
.drpApprovalId(drpApproval.getId())
|
||||
.date(dateNow)
|
||||
.status("Terkirim")
|
||||
.isDelete(false)
|
||||
.build();
|
||||
drpApprovalHistoryList.add(drpApprovalHistory);
|
||||
if (BooleanUtils.isTrue(input.getIsApprove())) {
|
||||
drp.setApproveStatus(Constants.STATUS_APPROVAL_VP);
|
||||
|
||||
for (DrpApproval drpAppr : listDrpApproval) {
|
||||
if (StringUtils.equalsIgnoreCase(drpAppr.getLevel(), "KOMITE")) {
|
||||
DrpApprovalHistory drpApprovalHistory = DrpApprovalHistory.builder()
|
||||
.drpApprovalId(drpApproval.getId())
|
||||
.date(dateNow)
|
||||
.status("Terkirim")
|
||||
.isDelete(false)
|
||||
.build();
|
||||
drpApprovalHistoryList.add(drpApprovalHistory);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
drp.setApproveStatus(Constants.STATUS_PENYUSUNAN);
|
||||
drpApproval.setIsDelete(true);
|
||||
drpApprovalRepository.deleteApprovalByDrpId(input.getDrpId());
|
||||
}
|
||||
|
||||
} else if (StringUtils.equalsIgnoreCase(drpApproval.getLevel(), "DIREKTUR")) {
|
||||
|
||||
@ -90,10 +98,16 @@ public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalR
|
||||
String.format(Constants.ERR_MSG_10013, "KOMITE"));
|
||||
}
|
||||
|
||||
drpApproval.setIsApprove(input.getIsApprove());
|
||||
if (BooleanUtils.isTrue(input.getIsApprove())) {
|
||||
drp.setApproveStatus(Constants.STATUS_APPROVAL_DIRUT);
|
||||
} else {
|
||||
drp.setApproveStatus(Constants.STATUS_PENYUSUNAN);
|
||||
drpApproval.setIsDelete(true);
|
||||
drpApprovalRepository.deleteApprovalByDrpId(input.getDrpId());
|
||||
}
|
||||
|
||||
drp.setDirekturApproveDate(dateNow);
|
||||
drp.setApproveStatus(Constants.STATUS_APPROVAL_DIRUT);
|
||||
drpApproval.setCatatan(input.getCatatan());
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
@ -107,8 +121,7 @@ public class PostDrpApprovalExecutionService implements BaseService<DrpApprovalR
|
||||
if (listKomiteApproval.size() == 1) {
|
||||
drp.setApproveStatus(Constants.STATUS_REKOMENDASI_KOMITE);
|
||||
}
|
||||
drpApproval.setIsApprove(input.getIsApprove());
|
||||
drpApproval.setCatatan(input.getCatatan());
|
||||
|
||||
drp.setKomiteApproveDate(dateNow);
|
||||
|
||||
for (DrpApproval drpAppr : listDrpApproval) {
|
||||
|
@ -0,0 +1,44 @@
|
||||
package com.iconplus.smartproc.service.print;
|
||||
|
||||
import com.iconplus.smartproc.helper.model.EmptyResponse;
|
||||
import com.iconplus.smartproc.helper.service.BaseService;
|
||||
import com.iconplus.smartproc.model.projection.DrpApprovalView;
|
||||
import com.iconplus.smartproc.model.request.PrintDrpRequest;
|
||||
import com.iconplus.smartproc.repository.DrpApprovalRepository;
|
||||
import com.iconplus.smartproc.service.CommonService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Service
|
||||
public class DrpPrintExecutionService implements BaseService<PrintDrpRequest, EmptyResponse> {
|
||||
|
||||
private final CommonService commonService;
|
||||
private final DrpApprovalRepository drpApprovalRepository;
|
||||
public DrpPrintExecutionService(CommonService commonService,
|
||||
DrpApprovalRepository drpApprovalRepository) {
|
||||
this.commonService = commonService;
|
||||
this.drpApprovalRepository = drpApprovalRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EmptyResponse execute(PrintDrpRequest input) throws Exception {
|
||||
|
||||
var drpApprovalViews = drpApprovalRepository.getDrpApproval(input.getDrpId());
|
||||
|
||||
int size = drpApprovalViews.size();
|
||||
|
||||
List<BufferedImage> bufferedImageList = new ArrayList<>();
|
||||
|
||||
for (DrpApprovalView drpApprovalView : drpApprovalViews) {
|
||||
String barcodeText = drpApprovalView.getApproverUserId().toString() + " - " + drpApprovalView.getNama() + " - " + drpApprovalView.getJabatan();
|
||||
var bufferedImage = commonService.generateQRCodeImage(barcodeText);
|
||||
bufferedImageList.add(bufferedImage);
|
||||
}
|
||||
|
||||
return new EmptyResponse();
|
||||
}
|
||||
}
|
0
src/main/resources/template/drp-approval.jrxml
Normal file
0
src/main/resources/template/drp-approval.jrxml
Normal file
Loading…
x
Reference in New Issue
Block a user