|  | @@ -1,23 +1,30 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import com.ym.mec.auth.api.client.SysUserFeignService;
 | 
	
		
			
				|  |  | +import com.ym.mec.auth.api.entity.SysUser;
 | 
	
		
			
				|  |  |  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.dto.ReplacementInstrumentActivityDto;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.entity.*;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.enums.QuestionnaireActiveTypeEnum;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 | 
	
		
			
				|  |  |  import com.ym.mec.biz.dal.page.ReplacementInstrumentActivityQueryInfo;
 | 
	
		
			
				|  |  | +import com.ym.mec.biz.service.CooperationOrganService;
 | 
	
		
			
				|  |  |  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.thirdparty.message.MessageSenderPluginContext;
 | 
	
		
			
				|  |  |  import com.ym.mec.util.collection.MapUtil;
 | 
	
		
			
				|  |  | +import com.ym.mec.util.http.HttpUtil;
 | 
	
		
			
				|  |  |  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 org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  |  import java.util.stream.Collectors;
 | 
	
	
		
			
				|  | @@ -30,7 +37,9 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  | -	private QuestionnaireQuestionDao questionnaireQuestionDao;
 | 
	
		
			
				|  |  | +	private QuestionnaireTopicDao questionnaireTopicDao;
 | 
	
		
			
				|  |  | +	@Autowired
 | 
	
		
			
				|  |  | +	private SysUserFeignService sysUserFeignService;
 | 
	
		
			
				|  |  |  	@Autowired
 | 
	
		
			
				|  |  |  	private TeacherDao teacherDao;
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -65,10 +74,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);
 | 
	
	
		
			
				|  | @@ -88,7 +97,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);
 | 
	
	
		
			
				|  | @@ -130,4 +144,40 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 | 
	
		
			
				|  |  |  		resultMap.put("body",body);
 | 
	
		
			
				|  |  |  		return resultMap;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Override
 | 
	
		
			
				|  |  | +	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +    public void add(ReplacementInstrumentActivityDto replacementInstrumentActivity) {
 | 
	
		
			
				|  |  | +		SysUser sysUser = sysUserFeignService.queryUserInfo();
 | 
	
		
			
				|  |  | +		if (sysUser == null) {
 | 
	
		
			
				|  |  | +			throw new BizException("用户信息获取失败,请重新登陆");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		Integer topicId = replacementInstrumentActivity.getTopicId();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		List<QuestionnaireUserResult> questionnaireUserResultList = replacementInstrumentActivity.getQuestionnaireUserResultList();
 | 
	
		
			
				|  |  | +		if(questionnaireUserResultList == null || questionnaireUserResultList.size() == 0){
 | 
	
		
			
				|  |  | +			throw new BizException("请填写问卷结果");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		QuestionnaireActiveTypeEnum activeType = replacementInstrumentActivity.getActiveType();
 | 
	
		
			
				|  |  | +		QuestionnaireTopic topic = questionnaireTopicDao.get(topicId);
 | 
	
		
			
				|  |  | +		if(topic.getAgainCommitFlag() == 0){
 | 
	
		
			
				|  |  | +			HashMap<String, Object> paramMap = new HashMap<>(3);
 | 
	
		
			
				|  |  | +			paramMap.put("activeId",replacementInstrumentActivity.getReplacementInstrumentCooperationId());
 | 
	
		
			
				|  |  | +			paramMap.put("activeType",activeType.getCode());
 | 
	
		
			
				|  |  | +			paramMap.put("userId",sysUser.getId());
 | 
	
		
			
				|  |  | +			List<QuestionnaireUserResult> userResults = questionnaireUserResultDao.findAll(paramMap);
 | 
	
		
			
				|  |  | +			if(userResults != null && userResults.size() > 0){
 | 
	
		
			
				|  |  | +				throw new BizException("您已提交问卷,请勿重复操作");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		//删除原来的问卷结果
 | 
	
		
			
				|  |  | +		questionnaireUserResultDao.delByActiveIdAndUserId(null, sysUser.getId(),activeType.getCode());
 | 
	
		
			
				|  |  | +		for (QuestionnaireUserResult result : questionnaireUserResultList) {
 | 
	
		
			
				|  |  | +			result.setUserId(sysUser.getId());
 | 
	
		
			
				|  |  | +			result.setQuestionnaireTopicId(topicId);
 | 
	
		
			
				|  |  | +			result.setActiveType(activeType);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		//新增问卷结果
 | 
	
		
			
				|  |  | +		questionnaireUserResultDao.batchInsert1(questionnaireUserResultList);
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  }
 |