|
|
@@ -8,12 +8,16 @@ import java.lang.reflect.Method;
|
|
|
import java.net.URLDecoder;
|
|
|
import java.sql.SQLException;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Map.Entry;
|
|
|
+import java.util.Set;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
@@ -32,6 +36,7 @@ import com.yw.bpm.instance.service.FlowService;
|
|
|
import com.yw.bpm.system.init.UrlMapping;
|
|
|
import com.yw.bpm.system.model.SystemUser;
|
|
|
import com.yw.bpm.system.util.JsonUtil;
|
|
|
+import com.yw.bpm.system.util.ServletUtil;
|
|
|
import com.yw.core.framework.http.PermitDataAction;
|
|
|
import com.yw.core.framework.http.RequestUtil;
|
|
|
import com.yw.core.session.AppSession;
|
|
|
@@ -83,6 +88,7 @@ public class PmProjectAction extends PermitDataAction {
|
|
|
private String apply_add="/yw/pm/project/plan/apply_add.jsp";
|
|
|
private String tips="/yw/pm/tips.jsp";
|
|
|
private String flowStatisticsForPmUrl="/yw/pm/project/info/flowStatisticsForPm.jsp";
|
|
|
+ private String prostatlist="/yw/pm/project/info/projectStatistics_list.jsp";
|
|
|
|
|
|
private PmProjectService pmProjectService;
|
|
|
private PmProjectFinishApply apply;
|
|
|
@@ -93,7 +99,10 @@ public class PmProjectAction extends PermitDataAction {
|
|
|
public void afterPermitDataAction(HttpServletRequest request,
|
|
|
HttpServletResponse response) throws Exception {
|
|
|
// TODO Auto-generated method stub
|
|
|
- response.setContentType("text/html;charset=GBK");
|
|
|
+ /*request.setCharacterEncoding("UTF-8");
|
|
|
+ response.setCharacterEncoding("UTF-8");
|
|
|
+ response.setContentType("text/html;charset=UTF-8");*/
|
|
|
+ ServletUtil.setEncodingAndType(request, response);
|
|
|
String task = request.getParameter("task");
|
|
|
contextPath = request.getContextPath();
|
|
|
Long id = oasession.getCompanyRoot().getId();
|
|
|
@@ -397,6 +406,14 @@ public class PmProjectAction extends PermitDataAction {
|
|
|
this.getFlowStatisticsForPm(request, response);
|
|
|
this.path = PATH_AJAX;
|
|
|
return;
|
|
|
+ }else if("toprostatlist".equals(task)){
|
|
|
+ toListProjectStateForStat(request,response);
|
|
|
+ this.path=prostatlist;
|
|
|
+ }else if("prostatlist".equals(task)){
|
|
|
+ String result=prostatlist(request,response);
|
|
|
+ responseAjax(response, result);
|
|
|
+ this.path = PATH_AJAX;
|
|
|
+ return;
|
|
|
}
|
|
|
}
|
|
|
public int editmile(HttpServletRequest request,HttpServletResponse response) throws Exception {
|
|
|
@@ -2352,10 +2369,17 @@ public class PmProjectAction extends PermitDataAction {
|
|
|
}
|
|
|
|
|
|
public void getProjectsForPmStat(HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
+ PmProjectService pmProjectService=(PmProjectService)this.getBean(PmProjectService.class, "pmProjectService");
|
|
|
Long unitId = oasession.getUnit().getId();
|
|
|
Map<String, String> map = new HashMap<String, String>();
|
|
|
- map.put("unitId", String.valueOf(unitId));
|
|
|
- PmProjectService pmProjectService=(PmProjectService)this.getBean(PmProjectService.class, "pmProjectService");
|
|
|
+ map.put("unitId", String.valueOf(unitId));
|
|
|
+ String project_id=request.getParameter("project_id");
|
|
|
+ String project_name="";
|
|
|
+ if(!com.yw.pm.common.util.StringUtil.isEmpty(project_id)){
|
|
|
+ Map<String, Object> projectMap=pmProjectService.getProjectById(Long.parseLong(project_id));
|
|
|
+ project_name=projectMap.get("project_name").toString();
|
|
|
+ }
|
|
|
+ request.setAttribute("project_name", project_name);
|
|
|
List<Map<String, Object>> projectList = new ArrayList<Map<String, Object>>();
|
|
|
projectList = pmProjectService.getProjectsForPmStat(map);
|
|
|
String projectJson = JsonUtil.getJson(projectList, true);
|
|
|
@@ -2388,5 +2412,81 @@ public class PmProjectAction extends PermitDataAction {
|
|
|
out.print(statResult);
|
|
|
return;
|
|
|
}
|
|
|
+
|
|
|
+ /***
|
|
|
+ * 项目统计列表
|
|
|
+ * @param request
|
|
|
+ * @param response
|
|
|
+ * @return
|
|
|
+ * @throws Exception
|
|
|
+ */
|
|
|
+ public String prostatlist(HttpServletRequest request,
|
|
|
+ HttpServletResponse response) throws Exception{
|
|
|
+ PmProjectService pmProjectService=(PmProjectService)this.getBean(PmProjectService.class, "pmProjectService");
|
|
|
+ String p = request.getParameter("p");
|
|
|
+ String pSize = request.getParameter("pSize");
|
|
|
+ int intp = ParameterHelper.isNullP(p);
|
|
|
+ int intpSize = ParameterHelper.isNullPSize(pSize);
|
|
|
+ List<Map<String, Object>> projectList = new ArrayList<Map<String, Object>>();
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ Long unitId = oasession.getUnit().getId();
|
|
|
+ map.put("unitId", String.valueOf(unitId));
|
|
|
+
|
|
|
+ String project_code=request.getParameter("project_code");
|
|
|
+ if(!com.yw.pm.common.util.StringUtil.isEmpty(project_code)){
|
|
|
+ project_code=URLDecoder.decode(project_code, "utf-8");
|
|
|
+ map.put("project_code", project_code);
|
|
|
+ }
|
|
|
+ String project_name=request.getParameter("project_name");
|
|
|
+ if(!com.yw.pm.common.util.StringUtil.isEmpty(project_name)){
|
|
|
+ project_name=URLDecoder.decode(project_name, "utf-8");
|
|
|
+ map.put("project_name", project_name);
|
|
|
+ }
|
|
|
+ String state=request.getParameter("state");
|
|
|
+ map.put("state", state);
|
|
|
+ String start_date=request.getParameter("start_date");
|
|
|
+ map.put("start_date", start_date);
|
|
|
+ String end_date=request.getParameter("end_date");
|
|
|
+ map.put("end_date", end_date);
|
|
|
+ String lose_flag=request.getParameter("lose_flag");
|
|
|
+ map.put("lose_flag", lose_flag);
|
|
|
+ int total= 0;
|
|
|
+ projectList = pmProjectService.getProjectStatList(intp, intpSize, map);
|
|
|
+ for (Map<String, Object> project : projectList){
|
|
|
+ String project_id = project.get("universalid") == null ? "" : project.get("universalid").toString();
|
|
|
+ if (!StringUtil.isEmpty(project_id)){
|
|
|
+ Map<String, Object> count_hour = pmProjectService.getCountHour(project_id);
|
|
|
+ project.put("plan_hour_count", count_hour.get("plan_hour_count"));
|
|
|
+ project.put("prac_hour_count", count_hour.get("prac_hour_count"));
|
|
|
+ }
|
|
|
+ total = project.get("total_data") == null ? total : Integer.parseInt(project.get("total_data").toString());
|
|
|
+ }
|
|
|
+ projectList.remove(projectList.size()-1);
|
|
|
+ JsonConfig jsonConfig = new JsonConfig();
|
|
|
+ JsonDateValueProcessor jdvp = new JsonDateValueProcessor();
|
|
|
+ jsonConfig.registerJsonValueProcessor(Date.class, jdvp);
|
|
|
+ jsonConfig.registerJsonValueProcessor(java.sql.Date.class, jdvp);
|
|
|
+ JSONArray json = JSONArray.fromObject(projectList, jsonConfig);
|
|
|
+ String result = json.toString();
|
|
|
+ return "{Rows : " + result + ", Total : " + total + "}";
|
|
|
+ }
|
|
|
|
|
|
+ /**
|
|
|
+ * 项目状态(统计用)
|
|
|
+ * @param request
|
|
|
+ * @param response
|
|
|
+ */
|
|
|
+ public void toListProjectStateForStat(HttpServletRequest request,
|
|
|
+ HttpServletResponse response){
|
|
|
+ List<PmDataDictionary> projectState = new ArrayList<PmDataDictionary>();
|
|
|
+ projectState = PmDataDictionaryManager
|
|
|
+ .getListByValue("pm_projectState");
|
|
|
+ Set<String> excludedValues = new HashSet<>(Arrays.asList("1", "2", "4", "9"));
|
|
|
+ projectState = projectState.stream()
|
|
|
+ .filter(d -> d.getDvalue() != null && !excludedValues.contains(d.getDvalue()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ request.setAttribute("projectState", projectState);
|
|
|
+ String projectStateJson = JsonUtil.getJson(projectState, true);
|
|
|
+ request.setAttribute("projectStateJson", projectStateJson);
|
|
|
+ }
|
|
|
}
|