Commit 6477f7fe authored by licc's avatar licc

新增excel模板接口

parent 9ddf0620
......@@ -33,4 +33,12 @@ public interface VolunteerService extends IService<Volunteer> {
* @throws IOException 异常
*/
void excelAdd(MultipartFile file, Integer type, String schemeName, String fileUrl, HttpServletResponse response) throws IOException;
/**
* 批量添加方案Excel模板
*
* @param response 结果
*/
void excelTemplate(HttpServletResponse response) throws IOException;
}
......@@ -20,14 +20,15 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author 86187
* @ Description: 志愿接口实现
* @ Author : 86187
* @ Date : 2021/1/8 9:44
* @author 86187
*/
@Service
@Slf4j
......@@ -50,7 +51,7 @@ public class VolunteerServiceImpl extends ServiceImpl<VolunteerMapper, Volunteer
}
@Override
public void excelAdd(MultipartFile file, Integer type, String schemeName,String fileUrl, HttpServletResponse response) throws IOException {
public void excelAdd(MultipartFile file, Integer type, String schemeName, String fileUrl, HttpServletResponse response) throws IOException {
if (file == null || file.isEmpty() || null == type || StringUtils.isBlank(schemeName) ||
StringUtils.isBlank(fileUrl)) {
throw new BaseException("操作错误");
......@@ -78,6 +79,14 @@ public class VolunteerServiceImpl extends ServiceImpl<VolunteerMapper, Volunteer
volunteerManager.saveSchemeAndVolunteer(schemeInfo, list);
}
@Override
public void excelTemplate(HttpServletResponse response) throws IOException {
//构造假数据
List<Volunteer> residents = this.mockData();
//excel导出
this.download(response, Volunteer.class, residents, "居民管理模板", "居民管理");
}
/**
* 判断文件类型
*
......@@ -94,4 +103,50 @@ public class VolunteerServiceImpl extends ServiceImpl<VolunteerMapper, Volunteer
}
return false;
}
private List<Volunteer> mockData() {
ArrayList<Volunteer> residents = new ArrayList<>(2);
//模拟两条假数据
for (int i = 0; i < 2; i++) {
Volunteer volunteer = Volunteer.builder()
.majorName("北京大学" + i)
.academy("计算机学院" + i)
.courseDemand("物理" + i + 1)
.nature("全日制")
.yearLimit(4)
.planNum(2 + i)
.castArchivesNum(3 + i)
.launchNum(4 + i)
.lowestMark("600" + i * 10)
.lowestRank("100" + i * 10)
.build();
residents.add(volunteer);
}
return residents;
}
/**
* 导出数据
*
* @param response
* @param clazz 实体类对象的类型
* @param data 导出的数据
* @param fileName 工作簿文件名
* @param sheetName 工作表文件名
* @throws IOException
*/
private void download(HttpServletResponse response, Class clazz, List data, String fileName, String sheetName) throws IOException {
if (StringUtils.isBlank(fileName)) {
fileName = "测试";
}
if (StringUtils.isBlank(sheetName)) {
sheetName = "模板";
}
// 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("NewContent-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
}
}
......@@ -65,6 +65,14 @@ public class SchemeController {
return R.ok("添加成功");
}
@ApiOperation(value = "方案上传Excel模板", notes = "方案上传Excel模板")
@PostMapping("/excel/template")
public R excelTemplate(HttpServletResponse response) throws IOException {
volunteerService.excelTemplate(response);
return R.ok(response);
}
@ApiOperation(value = "获取方案列表", notes = "获取方案列表", httpMethod = "GET")
@ApiImplicitParam(name = "queryVo", value = "查询参数", dataType = "SchemeQueryVo")
@GetMapping("/getSchemeList")
......
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