Commit 819e7229 authored by 王琮's avatar 王琮

后端代码

parent a498fe4c
package com.tiptimes.ctrl;
import com.tiptimes.model.Answer;
import com.tiptimes.model.Questionnaire;
import com.tiptimes.model.Record;
import com.tiptimes.model.Review;
import com.tiptimes.service.QuestionnaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping({"/questionnaire"})
public class QuestionnaireCtrl {
@Autowired
private QuestionnaireService questionnaireService;
public QuestionnaireCtrl() {
}
/**
* 数据上报
* @param questionnaire 上报数据
* @return
*/
@RequestMapping({"/save"})
@ResponseBody
public Map<String, Object> save(@RequestBody Questionnaire questionnaire){
int result;
//1.通过上报人和问卷id查询上报记录id
Long recordId=this.questionnaireService.selectRecordId(questionnaire.getId(),questionnaire.getCreateId());
//2.若recordId为空去添加上报记录,并返回自增id
if(recordId==null) {
Record record = new Record(questionnaire.getId(),questionnaire.getQuestionnaireName(),
0,"",questionnaire.getCreateName(),new Date(),questionnaire.getCreateId());
recordId=this.questionnaireService.insertRecord(record);
}
//3.根据上报记录id删除原上报数据
this.questionnaireService.delAnswer(recordId);
//4.新增新的上报数据
List<Answer> answerList=questionnaire.getAnswersList();
result=this.questionnaireService.insertAnswer(answerList,recordId);
//5.根据类型判断是否修改上报状态
if(questionnaire.getType()==1) {//上报
//修改数据上报状态
Record r = new Record();
r.setId(recordId);
r.setProcessStatus(1);
result=this.questionnaireService.updateRecord(r);
}
Map<String, Object> map = new HashMap();
if(result>0) {
map.put("result", true);
map.put("msg", "操作成功");
} else {
map.put("result", false);
map.put("msg", "操作失败");
}
return map;
}
/**
* 审核页面操作
* @param record 驳回
* @return
*/
@RequestMapping({"/checkReject"})
@ResponseBody
public Map<String, Object> checkReject(@RequestBody Record record){
if(record.getReviews()!=null) {
//1.通过记录id删除原有备注
this.questionnaireService.delView(record.getReviews().get(0).getRecordId());
//2.添加新的备注
this.questionnaireService.insertReview(record.getReviews(), record.getReviews().get(0).getRecordId());
}
int result=this.questionnaireService.updateRecord(record);
Map<String, Object> map = new HashMap();
if(result>0) {
map.put("result", true);
map.put("msg", "操作成功");
} else {
map.put("result", false);
map.put("msg", "操作失败");
}
return map;
}
/**
* 根据上报id查看上报数据详情
* @param recordId 记录id
* @return
*/
@RequestMapping({"/selectDetails"})
@ResponseBody
public Map<String, Object> selectDetails(Long recordId){
//1.根据记录id查询上报数据详情
List<Answer>answerList=this.questionnaireService.selectAnswerByRecordId(recordId);
//2.根据记录id查询审核备注详情
List<Review> reviews=this.questionnaireService.selectReviewByRecordId(recordId);
Map<String, Object> map = new HashMap();
map.put("result", true);
map.put("msg", "");
Map<String, Object> data = new HashMap();
data.put("answerList",answerList);
if(reviews.size()>0) {
data.put("reviews", reviews);
}
//3.根据记录id查询状态
Record record= this.questionnaireService.selectById(recordId);
if(record.getProcessStatus()==2) {
data.put("reason", record.getReason());
}
map.put("data",data);
return map;
}
/**
* 保存备注
* @param review 备注
* @return
*/
@RequestMapping({"/review"})
@ResponseBody
public Map<String, Object> review(@RequestBody List<Review> review){
Map<String, Object> map = new HashMap();
if(review==null||review.size()==0) {
map.put("result", false);
map.put("msg", "不存在需要保存的备注");
return map;
}
int result;
//1.通过记录id删除原有备注
this.questionnaireService.delView(review.get(0).getRecordId());
//2.添加新的备注
result=this.questionnaireService.insertReview(review,review.get(0).getRecordId());
if(result>0) {
map.put("result", true);
map.put("msg", "操作成功");
} else {
map.put("result", false);
map.put("msg", "操作失败");
}
return map;
}
}
package com.tiptimes.dao;
import com.tiptimes.model.Answer;
import com.tiptimes.model.Record;
import com.tiptimes.model.Review;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface QuestionnaireDao {
Long selectRecordId(@Param("questionnaireUuid")Long questionnaireUuid,
@Param("createId")String createId);
Long insertRecord(Record record);
Integer delAnswer(@Param("recordId")Long recordId);
Integer insertAnswer(@Param("list") List<Answer> answerList,
@Param("recordId")Long recordId);
Integer updateRecord(Record record);
Integer delView(@Param("recordId")Long recordId);
Integer insertReview(@Param("list") List<Review> list, @Param("recordId")Long recordId);
List<Answer> selectAnswerByRecordId(@Param("recordId")Long recordId);
List<Review> selectReviewByRecordId(@Param("recordId")Long recordId);
Record selectById(Long recordId);
}
......@@ -2,7 +2,7 @@ package com.tiptimes.model;
import java.util.Date;
import java.util.List;
public class Questionnaire {//问卷
public class Questionnaire {//问卷相关数据返回Vo
private Long id;//问卷id
private String questionnaireName;//问卷名称
private int status;//问卷状态 1:启用(默认值);0:停用'
......@@ -10,6 +10,17 @@ public class Questionnaire {//问卷表
private Date createTime;//创建时间
private List<Answer> answersList;//问卷数据
private String createId;//上报人员唯一标识
private String createName;//上报人(众创空间)
private Integer type; //0暂存 1上报
private List<Review>reviewList;//审核备注
public List<Review> getReviewList() {
return reviewList;
}
public void setReviewList(List<Review> reviewList) {
this.reviewList = reviewList;
}
public String getCreateId() {
return createId;
......@@ -19,6 +30,22 @@ public class Questionnaire {//问卷表
this.createId = createId;
}
public String getCreateName() {
return createName;
}
public void setCreateName(String createName) {
this.createName = createName;
}
public Integer getType() {
return type;
}
public void setType(Integer type) {
this.type = type;
}
public List<Answer> getAnswersList() {
return answersList;
}
......
package com.tiptimes.model;
import java.util.Date;
import java.util.List;
public class Record {//上报记录表
private Long id;//记录id
......@@ -10,6 +11,16 @@ public class Record {//上报记录表
private String createBy;//上报人(众创空间)
private Date createTime;//上报时间
private String createId;//上报人员唯一标识
private List<Review> reviews;
public List<Review> getReviews() {
return reviews;
}
public void setReviews(List<Review> reviews) {
this.reviews = reviews;
}
public Long getId() {
return id;
}
......@@ -77,9 +88,8 @@ public class Record {//上报记录表
public Record() {
}
public Record(Long id, Long questionnaireUuid, String questionnaireName, int processStatus, String reason,
public Record(Long questionnaireUuid, String questionnaireName, int processStatus, String reason,
String createBy, Date createTime, String createId) {
this.id = id;
this.questionnaireUuid = questionnaireUuid;
this.questionnaireName = questionnaireName;
this.processStatus = processStatus;
......
package com.tiptimes.model;
public class Review {//评审备注详情表
private Long id;
private Long questionsId;//问题id
private Long recordId;//记录id
private String remark;//驳回原因
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public Long getQuestionsId() {
return questionsId;
}
public void setQuestionsId(Long questionsId) {
this.questionsId = questionsId;
}
public Long getRecordId() {
return recordId;
}
public void setRecordId(Long recordId) {
this.recordId = recordId;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public Review(Long id, Long questionsId, Long recordId, String remark) {
this.id = id;
this.questionsId = questionsId;
this.recordId = recordId;
this.remark = remark;
}
public Review() {
}
}
package com.tiptimes.service;
import com.tiptimes.model.Answer;
import com.tiptimes.model.Record;
import com.tiptimes.model.Review;
import java.util.List;
public interface QuestionnaireService {
/**
* 根据上报人和问卷id查询上报记录id
* @param questionnaireUuid 问卷id
* @param createId 上报人唯一标识
* @return
*/
Long selectRecordId(Long questionnaireUuid,String createId);
/**
* 添加上报记录数据
* @param record 上报记录
* @return
*/
Long insertRecord(Record record);
/**
* 根据上报记录id删除原上报数据
* @param recordId 上报记录id
* @return
*/
Integer delAnswer(Long recordId);
/**
* 新增新的上报数据
* @param answerList
* @param recordId
* @return
*/
Integer insertAnswer(List<Answer> answerList,Long recordId);
/**
* 修改数据上报状态
* @param record
* @return
*/
Integer updateRecord(Record record);
/**
* 通过记录id删除原有备注
* @param recordId
* @return
*/
Integer delView(Long recordId);
/**
* 添加新的备注
* @param review
* @return
*/
Integer insertReview(List<Review> review,Long recordId);
/**
*根据记录id查询上报数据详情
* @param recordId 记录id
* @return
*/
List<Answer> selectAnswerByRecordId(Long recordId);
/**
*根据记录id查询评审备注详情
* @param recordId 记录id
* @return
*/
List<Review> selectReviewByRecordId(Long recordId);
/**
*根据记录id查询评审备注详情
* @param recordId 记录id
* @return
*/
Record selectById(Long recordId);
}
package com.tiptimes.service.impl;
import com.tiptimes.dao.QuestionnaireDao;
import com.tiptimes.model.Answer;
import com.tiptimes.model.Record;
import com.tiptimes.model.Review;
import com.tiptimes.service.QuestionnaireService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@Service
public class QuestionnaireServiceImpl implements QuestionnaireService {
@Autowired
private QuestionnaireDao questionnaireDao;
/**
* 根据上报人和问卷id查询上报记录id
* @param questionnaireUuid 问卷id
* @param createId 上报人唯一标识
* @return
*/
@Override
@Transactional(readOnly = true)
public Long selectRecordId(Long questionnaireUuid, String createId) {
return questionnaireDao.selectRecordId(questionnaireUuid,createId);
}
/**
* 添加上报记录
* @param record 上报记录
* @return
*/
@Override
@Transactional
public Long insertRecord(Record record) {
return questionnaireDao.insertRecord(record);
}
/**
* 根据上报记录id删除原上报数据
* @param recordId 上报记录id
* @return
*/
@Override
@Transactional
public Integer delAnswer(Long recordId) {
return questionnaireDao.delAnswer(recordId);
}
/**
* 添加上报数据
* @param answerList
* @param recordId
* @return
*/
@Override
@Transactional
public Integer insertAnswer(List<Answer> answerList, Long recordId) {
return questionnaireDao.insertAnswer(answerList,recordId);
}
/**
* 修改上报记录
* @param record
* @return
*/
@Override
@Transactional
public Integer updateRecord(Record record) {
return questionnaireDao.updateRecord(record);
}
/**
* 通过记录id删除原有备注
* @param recordId
* @return
*/
@Override
@Transactional
public Integer delView(Long recordId) {
return questionnaireDao.delView(recordId);
}
/**
* 添加新的备注
* @param review
* @return
*/
@Override
@Transactional
public Integer insertReview(List<Review> review,Long recordId) {
return questionnaireDao.insertReview(review,recordId);
}
/**
* 通过记录id删除原有备注
* @param recordId
* @return
*/
@Override
public List<Answer> selectAnswerByRecordId(Long recordId) {
return questionnaireDao.selectAnswerByRecordId(recordId);
}
/**
* 根据记录id查询评审备注详情
* @param recordId 记录id
* @return
*/
@Override
public List<Review> selectReviewByRecordId(Long recordId) {
return questionnaireDao.selectReviewByRecordId(recordId);
}
@Override
public Record selectById(Long recordId) {
return questionnaireDao.selectById(recordId);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tiptimes.dao.QuestionnaireDao">
<insert id="insertRecord" useGeneratedKeys="true" keyProperty="id">
INSERT INTO t_record
(
questionnaire_uuid,
questionnaire_name,
process_status,
reason,
create_time,
create_by,
create_id
)
VALUES
(
#{questionnaireUuid},
#{questionnaireName},
#{processStatus},
#{reason},
#{createTime},
#{createBy},
#{createId}
)
</insert>
<insert id="insertAnswer" parameterType="com.tiptimes.model.Answer">
INSERT INTO t_answer (`options_id`, `value`, `group`, `record_id`) VALUES
<foreach collection="list" item="list" separator=",">
( #{list.optionsId}, #{list.value}, #{list.group} , #{recordId})
</foreach>
</insert>
<insert id="insertReview">
INSERT INTO t_review (`questions_id`, `remark`, `record_id`) VALUES
<foreach collection="list" item="list" separator=",">
( #{list.questionsId}, #{list.remark}, #{recordId})
</foreach>
</insert>
<update id="updateRecord">
UPDATE t_record
<trim prefix="SET" suffixOverrides=",">
<if test="processStatus != null and processStatus != ''">process_status = #{processStatus},</if>
<if test="reason != null and reason != ''">reason = #{reason},</if>
</trim>
WHERE id = #{id}
</update>
<delete id="delAnswer">
DELETE FROM
t_answer
WHERE
record_id=#{recordId}
</delete>
<delete id="delView">
DELETE FROM
t_review
WHERE
record_id=#{recordId}
</delete>
<select id="selectRecordId" resultType="java.lang.Long">
SELECT id FROM t_record
WHERE questionnaire_uuid=#{questionnaireUuid} AND
create_id = #{createId}
</select>
<select id="selectAnswerByRecordId" resultType="com.tiptimes.model.Answer">
SELECT
options_id AS 'optionsId',
`value`,
`group`
FROM
t_answer
WHERE
record_id =#{recordId}
</select>
<select id="selectReviewByRecordId" resultType="com.tiptimes.model.Review">
SELECT
questions_id AS 'questionsId',
`remark`
FROM
t_review
WHERE
record_id =#{recordId}
</select>
<select id="selectById" resultType="com.tiptimes.model.Record">
SELECT process_status AS 'processStatus',reason
FROM t_record
WHERE id=#{recordId}
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment