package com.cabletech.business.wplan.plan.action;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
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.model.PatrolTemplate;
import com.cabletech.business.wplan.plan.model.Patrolinfo;
import com.cabletech.business.wplan.plan.service.PatrolResourceService;
import com.cabletech.business.wplan.plan.service.PatrolTemplateService;
import com.cabletech.business.wplan.plan.service.PatrolinfoService;
import com.cabletech.common.base.SysConstant;
import com.cabletech.common.util.DateUtil;
import com.cabletech.common.util.Page;
import com.cabletech.common.util.ServiceException;
/**
* 巡检计划Action
*
* @author zhaobi
*
*/
@Namespace("/wplan")
@Results({
@Result(name = "input", location = "/wplan/plan/patrolinfo_input.jsp"),
@Result(name = "view", location = "/wplan/plan/patrolinfo_view.jsp"),
@Result(name = "list", location = "/wplan/plan/patrolinfo_list.jsp") })
@Action("/patrolinfoAction")
public class PatrolinfoAction extends PatrolinfoBaseAction<Patrolinfo, String> {
/**
* 巡检计划信息
*/
private Patrolinfo patrolinfo = new Patrolinfo();
/**
* 巡检计划信息服务
*/
@Resource(name = "patrolinfoServiceImpl")
private PatrolinfoService patrolinfoService;
/**
* 巡检资源服务
*/
@Resource(name = "patrolResourceServiceImpl")
private PatrolResourceService patrolResourceService;
/**
* 计划模板服务
*/
@Resource(name = "patrolTemplateServiceImpl")
private PatrolTemplateService patrolTemplateService;
/*
* (non-Javadoc)
*
* @see com.cabletech.common.base.BaseAction#input()
*/
@Override
public String input() {
try {
return INPUT;
} catch (ServiceException e) {
logger.error("执行添加计划出错:" + e.getMessage());
return ERROR;
}
}
@Override
public Patrolinfo getModel() {
return patrolinfo;
}
@Override
protected void prepareViewModel() throws Exception {
String id = this.getRequest().getParameter("id");
String businessType = this.getRequest().getParameter("type");
UserInfo user = super.getUser();
Map<String, Object> patrolinfoMAP = new HashMap<String, Object>();
if (StringUtils.isNotBlank(id)) {
patrolinfoMAP = patrolinfoService.view(id);
if (StringUtils.isNotBlank(super.getRequest().getParameter("opt"))) {
patrolinfoMAP.remove("ID");
patrolinfoMAP.put("OPT", "copy");
}
PatrolTemplate template = patrolTemplateService.get(id);
List<Map<String, Object>> reslist = patrolResourceService
.getPatrolResourceByPlanid(id);
// 查看编辑时计划对应的巡检资源
this.getRequest().setAttribute("patrolResourceListJSON",
this.convertObjToJsonStr(reslist));
businessType = patrolinfoMAP.get("BUSINESS_TYPE").toString();
if (template != null) {
patrolinfoMAP.put("TEMPLATEID", template.getTemplateid());
}
} else {
// 设置查看时巡检年默认值
patrolinfoMAP
.put("YEAR", Calendar.getInstance().get(Calendar.YEAR));
patrolinfoMAP.put("REGIONNAME", this.getUser().getRegionName());
patrolinfoMAP.put("REGIONID", this.getUser().getRegionId());
}
this.getRequest().setAttribute("patrolinfoMap", patrolinfoMAP);
this.getRequest().setAttribute("btypeString", businessType);
this.setViewTag(businessType, user.getRegionId());
}
/**
* 查看计划信息
*
* @return
* @throws Exception
*/
public String view() throws Exception {
return VIEW;
}
@Override
protected void prepareSaveModel() throws Exception {
if (null == patrolinfo) {
patrolinfo = new Patrolinfo();
}
}
/**
* 根据专业类型动态获取模版
*/
public void gettemplate() {
String businessType = this.getParameter("type");
String regionId = super.getParameter("regionId");
if (StringUtils.isNotBlank(businessType)) {
convertObjToJson(getPlanTemplate(businessType, regionId));
}
}
/**
* 计划信息保存
*
* @return
*/
public String save() {
UserInfo user = this.getUser();
try {
// 半年
String id = patrolinfo.getId();
if (SysConstant.WPLAN_YEAR.equals(patrolinfo.getPlantype())) {
if (SysConstant.PLAN_XJND_1.equals(patrolinfo.getYeartype())) {
patrolinfo.setStartdate(DateUtil.StringToUtilDate(
patrolinfo.getYear() + "-01-01"
+ SysConstant.DAY_STARTTIME,
"yyyy-MM-dd HH:mm:ss"));
patrolinfo.setEnddate(DateUtil.StringToUtilDate(
patrolinfo.getYear() + "-06-30"
+ SysConstant.DAY_ENDTIME,
"yyyy-MM-dd HH:mm:ss"));
} else {
patrolinfo.setStartdate(DateUtil.StringToUtilDate(
patrolinfo.getYear() + "-07-01"
+ SysConstant.DAY_STARTTIME,
"yyyy-MM-dd HH:mm:ss"));
patrolinfo.setEnddate(DateUtil.StringToUtilDate(
patrolinfo.getYear() + "-12-31"
+ SysConstant.DAY_ENDTIME,
"yyyy-MM-dd HH:mm:ss"));
}
}
// 季度
else if (SysConstant.WPLAN_SEASON.equals(patrolinfo.getPlantype())) {
patrolinfo.setStartdate(DateUtil.StringToUtilDate(
DateUtil.getSeasonTime(patrolinfo.getYear(),
Integer.parseInt(patrolinfo.getSeasontype()),
true) + SysConstant.DAY_STARTTIME,
"yyyy-MM-dd HH:mm:ss"));
patrolinfo.setEnddate(DateUtil.StringToUtilDate(
DateUtil.getSeasonTime(patrolinfo.getYear(),
Integer.parseInt(patrolinfo.getSeasontype()),
false) + SysConstant.DAY_ENDTIME,
"yyyy-MM-dd HH:mm:ss"));
} else {
// 设置结束时间
patrolinfo.setStartdate(DateUtil.parseDate(
patrolinfo.getStarttime() + SysConstant.DAY_ENDTIME,
"yyyy-MM-dd HH:mm:ss"));
patrolinfo.setEnddate(DateUtil.parseDate(
patrolinfo.getEndtime() + SysConstant.DAY_ENDTIME,
"yyyy-MM-dd HH:mm:ss"));
}
patrolinfo.setCreater(user.getPersonId());
patrolinfo.setCreatername(user.getUserName());
patrolinfo.setCreatetime(new Date());
if (StringUtils.isEmpty(patrolinfo.getId())) {
patrolinfo.setId(null);
}
patrolinfoService.save(patrolinfo);
returnOfSave(id);
return SUCCESS;
} catch (ServiceException e) {
logger.error("执行添加计划出错:" + e.getMessage());
return ERROR;
}
}
/**
* 给save方法设定返回
*
* @param id
* patrolinfo.id
*/
private void returnOfSave(String id) {
String url = "";
if (StringUtils.isNotBlank(id)
|| StringUtils.isNotBlank(super.getRequest()
.getParameter("opt"))) {
url = "/wplan/patrolinfoAction!list.action?type="
+ patrolinfo.getBusinesstype();
} else {
url = "/wplan/patrolinfoAction!input.action?type="
+ patrolinfo.getBusinesstype();
}
if (SysConstant.FORM_IS_SUBMITED.equals(patrolinfo.getIssubmited())) {
this.addMessage("提交计划信息成功", url, SysConstant.SUCCESS);
} else {
this.addMessage("保存计划信息成功", url, SysConstant.SUCCESS);
}
}
/**
* 巡检信息列表页面
*
* @return
*/
public String list() {
try {
String business_type = this.getRequest().getParameter("type");
this.getRequest().setAttribute("businesstype", business_type);
return LIST;
} catch (Exception e) {
// TODO Auto-generated catch block
this.logger.error(e);
return ERROR;
}
}
/**
* 查询计划列表信息
*
* @return
*/
public void query() {
String businesstype = this.getRequest().getParameter("type");
patrolinfo.setBusinesstype(businesstype);
UserInfo userinfo = this.getUser();
if (!StringUtils.isNotBlank(patrolinfo.getRegionid())) {
patrolinfo.setRegionid(userinfo.getRegionId());
}
if (!StringUtils.isNotBlank(patrolinfo.getContractorid())) {
if (userinfo.isContractor()) {
patrolinfo.setContractorid(userinfo.getOrgId());
}
}
Page<Map<String, Object>> page = this.initPage();
page = patrolinfoService.listByPage(patrolinfo, page);
super.setExcelParameter(page);
convertObjToJson(page);
}
/**
* 删除计划信息
*/
public String delete() {
String id = this.getRequest().getParameter("id");
String business_type = this.getRequest().getParameter("type");
patrolinfoService.delete(id);
this.addMessage("删除计划信息成功", "/wplan/patrolinfoAction!list.action?type="
+ business_type, SysConstant.SUCCESS);
return SUCCESS;
}
}