From 028bd9c7cccb1ba7569636c631fa3c83a16d3e48 Mon Sep 17 00:00:00 2001 From: baizonghao <1719256278@qq.com> Date: 星期日, 23 四月 2023 17:29:31 +0800 Subject: [PATCH] 用户导出,案件成员导出 --- src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java | 59 +++++++++++++++++++ src/main/java/com/example/jz/modle/dto/UserExpDto.java | 13 +++ src/main/java/com/example/jz/utils/EasyExcelUtils.java | 2 src/main/java/com/example/jz/controller/CauseController.java | 21 ++++++- src/main/java/com/example/jz/controller/WxAppController.java | 1 src/main/java/com/example/jz/modle/vo/GroupUserVo.java | 2 src/main/java/com/example/jz/service/impl/CauseServiceImpl.java | 30 ++++++++- src/main/resources/mapper/GroupDao.xml | 3 src/main/java/com/example/jz/service/CauseService.java | 3 + 9 files changed, 123 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/example/jz/controller/CauseController.java b/src/main/java/com/example/jz/controller/CauseController.java index 403d41a..d92402d 100644 --- a/src/main/java/com/example/jz/controller/CauseController.java +++ b/src/main/java/com/example/jz/controller/CauseController.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.api.ApiController; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.example.jz.dao.GroupDao; @@ -11,27 +12,31 @@ import com.example.jz.dao.MessageDao; import com.example.jz.dao.ReportDao; import com.example.jz.modle.R; -import com.example.jz.modle.dto.AddReportDto; -import com.example.jz.modle.dto.CauseDto; -import com.example.jz.modle.dto.ReportParamDto; +import com.example.jz.modle.dto.*; import com.example.jz.modle.entity.Cause; import com.example.jz.modle.entity.GroupUser; +import com.example.jz.modle.entity.User; import com.example.jz.modle.vo.NewCauseVo; import com.example.jz.modle.vo.ReportListVo; import com.example.jz.service.CauseService; import com.example.jz.service.GroupService; import com.example.jz.service.ReportService; +import com.example.jz.utils.EasyExcelUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import lombok.SneakyThrows; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import java.util.List; +import java.util.stream.Collectors; /** * 妗堜欢琛�(Cause)琛ㄦ帶鍒跺眰 @@ -115,6 +120,16 @@ return R.ok(causeService.getReporterList(causeId)); } + @PostMapping("/exp") + @ApiImplicitParam(name = "causeId", value = "妗堜欢id", required = true, dataType = "Integer") + @ApiOperation(httpMethod = "POST", value = "缇ゆ垚鍛樹俊鎭鍑�") + public void ReporterListExp(@RequestParam Integer causeId,HttpServletResponse response){ + Cause one = causeService.getOne(Wrappers.<Cause>lambdaQuery().eq(Cause::getId, causeId)); + List<CauseReportExpDto> res = causeService.getExpList(causeId); + String sheetName = "鐢ㄦ埛瀵煎嚭"; + EasyExcelUtils.export1(response, sheetName, CauseReportExpDto.class, res, one.getName() + "妗堜欢鐢ㄦ埛瀵煎嚭"); + } + @ApiOperation(httpMethod = "GET", value = "妗堜欢鍙�-妗堜欢褰曞叆-鑾峰彇妗堜欢缇ゅ叕鍛�") @GetMapping("/getGroupAnnouncement") @ApiResponse(message = "鎵ц鎴愬姛", code = 200) diff --git a/src/main/java/com/example/jz/controller/WxAppController.java b/src/main/java/com/example/jz/controller/WxAppController.java index 4b74b69..15defe0 100644 --- a/src/main/java/com/example/jz/controller/WxAppController.java +++ b/src/main/java/com/example/jz/controller/WxAppController.java @@ -438,6 +438,7 @@ messageMap.put("sex", user.getSex()); messageMap.put("pic", user.getPic()); messageMap.put("role", 0); + messageMap.put("remark", user.getUserMemo()); } else { messageMap.put("id", item.getCopId()); User user = userService.getOne(new QueryWrapper<User>().eq("id", item.getCopId())); diff --git a/src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java b/src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java new file mode 100644 index 0000000..eb24325 --- /dev/null +++ b/src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java @@ -0,0 +1,59 @@ +package com.example.jz.modle.dto; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import io.swagger.annotations.ApiModelProperty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class CauseReportExpDto { + @ApiModelProperty(value = "濮撳悕",dataType = "String", position = 0) + @ExcelProperty(value = "濮撳悕",index = 0) + @ColumnWidth(20) + private String realName; + + @ApiModelProperty(value = "鎵嬫満鍙风爜",dataType = "String", position = 1) + @ExcelProperty(value = "鎵嬫満鍙风爜",index = 1) + @ColumnWidth(20) + private String userMobile; + + @ApiModelProperty(value = "韬唤璇�",dataType = "String", position = 2) + @ExcelProperty(value = "韬唤璇�",index = 2) + @ColumnWidth(20) + private String userIdcard; + + @ApiModelProperty(value = "鎬у埆",dataType = "String", position = 3) + @ExcelProperty(value = "鎬у埆",index = 3) + @ColumnWidth(10) + private String sex; + + @ApiModelProperty(value = "鐜板眳鍦�",dataType = "String", position = 4) + @ExcelProperty(value = "鐜板眳鍦�",index = 4) + @ColumnWidth(20) + private String location; + + @ApiModelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",dataType = "String", position = 5) + @ExcelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",index = 5) + @ColumnWidth(20) + private String workingLocation; + + @ApiModelProperty(value = "鍒涘缓鏃堕棿",dataType = "Date",position = 6) + @ExcelProperty(value = "鍒涘缓鏃堕棿", index = 6) + @DateTimeFormat("yyyy/MM/dd HH:mm:ss") + @ColumnWidth(20) + private Date ctime; + + @ApiModelProperty(value = "澶囨敞",dataType = "String", position = 7) + @ExcelProperty(value = "澶囨敞",index = 7) + @ColumnWidth(20) + private String userMemo; +} diff --git a/src/main/java/com/example/jz/modle/dto/UserExpDto.java b/src/main/java/com/example/jz/modle/dto/UserExpDto.java index 5c2f0f8..445d0bd 100644 --- a/src/main/java/com/example/jz/modle/dto/UserExpDto.java +++ b/src/main/java/com/example/jz/modle/dto/UserExpDto.java @@ -2,6 +2,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.format.DateTimeFormat; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Builder; @@ -16,36 +17,44 @@ @Builder public class UserExpDto { @ApiModelProperty(value = "濮撳悕",dataType = "String", position = 0) - @ExcelProperty(value = "鎶ユ浜�",index = 0) + @ExcelProperty(value = "濮撳悕",index = 0) + @ColumnWidth(20) private String realName; @ApiModelProperty(value = "鎵嬫満鍙风爜",dataType = "String", position = 1) @ExcelProperty(value = "鎵嬫満鍙风爜",index = 1) + @ColumnWidth(20) private String userMobile; @ApiModelProperty(value = "韬唤璇�",dataType = "String", position = 2) @ExcelProperty(value = "韬唤璇�",index = 2) + @ColumnWidth(20) private String userIdcard; @ApiModelProperty(value = "鎬у埆",dataType = "String", position = 3) @ExcelProperty(value = "鎬у埆",index = 3) + @ColumnWidth(10) private String sex; @ApiModelProperty(value = "鐜板眳鍦�",dataType = "String", position = 4) @ExcelProperty(value = "鐜板眳鍦�",index = 4) + @ColumnWidth(20) private String location; @ApiModelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",dataType = "String", position = 5) @ExcelProperty(value = "宸ヤ綔鍗曚綅鍦板潃",index = 5) + @ColumnWidth(20) private String workingLocation; @ApiModelProperty(value = "鍒涘缓鏃堕棿",dataType = "Date",position = 6) @ExcelProperty(value = "鍒涘缓鏃堕棿", index = 6) - @DateTimeFormat("yyyy/MM/dd") + @DateTimeFormat("yyyy/MM/dd HH:mm:ss") + @ColumnWidth(20) private Date ctime; @ApiModelProperty(value = "澶囨敞",dataType = "String", position = 7) @ExcelProperty(value = "澶囨敞",index = 7) + @ColumnWidth(20) private String userMemo; } diff --git a/src/main/java/com/example/jz/modle/vo/GroupUserVo.java b/src/main/java/com/example/jz/modle/vo/GroupUserVo.java index 0e0c000..e1616af 100644 --- a/src/main/java/com/example/jz/modle/vo/GroupUserVo.java +++ b/src/main/java/com/example/jz/modle/vo/GroupUserVo.java @@ -33,4 +33,6 @@ * 鏄惁绂佽█(0涓哄惁1涓烘槸锛� */ private Object banSpeech; + + private String remark; } diff --git a/src/main/java/com/example/jz/service/CauseService.java b/src/main/java/com/example/jz/service/CauseService.java index df5799a..f1cd793 100644 --- a/src/main/java/com/example/jz/service/CauseService.java +++ b/src/main/java/com/example/jz/service/CauseService.java @@ -4,6 +4,7 @@ import com.example.jz.modle.PageParam; import com.example.jz.modle.dto.AddReportDto; import com.example.jz.modle.dto.CauseDto; +import com.example.jz.modle.dto.CauseReportExpDto; import com.example.jz.modle.entity.Announcement; import com.example.jz.modle.entity.Cause; import com.example.jz.modle.vo.*; @@ -55,6 +56,8 @@ **/ PageParam<CauseReportVo> getReporterList(Integer causeId); + List<CauseReportExpDto> getExpList(Integer causeId); + /** * @Description 妗堜欢缇ゅ叕鍛� * @Param [groupId] diff --git a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java index 2a0731c..6c4b793 100644 --- a/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java +++ b/src/main/java/com/example/jz/service/impl/CauseServiceImpl.java @@ -13,10 +13,7 @@ import com.example.jz.enums.CauseEnums; import com.example.jz.exception.BusinessException; import com.example.jz.modle.PageParam; -import com.example.jz.modle.dto.AddReportDto; -import com.example.jz.modle.dto.AddReportLoadDto; -import com.example.jz.modle.dto.CauseDto; -import com.example.jz.modle.dto.CauseLoadDto; +import com.example.jz.modle.dto.*; import com.example.jz.modle.entity.*; import com.example.jz.modle.vo.CauseReportVo; import com.example.jz.modle.vo.CauseVo; @@ -242,6 +239,31 @@ } @Override + public List<CauseReportExpDto> getExpList(Integer causeId) { + List<Report> reports = reportDao.selectList(Wrappers.<Report>lambdaQuery().eq(Report::getCauseId, causeId)); + List<Integer> userIds = reports.stream().map(report -> report.getUserId()).collect(Collectors.toList()); + List<User> users = userDao.selectList(Wrappers.<User>lambdaQuery().in(User::getId, userIds)); + List<CauseReportExpDto> res = users.stream().map(new Function<User, CauseReportExpDto>() { + @Override + public CauseReportExpDto apply(User user) { + CauseReportExpDto build = CauseReportExpDto.builder() + .realName(user.getRealName()) + .userMobile(user.getUserMobile()) + .userIdcard(user.getUserMobile()) + .userIdcard(user.getUserIdcard()) + .sex(user.getSex()) + .location(user.getLocation()) + .workingLocation(user.getWorkingLocation()) + .ctime(user.getCtime()) + .userMemo(user.getUserMemo()) + .build(); + return build; + } + }).collect(Collectors.toList()); + return res; + } + + @Override public List<Announcement> getGroupAnnouncement(Integer groupId) { return announcementDao.selectList(new QueryWrapper<Announcement>().eq("group_id", groupId)); } diff --git a/src/main/java/com/example/jz/utils/EasyExcelUtils.java b/src/main/java/com/example/jz/utils/EasyExcelUtils.java index f13ea1e..40b467e 100644 --- a/src/main/java/com/example/jz/utils/EasyExcelUtils.java +++ b/src/main/java/com/example/jz/utils/EasyExcelUtils.java @@ -31,7 +31,7 @@ fileName = URLEncoder.encode(fileName, "UTF-8"); response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); - response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + fileName + ".xlsx"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")) + ".xlsx"); EasyExcel.write(response.getOutputStream(), className) .sheet(sheetName) .doWrite(collection); diff --git a/src/main/resources/mapper/GroupDao.xml b/src/main/resources/mapper/GroupDao.xml index e0d8f12..c3f3a16 100644 --- a/src/main/resources/mapper/GroupDao.xml +++ b/src/main/resources/mapper/GroupDao.xml @@ -7,10 +7,11 @@ <result property="groupId" column="group_id"/> <result property="userName" column="real_name"/> <result property="banSpeech" column="ban_speech"/> + <result property="remark" column="user_memo"/> </resultMap> <select id="getAllUser" resultMap="GroupUserVoMap"> - select group_user.user_id,group_user.group_id, group_user.ban_speech, user.real_name + select group_user.user_id,group_user.group_id, group_user.ban_speech, user.real_name, user.user_memo FROM group_user JOIN report ON report.id = group_user.user_id JOIN `user` ON `user`.id = report.user_id -- Gitblit v1.8.0