1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
public ActionForward execute(
ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response)
throws Exception {
try {
String csv = getRecordsCSV(request);
String fileName = "records.csv";
byte[] bytes = csv.getBytes();
ServletResponseUtil.sendFile(response, fileName, bytes, ContentTypes.TEXT_CSV_UTF8);
return null;
}
catch (Exception e) {
PortalUtil.sendError(e, request, response);
return null;
}
}
protected String getRecordsCSV(HttpServletRequest request) throws Exception {
ProgressTracker progressTracker = new ProgressTracker(request, String.valueOf(new Date().getTime()));
progressTracker.start();
List<Record> objListRecord = RecordMetier.search(
ParamUtil.getLong(request, "adminId"),
ParamUtil.getLong(request, "userId") == 0 ? "" : String.valueOf(ParamUtil.getLong(request, "userId")),
ParamUtil.getLong(request, "intIdTag") == 0 ? "" : String.valueOf(ParamUtil.getLong(request, "intIdTag")),
ParamUtil.getLong(request, "organizationId") == 0 ? "" : String.valueOf(ParamUtil.getLong(request, "organizationId")),
null, null, null);
int percentage = 10;
int total = objListRecord.size();
progressTracker.updateProgress(percentage);
StringBuilder sb = new StringBuilder(objListRecord.size() * 50);
Iterator<Record> objIterator = objListRecord.iterator();
for (int i = 0; objIterator.hasNext(); i++) {
Record objRecord = objIterator.next();
sb.append(objRecord.getIntIdRecord());
sb.append(StringPool.COMMA);
sb.append(objRecord.getDatRecord());
sb.append(StringPool.COMMA);
sb.append(objRecord.getStrRefTag());
sb.append(StringPool.COMMA);
sb.append(objRecord.getStrNameOrganization());
sb.append(StringPool.COMMA);
sb.append(objRecord.getStrNameUser());
sb.append(StringPool.COMMA);
sb.append(objRecord.getIntNbPoint());
sb.append(StringPool.NEW_LINE);
percentage = Math.min(10 + (i * 90) / total, 99);
progressTracker.updateProgress(percentage);
}
progressTracker.finish();
return sb.toString();
} |
Partager