package com.cabletech.business.wplan.plan.action;
import java.util.HashMap;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.cabletech.baseinfo.business.entity.UserInfo;
import com.cabletech.business.wplan.plan.service.PatrolinfoScheduleService;
import com.cabletech.common.base.BaseAction;
import com.cabletech.common.util.Page;
/**
* 巡检进度查询页面
*
* @author wj
*
*/
@Namespace("/wplan")
@Results({
@Result(name = "statisticsquery", location = "/wplan/plan/schedule/schedule_statistics_query.jsp"),
@Result(name = "statisticsregion", location = "/wplan/plan/schedule/schedule_statistics_region.jsp"),
@Result(name = "statisticsorg", location = "/wplan/plan/schedule/schedule_statistics_org.jsp"),
@Result(name = "statisticspatrolgroup", location = "/wplan/plan/schedule/schedule_statistics_patrolgroup.jsp"),
@Result(name = "statisticspatrolman", location = "/wplan/plan/schedule/schedule_statistics_patrolman.jsp"),
@Result(name = "detailedlist", location = "/wplan/plan/schedule/schedule_detailed_list.jsp")
})
@Action("/patrolinfoScheduleAction")
public class PatrolinfoScheduleAction extends BaseAction {
private final static String QUERYTYPE_BYREGION = "byRegion";
private final static String QUERYTYPE_BYORG = "byOrg";
private final static String QUERYTYPE_BYPATROLGROUP = "byPatrolGroup";
private final static String QUERYTYPE_BYPATROLMAN = "byPatrolMan";
/**
* 巡检计划信息服务
*/
@Resource(name = "patrolinfoScheduleServiceImpl")
private PatrolinfoScheduleService patrolinfoScheduleService;
/**
* 统计列表
*/
public String statisticsQuery() {
return "statisticsquery";
}
/**
* 统计列表
*/
public String statisticsList() {
Map<String, Object> parameters = initConditions();
String queryType = (String)parameters.get("queryType");
getRequest().setAttribute("parameters", parameters);
if(QUERYTYPE_BYREGION.equals(queryType)){//按区域查询
return "statisticsregion";
}
if(QUERYTYPE_BYORG.equals(queryType)){//按组织查询
return "statisticsorg";
}
if(QUERYTYPE_BYPATROLGROUP.equals(queryType)){//按巡检组查询
return "statisticspatrolgroup";
}
if(QUERYTYPE_BYPATROLMAN.equals(queryType)){//按巡检员查询
return "statisticspatrolman";
}
return "";
}
/**
* 统计列表 数据
*/
public void statisticsData() {
Map<String, Object> parameter = initConditions();
String queryType = (String)parameter.get("queryType");
Page<Map<String, Object>> page = this.initPage();
parameter.put("user", super.getUser());
if(QUERYTYPE_BYREGION.equals(queryType)){//按区域查询
page = patrolinfoScheduleService.statisticsByRegion(parameter, page);
}
if(QUERYTYPE_BYORG.equals(queryType)){//按组织查询
page = patrolinfoScheduleService.statisticsByOrg(parameter, page);
}
if(QUERYTYPE_BYPATROLGROUP.equals(queryType)){//按巡检组查询
page = patrolinfoScheduleService.statisticsByPatrolGroup(parameter, page);
}
if(QUERYTYPE_BYPATROLMAN.equals(queryType)){//按巡检员查询
page = patrolinfoScheduleService.statisticsByPatrolMan(parameter, page);
}
setExcelParameter(page);
convertObjToJson(page);
}
/**
* 详细列表
*/
public String detailedList() {
getRequest().setAttribute("parameters", initConditions());
return "detailedlist";
}
/**
* 详细列表 数据
*/
public void detailedData() {
Map<String, Object> parameter = initConditions();
parameter.put("user", super.getUser());
Page<Map<String, Object>> page = this.initPage();
page = patrolinfoScheduleService.searchDetailed(parameter, page);
setExcelParameter(page);
convertObjToJson(page);
}
/**
* 封装查询条件
* @return Map
*/
private Map<String, Object> initConditions() {
HttpServletRequest request = this.getRequest();
Map<String, Object> map = new HashMap<String, Object>();
UserInfo userInfo = super.getUser();
String regionId = request.getParameter("regionId");
if(StringUtils.isBlank(request.getParameter("regionId"))){
regionId = userInfo.getRegionId();
}
String queryType = request.getParameter("queryType");
if(StringUtils.isBlank(request.getParameter("queryType"))){
if(userInfo.isMobile())queryType = QUERYTYPE_BYREGION;
if(userInfo.isContractor())queryType = QUERYTYPE_BYPATROLGROUP;
}
map.put("queryType",queryType);
map.put("regionId", regionId);
map.put("orgId", request.getParameter("orgId"));
map.put("patrolGroupId", request.getParameter("patrolGroupId"));
map.put("patrolManId", request.getParameter("patrolManId"));
map.put("startTime", request.getParameter("startTime"));
map.put("endTime", request.getParameter("endTime"));
return map;
}
@Override
public Object getModel() {
return null;
}
@Override
protected void prepareViewModel() throws Exception {
}
@Override
protected void prepareSaveModel() throws Exception {
}
}