生成doc文件,并压缩进文件夹

//导出业务人员日志
	@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();
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdnlzy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值