manailin
2021-08-04 df654c8bbe24a659833d436a2e7e2013e3592142
Merge remote-tracking branch 'origin/test' into test
1个文件已添加
12个文件已修改
2199 ■■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRelationEnum.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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/dao/ComMngPopulationDAO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | 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/ComMngPopulationDOMapper.xml 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRelationEnum.java
@@ -10,12 +10,97 @@
@Getter
public enum PopulRelationEnum
{
    HZ(1, "户主"),
    PO(2, "配偶"),
    ZN(3, "子女"),
    SN(4, "孙女"),
    FM(5, "父母"),
    QT(6, "其他");
    relation01(01, "本人"),
    relation02(02, "户主"),
    relation10(10, "配偶"),
    relation11(11, "夫"),
    relation12(12, "妻"),
    relation20(20, "子"),
    relation21(21, "独生子"),
    relation22(22, "长子"),
    relation23(23, "次子"),
    relation24(24, "三子"),
    relation25(25, "四子"),
    relation26(26, "五子"),
    relation27(27, "养子或继子"),
    relation28(28, "女婿"),
    relation29(29, "其他儿子"),
    relation30(30, "女"),
    relation31(31, "独生女"),
    relation32(32, "长女"),
    relation33(33, "次女"),
    relation434(34, "三女"),
    relation35(35, "四女"),
    relation36(36, "五女"),
    relation37(37, "养女或继女"),
    relation38(38, "儿媳"),
    relation39(39, "其他女儿"),
    relation40(40, "孙子、孙女或外孙子、外孙女"),
    relation41(41, "孙子"),
    relation42(42, "孙女"),
    relation43(43, "外孙子"),
    relation44(44, "外孙女"),
    relation45(45, "孙媳妇或外孙媳妇"),
    relation46(46, "孙女婿或外孙女婿"),
    relation47(47, "曾孙子或外曾孙子"),
    relation48(48, "曾孙女或外曾孙女"),
    relation49(49, "其他孙子、孙女或外孙子、外孙女"),
    relation50(50, "父母"),
    relation51(51, "父亲"),
    relation52(52, "母亲"),
    relation53(53, "公公"),
    relation54(54, "婆婆"),
    relation55(55, "岳父"),
    relation56(56, "岳母"),
    relation57(57, "继父或养父"),
    relation58(58, "继母或养母"),
    relation59(59, "其他父母关系"),
    relation60(60, "祖父母或外祖父母"),
    relation61(61, "祖父"),
    relation62(62, "祖母"),
    relation63(63, "外祖父"),
    relation64(64, "外祖母"),
    relation65(65, "配偶的祖父母或外祖父母"),
    relation66(66, "曾祖父"),
    relation67(67, "曾祖母"),
    relation68(68, "配偶的曾祖父母或外曾祖父母"),
    relation69(69, "其他祖父母或外祖父母关系"),
    relation70(70, "兄弟姐妹"),
    relation71(71, "兄"),
    relation72(72, "嫂"),
    relation73(73, "弟"),
    relation74(74, "弟媳"),
    relation75(75, "姐姐"),
    relation76(76, "姐夫"),
    relation77(77, "妹妹"),
    relation78(78, "妹夫"),
    relation79(79, "其他兄弟姐妹"),
    relation80(80, "其他"),
    relation81(81, "伯父"),
    relation82(82, "伯母"),
    relation83(83, "叔父"),
    relation84(84, "婶母"),
    relation85(85, "舅父"),
    relation86(86, "舅母"),
    relation87(87, "姨夫"),
    relation88(88, "姨母"),
    relation89(89, "姑母"),
    relation90(90, "姑父"),
    relation91(91, "堂兄妹,堂姐妹"),
    relation92(92, "表兄妹,表姐妹"),
    relation93(93, "侄子"),
    relation94(94, "侄女"),
    relation95(95, "外甥"),
    relation96(96, "外甥女"),
    relation97(97, "其他亲属"),
    relation99(99, "非亲属");
    private final Integer code;
    private final String name;
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/dao/ComMngPopulationDAO.java
@@ -33,9 +33,7 @@
import com.panzhihua.common.model.vos.user.InputUserInfoVO;
import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.*;
import java.util.Date;
import java.util.List;
@@ -1247,5 +1245,32 @@
            " </script>")
    IPage<ComMngVillagePopulationListVO> getVillagePopulationAdmin(Page page, @Param("villagePopulationDTO") PageComMngVillagePopulationDTO villagePopulationDTO);
    @Insert("<script> " +
            "insert into com_mng_population(`id`,`street_id`,`act_id`,`village_id`,`name`,`sex`,`certificate_type`,`card_no`" +
            ",`card_no_expiration_date`,`card_no_str`,`road`,`door_no`,`floor`,`unit_no`,`house_no`,`political_outlook`" +
            ",`work_company`,`special_situation`,`phone`,`out_or_local`,`census_register`,`person_type`,`country`" +
            ",`date_of_departure`,`native_place`,`nation_code`,`nation`,`is_rent`,`culture_level`,`marriage`,`healthy`" +
            ",`blood_type`,`religion`,`profession`,`person_status`,`death`,`head_portrait`,`monthly_income`,`family_status`" +
            ",`birthday`,`goal_in_china`,`date_of_arrival`,`label`,`card_photo_front`,`card_photo_back`,`family_book`" +
            ",`delete_flag`,`remark`,`create_at`,`update_at`,`residence`,`address`,`house_id`) values " +
            "<foreach collection=\"populationList\" item=\"item\" index=\"index\" separator=\",\">\n" +
            "        (#{item.id},#{item.streetId},#{item.actId},#{item.villageId}" +
            ",#{item.name},#{item.sex},#{item.certificateType},#{item.cardNo}" +
            ",#{item.cardNoExpirationDate},#{item.cardNoStr},#{item.road},#{item.doorNo}" +
            ",#{item.floor},#{item.unitNo},#{item.houseNo},#{item.politicalOutlook}" +
            ",#{item.workCompany},#{item.specialSituation},#{item.phone},#{item.outOrLocal}" +
            ",#{item.censusRegister},#{item.personType},#{item.country},#{item.dateOfDeparture}" +
            ",#{item.nativePlace},#{item.nationCode},#{item.nation},#{item.isRent},#{item.cultureLevel}" +
            ",#{item.marriage},#{item.healthy},#{item.bloodType},#{item.religion},#{item.profession}" +
            ",#{item.personStatus},#{item.death},#{item.headPortrait},#{item.monthlyIncome},#{item.familyStatus}" +
            ",#{item.birthday},#{item.goalInChina},#{item.dateOfArrival},#{item.label},#{item.cardPhotoFront}" +
            ",#{item.cardPhotoBack},#{item.familyBook},#{item.deleteFlag},#{item.remark},now(),#{item.updateAt}" +
            ",#{item.residence},#{item.address},#{item.houseId})" +
            "    </foreach>" +
            " </script>")
    void insertAll(@Param("populationList") List<ComMngPopulationDO> populationList);
    void updateAll(@Param("populationList") List<ComMngPopulationDO> populationList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
@@ -11,7 +11,9 @@
import com.panzhihua.common.model.vos.grid.PopulationListVO;
import com.panzhihua.common.model.vos.grid.admin.ComMngSubordinateVO;
import com.panzhihua.common.model.vos.user.ComMngHouseVo;
import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -254,4 +256,19 @@
    @Select("select id as houseId,house_no from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unitNo} order by create_at asc")
    List<ComMngSubordinateVO> getHouseLevelByHouseNos(@Param("villageId") Long villageId,@Param("floor") String floor,@Param("unitNo") String unitNo);
    @Insert("<script> " +
            "insert into com_mng_population_house(`id`,`street_id`,`community_id`,`village_id`" +
            ",`alley`,`house_num`,`unit_no`,`floor`,`house_no`,`code`,`address`,`status`" +
            ",`purpose`,`control_status`,`is_empty`,`construct_purpose`,`construct_area`" +
            ",`path`,`create_at`) values " +
            "<foreach collection=\"houseList\" item=\"item\" index=\"index\" separator=\",\">\n" +
            "        (#{item.id},#{item.streetId},#{item.communityId},#{item.villageId}" +
            ",#{item.alley},#{item.houseNum},#{item.unitNo},#{item.floor}" +
            ",#{item.houseNo},#{item.code},#{item.address},#{item.status}" +
            ",#{item.purpose},#{item.controlStatus},#{item.isEmpty},#{item.constructPurpose}" +
            ",#{item.constructArea},#{item.path},now())" +
            "    </foreach>" +
            " </script>")
    void insertAll(@Param("houseList") List<ComMngPopulationHouseDO> houseList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
@@ -7,6 +7,7 @@
import com.panzhihua.common.model.vos.community.ComMngPopulationHouseUserAdminVO;
import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationHouseListVO;
import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@@ -58,4 +59,14 @@
            " cmphu.popul_id = #{villagePopulationDTO.populationId}")
    IPage<ComMngVillagePopulationHouseListVO> getVillagePopulationHouseAdmin(Page page, @Param("villagePopulationDTO") PageComMngVillagePopulationHouseDTO villagePopulationDTO);
    @Insert("<script> " +
            "insert into com_mng_population_house_user(`id`,`popul_id`,`house_id`,`relation_id`,`relation`" +
            ",`residence`,`start_at`,`end_at`,`create_at`) values " +
            "<foreach collection=\"houseUserList\" item=\"item\" index=\"index\" separator=\",\">\n" +
            "        (#{item.id},#{item.populId},#{item.houseId},#{item.relationId}" +
            ",#{item.relation},#{item.residence},#{item.startAt},#{item.endAt}" +
            ",now())" +
            "    </foreach>" +
            " </script>")
    void insertAll(@Param("houseUserList") List<ComMngPopulationHouseUserDO> houseUserList);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -394,6 +394,37 @@
            areaPath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">").append(populationActVO.getDistrictName()).append(">");
            //处理实有人口信息
            Integer nub = 1;
            //查询所有人口数据放入HashMap中
            List<ComMngPopulationDO> populationList = this.baseMapper.selectList(null);
            HashMap<String,Object> populationMap = new HashMap<>();
            populationList.forEach(population -> {
                String key = population.getCardNo();
                populationMap.put(key,population);
            });
            //查询所有房屋信息放入到HashMap中
            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(null);
            HashMap<String,Object> houseMap = new HashMap<>();
            houseLists.forEach(house -> {
                String key = house.getCommunityId() + house.getVillageId() + house.getFloor() + house.getUnitNo() + house.getHouseNo();
                houseMap.put(key,house);
            });
            List<ComMngVillageDO> villageList = comActVillageDAO.selectList(null);
            HashMap<String,Object> villageMap = new HashMap<>();
            villageList.forEach(village -> {
                String key = village.getCommunityId() + village.getAlley() + village.getHouseNum();
                villageMap.put(key,village);
            });
            List<ComMngPopulationHouseUserDO> houseUserLists = comMngPopulationHouseUserDAO.selectList(null);
            HashMap<String,Object> houseUserMap = new HashMap<>();
            houseUserLists.forEach(houseUser -> {
                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
                houseUserMap.put(key,houseUser);
            });
            for (ComMngPopulationServeExcelVO vo : list) {
                if (vo.getDoorNo().contains("号")) {
                    vo.setDoorNo(vo.getDoorNo().replace("号",""));
@@ -409,13 +440,11 @@
                }
                log.info("开始查询小区街路巷是否存在");
                //查询小区街路巷是否存在
                ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>().eq("alley", vo.getRoad()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
                log.info("开始导入数据,行数:" + nub + "对象数据:" + vo.toString());
                nub++;
                log.info("街路巷对象:" + comMngVillageDO);
                log.info("街路巷对象是否为空:" + ObjectUtils.isEmpty(comMngVillageDO));
                log.info("街路巷对象是否为空2:" + (comMngVillageDO == null));
                if (comMngVillageDO == null) {
                ComMngVillageDO comMngVillageDO = null;
                String villageKey = communityId + vo.getRoad() + vo.getDoorNo();
                if(!isOnly(villageKey,villageMap)){
                    comMngVillageDO = (ComMngVillageDO)villageMap.get(villageKey);
                }else{
                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
                    BeanUtils.copyProperties(vo,mistake);
                    setMistake(mistake, vo);
@@ -434,11 +463,9 @@
                log.info("开始查询房屋是否存在");
                //先判断房屋是否存在
                ComMngPopulationHouseDO populationHouseDO = comMngPopulationHouseDAO.selectOne(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
                        .eq(ComMngPopulationHouseDO::getCommunityId, communityId).eq(ComMngPopulationHouseDO::getVillageId, comMngVillageDO.getVillageId())
                        .eq(ComMngPopulationHouseDO::getFloor, vo.getFloor()).eq(ComMngPopulationHouseDO::getUnitNo, vo.getUnitNo())
                        .eq(ComMngPopulationHouseDO::getHouseNo, vo.getHouseNo()));
                if (populationHouseDO == null) {
                ComMngPopulationHouseDO populationHouseDO = null;
                String houseKey = communityId + comMngVillageDO.getVillageId() + vo.getFloor() + vo.getUnitNo() + vo.getHouseNo();
                if(isOnly(houseKey,houseMap)){
                    if(!houseList.isEmpty()){
                        for (ComMngPopulationHouseDO house:houseList) {
                            if(house.getVillageId().equals(comMngVillageDO.getVillageId()) && house.getCommunityId().equals(communityId)
@@ -454,8 +481,10 @@
                        populationHouseDO = savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
                        houseList.add(populationHouseDO);
                    }
                    vo.setHouseId(populationHouseDO.getId());
                }else{
                    populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
                }
                vo.setHouseId(populationHouseDO.getId());
                log.info("开始查询房屋是否存在完成");
                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
@@ -466,39 +495,25 @@
                //判断实有人口是否已存在
                log.info("开始查询实有人口是否已存在");
                ComMngPopulationDO populationDO = null;
                List<ComMngPopulationDO> populationDOList = this.baseMapper.selectList(new QueryWrapper<ComMngPopulationDO>().lambda()
                        .eq(ComMngPopulationDO::getCardNo, cardNoAES));
                if (populationDOList.isEmpty()) {
                String populationKey = vo.getCardNo();
                if(!isOnly(populationKey,populationMap)){
                    //存在实有人口信息,则更新
                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
                    ComMngPopulationDO updatePopulationDO = updatePopulationDO(vo,populationDO,labelList);
                    updateList.add(updatePopulationDO);
                }else{
                    //不存在实有人口,则新增
                    populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO,labelList);
                    saveList.add(populationDO);
                } else {
                    //存在则更新
                    if(populationDOList.size() > 1){
                        for (ComMngPopulationDO population:populationDOList) {
                            if(population.getActId().equals(communityId)){
                                populationDO = population;
                                break;
                            }
                        }
                        if(populationDO == null){
                            populationDO = populationDOList.get(0);
                        }
                    }else{
                        populationDO = populationDOList.get(0);
                    }
                    ComMngPopulationDO updatePopulationDO = updatePopulationDO(vo,populationDO,labelList);
                    updateList.add(updatePopulationDO);
                }
                log.info("开始查询实有人口是否已存在完成");
                log.info("开始查询实有人口房屋居住信息");
                //处理实有人口房屋居住信息
                if (populationDO != null) {
                    ComMngPopulationHouseUserDO populationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>()
                            .lambda().eq(ComMngPopulationHouseUserDO::getHouseId, populationHouseDO.getId())
                            .eq(ComMngPopulationHouseUserDO::getPopulId, populationDO.getId()));
                    if (populationHouseUserDO == null) {
                    ComMngPopulationHouseUserDO populationHouseUserDO = null;
                    String houseUserKey = populationDO.getId() + populationHouseDO.getId() + "";
                    if(isOnly(houseUserKey,houseUserMap)){
                        populationHouseUserDO = new ComMngPopulationHouseUserDO();
                        populationHouseUserDO.setId(Snowflake.getId());
                        populationHouseUserDO.setHouseId(populationHouseDO.getId());
@@ -519,17 +534,18 @@
        log.info("开始执行数据库导入");
        if(!houseList.isEmpty()){
            log.info("执行数据库导入房屋");
            comMngPopulationHouseService.saveBatch(houseList);
            comMngPopulationHouseDAO.insertAll(houseList);
            log.info("执行数据库导入房屋完成");
        }
        if(!saveList.isEmpty()){
            log.info("执行数据库导入人口");
            this.saveBatch(saveList);
            this.baseMapper.insertAll(saveList);
            log.info("执行数据库导入人口完成");
        }
        if(!updateList.isEmpty()){
            log.info("执行数据库更新人口");
            this.updateBatchById(updateList);
            this.baseMapper.updateAll(updateList);
//            this.updateBatchById(updateList);
            log.info("执行数据库更新人口完成");
        }
        if(!houseUserList.isEmpty()){
@@ -1978,4 +1994,14 @@
        mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
    }
    /**
     * 判重方法
     * @param key   主键
     * @param hashMap   数据集
     * @return  存在即为false 不存在则为true
     */
    private boolean isOnly(String key,HashMap<String,Object> hashMap){
        return ObjectUtils.isEmpty(hashMap.get(key));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java
@@ -73,10 +73,10 @@
        IPage<ComSwDangerReportVO> iPage = comSwDangerReportDAO.pageDangerReport(page, comSwPatrolRecordPageDTO);
        if (!iPage.getRecords().isEmpty()) {
            iPage.getRecords().forEach(comSwDangerReportVO -> {
                if (StringUtils.isNotEmpty(comSwDangerReportVO.getAssignPerson())) {
                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.no);
                }else {
                if (StringUtils.isNotEmpty(comSwDangerReportVO.getStatus()) && "2".equals(comSwDangerReportVO.getStatus())) {
                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.yes);
                }else {
                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.no);
                }
                StringBuilder patrolNameString = new StringBuilder();
                StringBuilder patrolPhoneString = new StringBuilder();
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/ComMngPopulationDOMapper.xml
New file
@@ -0,0 +1,228 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComMngPopulationDAO">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationDO">
        <id column="id" property="id" />
        <result column="street_id" property="streetId" />
        <result column="act_id" property="actId" />
        <result column="village_id" property="villageId" />
        <result column="name" property="name" />
        <result column="sex" property="sex" />
        <result column="certificate_type" property="certificateType" />
        <result column="card_no" property="cardNo" />
        <result column="card_no_expiration_date" property="cardNoExpirationDate" />
        <result column="card_no_str" property="cardNoStr" />
        <result column="road" property="road" />
        <result column="door_no" property="doorNo" />
        <result column="floor" property="floor" />
        <result column="unit_no" property="unitNo" />
        <result column="house_no" property="houseNo" />
        <result column="political_outlook" property="politicalOutlook" />
        <result column="work_company" property="workCompany" />
        <result column="special_situation" property="specialSituation" />
        <result column="phone" property="phone" />
        <result column="out_or_local" property="outOrLocal" />
        <result column="census_register" property="censusRegister" />
        <result column="person_type" property="personType" />
        <result column="country" property="country" />
        <result column="date_of_departure" property="dateOfDeparture" />
        <result column="native_place" property="nativePlace" />
        <result column="nation_code" property="nationCode" />
        <result column="nation" property="nation" />
        <result column="is_rent" property="isRent" />
        <result column="culture_level" property="cultureLevel" />
        <result column="marriage" property="marriage" />
        <result column="healthy" property="healthy" />
        <result column="blood_type" property="bloodType" />
        <result column="religion" property="religion" />
        <result column="profession" property="profession" />
        <result column="person_status" property="personStatus" />
        <result column="death" property="death" />
        <result column="head_portrait" property="headPortrait" />
        <result column="monthly_income" property="monthlyIncome" />
        <result column="family_status" property="familyStatus" />
        <result column="birthday" property="birthday" />
        <result column="goal_in_china" property="goalInChina" />
        <result column="date_of_arrival" property="dateOfArrival" />
        <result column="label" property="label" />
        <result column="card_photo_front" property="cardPhotoFront" />
        <result column="card_photo_back" property="cardPhotoBack" />
        <result column="family_book" property="familyBook" />
        <result column="delete_flag" property="deleteFlag" />
        <result column="remark" property="remark" />
        <result column="create_at" property="createAt" />
        <result column="update_at" property="updateAt" />
        <result column="residence" property="residence" />
        <result column="address" property="address" />
        <result column="house_id" property="houseId" />
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, street_id, act_id, village_id, name, sex, certificate_type, card_no, card_no_expiration_date, card_no_str, road, door_no, floor, unit_no, house_no, political_outlook, work_company, special_situation, phone, out_or_local, census_register, person_type, country, date_of_departure, native_place, nation_code, nation, is_rent, culture_level, marriage, healthy, blood_type, religion, profession, person_status, death, head_portrait, monthly_income, family_status, birthday, goal_in_china, date_of_arrival, label, card_photo_front, card_photo_back, family_book, delete_flag, remark, create_at, update_at, residence, address, house_id
    </sql>
    <update id="updateAll" parameterType="java.util.List">
        <foreach collection="populationList" item="item" index="index" separator=";">
            update com_mng_population
            <set>
                <if test="item.streetId != null">
                    `street_id` = #{item.streetId},
                </if>
                <if test="item.actId != null">
                    `act_id` = #{item.actId},
                </if>
                <if test="item.villageId != null">
                    `village_id` = #{item.villageId},
                </if>
                <if test="item.name != null and item.name !=&quot;&quot;">
                    `name` = #{item.name},
                </if>
                <if test="item.sex != null">
                    `sex` = #{item.sex},
                </if>
                <if test="item.certificateType != null and item.certificateType !=&quot;&quot;">
                    `certificate_type` = #{item.certificateType},
                </if>
                <if test="item.cardNo != null and item.cardNo !=&quot;&quot;">
                    `card_no` = #{item.cardNo},
                </if>
                <if test="item.cardNoExpirationDate != null">
                    `card_no_expiration_date` = #{item.cardNoExpirationDate},
                </if>
                <if test="item.cardNoStr != null and item.cardNoStr !=&quot;&quot;">
                    `card_no_str` = #{item.cardNoStr},
                </if>
                <if test="item.road != null and item.road !=&quot;&quot;">
                    `road` = #{item.road},
                </if>
                <if test="item.doorNo != null and item.doorNo !=&quot;&quot;">
                    `door_no` = #{item.doorNo},
                </if>
                <if test="item.floor != null and item.floor !=&quot;&quot;">
                    `floor` = #{item.floor},
                </if>
                <if test="item.unitNo != null and item.unitNo !=&quot;&quot;">
                    `unit_no` = #{item.unitNo},
                </if>
                <if test="item.houseNo != null and item.houseNo !=&quot;&quot;">
                    `house_no` = #{item.houseNo},
                </if>
                <if test="item.politicalOutlook != null">
                    `political_outlook` = #{item.politicalOutlook},
                </if>
                <if test="item.workCompany != null and item.workCompany !=&quot;&quot;">
                    `work_company` = #{item.workCompany},
                </if>
                <if test="item.specialSituation != null and item.specialSituation !=&quot;&quot;">
                    `special_situation` = #{item.specialSituation},
                </if>
                <if test="item.phone != null and item.phone !=&quot;&quot;">
                    `phone` = #{item.phone},
                </if>
                <if test="item.outOrLocal != null">
                    `out_or_local` = #{item.outOrLocal},
                </if>
                <if test="item.censusRegister != null and item.censusRegister !=&quot;&quot;">
                    `census_register` = #{item.censusRegister},
                </if>
                <if test="item.personType != null and item.personType !=&quot;&quot;">
                    `person_type` = #{item.personType},
                </if>
                <if test="item.country != null and item.country !=&quot;&quot;">
                    `country` = #{item.country},
                </if>
                <if test="item.dateOfDeparture != null">
                    `date_of_departure` = #{item.dateOfDeparture},
                </if>
                <if test="item.nativePlace != null and item.nativePlace !=&quot;&quot;">
                    `native_place` = #{item.nativePlace},
                </if>
                <if test="item.nationCode != null and item.nationCode !=&quot;&quot;">
                    `nation_code` = #{item.nationCode},
                </if>
                <if test="item.nation != null and item.nation !=&quot;&quot;">
                    `nation` = #{item.nation},
                </if>
                <if test="item.isRent != null">
                    `is_rent` = #{item.isRent},
                </if>
                <if test="item.cultureLevel != null">
                    `culture_level` = #{item.cultureLevel},
                </if>
                <if test="item.marriage != null">
                    `marriage` = #{item.marriage},
                </if>
                <if test="item.healthy != null and item.healthy !=&quot;&quot;">
                    `healthy` = #{item.healthy},
                </if>
                <if test="item.bloodType != null and item.bloodType !=&quot;&quot;">
                    `blood_type` = #{item.bloodType},
                </if>
                <if test="item.religion != null and item.religion !=&quot;&quot;">
                    `religion` = #{item.religion},
                </if>
                <if test="item.profession != null and item.profession !=&quot;&quot;">
                    `profession` = #{item.profession},
                </if>
                <if test="item.personStatus != null and item.personStatus !=&quot;&quot;">
                    `person_status` = #{item.personStatus},
                </if>
                <if test="item.death != null and item.death !=&quot;&quot;">
                    `death` = #{item.death},
                </if>
                <if test="item.headPortrait != null and item.headPortrait !=&quot;&quot;">
                    `head_portrait` = #{item.headPortrait},
                </if>
                <if test="item.monthlyIncome != null and item.monthlyIncome !=&quot;&quot;">
                    `monthly_income` = #{item.monthlyIncome},
                </if>
                <if test="item.familyStatus != null and item.familyStatus !=&quot;&quot;">
                    `family_status` = #{item.familyStatus},
                </if>
                <if test="item.birthday != null and item.birthday !=&quot;&quot;">
                    `birthday` = #{item.birthday},
                </if>
                <if test="item.goalInChina != null and item.goalInChina !=&quot;&quot;">
                    `goal_in_china` = #{item.goalInChina},
                </if>
                <if test="item.label != null and item.label !=&quot;&quot;">
                    `label` = #{item.label},
                </if>
                <if test="item.dateOfArrival != null">
                    `date_of_arrival` = #{item.dateOfArrival},
                </if>
                <if test="item.cardPhotoFront != null and item.cardPhotoFront !=&quot;&quot;">
                    `card_photo_front` = #{item.cardPhotoFront},
                </if>
                <if test="item.cardPhotoBack != null and item.cardPhotoBack !=&quot;&quot;">
                    `card_photo_back` = #{item.cardPhotoBack},
                </if>
                <if test="item.familyBook != null and item.familyBook !=&quot;&quot;">
                    `family_book` = #{item.familyBook},
                </if>
                <if test="item.deleteFlag != null">
                    `delete_flag` = #{item.deleteFlag},
                </if>
                <if test="item.remark != null and item.remark !=&quot;&quot;">
                    `remark` = #{item.remark},
                </if>
                <if test="item.residence != null and item.residence !=&quot;&quot;">
                    `residence` = #{item.residence},
                </if>
                <if test="item.address != null and item.address !=&quot;&quot;">
                    `address` = #{item.address},
                </if>
                <if test="item.houseId != null">
                    `house_id` = #{item.houseId},
                </if>
                `update_at` = NOW()
            </set>
            WHERE `id` = #{item.id}
        </foreach>
        ;
    </update>
</mapper>
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>