tangxiaobao
2021-08-03 de566e094c4ba417499e7f3d58baee3e4eb875e8
防火防汛后台bug修改
6个文件已修改
1703 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java 1471 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java
@@ -31,5 +31,75 @@
     */
    @ApiModelProperty("防疫巡查")
    private Integer yiTotal;
    /**
     * 安全工作记录总数
     */
    @ApiModelProperty("安全工作记录总数")
    private Integer safetyWorkTotal;
    /**
     * 隐患报告总数
     */
    @ApiModelProperty("隐患报告总数")
    private Integer dangerTotal;
    /**
     * 已处理隐患总数
     */
    @ApiModelProperty("已处理隐患数")
    private Integer handledDangerTotal;
    /**
     * 火灾隐患总数
     */
    @ApiModelProperty("火灾隐患总数")
    private Integer huoDangerTotal;
    /**
     * 汛情隐患总数
     */
    @ApiModelProperty("汛情隐患总数")
    private Integer xunDangerTotal;
    /**
     * 疫情隐患总数
     */
    @ApiModelProperty("疫情隐患总数")
    private Integer yiDangerTotal;
    /**
     * 已整改火灾隐患总数
     */
    @ApiModelProperty("已整改火灾隐患总数")
    private Integer huoHandledDangerTotal;
    /**
     * 未整改火灾隐患总数
     */
    @ApiModelProperty("未整改火灾隐患总数")
    private Integer huoHandlingDangerTotal;
    /**
     * 已整改汛情隐患总数
     */
    @ApiModelProperty("已整改汛情隐患总数")
    private Integer xunHandledDangerTotal;
    /**
     * 未整改汛情隐患总数
     */
    @ApiModelProperty("未整改汛情隐患总数")
    private Integer xunHandlingDangerTotal;
    /**
     * 已整改疫情隐患总数
     */
    @ApiModelProperty("已整改疫情隐患总数")
    private Integer yiHandledDangerTotal;
    /**
     * 未整改疫情隐患总数
     */
    @ApiModelProperty("未整改疫情隐患总数")
    private Integer yiHandlingDangerTotal;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java
@@ -15,39 +15,34 @@
@Data
public class ComSwRotaExcelVO implements Serializable {
    /**
     * 星期
     */
    @ExcelProperty(value = "星期" ,index = 0)
    private String weekDay;
    /**
     * 时间
     */
    @ExcelProperty(value = "时间" ,index = 1)
    @ExcelProperty(value = "时间" ,index = 0)
    private String rotaDate;
    /**
     * 值班领导
     */
    @ExcelProperty(value = "值班领导" ,index = 2)
    private String leaderName;
    /**
     * 值班领导联系电话
     */
    @ExcelProperty(value = "值班领导联系电话" ,index = 3)
    private String leaderPhone;
    /**
     * 值班人员
     */
    @ExcelProperty(value = "值班人员(多个以逗号隔开)" ,index = 4)
    @ExcelProperty(value = "值班人员" ,index = 1)
    private String personName;
    /**
     * 值班人员联系电话
     */
    @ExcelProperty(value = "值班人员联系电话(多个以逗号隔开)" ,index = 5)
    @ExcelProperty(value = "值班人员联系电话" ,index = 2)
    private String personPhone;
    /**
     * 值班领导
     */
    @ExcelProperty(value = "值班领导(多个以逗号隔开)" ,index = 3)
    private String leaderName;
    /**
     * 值班人员联系电话
     */
    @ExcelProperty(value = "值班领导联系电话(多个以逗号隔开)" ,index = 4)
    private String leaderPhone;
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
@@ -6,6 +6,7 @@
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.panzhihua.common.constants.Constants;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.listen.ComMngPopulationServeExcelListen;
import com.panzhihua.common.listen.ComSwRotaExcelListen;
@@ -31,6 +32,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
/**
@@ -377,5 +379,89 @@
        return R.ok();
    }
    @ApiOperation(value = "值班表-下载模板")
    @GetMapping("/export/rota")
    public R exportRota() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "值班人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    list = headDataFilling();
                    List<List<Object>> dataList = new ArrayList<>();
                    List<Object> data = new ArrayList<>();
                    data = formDataFilling();
                    dataList.add(data);
                    EasyExcel.write(fileName).head(list).sheet("值班人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "值班人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    private List<List<String>> headDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("值班时间-年-月-日(禁止录入重复项)");
        List<String> head1 = new ArrayList<String>();
        head1.add("值班人员(多个用\"、\"隔开)");
        List<String> head2 = new ArrayList<String>();
        head2.add("值班人员联系电话(多个用\"、\"隔开,请安姓名顺序)");
        List<String> head3 = new ArrayList<String>();
        head3.add("值班领导(多个用\"、\"隔开)");
        List<String> head4 = new ArrayList<String>();
        head4.add("值班领导联系电话(多个用\"、\"隔开,请安姓名顺序)");
        List<String> head5 = new ArrayList<String>();
        head5.add("");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        return list;
    }
    private List<Object> formDataFilling(){
        List<Object> data = new ArrayList<>();
        data.add("2021-01-01");
        data.add("张三、李四、王二");
        data.add("138000000、138000000、138000000");
        data.add("王五、王六");
        data.add("138000000、138000000");
        data.add("示例");
        return data;
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -236,6 +236,586 @@
        }
    }
    @ApiOperation(value = "吸毒人员-下载模板")
    @GetMapping("/export/drug")
    public R exportDrug() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "吸毒人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headDrugDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("吸毒人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "吸毒人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "社区矫正人员-下载模板")
    @GetMapping("/export/correctr")
    public R exportCorrect() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "社区矫正人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headCorrectDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("社区矫正人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "社区矫正人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "重精人员-下载模板")
    @GetMapping("/export/major")
    public R exportMajor() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "重精人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headMajorDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("重精人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "重精人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "邪教人员-下载模板")
    @GetMapping("/export/cult")
    public R exportCult() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "邪教人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headCultDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("邪教人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "邪教人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "刑释人员-下载模板")
    @GetMapping("/export/rehabilitation")
    public R exportRehabilitation() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "刑释人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headRehabilitationDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("刑释人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "刑释人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "重点上访人员-下载模板")
    @GetMapping("/export/key")
    public R exportKey() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "重点上访人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headKeyDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("重点上访人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "重点上访人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "服刑人员-下载模板")
    @GetMapping("/export/sentence")
    public R exportSentence() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "服刑人员导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headSentenceDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("服刑人员导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "服刑人员导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "退役军人-下载模板")
    @GetMapping("/export/veterans")
    public R exportVeterans() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "退役军人导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headVeteransDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("退役军人导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "退役军人导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "残疾人-下载模板")
    @GetMapping("/export/disability")
    public R exportDisability() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "残疾人导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headDisabilityDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("残疾人导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "残疾人导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "低保户-下载模板")
    @GetMapping("/export/lowSecurity")
    public R exportRowSecurity() {
        //获取登陆用户绑定社区id
        Long communityId = 2L;//this.getCommunityId();
        //生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
        String ftpUrl = "/mnt/data/web/excel/";
        String name = "低保户导入模板.xlsx";
        try {
            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
            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 {
                    List<List<String>> list = new ArrayList<>();
                    List<List<Object>> dataList = new ArrayList<>();
                    list = headLowSecurityDataFilling();
                    //查询当前社区标签列表
                    R tagsResult = userService.listTags(communityId);
                    if(Constants.SUCCESS.equals(tagsResult.getCode())){
                        List<String> TagsList = (List<String>)tagsResult.getData();
                        //动态加载标签列表到表头
                        for (int i = 0; i < TagsList.size(); i++) {
                            List<String> head = new ArrayList<>();
                            head.add(TagsList.get(i) + "(是/否)");
                            list.add(head);
                        }
                    }
                    EasyExcel.write(fileName).head(list).sheet("低保户导入模板").doWrite(dataList);
                    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();
                    }
                }
            }
            return R.ok(excelUrl + "低保户导入模板.xlsx");
        } catch (Exception e) {
            e.printStackTrace();
            log.error("文件传输失败【{}】", e.getMessage());
            return R.fail();
        }
    }
    @ApiOperation(value = "批量删除实有人口")
    @PostMapping("/delete")
    public R deletePopulations(@RequestBody List<Long> Ids){
@@ -379,6 +959,897 @@
        return list;
    }
    //吸毒人员
    private List<List<String>> headDrugDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("*街/路/巷");
        List<String> head6 = new ArrayList<String>();
        head6.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head7 = new ArrayList<String>();
        head7.add("*楼排号");
        List<String> head8 = new ArrayList<String>();
        head8.add("*单元号");
        List<String> head9 = new ArrayList<String>();
        head9.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head10 = new ArrayList<String>();
        head10.add("*是否租住(自住/租住)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*房屋状态(自住/租住/其他)");
        List<String> head12 = new ArrayList<String>();
        head12.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*管控状态(常规/关注/管控)");
        List<String> head14 = new ArrayList<String>();
        head14.add("本地/外地");
        List<String> head15 = new ArrayList<String>();
        head15.add("户口所在地");
        List<String> head16 = new ArrayList<String>();
        head16.add("备注");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        return list;
    }
    //矫正人员
    private List<List<String>> headCorrectDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("*街/路/巷");
        List<String> head6 = new ArrayList<String>();
        head6.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head7 = new ArrayList<String>();
        head7.add("*楼排号");
        List<String> head8 = new ArrayList<String>();
        head8.add("*单元号");
        List<String> head9 = new ArrayList<String>();
        head9.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head10 = new ArrayList<String>();
        head10.add("*是否租住(自住/租住)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*房屋状态(自住/租住/其他)");
        List<String> head12 = new ArrayList<String>();
        head12.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*管控状态(常规/关注/管控)");
        List<String> head14 = new ArrayList<String>();
        head14.add("本地/外地");
        List<String> head15 = new ArrayList<String>();
        head15.add("户口所在地");
        List<String> head16 = new ArrayList<String>();
        head16.add("*矫正开始时间");
        List<String> head17 = new ArrayList<String>();
        head17.add("矫正结束时间");
        List<String> head18 = new ArrayList<String>();
        head18.add("矫正类型");
        List<String> head19 = new ArrayList<String>();
        head19.add("罪名");
        List<String> head20 = new ArrayList<String>();
        head20.add("备注");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        return list;
    }
    //重精人员
    private List<List<String>> headMajorDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        List<String> head3 = new ArrayList<String>();
        head3.add("*街/路/巷");
        List<String> head4 = new ArrayList<String>();
        head4.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head5 = new ArrayList<String>();
        head5.add("*楼排号");
        List<String> head6 = new ArrayList<String>();
        head6.add("*单元号");
        List<String> head7 = new ArrayList<String>();
        head7.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head8 = new ArrayList<String>();
        head8.add("*是否租住(自住/租住)");
        List<String> head9 = new ArrayList<String>();
        head9.add("*房屋状态(自住/租住/其他)");
        List<String> head10 = new ArrayList<String>();
        head10.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*管控状态(常规/关注/管控)");
        List<String> head12 = new ArrayList<String>();
        head12.add("本地/外地");
        List<String> head13 = new ArrayList<String>();
        head13.add("户口所在地");
        List<String> head14 = new ArrayList<String>();
        head14.add("文化程度");
        List<String> head15 = new ArrayList<String>();
        head15.add("经济状况");
        List<String> head16 = new ArrayList<String>();
        head16.add("监护人");
        List<String> head17 = new ArrayList<String>();
        head17.add("监护人电话");
        List<String> head18 = new ArrayList<String>();
        head18.add("与患者关系");
        List<String> head19 = new ArrayList<String>();
        head19.add("目前诊断");
        List<String> head20 = new ArrayList<String>();
        head20.add("其他");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        return list;
    }
    //邪教人员
    private List<List<String>> headCultDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        List<String> head3 = new ArrayList<String>();
        head3.add("民族");
        List<String> head4 = new ArrayList<String>();
        head4.add("职业");
        List<String> head5 = new ArrayList<String>();
        head5.add("婚姻状况");
        List<String> head6 = new ArrayList<String>();
        head6.add("文化程度");
        List<String> head7 = new ArrayList<String>();
        head7.add("政治面貌");
        List<String> head8 = new ArrayList<String>();
        head8.add("*街/路/巷");
        List<String> head9 = new ArrayList<String>();
        head9.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head10 = new ArrayList<String>();
        head10.add("*楼排号");
        List<String> head11 = new ArrayList<String>();
        head11.add("*单元号");
        List<String> head12 = new ArrayList<String>();
        head12.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*是否租住(自住/租住)");
        List<String> head14 = new ArrayList<String>();
        head14.add("*房屋状态(自住/租住/其他)");
        List<String> head15 = new ArrayList<String>();
        head15.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head16 = new ArrayList<String>();
        head16.add("*管控状态(常规/关注/管控)");
        List<String> head17 = new ArrayList<String>();
        head17.add("本地/外地");
        List<String> head18 = new ArrayList<String>();
        head18.add("户口所在地");
        List<String> head19 = new ArrayList<String>();
        head19.add("邪教名称");
        List<String> head20 = new ArrayList<String>();
        head20.add("基本情况");
        List<String> head21 = new ArrayList<String>();
        head21.add("备注");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        list.add(head21);
        return list;
    }
    //刑释人员
    private List<List<String>> headRehabilitationDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("籍贯");
        List<String> head6 = new ArrayList<String>();
        head6.add("*街/路/巷");
        List<String> head7 = new ArrayList<String>();
        head7.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head8 = new ArrayList<String>();
        head8.add("*楼排号");
        List<String> head9 = new ArrayList<String>();
        head9.add("*单元号");
        List<String> head10 = new ArrayList<String>();
        head10.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*是否租住(自住/租住)");
        List<String> head12 = new ArrayList<String>();
        head12.add("*房屋状态(自住/租住/其他)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head14 = new ArrayList<String>();
        head14.add("*管控状态(常规/关注/管控)");
        List<String> head15 = new ArrayList<String>();
        head15.add("本地/外地");
        List<String> head16 = new ArrayList<String>();
        head16.add("户口所在地");
        List<String> head17 = new ArrayList<String>();
        head17.add("主要亲属");
        List<String> head18 = new ArrayList<String>();
        head18.add("与人员关系");
        List<String> head19 = new ArrayList<String>();
        head19.add("列管原因及类别");
        List<String> head20 = new ArrayList<String>();
        head20.add("是否列管");
        List<String> head21 = new ArrayList<String>();
        head21.add("备注");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        list.add(head21);
        return list;
    }
    //重点上访人员
    private List<List<String>> headKeyDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("籍贯");
        List<String> head6 = new ArrayList<String>();
        head6.add("*街/路/巷");
        List<String> head7 = new ArrayList<String>();
        head7.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head8 = new ArrayList<String>();
        head8.add("*楼排号");
        List<String> head9 = new ArrayList<String>();
        head9.add("*单元号");
        List<String> head10 = new ArrayList<String>();
        head10.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*是否租住(自住/租住)");
        List<String> head12 = new ArrayList<String>();
        head12.add("*房屋状态(自住/租住/其他)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head14 = new ArrayList<String>();
        head14.add("*管控状态(常规/关注/管控)");
        List<String> head15 = new ArrayList<String>();
        head15.add("本地/外地");
        List<String> head16 = new ArrayList<String>();
        head16.add("户口所在地");
        List<String> head17 = new ArrayList<String>();
        head17.add("备注");
        List<String> head18 = new ArrayList<String>();
        head18.add("*为必填项,默认为否");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        return list;
    }
    //服刑人员
    private List<List<String>> headSentenceDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("民族");
        List<String> head3 = new ArrayList<String>();
        head3.add("*身份证号码");
        List<String> head4 = new ArrayList<String>();
        head4.add("联系电话");
        List<String> head5 = new ArrayList<String>();
        head5.add("配偶");
        List<String> head6 = new ArrayList<String>();
        head6.add("职业");
        List<String> head7 = new ArrayList<String>();
        head7.add("*街/路/巷");
        List<String> head8 = new ArrayList<String>();
        head8.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head9 = new ArrayList<String>();
        head9.add("*楼排号");
        List<String> head10 = new ArrayList<String>();
        head10.add("*单元号");
        List<String> head11 = new ArrayList<String>();
        head11.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head12 = new ArrayList<String>();
        head12.add("*是否租住(自住/租住)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*房屋状态(自住/租住/其他)");
        List<String> head14 = new ArrayList<String>();
        head14.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head15 = new ArrayList<String>();
        head15.add("*管控状态(常规/关注/管控)");
        List<String> head16 = new ArrayList<String>();
        head16.add("本地/外地");
        List<String> head17 = new ArrayList<String>();
        head17.add("户口所在地");
        List<String> head18 = new ArrayList<String>();
        head18.add("服刑地");
        List<String> head19 = new ArrayList<String>();
        head19.add("服刑开始时间");
        List<String> head20 = new ArrayList<String>();
        head20.add("服刑结束时间");
        List<String> head21 = new ArrayList<String>();
        head21.add("罪名");
        List<String> head22 = new ArrayList<String>();
        head22.add("备注");
        List<String> head23 = new ArrayList<String>();
        head23.add("*为必填项,默认为否");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        list.add(head21);
        list.add(head22);
        list.add(head23);
        return list;
    }
    //退役军人
    private List<List<String>> headVeteransDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*人员状态");
        List<String> head2 = new ArrayList<String>();
        head2.add("机构");
        List<String> head3 = new ArrayList<String>();
        head3.add("姓名");
        List<String> head4 = new ArrayList<String>();
        head4.add("身份证号码");
        List<String> head5 = new ArrayList<String>();
        head5.add("联系电话");
        List<String> head6 = new ArrayList<String>();
        head6.add("照片");
        List<String> head7 = new ArrayList<String>();
        head7.add("户籍性质");
        List<String> head8 = new ArrayList<String>();
        head8.add("户口所在地(身份证地址)");
        List<String> head9 = new ArrayList<String>();
        head9.add("本地/外地");
        List<String> head10 = new ArrayList<String>();
        head10.add("*街/路/巷");
        List<String> head11 = new ArrayList<String>();
        head11.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head12 = new ArrayList<String>();
        head12.add("*楼排号");
        List<String> head13 = new ArrayList<String>();
        head13.add("*单元号");
        List<String> head14 = new ArrayList<String>();
        head14.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head15 = new ArrayList<String>();
        head15.add("*是否租住(自住/租住)");
        List<String> head16 = new ArrayList<String>();
        head16.add("*房屋状态(自住/租住/其他)");
        List<String> head17 = new ArrayList<String>();
        head17.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head18 = new ArrayList<String>();
        head18.add("*管控状态(常规/关注/管控)");
        List<String> head19 = new ArrayList<String>();
        head19.add("入伍时间");
        List<String> head20 = new ArrayList<String>();
        head20.add("退伍时间");
        List<String> head21 = new ArrayList<String>();
        head21.add("人员类别");
        List<String> head22 = new ArrayList<String>();
        head22.add("民族");
        List<String> head23 = new ArrayList<String>();
        head23.add("健康状况");
        List<String> head24 = new ArrayList<String>();
        head24.add("政治面貌");
        List<String> head25 = new ArrayList<String>();
        head25.add("婚姻状况");
        List<String> head26 = new ArrayList<String>();
        head26.add("住房情况");
        List<String> head27 = new ArrayList<String>();
        head27.add("住房情况其他(手填)");
        List<String> head28 = new ArrayList<String>();
        head28.add("住房面积");
        List<String> head29 = new ArrayList<String>();
        head29.add("现就业情况");
        List<String> head30 = new ArrayList<String>();
        head30.add("在职情况类型");
        List<String> head31 = new ArrayList<String>();
        head31.add("现就业情况其他(手填)");
        List<String> head32 = new ArrayList<String>();
        head32.add("养老保险");
        List<String> head33 = new ArrayList<String>();
        head33.add("医疗保险");
        List<String> head34 = new ArrayList<String>();
        head34.add("现个人年收入(单位:元)");
        List<String> head35 = new ArrayList<String>();
        head35.add("父亲健康状况");
        List<String> head36 = new ArrayList<String>();
        head36.add("母亲健康状况");
        List<String> head37 = new ArrayList<String>();
        head37.add("配偶健康状况");
        List<String> head38 = new ArrayList<String>();
        head38.add("儿子健康状况");
        List<String> head39 = new ArrayList<String>();
        head39.add("女儿健康状况");
        List<String> head40 = new ArrayList<String>();
        head40.add("主要困难");
        List<String> head41 = new ArrayList<String>();
        head41.add("其他困难(手填)");
        List<String> head42 = new ArrayList<String>();
        head42.add("主要诉求");
        List<String> head43 = new ArrayList<String>();
        head43.add("主要诉求其他事项问题(手填)");
        List<String> head44 = new ArrayList<String>();
        head44.add("需参加的学历培训");
        List<String> head45 = new ArrayList<String>();
        head45.add("是否已参加退役军人培训(政府性质)");
        List<String> head46 = new ArrayList<String>();
        head46.add("入伍前学历");
        List<String> head47 = new ArrayList<String>();
        head47.add("再教育学历");
        List<String> head48 = new ArrayList<String>();
        head48.add("所学专业");
        List<String> head49 = new ArrayList<String>();
        head49.add("所学专业其他(手填)");
        List<String> head50 = new ArrayList<String>();
        head50.add("曾从事行业(含现从事行业)");
        List<String> head51 = new ArrayList<String>();
        head51.add("曾从事行业(含现从事行业)其他(手填)");
        List<String> head52 = new ArrayList<String>();
        head52.add("意向就业地点");
        List<String> head53 = new ArrayList<String>();
        head53.add("意向就业地点其他地区(手填)");
        List<String> head54 = new ArrayList<String>();
        head54.add("待业期间的求职意向");
        List<String> head55 = new ArrayList<String>();
        head55.add("待业期间的求职意向其他(手填)");
        List<String> head56 = new ArrayList<String>();
        head56.add("是否有创业意愿");
        List<String> head57 = new ArrayList<String>();
        head57.add("创业意愿");
        List<String> head58 = new ArrayList<String>();
        head58.add("备注");
        List<String> head59 = new ArrayList<String>();
        head59.add("填表单位");
        List<String> head60 = new ArrayList<String>();
        head60.add("填表人");
        List<String> head61 = new ArrayList<String>();
        head61.add("填表人联系电话");
        List<String> head62 = new ArrayList<String>();
        head62.add("*为必填项,默认为否");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        list.add(head21);
        list.add(head22);
        list.add(head23);
        list.add(head24);
        list.add(head25);
        list.add(head26);
        list.add(head27);
        list.add(head28);
        list.add(head29);
        list.add(head30);
        list.add(head31);
        list.add(head32);
        list.add(head33);
        list.add(head34);
        list.add(head35);
        list.add(head36);
        list.add(head37);
        list.add(head38);
        list.add(head39);
        list.add(head40);
        list.add(head41);
        list.add(head42);
        list.add(head43);
        list.add(head44);
        list.add(head45);
        list.add(head46);
        list.add(head47);
        list.add(head48);
        list.add(head49);
        list.add(head50);
        list.add(head51);
        list.add(head52);
        list.add(head53);
        list.add(head54);
        list.add(head55);
        list.add(head56);
        list.add(head57);
        list.add(head58);
        list.add(head59);
        list.add(head60);
        list.add(head61);
        list.add(head62);
        return list;
    }
    //残疾人员
    private List<List<String>> headDisabilityDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        List<String> head3 = new ArrayList<String>();
        head3.add("办证状况");
        List<String> head4 = new ArrayList<String>();
        head4.add("文化程度");
        List<String> head5 = new ArrayList<String>();
        head5.add("民族");
        List<String> head6 = new ArrayList<String>();
        head6.add("残疾类别");
        List<String> head7 = new ArrayList<String>();
        head7.add("残疾等级");
        List<String> head8 = new ArrayList<String>();
        head8.add("联系电话");
        List<String> head9 = new ArrayList<String>();
        head9.add("*街/路/巷");
        List<String> head10 = new ArrayList<String>();
        head10.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head11 = new ArrayList<String>();
        head11.add("*楼排号");
        List<String> head12 = new ArrayList<String>();
        head12.add("*单元号");
        List<String> head13 = new ArrayList<String>();
        head13.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head14 = new ArrayList<String>();
        head14.add("*是否租住(自住/租住)");
        List<String> head15 = new ArrayList<String>();
        head15.add("*房屋状态(自住/租住/其他)");
        List<String> head16 = new ArrayList<String>();
        head16.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head17 = new ArrayList<String>();
        head17.add("*管控状态(常规/关注/管控)");
        List<String> head18 = new ArrayList<String>();
        head18.add("本地/外地");
        List<String> head19 = new ArrayList<String>();
        head19.add("户口所在地");
        List<String> head20 = new ArrayList<String>();
        head20.add("备注");
        List<String> head21 = new ArrayList<String>();
        head21.add("*为必填项,默认为否");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        list.add(head21);
        return list;
    }
    //低保户
    private List<List<String>> headLowSecurityDataFilling(){
        List<List<String>> list = new ArrayList<List<String>>();
        List<String> head0 = new ArrayList<String>();
        head0.add("序号");
        List<String> head1 = new ArrayList<String>();
        head1.add("*姓名");
        List<String> head2 = new ArrayList<String>();
        head2.add("*身份证号码");
        List<String> head3 = new ArrayList<String>();
        head3.add("联系电话");
        List<String> head4 = new ArrayList<String>();
        head4.add("地区");
        List<String> head5 = new ArrayList<String>();
        head5.add("家庭编码");
        List<String> head6 = new ArrayList<String>();
        head6.add("组名称");
        List<String> head7 = new ArrayList<String>();
        head7.add("分类救助类别");
        List<String> head8 = new ArrayList<String>();
        head8.add("申请日期");
        List<String> head9 = new ArrayList<String>();
        head9.add("户主姓名");
        List<String> head10 = new ArrayList<String>();
        head10.add("户主身份证号");
        List<String> head11 = new ArrayList<String>();
        head11.add("*街/路/巷");
        List<String> head12 = new ArrayList<String>();
        head12.add("*小区号(政府对于每个小区都有特定编号)");
        List<String> head13 = new ArrayList<String>();
        head13.add("*楼排号");
        List<String> head14 = new ArrayList<String>();
        head14.add("*单元号");
        List<String> head15 = new ArrayList<String>();
        head15.add("*户室(四位数表示。前两位楼层,后两位户号)");
        List<String> head16 = new ArrayList<String>();
        head16.add("*是否租住(自住/租住)");
        List<String> head17 = new ArrayList<String>();
        head17.add("*房屋状态(自住/租住/其他)");
        List<String> head18 = new ArrayList<String>();
        head18.add("*房屋用途(住宅/公寓/宿舍/仓库/其他)");
        List<String> head19 = new ArrayList<String>();
        head19.add("*管控状态(常规/关注/管控)");
        List<String> head20 = new ArrayList<String>();
        head20.add("本地/外地");
        List<String> head21 = new ArrayList<String>();
        head21.add("户口所在地");
        List<String> head22 = new ArrayList<String>();
        head22.add("居住地邮编");
        List<String> head23 = new ArrayList<String>();
        head23.add("救助证号");
        List<String> head24 = new ArrayList<String>();
        head24.add("保障人口数");
        List<String> head25 = new ArrayList<String>();
        head25.add("家庭人口数");
        List<String> head26 = new ArrayList<String>();
        head26.add("开户人");
        List<String> head27 = new ArrayList<String>();
        head27.add("开户银行");
        List<String> head28 = new ArrayList<String>();
        head28.add("开户人身份证号");
        List<String> head29 = new ArrayList<String>();
        head29.add("银行账号");
        List<String> head30 = new ArrayList<String>();
        head30.add("供养机构");
        List<String> head31 = new ArrayList<String>();
        head31.add("资金发放方式");
        List<String> head32 = new ArrayList<String>();
        head32.add("保障金额");
        List<String> head33 = new ArrayList<String>();
        head33.add("调剂金额");
        List<String> head34 = new ArrayList<String>();
        head34.add("差额救助金额");
        List<String> head35 = new ArrayList<String>();
        head35.add("分类施保金额");
        List<String> head36 = new ArrayList<String>();
        head36.add("家庭月总收入");
        List<String> head37 = new ArrayList<String>();
        head37.add("家庭月均收入");
        List<String> head38 = new ArrayList<String>();
        head38.add("家庭月支出");
        List<String> head39 = new ArrayList<String>();
        head39.add("经度");
        List<String> head40 = new ArrayList<String>();
        head40.add("纬度");
        List<String> head41 = new ArrayList<String>();
        head41.add("始发年月");
        List<String> head42 = new ArrayList<String>();
        head42.add("护理费");
        List<String> head43 = new ArrayList<String>();
        head43.add("申请理由");
        List<String> head44 = new ArrayList<String>();
        head44.add("审核意见");
        List<String> head45 = new ArrayList<String>();
        head45.add("*为必填项,默认为否");
        list.add(head0);
        list.add(head1);
        list.add(head2);
        list.add(head3);
        list.add(head4);
        list.add(head5);
        list.add(head6);
        list.add(head7);
        list.add(head8);
        list.add(head9);
        list.add(head10);
        list.add(head11);
        list.add(head12);
        list.add(head13);
        list.add(head14);
        list.add(head15);
        list.add(head16);
        list.add(head17);
        list.add(head18);
        list.add(head19);
        list.add(head20);
        list.add(head21);
        list.add(head22);
        list.add(head23);
        list.add(head24);
        list.add(head25);
        list.add(head26);
        list.add(head27);
        list.add(head28);
        list.add(head29);
        list.add(head30);
        list.add(head31);
        list.add(head32);
        list.add(head33);
        list.add(head34);
        list.add(head35);
        list.add(head36);
        list.add(head37);
        list.add(head38);
        list.add(head39);
        list.add(head40);
        list.add(head41);
        list.add(head42);
        list.add(head43);
        list.add(head44);
        list.add(head45);
        return list;
    }
    private List<Object> formDataFilling(){
        List<Object> data = new ArrayList<>();
        data.add("张三");
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java
@@ -168,9 +168,16 @@
    @Override
    public R addRota(List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) {
        comSwRotaSaveDTOs.forEach(comSwRotaSaveDTO -> {
        for (ComSwRotaSaveDTO comSwRotaSaveDTO : comSwRotaSaveDTOs){
                if (comSwRotaSaveDTO.getId() != null && comSwRotaSaveDTO.getId() != 0) {
                    ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
                ComSwRotaDO comSwRotaDO = comSwRotaDAO.selectById(comSwRotaSaveDTO.getId());
                if (null == comSwRotaDO) {
                    return R.fail("该值班表不存在");
                }
                ComSwRotaDO checkCreditCode = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()));
                if (null != checkCreditCode && comSwRotaDO.getId() != checkCreditCode.getId()) {
                    return R.fail("该值班表已存在,值班日期重复");
                }
                    BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
                    try {
                        comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
@@ -179,6 +186,10 @@
                    }
                    comSwRotaDAO.updateById(comSwRotaDO);
                } else {
                Integer count = comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()));
                if (count > 0) {
                    return R.fail("该值班表已存在,值班日期重复");
                }
                    ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
                    BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
                    comSwRotaDO.setId(Snowflake.getId());
@@ -189,7 +200,7 @@
                    }
                    comSwRotaDAO.insert(comSwRotaDO);
                }
        });
        }
        return R.ok();
    }
@@ -266,14 +277,14 @@
        List<ComSwRotaDO> comSwRotaDOS = new ArrayList<>();
            list.forEach(comSwRotaExcelVO -> {
                ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
                String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split(",");
                String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split("、");
                List<String> leaderIds = new ArrayList<>();
                for (String leaderPhone : leaderPhones) {
                    String id = comSwRotaDAO.getTeamIdsByTeamPhone(leaderPhone);
                    leaderIds.add(id);
                }
                String[] personPhones = comSwRotaExcelVO.getPersonPhone().split(",");
                String[] personPhones = comSwRotaExcelVO.getPersonPhone().split("、");
                List<String> personIds = new ArrayList<>();
                for (String personPhone : personPhones) {
                    String id = comSwRotaDAO.getTeamIdsByTeamPhone(personPhone);
@@ -289,6 +300,8 @@
                }
                comSwRotaDO.setRotaLeader(StringUtils.join(leaderIds, ","));
                comSwRotaDO.setRotaPerson(StringUtils.join(personIds, ","));
                comSwRotaDO.setLeaderName(comSwRotaExcelVO.getLeaderName().replace("、",","));
                comSwRotaDO.setPersonName(comSwRotaExcelVO.getPersonName().replace("、",","));
                comSwRotaDOS.add(comSwRotaDO);
            });
        this.saveBatch(comSwRotaDOS);
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml
@@ -57,9 +57,21 @@
    <select id="patrolRecordStatistics" resultType="com.panzhihua.common.model.vos.community.ComSwPatrolRecordStatisticsVO">
        select count(id) as patrolRecordTotal
             ,(select count(id) from com_sw_patrol_record where community_id = #{communityId} and patrol_type = 1) as huoTotal
             ,(select count(id) from com_sw_patrol_record where community_id = #{communityId} and patrol_type = 2) as xunTotal
             ,(select count(id) from com_sw_patrol_record where community_id = #{communityId} and patrol_type = 3) as yiTotal
             ,(select count(id) from com_sw_patrol_record where community_id = #{communityId} and patrol_type LIKE concat('%','1','%')) as huoTotal
             ,(select count(id) from com_sw_patrol_record where community_id = #{communityId} and patrol_type LIKE concat('%','2','%')) as xunTotal
             ,(select count(id) from com_sw_patrol_record where community_id = #{communityId} and patrol_type LIKE concat('%','3','%')) as yiTotal
             ,(select count(id) from com_sw_safety_work_record where community_id = #{communityId}) as safetyWorkTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId}) as dangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and status = '3') as handledDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','1','%')) as huoDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','2','%')) as xunDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','3','%')) as yiDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','1','%') and status = '3' ) as huoHandledDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','1','%') and status in ('1','2')) as huoHandlingDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','2','%') and status = '3' ) as xunHandledDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','2','%') and status in ('1','2')) as xunHandlingDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','3','%') and status = '3' ) as yiHandledDangerTotal
             ,(select count(id) from com_sw_danger_report where community_id =  #{communityId} and danger_type like CONCAT('%','3','%') and status in ('1','2')) as yiHandlingDangerTotal
        from com_sw_patrol_record as cmp where community_id = #{communityId}
    </select>