Jelajahi Sumber

Merge remote-tracking branch 'origin/xjw' into xjw

MengyangDuan 5 tahun lalu
induk
melakukan
16047680ea

+ 2 - 1
src/main/java/edu/nju/controller/ReviewAnalyzeController.java

@@ -38,7 +38,8 @@ public class ReviewAnalyzeController {
     @RequestMapping(value = "/getJobExcel")
     @ResponseBody
     public String getExcel (String jobId){
-        return reviewAnalyzeService.getExcel(jobId)?"1111":"tmd";
+        String res = reviewAnalyzeService.getExcel(jobId);
+        return res==null?"errpr":res;
     }
 
 }

+ 28 - 15
src/main/java/edu/nju/service/ReviewAnalyzeService.java

@@ -3,6 +3,7 @@ package edu.nju.service;
 import edu.nju.dao.*;
 import edu.nju.entities.*;
 import edu.nju.model.ReviewWorkerVO;
+import edu.nju.util.OssAliyun;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
@@ -12,8 +13,10 @@ import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
 import java.io.FileOutputStream;
 import java.text.DecimalFormat;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -93,7 +96,9 @@ public class ReviewAnalyzeService {
         return jsonObject;
     }
 
-    public boolean getExcel (String jobId){
+
+
+    public String getExcel (String jobId){
         int rIndex = 0;
         int iIndex = 0;
         int oIndex = 0;
@@ -127,9 +132,9 @@ public class ReviewAnalyzeService {
                             for( int ii =0;ii<i.getOptions().size();ii++){
                                 rTemp = sheet1.createRow(oIndex++);
                                 cTemp = rTemp.createCell(2);
-                                cTemp.setCellValue(i.getOptions().get(ii)+":"+answerCount[ii]+" - "+df.format(100.0*answerCount[ii]/answers.size())+"%");
+                                cTemp.setCellValue(i.getOptions().get(ii)+":"+answerCount[ii]+" - "+df.format(100.0*answerCount[ii]/ (Arrays.stream(answerCount).sum()==0?1:Arrays.stream(answerCount).sum()))+"%");
                             }
-
+                            break;
                         case "Description" :
                             for(ReviewAnswer answer : answers){
                                 sb.append(answer.getAnswers().toString()+"\n");
@@ -137,6 +142,7 @@ public class ReviewAnalyzeService {
                             rTemp = sheet1.createRow(oIndex++);
                             cTemp = rTemp.createCell(2);
                             cTemp.setCellValue(sb.toString());
+                            break;
                         case "File":
                             for(ReviewAnswer answer : answers){
                                 sb.append(answer.getFile_url()+"\n");
@@ -144,16 +150,17 @@ public class ReviewAnalyzeService {
                             rTemp = sheet1.createRow(oIndex++);
                             cTemp = rTemp.createCell(2);
                             cTemp.setCellValue(sb.toString());
+                            break;
                         default:
                             break;
                     }
-                    if(i.getOptions().size()<=1){
+                    if(i.getOptions().size()<=1){ // File or description
                         temp = iIndex ;
                     }else{
                         temp = iIndex + i.getOptions().size()-1;
                         sheet1.addMergedRegion(new CellRangeAddress(iIndex,temp,1,1));
                     }
-                    rTemp = sheet1.createRow(iIndex);
+                    rTemp = sheet1.getRow(iIndex);
                     cTemp = rTemp.createCell(1);
                     cTemp.setCellValue(i.getDescription());
                     iIndex = temp+1;
@@ -163,21 +170,27 @@ public class ReviewAnalyzeService {
                         tempRI+=i.getOptions().size();
                     }
                 }
-                temp = rIndex + tempRI-1;
-                if(temp!=rIndex){
-                    sheet1.addMergedRegion(new CellRangeAddress(rIndex,temp,0,0));
+                if(items.size()!=0){
+                    // 如果没有item的情况
+                    tempRI=tempRI==0?1:tempRI;
+                    temp = rIndex + tempRI -1;
+                    if(temp!=rIndex){
+                        sheet1.addMergedRegion(new CellRangeAddress(rIndex,temp,0,0));
+                    }
+                    rTemp = sheet1.getRow(rIndex);
+                    cTemp = rTemp.createCell(0);
+                    cTemp.setCellValue(r.getName()+"-"+r.getDescription());
+                    rIndex = temp+1;
                 }
-                rTemp = sheet1.createRow(rIndex);
-                cTemp = rTemp.createCell(0);
-                cTemp.setCellValue(r.getName()+"-"+r.getDescription());
-                rIndex = temp+1;
             }
-            fileOut = new FileOutputStream("/Users/xujiawei/Desktop/temp/1.xls");
+            fileOut = new FileOutputStream("/Users/insomnialee/Desktop/temp/"+jobId+".xls");
             wb.write(fileOut);
-            return true;
+            File file = new File("/Users/insomnialee/Desktop/temp/"+jobId+".xls");
+            OssAliyun.uploadFile("auditExcel/"+jobId+".xls",file);
+            return "http://mooctest-site.oss-cn-shanghai.aliyuncs.com/auditExcel/"+jobId+".xls";
         }catch (Exception e){
             e.printStackTrace();
-            return false;
+            return null;
         }
     }
 }