Java代码片段

文件下载

    @ApiOperation("获取附件")
    @GetMapping("/down")
    public void getFile(@Valid String filePaht, BindingResult error, HttpServletResponse response) {
        valid(error);
        try {
            final String fileName = getFileName(filePaht);
            byte[] data = workflowProcessService.getFilePath(filePaht);

            response.setCharacterEncoding("UTF-8");
            response.setHeader("Content-Disposition", "attachment; filename=" + new String(fileName.getBytes("UTF-8"), "ISO-8859-1"));
            response.setHeader("Content-Length", String.valueOf(data.length));
            response.setHeader("Content-type","application/octet-stream");
            ServletOutputStream out = response.getOutputStream();
            out.write(data);
            out.flush();
        } catch (WorkflowException | IOException e) {
            log.error(">>> 下载附件文件发生异常!【{}】", request.getFilePath(), e);
        }
    }

支持率,反对率的计算公式

	public Map<String, String> findCountByProject(String proj_uuid) {
		//获取项目的总份数
		ProjectInfo projectInfo = projectService.queryProjectByUuid(proj_uuid);
//		if(Constants.STATUS_VOTE.equals(projectInfo.getProjStatus())){
//		暂时不做状态判断,还不清楚实际业务业务中是否存在此状态
//		}
		//获取项目的总销售份数
		Long soldCount = businessService.queryTotalCountByProjUuid(proj_uuid);
		//获取项目的支持总份数
		Long agreeCount = voteDao.findCountByProject(proj_uuid, "1");
		//获取项目的反对总份数
		Long notAgreeCount = voteDao.findCountByProject(proj_uuid, "0");
		//项目预售总份数
		BigDecimal total = new BigDecimal(projectInfo.getCrowNumber());
		//实际销售总份数-支持份数
		BigDecimal b1 = new BigDecimal(soldCount).subtract(new BigDecimal(agreeCount));
		//(实际销售总份数-支持份数)/项目总份数
		BigDecimal b2 = b1.divide(total,4,RoundingMode.HALF_UP);
		//通过率= 1 - (实际销售总份数-支持份数)/项目总份数
		BigDecimal agreeRates = new BigDecimal("1").subtract(b2);
		//反对率= 反对总份数/项目总份数
		BigDecimal opposeRates = new BigDecimal(notAgreeCount).divide(total,4,RoundingMode.HALF_UP);
		Map<String,String> result = new HashMap<String, String>();
		result.put("agrss", agreeCount.toString());//通过总票数
		result.put("oppose", notAgreeCount.toString());//反对总票数
		result.put("agrssRates", agreeRates.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());//通过数占总份数比率
		result.put("opposeRates", opposeRates.multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString());//反对数占总份数比率
		return result;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值