package com.ese.service;
import com.ese.model.dao.ReceivingReportDAO;
import com.ese.model.view.ReceivingReportView;
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 ReceivingReportService extends Service{
private static final long serialVersionUID = 4112578634920874840L;
@Resource private ReceivingReportDAO receivingReportDAO;
@Resource private ReportService reportService;
@Resource private CSVService csvService;
@Value("#{config['report.receivingreport']}")
private String pathreport;
private final String COMMA_DELIMITED = ",";
public List<ReceivingReportView> getReceivingReportView(String startDate, String endDate){
return receivingReportDAO.findReceivingReport(startDate, endDate);
}
public void onPrintReceivingReport(List<ReceivingReportView> receivingReportViews, String user){
String printTagReportname = Utils.genReportName("_ReceivingReport");
List<ReceivingReportView> reportViewList = new ArrayList<ReceivingReportView>();
HashMap map = new HashMap<String, Object>();
map.put("userPrint", user);
map.put("printDate", Utils.convertCurrentDateToStringDDMMYYYY());
int no = 1;
for (ReceivingReportView view : receivingReportViews){
ReceivingReportView reportView = new ReceivingReportView();
reportView.setNo(no);
reportView.setReceivingDate(view.getReceivingDate());
reportView.setWarehouseCode(view.getWarehouseCode());
reportView.setConveyorLine(view.getConveyorLine());
reportView.setItemName(view.getItemName());
reportView.setItemDesc(view.getItemDesc());
reportView.setGrade(view.getGrade());
reportView.setQty(view.getQty());
reportViewList.add(reportView);
no++;
}
try {
reportService.exportPDF(pathreport, map, printTagReportname, reportViewList);
} catch (Exception e) {
log.debug("Exception error onPrintReceivingReport : ", e);
}
}
public void onExportCSV(List<ReceivingReportView> reportViews){
String printTagReportname = Utils.genReportName("_ReceivingReport");
int sumQty = 0;
StringBuilder csvReceiving = new StringBuilder();
csvReceiving.append("NO").append(COMMA_DELIMITED);
csvReceiving.append("Receiving_Date").append(COMMA_DELIMITED);
csvReceiving.append("Warehouse").append(COMMA_DELIMITED);
csvReceiving.append("Conveyor_line").append(COMMA_DELIMITED);
csvReceiving.append("Item").append(COMMA_DELIMITED);
csvReceiving.append("Item_Description").append(COMMA_DELIMITED);
csvReceiving.append("Grade").append(COMMA_DELIMITED);
csvReceiving.append("Qty").append('\n');
int no = 1;
for (ReceivingReportView view : reportViews){
csvReceiving.append(no).append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyString(view.getReceivingDate()) + '"').append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyString(view.getWarehouseCode()) + '"').append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyString(view.getConveyorLine()) + '"').append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyString(view.getItemName()) + '"').append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyString(view.getItemDesc()) + '"').append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyString(view.getGrade()) + '"').append(COMMA_DELIMITED);
csvReceiving.append('"' + Utils.EmptyInteget(view.getQty()) + '"').append('\n');
sumQty = sumQty + view.getQty();
no++;
}
csvReceiving.append(COMMA_DELIMITED).append(COMMA_DELIMITED).append(COMMA_DELIMITED).append(COMMA_DELIMITED).append(COMMA_DELIMITED)
.append(COMMA_DELIMITED).append(" Total :").append(COMMA_DELIMITED).append(Utils.EmptyInteget(sumQty));
csvService.exportCSV(printTagReportname, csvReceiving.toString());
}
}