You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sh...@apache.org on 2016/11/23 14:46:55 UTC
svn commit: r1770979 [2/4] - in /ofbiz/trunk/specialpurpose/pricat: ./
config/ data/ entitydef/ groovyScripts/pricat/
src/main/java/org/apache/ofbiz/htmlreport/
src/main/java/org/apache/ofbiz/htmlreport/sample/
src/main/java/org/apache/ofbiz/pricat/ sr...
Modified: ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java?rev=1770979&r1=1770978&r2=1770979&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java (original)
+++ ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/AbstractPricatParser.java Wed Nov 23 14:46:54 2016
@@ -77,31 +77,31 @@ import org.apache.ofbiz.service.ServiceU
*
*/
public abstract class AbstractPricatParser implements InterfacePricatParser {
-
- public static final String module = AbstractPricatParser.class.getName();
-
- protected LocalDispatcher dispatcher;
-
- protected Delegator delegator;
-
- protected List<FileItem> fileItems;
-
- protected File pricatFile;
-
- protected String userLoginId;
-
- protected GenericValue userLogin;
-
- protected String pricatFileVersion;
-
- protected String currencyId;
-
- protected Map<CellReference, String> errorMessages = new HashMap<CellReference, String>();
-
- protected HSSFDataFormatter formatter = new HSSFDataFormatter();
-
- protected Map<String, String[]> facilities = new HashMap<String, String[]>();
-
+
+ public static final String module = AbstractPricatParser.class.getName();
+
+ protected LocalDispatcher dispatcher;
+
+ protected Delegator delegator;
+
+ protected List<FileItem> fileItems;
+
+ protected File pricatFile;
+
+ protected String userLoginId;
+
+ protected GenericValue userLogin;
+
+ protected String pricatFileVersion;
+
+ protected String currencyId;
+
+ protected Map<CellReference, String> errorMessages = new HashMap<CellReference, String>();
+
+ protected HSSFDataFormatter formatter = new HSSFDataFormatter();
+
+ protected Map<String, String[]> facilities = new HashMap<String, String[]>();
+
protected HttpSession session;
protected List<EntityCondition> basicCategoryConds;
@@ -119,545 +119,545 @@ public abstract class AbstractPricatPars
protected long sequenceNum = -1L;
public AbstractPricatParser(LocalDispatcher dispatcher, Delegator delegator, Locale locale, InterfaceReport report, Map<String, String[]> facilities, File pricatFile, GenericValue userLogin) {
- this.dispatcher = dispatcher;
- this.delegator = delegator;
- this.locale = locale;
- this.report = report;
- this.userLogin = userLogin;
- if (UtilValidate.isNotEmpty(userLogin)) {
- this.userLoginId = userLogin.getString("userLoginId");
- }
- this.facilities = facilities;
- this.pricatFile = pricatFile;
- initBasicConds(UtilMisc.toList(userLogin.getString("partyId")));
- }
-
- public void writeCommentsToFile(XSSFWorkbook workbook, XSSFSheet sheet) {
- report.println();
- report.print(UtilProperties.getMessage(resource, "WriteCommentsBackToExcel", locale), InterfaceReport.FORMAT_NOTE);
- FileOutputStream fos = null;
- XSSFCreationHelper factory = workbook.getCreationHelper();
- XSSFFont boldFont = workbook.createFont();
- boldFont.setFontName("Arial");
- boldFont.setBold(true);
- boldFont.setCharSet(134);
- boldFont.setFontHeightInPoints((short) 9);
- XSSFFont plainFont = workbook.createFont();
- plainFont.setFontName("Arial");
- plainFont.setCharSet(134);
- plainFont.setFontHeightInPoints((short) 9);
-
- XSSFSheet errorSheet = null;
- if (errorMessages.keySet().size() > 0) {
- String errorSheetName = UtilDateTime.nowDateString("yyyy-MM-dd HHmm") + " Errors";
- errorSheetName = WorkbookUtil.createSafeSheetName(errorSheetName);
- errorSheet = workbook.createSheet(errorSheetName);
- workbook.setSheetOrder(errorSheetName, 0);
- workbook.setActiveSheet(workbook.getSheetIndex(errorSheetName));
- XSSFDrawing drawingPatriarch = errorSheet.getDrawingPatriarch();
- if (drawingPatriarch == null) {
- drawingPatriarch = errorSheet.createDrawingPatriarch();
- }
- for (int i = 0; i <= getHeaderRowNo(); i++) {
- XSSFRow newRow = errorSheet.createRow(i);
- XSSFRow row = sheet.getRow(i);
- newRow.setHeight(row.getHeight());
- copyRow(row, newRow, factory, drawingPatriarch);
- }
-
- // copy merged regions
- for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
- CellRangeAddress mergedRegion = sheet.getMergedRegion(i);
- if (mergedRegion.getFirstRow() < getHeaderRowNo()) {
- errorSheet.addMergedRegion(mergedRegion);
- }
- }
-
- // copy images
- List<XSSFPictureData> pics = workbook.getAllPictures();
- List<XSSFShape> shapes = sheet.getDrawingPatriarch().getShapes();
- for (int i = 0; i < shapes.size(); i++) {
- XSSFShape shape = shapes.get(i);
- XSSFAnchor anchor = shape.getAnchor();
- if (shape instanceof XSSFPicture && anchor instanceof XSSFClientAnchor) {
- XSSFPicture pic = (XSSFPicture) shape;
- XSSFClientAnchor clientAnchor = (XSSFClientAnchor) anchor;
- if (clientAnchor.getRow1() < getHeaderRowNo()) {
- for (int j = 0; j < pics.size(); j++) {
- XSSFPictureData picture = pics.get(j);
- if (picture.getPackagePart().getPartName().equals(pic.getPictureData().getPackagePart().getPartName())) {
- drawingPatriarch.createPicture(clientAnchor, j);
- }
- }
- }
- }
- }
- }
-
- try {
- // set comments in the original sheet
- XSSFDrawing patriarch = sheet.getDrawingPatriarch();
- for (CellReference cell : errorMessages.keySet()) {
- if (cell != null && errorMessages.get(cell) != null) {
- XSSFComment comment = sheet.getCellComment(new CellAddress(cell.getRow(), cell.getCol()));
- boolean isNewComment = false;
- if (comment == null) {
- XSSFClientAnchor anchor = factory.createClientAnchor();
- anchor.setDx1(100);
- anchor.setDx2(100);
- anchor.setDy1(100);
- anchor.setDy2(100);
- anchor.setCol1(cell.getCol());
- anchor.setCol2(cell.getCol() + 4);
- anchor.setRow1(cell.getRow());
- anchor.setRow2(cell.getRow() + 4);
- anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);
-
- comment = patriarch.createCellComment(anchor);
- isNewComment = true;
- }
- XSSFRichTextString rts = factory.createRichTextString("OFBiz PriCat:\n");
- rts.applyFont(boldFont);
- rts.append(errorMessages.get(cell), plainFont);
- comment.setString(rts);
- comment.setAuthor("Apache OFBiz PriCat");
- if (isNewComment) {
- sheet.getRow(cell.getRow()).getCell(cell.getCol()).setCellComment(comment);
- OFBizPricatUtil.formatCommentShape(sheet, cell);
- }
- }
- }
-
- // set comments in the new error sheet
- XSSFDrawing errorPatriarch = errorSheet.getDrawingPatriarch();
- int newRowNum = getHeaderRowNo() + 1;
- Map<Integer, Integer> rowMapping = new HashMap<Integer, Integer>();
- for (CellReference cell : errorMessages.keySet()) {
- if (cell != null && errorMessages.get(cell) != null) {
- XSSFRow row = sheet.getRow(cell.getRow());
- Integer rowNum = Integer.valueOf(row.getRowNum());
- int errorRow = newRowNum;
- if (rowMapping.containsKey(rowNum)) {
- errorRow = rowMapping.get(rowNum).intValue();
- } else {
- XSSFRow newRow = errorSheet.getRow(errorRow);
- if (newRow == null) {
- newRow = errorSheet.createRow(errorRow);
- }
- rowMapping.put(rowNum, Integer.valueOf(errorRow));
- newRow.setHeight(row.getHeight());
- copyRow(row, newRow, factory, errorPatriarch);
- newRowNum ++;
- }
- }
- }
-
- // write to file
- if (sequenceNum > 0L) {
- File commentedExcel = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx");
- fos = new FileOutputStream(commentedExcel);
- workbook.write(fos);
- } else {
- fos = new FileOutputStream(pricatFile);
- workbook.write(fos);
- }
- fos.flush();
- fos.close();
- workbook.close();
- } catch (FileNotFoundException e) {
- report.println(e);
- Debug.logError(e, module);
- } catch (IOException e) {
- report.println(e);
- Debug.logError(e, module);
- } finally {
- if (fos != null) {
- try {
- fos.close();
- } catch (IOException e) {
- Debug.logError(e, module);
- }
- }
- if (workbook != null) {
- try {
- workbook.close();
- } catch (IOException e) {
- Debug.logError(e, module);
- }
- }
- }
- report.println(UtilProperties.getMessage(resource, "ok", locale), InterfaceReport.FORMAT_OK);
- report.println();
- }
-
- private void copyRow(XSSFRow sourceRow, XSSFRow targetRow, XSSFCreationHelper factory, XSSFDrawing patriarch) {
- for (int j = 0; j < sourceRow.getPhysicalNumberOfCells(); j++) {
- XSSFCell cell = sourceRow.getCell(j);
- if (cell != null) {
- XSSFCell newCell = targetRow.createCell(j);
- int cellType = cell.getCellType();
- newCell.setCellType(cellType);
- switch (cellType) {
- case XSSFCell.CELL_TYPE_BOOLEAN:
- newCell.setCellValue(cell.getBooleanCellValue());
- break;
- case XSSFCell.CELL_TYPE_ERROR:
- newCell.setCellErrorValue(cell.getErrorCellValue());
- break;
- case XSSFCell.CELL_TYPE_FORMULA:
- newCell.setCellFormula(cell.getCellFormula());
- break;
- case XSSFCell.CELL_TYPE_NUMERIC:
- newCell.setCellValue(cell.getNumericCellValue());
- break;
- case XSSFCell.CELL_TYPE_STRING:
- newCell.setCellValue(cell.getRichStringCellValue());
- break;
- default:
- newCell.setCellValue(formatter.formatCellValue(cell));
- }
- if (cell.getCellComment() != null) {
- XSSFClientAnchor anchor = factory.createClientAnchor();
- anchor.setDx1(100);
- anchor.setDx2(100);
- anchor.setDy1(100);
- anchor.setDy2(100);
- anchor.setCol1(newCell.getColumnIndex());
- anchor.setCol2(newCell.getColumnIndex() + 4);
- anchor.setRow1(newCell.getRowIndex());
- anchor.setRow2(newCell.getRowIndex() + 4);
- anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);
-
- XSSFComment comment = patriarch.createCellComment(anchor);
- comment.setString(cell.getCellComment().getString());
- newCell.setCellComment(comment);
- }
- newCell.setCellStyle(cell.getCellStyle());
- newCell.getSheet().setColumnWidth(newCell.getColumnIndex(), cell.getSheet().getColumnWidth(cell.getColumnIndex()));
- }
- }
- }
-
- public void initBasicConds(List<String> orgPartyIds) {
- basicCategoryConds = new ArrayList<EntityCondition>();
- basicCategoryConds.add(EntityCondition.makeCondition("isPublic", "N"));
- //basicCategoryConds.add(EntityCondition.makeCondition("isDefault", "Y"));
-
- basicBrandConds = new ArrayList<EntityCondition>();
- basicBrandConds.add(EntityCondition.makeCondition("isPublic", "N"));
- basicBrandConds.add(EntityCondition.makeCondition("productFeatureTypeId", "BRAND"));
-
- List<EntityCondition> partyIdConds = new ArrayList<EntityCondition>();
- for (String orgPartyId : orgPartyIds) {
- partyIdConds.add(EntityCondition.makeCondition("ownerPartyId", orgPartyId));
- }
- if (UtilValidate.isNotEmpty(partyIdConds)) {
- basicCategoryConds.add(EntityCondition.makeCondition(partyIdConds, EntityOperator.OR));
- basicBrandConds.add(EntityCondition.makeCondition(partyIdConds, EntityOperator.OR));
- }
- }
-
- public Map<String, Object> updateSkuPrice(String skuId, String ownerPartyId, BigDecimal memberPrice) {
- return ServiceUtil.returnSuccess();
- }
-
- public Map<String, Object> updateColorAndDimension(String productId, String ownerPartyId, String color, String dimension) {
- Map<String, Object> results = ServiceUtil.returnSuccess();
- results.put("colorId", "sampleColorId");
- results.put("dimensionId", "sampleDimensionId");
- return results;
- }
-
- public Map<String, Object> getDimensionIds(String productId, String ownerPartyId, String dimension) {
- Map<String, Object> results = ServiceUtil.returnSuccess();
- results.put("dimensionId", "sampleDimensionId");
- return results;
- }
-
- public Map<String, Object> getColorIds(String productId, String ownerPartyId, String color) {
- Map<String, Object> results = ServiceUtil.returnSuccess();
- results.put("foundColor", Boolean.TRUE);
- results.put("colorId", "sampleColorId");
- return results;
- }
-
- public String getBrandId(String brandName, String ownerPartyId) {
- return "sampleBrandId";
- }
-
- public boolean isNumOfSheetsOK(XSSFWorkbook workbook) {
- report.print(UtilProperties.getMessage(resource, "CheckPricatHasSheet", locale), InterfaceReport.FORMAT_NOTE);
- int sheets = workbook.getNumberOfSheets();
- if (sheets < 1) {
- report.println(UtilProperties.getMessage(resource, "PricatTableNoSheet", locale), InterfaceReport.FORMAT_ERROR);
- return false;
- } else if (sheets >= 1) {
- report.println(UtilProperties.getMessage(resource, "ok", locale), InterfaceReport.FORMAT_OK);
- report.println(UtilProperties.getMessage(resource, "PricatTableOnlyParse1stSheet", locale), InterfaceReport.FORMAT_WARNING);
- }
- return true;
- }
-
- /**
- * Get data by version definition.
- *
- * @param row
- * @param colNames
- * @param size
- * @return
- */
- public List<Object> getCellContents(XSSFRow row, List<Object[]> colNames, int size) {
- List<Object> results = new ArrayList<Object>();
- boolean foundError = false;
- if (isEmptyRow(row, size, true)) {
- return null;
- }
- for (int i = 0; i < size; i++) {
- XSSFCell cell = null;
- if (row.getPhysicalNumberOfCells() > i) {
- cell = row.getCell(i);
- }
- if (cell == null) {
- if (((Boolean) colNames.get(i)[2]).booleanValue()) {
- report.print(UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale), InterfaceReport.FORMAT_WARNING);
- errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale));
- foundError = true;
- continue;
- } else {
- cell = row.createCell(i);
- }
- }
- int cellType = cell.getCellType();
- String cellValue = formatter.formatCellValue(cell);
- if (UtilValidate.isNotEmpty(cellValue)) {
- if (cellType == XSSFCell.CELL_TYPE_FORMULA) {
- cellValue = BigDecimal.valueOf(cell.getNumericCellValue()).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding).toString();
- report.print(((i == 0)?"":", ") + cellValue, InterfaceReport.FORMAT_NOTE);
- } else {
- report.print(((i == 0)?"":", ") + cellValue, InterfaceReport.FORMAT_NOTE);
- }
- } else {
- report.print(((i == 0)?"":","), InterfaceReport.FORMAT_NOTE);
- }
- if (((Boolean) colNames.get(i)[2]).booleanValue() && UtilValidate.isEmpty(cellValue)) {
- report.print(UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale), InterfaceReport.FORMAT_WARNING);
- errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale));
- foundError = true;
- results.add(null);
- continue;
- }
- if (((Boolean) colNames.get(i)[2]).booleanValue() && cellType != (int) colNames.get(i)[1]) {
- // String warningMessage = "";
- if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_STRING) {
- results.add(cellValue);
- } else if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_NUMERIC) {
- if (cell.getCellType() != XSSFCell.CELL_TYPE_STRING) {
- cell.setCellType(XSSFCell.CELL_TYPE_STRING);
- }
- try {
- results.add(BigDecimal.valueOf(Double.parseDouble(cell.getStringCellValue())).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding));
- } catch (NumberFormatException e) {
- results.add(null);
- errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
- }
- }
- } else {
- if (UtilValidate.isEmpty(cellValue)) {
- results.add(null);
- continue;
- }
- if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_STRING) {
- if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
- results.add(cell.getStringCellValue());
- } else {
- results.add(cellValue);
- }
- } else if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_NUMERIC) {
- if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
- try {
- results.add(BigDecimal.valueOf(Double.valueOf(cell.getStringCellValue())));
- } catch (NumberFormatException e) {
- results.add(null);
- errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
- }
- } else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {
- try {
- results.add(BigDecimal.valueOf(cell.getNumericCellValue()).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding));
- } catch (NumberFormatException e) {
- results.add(null);
- errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
- }
- } else {
- try {
- results.add(BigDecimal.valueOf(Double.valueOf(cellValue)).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding));
- } catch (NumberFormatException e) {
- results.add(null);
- errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
- }
- }
- }
- }
- }
- if (foundError) {
- return null;
- }
- return results;
- }
-
- public void setFacilityId(String selectedFacilityId) {
- this.selectedFacilityId = selectedFacilityId;
- }
-
- protected boolean isEmptyRow(XSSFRow row, int size, boolean display) {
- // check whether this row is empty
- if (UtilValidate.isEmpty(row)) {
- report.print(UtilProperties.getMessage(resource, "ExcelEmptyRow", locale), InterfaceReport.FORMAT_NOTE);
- return true;
- }
- boolean isEmptyRow = true;
- int physicalNumberOfCells = row.getPhysicalNumberOfCells();
- int i = 0;
- for (; i < size; i++) {
- XSSFCell cell = null;
- if (physicalNumberOfCells > i) {
- cell = row.getCell(i);
- }
- if (cell != null && UtilValidate.isNotEmpty(formatter.formatCellValue(cell)) && UtilValidate.isNotEmpty(formatter.formatCellValue(cell).trim())) {
- isEmptyRow = false;
- break;
- }
- }
- if (isEmptyRow) {
- if (display) {
- report.print(UtilProperties.getMessage(resource, "ExcelEmptyRow", locale), InterfaceReport.FORMAT_NOTE);
- }
- return true;
- } else if (!isEmptyRow && i > size) {
- if (display) {
- report.print(UtilProperties.getMessage(resource, "IgnoreDataOutOfRange", locale), InterfaceReport.FORMAT_NOTE);
- }
- return true;
- }
- return isEmptyRow;
- }
-
- protected abstract int getHeaderRowNo();
-
-
- public synchronized void endExcelImportHistory(String logFileName, String thruReasonId) {
- Thread currentThread = Thread.currentThread();
- String threadName = null;
- if (currentThread instanceof PricatParseExcelHtmlThread) {
- threadName = ((PricatParseExcelHtmlThread) currentThread).getUUID().toString();
- }
- if (UtilValidate.isEmpty(threadName)) {
- return;
- }
- try {
- GenericValue historyValue = null;
- if (sequenceNum < 1L) {
- historyValue = EntityUtil.getFirst(EntityUtil.filterByDate(delegator.findByAnd("ExcelImportHistory",
- UtilMisc.toMap("userLoginId", userLoginId, "logFileName", logFileName), UtilMisc.toList("sequenceNum DESC"), false)));
- } else {
- historyValue = delegator.findOne("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId, "sequenceNum", (Long) sequenceNum), false);
- }
- Timestamp now = UtilDateTime.nowTimestamp();
- if (UtilValidate.isEmpty(historyValue)) {
- historyValue = delegator.makeValue("ExcelImportHistory", UtilMisc.toMap("sequenceNum", Long.valueOf(sequenceNum), "userLoginId", userLoginId,
- "fileName", pricatFile.getName(), "statusId", "EXCEL_IMPORTED", "fromDate", now,
- "thruDate", now, "threadName", threadName, "logFileName", logFileName));
- } else {
- historyValue.set("statusId", "EXCEL_IMPORTED");
- historyValue.set("thruDate", now);
- if (pricatFile != null && pricatFile.exists()) {
- historyValue.set("fileName", pricatFile.getName());
- }
- historyValue.set("thruReasonId", thruReasonId);
- }
- delegator.createOrStore(historyValue);
- } catch (GenericEntityException e) {
- // do nothing
- }
- }
-
- public boolean hasErrorMessages() {
- return !errorMessages.keySet().isEmpty();
- }
-
- /**
- * Check whether a commented file exists.
- *
- * @param request
- * @param sequenceNum
- * @return
- */
- public static boolean isCommentedExcelExists(HttpServletRequest request, Long sequenceNum) {
- GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
- if (UtilValidate.isEmpty(sequenceNum) || UtilValidate.isEmpty(userLogin)) {
- Debug.logError("sequenceNum[" + sequenceNum + "] or userLogin is empty", module);
- return false;
- }
- String userLoginId = userLogin.getString("userLoginId");
- Delegator delegator = (Delegator) request.getAttribute("delegator");
- GenericValue historyValue = null;
- try {
- historyValue = delegator.findOne("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId, "sequenceNum", Long.valueOf(sequenceNum)), false);
- } catch (NumberFormatException e) {
- Debug.logError(e.getMessage(), module);
- return false;
- } catch (GenericEntityException e) {
- Debug.logError(e.getMessage(), module);
- return false;
- }
- if (UtilValidate.isEmpty(historyValue)) {
- Debug.logError("No ExcelImportHistory value found by sequenceNum[" + sequenceNum + "] and userLoginId[" + userLoginId + "].", module);
- return false;
- }
- File file = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx");
- if (file.exists()) {
- return true;
- }
+ this.dispatcher = dispatcher;
+ this.delegator = delegator;
+ this.locale = locale;
+ this.report = report;
+ this.userLogin = userLogin;
+ if (UtilValidate.isNotEmpty(userLogin)) {
+ this.userLoginId = userLogin.getString("userLoginId");
+ }
+ this.facilities = facilities;
+ this.pricatFile = pricatFile;
+ initBasicConds(UtilMisc.toList(userLogin.getString("partyId")));
+ }
+
+ public void writeCommentsToFile(XSSFWorkbook workbook, XSSFSheet sheet) {
+ report.println();
+ report.print(UtilProperties.getMessage(resource, "WriteCommentsBackToExcel", locale), InterfaceReport.FORMAT_NOTE);
+ FileOutputStream fos = null;
+ XSSFCreationHelper factory = workbook.getCreationHelper();
+ XSSFFont boldFont = workbook.createFont();
+ boldFont.setFontName("Arial");
+ boldFont.setBold(true);
+ boldFont.setCharSet(134);
+ boldFont.setFontHeightInPoints((short) 9);
+ XSSFFont plainFont = workbook.createFont();
+ plainFont.setFontName("Arial");
+ plainFont.setCharSet(134);
+ plainFont.setFontHeightInPoints((short) 9);
+
+ XSSFSheet errorSheet = null;
+ if (errorMessages.keySet().size() > 0) {
+ String errorSheetName = UtilDateTime.nowDateString("yyyy-MM-dd HHmm") + " Errors";
+ errorSheetName = WorkbookUtil.createSafeSheetName(errorSheetName);
+ errorSheet = workbook.createSheet(errorSheetName);
+ workbook.setSheetOrder(errorSheetName, 0);
+ workbook.setActiveSheet(workbook.getSheetIndex(errorSheetName));
+ XSSFDrawing drawingPatriarch = errorSheet.getDrawingPatriarch();
+ if (drawingPatriarch == null) {
+ drawingPatriarch = errorSheet.createDrawingPatriarch();
+ }
+ for (int i = 0; i <= getHeaderRowNo(); i++) {
+ XSSFRow newRow = errorSheet.createRow(i);
+ XSSFRow row = sheet.getRow(i);
+ newRow.setHeight(row.getHeight());
+ copyRow(row, newRow, factory, drawingPatriarch);
+ }
+
+ // copy merged regions
+ for (int i = 0; i < sheet.getNumMergedRegions(); i++) {
+ CellRangeAddress mergedRegion = sheet.getMergedRegion(i);
+ if (mergedRegion.getFirstRow() < getHeaderRowNo()) {
+ errorSheet.addMergedRegion(mergedRegion);
+ }
+ }
+
+ // copy images
+ List<XSSFPictureData> pics = workbook.getAllPictures();
+ List<XSSFShape> shapes = sheet.getDrawingPatriarch().getShapes();
+ for (int i = 0; i < shapes.size(); i++) {
+ XSSFShape shape = shapes.get(i);
+ XSSFAnchor anchor = shape.getAnchor();
+ if (shape instanceof XSSFPicture && anchor instanceof XSSFClientAnchor) {
+ XSSFPicture pic = (XSSFPicture) shape;
+ XSSFClientAnchor clientAnchor = (XSSFClientAnchor) anchor;
+ if (clientAnchor.getRow1() < getHeaderRowNo()) {
+ for (int j = 0; j < pics.size(); j++) {
+ XSSFPictureData picture = pics.get(j);
+ if (picture.getPackagePart().getPartName().equals(pic.getPictureData().getPackagePart().getPartName())) {
+ drawingPatriarch.createPicture(clientAnchor, j);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ try {
+ // set comments in the original sheet
+ XSSFDrawing patriarch = sheet.getDrawingPatriarch();
+ for (CellReference cell : errorMessages.keySet()) {
+ if (cell != null && errorMessages.get(cell) != null) {
+ XSSFComment comment = sheet.getCellComment(new CellAddress(cell.getRow(), cell.getCol()));
+ boolean isNewComment = false;
+ if (comment == null) {
+ XSSFClientAnchor anchor = factory.createClientAnchor();
+ anchor.setDx1(100);
+ anchor.setDx2(100);
+ anchor.setDy1(100);
+ anchor.setDy2(100);
+ anchor.setCol1(cell.getCol());
+ anchor.setCol2(cell.getCol() + 4);
+ anchor.setRow1(cell.getRow());
+ anchor.setRow2(cell.getRow() + 4);
+ anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);
+
+ comment = patriarch.createCellComment(anchor);
+ isNewComment = true;
+ }
+ XSSFRichTextString rts = factory.createRichTextString("OFBiz PriCat:\n");
+ rts.applyFont(boldFont);
+ rts.append(errorMessages.get(cell), plainFont);
+ comment.setString(rts);
+ comment.setAuthor("Apache OFBiz PriCat");
+ if (isNewComment) {
+ sheet.getRow(cell.getRow()).getCell(cell.getCol()).setCellComment(comment);
+ OFBizPricatUtil.formatCommentShape(sheet, cell);
+ }
+ }
+ }
+
+ // set comments in the new error sheet
+ XSSFDrawing errorPatriarch = errorSheet.getDrawingPatriarch();
+ int newRowNum = getHeaderRowNo() + 1;
+ Map<Integer, Integer> rowMapping = new HashMap<Integer, Integer>();
+ for (CellReference cell : errorMessages.keySet()) {
+ if (cell != null && errorMessages.get(cell) != null) {
+ XSSFRow row = sheet.getRow(cell.getRow());
+ Integer rowNum = Integer.valueOf(row.getRowNum());
+ int errorRow = newRowNum;
+ if (rowMapping.containsKey(rowNum)) {
+ errorRow = rowMapping.get(rowNum).intValue();
+ } else {
+ XSSFRow newRow = errorSheet.getRow(errorRow);
+ if (newRow == null) {
+ newRow = errorSheet.createRow(errorRow);
+ }
+ rowMapping.put(rowNum, Integer.valueOf(errorRow));
+ newRow.setHeight(row.getHeight());
+ copyRow(row, newRow, factory, errorPatriarch);
+ newRowNum ++;
+ }
+ }
+ }
+
+ // write to file
+ if (sequenceNum > 0L) {
+ File commentedExcel = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx");
+ fos = new FileOutputStream(commentedExcel);
+ workbook.write(fos);
+ } else {
+ fos = new FileOutputStream(pricatFile);
+ workbook.write(fos);
+ }
+ fos.flush();
+ fos.close();
+ workbook.close();
+ } catch (FileNotFoundException e) {
+ report.println(e);
+ Debug.logError(e, module);
+ } catch (IOException e) {
+ report.println(e);
+ Debug.logError(e, module);
+ } finally {
+ if (fos != null) {
+ try {
+ fos.close();
+ } catch (IOException e) {
+ Debug.logError(e, module);
+ }
+ }
+ if (workbook != null) {
+ try {
+ workbook.close();
+ } catch (IOException e) {
+ Debug.logError(e, module);
+ }
+ }
+ }
+ report.println(UtilProperties.getMessage(resource, "ok", locale), InterfaceReport.FORMAT_OK);
+ report.println();
+ }
+
+ private void copyRow(XSSFRow sourceRow, XSSFRow targetRow, XSSFCreationHelper factory, XSSFDrawing patriarch) {
+ for (int j = 0; j < sourceRow.getPhysicalNumberOfCells(); j++) {
+ XSSFCell cell = sourceRow.getCell(j);
+ if (cell != null) {
+ XSSFCell newCell = targetRow.createCell(j);
+ int cellType = cell.getCellType();
+ newCell.setCellType(cellType);
+ switch (cellType) {
+ case XSSFCell.CELL_TYPE_BOOLEAN:
+ newCell.setCellValue(cell.getBooleanCellValue());
+ break;
+ case XSSFCell.CELL_TYPE_ERROR:
+ newCell.setCellErrorValue(cell.getErrorCellValue());
+ break;
+ case XSSFCell.CELL_TYPE_FORMULA:
+ newCell.setCellFormula(cell.getCellFormula());
+ break;
+ case XSSFCell.CELL_TYPE_NUMERIC:
+ newCell.setCellValue(cell.getNumericCellValue());
+ break;
+ case XSSFCell.CELL_TYPE_STRING:
+ newCell.setCellValue(cell.getRichStringCellValue());
+ break;
+ default:
+ newCell.setCellValue(formatter.formatCellValue(cell));
+ }
+ if (cell.getCellComment() != null) {
+ XSSFClientAnchor anchor = factory.createClientAnchor();
+ anchor.setDx1(100);
+ anchor.setDx2(100);
+ anchor.setDy1(100);
+ anchor.setDy2(100);
+ anchor.setCol1(newCell.getColumnIndex());
+ anchor.setCol2(newCell.getColumnIndex() + 4);
+ anchor.setRow1(newCell.getRowIndex());
+ anchor.setRow2(newCell.getRowIndex() + 4);
+ anchor.setAnchorType(AnchorType.DONT_MOVE_AND_RESIZE);
+
+ XSSFComment comment = patriarch.createCellComment(anchor);
+ comment.setString(cell.getCellComment().getString());
+ newCell.setCellComment(comment);
+ }
+ newCell.setCellStyle(cell.getCellStyle());
+ newCell.getSheet().setColumnWidth(newCell.getColumnIndex(), cell.getSheet().getColumnWidth(cell.getColumnIndex()));
+ }
+ }
+ }
+
+ public void initBasicConds(List<String> orgPartyIds) {
+ basicCategoryConds = new ArrayList<EntityCondition>();
+ basicCategoryConds.add(EntityCondition.makeCondition("isPublic", "N"));
+ //basicCategoryConds.add(EntityCondition.makeCondition("isDefault", "Y"));
+
+ basicBrandConds = new ArrayList<EntityCondition>();
+ basicBrandConds.add(EntityCondition.makeCondition("isPublic", "N"));
+ basicBrandConds.add(EntityCondition.makeCondition("productFeatureTypeId", "BRAND"));
+
+ List<EntityCondition> partyIdConds = new ArrayList<EntityCondition>();
+ for (String orgPartyId : orgPartyIds) {
+ partyIdConds.add(EntityCondition.makeCondition("ownerPartyId", orgPartyId));
+ }
+ if (UtilValidate.isNotEmpty(partyIdConds)) {
+ basicCategoryConds.add(EntityCondition.makeCondition(partyIdConds, EntityOperator.OR));
+ basicBrandConds.add(EntityCondition.makeCondition(partyIdConds, EntityOperator.OR));
+ }
+ }
+
+ public Map<String, Object> updateSkuPrice(String skuId, String ownerPartyId, BigDecimal memberPrice) {
+ return ServiceUtil.returnSuccess();
+ }
+
+ public Map<String, Object> updateColorAndDimension(String productId, String ownerPartyId, String color, String dimension) {
+ Map<String, Object> results = ServiceUtil.returnSuccess();
+ results.put("colorId", "sampleColorId");
+ results.put("dimensionId", "sampleDimensionId");
+ return results;
+ }
+
+ public Map<String, Object> getDimensionIds(String productId, String ownerPartyId, String dimension) {
+ Map<String, Object> results = ServiceUtil.returnSuccess();
+ results.put("dimensionId", "sampleDimensionId");
+ return results;
+ }
+
+ public Map<String, Object> getColorIds(String productId, String ownerPartyId, String color) {
+ Map<String, Object> results = ServiceUtil.returnSuccess();
+ results.put("foundColor", Boolean.TRUE);
+ results.put("colorId", "sampleColorId");
+ return results;
+ }
+
+ public String getBrandId(String brandName, String ownerPartyId) {
+ return "sampleBrandId";
+ }
+
+ public boolean isNumOfSheetsOK(XSSFWorkbook workbook) {
+ report.print(UtilProperties.getMessage(resource, "CheckPricatHasSheet", locale), InterfaceReport.FORMAT_NOTE);
+ int sheets = workbook.getNumberOfSheets();
+ if (sheets < 1) {
+ report.println(UtilProperties.getMessage(resource, "PricatTableNoSheet", locale), InterfaceReport.FORMAT_ERROR);
+ return false;
+ } else if (sheets >= 1) {
+ report.println(UtilProperties.getMessage(resource, "ok", locale), InterfaceReport.FORMAT_OK);
+ report.println(UtilProperties.getMessage(resource, "PricatTableOnlyParse1stSheet", locale), InterfaceReport.FORMAT_WARNING);
+ }
+ return true;
+ }
+
+ /**
+ * Get data by version definition.
+ *
+ * @param row
+ * @param colNames
+ * @param size
+ * @return
+ */
+ public List<Object> getCellContents(XSSFRow row, List<Object[]> colNames, int size) {
+ List<Object> results = new ArrayList<Object>();
+ boolean foundError = false;
+ if (isEmptyRow(row, size, true)) {
+ return null;
+ }
+ for (int i = 0; i < size; i++) {
+ XSSFCell cell = null;
+ if (row.getPhysicalNumberOfCells() > i) {
+ cell = row.getCell(i);
+ }
+ if (cell == null) {
+ if (((Boolean) colNames.get(i)[2]).booleanValue()) {
+ report.print(UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale), InterfaceReport.FORMAT_WARNING);
+ errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale));
+ foundError = true;
+ continue;
+ } else {
+ cell = row.createCell(i);
+ }
+ }
+ int cellType = cell.getCellType();
+ String cellValue = formatter.formatCellValue(cell);
+ if (UtilValidate.isNotEmpty(cellValue)) {
+ if (cellType == XSSFCell.CELL_TYPE_FORMULA) {
+ cellValue = BigDecimal.valueOf(cell.getNumericCellValue()).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding).toString();
+ report.print(((i == 0)?"":", ") + cellValue, InterfaceReport.FORMAT_NOTE);
+ } else {
+ report.print(((i == 0)?"":", ") + cellValue, InterfaceReport.FORMAT_NOTE);
+ }
+ } else {
+ report.print(((i == 0)?"":","), InterfaceReport.FORMAT_NOTE);
+ }
+ if (((Boolean) colNames.get(i)[2]).booleanValue() && UtilValidate.isEmpty(cellValue)) {
+ report.print(UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale), InterfaceReport.FORMAT_WARNING);
+ errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorColCannotEmpty", new Object[] {colNames.get(i)[0]}, locale));
+ foundError = true;
+ results.add(null);
+ continue;
+ }
+ if (((Boolean) colNames.get(i)[2]).booleanValue() && cellType != (int) colNames.get(i)[1]) {
+ // String warningMessage = "";
+ if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_STRING) {
+ results.add(cellValue);
+ } else if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_NUMERIC) {
+ if (cell.getCellType() != XSSFCell.CELL_TYPE_STRING) {
+ cell.setCellType(XSSFCell.CELL_TYPE_STRING);
+ }
+ try {
+ results.add(BigDecimal.valueOf(Double.parseDouble(cell.getStringCellValue())).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding));
+ } catch (NumberFormatException e) {
+ results.add(null);
+ errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
+ }
+ }
+ } else {
+ if (UtilValidate.isEmpty(cellValue)) {
+ results.add(null);
+ continue;
+ }
+ if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_STRING) {
+ if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
+ results.add(cell.getStringCellValue());
+ } else {
+ results.add(cellValue);
+ }
+ } else if ((int) colNames.get(i)[1] == XSSFCell.CELL_TYPE_NUMERIC) {
+ if (cell.getCellType() == XSSFCell.CELL_TYPE_STRING) {
+ try {
+ results.add(BigDecimal.valueOf(Double.valueOf(cell.getStringCellValue())));
+ } catch (NumberFormatException e) {
+ results.add(null);
+ errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
+ }
+ } else if (cell.getCellType() == XSSFCell.CELL_TYPE_NUMERIC) {
+ try {
+ results.add(BigDecimal.valueOf(cell.getNumericCellValue()).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding));
+ } catch (NumberFormatException e) {
+ results.add(null);
+ errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
+ }
+ } else {
+ try {
+ results.add(BigDecimal.valueOf(Double.valueOf(cellValue)).setScale(FinAccountHelper.decimals, FinAccountHelper.rounding));
+ } catch (NumberFormatException e) {
+ results.add(null);
+ errorMessages.put(new CellReference(cell), UtilProperties.getMessage(resource, "ErrorParseValueToNumeric", locale));
+ }
+ }
+ }
+ }
+ }
+ if (foundError) {
+ return null;
+ }
+ return results;
+ }
+
+ public void setFacilityId(String selectedFacilityId) {
+ this.selectedFacilityId = selectedFacilityId;
+ }
+
+ protected boolean isEmptyRow(XSSFRow row, int size, boolean display) {
+ // check whether this row is empty
+ if (UtilValidate.isEmpty(row)) {
+ report.print(UtilProperties.getMessage(resource, "ExcelEmptyRow", locale), InterfaceReport.FORMAT_NOTE);
+ return true;
+ }
+ boolean isEmptyRow = true;
+ int physicalNumberOfCells = row.getPhysicalNumberOfCells();
+ int i = 0;
+ for (; i < size; i++) {
+ XSSFCell cell = null;
+ if (physicalNumberOfCells > i) {
+ cell = row.getCell(i);
+ }
+ if (cell != null && UtilValidate.isNotEmpty(formatter.formatCellValue(cell)) && UtilValidate.isNotEmpty(formatter.formatCellValue(cell).trim())) {
+ isEmptyRow = false;
+ break;
+ }
+ }
+ if (isEmptyRow) {
+ if (display) {
+ report.print(UtilProperties.getMessage(resource, "ExcelEmptyRow", locale), InterfaceReport.FORMAT_NOTE);
+ }
+ return true;
+ } else if (!isEmptyRow && i > size) {
+ if (display) {
+ report.print(UtilProperties.getMessage(resource, "IgnoreDataOutOfRange", locale), InterfaceReport.FORMAT_NOTE);
+ }
+ return true;
+ }
+ return isEmptyRow;
+ }
+
+ protected abstract int getHeaderRowNo();
+
+
+ public synchronized void endExcelImportHistory(String logFileName, String thruReasonId) {
+ Thread currentThread = Thread.currentThread();
+ String threadName = null;
+ if (currentThread instanceof PricatParseExcelHtmlThread) {
+ threadName = ((PricatParseExcelHtmlThread) currentThread).getUUID().toString();
+ }
+ if (UtilValidate.isEmpty(threadName)) {
+ return;
+ }
+ try {
+ GenericValue historyValue = null;
+ if (sequenceNum < 1L) {
+ historyValue = EntityUtil.getFirst(EntityUtil.filterByDate(delegator.findByAnd("ExcelImportHistory",
+ UtilMisc.toMap("userLoginId", userLoginId, "logFileName", logFileName), UtilMisc.toList("sequenceNum DESC"), false)));
+ } else {
+ historyValue = delegator.findOne("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId, "sequenceNum", (Long) sequenceNum), false);
+ }
+ Timestamp now = UtilDateTime.nowTimestamp();
+ if (UtilValidate.isEmpty(historyValue)) {
+ historyValue = delegator.makeValue("ExcelImportHistory", UtilMisc.toMap("sequenceNum", Long.valueOf(sequenceNum), "userLoginId", userLoginId,
+ "fileName", pricatFile.getName(), "statusId", "EXCEL_IMPORTED", "fromDate", now,
+ "thruDate", now, "threadName", threadName, "logFileName", logFileName));
+ } else {
+ historyValue.set("statusId", "EXCEL_IMPORTED");
+ historyValue.set("thruDate", now);
+ if (pricatFile != null && pricatFile.exists()) {
+ historyValue.set("fileName", pricatFile.getName());
+ }
+ historyValue.set("thruReasonId", thruReasonId);
+ }
+ delegator.createOrStore(historyValue);
+ } catch (GenericEntityException e) {
+ // do nothing
+ }
+ }
+
+ public boolean hasErrorMessages() {
+ return !errorMessages.keySet().isEmpty();
+ }
+
+ /**
+ * Check whether a commented file exists.
+ *
+ * @param request
+ * @param sequenceNum
+ * @return
+ */
+ public static boolean isCommentedExcelExists(HttpServletRequest request, Long sequenceNum) {
+ GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
+ if (UtilValidate.isEmpty(sequenceNum) || UtilValidate.isEmpty(userLogin)) {
+ Debug.logError("sequenceNum[" + sequenceNum + "] or userLogin is empty", module);
+ return false;
+ }
+ String userLoginId = userLogin.getString("userLoginId");
+ Delegator delegator = (Delegator) request.getAttribute("delegator");
+ GenericValue historyValue = null;
+ try {
+ historyValue = delegator.findOne("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId, "sequenceNum", Long.valueOf(sequenceNum)), false);
+ } catch (NumberFormatException e) {
+ Debug.logError(e.getMessage(), module);
+ return false;
+ } catch (GenericEntityException e) {
+ Debug.logError(e.getMessage(), module);
+ return false;
+ }
+ if (UtilValidate.isEmpty(historyValue)) {
+ Debug.logError("No ExcelImportHistory value found by sequenceNum[" + sequenceNum + "] and userLoginId[" + userLoginId + "].", module);
+ return false;
+ }
+ File file = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx");
+ if (file.exists()) {
+ return true;
+ }
return false;
- }
+ }
- protected void cleanupLogAndCommentedExcel() {
- try {
- report.print(UtilProperties.getMessage(resource, "CLEANUP_LOGANDEXCEL_BEGIN", locale), InterfaceReport.FORMAT_DEFAULT);
- List<GenericValue> historyValues = delegator.findByAnd("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId), UtilMisc.toList("sequenceNum DESC"), false);
- if (UtilValidate.isEmpty(historyValues) || historyValues.size() <= HISTORY_MAX_FILENUMBER) {
- report.print(UtilProperties.getMessage(resource, "HistoryLessThan", new Object[] {String.valueOf(HISTORY_MAX_FILENUMBER)}, locale), InterfaceReport.FORMAT_NOTE);
- report.println(" ... " + UtilProperties.getMessage(resource, "skipped", locale), InterfaceReport.FORMAT_NOTE);
- } else {
- report.print(" ... " + UtilProperties.getMessage(resource, "HistoryEntryToRemove", new Object[] {historyValues.size() - HISTORY_MAX_FILENUMBER}, locale), InterfaceReport.FORMAT_NOTE);
- List<GenericValue> valuesToRemove = new ArrayList<GenericValue>();
- for (int i = HISTORY_MAX_FILENUMBER; i < historyValues.size(); i++) {
- GenericValue historyValue = historyValues.get(i);
- valuesToRemove.add(historyValue);
- File excelFile = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + historyValue.getLong("sequenceNum") + ".xlsx");
- if (excelFile.exists()) {
- try {
- excelFile.delete();
- } catch (SecurityException e) {
- Debug.logError(e.getMessage(), module);
- report.print(e.getMessage(), InterfaceReport.FORMAT_ERROR);
- }
- }
- File logFile = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + historyValue.getLong("sequenceNum") + ".log");
- if (logFile.exists()) {
- try {
- logFile.delete();
- } catch (SecurityException e) {
- Debug.logError(e.getMessage(), module);
- report.print(e.getMessage(), InterfaceReport.FORMAT_ERROR);
- }
- }
- }
- delegator.removeAll(valuesToRemove);
- report.println(" ... " + UtilProperties.getMessage(resource, "ok", locale), InterfaceReport.FORMAT_OK);
- }
- report.println();
- } catch (GenericEntityException e) {
- Debug.logError(e.getMessage(), module);
- }
- }
+ protected void cleanupLogAndCommentedExcel() {
+ try {
+ report.print(UtilProperties.getMessage(resource, "CLEANUP_LOGANDEXCEL_BEGIN", locale), InterfaceReport.FORMAT_DEFAULT);
+ List<GenericValue> historyValues = delegator.findByAnd("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId), UtilMisc.toList("sequenceNum DESC"), false);
+ if (UtilValidate.isEmpty(historyValues) || historyValues.size() <= HISTORY_MAX_FILENUMBER) {
+ report.print(UtilProperties.getMessage(resource, "HistoryLessThan", new Object[] {String.valueOf(HISTORY_MAX_FILENUMBER)}, locale), InterfaceReport.FORMAT_NOTE);
+ report.println(" ... " + UtilProperties.getMessage(resource, "skipped", locale), InterfaceReport.FORMAT_NOTE);
+ } else {
+ report.print(" ... " + UtilProperties.getMessage(resource, "HistoryEntryToRemove", new Object[] {historyValues.size() - HISTORY_MAX_FILENUMBER}, locale), InterfaceReport.FORMAT_NOTE);
+ List<GenericValue> valuesToRemove = new ArrayList<GenericValue>();
+ for (int i = HISTORY_MAX_FILENUMBER; i < historyValues.size(); i++) {
+ GenericValue historyValue = historyValues.get(i);
+ valuesToRemove.add(historyValue);
+ File excelFile = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + historyValue.getLong("sequenceNum") + ".xlsx");
+ if (excelFile.exists()) {
+ try {
+ excelFile.delete();
+ } catch (SecurityException e) {
+ Debug.logError(e.getMessage(), module);
+ report.print(e.getMessage(), InterfaceReport.FORMAT_ERROR);
+ }
+ }
+ File logFile = FileUtil.getFile(tempFilesFolder + userLoginId + "/" + historyValue.getLong("sequenceNum") + ".log");
+ if (logFile.exists()) {
+ try {
+ logFile.delete();
+ } catch (SecurityException e) {
+ Debug.logError(e.getMessage(), module);
+ report.print(e.getMessage(), InterfaceReport.FORMAT_ERROR);
+ }
+ }
+ }
+ delegator.removeAll(valuesToRemove);
+ report.println(" ... " + UtilProperties.getMessage(resource, "ok", locale), InterfaceReport.FORMAT_OK);
+ }
+ report.println();
+ } catch (GenericEntityException e) {
+ Debug.logError(e.getMessage(), module);
+ }
+ }
}
Modified: ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/InterfacePricatParser.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/InterfacePricatParser.java?rev=1770979&r1=1770978&r2=1770979&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/InterfacePricatParser.java (original)
+++ ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/InterfacePricatParser.java Wed Nov 23 14:46:54 2016
@@ -36,15 +36,15 @@ import org.apache.ofbiz.entity.transacti
*
*/
public interface InterfacePricatParser {
-
- public static final String PARSE_EXCEL = "parse_excel";
-
- public static final String CONFIRM = "confirm_action";
-
- public static final String[] messageLabels = new String[] {"FORMAT_DEFAULT", "FORMAT_WARNING", "FORMAT_HEADLINE", "FORMAT_NOTE", "FORMAT_OK", "FORMAT_ERROR", "FORMAT_THROWABLE"};
-
- public static final List<String> messages = Collections.unmodifiableList(Arrays.asList(messageLabels));
-
+
+ public static final String PARSE_EXCEL = "parse_excel";
+
+ public static final String CONFIRM = "confirm_action";
+
+ public static final String[] messageLabels = new String[] {"FORMAT_DEFAULT", "FORMAT_WARNING", "FORMAT_HEADLINE", "FORMAT_NOTE", "FORMAT_OK", "FORMAT_ERROR", "FORMAT_THROWABLE"};
+
+ public static final List<String> messages = Collections.unmodifiableList(Arrays.asList(messageLabels));
+
public static final String tempFilesFolder = "runtime/pricat/";
public static final String FileDateTimePattern = "yyyyMMddHHmmss";
@@ -69,52 +69,52 @@ public interface InterfacePricatParser {
public static final int HISTORY_MAX_FILENUMBER = UtilProperties.getPropertyAsInteger("pricat.properties", "pricat.history.max.filenumber", 20);
- abstract void parsePricatExcel();
-
- public void writeCommentsToFile(XSSFWorkbook workbook, XSSFSheet sheet);
+ abstract void parsePricatExcel();
+
+ public void writeCommentsToFile(XSSFWorkbook workbook, XSSFSheet sheet);
- public void initBasicConds(List<String> orgPartyIds);
+ public void initBasicConds(List<String> orgPartyIds);
- public boolean existsCurrencyId(XSSFSheet sheet);
+ public boolean existsCurrencyId(XSSFSheet sheet);
- abstract void parseRowByRow(XSSFSheet sheet);
+ abstract void parseRowByRow(XSSFSheet sheet);
- abstract boolean parseCellContentsAndStore(XSSFRow row, List<Object> cellContents) throws GenericTransactionException;
-
- public Map<String, Object> updateSkuPrice(String skuId, String ownerPartyId, BigDecimal memberPrice);
+ abstract boolean parseCellContentsAndStore(XSSFRow row, List<Object> cellContents) throws GenericTransactionException;
+
+ public Map<String, Object> updateSkuPrice(String skuId, String ownerPartyId, BigDecimal memberPrice);
- abstract String updateSku(XSSFRow row, String productId, String ownerPartyId, String facilityId, String barcode, BigDecimal inventory,
- String colorId, String color, String dimensionId, String dimension, BigDecimal listPrice, BigDecimal averageCost);
+ abstract String updateSku(XSSFRow row, String productId, String ownerPartyId, String facilityId, String barcode, BigDecimal inventory,
+ String colorId, String color, String dimensionId, String dimension, BigDecimal listPrice, BigDecimal averageCost);
- public Map<String, Object> updateColorAndDimension(String productId, String ownerPartyId, String color, String dimension);
-
- public Map<String, Object> getDimensionIds(String productId, String ownerPartyId, String dimension);
-
- public Map<String, Object> getColorIds(String productId, String ownerPartyId, String color);
+ public Map<String, Object> updateColorAndDimension(String productId, String ownerPartyId, String color, String dimension);
+
+ public Map<String, Object> getDimensionIds(String productId, String ownerPartyId, String dimension);
+
+ public Map<String, Object> getColorIds(String productId, String ownerPartyId, String color);
- abstract String getProductId(XSSFRow row, String brandId, String modelName, String productName, String productCategoryId, String ownerPartyId, BigDecimal listPrice);
+ abstract String getProductId(XSSFRow row, String brandId, String modelName, String productName, String productCategoryId, String ownerPartyId, BigDecimal listPrice);
- public String getBrandId(String brandName, String ownerPartyId);
+ public String getBrandId(String brandName, String ownerPartyId);
- abstract Object getCellContent(List<Object> cellContents, String colName);
+ abstract Object getCellContent(List<Object> cellContents, String colName);
- abstract String getProductCategoryId(List<Object> cellContents, String ownerPartyId);
+ abstract String getProductCategoryId(List<Object> cellContents, String ownerPartyId);
- abstract boolean isFacilityOk(XSSFRow row, String facilityName, String facilityId);
+ abstract boolean isFacilityOk(XSSFRow row, String facilityName, String facilityId);
- abstract List<Object> getCellContents(XSSFRow row, List<Object[]> colNames, int size);
+ abstract List<Object> getCellContents(XSSFRow row, List<Object[]> colNames, int size);
- abstract boolean isTableHeaderMatched(XSSFSheet sheet);
+ abstract boolean isTableHeaderMatched(XSSFSheet sheet);
- abstract boolean isVersionSupported(XSSFSheet sheet);
+ abstract boolean isVersionSupported(XSSFSheet sheet);
- abstract boolean containsDataRows(XSSFSheet sheet);
+ abstract boolean containsDataRows(XSSFSheet sheet);
- public boolean isNumOfSheetsOK(XSSFWorkbook workbook);
+ public boolean isNumOfSheetsOK(XSSFWorkbook workbook);
- abstract void setFacilityId(String selectedFacilityId);
+ abstract void setFacilityId(String selectedFacilityId);
- public void endExcelImportHistory(String logFileName, String thruReasonId);
-
- public boolean hasErrorMessages();
+ public void endExcelImportHistory(String logFileName, String thruReasonId);
+
+ public boolean hasErrorMessages();
}
Modified: ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatEvents.java?rev=1770979&r1=1770978&r2=1770979&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatEvents.java (original)
+++ ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatEvents.java Wed Nov 23 14:46:54 2016
@@ -46,148 +46,148 @@ import org.apache.ofbiz.pricat.Interface
import org.apache.ofbiz.pricat.PricatParseExcelHtmlThread;
public class PricatEvents {
-
- public static final String module = PricatEvents.class.getName();
-
- public static final String PricatLatestVersion = UtilProperties.getPropertyValue("pricat", "pricat.latest.version", "V1.1");
-
- public static final String PricatFileName = "PricatTemplate_" + PricatLatestVersion + ".xlsx";
-
- public static final String PricatPath = "component://pricat/webapp/pricat/downloads/";
-
+
+ public static final String module = PricatEvents.class.getName();
+
+ public static final String PricatLatestVersion = UtilProperties.getPropertyValue("pricat", "pricat.latest.version", "V1.1");
+
+ public static final String PricatFileName = "PricatTemplate_" + PricatLatestVersion + ".xlsx";
+
+ public static final String PricatPath = "component://pricat/webapp/pricat/downloads/";
+
/**
- * Download excel template.
- *
- * @param request
- * @param response
- * @return
- * @throws IOException
- * @throws JDOMException
- */
- public static String downloadExcelTemplate(HttpServletRequest request, HttpServletResponse response) {
- String templateType = request.getParameter("templateType");
- if (UtilValidate.isEmpty(templateType)) {
- return "error";
- }
- try {
- String path = ComponentLocationResolver.getBaseLocation(PricatPath).toString();
- String fileName = null;
- if ("pricatExcelTemplate".equals(templateType)) {
- fileName = PricatFileName;
- }
- if (UtilValidate.isEmpty(fileName)) {
- return "error";
- }
- Path file = Paths.get(path + fileName);
- byte[] bytes = Files.readAllBytes(file);
- UtilHttp.streamContentToBrowser(response, bytes, "application/octet-stream", URLEncoder.encode(fileName, "UTF-8"));
- } catch (MalformedURLException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- } catch (IOException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- }
+ * Download excel template.
+ *
+ * @param request
+ * @param response
+ * @return
+ * @throws IOException
+ * @throws JDOMException
+ */
+ public static String downloadExcelTemplate(HttpServletRequest request, HttpServletResponse response) {
+ String templateType = request.getParameter("templateType");
+ if (UtilValidate.isEmpty(templateType)) {
+ return "error";
+ }
+ try {
+ String path = ComponentLocationResolver.getBaseLocation(PricatPath).toString();
+ String fileName = null;
+ if ("pricatExcelTemplate".equals(templateType)) {
+ fileName = PricatFileName;
+ }
+ if (UtilValidate.isEmpty(fileName)) {
+ return "error";
+ }
+ Path file = Paths.get(path + fileName);
+ byte[] bytes = Files.readAllBytes(file);
+ UtilHttp.streamContentToBrowser(response, bytes, "application/octet-stream", URLEncoder.encode(fileName, "UTF-8"));
+ } catch (MalformedURLException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ } catch (IOException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ }
return "success";
}
-
- /**
- * Upload a pricat.
- */
- public static String pricatUpload(HttpServletRequest request, HttpServletResponse response) {
- boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
- if (isMultiPart) {
- return "parse_pricat";
- } else {
- String action = request.getParameter("action");
- if (UtilValidate.isNotEmpty(action) && "downloadPricat".equals(action)) {
- String sequenceNumString = (String) request.getParameter("sequenceNum");
- long sequenceNum = -1;
- if (UtilValidate.isNotEmpty(sequenceNumString)) {
- try {
- sequenceNum = Long.valueOf(sequenceNumString);
- } catch (NumberFormatException e) {
- // do nothing
- }
- }
- String originalPricatFileName = (String) request.getSession().getAttribute(PricatParseExcelHtmlThread.PRICAT_FILE);
- String pricatFileName = originalPricatFileName;
- if (sequenceNum > 0 && AbstractPricatParser.isCommentedExcelExists(request, sequenceNum)) {
- GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
- String userLoginId = userLogin.getString("userLoginId");
- pricatFileName = InterfacePricatParser.tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx";
- }
- if (UtilValidate.isNotEmpty(pricatFileName) && UtilValidate.isNotEmpty(originalPricatFileName)) {
- try {
- Path path = Paths.get(pricatFileName);
- byte[] bytes = Files.readAllBytes(path);
- path = Paths.get(originalPricatFileName);
- UtilHttp.streamContentToBrowser(response, bytes, "application/octet-stream", URLEncoder.encode(path.getName(path.getNameCount() - 1).toString(), "UTF-8"));
- } catch (MalformedURLException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- } catch (IOException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- }
- request.getSession().removeAttribute(PricatParseExcelHtmlThread.PRICAT_FILE);
- return "download";
- }
- }
- }
+
+ /**
+ * Upload a pricat.
+ */
+ public static String pricatUpload(HttpServletRequest request, HttpServletResponse response) {
+ boolean isMultiPart = ServletFileUpload.isMultipartContent(request);
+ if (isMultiPart) {
+ return "parse_pricat";
+ } else {
+ String action = request.getParameter("action");
+ if (UtilValidate.isNotEmpty(action) && "downloadPricat".equals(action)) {
+ String sequenceNumString = (String) request.getParameter("sequenceNum");
+ long sequenceNum = -1;
+ if (UtilValidate.isNotEmpty(sequenceNumString)) {
+ try {
+ sequenceNum = Long.valueOf(sequenceNumString);
+ } catch (NumberFormatException e) {
+ // do nothing
+ }
+ }
+ String originalPricatFileName = (String) request.getSession().getAttribute(PricatParseExcelHtmlThread.PRICAT_FILE);
+ String pricatFileName = originalPricatFileName;
+ if (sequenceNum > 0 && AbstractPricatParser.isCommentedExcelExists(request, sequenceNum)) {
+ GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
+ String userLoginId = userLogin.getString("userLoginId");
+ pricatFileName = InterfacePricatParser.tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx";
+ }
+ if (UtilValidate.isNotEmpty(pricatFileName) && UtilValidate.isNotEmpty(originalPricatFileName)) {
+ try {
+ Path path = Paths.get(pricatFileName);
+ byte[] bytes = Files.readAllBytes(path);
+ path = Paths.get(originalPricatFileName);
+ UtilHttp.streamContentToBrowser(response, bytes, "application/octet-stream", URLEncoder.encode(path.getName(path.getNameCount() - 1).toString(), "UTF-8"));
+ } catch (MalformedURLException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ } catch (IOException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ }
+ request.getSession().removeAttribute(PricatParseExcelHtmlThread.PRICAT_FILE);
+ return "download";
+ }
+ }
+ }
return "success";
}
/**
- * Download commented excel file after it's parsed.
- *
- * @param request
- * @param response
- * @return
- * @throws IOException
- * @throws JDOMException
- */
- public static String downloadCommentedExcel(HttpServletRequest request, HttpServletResponse response) {
- String sequenceNum = request.getParameter("sequenceNum");
- GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
- if (UtilValidate.isEmpty(sequenceNum) || UtilValidate.isEmpty(userLogin)) {
- Debug.logError("sequenceNum[" + sequenceNum + "] or userLogin is empty", module);
- return "error";
- }
- String userLoginId = userLogin.getString("userLoginId");
- Delegator delegator = (Delegator) request.getAttribute("delegator");
- GenericValue historyValue = null;
- try {
- historyValue = delegator.findOne("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId, "sequenceNum", Long.valueOf(sequenceNum)), false);
- } catch (NumberFormatException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- } catch (GenericEntityException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- }
- if (UtilValidate.isEmpty(historyValue)) {
- Debug.logError("No ExcelImportHistory value found by sequenceNum[" + sequenceNum + "] and userLoginId[" + userLoginId + "].", module);
- return "error";
- }
- String fileName = historyValue.getString("fileName");
- if (UtilValidate.isEmpty(fileName)) {
- fileName = sequenceNum + ".xlsx";
- }
- try {
- File file = FileUtil.getFile(InterfacePricatParser.tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx");
- if (file.exists()) {
- Path path = Paths.get(file.getPath());
- byte[] bytes = Files.readAllBytes(path);
- UtilHttp.streamContentToBrowser(response, bytes, "application/octet-stream", URLEncoder.encode(fileName, "UTF-8"));
- }
- } catch (MalformedURLException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- } catch (IOException e) {
- Debug.logError(e.getMessage(), module);
- return "error";
- }
+ * Download commented excel file after it's parsed.
+ *
+ * @param request
+ * @param response
+ * @return
+ * @throws IOException
+ * @throws JDOMException
+ */
+ public static String downloadCommentedExcel(HttpServletRequest request, HttpServletResponse response) {
+ String sequenceNum = request.getParameter("sequenceNum");
+ GenericValue userLogin = (GenericValue) request.getSession().getAttribute("userLogin");
+ if (UtilValidate.isEmpty(sequenceNum) || UtilValidate.isEmpty(userLogin)) {
+ Debug.logError("sequenceNum[" + sequenceNum + "] or userLogin is empty", module);
+ return "error";
+ }
+ String userLoginId = userLogin.getString("userLoginId");
+ Delegator delegator = (Delegator) request.getAttribute("delegator");
+ GenericValue historyValue = null;
+ try {
+ historyValue = delegator.findOne("ExcelImportHistory", UtilMisc.toMap("userLoginId", userLoginId, "sequenceNum", Long.valueOf(sequenceNum)), false);
+ } catch (NumberFormatException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ } catch (GenericEntityException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ }
+ if (UtilValidate.isEmpty(historyValue)) {
+ Debug.logError("No ExcelImportHistory value found by sequenceNum[" + sequenceNum + "] and userLoginId[" + userLoginId + "].", module);
+ return "error";
+ }
+ String fileName = historyValue.getString("fileName");
+ if (UtilValidate.isEmpty(fileName)) {
+ fileName = sequenceNum + ".xlsx";
+ }
+ try {
+ File file = FileUtil.getFile(InterfacePricatParser.tempFilesFolder + userLoginId + "/" + sequenceNum + ".xlsx");
+ if (file.exists()) {
+ Path path = Paths.get(file.getPath());
+ byte[] bytes = Files.readAllBytes(path);
+ UtilHttp.streamContentToBrowser(response, bytes, "application/octet-stream", URLEncoder.encode(fileName, "UTF-8"));
+ }
+ } catch (MalformedURLException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ } catch (IOException e) {
+ Debug.logError(e.getMessage(), module);
+ return "error";
+ }
return "success";
}
}
Modified: ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatParseExcelHtmlReport.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatParseExcelHtmlReport.java?rev=1770979&r1=1770978&r2=1770979&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatParseExcelHtmlReport.java (original)
+++ ofbiz/trunk/specialpurpose/pricat/src/main/java/org/apache/ofbiz/pricat/PricatParseExcelHtmlReport.java Wed Nov 23 14:46:54 2016
@@ -31,9 +31,9 @@ import org.apache.ofbiz.htmlreport.util.
*
*/
public class PricatParseExcelHtmlReport extends AbstractHtmlReport {
-
- public static final String PRICAT_REPORT_CLASS = "PRICAT_HTML_REPORT";
-
+
+ public static final String PRICAT_REPORT_CLASS = "PRICAT_HTML_REPORT";
+
/**
* Public constructor with report variables.<p>
*
@@ -46,31 +46,31 @@ public class PricatParseExcelHtmlReport
}
public static PricatParseExcelHtmlReport getReport(HttpServletRequest request, HttpServletResponse response) {
-
- PricatParseExcelHtmlReport wp = (PricatParseExcelHtmlReport) request.getAttribute(PRICAT_REPORT_CLASS);
- if (wp == null) {
- wp = new PricatParseExcelHtmlReport(request, response);
- request.setAttribute(PRICAT_REPORT_CLASS, wp);
- }
- return wp;
+
+ PricatParseExcelHtmlReport wp = (PricatParseExcelHtmlReport) request.getAttribute(PRICAT_REPORT_CLASS);
+ if (wp == null) {
+ wp = new PricatParseExcelHtmlReport(request, response);
+ request.setAttribute(PRICAT_REPORT_CLASS, wp);
+ }
+ return wp;
}
public InterfaceReportThread initializeThread(HttpServletRequest request, HttpServletResponse response, String name) {
- if (name == null) {
- name = "";
- }
+ if (name == null) {
+ name = "";
+ }
ThreadGroup threadGroup = Thread.currentThread().getThreadGroup();
int i = threadGroup.activeCount();
Thread[] threads = new Thread[i];
threadGroup.enumerate(threads, true);
InterfaceReportThread thread = null;
for (int j=0; j<threads.length; j++) {
- Thread threadInstance = threads[j];
- if (threadInstance instanceof PricatParseExcelHtmlThread) {
- thread = (PricatParseExcelHtmlThread) threadInstance;
- break;
- }
+ Thread threadInstance = threads[j];
+ if (threadInstance instanceof PricatParseExcelHtmlThread) {
+ thread = (PricatParseExcelHtmlThread) threadInstance;
+ break;
+ }
}
if (thread == null) {
thread = new PricatParseExcelHtmlThread(request, response, name);
@@ -80,36 +80,36 @@ public class PricatParseExcelHtmlReport
}
public static String checkButton(HttpServletRequest request, HttpServletResponse response) {
- String action = request.getParameter("action");
- if (ReportStringUtil.isNotEmpty(action)) {
- if (action.equalsIgnoreCase("ok")) {
- request.removeAttribute(PRICAT_REPORT_CLASS);
- request.removeAttribute(DIALOG_URI);
- return "ok";
- } else if (action.equalsIgnoreCase("cancel")) {
- request.removeAttribute(PRICAT_REPORT_CLASS);
- request.removeAttribute(DIALOG_URI);
- return "cancel";
- }
- }
- action = request.getParameter("ok");
- if (ReportStringUtil.isNotEmpty(action)) {
- if (action.equalsIgnoreCase("ok")) {
- request.removeAttribute(PRICAT_REPORT_CLASS);
- request.removeAttribute(DIALOG_URI);
- return "ok";
- }
- }
+ String action = request.getParameter("action");
+ if (ReportStringUtil.isNotEmpty(action)) {
+ if (action.equalsIgnoreCase("ok")) {
+ request.removeAttribute(PRICAT_REPORT_CLASS);
+ request.removeAttribute(DIALOG_URI);
+ return "ok";
+ } else if (action.equalsIgnoreCase("cancel")) {
+ request.removeAttribute(PRICAT_REPORT_CLASS);
+ request.removeAttribute(DIALOG_URI);
+ return "cancel";
+ }
+ }
+ action = request.getParameter("ok");
+ if (ReportStringUtil.isNotEmpty(action)) {
+ if (action.equalsIgnoreCase("ok")) {
+ request.removeAttribute(PRICAT_REPORT_CLASS);
+ request.removeAttribute(DIALOG_URI);
+ return "ok";
+ }
+ }
action = request.getParameter("cancel");
if (ReportStringUtil.isNotEmpty(action)) {
- if (action.equalsIgnoreCase("cancel")) {
- request.removeAttribute(PRICAT_REPORT_CLASS);
- request.removeAttribute(DIALOG_URI);
- return "cancel";
- }
+ if (action.equalsIgnoreCase("cancel")) {
+ request.removeAttribute(PRICAT_REPORT_CLASS);
+ request.removeAttribute(DIALOG_URI);
+ return "cancel";
+ }
}
- return "success";
+ return "success";
}
/**
@@ -119,10 +119,10 @@ public class PricatParseExcelHtmlReport
*/
public void prepareDisplayReport(HttpServletRequest request, HttpServletResponse response, String name, String dialogUri) throws IOException {
- if (ReportStringUtil.isNotEmpty(dialogUri)) {
- setDialogRealUri(request, dialogUri);
- }
-
+ if (ReportStringUtil.isNotEmpty(dialogUri)) {
+ setDialogRealUri(request, dialogUri);
+ }
+
String action = getParamAction(request);
if (action == null) action = "";
if (action.equals("reportend") || action.equals("cancel")) {