Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.co.sofcograha.gajiidapi.domain.hris.attendance.trx.uploaddatakehadiran.services;
- import java.io.FileInputStream;
- import java.text.DateFormat;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Base64;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.List;
- import javax.servlet.http.HttpServletResponse;
- import org.apache.poi.ss.usermodel.Row;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import id.co.sofcograha.gajiidapi.base.constants.BaseConstants;
- import id.co.sofcograha.gajiidapi.base.download.FileGenerator;
- import id.co.sofcograha.gajiidapi.base.exceptions.BusinessException;
- import id.co.sofcograha.gajiidapi.base.exceptions.CustomMultiUpdateException;
- import id.co.sofcograha.gajiidapi.base.extendables.FreeFormService;
- import id.co.sofcograha.gajiidapi.base.responses.Message;
- import id.co.sofcograha.gajiidapi.base.uploadtemplate.entities.UploadTemplate;
- import id.co.sofcograha.gajiidapi.base.utils.ExcelUtil;
- import id.co.sofcograha.gajiidapi.base.utils.PojoUtil;
- import id.co.sofcograha.gajiidapi.base.utils.StringUtil;
- import id.co.sofcograha.gajiidapi.base.utils.TimeUtil;
- import id.co.sofcograha.gajiidapi.domain.hris.HRISAuthorization;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.data.datakehadirandarimesinabsensitipe1.entities.DataKehadiranDariMesinAbsensiTipe1;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.data.datakehadirandarimesinabsensitipe1.services.DataKehadiranDariMesinAbsensiTipe1Service;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.data.datakehadirandarimesinabsensitipe2.entities.DataKehadiranDariMesinAbsensiTipe2;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.data.datakehadirandarimesinabsensitipe2.services.DataKehadiranDariMesinAbsensiTipe2Service;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.trx.uploaddatakehadiran.pojos.TrxUploadDataKehadiranPojo;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.trx.uploaddatakehadirandarimesinabsensitipe1.entities.TrxUploadDataKehadiranDariMesinAbsensiTipe1;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.trx.uploaddatakehadirandarimesinabsensitipe1.services.TrxUploadDataKehadiranDariMesinAbsensiTipe1Service;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.trx.uploaddatakehadirandarimesinabsensitipe2.entities.TrxUploadDataKehadiranDariMesinAbsensiTipe2;
- import id.co.sofcograha.gajiidapi.domain.hris.attendance.trx.uploaddatakehadirandarimesinabsensitipe2.services.TrxUploadDataKehadiranDariMesinAbsensiTipe2Service;
- import id.co.sofcograha.gajiidapi.domain.hris.employee.data.employee.entities.Employee;
- import id.co.sofcograha.gajiidapi.domain.hris.employee.data.employee.services.EmployeeService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstFormatDataMesinAbsensi.entities.MstFormatDataMesinAbsensi;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstFormatDataMesinAbsensi.services.MstFormatDataMesinAbsensiService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstMesinAbsensi.entities.MstMesinAbsensi;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstMesinAbsensi.pojos.MstMesinAbsensiPojo;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstMesinAbsensi.services.MstMesinAbsensiService;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstMesinAbsensiDetailKaryawan.entities.MstMesinAbsensiDetailKaryawan;
- import id.co.sofcograha.gajiidapi.domain.hris.mst.attendance.mstMesinAbsensiDetailKaryawan.services.MstMesinAbsensiDetailKaryawanService;
- @Service
- public class TrxUploadDataKehadiranService extends FreeFormService {
- @Autowired private DataKehadiranDariMesinAbsensiTipe1Service dataKehadiranDariMesinAbsensiTipe1Service;
- @Autowired private DataKehadiranDariMesinAbsensiTipe2Service dataKehadiranDariMesinAbsensiTipe2Service;
- @Autowired private EmployeeService employeeService;
- @Autowired private ExcelUtil excel;
- @Autowired private HRISAuthorization hrisAuthorization;
- @Autowired private MstFormatDataMesinAbsensiService mstFormatDataMesinAbsensiService;
- @Autowired private MstMesinAbsensiService mstMesinAbsensiService;
- @Autowired private MstMesinAbsensiDetailKaryawanService mstMesinAbsensiDetailKaryawanService;
- @Autowired private TrxUploadDataKehadiranDariMesinAbsensiTipe1Service trxUploadDataKehadiranDariMesinAbsensiTipe1Service;
- @Autowired private TrxUploadDataKehadiranDariMesinAbsensiTipe2Service trxUploadDataKehadiranDariMesinAbsensiTipe2Service;
- @Transactional
- public UploadTemplate download(HttpServletResponse response) {
- String fileName = "uploadDataKehadiran.xlsx";
- FileInputStream templateFile = FileGenerator.getFileInputStream(fileName);
- excel.init(fileName, templateFile, getTemplateHeaders(), true);
- byte[] byteFiles = FileGenerator.generateExcelFile(response, fileName, excel.getWorkbook());
- UploadTemplate entity = new UploadTemplate();
- entity.setFileExtension(FileGenerator.CONTENT_TYPE_EXCEL_XLSX);
- entity.setFileName(fileName);
- entity.setFile(Base64.getEncoder().encodeToString(byteFiles));
- return entity;
- }
- @Transactional
- public List<TrxUploadDataKehadiranPojo> readUploadExcel(MstMesinAbsensi mesinAbsensi, String file, boolean doValidation) {
- mesinAbsensi = mstMesinAbsensiService.get(mesinAbsensi.getId());
- MstFormatDataMesinAbsensi formatDataMesinAbsensi = null;
- if (mesinAbsensi.getFormatDataMesinAbsensi() == null) {
- formatDataMesinAbsensi = mstFormatDataMesinAbsensiService.findByBk("default").orElse(null);
- } else {
- formatDataMesinAbsensi = mesinAbsensi.getFormatDataMesinAbsensi();
- }
- excel.init(PojoUtil.getXlsFileFromBase64File(file), formatDataMesinAbsensi.getNomorBarisJudul() - 1, false);
- List<TrxUploadDataKehadiranPojo> result = new ArrayList<>();
- CustomMultiUpdateException cmue = new CustomMultiUpdateException();
- boolean hasErrors = false;
- int rowNum = 0;
- Iterator<Row> dataRowIterator = excel.getDataIterator(formatDataMesinAbsensi.getNomorBarisDataPertama() - 1);
- while (dataRowIterator.hasNext()) {
- Boolean isError = false;
- Row dataRow = dataRowIterator.next();
- rowNum = dataRow.getRowNum() + 1;
- TrxUploadDataKehadiranPojo uploadDataKehadiran = new TrxUploadDataKehadiranPojo();
- uploadDataKehadiran.setMesinAbsensi(MstMesinAbsensiPojo.fromEntity(mesinAbsensi, BaseConstants.DEFAULT_QUERY_DEPTH));
- List<Message> errorList = new ArrayList<>();
- try {
- if (mesinAbsensi.getFormatDataMesinAbsensi() == null) {
- String nomorId = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan());
- MstMesinAbsensiDetailKaryawan mstMesinAbsensiDetailKaryawan = mstMesinAbsensiDetailKaryawanService.findByMesinAbsensiAndNomorId(mesinAbsensi.getId(), nomorId).orElse(null);
- uploadDataKehadiran.setNomorId(nomorId);
- if (nomorId == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else if (StringUtil.isBlank(nomorId) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else {
- if (mesinAbsensi.isNomorIdSamaDenganIdKaryawan() != true) {
- if (mstMesinAbsensiDetailKaryawan == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan(), nomorId));
- } else {
- uploadDataKehadiran.setIdKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getEmployeeId());
- uploadDataKehadiran.setNamaKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getName());
- }
- }
- }
- DateFormat format = new SimpleDateFormat(formatDataMesinAbsensi.getFormatTanggalJam());
- format.setLenient(false);
- String tanggal = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomTanggal());
- Date dateTanggal = null;
- if (tanggal == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.tanggal.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else if (StringUtil.isBlank(tanggal) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else {
- try {
- dateTanggal = format.parse(tanggal);
- uploadDataKehadiran.setTanggal(dateTanggal);
- } catch (ParseException e) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- }
- }
- String jam = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomJam());
- if (jam == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.jam.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJam()));
- } else if (StringUtil.isBlank(jam) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jam.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJam()));
- } else {
- if (!TimeUtil.isTimeValid(jam)){
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jam.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJam()));
- } else {
- uploadDataKehadiran.setJam(TimeUtil.getTime(jam));
- }
- }
- if (isError == false) {
- // 2. cek duplikat antar data
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (existUploadedDataKehadiran.getNomorId().equals(nomorId) &&
- TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal) &&
- existUploadedDataKehadiran.getJam().equals(jam)) {
- List<Message> existErrorList = existUploadedDataKehadiran.getErrorList();
- existErrorList.add(Message.create().setCode("trxUploadDataKehadiran.exist"));
- existUploadedDataKehadiran.setErrorList(existErrorList);
- isError = true;
- }
- }
- }
- // 3. cek duplikat pada saldo data kehadiran tipe 2
- if (isError == false) {
- DataKehadiranDariMesinAbsensiTipe2 dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.findByBk(mesinAbsensi, mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe2 != null) {
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.uploaded"));
- isError = true;
- }
- }
- if (isError == false) {
- Date yesterday = TimeUtil.minusDays(dateTanggal, 1);
- Date tomorrow = TimeUtil.addDays(dateTanggal, 1);
- List<Message> yesterdayErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), yesterday);
- List<Message> todayErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal);
- List<Message> tomorrowErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), tomorrow);
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), yesterday)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(yesterday, "dd/MM/yyyy")));
- }
- } else if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(dateTanggal, "dd/MM/yyyy")));
- }
- } else if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), tomorrow)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(tomorrow, "dd/MM/yyyy")));
- }
- }
- }
- }
- } else if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("A") ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("E")) {
- String nomorId = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan());
- MstMesinAbsensiDetailKaryawan mstMesinAbsensiDetailKaryawan = mstMesinAbsensiDetailKaryawanService.findByMesinAbsensiAndNomorId(mesinAbsensi.getId(), nomorId).orElse(null);
- uploadDataKehadiran.setNomorId(nomorId);
- if (nomorId == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else if (StringUtil.isBlank(nomorId) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else {
- if (mesinAbsensi.isNomorIdSamaDenganIdKaryawan() != true) {
- if (mstMesinAbsensiDetailKaryawan == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan(), nomorId));
- } else {
- uploadDataKehadiran.setIdKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getEmployeeId());
- uploadDataKehadiran.setNamaKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getName());
- }
- }
- }
- DateFormat format = new SimpleDateFormat(formatDataMesinAbsensi.getFormatTanggalJam());
- format.setLenient(false);
- String tanggal = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomTanggal());
- Date dateTanggal = null;
- if (tanggal == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.tanggal.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else if (StringUtil.isBlank(tanggal) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else {
- try {
- dateTanggal = format.parse(tanggal);
- uploadDataKehadiran.setTanggal(dateTanggal);
- } catch (ParseException e) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- }
- }
- String jam = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomJam());
- if (jam == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.jam.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJam()));
- } else if (StringUtil.isBlank(jam) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jam.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJam()));
- } else {
- if (!TimeUtil.isTimeValid(jam)){
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jam.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJam()));
- } else {
- uploadDataKehadiran.setJam(TimeUtil.getTime(jam));
- }
- }
- if (isError == false) {
- // 2. cek duplikat antar data
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (existUploadedDataKehadiran.getNomorId().equals(nomorId) &&
- TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal) &&
- existUploadedDataKehadiran.getJam().equals(jam)) {
- List<Message> existErrorList = existUploadedDataKehadiran.getErrorList();
- existErrorList.add(Message.create().setCode("trxUploadDataKehadiran.exist"));
- existUploadedDataKehadiran.setErrorList(existErrorList);
- isError = true;
- }
- }
- }
- // 3. cek duplikat pada saldo data kehadiran tipe 2
- if (isError == false) {
- DataKehadiranDariMesinAbsensiTipe2 dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.findByBk(mesinAbsensi, mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe2 != null) {
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.uploaded"));
- isError = true;
- }
- }
- if (isError == false) {
- Date yesterday = TimeUtil.minusDays(dateTanggal, 1);
- Date tomorrow = TimeUtil.addDays(dateTanggal, 1);
- List<Message> yesterdayErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), yesterday);
- List<Message> todayErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal);
- List<Message> tomorrowErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), tomorrow);
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), yesterday)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(yesterday, "dd/MM/yyyy")));
- }
- } else if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(dateTanggal, "dd/MM/yyyy")));
- }
- } else if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), tomorrow)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(tomorrow, "dd/MM/yyyy")));
- }
- }
- }
- }
- } else if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("C")) {
- String nomorId = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan());
- MstMesinAbsensiDetailKaryawan mstMesinAbsensiDetailKaryawan = mstMesinAbsensiDetailKaryawanService.findByMesinAbsensiAndNomorId(mesinAbsensi.getId(), nomorId).orElse(null);
- uploadDataKehadiran.setNomorId(nomorId);
- if (nomorId == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else if (StringUtil.isBlank(nomorId) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else {
- if (mesinAbsensi.isNomorIdSamaDenganIdKaryawan() != true) {
- if (mstMesinAbsensiDetailKaryawan == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else {
- uploadDataKehadiran.setIdKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getEmployeeId());
- uploadDataKehadiran.setNamaKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getName());
- }
- }
- }
- DateFormat format = new SimpleDateFormat(formatDataMesinAbsensi.getFormatTanggalJam());
- format.setLenient(false);
- String tanggal = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomTanggal());
- String jam = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomJam());
- String tanggalJam = tanggal + " " + jam;
- Date dateTanggal = null;
- if (tanggal == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.tanggal.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else if (StringUtil.isBlank(tanggal) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else {
- try {
- dateTanggal = format.parse(tanggalJam);
- uploadDataKehadiran.setTanggal(dateTanggal);
- } catch (ParseException e) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- }
- }
- if (isError == false) {
- // 2. cek duplikat antar data
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (existUploadedDataKehadiran.getNomorId().equals(nomorId) &&
- TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal)) {
- List<Message> existErrorList = existUploadedDataKehadiran.getErrorList();
- existErrorList.add(Message.create().setCode("trxUploadDataKehadiran.exist"));
- existUploadedDataKehadiran.setErrorList(existErrorList);
- isError = true;
- }
- }
- }
- // 3. cek duplikat pada saldo data kehadiran tipe 2
- if (isError == false) {
- DataKehadiranDariMesinAbsensiTipe2 dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.findByBk(mesinAbsensi, mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe2 != null) {
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.uploaded"));
- isError = true;
- }
- }
- if (isError == false) {
- Date yesterday = TimeUtil.minusDays(dateTanggal, 1);
- Date tomorrow = TimeUtil.addDays(dateTanggal, 1);
- List<Message> yesterdayErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), yesterday);
- List<Message> todayErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal);
- List<Message> tomorrowErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), tomorrow);
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), yesterday)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(yesterday, "dd/MM/yyyy")));
- }
- } else if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(dateTanggal, "dd/MM/yyyy")));
- }
- } else if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), tomorrow)) {
- if (yesterdayErrors.size() > 0 && todayErrors.size() > 0 && tomorrowErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(tomorrow, "dd/MM/yyyy")));
- }
- }
- }
- }
- } else if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("B") ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("D")) {
- String nomorId = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan());
- MstMesinAbsensiDetailKaryawan mstMesinAbsensiDetailKaryawan = mstMesinAbsensiDetailKaryawanService.findByMesinAbsensiAndNomorId(mesinAbsensi.getId(), nomorId).orElse(null);
- uploadDataKehadiran.setNomorId(nomorId);
- if (nomorId == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else if (StringUtil.isBlank(nomorId) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else {
- if (mesinAbsensi.isNomorIdSamaDenganIdKaryawan() != true) {
- if (mstMesinAbsensiDetailKaryawan == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.nomorId.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomNomorIdKaryawan()));
- } else {
- uploadDataKehadiran.setIdKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getEmployeeId());
- uploadDataKehadiran.setNamaKaryawan(mstMesinAbsensiDetailKaryawan.getKaryawan().getName());
- }
- }
- }
- DateFormat format = new SimpleDateFormat(formatDataMesinAbsensi.getFormatTanggalJam());
- format.setLenient(false);
- String tanggal = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomTanggal());
- Date dateTanggal = null;
- if (tanggal == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.tanggal.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else if (StringUtil.isBlank(tanggal) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- } else {
- try {
- dateTanggal = format.parse(tanggal);
- uploadDataKehadiran.setTanggal(dateTanggal);
- } catch (ParseException e) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.tanggal.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomTanggal()));
- }
- }
- String jamMasuk = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomJamMasuk());
- if (jamMasuk == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.jamMasuk.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJamMasuk()));
- } else if (StringUtil.isBlank(jamMasuk) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jamMasuk.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJamMasuk()));
- } else {
- if (!TimeUtil.isTimeValid(jamMasuk)){
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jamMasuk.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJamMasuk()));
- } else {
- uploadDataKehadiran.setJamPulang(TimeUtil.getTime(jamMasuk));
- }
- }
- String jamPulang = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomJamKeluar());
- if (jamPulang == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.jamPulang.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJamKeluar()));
- } else if (StringUtil.isBlank(jamPulang) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jamPulang.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJamKeluar()));
- } else {
- if (!TimeUtil.isTimeValid(jamPulang)){
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.jamPulang.not.valid")
- .setArgs(formatDataMesinAbsensi.getJudulKolomJamKeluar()));
- } else {
- uploadDataKehadiran.setJamPulang(TimeUtil.getTime(jamPulang));
- }
- }
- String keluarBesok = excel.getCellStringValue(dataRow, formatDataMesinAbsensi.getJudulKolomKeluarBesok());
- if (keluarBesok == null) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.column.keluarBesok.not.found")
- .setArgs(formatDataMesinAbsensi.getJudulKolomKeluarBesok()));
- } else if (StringUtil.isBlank(jamPulang) == true) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.keluarBesok.required")
- .setArgs(formatDataMesinAbsensi.getJudulKolomKeluarBesok()));
- } else {
- uploadDataKehadiran.setKeluarBesok(keluarBesok);
- }
- if (isError == false) {
- // 2. cek duplikat antar data
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (existUploadedDataKehadiran.getNomorId().equals(nomorId) &&
- TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal) &&
- existUploadedDataKehadiran.getJamMasuk().equals(jamMasuk) &&
- existUploadedDataKehadiran.getJamPulang().equals(jamPulang)) {
- List<Message> existErrorList = existUploadedDataKehadiran.getErrorList();
- existErrorList.add(Message.create().setCode("trxUploadDataKehadiran.exist"));
- existUploadedDataKehadiran.setErrorList(existErrorList);
- isError = true;
- }
- }
- }
- // 3. cek duplikat pada saldo data kehadiran tipe 2
- if (isError == false) {
- DataKehadiranDariMesinAbsensiTipe2 dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.findByBk(mesinAbsensi, mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe2 != null) {
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.uploaded"));
- isError = true;
- }
- }
- if (isError == false) {
- List<Message> karyawanBlmProsesPayrollAbsensiErrors = hrisAuthorization.getKaryawanBlmProsesPayrollAbsensiErrors(mstMesinAbsensiDetailKaryawan.getKaryawan(), dateTanggal);
- for (TrxUploadDataKehadiranPojo existUploadedDataKehadiran: result) {
- if (TimeUtil.isEqual(existUploadedDataKehadiran.getTanggal(), dateTanggal)) {
- if (karyawanBlmProsesPayrollAbsensiErrors.size() > 0) {
- isError = true;
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.dataKehadiran.processed")
- .setArgs(TimeUtil.convertDateToString(dateTanggal, "dd/MM/yyyy")));
- }
- }
- }
- }
- } else {
- errorList.add(Message.create().setCode("trxUploadDataKehadiran.mstFormatDataMesinAbsensi.not.found"));
- }
- } catch (BusinessException e) {
- hasErrors = true;
- multiUpdateErrorHandling(cmue, rowNum, e);
- errorList.add(Message.create().setCode(e.getMessage())
- .setArgs(e.getMessageParameters()));
- }
- uploadDataKehadiran.setErrorList(errorList);
- result.add(uploadDataKehadiran);
- }
- if (hasErrors && doValidation) throw cmue;
- return result;
- }
- @Transactional
- public int uploadData(List<TrxUploadDataKehadiranPojo> pojos) {
- CustomMultiUpdateException cmuex = new CustomMultiUpdateException();
- boolean hasErrors = false;
- int uploadedData = 0;
- for (TrxUploadDataKehadiranPojo trxUploadDataKehadiranPojo : pojos) {
- uploadedData++;
- try {
- MstMesinAbsensi mesinAbsensi = trxUploadDataKehadiranPojo.getMesinAbsensi();
- Employee karyawan = employeeService.findByBk(trxUploadDataKehadiranPojo.getIdKaryawan()).orElse(null);
- TrxUploadDataKehadiranDariMesinAbsensiTipe1 trxUploadDataKehadiranDariMesinAbsensiTipe1 = null;
- TrxUploadDataKehadiranDariMesinAbsensiTipe2 trxUploadDataKehadiranDariMesinAbsensiTipe2 = null;
- if (mesinAbsensi.getFormatDataMesinAbsensi() == null ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("A") ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("C") ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("E")) {
- trxUploadDataKehadiranDariMesinAbsensiTipe2 = new TrxUploadDataKehadiranDariMesinAbsensiTipe2();
- trxUploadDataKehadiranDariMesinAbsensiTipe2.setMesinAbsensi(mesinAbsensi);
- trxUploadDataKehadiranDariMesinAbsensiTipe2.setNomorBaris(uploadedData);
- trxUploadDataKehadiranDariMesinAbsensiTipe2.setNomorIdKaryawan(trxUploadDataKehadiranPojo.getNomorId());
- trxUploadDataKehadiranDariMesinAbsensiTipe2.setKaryawan(karyawan);
- trxUploadDataKehadiranDariMesinAbsensiTipe2.setTanggal(trxUploadDataKehadiranPojo.getTanggal());
- trxUploadDataKehadiranDariMesinAbsensiTipe2.setJam(trxUploadDataKehadiranPojo.getJam());
- trxUploadDataKehadiranDariMesinAbsensiTipe2 = trxUploadDataKehadiranDariMesinAbsensiTipe2Service.add(trxUploadDataKehadiranDariMesinAbsensiTipe2, BaseConstants.BLANK);
- trxUploadDataKehadiranDariMesinAbsensiTipe2 = trxUploadDataKehadiranDariMesinAbsensiTipe2Service.confirm(trxUploadDataKehadiranDariMesinAbsensiTipe2, BaseConstants.BLANK);
- } else if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("B") ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("D")) {
- trxUploadDataKehadiranDariMesinAbsensiTipe1 = new TrxUploadDataKehadiranDariMesinAbsensiTipe1();
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setMesinAbsensi(mesinAbsensi);
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setNomorBaris(uploadedData);
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setNomorIdKaryawan(trxUploadDataKehadiranPojo.getNomorId());
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setKaryawan(karyawan);
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setTanggal(trxUploadDataKehadiranPojo.getTanggal());
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setJamMasuk(trxUploadDataKehadiranPojo.getJamMasuk());
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setJamPulang(trxUploadDataKehadiranPojo.getJamPulang());
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setKeluarBesok(trxUploadDataKehadiranPojo.getKeluarBesok());
- trxUploadDataKehadiranDariMesinAbsensiTipe1.setStatusError(trxUploadDataKehadiranPojo.getStatusError());
- trxUploadDataKehadiranDariMesinAbsensiTipe1 = trxUploadDataKehadiranDariMesinAbsensiTipe1Service.add(trxUploadDataKehadiranDariMesinAbsensiTipe1, BaseConstants.BLANK);
- trxUploadDataKehadiranDariMesinAbsensiTipe1 = trxUploadDataKehadiranDariMesinAbsensiTipe1Service.confirm(trxUploadDataKehadiranDariMesinAbsensiTipe1, BaseConstants.BLANK);
- } else {
- throw new Exception("trxUploadDataKehadiran.formatDataMesinAbsensi.not.found");
- }
- if (trxUploadDataKehadiranDariMesinAbsensiTipe2 != null && StringUtil.isBlank(trxUploadDataKehadiranDariMesinAbsensiTipe2.getStatusError())) {
- if (mesinAbsensi.getFormatDataMesinAbsensi() == null ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("A") ||
- mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("E")) {
- Date timestampAbsensi = TimeUtil.getDate(trxUploadDataKehadiranPojo.getTanggal(), trxUploadDataKehadiranPojo.getJam());
- DataKehadiranDariMesinAbsensiTipe2 dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.findByBk(mesinAbsensi, karyawan, timestampAbsensi).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe2 == null) {
- dataKehadiranDariMesinAbsensiTipe2 = new DataKehadiranDariMesinAbsensiTipe2();
- dataKehadiranDariMesinAbsensiTipe2.setMesinAbsensi(mesinAbsensi);
- dataKehadiranDariMesinAbsensiTipe2.setKaryawan(karyawan);
- dataKehadiranDariMesinAbsensiTipe2.setTimestampAbsensi(timestampAbsensi);
- dataKehadiranDariMesinAbsensiTipe2.setRefTransaction(trxUploadDataKehadiranDariMesinAbsensiTipe2.getTransaction());
- dataKehadiranDariMesinAbsensiTipe2.setRefTrxNumber(trxUploadDataKehadiranDariMesinAbsensiTipe2.getTrxNumber());
- dataKehadiranDariMesinAbsensiTipe2.setRefTrxDate(trxUploadDataKehadiranDariMesinAbsensiTipe2.getTrxDate());
- dataKehadiranDariMesinAbsensiTipe2.setProcessTimestamp(trxUploadDataKehadiranDariMesinAbsensiTipe2.getCreationTime());
- dataKehadiranDariMesinAbsensiTipe2.setTanggalAbsensi(trxUploadDataKehadiranPojo.getTanggal());
- dataKehadiranDariMesinAbsensiTipe2.setKeteranganError(trxUploadDataKehadiranPojo.getStatusError());
- dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.add(dataKehadiranDariMesinAbsensiTipe2);
- hrisAuthorization.addOrEditAdminDataAbsensiPerKaryawan(karyawan, trxUploadDataKehadiranPojo.getTanggal(), TimeUtil.getSystemDate());
- }
- } else if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("C")) {
- DataKehadiranDariMesinAbsensiTipe2 dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.findByBk(mesinAbsensi, karyawan, trxUploadDataKehadiranPojo.getTanggal()).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe2 == null) {
- dataKehadiranDariMesinAbsensiTipe2 = new DataKehadiranDariMesinAbsensiTipe2();
- dataKehadiranDariMesinAbsensiTipe2.setMesinAbsensi(mesinAbsensi);
- dataKehadiranDariMesinAbsensiTipe2.setKaryawan(karyawan);
- dataKehadiranDariMesinAbsensiTipe2.setTimestampAbsensi(trxUploadDataKehadiranPojo.getTanggal());
- dataKehadiranDariMesinAbsensiTipe2.setRefTransaction(trxUploadDataKehadiranDariMesinAbsensiTipe2.getTransaction());
- dataKehadiranDariMesinAbsensiTipe2.setRefTrxNumber(trxUploadDataKehadiranDariMesinAbsensiTipe2.getTrxNumber());
- dataKehadiranDariMesinAbsensiTipe2.setRefTrxDate(trxUploadDataKehadiranDariMesinAbsensiTipe2.getTrxDate());
- dataKehadiranDariMesinAbsensiTipe2.setProcessTimestamp(trxUploadDataKehadiranDariMesinAbsensiTipe2.getCreationTime());
- dataKehadiranDariMesinAbsensiTipe2.setTanggalAbsensi(trxUploadDataKehadiranPojo.getTanggal());
- dataKehadiranDariMesinAbsensiTipe2.setKeteranganError(trxUploadDataKehadiranPojo.getStatusError());
- dataKehadiranDariMesinAbsensiTipe2 = dataKehadiranDariMesinAbsensiTipe2Service.add(dataKehadiranDariMesinAbsensiTipe2);
- hrisAuthorization.addOrEditAdminDataAbsensiPerKaryawan(karyawan, trxUploadDataKehadiranPojo.getTanggal(), TimeUtil.getSystemDate());
- }
- }
- }
- if (trxUploadDataKehadiranDariMesinAbsensiTipe1 != null && StringUtil.isBlank(trxUploadDataKehadiranDariMesinAbsensiTipe1.getStatusError())) {
- if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("B")) {
- Date timestampMasuk = TimeUtil.getDate(trxUploadDataKehadiranPojo.getTanggal(), trxUploadDataKehadiranPojo.getJamMasuk());
- Date timestampPulang = TimeUtil.getDate(trxUploadDataKehadiranPojo.getTanggal(), trxUploadDataKehadiranPojo.getJamPulang());
- DataKehadiranDariMesinAbsensiTipe1 dataKehadiranDariMesinAbsensiTipe1 = dataKehadiranDariMesinAbsensiTipe1Service.findByBk(mesinAbsensi, karyawan, trxUploadDataKehadiranPojo.getTanggal(), timestampMasuk, timestampPulang).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe1 == null) {
- dataKehadiranDariMesinAbsensiTipe1 = new DataKehadiranDariMesinAbsensiTipe1();
- dataKehadiranDariMesinAbsensiTipe1.setMesinAbsensi(mesinAbsensi);
- dataKehadiranDariMesinAbsensiTipe1.setKaryawan(karyawan);
- dataKehadiranDariMesinAbsensiTipe1.setTanggalAbsensi(trxUploadDataKehadiranPojo.getTanggal());
- dataKehadiranDariMesinAbsensiTipe1.setTimestampMasuk(timestampMasuk);
- if (mesinAbsensi.getFormatDataMesinAbsensi().getIsiKolomKeluarBesok().equals(trxUploadDataKehadiranPojo.getKeluarBesok())) {
- timestampPulang = TimeUtil.getDate(TimeUtil.addDays(trxUploadDataKehadiranPojo.getTanggal(), 1), trxUploadDataKehadiranPojo.getJamPulang());
- }
- dataKehadiranDariMesinAbsensiTipe1.setTimestampPulang(timestampPulang);
- dataKehadiranDariMesinAbsensiTipe1.setRefTransaction(trxUploadDataKehadiranDariMesinAbsensiTipe1.getTransaction());
- dataKehadiranDariMesinAbsensiTipe1.setRefTrxNumber(trxUploadDataKehadiranDariMesinAbsensiTipe1.getTrxNumber());
- dataKehadiranDariMesinAbsensiTipe1.setRefTrxDate(trxUploadDataKehadiranDariMesinAbsensiTipe1.getTrxDate());
- dataKehadiranDariMesinAbsensiTipe1.setProcessTimestamp(trxUploadDataKehadiranDariMesinAbsensiTipe1.getCreationTime());
- dataKehadiranDariMesinAbsensiTipe1 = dataKehadiranDariMesinAbsensiTipe1Service.add(dataKehadiranDariMesinAbsensiTipe1);
- hrisAuthorization.addOrEditAdminDataAbsensiPerKaryawan(karyawan, trxUploadDataKehadiranPojo.getTanggal(), TimeUtil.getSystemDate());
- }
- } else if (mesinAbsensi.getFormatDataMesinAbsensi().getJenis().equals("D")) {
- Date timestampMasuk = TimeUtil.getDate(trxUploadDataKehadiranPojo.getTanggal(), trxUploadDataKehadiranPojo.getJamMasuk());
- Date timestampPulang = TimeUtil.getDate(trxUploadDataKehadiranPojo.getTanggal(), trxUploadDataKehadiranPojo.getJamPulang());
- DataKehadiranDariMesinAbsensiTipe1 dataKehadiranDariMesinAbsensiTipe1 = dataKehadiranDariMesinAbsensiTipe1Service.findByBk(mesinAbsensi, karyawan, trxUploadDataKehadiranPojo.getTanggal(), timestampMasuk, timestampPulang).orElse(null);
- if (dataKehadiranDariMesinAbsensiTipe1 == null) {
- dataKehadiranDariMesinAbsensiTipe1 = new DataKehadiranDariMesinAbsensiTipe1();
- dataKehadiranDariMesinAbsensiTipe1.setMesinAbsensi(mesinAbsensi);
- dataKehadiranDariMesinAbsensiTipe1.setKaryawan(karyawan);
- dataKehadiranDariMesinAbsensiTipe1.setTanggalAbsensi(trxUploadDataKehadiranPojo.getTanggal());
- dataKehadiranDariMesinAbsensiTipe1.setTimestampMasuk(timestampMasuk);
- if (TimeUtil.isTimeBefore(trxUploadDataKehadiranDariMesinAbsensiTipe1.getJamPulang(), trxUploadDataKehadiranDariMesinAbsensiTipe1.getJamMasuk())) {
- timestampPulang = TimeUtil.getDate(TimeUtil.addDays(trxUploadDataKehadiranPojo.getTanggal(), 1), trxUploadDataKehadiranPojo.getJamPulang());
- }
- dataKehadiranDariMesinAbsensiTipe1.setTimestampPulang(timestampPulang);
- dataKehadiranDariMesinAbsensiTipe1.setRefTransaction(trxUploadDataKehadiranDariMesinAbsensiTipe1.getTransaction());
- dataKehadiranDariMesinAbsensiTipe1.setRefTrxNumber(trxUploadDataKehadiranDariMesinAbsensiTipe1.getTrxNumber());
- dataKehadiranDariMesinAbsensiTipe1.setRefTrxDate(trxUploadDataKehadiranDariMesinAbsensiTipe1.getTrxDate());
- dataKehadiranDariMesinAbsensiTipe1.setProcessTimestamp(trxUploadDataKehadiranDariMesinAbsensiTipe1.getCreationTime());
- dataKehadiranDariMesinAbsensiTipe1 = dataKehadiranDariMesinAbsensiTipe1Service.add(dataKehadiranDariMesinAbsensiTipe1);
- hrisAuthorization.addOrEditAdminDataAbsensiPerKaryawan(karyawan, trxUploadDataKehadiranPojo.getTanggal(), TimeUtil.getSystemDate());
- }
- }
- }
- } catch (Exception e) {
- hasErrors = true;
- multiUpdateErrorHandling(cmuex, uploadedData, e);
- }
- }
- if (hasErrors) throw cmuex;
- return uploadedData;
- }
- private ArrayList<String> getTemplateHeaders() {
- ArrayList<String> headerList = new ArrayList<>();
- headerList.add("Nomor ID *");
- headerList.add("Tanggal *");
- headerList.add("Jam *");
- return headerList;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment