Bläddra i källkod

完善编辑试卷时科目状态以及删除垃圾数据

ywx
王宁 2 månader sedan
förälder
incheckning
68ec6fe4e1

+ 5
- 0
smarking/src/main/java/com/xhkjedu/smarking/mapper/exam/MsSubjectMapper.java Visa fil

@@ -48,6 +48,8 @@ public interface MsSubjectMapper extends TkMapper<MsSubject> {
48 48
 
49 49
     //更改考试科目阅卷设置状态
50 50
     void updateCheckSetByMsId(@Param("msid") Integer msid, @Param("checkset") Integer checkset,@Param("correcttype") Integer correcttype);
51
+    //更改阅卷设置状态
52
+    void updateCheckSetByMpId(@Param("mpid") Integer mpid, @Param("checkset") Integer checkset);
51 53
 
52 54
     //试监控-考试基本信息
53 55
     Map<String,Object> getExamSubjectByMsid(@Param("msid") Integer msid);
@@ -63,4 +65,7 @@ public interface MsSubjectMapper extends TkMapper<MsSubject> {
63 65
 
64 66
     //获取考试科目信息
65 67
     List<Map<String,Object>> listByExamId(@Param("examid") Integer examid);
68
+
69
+    //修改试卷结构后更改后续操作状态
70
+    int updatePaperFollowup(@Param("mpid")Integer mpid);
66 71
 }

+ 3
- 0
smarking/src/main/java/com/xhkjedu/smarking/mapper/papercheck/MsPaperCheckTeacherMapper.java Visa fil

@@ -31,4 +31,7 @@ public interface MsPaperCheckTeacherMapper extends TkMapper<MsPaperCheckTeacher>
31 31
 
32 32
     //题块阅卷教师列表(复制用)
33 33
     List<MsPaperCheckTeacher> listCheckTeacher2(@Param("mpid") Integer mpid,@Param("mblockid") Integer mblockid);
34
+
35
+    //根据试卷ID删除阅卷教师
36
+    int deleteByMpid(@Param("mpid") Integer mpid);
34 37
 }

+ 2
- 0
smarking/src/main/java/com/xhkjedu/smarking/model/paper/MsPaperQtype.java Visa fil

@@ -21,6 +21,8 @@ public class MsPaperQtype extends BaseBean {
21 21
     private Integer mptid;
22 22
     //试卷id
23 23
     private Integer mpid;
24
+    //处理题型
25
+    private Integer ctype;
24 26
     //题型名称
25 27
     private String mptname;
26 28
     //题型下试题数量

+ 20
- 5
smarking/src/main/java/com/xhkjedu/smarking/service/paper/MsPaperQtypeService.java Visa fil

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
4 4
 import com.xhkjedu.exception.MissingParametersException;
5 5
 import com.xhkjedu.smarking.mapper.exam.MsSubjectMapper;
6 6
 import com.xhkjedu.smarking.mapper.paper.*;
7
+import com.xhkjedu.smarking.mapper.papercheck.MsPaperCheckTeacherMapper;
7 8
 import com.xhkjedu.smarking.mapper.stupaper.MsPaperStudentMapper;
8 9
 import com.xhkjedu.smarking.mapper.stupaper.MsPaperStudentQuestionMapper;
9 10
 import com.xhkjedu.smarking.mapper.system.SchoolMapper;
@@ -54,6 +55,12 @@ public class MsPaperQtypeService {
54 55
     private MsPaperStudentQuestionMapper msPaperStudentQuestionMapper;
55 56
     @Resource
56 57
     private MsPaperStudentMapper msPaperStudentMapper;
58
+    @Resource
59
+    private MsPaperCheckTeacherMapper msPaperCheckTeacherMapper;
60
+    @Resource
61
+    private MsPaperBlockMapper msPaperBlockMapper;
62
+    @Resource
63
+    private MsTemplateMapper msTemplateMapper;
57 64
     private final ConvertUtil convertUtil;
58 65
 
59 66
     public MsPaperQtypeService(ConvertUtil convertUtil) {
@@ -75,16 +82,18 @@ public class MsPaperQtypeService {
75 82
         PExamSubjectVo exam = msPaperMapper.getExamSubjectForPaper(mpid);
76 83
         //线下考试,发布成绩(生成报告)之前可以修改试卷结构
77 84
         if(exam.getExammode() < 3 && exam.getExamstate() > 2){
78
-            throw new MissingParametersException("考试已结束禁止操作");
85
+            throw new MissingParametersException("考试统分禁止操作");
79 86
         }
80 87
 
81
-        if(exam.getExammode() == 3 && exam.getExamstate() > 0){
82
-            throw new MissingParametersException("考试已开始禁止操作");
88
+        if(exam.getExammode() == 3 && exam.getPstate() == 2){
89
+            throw new MissingParametersException("试卷已提交禁止操作");
83 90
         }
84 91
 
85 92
          //先删除原有题型、分析
86 93
         msPaperQtypeMapper.deleteByMpId(mpid);
87 94
         msPaperAnalyzeMapper.deleteByMpId(mpid);
95
+
96
+
88 97
         //根据考试类型(线上和线下),是否删除文件
89 98
         if(paper.getPtype() == 2){
90 99
             msPaperFileMapper.deleteByMpid(mpid);
@@ -117,10 +126,14 @@ public class MsPaperQtypeService {
117 126
             userBasketMapper.deleteByUseridAndSubjectid(paper.getCreateid(),exam.getSubjectid());
118 127
         }
119 128
 
129
+        msPaperCheckTeacherMapper.deleteByMpid(mpid);//删除批阅教师
120 130
         if(exam.getExammode() < 3){
121
-            //如果是线下考试更改了试卷结构,则清空后续所有操作
131
+            //如果是线下考试更改了试卷结构,则清空题块、试卷模板
122 132
             msPaperMapper.deleteTemplageBlockByMpid(mpid);
123 133
             msPaperStudentMapper.deletePaperStuByMpid(mpid);
134
+            msSubjectMapper.updatePaperFollowup(mpid);
135
+        }else{
136
+            msSubjectMapper.updateCheckSetByMpId(mpid,0);
124 137
         }
125 138
 
126 139
         if(N_Utils.isListNotEmpty(imgs) && imgs.size()>1){
@@ -195,7 +208,7 @@ public class MsPaperQtypeService {
195 208
     }
196 209
 
197 210
     //保存试卷分析--题库
198
-    public void savePaperAnalyzeForQuestion(MsPaper paper){
211
+    private void savePaperAnalyzeForQuestion(MsPaper paper){
199 212
         Integer mpid = paper.getMpid();
200 213
         //保存之前先清除之前的试卷分析
201 214
         msPaperAnalyzeMapper.deleteByMpId(paper.getMpid());
@@ -1150,6 +1163,7 @@ public class MsPaperQtypeService {
1150 1163
                 questionMap.put("loseoption",questionVo.getLoseoption());
1151 1164
                 questionMap.put("scoreset",questionVo.getScoreset());
1152 1165
                 questionMap.put("complexity",questionVo.getComplexity());
1166
+                questionMap.put("optionnum",questionVo.getOptionnum());
1153 1167
                 questionMap.put("points",questionVo.getPoints());
1154 1168
                 questionsList.add(questionMap);
1155 1169
             }
@@ -1160,6 +1174,7 @@ public class MsPaperQtypeService {
1160 1174
             typeMap.put("mptorder",qtypeVo.getMptorder());
1161 1175
             typeMap.put("mptnum",qtypeVo.getMptnum());
1162 1176
             typeMap.put("mptscore",qtypeVo.getMptscore());
1177
+            typeMap.put("ctype",qtypeVo.getCtype());
1163 1178
             typeMap.put("questions",questionsList);
1164 1179
             qtypes.add(typeMap);
1165 1180
         }

+ 2
- 0
smarking/src/main/java/com/xhkjedu/smarking/vo/paper/MsPaperQtypeVo.java Visa fil

@@ -16,6 +16,8 @@ public class MsPaperQtypeVo {
16 16
     //考试试卷题型表
17 17
     private Integer mptid;
18 18
 
19
+    private Integer ctype;
20
+
19 21
     //题型名称
20 22
     private String mptname;
21 23
 

+ 2
- 0
smarking/src/main/java/com/xhkjedu/smarking/vo/paper/PExamSubjectVo.java Visa fil

@@ -26,4 +26,6 @@ public class PExamSubjectVo {
26 26
     //单科状态0未开始1进行中2已结束
27 27
     private Integer msstate;
28 28
 
29
+    private Integer pstate;//试卷设置状态0未开始1设置中2已完成3退回
30
+
29 31
 }

+ 12
- 2
smarking/src/main/resources/mapper/exam/MsSubjectMapper.xml Visa fil

@@ -12,8 +12,8 @@
12 12
     <!--考试进度总览-->
13 13
     <select id="examOverview" resultType="java.util.Map">
14 14
         select s.msid,s.subjectid,s.subjectname,s.sdate,s.begintime,s.endtime,s.pstate,s.ptstate,
15
-        s.pbstate,s.checkset,s.checkstate,s.invigilatestate,p.answered,s.teacherid,
16
-        u.username as teachername,p.mpid,p.hasfile,e.exammode,s.leaderid,u2.username as leadername
15
+        s.pbstate,s.checkset,s.checkstate,s.invigilatestate,p.answered,p.ptype,s.teacherid,
16
+        u.username as teachername,p.mpid,p.hasfile,e.exammode,e.examstate,s.leaderid,u2.username as leadername
17 17
         ,if(ps.batchid is not null,ps.mpsid,null) scannum,count(ps.mpsid) stunum
18 18
         from ms_subject s left join t_user u on s.teacherid=u.userid
19 19
         left join t_user u2 on s.leaderid=u2.userid
@@ -94,6 +94,11 @@
94 94
         set s.checkset=#{checkset},p.correcttype=#{correcttype}
95 95
         where s.msid=#{msid}
96 96
     </update>
97
+    <!--更改阅卷设置状态-->
98
+    <update id="updateCheckSetByMpId">
99
+        update ms_subject s inner join ms_paper p on s.msid=p.msid
100
+            set s.checkset=#{checkset} where p.mpid=#{mpid}
101
+    </update>
97 102
 
98 103
     <!--考试监控-考试基本信息-->
99 104
     <select id="getExamSubjectByMsid" resultType="java.util.Map">
@@ -142,5 +147,10 @@
142 147
         where ms.msstate=1 and ms.msid in
143 148
         <foreach collection="msids" item="msid" separator="," open="(" close=")">#{msid}</foreach>
144 149
     </update>
150
+    <!--修改试卷结构后更改后续操作状态-->
151
+    <update id="updatePaperFollowup">
152
+        update ms_subject s inner join ms_paper p on s.msid=p.msid
153
+            set s.ptstate=0,s.pbstate=0,s.checkset=0 where p.mpid=#{mpid}
154
+    </update>
145 155
 
146 156
 </mapper>

+ 2
- 3
smarking/src/main/resources/mapper/paper/MsPaperMapper.xml Visa fil

@@ -16,7 +16,7 @@
16 16
 
17 17
     <!--获取试卷详细信息-->
18 18
     <select id="getPaperInfoByMsid" resultType="java.util.Map">
19
-        select s.examid,s.msid,s.subjectname,s.sdate,s.begintime,s.endtime,e.gradeid,e.examtype,p.mpid,
19
+        select s.examid,s.msid,s.subjectid,s.subjectname,s.sdate,s.begintime,s.endtime,e.gradeid,e.examtype,p.mpid,
20 20
         p.ptype,p.pnum,p.pscore,u.username as teachername,u.username as handlename
21 21
         from ms_subject s left join ms_paper p on s.msid=p.msid
22 22
         left join ms_exam e on s.examid=e.examid
@@ -28,7 +28,7 @@
28 28
 
29 29
     <!--获取考试科目对应考试状态信息-->
30 30
     <select id="getExamSubjectForPaper" resultType="com.xhkjedu.smarking.vo.paper.PExamSubjectVo">
31
-        select s.subjectid,e.exammode,e.examstate
31
+        select s.subjectid,s.pstate,e.exammode,e.examstate
32 32
         from ms_subject s left join ms_exam e on s.examid=e.examid
33 33
         left join ms_paper p on s.msid = p.msid
34 34
         where p.mpid=#{mpid}
@@ -38,7 +38,6 @@
38 38
     <delete id="deleteTemplageBlockByMpid">
39 39
         delete from ms_template where mpid=#{mpid};
40 40
         delete from ms_paper_block where mpid=#{mpid};
41
-        delete from ms_paper_check where mpid=#{mpid};
42 41
     </delete>
43 42
 
44 43
     <!--获取考试试卷题量和分值-->

+ 3
- 2
smarking/src/main/resources/mapper/paper/MsPaperQtypeMapper.xml Visa fil

@@ -91,6 +91,7 @@
91 91
         <result column="mptnum" property="mptnum"></result>
92 92
         <result column="mptorder" property="mptorder"></result>
93 93
         <result column="mptscore" property="mptscore"></result>
94
+        <result column="mptctype" property="ctype"></result>
94 95
         <collection property="questions" ofType="com.xhkjedu.smarking.vo.paper.MsPaperQtypeQuestionVo" javaType="java.util.List">
95 96
             <result column="mptqid" property="mptqid"></result>
96 97
             <result column="mptid" property="mptid"></result>
@@ -113,8 +114,8 @@
113 114
         </collection>
114 115
     </resultMap>
115 116
     <select id="listPaperQtypeQuesitonsForFj" resultMap="fjtypeQuestions">
116
-        select  t.mptid,t.mpid,t.mptname,t.mptnum,t.mptorder,t.mptscore,q.mptqid,q.qtypeid,q.qtypename,
117
-                q.ctype,q.qscore,q.qn,q.qorder,q.qanswer,q.optionnum,q.complexity,q.loseoption,q.scoreset
117
+        select  t.mptid,t.mpid,t.ctype as mptctype,t.mptname,t.mptnum,t.mptorder,t.mptscore,q.mptqid,q.qtypeid,q.qtypename,
118
+                q.ctype,q.qscore,q.qn,q.qorder,q.optionnum,q.qanswer,q.optionnum,q.complexity,q.loseoption,q.scoreset
118 119
         from ms_paper_qtype_question q left join ms_paper_qtype t on t.mptid=q.mptid
119 120
         where t.mpid=#{mpid} order by t.mptorder,q.qorder
120 121
     </select>

+ 5
- 0
smarking/src/main/resources/mapper/papercheck/MsPaperCheckTeacherMapper.xml Visa fil

@@ -41,4 +41,9 @@
41 41
     <select id="listCheckTeacher2" resultType="com.xhkjedu.smarking.model.papercheck.MsPaperCheckTeacher">
42 42
         select * from ms_paper_check_teacher where mpid = #{mpid} and mblockid = #{mblockid}
43 43
     </select>
44
+
45
+    <!--根据试卷ID删除阅卷教师-->
46
+    <delete id="deleteByMpid">
47
+        delete from ms_paper_check_teacher where mpid = #{mpid}
48
+    </delete>
44 49
 </mapper>

Laddar…
Avbryt
Spara