//导出业务人员日志
@SuppressWarnings("null")
@RequestMapping(value = "exportEsComDailyList")
public void exportEsComDailyList(
@RequestParam(name = "startTime", required = false) String startTime,
@RequestParam(name = "endTime", required = false) String endTime,
@RequestParam Map<String, String> parameters, Map<String, Object> model, ModelMap models,
Principal principal, HttpServletRequest request,HttpServletResponse response) {
try {
String userCode = "";
EsComOperator comUserOperator = null;
Subject subject = SecurityUtils.getSubject();
EsComUser comUser = esComUserService.findByUserName(subject.getPrincipal().toString());
userCode = comUser.getUserCode();
comUserOperator = escomoperatorService.selectByCode(userCode);
List<String> resultList = new ArrayList<String>();
Integer lengthInteger = null;
if (StringUtils.isNotBlank(comUserOperator)) {
if (StringUtils.isNotBlank(comUserOperator.getRegRank())) {
lengthInteger = (Integer.valueOf(comUserOperator.getRegRank()) - 1) * 2;
}
String mLevel = comUserOperator.getManagementLevel();
resultList = escomoperatorService.listOperatorCodeByUserCodeForDaily(lengthInteger, mLevel, userCode,comUserOperator.getRegCode());
// int i = 1;
List<String> files = new ArrayList<String>();
for (String string : resultList) {
List<Map<String, Object>> listAction = escomactionService.getDailyByUserCodeAndCreateTime(string, startTime,endTime);
if(listAction.size() > 0) {
Map<String, Object> dataMap = new HashMap<String, Object>();
Date date = new Date();
String now = new SimpleDateFormat("yyyy年MM月dd日").format(date);
dataMap.put("fcreateTime", now);
List<Map<String,String>> list = new ArrayList<Map<String,String>>();
String username = null;
for(Map map : listAction) {
Map<String,String> mapStr = new HashMap<String,String>();
mapStr.put("date",StringUtils.changeToString(map.get("date")));
mapStr.put("count",StringUtils.changeToString(map.get("count")));
mapStr.put("location",StringUtils.changeToString(map.get("location")));
username = StringUtils.changeToString(map.get("username"));
mapStr.put("note",StringUtils.changeToString(map.get("note")));
list.add(mapStr);
}
dataMap.put("username", username);
dataMap.put("userList", list);
configuration.setClassForTemplateLoading(this.getClass(), "/com/xiangyu/bigdata/xycom/util");
String fvalue;
Template t = null;
t = configuration.getTemplate("dailyoperator.ftl", "utf-8");
// 判断文件夹是否存在
File file = new File("/work/xyyldoc/");
// File file = new File("d:/xyyldoc");
if (!file.exists()) {
file.mkdirs();
}
File f = new File("/work/xyyldoc/" + username + ".doc");
// File f = new File("d:/xyyldoc/" + username + ".doc");
Writer bufferedWriter = new OutputStreamWriter(new FileOutputStream(f), "utf-8");
files.add("/work/xyyldoc/" + username + ".doc");
// files.add("d:/xyyldoc/" + username + ".doc");
t.process(dataMap, bufferedWriter);
bufferedWriter.flush();
bufferedWriter.close();
// return "d:/xyyldoc/" + username + ".doc";
}
// System.out.println(i);
// i++;
}
outDailyWordManyNew(files, "业务人员日志", response);
// 循环删除创建的word文件
File lies;
if (CollectionUtils.isNotEmpty(files)) {
for (String file : files) {
System.out.println("---------------------" + file);
if (StringUtils.isBlank(file)) {
continue;
} else {
lies = new File(file);
// 指定文件删除
lies.delete();
}
}
}
}
} catch (Exception e) {
logger.warn("查询出现问题!", e);
}
}
// 检修工单的word 压缩成zip格式
private void outDailyWordManyNew(List<String> files, String zipname, HttpServletResponse response)
throws IOException {
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
response = servletRequestAttributes.getResponse();
String fileName = zipname + ".zip";
OutputStream os = response.getOutputStream();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-type", "text/html;charset=UTF-8");
response.setHeader("content-disposition",
"attachment;filename=" + new String(fileName.getBytes("gb2312"), "ISO8859-1"));
ZipOutputStream zos = new ZipOutputStream(os);
byte[] buf = new byte[8192];
int len;
for (int i = 0; i < files.size(); i++) {
File file = new File(files.get(i));
if (!file.isFile())
continue;
ZipEntry ze = new ZipEntry(file.getName());
zos.putNextEntry(ze);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
while ((len = bis.read(buf)) > 0) {
zos.write(buf, 0, len);
}
zos.closeEntry();
bis.close();
}
zos.closeEntry();
zos.close();
os.flush();
os.close();
}