From 0590944f5d4a4f93af2a4c9241f0e154a9f41c08 Mon Sep 17 00:00:00 2001
From: manailin <261030956@qq.com>
Date: 星期二, 23 十一月 2021 17:05:45 +0800
Subject: [PATCH] Merge branch 'test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into test
---
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java | 220 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 220 insertions(+), 0 deletions(-)
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java
new file mode 100644
index 0000000..47a4947
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java
@@ -0,0 +1,220 @@
+package com.panzhihua.common.utlis;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.xml.bind.DatatypeConverter;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+public class HomeQuarantineUtil {
+ /**
+ * 数据转换--登记明细用户填写答案导出数据格式转换
+ *
+ * @param answerContentVOList 用户答题记录
+ * @return 用户填写答案数据
+ */
+ public static List<List<Object>> ReserveData(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+ //结果数据集合
+ List<List<Object>> resultList = new ArrayList<>();
+ //构建单个用户数据
+ List<Object> userData = new ArrayList<>();
+
+ String noExport = "以上信息仅用于";
+ //遍历答案列表
+ Long reserveRecordId = 0L;
+ Long reserveSubId = 0L;
+ Integer count=0;
+ StringBuffer conditions=new StringBuffer();
+ Boolean isOldDuo = false;
+ StringBuffer sb = new StringBuffer();
+ if (answerContentVOList != null && answerContentVOList.size() > 0) {
+ for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+ if(count%16==0){
+ conditions.append(DateUtils.format(userAnswers.getTime(),new SimpleDateFormat("yyyy-MM-dd")) +" "+"上午体温"+userAnswers.getAnswerContent()+"℃"+"\n");
+ count++;
+ continue;
+ }
+ if(count%16==1){
+ conditions.append(DateUtils.format(userAnswers.getTime(),new SimpleDateFormat("yyyy-MM-dd"))+" "+"下午体温"+userAnswers.getAnswerContent()+"℃"+"\n");
+ count++;
+ continue;
+ }
+ if(count%16==2){
+ conditions.append(DateUtils.format(userAnswers.getTime(),new SimpleDateFormat("yyyy-MM-dd"))+" "+"当日隔离情况:"+userAnswers.getAnswerContent()+"\n");
+ conditions.append("————————"+"\n");
+ count++;
+ continue;
+ }
+ count++;
+ //判断是文字描述直接跳过
+ 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;
+ }
+ for(List<Object> result:resultList){
+ if(result.get(4).equals(userData.get(4))){
+ String condition=result.get(result.size()-1)+userData.get(userData.size()-1).toString();
+ result.set(result.size()-1,condition);
+ userData.set(userData.size()-1,null);
+ break;
+ }
+ }
+ if(userData.get(userData.size()-1)!=null){
+ 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 {
+ userData.add(new URL(userAnswers.getAnswerContent()));
+ }catch (Exception e){
+ userData.add(" ");
+ 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 {
+ userData.add(new URL(userAnswers.getAnswerContent()));
+ }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(count%16==0){
+ userData.add(conditions.toString());
+ conditions=new StringBuffer();
+ }
+ }
+ if(isOldDuo){
+ String answer = sb.toString();
+ userData.add(answer.substring(0, answer.length() - 1));
+ }
+ for(List<Object> result:resultList){
+ if(result.get(4).equals(userData.get(4))){
+ String condition=result.get(result.size()-1)+userData.get(userData.size()-1).toString();
+ result.set(result.size()-1,condition);
+ userData.set(userData.size()-1,null);
+ break;
+ }
+ }
+ if(userData.get(userData.size()-1)!=null){
+ resultList.add(userData);
+ }
+ }
+ return resultList;
+ }
+}
--
Gitblit v1.7.1