Commit 144d592d authored by liaoanyuan's avatar liaoanyuan

PC端增加我的方案导出功能

parent a7451f56
......@@ -9,6 +9,8 @@ import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
/**
* 充值卡子卡导出实体类dto
*/
......@@ -22,7 +24,9 @@ import lombok.NoArgsConstructor;
@HeadRowHeight(25)
//列的宽度
@ColumnWidth(25)
public class ExportCardDto {
public class ExportCardDto implements Serializable {
private static final long serialVersionUID = 2062796530315436172L;
@ExcelProperty(value = "卡号")
private String cardNumber;
......
......@@ -47,6 +47,18 @@
<version>4.11.33.ALL</version>
</dependency>
<!--pdf导出 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
</dependencies>
......
......@@ -6,6 +6,7 @@ import cn.wisenergy.model.app.Volunteer;
import cn.wisenergy.model.vo.SchemeRecordQueryVo;
import com.github.pagehelper.PageInfo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
public interface SchemeRecordService {
......@@ -32,4 +33,13 @@ public interface SchemeRecordService {
* @return 方案志愿列表
*/
R<List<Volunteer>> getVolunteerList(Integer userId,Integer recordId);
/**
* 方案导出
* @param userId 用户id
* @param recordId 方案查询记录id
* @return 0:导出成功,1:导出失败
*/
R<Boolean> export(Integer userId, Integer recordId, HttpServletResponse response);
}
......@@ -10,14 +10,20 @@ import cn.wisenergy.model.app.UserVolunteer;
import cn.wisenergy.model.app.Volunteer;
import cn.wisenergy.model.vo.SchemeRecordQueryVo;
import cn.wisenergy.service.app.SchemeRecordService;
import cn.wisenergy.service.common.PdfUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo;
import com.itextpdf.text.Document;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfWriter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.*;
import java.util.stream.Collectors;
......@@ -103,6 +109,74 @@ public class SchemeRecordServiceImpl extends ServiceImpl<SchemeRecordMapper, Sch
return R.ok(result);
}
/**
* 方案导出
* @param userId 用户id
* @param recordId 方案查询记录id
* @return
*/
@Override
public R<Boolean> export(Integer userId, Integer recordId, HttpServletResponse response) {
log.info("volunteer-service[]SchemeRecordServiceImpl[]export[]input.param.userId,recordId:" + userId);
if (null == userId || null == recordId) {
return R.error("入参为空!");
}
//1、根据用户id和方案记录id,获取志愿ids
QueryWrapper<UserVolunteer> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
queryWrapper.eq("scheme_record_id", recordId);
List<UserVolunteer> list = userVolunteerMapper.selectList(queryWrapper);
if (CollectionUtils.isEmpty(list)) {
return R.error("数据为空");
}
List<Integer> ids = list.stream().map(UserVolunteer::getVolunteerId).collect(Collectors.toList());
List<Volunteer> result = volunteerMapper.getListByIds(ids);
//调用工具生成PDF
try {
// 1.新建document对象
Document document = new Document(PageSize.A4);// 建立一个Document对象
// 2.建立一个书写器(Writer)与document对象关联
OutputStream buffer = new ByteArrayOutputStream();
PdfWriter writer = PdfWriter.getInstance(document, buffer);
// 3.打开文档
document.open();
// 4.向文档中添加内容
PdfUtil pdfUtil = new PdfUtil();
pdfUtil.generatePDF(document,result);
// 5.关闭文档
document.close();
// 设置内容格式 以及 编码方式
response.setContentType("application/pdf");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;file=" + "text" + ".pdf");
DataOutput output = new DataOutputStream(response.getOutputStream());
byte[] bytes = ((ByteArrayOutputStream) buffer).toByteArray();
response.setContentLength(bytes.length);
for( int i = 0; i<bytes.length; i++ )
{
output.writeByte(bytes[i]);
}
((DataOutputStream) output).flush();
((DataOutputStream) output).close();
} catch (Exception e) {
System.out.println(e.getLocalizedMessage());
}
return R.ok(0,true);
}
/**
* 分页处理
......
......@@ -57,17 +57,17 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
@Override
public R<PageInfo<UserInfoDto>> getUserList(UserQueryVo queryVo) {
log.info("volunteer_service[]UserServiceImpl[]getUserList[]input.param.queryVo:" + queryVo);
pageHandle(queryVo);
//创建参数容器
Map<String, Object> map = new HashMap<>(4);
//将参数放入容器中
map.put("pageNo", (queryVo.getPageNo() - 1)* queryVo.getPageSize());
map.put("pageNo", (queryVo.getPageNo() - 1) * queryVo.getPageSize());
map.put("pageSize", queryVo.getPageSize());
map.put("startTime", queryVo.getStartTime());
map.put("endTime", queryVo.getEndTime());
map.put("userName",queryVo.getUserName());
map.put("phone",queryVo.getPhone());
map.put("userName", queryVo.getUserName());
map.put("phone", queryVo.getPhone());
//查询用户数据
List<User> list1 = usersMapper.getList(map);
......@@ -79,27 +79,27 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
//查询相关信息
ScoreInfo scoreInfo = scoreInfoMapper.getById(user.getId());
if (null!=scoreInfo) {
if (null != scoreInfo) {
userInfoDto.setCultureGrade(scoreInfo.getCultureGrade().toString());
userInfoDto.setMajorGrade(scoreInfo.getMajorGrade().toString());
}
LoginRecord loginRecord = loginRecordMapper.getById(user.getId());
if (null!=loginRecord) {
if (null != loginRecord) {
userInfoDto.setLastLoginTime(loginRecord.getUpdateTime());
userInfoDto.setIp(loginRecord.getIp());
}
UserLimit userLimit = userLimitMapper.getByUserId(user.getId());
if (null!=userLimit) {
if (null != userLimit) {
userInfoDto.setQueryLimit(userLimit.getUsableLimit());
}
List<PayRecord> byId = payRecordMapper.getById(user.getId());
if (!CollectionUtils.isEmpty(byId)) {
//计算累计充值金额
Integer sumMoney=0;
Integer sumMoney = 0;
for (PayRecord payRecord : byId) {
sumMoney+=payRecord.getMoney();
sumMoney += payRecord.getMoney();
}
userInfoDto.setMoneyAmount(sumMoney.toString());
......@@ -121,6 +121,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
return R.ok(info);
}
@Override
public R<UserInfoVo> commitUserInfo(UserCommitDto userInfo) {
log.info("volunteer-service[]UserServiceImpl[]commitUserInfo[]input.param.userInfo:" + userInfo);
......
......@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -68,4 +69,19 @@ public class SchemeRecordController {
return schemeRecordService.getVolunteerList(userId, recordId);
}
@ApiOperation(value = "方案导出", notes = "方案导出", httpMethod = "GET")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "int", required = true),
@ApiImplicitParam(name = "recordId", value = "记录id", dataType = "int", required = true)
})
@GetMapping("/export")
public R<Boolean> export(Integer userId, Integer recordId, HttpServletResponse response) {
log.info("volunteer-service[]SchemeRecordController[]getVolunteerList[]input.param.userId:{},recordId:" + userId, recordId);
if (null == userId || null == recordId) {
return R.error("入参为空!");
}
return schemeRecordService.export(userId, recordId,response);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment