Commit 144d592d authored by liaoanyuan's avatar liaoanyuan

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

parent a7451f56
...@@ -9,6 +9,8 @@ import lombok.Builder; ...@@ -9,6 +9,8 @@ import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serializable;
/** /**
* 充值卡子卡导出实体类dto * 充值卡子卡导出实体类dto
*/ */
...@@ -22,7 +24,9 @@ import lombok.NoArgsConstructor; ...@@ -22,7 +24,9 @@ import lombok.NoArgsConstructor;
@HeadRowHeight(25) @HeadRowHeight(25)
//列的宽度 //列的宽度
@ColumnWidth(25) @ColumnWidth(25)
public class ExportCardDto { public class ExportCardDto implements Serializable {
private static final long serialVersionUID = 2062796530315436172L;
@ExcelProperty(value = "卡号") @ExcelProperty(value = "卡号")
private String cardNumber; private String cardNumber;
......
...@@ -47,6 +47,18 @@ ...@@ -47,6 +47,18 @@
<version>4.11.33.ALL</version> <version>4.11.33.ALL</version>
</dependency> </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> </dependencies>
......
...@@ -6,6 +6,7 @@ import cn.wisenergy.model.app.Volunteer; ...@@ -6,6 +6,7 @@ import cn.wisenergy.model.app.Volunteer;
import cn.wisenergy.model.vo.SchemeRecordQueryVo; import cn.wisenergy.model.vo.SchemeRecordQueryVo;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
public interface SchemeRecordService { public interface SchemeRecordService {
...@@ -32,4 +33,13 @@ public interface SchemeRecordService { ...@@ -32,4 +33,13 @@ public interface SchemeRecordService {
* @return 方案志愿列表 * @return 方案志愿列表
*/ */
R<List<Volunteer>> getVolunteerList(Integer userId,Integer recordId); 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; ...@@ -10,14 +10,20 @@ import cn.wisenergy.model.app.UserVolunteer;
import cn.wisenergy.model.app.Volunteer; import cn.wisenergy.model.app.Volunteer;
import cn.wisenergy.model.vo.SchemeRecordQueryVo; import cn.wisenergy.model.vo.SchemeRecordQueryVo;
import cn.wisenergy.service.app.SchemeRecordService; import cn.wisenergy.service.app.SchemeRecordService;
import cn.wisenergy.service.common.PdfUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageInfo; 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 lombok.extern.slf4j.Slf4j;
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 org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -103,6 +109,74 @@ public class SchemeRecordServiceImpl extends ServiceImpl<SchemeRecordMapper, Sch ...@@ -103,6 +109,74 @@ public class SchemeRecordServiceImpl extends ServiceImpl<SchemeRecordMapper, Sch
return R.ok(result); 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 ...@@ -57,17 +57,17 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
@Override @Override
public R<PageInfo<UserInfoDto>> getUserList(UserQueryVo queryVo) { public R<PageInfo<UserInfoDto>> getUserList(UserQueryVo queryVo) {
log.info("volunteer_service[]UserServiceImpl[]getUserList[]input.param.queryVo:" + queryVo); log.info("volunteer_service[]UserServiceImpl[]getUserList[]input.param.queryVo:" + queryVo);
pageHandle(queryVo);
//创建参数容器 //创建参数容器
Map<String, Object> map = new HashMap<>(4); 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("pageSize", queryVo.getPageSize());
map.put("startTime", queryVo.getStartTime()); map.put("startTime", queryVo.getStartTime());
map.put("endTime", queryVo.getEndTime()); map.put("endTime", queryVo.getEndTime());
map.put("userName",queryVo.getUserName()); map.put("userName", queryVo.getUserName());
map.put("phone",queryVo.getPhone()); map.put("phone", queryVo.getPhone());
//查询用户数据 //查询用户数据
List<User> list1 = usersMapper.getList(map); List<User> list1 = usersMapper.getList(map);
...@@ -79,27 +79,27 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -79,27 +79,27 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
//查询相关信息 //查询相关信息
ScoreInfo scoreInfo = scoreInfoMapper.getById(user.getId()); ScoreInfo scoreInfo = scoreInfoMapper.getById(user.getId());
if (null!=scoreInfo) { if (null != scoreInfo) {
userInfoDto.setCultureGrade(scoreInfo.getCultureGrade().toString()); userInfoDto.setCultureGrade(scoreInfo.getCultureGrade().toString());
userInfoDto.setMajorGrade(scoreInfo.getMajorGrade().toString()); userInfoDto.setMajorGrade(scoreInfo.getMajorGrade().toString());
} }
LoginRecord loginRecord = loginRecordMapper.getById(user.getId()); LoginRecord loginRecord = loginRecordMapper.getById(user.getId());
if (null!=loginRecord) { if (null != loginRecord) {
userInfoDto.setLastLoginTime(loginRecord.getUpdateTime()); userInfoDto.setLastLoginTime(loginRecord.getUpdateTime());
userInfoDto.setIp(loginRecord.getIp()); userInfoDto.setIp(loginRecord.getIp());
} }
UserLimit userLimit = userLimitMapper.getByUserId(user.getId()); UserLimit userLimit = userLimitMapper.getByUserId(user.getId());
if (null!=userLimit) { if (null != userLimit) {
userInfoDto.setQueryLimit(userLimit.getUsableLimit()); userInfoDto.setQueryLimit(userLimit.getUsableLimit());
} }
List<PayRecord> byId = payRecordMapper.getById(user.getId()); List<PayRecord> byId = payRecordMapper.getById(user.getId());
if (!CollectionUtils.isEmpty(byId)) { if (!CollectionUtils.isEmpty(byId)) {
//计算累计充值金额 //计算累计充值金额
Integer sumMoney=0; Integer sumMoney = 0;
for (PayRecord payRecord : byId) { for (PayRecord payRecord : byId) {
sumMoney+=payRecord.getMoney(); sumMoney += payRecord.getMoney();
} }
userInfoDto.setMoneyAmount(sumMoney.toString()); userInfoDto.setMoneyAmount(sumMoney.toString());
...@@ -121,6 +121,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U ...@@ -121,6 +121,7 @@ public class UserServiceImpl extends ServiceImpl<UsersMapper, User> implements U
return R.ok(info); return R.ok(info);
} }
@Override @Override
public R<UserInfoVo> commitUserInfo(UserCommitDto userInfo) { public R<UserInfoVo> commitUserInfo(UserCommitDto userInfo) {
log.info("volunteer-service[]UserServiceImpl[]commitUserInfo[]input.param.userInfo:" + userInfo); log.info("volunteer-service[]UserServiceImpl[]commitUserInfo[]input.param.userInfo:" + userInfo);
......
...@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; ...@@ -14,6 +14,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
/** /**
...@@ -68,4 +69,19 @@ public class SchemeRecordController { ...@@ -68,4 +69,19 @@ public class SchemeRecordController {
return schemeRecordService.getVolunteerList(userId, recordId); 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