luoyuanqiao
2022-02-28 0608f0b85662c0b8b9c3b6d82ed306271c453cf6
党委导入接口开发
2个文件已修改
96 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleErrorExcelVo.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleErrorExcelVo.java
@@ -13,22 +13,22 @@
public class ComPbMemberRoleErrorExcelVo {
    @ExcelProperty(value = "党员姓名", index = 0)
    @ExcelProperty(value = "*党员姓名", index = 0)
    private String name;
    @ExcelProperty(value = "身份证号", index = 1)
    @ExcelProperty(value = "*身份证号", index = 1)
    private String idCard;
    @ExcelProperty(value = "手机号", index = 2)
    @ExcelProperty(value = "*手机号", index = 2)
    private String phone;
    @ExcelProperty(value = "党委标签(社区党委/区域党委委员)", index = 3)
    private String typeName;
    @ExcelProperty(value = "入党日期", index = 4)
    @ExcelProperty(value = "*入党日期(格式:年-月-日)", index = 4)
    private String joinTime;
    @ExcelProperty(value = "转正日期", index = 5)
    @ExcelProperty(value = "转正日期(格式:年-月-日)", index = 5)
    private String employmentTime;
    @ExcelProperty(value = "职位", index = 6)
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -11,11 +11,15 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.panzhihua.common.listen.ComPbCheckUnitExcelListen;
import com.panzhihua.common.listen.ComPbMemberRoleExcelListen;
import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightExcelAdminVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO;
import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO;
import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleErrorExcelVo;
import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
import com.panzhihua.common.service.partybuilding.ComDataStatisticsFeign;
import com.panzhihua.community_backstage.config.MinioUtil;
@@ -23,6 +27,8 @@
import org.apache.commons.io.FilenameUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.util.ObjectUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -102,6 +108,8 @@
    private String url;
    @Resource
    private SFTPConfig sftpConfig;
    @Resource
    private StringRedisTemplate stringRedisTemplate;
    @Resource
    private MinioUtil minioUtil;
@@ -868,4 +876,82 @@
        }
        return r;
    }
    @ApiOperation(value = "批量新增党委导入excel")
    @PostMapping(value = "/importPbMemberRole", consumes = "multipart/*", headers = "content-type=multipart/form-date")
    public R importPbMemberRole(@RequestParam MultipartFile file, HttpServletRequest request) {
        log.info("传入文件名字【{}】", file.getOriginalFilename());
        InputStream inputStream = null;
        try {
            inputStream = file.getInputStream();
            EasyExcel.read(inputStream, null,
                    new ComPbMemberRoleExcelListen(partyBuildingService,this.getCommunityId(),this.getUserId(),stringRedisTemplate)).sheet().doRead();
        } catch (IOException e) {
            e.printStackTrace();
            log.error("导入模板失败【{}】", e.getMessage());
        }
        return R.ok();
    }
    @ApiOperation(value = "下载导入失败党委数据")
    @GetMapping("/download/error/pbMemberRole")
    public R downloadErrorPbMemberRole(@RequestParam(value = "key") String key) {
        List<ComPbMemberRoleErrorExcelVo> list = new ArrayList<>();
        Boolean isExits = stringRedisTemplate.hasKey(key);
        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
        if (isExits) {
            String json = valueOperations.get(key);
            list = JSONArray.parseArray(json, ComPbMemberRoleErrorExcelVo.class);
        }
        String ftpUrl = "/mnt/data/web/excel/";
        String nowDate = DateUtils.getCurrentDateString();
        String name = "党委导入错误数据" + nowDate + ".xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
            sftp.login();
            boolean existDir = sftp.isExistDir(ftpUrl + name);
            if (!existDir) {
                String property = System.getProperty("user.dir");
                String fileName = property + File.separator + name;
                // 这里 需要指定写用哪个class去写
                ExcelWriter excelWriter = null;
                InputStream inputStream = null;
                try {
                    excelWriter = EasyExcel.write(fileName, ComPbMemberRoleErrorExcelVo.class)
                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                    WriteSheet writeSheet = EasyExcel.writerSheet("党委导入错误数据").build();
                    excelWriter.write(list, writeSheet);
                    excelWriter.finish();
                    File file = new File(fileName);
                    inputStream = new FileInputStream(file);
                    sftp.uploadMore(ftpUrl, name, inputStream);
                    sftp.logout();
                    inputStream.close();
                    String absolutePath = file.getAbsolutePath();
                    boolean delete = file.delete();
                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
                } finally {
                    // 千万别忘记finish 会帮忙关闭流
                    if (inputStream != null) {
                        inputStream.close();
                    }
                    if (excelWriter != null) {
                        excelWriter.finish();
                    }
                }
            }
            return R.ok(sftpConfig.getExcelUrl() + name);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "社区党委-下载导入模板")
    @GetMapping("/export/pbMemberRole")
    public R exportElder() {
        return R.ok(sftpConfig.getExcelUrl() + "社区党委导入模板.xlsx");
    }
}