package com.panzhihua.common.utlis;
|
|
import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.net.URL;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* @author lyq
|
* 前端H5组件库工具类
|
*/
|
@Slf4j
|
public class AssemblyUtils {
|
|
/**
|
* 数据转换--登记明细用户填写答案导出数据格式转换
|
*
|
* @param answerContentVOList 用户答题记录
|
* @return 用户填写答案数据
|
*/
|
public static List<List<Object>> ReserveData(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
|
//结果数据集合
|
List<List<Object>> resultList = new ArrayList<>();
|
//构建单个用户数据
|
List<Object> userData = new ArrayList<>();
|
//遍历答案列表
|
Long reserveRecordId = 0L;
|
Long reserveSubId = 0L;
|
Boolean isOldDuo = false;
|
StringBuffer sb = new StringBuffer();
|
if (answerContentVOList != null && answerContentVOList.size() > 0) {
|
for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
|
//判断是文字描述直接跳过
|
if (userAnswers.getOptionType().equals(5) || userAnswers.getOptionType().equals(11)) {
|
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(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(1)){
|
isOldDuo = true;
|
sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
|
continue;
|
}else{
|
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(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(1)){
|
isOldDuo = true;
|
sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
|
continue;
|
}else{
|
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;
|
}
|
}
|