Browse Source

同步考生信息时,增加分数明细并保存到本地数据库

luoshi 5 years ago
parent
commit
88d0ed57f2
1 changed files with 21 additions and 6 deletions
  1. 21 6
      source/lib/sync.js

+ 21 - 6
source/lib/sync.js

@@ -23,17 +23,31 @@ class executor extends EventEmitter {
             while (true) {
             while (true) {
                 pageNumber++
                 pageNumber++
                 logger.info('student page=' + pageNumber)
                 logger.info('student page=' + pageNumber)
-                let array = await api.getStudents(env.examId, pageNumber, 1000)
+                let array = await api.getStudents(env.examId, pageNumber, 1000, true, undefined, true)
                 if (array == undefined || array.length == 0) {
                 if (array == undefined || array.length == 0) {
                     break
                     break
                 }
                 }
                 let datas = []
                 let datas = []
                 for (var i = 0; i < array.length; i++) {
                 for (var i = 0; i < array.length; i++) {
                     var obj = array[i]
                     var obj = array[i]
+                    var objList = []
+                    var subList = []
+                    if (obj.objectiveScoreDetail) {
+                        obj.objectiveScoreDetail.forEach(detail => {
+                            let score = Math.round(detail.score * 10 / 10)
+                            objList.push(detail.answer + ':' + score)
+                        })
+                    }
+                    if (obj.subjectiveScoreDetail) {
+                        obj.subjectiveScoreDetail.forEach(detail => {
+                            let score = Math.round(detail.score * 10 / 10)
+                            subList.push(score)
+                        })
+                    }
                     datas.push([obj['id'], env.examId, obj['schoolId'], obj['examNumber'], obj['name'], obj['studentCode'], obj['subjectCode'],
                     datas.push([obj['id'], env.examId, obj['schoolId'], obj['examNumber'], obj['name'], obj['studentCode'], obj['subjectCode'],
                         obj['subjectName'], obj['campusName'], obj['packageCode'], obj['batchCode'], obj['sheetCount'], obj['sliceCount'], obj['answers'],
                         obj['subjectName'], obj['campusName'], obj['packageCode'], obj['batchCode'], obj['sheetCount'], obj['sliceCount'], obj['answers'],
                         obj['upload'] ? 1 : 0, obj['absent'] ? 1 : 0, obj['breach'] ? 1 : 0, obj['manualAbsent'] ? 1 : 0, obj['objectiveScore'],
                         obj['upload'] ? 1 : 0, obj['absent'] ? 1 : 0, obj['breach'] ? 1 : 0, obj['manualAbsent'] ? 1 : 0, obj['objectiveScore'],
-                        obj['subjectiveScore'], obj['examSite'], obj['examRoom'], obj['remark']
+                        obj['subjectiveScore'], objList.join(';'), subList.join(';'), obj['examSite'], obj['examRoom'], obj['remark']
                     ])
                     ])
 
 
                     campus[obj['campusCode']] = {
                     campus[obj['campusCode']] = {
@@ -47,8 +61,9 @@ class executor extends EventEmitter {
                         , exam_number, name, student_code, subject_code, subject_name, campus_name\
                         , exam_number, name, student_code, subject_code, subject_name, campus_name\
                         , package_code, batch_code, sheet_count, slice_count, answers, is_upload\
                         , package_code, batch_code, sheet_count, slice_count, answers, is_upload\
                         , is_absent, is_manual_absent, is_breach, is_exception\
                         , is_absent, is_manual_absent, is_breach, is_exception\
-                        , objective_score, subjective_score, exam_site, exam_room, remark) \
-                        values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?,?)',
+                        , objective_score, subjective_score, objective_score_list, subjective_score_list\
+                        , exam_site, exam_room, remark) \
+                        values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,?,?,?,?,?,?,?)',
                         datas).then(() => {
                         datas).then(() => {
                         count += datas.length
                         count += datas.length
                         this.emit('student', count)
                         this.emit('student', count)
@@ -104,6 +119,6 @@ class executor extends EventEmitter {
     }
     }
 }
 }
 
 
-module.exports = function () {
+module.exports = function() {
     return new executor()
     return new executor()
-}
+}