预警导出
This commit is contained in:
+14
@@ -8,12 +8,16 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.sf.json.JSONObject;
|
import net.sf.json.JSONObject;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.ResponseBody;
|
import org.springframework.web.bind.annotation.ResponseBody;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -46,4 +50,14 @@ public class LawsWarnController {
|
|||||||
JSONObject jsonResult = JSONObject.fromObject(ok);
|
JSONObject jsonResult = JSONObject.fromObject(ok);
|
||||||
return jsonResult;
|
return jsonResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "导出excel")
|
||||||
|
@GetMapping(value = "/exportExcel")
|
||||||
|
// @RequiresPermissions("document:exportExcel")
|
||||||
|
public void exportExcel(@RequestParam Map<String,Object> map,
|
||||||
|
HttpServletResponse response,
|
||||||
|
HttpServletRequest request){
|
||||||
|
lawsWarnService.exportExcel(map,response,request);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+160
-2
@@ -4,8 +4,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
|||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.jero.common.constant.enums.CutEnum;
|
import com.jero.common.constant.enums.CutEnum;
|
||||||
import com.jero.common.constant.enums.ModuleEnum;
|
import com.jero.common.constant.enums.ModuleEnum;
|
||||||
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
|
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
|
||||||
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
|
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
|
||||||
|
import com.jero.modules.document.enums.FieldTypeEnum;
|
||||||
import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
|
import com.jero.modules.document.mapper.BussDocumentLibraryEOMapper;
|
||||||
import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl;
|
import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl;
|
||||||
import com.jero.modules.system.entity.SysCategory;
|
import com.jero.modules.system.entity.SysCategory;
|
||||||
@@ -13,11 +15,24 @@ import com.jero.modules.system.entity.SysDictItem;
|
|||||||
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
||||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||||
import com.jero.modules.system.util.StringUtils;
|
import com.jero.modules.system.util.StringUtils;
|
||||||
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
|
import org.apache.poi.ss.usermodel.HorizontalAlignment;
|
||||||
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
|
import org.apache.poi.ss.usermodel.Sheet;
|
||||||
|
import org.apache.poi.ss.usermodel.Workbook;
|
||||||
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.OutputStream;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -59,8 +74,7 @@ public class LawsWarnService {
|
|||||||
fieldListNew.add(fieldTemp);
|
fieldListNew.add(fieldTemp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
parameter.remove("warnTime");
|
//封装查询条件
|
||||||
//封装查询条件(包含高级搜索)
|
|
||||||
String condition = bussDocumentLibraryEOService.getConditionStr(parameter);
|
String condition = bussDocumentLibraryEOService.getConditionStr(parameter);
|
||||||
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
|
int pageNo = Integer.parseInt(parameter.get("pageNo").toString());
|
||||||
int pageSize = Integer.parseInt(parameter.get("pageSize").toString());
|
int pageSize = Integer.parseInt(parameter.get("pageSize").toString());
|
||||||
@@ -92,4 +106,148 @@ public class LawsWarnService {
|
|||||||
}
|
}
|
||||||
return infoPage;
|
return infoPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void exportExcel(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request) {
|
||||||
|
String cut = (String) map.get("cut");
|
||||||
|
String flag = String.valueOf(map.get("flag"));
|
||||||
|
List<OnlCgformField> onlCgformFieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
|
||||||
|
onlCgformFieldList = onlCgformFieldList.stream().filter(e -> !"id".equals(e.getDbFieldName())
|
||||||
|
&& !"create_by".equals(e.getDbFieldName())
|
||||||
|
&& !"create_time".equals(e.getDbFieldName())
|
||||||
|
&& !"update_by".equals(e.getDbFieldName())
|
||||||
|
&& !"update_time".equals(e.getDbFieldName())
|
||||||
|
&& !"sys_org_code".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
//要查询的字段
|
||||||
|
String fieldQuery = "id,serial_number,title,title_en,state,region,technology_territory,xin1_che1_xing2_shi2_shi1_ri4_qi1,implement_time";
|
||||||
|
List<String> fieldList = Arrays.asList(fieldQuery.split(","));
|
||||||
|
//封装查询条件(包含高级搜索)
|
||||||
|
String condition = bussDocumentLibraryEOService.getConditionStr(map);
|
||||||
|
List<Map<String, Object>> datas = bussDocumentLibraryEOMapper.getInfoList(" " + StringUtils.join(fieldList, ","), condition);
|
||||||
|
//部分导出
|
||||||
|
String partId = (String) map.get("id");
|
||||||
|
if (StringUtils.isNotBlank(partId)) {
|
||||||
|
//部门导出的数据
|
||||||
|
datas = datas.stream().filter(entry -> partId.contains((String) entry.get("id"))).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
OutputStream os = null;
|
||||||
|
Workbook workbook = new XSSFWorkbook();
|
||||||
|
//创建工作表对象
|
||||||
|
Sheet sheet = workbook.createSheet();
|
||||||
|
String dateName = "";
|
||||||
|
|
||||||
|
// 创建头部
|
||||||
|
String header = "";
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
header = "编号,标题,状态,适用地区,技术领域,";
|
||||||
|
if("0".equals(flag)){
|
||||||
|
dateName = "新车型实施日期";
|
||||||
|
}else{
|
||||||
|
dateName = "在产车实施日期";
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
header = "Number,Title,Status,region,Technical Field,";
|
||||||
|
if("0".equals(flag)){
|
||||||
|
dateName = "New Type Execution Date";
|
||||||
|
}else{
|
||||||
|
dateName = "New Vehicle Execution Date";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
header = header +dateName;
|
||||||
|
|
||||||
|
bussDocumentLibraryEOService.createHeader(workbook, sheet, header);
|
||||||
|
List<OnlCgformField> onlCgformFieldListTemp = new LinkedList<>();
|
||||||
|
List<OnlCgformField> numberOnlCgformField = onlCgformFieldList.stream().filter(e -> "serial_number".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> titleOnlCgformField = onlCgformFieldList.stream().filter(e -> "title".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> titleEnOnlCgformField = onlCgformFieldList.stream().filter(e -> "title_en".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> stateOnlCgformField = onlCgformFieldList.stream().filter(e -> "state".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> regionOnlCgformField = onlCgformFieldList.stream().filter(e -> "region".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> technologyOnlCgformField = onlCgformFieldList.stream().filter(e -> "technology_territory".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> newCarOnlCgformField = onlCgformFieldList.stream().filter(e -> "xin1_che1_xing2_shi2_shi1_ri4_qi1".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
List<OnlCgformField> implementOnlCgformField = onlCgformFieldList.stream().filter(e -> "implement_time".equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
onlCgformFieldListTemp.addAll(numberOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(titleOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(titleEnOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(stateOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(regionOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(technologyOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(newCarOnlCgformField);
|
||||||
|
onlCgformFieldListTemp.addAll(implementOnlCgformField);
|
||||||
|
// 创建数据
|
||||||
|
createDatas(workbook, sheet, datas,onlCgformFieldListTemp, cut,flag);
|
||||||
|
try {
|
||||||
|
os = response.getOutputStream();
|
||||||
|
workbook.write(os);
|
||||||
|
os.flush();
|
||||||
|
} catch (IOException e) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
throw new JeroBootException("导出失败");
|
||||||
|
}else{
|
||||||
|
throw new JeroBootException("Export failure");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void createDatas(Workbook workbook, Sheet sheet, List<Map<String, Object>> datas,List<OnlCgformField> onlCgformFieldListTemp, String cut,String flag){
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
CellStyle cellStyle = workbook.createCellStyle();//初始化单元格格式对象
|
||||||
|
cellStyle.setAlignment(HorizontalAlignment.CENTER);
|
||||||
|
//数据字典
|
||||||
|
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
|
||||||
|
//树形数据字典
|
||||||
|
List<SysCategory> categoryList = sysCategoryService.list();
|
||||||
|
|
||||||
|
//过滤出树形字段
|
||||||
|
List<OnlCgformField> treeFieldList = onlCgformFieldListTemp.stream()
|
||||||
|
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
//下拉单选,多选
|
||||||
|
List<OnlCgformField> pullFieldList = onlCgformFieldListTemp.stream()
|
||||||
|
.filter(e -> FieldTypeEnum.PULL_SINGLE.getValue().equals(e.getFieldShowType()) || FieldTypeEnum.PULL_MORE.getValue().equals(e.getFieldShowType()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
int i = 0;
|
||||||
|
for (Map<String, Object> data : datas) {
|
||||||
|
if(CutEnum.CN.getValue().equals(cut)){
|
||||||
|
data.remove("title_en");
|
||||||
|
}else{
|
||||||
|
data.remove("title");
|
||||||
|
}
|
||||||
|
if("0".equals(flag)){
|
||||||
|
data.remove("implement_time");
|
||||||
|
}else{
|
||||||
|
data.remove("xin1_che1_xing2_shi2_shi1_ri4_qi1");
|
||||||
|
}
|
||||||
|
List<OnlCgformField> onlCgformFieldList = new LinkedList<>();
|
||||||
|
for (Map.Entry<String, Object> entry : data.entrySet()) {
|
||||||
|
List<OnlCgformField> collect = onlCgformFieldListTemp.stream().filter(e -> e.getDbFieldName().equals(entry.getKey())).collect(Collectors.toList());
|
||||||
|
onlCgformFieldList.addAll(collect);
|
||||||
|
//下拉选处理数据字典
|
||||||
|
bussDocumentLibraryEOService.dictItem(sysDictItems, entry, cut, pullFieldList,null);
|
||||||
|
//处理树形数据字典
|
||||||
|
bussDocumentLibraryEOService.treeDictItem(categoryList, entry, treeFieldList, cut,null);
|
||||||
|
}
|
||||||
|
|
||||||
|
Row row = sheet.createRow(i + 1);
|
||||||
|
i++;
|
||||||
|
int sheetNum = 0;
|
||||||
|
|
||||||
|
for (OnlCgformField onlCgformField : onlCgformFieldList) {
|
||||||
|
String value = "";
|
||||||
|
//时间类型
|
||||||
|
if (FieldTypeEnum.DATE_SINGLE.getValue().equals(onlCgformField.getFieldShowType())) {
|
||||||
|
if (ObjectUtils.isNotEmpty(data.get(onlCgformField.getDbFieldName()))) {
|
||||||
|
value = sdf.format(data.get(onlCgformField.getDbFieldName()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
value = StringUtils.valueOf(data.get(onlCgformField.getDbFieldName()));
|
||||||
|
}
|
||||||
|
if("null".equals(value)){
|
||||||
|
value = "";
|
||||||
|
}
|
||||||
|
row.createCell(sheetNum).setCellValue(value);
|
||||||
|
sheetNum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user