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