From c978d5355ae21d983dbd9129e4889938e9ea05f5 Mon Sep 17 00:00:00 2001
From: puhanshu <a9236326>
Date: 星期四, 18 十一月 2021 09:51:32 +0800
Subject: [PATCH] 居家隔离修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java               |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java |   80 +++++++
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java                           |  390 +++++++++++++++++----------------------
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java                                       |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java          |    6 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml                                        |   32 +++
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java                               |   10 +
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java           |   40 ++++
 8 files changed, 341 insertions(+), 229 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java
new file mode 100644
index 0000000..897f283
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: HomeQuarantineRegisterStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 居家隔离统计信息
+ * @author: hans
+ * @date: 2021/11/17 15:25
+ */
+@Data
+@ApiModel("居家隔离统计信息")
+public class HomeQuarantineRegisterStatisticsVO {
+
+    @ApiModelProperty("记录id")
+    private Long id;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("用户昵称")
+    private String reserveSubContent;
+
+    @ApiModelProperty("用户昵称")
+    private String answerContent;
+
+    @ApiModelProperty("题目id")
+    private Long reserveSubId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
index 92bc752..7754166 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -7192,4 +7192,12 @@
      */
     @GetMapping("/activity/my-evaluate")
     R listMyActivityEvaluate(@RequestParam("userId") Long userId, @RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @PostMapping("/reserve/admin/register/homeQuarantine/page")
+    R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
index a455cee..ae7c757 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
@@ -1,5 +1,23 @@
 package com.panzhihua.community_backstage.api;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.ExcelWriter;
 import com.alibaba.excel.write.metadata.WriteSheet;
@@ -12,38 +30,47 @@
 import com.panzhihua.common.controller.BaseController;
 import com.panzhihua.common.enums.ReserveRecordStatusEnum;
 import com.panzhihua.common.model.dtos.community.QuestnaireAnswersDTO;
-import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.dtos.community.reserve.AddReserveAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.CancelReserveRecordDTO;
+import com.panzhihua.common.model.dtos.community.reserve.ComActReserveMakeStatisticsDTO;
+import com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO;
+import com.panzhihua.common.model.dtos.community.reserve.EditComActReserveInfoDTO;
+import com.panzhihua.common.model.dtos.community.reserve.EditComActReserveStatusDTO;
+import com.panzhihua.common.model.dtos.community.reserve.EditReserveAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.MakeHandleAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO;
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
 import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
-import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
-import com.panzhihua.common.model.vos.community.ComMngPopulationExcelVo;
-import com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryExcelAdminVO;
-import com.panzhihua.common.model.vos.community.reserve.*;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeDetailAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeDetailedExcelAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleExcelAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleListAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeListAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightExcelAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeStatisticsAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterExcelAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterStatisticsAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveSubListVO;
 import com.panzhihua.common.service.community.CommunityService;
 import com.panzhihua.common.service.user.UserService;
-import com.panzhihua.common.utlis.*;
+import com.panzhihua.common.utlis.AssemblyUtils;
+import com.panzhihua.common.utlis.HomeQuarantineUtil;
+import com.panzhihua.common.utlis.SFTPUtil;
 import com.panzhihua.community_backstage.config.SFTPConfig;
 import com.panzhihua.community_backstage.excel.CustemSecondhandler;
 import com.panzhihua.community_backstage.excel.Custemhandler;
 import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.VerticalAlignment;
-import org.springframework.beans.BeanUtils;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URL;
-import java.text.SimpleDateFormat;
-import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @description: 预约登记接口
@@ -467,198 +494,6 @@
     @ApiOperation(value = "导出登记明细")
     @PostMapping("/register/list/export")
     public R exportRegister(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
-        String name="";
-        R r=communityService.detailReserveAdmin(pageReserveRegisterDetailedAdminDTO.getReserveId());
-        ComActReserveDetailAdminVO comActReserveDetailAdminVO=JSON.parseObject(JSON.toJSONString(r.getData()),ComActReserveDetailAdminVO.class);
-        if(comActReserveDetailAdminVO.getTitle().contains("居家隔离")){
-            name = "居家隔离导出数据.xlsx";
-        }
-        else {
-            name = "登记明细导出数据.xlsx";
-        }
-        String ftpUrl = "/mnt/data/web/excel/";
-        String noHaed = "承诺";
-        List<List<Object>> datalist=new ArrayList<>();
-        try {
-            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
-            sftp.login();
-            boolean existDir = sftp.isExistDir(ftpUrl + name);
-            if (!existDir) {
-                String property = System.getProperty("user.dir");
-                String fileName = property + File.separator + name;
-                ExcelWriter excelWriter = null;
-                InputStream inputStream = null;
-                try {
-                    /**
-                     * 组合导出数据
-                     * 用户问卷答案
-                     */
-                    R QuestnaireAnswersDTOR = communityService.exportRegisterAdmin(pageReserveRegisterDetailedAdminDTO);
-                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON.parseObject(JSON.toJSONString(QuestnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
-                    List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
-                    //构造表头
-                    List<List<String>> headList = new ArrayList<List<String>>();
-                    if(comActReserveDetailAdminVO.getTitle().contains("居家隔离")){
-                        String firstRowContent = "重点地区或高风险地区来攀返攀人员信息统计表(居家隔离表)";
-                        List<String> head0 = new ArrayList<>();
-                        head0.add(firstRowContent);
-                        head0.add("登记人昵称");
-                        headList.add(head0);
-                        List<String> head1 = new ArrayList<>();
-                        head1.add(firstRowContent);
-                        head1.add("登记时间");
-                        headList.add(head1);
-                        subVOList.forEach(sub -> {
-                            if (sub.getType() != 5 && sub.getType() != 11&&!sub.getContent().contains("今日上午")&&!sub.getContent().contains("今日下午")&&!sub.getContent().contains("今日隔离情况")) {
-                                List<String> headn = new ArrayList<>();
-                                headn.add(firstRowContent);
-                                if(!sub.getContent().equals(noHaed)){
-                                    if(sub.getType() == 11){
-                                        headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
-                                    }else{
-                                        headn.add(sub.getContent());
-                                    }
-                                    headList.add(headn);
-                                }
-                            }
-                        });
-                        List<String> head2 = new ArrayList<>();
-                        head2.add(firstRowContent);
-                        head2.add("隔离体温情况");
-                        headList.add(head2);
-                        //数据转换
-                        datalist = HomeQuarantineUtil.ReserveData(questnaireAnswersDTOS.getAnswers());
-                        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
-                        //设置头居中
-                        headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
-                        //设置头字体
-                        WriteFont headWriteFont = new WriteFont();
-                        headWriteFont.setFontHeightInPoints((short)6);
-                        headWriteFont.setBold(true);
-                        headWriteCellStyle.setWriteFont(headWriteFont);
-
-
-                        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
-                        //设置表格内容字体
-                        WriteFont writeFont = new WriteFont();
-                        writeFont.setFontHeightInPoints((short)6);
-                        //设置 水平居中
-                        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
-                        //设置 垂直居中
-                        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
-                        contentWriteCellStyle.setWriteFont(writeFont);
-
-                        contentWriteCellStyle.setWrapped(true);
-                        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
-                                new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
-
-
-                        excelWriter = EasyExcel.write(fileName)
-                                .registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new CustemSecondhandler())
-                                .build();
-                        WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").head(headList).build();
-                        excelWriter.write(datalist, writeSheet);
-                        excelWriter.finish();
-                        File file = new File(fileName);
-                        inputStream = new FileInputStream(file);
-                        sftp.uploadMore(ftpUrl, name, inputStream);
-                        sftp.logout();
-                        inputStream.close();
-                        String absolutePath = file.getAbsolutePath();
-                        boolean delete = file.delete();
-                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
-                    }
-                    else {
-                        String firstRowContent = "登记明细";
-                        List<String> head0 = new ArrayList<>();
-                        head0.add(firstRowContent);
-                        head0.add("登记人昵称");
-                        headList.add(head0);
-                        List<String> head1 = new ArrayList<>();
-                        head1.add(firstRowContent);
-                        head1.add("登记时间");
-                        headList.add(head1);
-                        subVOList.forEach(sub -> {
-                            if (sub.getType() != 5 && sub.getType() != 11) {
-                                List<String> headn = new ArrayList<>();
-                                headn.add(firstRowContent);
-                                if(!sub.getContent().equals(noHaed)){
-                                    if(sub.getType() == 11){
-                                        headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
-                                    }else{
-                                        headn.add(sub.getContent());
-                                    }
-                                    headList.add(headn);
-                                }
-                            }
-                        });
-                        //数据转换
-                        datalist = AssemblyUtils.ReserveData(questnaireAnswersDTOS.getAnswers());
-                        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
-                        //设置头居中
-                        headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
-                        //设置头字体
-                        WriteFont headWriteFont = new WriteFont();
-                        headWriteFont.setFontHeightInPoints((short)6);
-                        headWriteFont.setBold(true);
-                        headWriteCellStyle.setWriteFont(headWriteFont);
-
-
-                        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
-                        //设置表格内容字体
-                        WriteFont writeFont = new WriteFont();
-                        writeFont.setFontHeightInPoints((short)6);
-                        //设置 水平居中
-                        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
-                        //设置 垂直居中
-                        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
-                        contentWriteCellStyle.setWriteFont(writeFont);
-
-                        contentWriteCellStyle.setWrapped(true);
-                        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
-                                new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
-
-
-                        excelWriter = EasyExcel.write(fileName)
-                                .registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new Custemhandler())
-                                .build();
-                        WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").head(headList).build();
-                        excelWriter.write(datalist, writeSheet);
-                        excelWriter.finish();
-                        File file = new File(fileName);
-                        inputStream = new FileInputStream(file);
-                        sftp.uploadMore(ftpUrl, name, inputStream);
-                        sftp.logout();
-                        inputStream.close();
-                        String absolutePath = file.getAbsolutePath();
-                        boolean delete = file.delete();
-                        log.info("删除excel【{}】结果【{}】", absolutePath, delete);
-                    }
-
-
-
-                } finally {
-                    // 千万别忘记finish 会帮忙关闭流
-                    if (inputStream != null) {
-                        inputStream.close();
-                    }
-                    if (excelWriter != null) {
-                        excelWriter.finish();
-                    }
-                }
-            }
-            return R.ok(sftpConfig.getExcelUrl() + name);
-        } catch (Exception e) {
-            e.printStackTrace();
-            log.error("文件传输失败【{}】", e.getMessage());
-            return R.fail();
-        }
-    }
-
-    @ApiOperation(value = "导出登记明细")
-    @PostMapping("/register/list/export/homeQuarantine")
-    public R exportRegisterHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
-
         String ftpUrl = "/mnt/data/web/excel/";
         String name = "登记明细导出数据.xlsx";
         String noHaed = "承诺";
@@ -682,7 +517,7 @@
                     List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
                     //构造表头
                     List<List<String>> headList = new ArrayList<List<String>>();
-                    String firstRowContent = "重点地区或高风险地区来攀返攀人员信息统计表(居家隔离表)";
+                    String firstRowContent = "登记明细";
                     List<String> head0 = new ArrayList<>();
                     head0.add(firstRowContent);
                     head0.add("登记人昵称");
@@ -692,7 +527,7 @@
                     head1.add("登记时间");
                     headList.add(head1);
                     subVOList.forEach(sub -> {
-                        if (sub.getType() != 5 && sub.getType() != 11&&!sub.getContent().contains("今日上午")&&!sub.getContent().contains("今日下午")&&!sub.getContent().contains("今日隔离情况")) {
+                        if (sub.getType() != 5 && sub.getType() != 11) {
                             List<String> headn = new ArrayList<>();
                             headn.add(firstRowContent);
                             if(!sub.getContent().equals(noHaed)){
@@ -705,12 +540,8 @@
                             }
                         }
                     });
-                    List<String> head2 = new ArrayList<>();
-                    head2.add(firstRowContent);
-                    head2.add("隔离体温情况");
-                    headList.add(head2);
                     //数据转换
-                    List<List<Object>> datalist = HomeQuarantineUtil.ReserveData(questnaireAnswersDTOS.getAnswers());
+                    List<List<Object>> datalist = AssemblyUtils.ReserveData(questnaireAnswersDTOS.getAnswers());
 
                     WriteCellStyle headWriteCellStyle = new WriteCellStyle();
                     //设置头居中
@@ -739,7 +570,7 @@
 
                     excelWriter = EasyExcel.write(fileName)
                             .registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new Custemhandler())
-                            .build();
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
                     WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").head(headList).build();
                     excelWriter.write(datalist, writeSheet);
                     excelWriter.finish();
@@ -769,6 +600,125 @@
         }
     }
 
+    @ApiOperation(value = "导出居家隔离统计")
+    @PostMapping("/register/list/export/homeQuarantine")
+    public R exportRegisterHomeQuarantineStatistics(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
+        String name= "居家隔离统计表.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        String noHaed = "承诺";
+        List<List<Object>> datalist = new ArrayList<>();
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    /**
+                     * 组合导出数据
+                     * 用户问卷答案
+                     */
+                    R questnaireAnswersDTOR = communityService.exportRegisterAdmin(pageReserveRegisterDetailedAdminDTO);
+                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON.parseObject(JSON.toJSONString(questnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
+                    List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
+                    //构造表头
+                    List<List<String>> headList = new ArrayList<List<String>>();
+                    String firstRowContent = "重点地区或高风险地区来攀返攀人员信息统计表(居家隔离表)";
+                    List<String> head0 = new ArrayList<>();
+                    head0.add(firstRowContent);
+                    head0.add("登记人昵称");
+                    headList.add(head0);
+                    List<String> head1 = new ArrayList<>();
+                    head1.add(firstRowContent);
+                    head1.add("登记时间");
+                    headList.add(head1);
+                    subVOList.forEach(sub -> {
+                        if (sub.getType() != 5 && sub.getType() != 11 && !sub.getContent().contains("今日上午") &&
+                                !sub.getContent().contains("今日下午") && !sub.getContent().contains("今日隔离情况")) {
+                            List<String> headn = new ArrayList<>();
+                            headn.add(firstRowContent);
+                            if(!sub.getContent().equals(noHaed)){
+                                if(sub.getType() == 11){
+                                    headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
+                                }else{
+                                    headn.add(sub.getContent());
+                                }
+                                headList.add(headn);
+                            }
+                        }
+                    });
+                    List<String> head2 = new ArrayList<>();
+                    head2.add(firstRowContent);
+                    head2.add("隔离体温情况");
+                    headList.add(head2);
+                    //数据转换
+                    datalist = HomeQuarantineUtil.ReserveData(questnaireAnswersDTOS.getAnswers());
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    //设置头居中
+                    headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    //设置头字体
+                    WriteFont headWriteFont = new WriteFont();
+                    headWriteFont.setFontHeightInPoints((short)6);
+                    headWriteFont.setBold(true);
+                    headWriteCellStyle.setWriteFont(headWriteFont);
+
+
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+                    //设置表格内容字体
+                    WriteFont writeFont = new WriteFont();
+                    writeFont.setFontHeightInPoints((short)6);
+                    //设置 水平居中
+                    contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+                    //设置 垂直居中
+                    contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+                    contentWriteCellStyle.setWriteFont(writeFont);
+
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+
+                    excelWriter = EasyExcel.write(fileName)
+                            .registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new CustemSecondhandler())
+                            .build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("居家隔离统计表").head(headList).build();
+                    excelWriter.write(datalist, writeSheet);
+                    excelWriter.finish();
+                    File file = new File(fileName);
+                    inputStream = new FileInputStream(file);
+                    sftp.uploadMore(ftpUrl, name, inputStream);
+                    sftp.logout();
+                    inputStream.close();
+                    String absolutePath = file.getAbsolutePath();
+                    boolean delete = file.delete();
+                    log.info("删除excel【{}】结果【{}】", absolutePath, delete);
+                } finally {
+                    // 千万别忘记finish 会帮忙关闭流
+                    if (inputStream != null) {
+                        inputStream.close();
+                    }
+                    if (excelWriter != null) {
+                        excelWriter.finish();
+                    }
+                }
+            }
+            return R.ok(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "分页查询居家隔离统计", response = ComActReserveRegisterDetailedVO.class)
+    @PostMapping("/register/homeQuarantine/page")
+    public R pageRegisterHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        return communityService.pageRegisterHomeQuarantine(detailedAdminDTO);
+    }
+
     @ApiOperation(value = "查询题目列表", response = ComActReserveSubListVO.class)
     @GetMapping("/subject/list")
     public R subjectList(@RequestParam("reserveId") Long reserveId) {
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
index c87f0d2..aeb1aa0 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
@@ -322,4 +322,14 @@
     public R list(@RequestParam("communityId") Long communityId){
         return comActReserveService.reserveListApplets(communityId);
     }
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @PostMapping("/admin/register/homeQuarantine/page")
+    public R pageRegisterHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        return comActReserveAnswerContentService.pageRegisterHomeQuarantine(detailedAdminDTO);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
index e93c132..771980f 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
@@ -7,6 +7,7 @@
 import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
 import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO;
 import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import com.panzhihua.common.model.vos.community.reserve.HomeQuarantineRegisterStatisticsVO;
 import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -50,4 +51,7 @@
 
     ComActReserveRegisterDetailedVO getRegisterDetailedById(@Param("reserveRecordId") Long reserveRecordId);
 
+    IPage<String> pageRegisterHomeQuarantine(@Param("page") Page page, @Param("detailedAdminDTO") PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    List<HomeQuarantineRegisterStatisticsVO> selectStatistics(@Param("reserveId") Long reserveId, @Param("record") String record);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java
index 3862b6c..0b15e0c 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java
@@ -26,4 +26,10 @@
      */
     R registerDetailedListAdmin(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
 
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
index 2ff22c4..4bd1922 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
@@ -1,5 +1,15 @@
 package com.panzhihua.service_community.service.impl;
 
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,25 +19,18 @@
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
 import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
-import com.panzhihua.common.model.vos.community.reserve.ComActReserveRecordListVO;
 import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO;
 import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import com.panzhihua.common.model.vos.community.reserve.HomeQuarantineRegisterStatisticsVO;
 import com.panzhihua.common.utlis.DateUtils;
 import com.panzhihua.common.utlis.StringUtils;
 import com.panzhihua.service_community.dao.ComActReserveAnswerContentMapper;
 import com.panzhihua.service_community.dao.ComActReserveSubMapper;
-import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO;
-import com.panzhihua.service_community.model.dos.ComActQuestnaireSubDO;
 import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
 import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
 import com.panzhihua.service_community.service.ComActReserveAnswerContentService;
-import com.panzhihua.service_community.service.ComActReserveSubService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.stereotype.Service;
 
-import javax.annotation.Resource;
-import java.util.*;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @auther lyq
@@ -125,4 +128,63 @@
         resultPage.setRecords(resultMapList);
         return R.ok(resultPage);
     }
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @Override
+    public R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        IPage<HashMap<String,String>> resultPage = new Page<>();
+
+        Page page = new Page(detailedAdminDTO.getPageNum(), detailedAdminDTO.getPageSize());
+        IPage<String> statisticsVOIPage = this.baseMapper.pageRegisterHomeQuarantine(page, detailedAdminDTO);
+
+        resultPage.setCurrent(statisticsVOIPage.getCurrent());
+        resultPage.setTotal(statisticsVOIPage.getTotal());
+        resultPage.setSize(statisticsVOIPage.getSize());
+        resultPage.setPages(statisticsVOIPage.getPages());
+
+        List<String> records = statisticsVOIPage.getRecords();
+        List<HashMap<String,String>> resultMapList = new ArrayList<>();
+        if (!records.isEmpty()) {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            int nub = 1;
+            for (String record : records) {
+                //渲染序号
+                HashMap<String,String> map = new HashMap<>();
+                map.put("nub", nub + "");
+                List<HomeQuarantineRegisterStatisticsVO> statisticsList = this.baseMapper.selectStatistics(detailedAdminDTO.getReserveId(), record);
+                StringBuffer conditions = new StringBuffer();
+                statisticsList.forEach(e -> {
+                    //渲染登记时间
+                    map.put("time", DateUtils.format(e.getCreateAt(), DateUtils.ymdhms_format));
+                    String reserveSubContent = e.getReserveSubContent();
+                    String dateString = dateFormat.format(e.getCreateAt());
+                    if (reserveSubContent.contains("上午体温")) {
+                        if (conditions.indexOf(dateString + " " + "上午体温") == -1) {
+                            conditions.append(dateString + " " + "上午体温:" + e.getAnswerContent() + "℃" + "\n");
+                        }
+                    } else if (reserveSubContent.contains("下午体温")) {
+                        if (conditions.indexOf(dateString + " " + "下午体温") == -1) {
+                            conditions.append(dateString + " " + "下午体温:" + e.getAnswerContent() + "℃" + "\n");
+                        }
+                    } else if (reserveSubContent.contains("隔离情况")) {
+                        if (conditions.indexOf(dateString + " " + "当日隔离情况") == -1) {
+                            conditions.append(dateString + " " + "当日隔离情况:" + e.getAnswerContent() + "\n");
+                            conditions.append("————————" + "\n");
+                        }
+                    } else {
+                        map.put(e.getReserveSubId() + "", e.getAnswerContent());
+                    }
+                });
+                map.put("isolation", conditions.toString());
+                resultMapList.add(map);
+                nub++;
+            }
+        }
+        resultPage.setRecords(resultMapList);
+        return R.ok(resultPage);
+    }
 }
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
index 6602f07..85cdc0e 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
@@ -138,4 +138,36 @@
         GROUP BY ac.id ) ac left join sys_user t on ac.user_id = t.user_id
         order by ac.reserve_record_id desc,ac.id asc
     </select>
+    <select id="pageRegisterHomeQuarantine" resultType="java.lang.String">
+        SELECT answer_content FROM (
+        SELECT carr.id, carac.answer_content
+        FROM com_act_reserve_record AS carr
+        LEFT JOIN com_act_reserve_answer_content carac ON carr.id=carac.reserve_record_id
+        LEFT JOIN com_act_reserve_sub t ON carac.reserve_sub_id = t.id
+        WHERE carr.reserve_id = #{detailedAdminDTO.reserveId} AND t.content LIKE '身份证%'
+        <if test='detailedAdminDTO.startTime != null and detailedAdminDTO.startTime != &quot;&quot;'>
+            AND carr.create_at <![CDATA[ >= ]]> #{detailedAdminDTO.startTime}
+        </if>
+        <if test='detailedAdminDTO.endTime != null and detailedAdminDTO.endTime != &quot;&quot;'>
+            AND carr.create_at <![CDATA[ <= ]]> #{detailedAdminDTO.endTime}
+        </if>
+        <if test="detailedAdminDTO.keyword!=null and detailedAdminDTO.keyword != &quot;&quot;">
+            AND carac.answer_content LIKE CONCAT (#{detailedAdminDTO.keyword},'%')
+        </if>
+        ORDER BY carr.id DESC LIMIT 9999999
+        ) temp GROUP BY answer_content ORDER BY id DESC
+    </select>
+    <select id="selectStatistics"
+            resultType="com.panzhihua.common.model.vos.community.reserve.HomeQuarantineRegisterStatisticsVO">
+        SELECT carr.id, carr.create_at, carac.reserve_record_id, car.content AS reserveSubContent,
+        carac.answer_content AS answerContent, carac.reserve_sub_id AS reserveSubId, car.`type`
+        FROM com_act_reserve_record AS carr
+        LEFT JOIN com_act_reserve_answer_content carac ON carr.id=carac.reserve_record_id
+        LEFT JOIN com_act_reserve_sub AS car ON carac.reserve_sub_id = car.id
+        WHERE carr.id IN (
+            SELECT t1.reserve_record_id FROM com_act_reserve_answer_content t1
+            LEFT JOIN com_act_reserve_record t2 ON t1.reserve_record_id = t2.id
+            WHERE t2.reserve_id = #{reserveId} AND t1.answer_content = #{record}
+        ) ORDER BY carr.id ASC
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.7.1