|
@@ -3,6 +3,7 @@ package edu.nju.service;
|
|
import edu.nju.dao.*;
|
|
import edu.nju.dao.*;
|
|
import edu.nju.entities.*;
|
|
import edu.nju.entities.*;
|
|
import edu.nju.model.ReviewWorkerVO;
|
|
import edu.nju.model.ReviewWorkerVO;
|
|
|
|
+import edu.nju.util.OssAliyun;
|
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
import org.apache.poi.ss.usermodel.Cell;
|
|
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.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
+import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
|
|
+import java.util.Arrays;
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -93,68 +96,9 @@ public class ReviewAnalyzeService {
|
|
return jsonObject;
|
|
return jsonObject;
|
|
}
|
|
}
|
|
|
|
|
|
- public static void main(String[] args) {
|
|
|
|
- getExcelTest();
|
|
|
|
- }
|
|
|
|
|
|
|
|
- public static boolean getExcelTest (){
|
|
|
|
- int rIndex = 0;
|
|
|
|
- int iIndex = 0;
|
|
|
|
- int oIndex = 0;
|
|
|
|
- int tempRI;
|
|
|
|
- int temp ;
|
|
|
|
- try {
|
|
|
|
- HSSFWorkbook wb = new HSSFWorkbook();
|
|
|
|
- tempRI = 0;
|
|
|
|
- FileOutputStream fileOut = null; // 为了输出excel 文件
|
|
|
|
- HSSFSheet sheet1 = wb.createSheet("job.getName()");
|
|
|
|
- Row rTemp ;
|
|
|
|
- Cell cTemp;
|
|
|
|
- DecimalFormat df = new DecimalFormat("#.00");
|
|
|
|
- for( int it = 0 ; it < 10 ; it++){ // report
|
|
|
|
- //List<ReviewItem> items = reviewItemDao.findItemsByReport(r.getId());
|
|
|
|
- tempRI = 0;
|
|
|
|
- for ( int jt = 0 ; jt < 3 ; jt++ ){ // item
|
|
|
|
-// List<ReviewAnswer> answers = reviewAnswerDao.getItemReportJobAnswers(i.getId(),r.getId(),jobId);
|
|
|
|
-// int [] answerCount = new int [answers.size()];
|
|
|
|
- StringBuffer sb = new StringBuffer() ;
|
|
|
|
- switch ("1"){
|
|
|
|
- case "1":
|
|
|
|
- for( int iit =0;iit<3;iit++){
|
|
|
|
- rTemp = sheet1.createRow(oIndex++);
|
|
|
|
- cTemp = rTemp.createCell(2);
|
|
|
|
- cTemp.setCellValue("this is " + iit + " from jt "+ jt +"oindex"+ oIndex);
|
|
|
|
- }
|
|
|
|
- default:
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- temp = iIndex + 3-1;
|
|
|
|
- sheet1.addMergedRegion(new CellRangeAddress(iIndex,temp,1,1));
|
|
|
|
- rTemp = sheet1.getRow(iIndex);
|
|
|
|
- cTemp = rTemp.createCell(1);
|
|
|
|
- cTemp.setCellValue("i.getDescription()");
|
|
|
|
- iIndex = temp+1;
|
|
|
|
- tempRI+=3;
|
|
|
|
- }
|
|
|
|
- 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.getNamewhile i = " + it);
|
|
|
|
- rIndex = temp+1;
|
|
|
|
- }
|
|
|
|
- fileOut = new FileOutputStream("/Users/insomniaLee/Desktop/temp/13.xls");
|
|
|
|
- wb.write(fileOut);
|
|
|
|
- return true;
|
|
|
|
- }catch (Exception e){
|
|
|
|
- e.printStackTrace();
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
|
|
- public boolean getExcel (String jobId){
|
|
|
|
|
|
+ public String getExcel (String jobId){
|
|
int rIndex = 0;
|
|
int rIndex = 0;
|
|
int iIndex = 0;
|
|
int iIndex = 0;
|
|
int oIndex = 0;
|
|
int oIndex = 0;
|
|
@@ -188,9 +132,9 @@ public class ReviewAnalyzeService {
|
|
for( int ii =0;ii<i.getOptions().size();ii++){
|
|
for( int ii =0;ii<i.getOptions().size();ii++){
|
|
rTemp = sheet1.createRow(oIndex++);
|
|
rTemp = sheet1.createRow(oIndex++);
|
|
cTemp = rTemp.createCell(2);
|
|
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" :
|
|
case "Description" :
|
|
for(ReviewAnswer answer : answers){
|
|
for(ReviewAnswer answer : answers){
|
|
sb.append(answer.getAnswers().toString()+"\n");
|
|
sb.append(answer.getAnswers().toString()+"\n");
|
|
@@ -198,6 +142,7 @@ public class ReviewAnalyzeService {
|
|
rTemp = sheet1.createRow(oIndex++);
|
|
rTemp = sheet1.createRow(oIndex++);
|
|
cTemp = rTemp.createCell(2);
|
|
cTemp = rTemp.createCell(2);
|
|
cTemp.setCellValue(sb.toString());
|
|
cTemp.setCellValue(sb.toString());
|
|
|
|
+ break;
|
|
case "File":
|
|
case "File":
|
|
for(ReviewAnswer answer : answers){
|
|
for(ReviewAnswer answer : answers){
|
|
sb.append(answer.getFile_url()+"\n");
|
|
sb.append(answer.getFile_url()+"\n");
|
|
@@ -205,10 +150,11 @@ public class ReviewAnalyzeService {
|
|
rTemp = sheet1.createRow(oIndex++);
|
|
rTemp = sheet1.createRow(oIndex++);
|
|
cTemp = rTemp.createCell(2);
|
|
cTemp = rTemp.createCell(2);
|
|
cTemp.setCellValue(sb.toString());
|
|
cTemp.setCellValue(sb.toString());
|
|
|
|
+ break;
|
|
default:
|
|
default:
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- if(i.getOptions().size()<=1){
|
|
|
|
|
|
+ if(i.getOptions().size()<=1){ // File or description
|
|
temp = iIndex ;
|
|
temp = iIndex ;
|
|
}else{
|
|
}else{
|
|
temp = iIndex + i.getOptions().size()-1;
|
|
temp = iIndex + i.getOptions().size()-1;
|
|
@@ -224,21 +170,27 @@ public class ReviewAnalyzeService {
|
|
tempRI+=i.getOptions().size();
|
|
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.getRow(rIndex);
|
|
|
|
- cTemp = rTemp.createCell(0);
|
|
|
|
- cTemp.setCellValue(r.getName()+"-"+r.getDescription());
|
|
|
|
- rIndex = temp+1;
|
|
|
|
}
|
|
}
|
|
- fileOut = new FileOutputStream("/Users/xujiawei/Desktop/temp/"+jobId+".xls");
|
|
|
|
|
|
+ fileOut = new FileOutputStream("/Users/insomnialee/Desktop/temp/"+jobId+".xls");
|
|
wb.write(fileOut);
|
|
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){
|
|
}catch (Exception e){
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
- return false;
|
|
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|