Update SlipGajiServiceImpl.java

Perbaikan lanjutan untuk unggah slip gaji loading lama
This commit is contained in:
Salman Manoe 2023-06-23 10:30:13 +07:00
parent d5ddace4f3
commit ce44cbd071

View File

@ -258,9 +258,25 @@ public class SlipGajiServiceImpl implements SlipGajiService {
SlipGaji slipGaji = slipGajiBuilder.build(); SlipGaji slipGaji = slipGajiBuilder.build();
listSlip.add(slipGaji); listSlip.add(slipGaji);
List<SlipGajiKomponenDto> komponen = e.getKomponen(); List<SlipGajiKomponenDto> komponen = e.getKomponen();
/** List<SlipGajiKomponen> komponenSlip = allKomponen.stream().filter(k -> e.getId().equals(k.getSlipGaji().getId())).collect(Collectors.toList());
* TODO List<Integer> listIdMasterKomponen = komponenSlip.stream().map(k -> k.getKomponen().getId()).collect(Collectors.toList());
*/ komponen.forEach(k -> {
if (CommonUtil.isNotNullOrEmpty(k.getNominal()) && listIdMasterKomponen.contains(k.getIdKomponen())) {
List<SlipGajiKomponen> komponenList = komponenSlip.stream().filter(s -> s.getKomponen().getId().equals(k.getIdKomponen())).collect(Collectors.toList());
komponenList.forEach(l -> l.setNominal(k.getNominal()));
listKomponen.addAll(komponenList);
} else if (CommonUtil.isNotNullOrEmpty(k.getNominal())) {
SlipGajiKomponen.SlipGajiKomponenBuilder kBuilder = SlipGajiKomponen.builder();
if (CommonUtil.isNotNullOrEmpty(k.getId()))
kBuilder.id(k.getId());
KomponenGaji kGaji = new KomponenGaji();
kGaji.setId(k.getIdKomponen());
kBuilder.komponen(kGaji);
kBuilder.nominal(k.getNominal());
kBuilder.slipGaji(slipGaji);
listKomponen.add(kBuilder.build());
}
});
}); });
} }
slipGajiDao.save(listSlip); slipGajiDao.save(listSlip);
@ -418,7 +434,7 @@ public class SlipGajiServiceImpl implements SlipGajiService {
Object[] arrkd = new Object[row2.size()]; Object[] arrkd = new Object[row2.size()];
row1.toArray(arrId); row1.toArray(arrId);
row2.toArray(arrkd); row2.toArray(arrkd);
Integer i = 1; int i = 1;
Map<Integer, Object[]> data = new HashMap<>(); Map<Integer, Object[]> data = new HashMap<>();
data.put(i++, arrId); data.put(i++, arrId);
data.put(i++, arrkd); data.put(i++, arrkd);
@ -429,8 +445,7 @@ public class SlipGajiServiceImpl implements SlipGajiService {
d.get("9"), d.get("10"), d.get("11"), d.get("12"), d.get("13"), d.get("14"), d.get("15"), d.get("9"), d.get("10"), d.get("11"), d.get("12"), d.get("13"), d.get("14"), d.get("15"),
d.get("16"), d.get("17"), d.get("18"), d.get("19") }); d.get("16"), d.get("17"), d.get("18"), d.get("19") });
} }
TreeMap<Integer, Object[]> sorted = new TreeMap<>(); TreeMap<Integer, Object[]> sorted = new TreeMap<>(data);
sorted.putAll(data);
Set<Integer> keyset = sorted.keySet(); Set<Integer> keyset = sorted.keySet();
int rownum = 0; int rownum = 0;
for (Integer key : keyset) { for (Integer key : keyset) {
@ -464,10 +479,10 @@ public class SlipGajiServiceImpl implements SlipGajiService {
String workingDir = System.getProperty("user.dir"); String workingDir = System.getProperty("user.dir");
String your_os = System.getProperty("os.name").toLowerCase(); String your_os = System.getProperty("os.name").toLowerCase();
String absoluteFilePath = ""; String absoluteFilePath = "";
if (your_os.indexOf("win") >= 0) { if (your_os.contains("win")) {
// if_windows // if_windows
absoluteFilePath = workingDir + "\\" + filename; absoluteFilePath = workingDir + "\\" + filename;
} else if (your_os.indexOf("nix") >= 0 || your_os.indexOf("nux") >= 0 || your_os.indexOf("mac") >= 0) { } else if (your_os.contains("nix") || your_os.contains("nux") || your_os.contains("mac")) {
// if_unix_or_mac // if_unix_or_mac
absoluteFilePath = workingDir + "//tmp//" + filename; absoluteFilePath = workingDir + "//tmp//" + filename;
// absoluteFilePath = workingDir + "/" + filename; // absoluteFilePath = workingDir + "/" + filename;
@ -475,14 +490,11 @@ public class SlipGajiServiceImpl implements SlipGajiService {
// unknown_os? // unknown_os?
absoluteFilePath = workingDir + "/" + filename; absoluteFilePath = workingDir + "/" + filename;
} }
FileOutputStream out = new FileOutputStream(new File(absoluteFilePath)); try (FileOutputStream out = new FileOutputStream(new File(absoluteFilePath))) {
try {
workbook.write(out); workbook.write(out);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
return absoluteFilePath; return absoluteFilePath;
} finally {
out.close();
} }
return absoluteFilePath; return absoluteFilePath;
} }
@ -496,15 +508,15 @@ public class SlipGajiServiceImpl implements SlipGajiService {
result.put("jabatan", dto.getJabatan()); result.put("jabatan", dto.getJabatan());
result.put("unitKerja", dto.getUnitKerja()); result.put("unitKerja", dto.getUnitKerja());
result.put("subUnitKerja", dto.getSubUnitKerja()); result.put("subUnitKerja", dto.getSubUnitKerja());
List<SlipGajiKomponenDto> komponenDto = dto.getKomponen(); // List<SlipGajiKomponenDto> komponenDto = dto.getKomponen();
List<KomponenGaji> listMasterKomponen = komponenGajiDao.findAll(new Sort("id")); // List<KomponenGaji> listMasterKomponen = komponenGajiDao.findAll(new Sort("id"));
for (KomponenGaji m : listMasterKomponen) { // for (KomponenGaji m : listMasterKomponen) {
for (SlipGajiKomponenDto k : komponenDto) { // for (SlipGajiKomponenDto k : komponenDto) {
if (m.getId().equals(k.getIdKomponen())) { // if (m.getId().equals(k.getIdKomponen())) {
//
} // }
} // }
} // }
return result; return result;
} }