|
@@ -1,26 +1,38 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.QuestionnaireUserResultDto;
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
|
|
|
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
|
|
|
+import com.ym.mec.biz.dal.entity.QuestionnaireQuestionItem;
|
|
|
+import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
+import com.ym.mec.common.exception.BizException;
|
|
|
import com.ym.mec.common.page.PageInfo;
|
|
|
import com.ym.mec.common.page.QueryInfo;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.biz.dal.entity.QuestionnaireUserResult;
|
|
|
import com.ym.mec.biz.service.QuestionnaireUserResultService;
|
|
|
-import com.ym.mec.biz.dal.dao.QuestionnaireUserResultDao;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, QuestionnaireUserResult> implements QuestionnaireUserResultService {
|
|
|
|
|
|
@Autowired
|
|
|
private QuestionnaireUserResultDao questionnaireUserResultDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
|
|
|
+ @Autowired
|
|
|
+ private QuestionnaireQuestionDao questionnaireQuestionDao;
|
|
|
+ @Autowired
|
|
|
+ private TeacherDao teacherDao;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, QuestionnaireUserResult> getDAO() {
|
|
@@ -51,4 +63,69 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
|
|
|
pageInfo.setRows(dataList);
|
|
|
return pageInfo;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String,Object> questionnaireUserResultExport(Integer cooperationId,List<QuestionnaireQuestion> questionList) {
|
|
|
+ HashMap<String, Object> paramMap = new HashMap<>(2);
|
|
|
+ paramMap.put("activeId",cooperationId);
|
|
|
+ List<QuestionnaireUserResult> userResults = questionnaireUserResultDao.findAll(paramMap);
|
|
|
+
|
|
|
+ Map<String,Object> resultMap = new HashMap<>(2);
|
|
|
+ //导出列表数据
|
|
|
+ List<Map<String,Object>> jsonObjectList = new ArrayList<>();
|
|
|
+ Set<String> body = new LinkedHashSet<>();
|
|
|
+
|
|
|
+ if(userResults != null && userResults.size() > 0){
|
|
|
+ //获取所有的问题列表
|
|
|
+ List<Long> questionIdList = questionList.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ Map<Long, List<QuestionnaireQuestion>> questionMap = questionList.stream().collect(Collectors.groupingBy(QuestionnaireQuestion::getId));
|
|
|
+ //获取所有答案列表
|
|
|
+ paramMap.put("questionIdList",questionIdList);
|
|
|
+ List<QuestionnaireQuestionItem> questionItemList = questionnaireQuestionItemDao.findAll(paramMap);
|
|
|
+ Map<Long, List<QuestionnaireQuestionItem>> questionItemMap = questionItemList.stream().collect(Collectors.groupingBy(QuestionnaireQuestionItem::getId));
|
|
|
+ //按学员分组
|
|
|
+ Map<Integer, List<QuestionnaireUserResult>> userIdMap = userResults.stream().collect(Collectors.groupingBy(QuestionnaireUserResult::getUserId));
|
|
|
+ Set<Integer> userIdList = userIdMap.keySet();
|
|
|
+ Map<Integer, String> nameList = MapUtil.convertMybatisMap(teacherDao.queryUserNameByIdList(new ArrayList<>(userIdList)));
|
|
|
+ Map<Integer, String> phoneList = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(userIdList,",")));
|
|
|
+ for (Integer userId : userIdList) {
|
|
|
+ List<QuestionnaireUserResult> userResultList = userIdMap.get(userId);
|
|
|
+ if(userResultList != null && userResultList.size() > 0){
|
|
|
+ Map<String,Object> jsonObject = new LinkedHashMap<>();
|
|
|
+ body.add("cooperationId");
|
|
|
+ body.add("userId");
|
|
|
+ body.add("userName");
|
|
|
+ body.add("phone");
|
|
|
+ jsonObject.put("cooperationId",cooperationId);
|
|
|
+ jsonObject.put("userId",userId);
|
|
|
+ jsonObject.put("userName",nameList.get(userId));
|
|
|
+ jsonObject.put("phone",phoneList.get(userId));
|
|
|
+ //分解当前学员答案
|
|
|
+ for (QuestionnaireUserResult result : userResultList) {
|
|
|
+ //获取问题列表
|
|
|
+ QuestionnaireQuestion question = questionMap.get(result.getQuestionnaireQuestionId()).get(0);
|
|
|
+ String questionnaireQuestionItemIdList = result.getQuestionnaireQuestionItemIdList();
|
|
|
+ StringBuffer userResult = new StringBuffer("");
|
|
|
+ if(StringUtils.isNotEmpty(questionnaireQuestionItemIdList)){
|
|
|
+ String[] split = questionnaireQuestionItemIdList.split(",");
|
|
|
+ for (String s : split) {
|
|
|
+ List<QuestionnaireQuestionItem> items = questionItemMap.get(Long.parseLong(s));
|
|
|
+ userResult.append(items.get(0).getAnswerValue()).append("\n");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ String additionalValue = result.getAdditionalValue();
|
|
|
+ if(StringUtils.isNotEmpty(additionalValue)){
|
|
|
+ userResult.append(additionalValue);
|
|
|
+ }
|
|
|
+ body.add(question.getContent());
|
|
|
+ jsonObject.put(question.getContent(),userResult.toString());
|
|
|
+ }
|
|
|
+ jsonObjectList.add(jsonObject);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resultMap.put("jsonObjectList",jsonObjectList);
|
|
|
+ resultMap.put("body",body);
|
|
|
+ return resultMap;
|
|
|
+ }
|
|
|
}
|