package com.ese.service; import com.ese.model.dao.InventoryOnhandReportDAO; import com.ese.model.view.InventoryOnhandReportView; import com.ese.utils.Utils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @Component @Transactional public class InventoryOnhandReportService extends Service{ private static final long serialVersionUID = 4112578634920874840L; @Resource private InventoryOnhandReportDAO onhandReportDAO; @Resource private ReportService reportService; @Resource private CSVService csvService; @Value("#{config['report.inventoryreport']}") private String pathreport; private final String COMMA_DELIMITED = ","; public List<InventoryOnhandReportView> getInventoryOnhandReport(){ return onhandReportDAO.findInventOnhandReport(); } public void print(List<InventoryOnhandReportView> views, String user){ String printTagReportname = Utils.genReportName("_ReceivingReport"); List<InventoryOnhandReportView> reportViewList = new ArrayList<InventoryOnhandReportView>(); HashMap map = new HashMap<String, Object>(); map.put("userPrint", user); map.put("printDate", Utils.convertCurrentDateToStringDDMMYYYY()); int no = 1; for (InventoryOnhandReportView view : views){ InventoryOnhandReportView reportView = new InventoryOnhandReportView(); reportView.setNo(no); reportView.setItemCode(view.getItemCode()); reportView.setWarehouseName(view.getWarehouseName()); reportView.setLocationBarcode(view.getLocationBarcode()); reportView.setBatchNo(view.getBatchNo()); reportView.setAvailableQty(view.getAvailableView().getQty()); reportView.setAvailableAmount(view.getAvailableView().getAmount()); reportView.setReservedQty(view.getReservedView().getQty()); reportView.setReservedAmount(view.getReservedView().getAmount()); reportView.setPickQty(view.getPickView().getQty()); reportView.setPickAmount(view.getPickView().getAmount()); reportView.setPackQty(view.getPackView().getQty()); reportView.setPackAmount(view.getPackView().getAmount()); reportView.setPhysicalQty(view.getPhysicalView().getQty()); reportView.setPhysicalAmount(view.getPhysicalView().getAmount()); reportViewList.add(reportView); no++; } log.debug("reportViewList siz : {}", reportViewList.size()); try { reportService.exportPDF(pathreport, map, printTagReportname, reportViewList); } catch (Exception e) { log.debug("Exception error onPrintReceivingReport : ", e); } } public void onExportCSV(List<InventoryOnhandReportView> reportViews){ String printTagReportname = Utils.genReportName("_ReceivingReport"); int sumAvailableQty = 0; int sumAvailableAmount = 0; int sumReservedQty = 0; int sumReservedAmount = 0; int sumPickQty = 0; int sumPickAmount = 0; int sumPackQty = 0; int sumPackAmount = 0; int sumPhysicalQty = 0; int sumPhysicalAmount = 0; StringBuilder csvReceiving = new StringBuilder(); csvReceiving.append("NO").append(COMMA_DELIMITED); csvReceiving.append("Item_Code").append(COMMA_DELIMITED); csvReceiving.append("Warehouse").append(COMMA_DELIMITED); csvReceiving.append("Location").append(COMMA_DELIMITED); csvReceiving.append("Batch").append(COMMA_DELIMITED); csvReceiving.append("Available_Qty").append(COMMA_DELIMITED); csvReceiving.append("Available_Amount").append(COMMA_DELIMITED); csvReceiving.append("Reserved_Qty").append(COMMA_DELIMITED); csvReceiving.append("Reserved_Amount").append(COMMA_DELIMITED); csvReceiving.append("Pick_Qty").append(COMMA_DELIMITED); csvReceiving.append("Pick_Amount").append(COMMA_DELIMITED); csvReceiving.append("Pack_Qty").append(COMMA_DELIMITED); csvReceiving.append("Pack_Amount").append(COMMA_DELIMITED); csvReceiving.append("Physical_Qty").append(COMMA_DELIMITED); csvReceiving.append("Physical_Amount").append('\n'); int no = 1; for (InventoryOnhandReportView view : reportViews){ csvReceiving.append(no).append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyString(view.getItemCode()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyString(view.getWarehouseName()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyString(view.getLocationBarcode()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyString(view.getBatchNo()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getAvailableView().getQty()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getAvailableView().getAmount()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getReservedView().getQty()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getReservedView().getAmount()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getPickView().getQty()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getPickView().getAmount()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getPackView().getQty()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getPackView().getAmount()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getPhysicalView().getQty()) + '"').append(COMMA_DELIMITED); csvReceiving.append('"' + Utils.EmptyInteget(view.getPhysicalView().getAmount()) + '"').append('\n'); sumAvailableQty += view.getAvailableView().getQty(); sumAvailableAmount += view.getAvailableView().getAmount(); sumReservedQty += view.getReservedView().getQty(); sumReservedAmount += view.getReservedView().getAmount(); sumPickQty += view.getPickView().getQty(); sumPickAmount += view.getPickView().getAmount(); sumPackQty += view.getPackView().getQty(); sumPackAmount += view.getPackView().getAmount(); sumPhysicalQty += view.getPhysicalView().getQty(); sumPhysicalAmount += view.getPhysicalView().getAmount(); no++; } csvReceiving.append(COMMA_DELIMITED).append(COMMA_DELIMITED).append(COMMA_DELIMITED).append(COMMA_DELIMITED); csvReceiving.append("Total").append(COMMA_DELIMITED).append(sumAvailableQty).append(COMMA_DELIMITED); csvReceiving.append(sumAvailableAmount).append(COMMA_DELIMITED).append(sumReservedQty).append(COMMA_DELIMITED); csvReceiving.append(sumReservedAmount).append(COMMA_DELIMITED).append(sumPickQty).append(COMMA_DELIMITED); csvReceiving.append(sumPickAmount).append(COMMA_DELIMITED).append(sumPackQty).append(COMMA_DELIMITED); csvReceiving.append(sumPackAmount).append(COMMA_DELIMITED).append(sumPhysicalQty).append(COMMA_DELIMITED); csvReceiving.append(sumPhysicalAmount); csvService.exportCSV(printTagReportname, csvReceiving.toString()); } }