Browse Source

报表路径通过属性文件注入

sunyj 9 years ago
parent
commit
49b27a5918

+ 9 - 6
src/main/java/com/uas/report/controller/UploadController.java

@@ -7,19 +7,22 @@ import java.util.List;
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
 
-import com.uas.report.util.ReportConstants;
+import com.uas.report.support.JasperserverRestAPIConf;
 
 @Controller
 @RequestMapping("/upload")
 public class UploadController {
+	@Autowired
+	private JasperserverRestAPIConf jsRestAPIConf;
 
-	private Logger logger = Logger.getLogger(UploadController.class);
+	private Logger logger = Logger.getLogger(getClass());
 
 	/**
 	 * 上传文件
@@ -47,15 +50,15 @@ public class UploadController {
 		}
 
 		String fileName = file.getOriginalFilename();
-		StringBuilder stringBuilder = new StringBuilder(ReportConstants.REPORT_DIR).append(userName)
-				.append(File.separator);
+		StringBuilder stringBuilder = new StringBuilder(jsRestAPIConf.getLocalBaseDir()).append("/").append(userName)
+				.append("/");
 		// 上传图片
 		if (isPicture(fileName)) {
-			stringBuilder.append("Picture").append(File.separator);
+			stringBuilder.append("Picture").append("/");
 		}
 		// 上传报表模板
 		if (isReportTemplate(fileName)) {
-			stringBuilder.append("jrxml").append(File.separator);
+			stringBuilder.append("jrxml").append("/");
 		}
 		stringBuilder.append(fileName);
 		String targetFilePath = stringBuilder.toString();

+ 19 - 3
src/main/java/com/uas/report/service/impl/PrintServiceImpl.java

@@ -4,6 +4,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.net.URISyntaxException;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
@@ -15,6 +16,7 @@ import java.util.Properties;
 import javax.sql.DataSource;
 
 import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
@@ -24,6 +26,8 @@ import com.alibaba.druid.pool.DruidDataSourceFactory;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.report.core.exception.SystemError;
 import com.uas.report.service.PrintService;
+import com.uas.report.service.ResourceService;
+import com.uas.report.support.JasperserverRestAPIConf;
 import com.uas.report.util.ContextUtils;
 import com.uas.report.util.ReportConstants;
 
@@ -56,7 +60,13 @@ import net.sf.jasperreports.export.SimplePdfReportConfiguration;
 @Service
 public class PrintServiceImpl implements PrintService {
 
-	private static Logger logger = Logger.getLogger(PrintService.class);
+	@Autowired
+	private JasperserverRestAPIConf jsRestAPIConf;
+
+	@Autowired
+	private ResourceService resourceService;
+
+	private Logger logger = Logger.getLogger(getClass());
 
 	@Override
 	public byte[] export(String userName, String reportName, String whereCondition, String otherParameters,
@@ -87,6 +97,12 @@ public class PrintServiceImpl implements PrintService {
 	 */
 	private Map<String, Object> print(String userName, String reportName, String whereCondition, String otherParameters,
 			String exportFileType, Integer pageIndex) {
+		try {
+			resourceService.syncResources(userName);
+		} catch (URISyntaxException | IOException e1) {
+			e1.printStackTrace();
+		}
+
 		String message = "";
 		if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(reportName)) {
 			message = "参数错误";
@@ -95,10 +111,10 @@ public class PrintServiceImpl implements PrintService {
 		}
 
 		// 报表路径为报表根路径REPORT_DIR + 当前账套用户名userName
-		String reportDir = new StringBuilder(ReportConstants.REPORT_DIR).append(userName).append(File.separator)
+		String reportDir = new StringBuilder(jsRestAPIConf.getLocalBaseDir()).append("/").append(userName).append("/")
 				.toString();
 
-		String jrxmlFilePath = new StringBuilder(reportDir).append("jrxml").append(File.separator).append(reportName)
+		String jrxmlFilePath = new StringBuilder(reportDir).append("jrxml").append("/").append(reportName)
 				.append(".jrxml").toString();
 		File jrxmlFile = new File(jrxmlFilePath);
 		// 报表模板不存在

+ 0 - 7
src/main/java/com/uas/report/util/ReportConstants.java

@@ -1,7 +1,5 @@
 package com.uas.report.util;
 
-import java.io.File;
-
 /**
  * 报表打印相关常量
  * 
@@ -9,11 +7,6 @@ import java.io.File;
  * @since 2016年8月18日 下午5:42:05
  */
 public class ReportConstants {
-	/**
-	 * 报表根路径
-	 */
-	public static final String REPORT_DIR = PathUtils.getFilePath() + "reports" + File.separator;
-//	 public static final String REPORT_DIR = "/data/reports" + File.separator;
 
 	/**
 	 * 报表参数 - WHERE_CONDITION,where字句(需含where)

+ 3 - 3
src/main/webapp/WEB-INF/log4j.properties

@@ -4,7 +4,7 @@ log4j.rootLogger=ERROR, stdout, logfile
 
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c]:%m%n
+log4j.appender.stdout.layout.ConversionPattern=%d %p [%C{1}.%M:%L] %m%n
 
 log4j.appender.logfile=org.apache.log4j.RollingFileAppender
 log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
@@ -13,10 +13,10 @@ log4j.appender.logfile.File=../log4j.log
 log4j.appender.logfile.MaxBackupIndex=3
 log4j.appender.logfile.MaxFileSize=5120KB
 # Pattern to output: date priority [category] - message
-log4j.appender.logfile.layout.ConversionPattern=%d %p [%c]:%m%n
+log4j.appender.logfile.layout.ConversionPattern=%d %p [%C{1}.%M:%L] %m%n
 #log4j.logger.org.springframework.samples.petclinic.aspects=DEBUG
 
-log4j.logger.com.uas = error
+log4j.logger.com.uas = info
 #=========================================
 #=   spring framewokr log configuration  =
 #=========================================