青羊经侦大队-数据平台
baizonghao
2023-04-23 028bd9c7cccb1ba7569636c631fa3c83a16d3e48
用户导出,案件成员导出
8个文件已修改
1个文件已添加
134 ■■■■■ 已修改文件
src/main/java/com/example/jz/controller/CauseController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/controller/WxAppController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/dto/UserExpDto.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/modle/vo/GroupUserVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/CauseService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/service/impl/CauseServiceImpl.java 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/example/jz/utils/EasyExcelUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/GroupDao.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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)
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()));
src/main/java/com/example/jz/modle/dto/CauseReportExpDto.java
New file
@@ -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;
}
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;
}
src/main/java/com/example/jz/modle/vo/GroupUserVo.java
@@ -33,4 +33,6 @@
     * 是否禁言(0为否1为是)
     */
    private Object banSpeech;
    private String remark;
}
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]
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));
    }
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);
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