基本配置增加csv和excel导出

This commit is contained in:
leijun
2018-12-26 14:47:23 +08:00
parent 52f88155e2
commit b2eb6afad9
23 changed files with 590 additions and 115 deletions

View File

@@ -1,4 +1,4 @@
package com.nis.web.controller.basics;
package com.nis.web.controller.basics;
import java.util.ArrayList;
import java.util.HashMap;
@@ -7,7 +7,6 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
@@ -18,20 +17,18 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.FunctionRegionDict;
import com.nis.domain.FunctionServiceDict;
import com.nis.domain.Page;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.domain.configuration.CfgIndexInfo;
import com.nis.domain.configuration.IpPortCfg;
import com.nis.domain.specific.ConfigGroupInfo;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.AsnCacheUtils;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
@Controller
@RequestMapping(value = "${adminPath}/basics/asn")
@@ -186,33 +183,50 @@ public class AsnIpController extends BaseController{
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
/*//导出选中记录
* if(!StringUtil.isEmpty(ids)){
for(String id:ids.split(",")){
Long.parseLong(id);
}
//List<CfgIndexInfo> list=ipCfgService.getListByCfgIdWithName(IpPortCfg.getTablename(), entity.getFunctionId(), ids);
}else{*/
//条件导出数据大于最大导出数,只导出最大导出条数
entity.setTableName(IpPortCfg.getTablename());
List<AsnIpCfg> list = new ArrayList<AsnIpCfg>();
if (!StringUtil.isEmpty(ids)) {
list = asnIpCfgService.findByPage(ids);
} else {
Page<AsnIpCfg> pageInfo=new Page<AsnIpCfg>(request, response,"r");
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
Page<AsnIpCfg> page = asnIpCfgService.findPage(pageInfo, entity);
for (AsnIpCfg asnIp : page.getList()) {
list=page.getList();
}
for (AsnIpCfg asnIp : list) {
asnIp.setIsIssued(String.valueOf(asnIp.getIsValid()));
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AsnIpCfg.class);
String ipPortInfoNoExport=",do_log,action,valid_identifier,is_audit"
String cfgIndexInfoNoExport=",block_type,do_log,action,valid_identifier,is_audit"
+ ",auditor,audit_time,letter,whether_area_block,classification,attribute,label"
+",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,group_name,";
noExportMap.put(entity.getMenuNameCode(),ipPortInfoNoExport);
dataMap.put(entity.getMenuNameCode(), page.getList());
/*}*/
this._export(model, request, response, redirectAttributes,entity.getMenuNameCode(),titleList,classMap,dataMap,noExportMap);
+",userregion2,userregion3,userregion4,userregion5,ir_type,group_name,&userregion1:asn_no-";
// 时间过滤
if (entity.getSearch_create_time_start() == null ) {
cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport;
}
if (entity.getSearch_edit_time_start() == null) {
cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport;
}
if (entity.getSearch_audit_time_start() == null) {
cfgIndexInfoNoExport = ",audit_time" + cfgIndexInfoNoExport;
}
if (!StringUtil.isEmpty(entity.gethColumns())) {
cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport;
}
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), list);
String timeRange = initTimeMap(entity);
noExportMap.put("timeRange", timeRange);
if ("csv".equals(entity.getExType())) {
this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
classMap, dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
classMap, dataMap, noExportMap);
}
} catch (Exception e) {
logger.error("asnIp export failed",e);
addMessage(redirectAttributes,"error","export_failed");

View File

@@ -1,11 +1,17 @@
package com.nis.web.controller.basics;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@@ -14,6 +20,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.basics.PolicyGroupInfo;
import com.nis.util.Constants;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
/**
@@ -133,4 +140,62 @@ public class PolicyGroupController extends BaseController {
return true;
}
//Group配置导出
@RequestMapping(value = "exportGroup")
public void exportGroup(Model model,HttpServletRequest request,HttpServletResponse response,
@ModelAttribute("cfg")PolicyGroupInfo entity,String ids,RedirectAttributes redirectAttributes){
try {
//export data info
entity.setMenuNameCode("policy_group_manage");
List<String> titleList=new ArrayList<String>();
Map<String, Class<?>> classMap=new HashMap<String, Class<?>>();
Map<String, List> dataMap=new HashMap<String, List>();
Map<String, String> noExportMap=new HashMap<String, String>();
List<PolicyGroupInfo> list = new ArrayList<PolicyGroupInfo>();
if (!StringUtil.isEmpty(ids)) {
list = policyGroupInfoService.findPolicyByGroupInfoList(ids);
} else {
Page<PolicyGroupInfo> pageInfo=new Page<PolicyGroupInfo>(request, response,"r");
pageInfo.setPageNo(1);
pageInfo.setPageSize(Constants.MAX_EXPORT_SIZE);
Page page = policyGroupInfoService.findPolicyGroupInfoList(pageInfo,entity);
list=page.getList();
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), PolicyGroupInfo.class);
String cfgIndexInfoNoExport=",config_describe,cfg_id,block_type,do_log,action,valid_identifier,is_audit"
+ ",auditor,audit_time,letter,whether_area_block,classification,attribute,label"
+",userregion1,userregion2,userregion3,userregion4,userregion5,ir_type,";
// 时间过滤
if (entity.getSearch_create_time_start() == null ) {
cfgIndexInfoNoExport = ",config_time" + cfgIndexInfoNoExport;
}
if (entity.getSearch_edit_time_start() == null) {
cfgIndexInfoNoExport = ",edit_time" + cfgIndexInfoNoExport;
}
if (!StringUtil.isEmpty(entity.gethColumns())) {
cfgIndexInfoNoExport = "," + entity.gethColumns() + "," + cfgIndexInfoNoExport;
}
noExportMap.put(entity.getMenuNameCode(),cfgIndexInfoNoExport);
dataMap.put(entity.getMenuNameCode(), list);
String timeRange = initTimeMap(entity);
noExportMap.put("timeRange", timeRange);
if ("csv".equals(entity.getExType())) {
this._exportCsv(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
classMap, dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, entity.getMenuNameCode(), titleList,
classMap, dataMap, noExportMap);
}
} catch (Exception e) {
logger.error("Group export failed",e);
addMessage(redirectAttributes,"error","export_failed");
}
//return "redirect:" + adminPath +"/ntc/iplist/list?functionId="+entity.getFunctionId();
}
}

View File

@@ -1,40 +1,37 @@
package com.nis.web.controller.basics;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.apache.zookeeper.ZooDefs.Ids;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.nis.domain.Page;
import com.nis.domain.SysUser;
import com.nis.domain.basics.ServiceDictInfo;
import com.nis.domain.configuration.RequestInfo;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigDictUtils;
import com.nis.util.Configurations;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.StringUtil;
import com.nis.util.StringUtils;
import com.nis.web.controller.BaseController;
import com.nis.web.security.UserUtils;
@Controller
@RequestMapping(value = "${adminPath}/basics/serviceDictInfo")
@@ -474,4 +471,126 @@ public class ServiceDictInfoController extends BaseController {
}
// dict配置导出
@RequestMapping(value = "exportDict")
public void exportDict(String itType, ServiceDictInfo serviceDictInfo,Model model, HttpServletRequest request, HttpServletResponse response,
String ids, RedirectAttributes redirectAttributes,String exType,String hColumns) {
try {
// export data info
List<String> titleList = new ArrayList<String>();
Map<String, Class<?>> classMap = new HashMap<String, Class<?>>();
Map<String, List> dataMap = new HashMap<String, List>();
Map<String, String> noExportMap = new HashMap<String, String>();
List<ServiceDictInfo> list = Lists.newArrayList();
List<Integer> intArr = ConfigDictUtils.dealTypeCondition(Configurations.getStringProperty("SERVICE_DICT_ITM_TYPE", ""), itType);
//处理数据
if (!StringUtil.isEmpty(ids)) {
list = serviceDictInfoService.findByDictInfo(ids,intArr);
} else {
Page<ServiceDictInfo> pageCondition = new Page<ServiceDictInfo>(request, response);
pageCondition.setPageNo(1);
pageCondition.setPageSize(Constants.MAX_EXPORT_SIZE);
//查询符合条件总数
List<ServiceDictInfo> allList = serviceDictInfoService.findAllServiceDictInfo(serviceDictInfo,intArr,pageCondition.getOrderBy());
//查出顶层分页数据
Page<ServiceDictInfo> page = serviceDictInfoService.findTopDictList(pageCondition, serviceDictInfo,intArr);
// 删除顶层数据、取出id
List<Integer> intList = Lists.newArrayList();
for(ServiceDictInfo tempSe : page.getList()) {
if (tempSe != null) {
intList.add(tempSe.getServiceDictId());
}
}
for (int i = allList.size() - 1; i >= 0; i--) {
ServiceDictInfo se = allList.get(i);
if(se!=null&&intList.contains(se.getServiceDictId())||(se!=null&&se.getParent().getServiceDictId()==0)){
allList.remove(se);
}
}
allList.addAll(page.getList());
ServiceDictInfo.sortList(list,allList,0,true);
}
for(ServiceDictInfo tempSe : list) {
if(tempSe.getServiceDictCreator()!=null){
if(tempSe.getServiceDictCreator().getId()!=null){
SysUser creator=UserUtils.get(tempSe.getServiceDictCreator().getId().toString());
tempSe.setCreatorName(creator.getName());
}
}
if(tempSe.getServiceDictEditor()!=null){
if(tempSe.getServiceDictEditor().getId()!=null){
SysUser creator=UserUtils.get(tempSe.getServiceDictEditor().getId().toString());
tempSe.setEditorName(creator.getName());
}
}
}
String dictName=getDicName(intArr);
titleList.add(dictName);
classMap.put(dictName, ServiceDictInfo.class);
String cfgIndexInfoNoExport = "";
if("5".equals(itType)){
cfgIndexInfoNoExport=",item_type,is_leaf,&config_content:vpn_ip-";
}
if(serviceDictInfo.getBeginDate()==null){
cfgIndexInfoNoExport=",create_time,"+cfgIndexInfoNoExport;
}
if(serviceDictInfo.getEditBeginDate()==null){
cfgIndexInfoNoExport=",edit_time,"+cfgIndexInfoNoExport;
}
if (!StringUtil.isEmpty(hColumns)) {
cfgIndexInfoNoExport = "," +hColumns+ ","+cfgIndexInfoNoExport;
}
noExportMap.put(dictName, cfgIndexInfoNoExport);
dataMap.put(dictName, list);
String timeRange = initDictMap(serviceDictInfo,dictName);
noExportMap.put("timeRange", timeRange);
if ("csv".equals(exType)) {
this._exportCsv(model, request, response, redirectAttributes, dictName, titleList,
classMap, dataMap, noExportMap);
} else {
this._export(model, request, response, redirectAttributes, dictName, titleList,
classMap, dataMap, noExportMap);
}
} catch (Exception e) {
logger.error("dict white export failed", e);
addMessage(redirectAttributes, "error", "export_failed");
}
}
public String initDictMap(ServiceDictInfo cfg,String dictName){
Properties msgProp = getMsgProp();
String titleTime=dictName;
if(cfg.getBeginDate()!=null){
titleTime+=" "+msgProp.getProperty("create_time")+""+DateUtils.formatDateTime(cfg.getBeginDate());
if(cfg.getEndDate()!=null){
titleTime+=""+DateUtils.formatDateTime(cfg.getEndDate());
}else{
titleTime+=""+DateUtils.getDateTime();
}
}
if(cfg.getEditBeginDate()!=null){
titleTime+=" "+msgProp.getProperty("edit_time")+""+DateUtils.formatDateTime(cfg.getEditBeginDate());
if(cfg.getEditEndDate()!=null){
titleTime+=""+DateUtils.formatDateTime(cfg.getEditEndDate());
}else{
titleTime+=""+DateUtils.getDateTime();
}
}
return titleTime;
}
public String getDicName(List intArr){
String dicName="";
Properties msgProp = getMsgProp();
List<String> dict=ConfigDictUtils.getItemTypeByNo("SERVICE_DICT_ITM_TYPE",intArr);
if(dict.size()>0){
dicName=msgProp.getProperty(dict.get(0),dict.get(0));
}
return dicName;
}
}