基本配置增加csv和excel导出
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user