| | |
| | | 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 |
| | |
| | | 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)) { |
| | | if (userAnswers.getOptionType().equals(5) |
| | | || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) { |
| | | continue; |
| | | } |
| | | //判断reserveRecordId为空则为第一条记录,默认加上昵称和灯谜是 |
| | |
| | | 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 { |
| | | 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("导出转换图片失败!"); |
| | |
| | | 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 { |
| | | 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("导出转换图片失败!"); |