JSD-8210开源任务材料
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

71 lines
2.6 KiB

package com.fr.plugin.xxx.report;
import com.fr.decision.fun.impl.BaseHttpHandler;
import com.fr.json.JSONArray;
import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.main.TemplateWorkBook;
import com.fr.plugin.xxx.report.core.DsUtils;
import com.fr.script.Calculator;
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
import com.fr.web.core.ReportSessionIDInfor;
import com.fr.web.core.SessionPoolManager;
import com.fr.web.utils.WebUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/**
* @author 秃破天际
* @version 10.0
* Created by 秃破天际 on 2020-04-17
**/
public class Server extends BaseHttpHandler {
public final static String URI = "/sheet/info";
@Override
public RequestMethod getMethod() {
return RequestMethod.GET;
}
@Override
public String getPath() {
return URI;
}
@Override
public boolean isPublic() {
return true;
}
@Override
public void handle(HttpServletRequest req, HttpServletResponse res) throws Exception {
FineLoggerFactory.getLogger().info("##### /sheet/info start...");
String sid = WebUtils.getHTTPRequestParameter(req,"sessionId");
FineLoggerFactory.getLogger().info("##### sid={}",sid);
ReportSessionIDInfor info = SessionPoolManager.getSessionIDInfor(sid, ReportSessionIDInfor.class);
Calculator cal = info.createSessionCalculator(req,res);
TemplateWorkBook book = info.getWorkBookDefine();
FineLoggerFactory.getLogger().info("##### book={}",book.toString());
Map<String,String> relation = DsUtils.getRelation("CONF_SHEET","id","name", book,cal);
JSONArray result = JSONArray.create();
FineLoggerFactory.getLogger().info("##### book.length={}",book.getReportCount());
for( int i=0,len=book.getReportCount();i<len;i++ ){
String id = book.getReportName(i);
FineLoggerFactory.getLogger().info("##### id[{}]={}",i,id);
JSONObject item = JSONObject.create().put("id",id);
if( relation.containsKey(id) ){
FineLoggerFactory.getLogger().info("##### name[{}]={}",i,relation.get(id));
item.put("name",relation.get(id));
}else{
FineLoggerFactory.getLogger().info("##### name[{}]={}",i,id);
item.put("name",id);
}
result.put(item);
}
FineLoggerFactory.getLogger().info("##### result={}",result.toString());
WebUtils.flushSuccessMessageAutoClose(req,res,result);
}
}