From fc70fad3cf843e6d2523c38fdd65fc48037f5fb6 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期一, 22 八月 2022 15:41:12 +0800
Subject: [PATCH] bug修改

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java |  273 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 269 insertions(+), 4 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java
index eb24549..8e2fda9 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java
@@ -3,9 +3,16 @@
 import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
 import lombok.extern.slf4j.Slf4j;
 
+import javax.imageio.ImageIO;
+import javax.xml.bind.DatatypeConverter;
+import java.awt.image.BufferedImage;
+import java.io.*;
 import java.net.URL;
+import java.nio.file.Files;
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * @author lyq
@@ -26,16 +33,21 @@
         //构建单个用户数据
         List<Object> userData = new ArrayList<>();
 
-        String noExport = "以上信息仅用于疫苗防控";
+        String noExport = "本人对信息内容";
         //遍历答案列表
         Long reserveRecordId = 0L;
         Long reserveSubId = 0L;
         Boolean isOldDuo = false;
         StringBuffer sb = new StringBuffer();
         if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            int a=0;
             for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                a++;
+                if(answerContentVOList.size()==26&&a==9){
+                   userData.add(" ");
+                }
                 //判断是文字描述直接跳过
-                if (userAnswers.getOptionType().equals(5) || userAnswers.getOptionType().equals(11)
+                if (userAnswers.getOptionType().equals(5)
                         || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) {
                     continue;
                 }
@@ -82,7 +94,36 @@
                         if(userAnswers.getOptionType().equals(11)){
                             reserveSubId = userAnswers.getReserveSubId();
                             try {
-                                userData.add(new URL(userAnswers.getAnswerContent()));
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                e.printStackTrace();
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
                             }catch (Exception e){
                                 userData.add(" ");
                                 log.error("导出转换图片失败!");
@@ -115,7 +156,231 @@
                         if(userAnswers.getOptionType().equals(11)){
                             reserveSubId = userAnswers.getReserveSubId();
                             try {
-                                userData.add(new URL(userAnswers.getAnswerContent()));
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                //userData.add(new URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+            }
+            if(isOldDuo){
+                String answer = sb.toString();
+                userData.add(answer.substring(0, answer.length() - 1));
+            }
+            resultList.add(userData);
+        }
+        return resultList;
+    }
+
+    public static List<List<Object>> ReserveDataNoImage(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        //构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+
+        String noExport = "以上信息仅用于";
+        //遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        Boolean isOldDuo = false;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            int a=0;
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                a++;
+                if(answerContentVOList.size()==26&&a==9){
+                    userData.add(" ");
+                }
+                //判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5) ||userAnswers.getOptionType().equals(11)
+                        || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) {
+                    continue;
+                }
+                //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是
+                if (reserveRecordId.equals(0L)) {
+                    reserveRecordId = userAnswers.getReserveRecordId();
+                    userData.add(userAnswers.getNickName());
+                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
+                }
+                //根据reserveRecordId判断是否是第二条填报记录
+                if (!reserveRecordId.equals(userAnswers.getReserveRecordId())) {
+                    reserveSubId = 0L;
+
+                    if(isOldDuo){
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                        isOldDuo = false;
+                    }
+                    resultList.add(userData);
+                    userData = new ArrayList<>();
+                    reserveRecordId = userAnswers.getReserveRecordId();
+                    userData.add(userAnswers.getNickName());
+                    userData.add(DateUtils.format(userAnswers.getTime(), DateUtils.ymdhms_format));
+                    if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                        userData.add(userAnswers.getAnswerContent());
+                    }else{
+                        userData.add(" ");
+                    }
+                }else{
+                    if(reserveSubId.equals(0L)){
+                        reserveSubId = userAnswers.getReserveSubId();
+                    }
+
+                    if(!reserveSubId.equals(userAnswers.getReserveSubId())){
+                        reserveSubId = userAnswers.getReserveSubId();
+
+                        //如果是承诺字段则不导出
+                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                e.printStackTrace();
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }else{
+                        //如果是承诺字段则不导出
+                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                //userData.add(new URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
                             }catch (Exception e){
                                 userData.add(" ");
                                 log.error("导出转换图片失败!");

--
Gitblit v1.7.1