springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -76,7 +76,7 @@ stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE); stringEntity.setContentType(HttpConstant.APPLICATION_JSON); httpPost.setEntity(stringEntity); log.info("请求{}接口的参数为{}", url, jsonParam); // log.info("请求{}接口的参数为{}", url, jsonParam); // 执行发送,获取相应结果 httpResponse = httpClient.execute(httpPost); httpEntity = httpResponse.getEntity(); @@ -99,7 +99,7 @@ } // 请求接口的响应时间 endTime = System.currentTimeMillis(); log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime)); // log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime)); return result; } springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
@@ -56,7 +56,7 @@ BufferedReader in = null; try { String urlNameString = url + "?" + param; log.info("sendGet - {}", urlNameString); // log.info("sendGet - {}", urlNameString); URL realUrl = new URL(urlNameString); URLConnection connection = realUrl.openConnection(); connection.setRequestProperty("accept", "*/*"); @@ -68,7 +68,7 @@ while ((line = in.readLine()) != null) { result.append(line); } log.info("recv - {}", result); // log.info("recv - {}", result); } catch (ConnectException e) { log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e); } catch (SocketTimeoutException e) { springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -3,12 +3,14 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.net.URL; import java.text.SimpleDateFormat; import java.util.*; import javax.annotation.Resource; import com.panzhihua.common.utlis.DateUtils; import com.panzhihua.common.utlis.StringUtils; import org.springframework.web.bind.annotation.*; import com.alibaba.excel.EasyExcel; @@ -173,7 +175,7 @@ String firstRowContent = "调查结果"; List<String> head0 = new ArrayList<>(); head0.add(firstRowContent); head0.add("姓名"); head0.add("调查人昵称"); headList.add(head0); List<String> head1 = new ArrayList<>(); head1.add(firstRowContent); @@ -182,53 +184,14 @@ subVOList.forEach(sub -> { List<String> headn = new ArrayList<>(); headn.add(firstRowContent); headn.add(sub.getContent()); if(sub.getType() == 11){ headn.add(sub.getContent().substring(0, sub.getContent().indexOf("("))); }else{ headn.add(sub.getContent()); } headList.add(headn); }); List<List<Object>> datalist = new ArrayList<>(); List<ComActQuestnaireAnswerContentVO> answerContentVOList = questnaireAnswersDTOS.getAnswers(); if (answerContentVOList != null && answerContentVOList.size() > 0) { List<Object> userData = new ArrayList<>(); List<ComActQuestnaireAnswerContentVO> usersAnswers = questnaireAnswersDTOS.getAnswers(); //查询用户回答的所有答案,并新增到答案列表中 Long reserveRecordId = null; StringBuffer sb = new StringBuffer(); Boolean isDX = false; for (ComActQuestnaireAnswerContentVO userAnswers:usersAnswers) { if(reserveRecordId == null){ reserveRecordId = userAnswers.getReserveRecordId(); userData.add(userAnswers.getNickName()); userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format)); } if(!reserveRecordId.equals(userAnswers.getReserveRecordId())){ if(isDX){ String answer = sb.toString(); userData.add(answer.substring(0,answer.length()-1)); sb = new StringBuffer(); isDX = false; } datalist.add(userData); userData = new ArrayList<>(); reserveRecordId = userAnswers.getReserveRecordId(); userData.add(userAnswers.getNickName()); userData.add(DateUtils.format(userAnswers.getTime(),DateUtils.ymdhms_format)); } //判断是否是多选框 if(userAnswers.getOptionType().equals(1)){ isDX = true; sb.append(userAnswers.getAnswerContent() + ","); continue; } userData.add(userAnswers.getAnswerContent()); } if(isDX){ String answer = sb.toString(); userData.add(answer.substring(0,answer.length()-1)); } datalist.add(userData); } List<List<Object>> datalist = dataList(questnaireAnswersDTOS.getAnswers()); WriteCellStyle headWriteCellStyle = new WriteCellStyle(); WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); @@ -346,4 +309,90 @@ return communityService.statisticsSummaryHeader(questId, loginUserInfo.getCommunityId()); } /** * 数据转换 * @param answerContentVOList 用户问答列表数据 * @return 调查问卷需要导出数据 */ private List<List<Object>> dataList(List<ComActQuestnaireAnswerContentVO> answerContentVOList) { //结果数据集合 List<List<Object>> resultList = new ArrayList<>(); //构建单个用户数据 List<Object> userData = new ArrayList<>(); //遍历答案列表 Long reserveRecordId = 0L; Long reserveSubId = 0L; StringBuffer sb = new StringBuffer(); if (answerContentVOList != null && answerContentVOList.size() > 0) { for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) { //判断是文字描述直接跳过 if (userAnswers.getOptionType().equals(5)) { 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; 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; } 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; } sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ","); String answer = sb.toString(); userData.add(answer.substring(0, answer.length() - 1)); sb = new StringBuffer(); } } } resultList.add(userData); } return resultList; } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -41,10 +41,6 @@ * @param questId * 问卷ID */ // @Select("<script> " + "SELECT ac.* \n" // + "FROM com_act_questnaire_answer_content ac left JOIN com_act_questnaire_sub qs ON ac.sub_id = qs.id \n" // + " LEFT JOIN com_act_questnaire qn ON qs.que_Id = qn.id \n" + "WHERE qn.id=#{questId}\n" // + "ORDER BY ac.user_id, qs.id " + "</script>") List<ComActQuestnaireAnswerContentVO> selectListByQuestnaire(@Param("questId") Long questId); /** springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
@@ -22,7 +22,7 @@ /** * 类型 0 单选 1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择 */ private int type; private Integer type; /** * 题目内容 */ @@ -41,4 +41,22 @@ */ @TableField("`key`") private String key; /** * 类型 0 单选 1 多选 2 输入框 3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11图片上传 */ public interface type { int danxuan = 0; int duoxuan = 1; int wenda = 2; int phone = 3; int card = 4; int describe = 5; int date = 6; int time = 7; int input = 8; int name = 9; int imgselect = 10; int imgopload = 11; } } springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -481,9 +481,11 @@ new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)); List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>(); list.forEach(subDo -> { ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); BeanUtils.copyProperties(subDo, comActQuestnaireSubVO); listSubVo.add(comActQuestnaireSubVO); if(!subDo.getType().equals(ComActQuestnaireSubDO.type.describe)){ ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO(); BeanUtils.copyProperties(subDo, comActQuestnaireSubVO); listSubVo.add(comActQuestnaireSubVO); } }); questnaireAnswersDTO.setSubs(listSubVo); /** springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml
@@ -25,19 +25,24 @@ <select id="selectListByQuestnaire" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO"> SELECT qs.type AS optionType, ac.answer_id as reserveRecordId, ac.answer_content, caqs.type AS optionType, caqac.answer_id as reserveRecordId, caqac.sub_id as reserveSubId, caqac.answer_content, caqac.type, caqac.id, su.nick_name, carr.create_at AS `time` caqua.create_at AS `time` FROM com_act_questnaire_answer_content ac LEFT JOIN com_act_questnaire_sub qs ON ac.sub_id = qs.id LEFT JOIN com_act_questnaire qn ON qs.que_Id = qn.id LEFT JOIN sys_user su ON ac.user_id = su.user_id LEFT JOIN com_act_questnaire_user_answer carr ON carr.id = ac.answer_id com_act_questnaire_answer_content caqac LEFT JOIN com_act_questnaire_sub caqs ON caqac.selection_id = caqs.id LEFT JOIN com_act_questnaire caq ON caqs.que_Id = caq.id LEFT JOIN sys_user su ON caqac.user_id = su.user_id LEFT JOIN com_act_questnaire_user_answer caqua ON caqua.id = caqac.answer_id WHERE qn.id = #{questId} caq.id = #{questId} ORDER BY caqac.id ASC </select> </mapper>