1
0
Просмотр исходного кода

修复查询subjectCode 失败问题

xuwenjin 6 лет назад
Родитель
Сommit
25e0701187

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/dao/ReportSubjectGroupDao.java

@@ -18,7 +18,7 @@ public interface ReportSubjectGroupDao
 
     void deleteByExamId(Integer exmaId);
 
-    @Query("select q.mainNumber,q.mainTitle,count(q.mainNumber) as subNumber from ExamQuestion q where q.examId=?1 and q.subjectCode=?2 and q.objective=?3 group by q.mainNumber,q.mainTitle  "
+    @Query("select q.mainNumber,q.mainTitle,count(q.mainNumber) as subNumber from ExamQuestion q where q.examId=?1 and q.subjectCode=?2 and q.objective=?3 and q.paperType is not null group by q.mainNumber,q.mainTitle  "
             + "order by q.mainNumber")
     public List<Object[]> countGroupByMainNum(Integer examId, String subjectCode,
                                               boolean objective);

+ 11 - 10
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectRangeServiceImpl.java

@@ -6,6 +6,7 @@ import cn.com.qmth.stmms.biz.report.model.ReportSubjectRange;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectRangeService;
 import cn.com.qmth.stmms.biz.utils.DoubleUtil;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -48,7 +49,7 @@ public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjec
                 if (query.getExamId() != null) {
                     predicates.add(cb.equal(root.get("examId"), query.getExamId()));
                 }
-                if (query.getSubjectCode() != null) {
+                if (StringUtils.isNotBlank(query.getSubjectCode())) {
                     predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
                 }
                 return predicates.isEmpty() ? cb.conjunction()
@@ -73,7 +74,7 @@ public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjec
             subjectRange.setExamId(examId);
             subjectRange.setSubjectCode(obj[0].toString());
             subjectRange.setSubjectName(obj[1].toString());
-            subjectRange.setLevel(obj[2]!= null?obj[2].toString():"");
+            subjectRange.setLevel(obj[2] != null ? obj[2].toString() : "");
             subjectRange.setCount0_49(Integer.parseInt(obj[3].toString()));
             subjectRange.setCount50_59(Integer.parseInt(obj[4].toString()));
             subjectRange.setCount60_69(Integer.parseInt(obj[5].toString()));
@@ -83,14 +84,14 @@ public class ReportSubjectRangeServiceImpl extends BaseQueryService<ReportSubjec
             subjectRange.setLt60(Integer.parseInt(obj[9].toString()));
             subjectRange.setMte60(Integer.parseInt(obj[10].toString()));
             subjectRange.setTotalCount(Integer.parseInt(obj[11].toString()));
-            subjectRange.setPercent0_49(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount0_49(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent50_59(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount50_59(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent60_69(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount60_69(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent70_79(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount70_79(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent80_89(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount80_89(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent90_100(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount90_100(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent_lt60(DoubleUtil.format(DoubleUtil.div(subjectRange.getLt60(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
-            subjectRange.setPercent_mte60(DoubleUtil.format(DoubleUtil.div(subjectRange.getMte60(), subjectRange.getTotalCount(), 4) * 100,"0.00"));
+            subjectRange.setPercent0_49(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount0_49(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent50_59(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount50_59(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent60_69(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount60_69(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent70_79(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount70_79(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent80_89(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount80_89(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent90_100(DoubleUtil.format(DoubleUtil.div(subjectRange.getCount90_100(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent_lt60(DoubleUtil.format(DoubleUtil.div(subjectRange.getLt60(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
+            subjectRange.setPercent_mte60(DoubleUtil.format(DoubleUtil.div(subjectRange.getMte60(), subjectRange.getTotalCount(), 4) * 100, "0.00"));
             reportSubjectRangetDao.save(subjectRange);
         }
     }

+ 3 - 2
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/report/service/impl/ReportSubjectServiceImpl.java

@@ -6,6 +6,7 @@ import cn.com.qmth.stmms.biz.report.model.ReportSubject;
 import cn.com.qmth.stmms.biz.report.query.ReportSubjectQuery;
 import cn.com.qmth.stmms.biz.report.service.ReportSubjectService;
 import cn.com.qmth.stmms.biz.utils.DoubleUtil;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.jpa.domain.Specification;
@@ -52,7 +53,7 @@ public class ReportSubjectServiceImpl extends BaseQueryService<ReportSubject> im
                 if (query.getExamId() != null) {
                     predicates.add(cb.equal(root.get("examId"), query.getExamId()));
                 }
-                if (query.getSubjectCode() != null) {
+                if (StringUtils.isNotBlank(query.getSubjectCode())) {
                     predicates.add(cb.equal(root.get("subjectCode"), query.getSubjectCode()));
                 }
                 return predicates.isEmpty() ? cb.conjunction()
@@ -78,7 +79,7 @@ public class ReportSubjectServiceImpl extends BaseQueryService<ReportSubject> im
             subject.setRealityCount(Integer.parseInt(rs[6].toString()));
             subject.setMaxScore(Double.parseDouble(rs[7].toString()));
             subject.setMinScore(Double.parseDouble(rs[8].toString()));
-            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[9].toString()),"0.00"));
+            subject.setAvgScore(DoubleUtil.format(Double.parseDouble(rs[9].toString()), "0.00"));
             subject.setPassCount(Integer.parseInt(rs[10].toString()));
             subject.setPassRate(DoubleUtil.div(Integer.parseInt(rs[10].toString()), Integer.parseInt(rs[6].toString()), 2));
             reportSubjectDao.save(subject);