소스 검색

修改统分计算时java对浮点数的加减计算

ting.yin 4 년 전
부모
커밋
d6845058eb

+ 1 - 1
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkCronService.java

@@ -76,7 +76,7 @@ public class MarkCronService {
     @Scheduled(cron = "${mark.cleanTaskSchedule}")
     public void cronCleanTask() {
         try {
-            TaskLockUtil.clearTimeoutTask(timeoutMinute);
+            TaskLockUtil.clearTimeoutTask(timeoutMinute * 60 * 1000);
         } catch (Exception e) {
             log.error("CronCleanTask error", e);
         }

+ 4 - 3
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -56,6 +56,7 @@ import cn.com.qmth.stmms.common.enums.MarkStatus;
 import cn.com.qmth.stmms.common.enums.ScorePolicy;
 import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
 import cn.com.qmth.stmms.common.enums.ThirdPolicy;
+import cn.com.qmth.stmms.common.utils.BigDecimalUtils;
 
 /**
  * 与评卷相关的所有修改操作(非传播性的新增操作除外),全部汇总到这里进行集中控制
@@ -857,7 +858,7 @@ public class MarkServiceImpl implements MarkService {
         // 循环所有主观得分明细
         List<SubjectiveScore> list = scoreDao.findByStudentId(studentId);
         for (SubjectiveScore ss : list) {
-            totalScore += ss.getScore();
+            totalScore = BigDecimalUtils.add(totalScore, ss.getScore());
             scoreList.add(new ScoreItem(ss));
             List<SubjectiveScore> mainScoreList = map.get(ss.getMainNumber());
             if (mainScoreList == null) {
@@ -871,7 +872,7 @@ public class MarkServiceImpl implements MarkService {
             List<SubjectiveScore> mainScoreList = map.get(mainNumber);
             double mainScore = 0.0;
             for (SubjectiveScore subjectiveScore : mainScoreList) {
-                mainScore += subjectiveScore.getScore();
+                mainScore = BigDecimalUtils.add(mainScore, subjectiveScore.getScore());
             }
             for (SubjectiveScore subjectiveScore : mainScoreList) {
                 subjectiveScore.setMainScore(mainScore);
@@ -941,7 +942,7 @@ public class MarkServiceImpl implements MarkService {
                         try {
                             ScoreItem item = detail.get(i);
                             ScoreItem other = scores.get(i);
-                            item.setScore(item.getScore() + other.getScore());
+                            item.setScore(BigDecimalUtils.add(item.getScore(), other.getScore()));
                         } catch (Exception e) {
                             continue;
                         }

+ 3 - 5
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/utils/TaskLock.java

@@ -1,11 +1,10 @@
 package cn.com.qmth.stmms.biz.utils;
 
 import java.util.Date;
-import java.util.List;
 
-import cn.com.qmth.stmms.common.utils.DateUtils;
 import net.sf.json.JSONArray;
 import net.sf.json.JSONObject;
+import cn.com.qmth.stmms.common.utils.DateUtils;
 
 /**
  * 链表模式实现的任务互斥锁工具
@@ -103,7 +102,7 @@ public class TaskLock {
         long current = System.currentTimeMillis();
         LockNode node = head.next;
         while (node != null) {
-            if ((current - node.time) > expireTime * 1000 * 60) {
+            if ((current - node.time) > expireTime) {
                 node.remove();
                 count--;
             }
@@ -151,8 +150,7 @@ public class TaskLock {
         return count;
     }
 
-    @SuppressWarnings("unchecked")
-    public List<LockNode> list() {
+    public JSONArray list() {
         JSONArray array = new JSONArray();
         LockNode node = head.next;
         while (node != null) {

+ 1 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupEditSimple.jsp

@@ -168,7 +168,7 @@
             $('#intervalScoreList').val(array.join(','));
             $('#inputForm').submit();
         } else {
-            alert('间隔分不能为空且大于0.1');
+            alert('间隔分不能为空且大于等于0.1');
         }
     });
 </script>