|
@@ -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;
|
|
|
}
|
|
|
}
|
|
|
}
|