Browse Source

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@698 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d

administrator 11 years ago
parent
commit
11d9576588

+ 27 - 4
src/main/java/com/uas/platform/b2b/controller/UsageLogController.java

@@ -1,30 +1,37 @@
 package com.uas.platform.b2b.controller;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
 
 import com.uas.platform.b2b.model.UsageLog;
 import com.uas.platform.b2b.service.UsageLogService;
+import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 
 /**
  * 平台使用日志
+ * 
  * @author yingp
  *
  */
 @Controller
 @RequestMapping(value = "/log/usage")
 public class UsageLogController {
-	
+
 	@Autowired
 	private UsageLogService usageLogSerice;
-	
+
 	/**
 	 * 分页查找平台使用日志
 	 * 
@@ -33,10 +40,26 @@ public class UsageLogController {
 	 */
 	@RequestMapping(method = RequestMethod.GET)
 	@ResponseBody
-	public Page<UsageLog> getReceivedPurchaseInquiries(PageParams params) {
+	public Page<UsageLog> getUsgaeLogs(PageParams params) {
 		PageInfo info = new PageInfo(params);
 		info.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
 		return usageLogSerice.findAllByPageInfo(info);
 	}
-	
+
+	/**
+	 * 分页查找平台使用日志
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/xls", method = RequestMethod.GET)
+	public ModelAndView exportUsageLogs() {
+		Map<String, Object> map = new HashMap<String, Object>();
+		PageInfo pageInfo = new PageInfo(1, JxlsExcelView.MAX_SIZE, 0);
+		pageInfo.sorting("time", Direction.DESC);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		map.put("data", usageLogSerice.findAllByPageInfo(pageInfo).getContent());
+		return new ModelAndView(new JxlsExcelView("classpath:jxls-tpl/UsageLog", "平台使用日志"), map);
+	}
+
 }

+ 26 - 3
src/main/java/com/uas/platform/b2b/erp/controller/ErpLogController.java

@@ -1,30 +1,37 @@
 package com.uas.platform.b2b.erp.controller;
 
+import java.util.HashMap;
+import java.util.Map;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Sort.Direction;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
 
 import com.uas.platform.b2b.erp.model.ErpLog;
 import com.uas.platform.b2b.erp.service.ErpLogService;
+import com.uas.platform.b2b.support.JxlsExcelView;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.core.model.PageInfo;
 import com.uas.platform.core.model.PageParams;
 
 /**
  * ERP数据传输日志
+ * 
  * @author yingp
  *
  */
 @Controller
 @RequestMapping(value = "/log/erp")
 public class ErpLogController {
-	
+
 	@Autowired
 	private ErpLogService erpLogService;
-	
+
 	/**
 	 * 分页查找ERP数据交互日志
 	 * 
@@ -33,10 +40,26 @@ public class ErpLogController {
 	 */
 	@RequestMapping(method = RequestMethod.GET)
 	@ResponseBody
-	public Page<ErpLog> getReceivedPurchaseInquiries(PageParams params) {
+	public Page<ErpLog> getErpLogs(PageParams params) {
 		PageInfo info = new PageInfo(params);
 		info.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
 		return erpLogService.findAllByPageInfo(info);
 	}
 
+	/**
+	 * 分页查找平台使用日志
+	 * 
+	 * @param params
+	 * @return
+	 */
+	@RequestMapping(value = "/xls", method = RequestMethod.GET)
+	public ModelAndView exportErpLogs() {
+		Map<String, Object> map = new HashMap<String, Object>();
+		PageInfo pageInfo = new PageInfo(1, JxlsExcelView.MAX_SIZE, 0);
+		pageInfo.sorting("time", Direction.DESC);
+		pageInfo.filter("enUU", SystemSession.getUser().getEnterprise().getUu());
+		map.put("data", erpLogService.findAllByPageInfo(pageInfo).getContent());
+		return new ModelAndView(new JxlsExcelView("classpath:jxls-tpl/ErpLog", "数据传输日志"), map);
+	}
+
 }

+ 56 - 0
src/main/java/com/uas/platform/b2b/support/JxlsExcelView.java

@@ -0,0 +1,56 @@
+package com.uas.platform.b2b.support;
+
+import java.net.URLEncoder;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import net.sf.jxls.transformer.XLSTransformer;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.core.io.Resource;
+import org.springframework.core.io.support.LocalizedResourceHelper;
+import org.springframework.web.servlet.support.RequestContextUtils;
+import org.springframework.web.servlet.view.document.AbstractExcelView;
+
+import com.uas.platform.b2b.core.util.ContextUtils;
+
+/**
+ * 利用jxls模板生成excel
+ * 
+ * @author yingp
+ *
+ */
+public class JxlsExcelView extends AbstractExcelView {
+
+	/**
+	 * 最大导出行
+	 */
+	public final static int MAX_SIZE = 5000;
+
+	private String tplPath;
+
+	private String fileName;
+
+	private static final String EXTENSION = ".xls";
+
+	public JxlsExcelView(String tplPath, String fileName) {
+		super();
+		this.tplPath = tplPath;
+		this.fileName = fileName;
+	}
+
+	@Override
+	protected void buildExcelDocument(Map<String, Object> map, HSSFWorkbook workbook, HttpServletRequest request,
+			HttpServletResponse response) throws Exception {
+		LocalizedResourceHelper helper = new LocalizedResourceHelper(ContextUtils.getApplicationContext());
+		Locale userLocale = RequestContextUtils.getLocale(request);
+		Resource inputFile = helper.findLocalizedResource(tplPath, EXTENSION, userLocale);
+		XLSTransformer transformer = new XLSTransformer();
+		workbook = (HSSFWorkbook) transformer.transformXLS(inputFile.getInputStream(), map);
+		response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8") + EXTENSION);
+	}
+
+}

BIN
src/main/resources/jxls-tpl/ErpLog.xls


BIN
src/main/resources/jxls-tpl/UsageLog.xls


+ 2 - 2
src/main/webapp/resources/tpl/index/account/log.html

@@ -5,7 +5,7 @@
 	<div class="pane-header">
 		数据传输日志
 		<div class="pull-right">
-			<a href="#" class="text-simple"><i class="fa fa-file-excel-o fa-fw"></i>导出</a>
+			<a href="log/erp/xls" target="_self" class="text-simple"><i class="fa fa-file-excel-o fa-fw"></i>导出</a>
 		</div>
 	</div>
 	<div class="pane-body">
@@ -38,7 +38,7 @@
 	<div class="pane-header">
 		平台使用日志
 		<div class="pull-right">
-			<a href="#" class="text-simple"><i class="fa fa-file-excel-o fa-fw"></i>导出</a>
+			<a href="log/usage/xls" target="_self" class="text-simple"><i class="fa fa-file-excel-o fa-fw"></i>导出</a>
 		</div>
 	</div>
 	<div class="pane-body">