소스 검색

云教练用户反馈

zouxuan 3 년 전
부모
커밋
350e478b39

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireQuestionDao.java

@@ -1,7 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
+import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -14,4 +14,11 @@ public interface QuestionnaireQuestionDao extends BaseDAO<Long, QuestionnaireQue
     List<QuestionnaireQuestion> findByTopicId(int topicId);
 
     List<QuestionnaireQuestion> queryQuestionList(Integer cooperationId);
+
+    /**
+     * 根据活动类型获取问卷答案
+     * @param activeType
+     * @return
+     */
+    List<QuestionnaireQuestion> findByActiveType(String activeType);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/QuestionnaireUserResultDao.java

@@ -36,4 +36,6 @@ public interface QuestionnaireUserResultDao extends BaseDAO<Long, QuestionnaireU
      * @return
      */
     List<QuestionnaireResultDto> getQuestionResult(@Param("activeId") Integer activeId, @Param("activeType") String activeType);
+
+    List<Map<Integer, String>> queryUserName(String activeType);
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/QuestionnaireUserResultService.java

@@ -21,7 +21,7 @@ public interface QuestionnaireUserResultService extends BaseService<Long, Questi
      * @param questionList
      * @return
      */
-    Map<String,Object> questionnaireUserResultExport(Integer cooperationId, List<QuestionnaireQuestion> questionList);
+    Map<String,Object> questionnaireUserResultExport(String activeType,Integer cooperationId, List<QuestionnaireQuestion> questionList);
 
     /**
      * 提交调查问卷

+ 8 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/QuestionnaireUserResultServiceImpl.java

@@ -37,12 +37,8 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 	@Autowired
 	private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
 	@Autowired
-	private QuestionnaireQuestionDao questionnaireQuestionDao;
-	@Autowired
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
-	private CooperationOrganService cooperationOrganService;
-	@Autowired
 	private TeacherDao teacherDao;
 
 	@Override
@@ -76,10 +72,10 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 	}
 
 	@Override
-	public Map<String,Object> questionnaireUserResultExport(Integer cooperationId,List<QuestionnaireQuestion> questionList) {
+	public Map<String,Object> questionnaireUserResultExport(String activeType,Integer cooperationId,List<QuestionnaireQuestion> questionList) {
 		HashMap<String, Object> paramMap = new HashMap<>(2);
 		paramMap.put("activeId",cooperationId);
-		paramMap.put("activeType","REPLACEMENT");
+		paramMap.put("activeType",activeType);
 		List<QuestionnaireUserResult> userResults = questionnaireUserResultDao.findAll(paramMap);
 
 		Map<String,Object> resultMap = new HashMap<>(2);
@@ -99,7 +95,12 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 			Map<Integer, List<QuestionnaireUserResult>> userIdMap = userResults.stream().collect(Collectors.groupingBy(QuestionnaireUserResult::getUserId));
 			List<Integer> userIdList = new ArrayList<>(userIdMap.keySet());
 			Collections.sort(userIdList);
-			Map<Integer, String> nameList = MapUtil.convertMybatisMap(questionnaireQuestionItemDao.queryUserName(cooperationId));
+			Map<Integer, String> nameList;
+			if(cooperationId != null){
+				nameList = MapUtil.convertMybatisMap(questionnaireQuestionItemDao.queryUserName(cooperationId));
+			}else {
+				nameList = MapUtil.convertMybatisMap(questionnaireUserResultDao.queryUserName(activeType));
+			}
 			Map<Integer, String> phoneList = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(userIdList,",")));
 			for (Integer userId : userIdList) {
 				List<QuestionnaireUserResult> userResultList = userIdMap.get(userId);

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/QuestionnaireQuestionMapper.xml

@@ -119,4 +119,14 @@
 		LEFT JOIN questionnaire_question qq ON qq.questionnaire_topic_id_ = ric.topic_id_
 		WHERE ric.id_ = #{cooperationId} ORDER BY sort_
 	</select>
+	<select id="findByActiveType" resultMap="QuestionnaireQuestion">
+		SELECT
+			qq.*
+		FROM
+			questionnaire_question qq
+		WHERE
+				qq.questionnaire_topic_id_ = ( SELECT questionnaire_topic_id_ FROM questionnaire_user_result WHERE active_type_ = 'CLOUD_TEACHER_FEEDBACK' LIMIT 1 )
+		ORDER BY
+			sort_
+	</select>
 </mapper>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/QuestionnaireUserResultMapper.xml

@@ -197,4 +197,10 @@
 		GROUP BY qq.id_
 		ORDER BY qq.sort_
 	</select>
+	<select id="queryUserName" resultType="java.util.Map">
+		SELECT qur.user_id_ `key`,su.username_ `value` FROM questionnaire_user_result qur
+		LEFT JOIN sys_user su ON su.id_ = qur.user_id_
+		WHERE qur.user_id_ IS NOT NULL AND qur.active_type_ = #{activeType}
+		GROUP BY qur.user_id_
+	</select>
 </mapper>

+ 54 - 2
mec-web/src/main/java/com/ym/mec/web/controller/QuestionnaireUserResultController.java

@@ -2,6 +2,7 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dao.QuestionnaireQuestionDao;
 import com.ym.mec.biz.dal.entity.QuestionnaireQuestion;
+import com.ym.mec.biz.dal.enums.QuestionnaireActiveTypeEnum;
 import com.ym.mec.biz.dal.page.QuestionnaireUserResultQueryInfo;
 import com.ym.mec.biz.service.QuestionnaireUserResultService;
 import com.ym.mec.common.controller.BaseController;
@@ -16,6 +17,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -42,7 +44,7 @@ public class QuestionnaireUserResultController extends BaseController {
     @ApiOperation(value = "导出")
     @RequestMapping("/export")
     @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/export')")
-    public void questionnaireUserResultExport(Integer cooperationId, HttpServletResponse response) throws Exception {
+    public void questionnaireUserResultExport(QuestionnaireActiveTypeEnum activeType, Integer cooperationId, HttpServletResponse response) throws Exception {
         List<QuestionnaireQuestion> questionList = questionnaireQuestionDao.queryQuestionList(cooperationId);
         questionList.removeAll(Collections.singleton(null));
         if(questionList != null && questionList.size() > 0){
@@ -54,7 +56,57 @@ public class QuestionnaireUserResultController extends BaseController {
             List<String> collect = questionList.stream().map(e -> e.getContent()).collect(Collectors.toList());
             column.addAll(collect);
             String[] header = column.toArray(new String[column.size()]);
-            Map<String,Object> resultMap = questionnaireUserResultService.questionnaireUserResultExport(cooperationId,questionList);
+            Map<String,Object> resultMap = questionnaireUserResultService.questionnaireUserResultExport(activeType.getCode(),cooperationId,questionList);
+            List<Map<String,Object>> jsonObjectList = (List<Map<String,Object>>)resultMap.get("jsonObjectList");
+            if(jsonObjectList.size() == 0){
+                throw new BizException("暂无可导出数据");
+            }
+            OutputStream outputStream = response.getOutputStream();
+            HSSFWorkbook workbook = null;
+            try {
+                Set<String> body1 = (Set<String>)resultMap.get("body");
+                String[] body = body1.toArray(new String[body1.size()]);
+                workbook = POIUtil.exportExcel(header, body, jsonObjectList);
+                response.setContentType("application/octet-stream");
+                response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");
+                response.flushBuffer();
+                outputStream = response.getOutputStream();
+                workbook.write(outputStream);
+                outputStream.flush();
+                workbook.close();
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                if (outputStream != null) {
+                    try {
+                        workbook.close();
+                        outputStream.close();
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }else {
+            throw new BizException("暂无可导出数据");
+        }
+    }
+
+    @ApiOperation(value = "导出")
+    @RequestMapping("/export")
+    @PreAuthorize("@pcs.hasPermissions('questionnaireUserResult/export1')")
+    public void questionnaireUserResultExport1(QuestionnaireActiveTypeEnum activeType, Integer cooperationId, HttpServletResponse response) throws Exception {
+        List<QuestionnaireQuestion> questionList = questionnaireQuestionDao.findByActiveType(activeType.getCode());
+        questionList.removeAll(Collections.singleton(null));
+        if(questionList != null && questionList.size() > 0){
+            List<String> column = new ArrayList<>();
+            column.add("活动编号");
+            column.add("学员编号");
+            column.add("学员姓名");
+            column.add("手机号");
+            List<String> collect = questionList.stream().map(e -> e.getContent()).collect(Collectors.toList());
+            column.addAll(collect);
+            String[] header = column.toArray(new String[column.size()]);
+            Map<String,Object> resultMap = questionnaireUserResultService.questionnaireUserResultExport(activeType.getCode(),cooperationId,questionList);
             List<Map<String,Object>> jsonObjectList = (List<Map<String,Object>>)resultMap.get("jsonObjectList");
             if(jsonObjectList.size() == 0){
                 throw new BizException("暂无可导出数据");