Browse Source

问卷调查

zouxuan 3 năm trước cách đây
mục cha
commit
80f9cf28db

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/QuestionnaireTopic.java

@@ -17,6 +17,9 @@ public class QuestionnaireTopic {
 	/** 发布状态(1-可见  0-不可见) */
 	private int status = 0;
 
+	/** 发布状态(是否可重复提交1是0否) */
+	private int againCommitFlag = 0;
+
 	/** 创建人编号 */
 	private Integer creatorId;
 	
@@ -32,6 +35,14 @@ public class QuestionnaireTopic {
 	//问卷题目
 	private List<QuestionnaireQuestion> questionnaireQuestionList;
 
+	public int getAgainCommitFlag() {
+		return againCommitFlag;
+	}
+
+	public void setAgainCommitFlag(int againCommitFlag) {
+		this.againCommitFlag = againCommitFlag;
+	}
+
 	public List<QuestionnaireQuestion> getQuestionnaireQuestionList() {
 		return questionnaireQuestionList;
 	}

+ 21 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/QuestionnaireUserResultServiceImpl.java

@@ -37,6 +37,8 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 	@Autowired
 	private QuestionnaireQuestionItemDao questionnaireQuestionItemDao;
 	@Autowired
+	private QuestionnaireTopicDao questionnaireTopicDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
 	private TeacherDao teacherDao;
@@ -157,16 +159,25 @@ public class QuestionnaireUserResultServiceImpl extends BaseServiceImpl<Long, Qu
 			throw new BizException("请填写问卷结果");
 		}
 		QuestionnaireActiveTypeEnum activeType = replacementInstrumentActivity.getActiveType();
-		if (questionnaireUserResultList != null && questionnaireUserResultList.size() > 0) {
-			//删除原来的问卷结果
-			questionnaireUserResultDao.delByActiveIdAndUserId(null, sysUser.getId(),activeType.getCode());
-			for (QuestionnaireUserResult result : questionnaireUserResultList) {
-				result.setUserId(sysUser.getId());
-				result.setQuestionnaireTopicId(topicId);
-				result.setActiveType(activeType);
+		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);
+			paramMap.put("userId",sysUser.getId());
+			List<QuestionnaireUserResult> userResults = questionnaireUserResultDao.findAll(paramMap);
+			if(userResults == null || userResults.size() == 0){
+				throw new BizException("您已提交问卷,请勿重复操作");
 			}
-			//新增问卷结果
-			questionnaireUserResultDao.batchInsert1(questionnaireUserResultList);
 		}
-    }
+		//删除原来的问卷结果
+		questionnaireUserResultDao.delByActiveIdAndUserId(null, sysUser.getId(),activeType.getCode());
+		for (QuestionnaireUserResult result : questionnaireUserResultList) {
+			result.setUserId(sysUser.getId());
+			result.setQuestionnaireTopicId(topicId);
+			result.setActiveType(activeType);
+		}
+		//新增问卷结果
+		questionnaireUserResultDao.batchInsert1(questionnaireUserResultList);
+	}
 }

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/QuestionnaireTopicMapper.xml

@@ -11,6 +11,7 @@
 		<result column="title_" property="title" />
 		<result column="status_" property="status"/>
 		<result column="creator_id_" property="creatorId" />
+		<result column="again_commit_flag_" property="againCommitFlag" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>
@@ -27,13 +28,16 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.QuestionnaireTopic" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO questionnaire_topic (title_,status_,creator_id_,create_time_,update_time_)
-		VALUES(#{title},#{status},#{creatorId},NOW(),NOW())
+		INSERT INTO questionnaire_topic (title_,status_,creator_id_,create_time_,update_time_,again_commit_flag_)
+		VALUES(#{title},#{status},#{creatorId},NOW(),NOW(),#{againCommitFlag})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.QuestionnaireTopic">
 		UPDATE questionnaire_topic <set>
+		<if test="againCommitFlag != null">
+			again_commit_flag_ = #{againCommitFlag},
+		</if>
 		<if test="status != null">
 			status_ = #{status},
 		</if>

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

@@ -30,6 +30,9 @@
 	<select id="findAll" resultMap="QuestionnaireUserResult">
 		SELECT * FROM questionnaire_user_result
 		<where>
+			<if test="userId != null">
+				AND user_id_ = #{userId}
+			</if>
 			<if test="activeId != null">
 				AND active_id_ = #{activeId}
 			</if>

+ 35 - 0
mec-student/src/main/java/com/ym/mec/student/controller/QuestionnaireUserResultController.java

@@ -1,16 +1,24 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.QuestionnaireTopicDao;
 import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityDto;
+import com.ym.mec.biz.dal.entity.QuestionnaireTopic;
 import com.ym.mec.biz.dal.entity.QuestionnaireUserResult;
 import com.ym.mec.biz.dal.entity.ReplacementInstrumentActivity;
+import com.ym.mec.biz.dal.enums.QuestionnaireActiveTypeEnum;
 import com.ym.mec.biz.service.QuestionnaireUserResultService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
 import java.util.List;
 
 @RequestMapping("questionnaireUserResult")
@@ -20,6 +28,10 @@ public class QuestionnaireUserResultController extends BaseController {
 
     @Autowired
     private QuestionnaireUserResultService questionnaireUserResultService;
+    @Autowired
+    private QuestionnaireTopicDao questionnaireTopicDao;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "提交调查问卷")
     @PostMapping("/add")
@@ -27,4 +39,27 @@ public class QuestionnaireUserResultController extends BaseController {
         questionnaireUserResultService.add(replacementInstrumentActivityDto);
         return succeed();
     }
+
+    @ApiOperation(value = "是否可以提交问卷")
+    @GetMapping("/commitFlag")
+    public Object commitFlag(Integer cooperationId, QuestionnaireActiveTypeEnum activeType) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            throw new BizException("请登录");
+        }
+        HashMap<String, Object> paramMap = new HashMap<>(3);
+        paramMap.put("activeId",cooperationId);
+        paramMap.put("activeType",activeType);
+        paramMap.put("userId",sysUser.getId());
+        List<QuestionnaireUserResult> userResults = questionnaireUserResultService.findAll(paramMap);
+        if(userResults == null || userResults.size() == 0){
+            return succeed(true);
+        }
+        QuestionnaireUserResult result = userResults.get(0);
+        QuestionnaireTopic topic = questionnaireTopicDao.get(result.getQuestionnaireTopicId());
+        if(topic.getAgainCommitFlag() == 1){
+            return succeed(true);
+        }
+        return succeed(false);
+    }
 }

+ 2 - 1
mec-util/src/main/java/com/ym/mec/util/excel/POIUtil.java

@@ -247,7 +247,8 @@ public class POIUtil {
 					cell = row.createCell(j);
 					try {
 						if(data instanceof Map) {
-							obj = PropertyUtils.getNestedProperty(data, fieldColumns[j]);
+							obj = ((Map<?, ?>) data).get(fieldColumns[j]);
+//							obj = PropertyUtils.getNestedProperty(data, fieldColumns[j]);
 						}else {
 							obj = expressionParser.parseExpression(fieldColumns[j]).getValue(context);
 						}