package com.hcks.cmfds.action.apdata; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.Result; import com.hcks.cmfds.commons.lang.QueryOrder; import com.hcks.cmfds.commons.util.DateUtils; import com.hcks.cmfds.commons.util.JsonUtils; import com.hcks.cmfds.commons.util.StringUtils; import com.hcks.cmfds.core.web.action.PaginationAction; import com.hcks.cmfds.model.Windpowerstation; import com.hcks.cmfds.model.Windturbine; import com.hcks.cmfds.model.Windturbineanalysisday; import com.hcks.cmfds.service.CacheContext; import com.hcks.cmfds.service.WindturbineanalysisdayService; @Namespace("/wtgoodness") @Result(name = "json", type = "json", params = { "textName", "json" }) public class WindturbinegoodhistoryAction extends PaginationAction { private static final long serialVersionUID = 1L; private List wps; private Date beginDate; private Date endDate; private String json; private String windfarm; private String windturbineid; private String wtId;; private Date recorddate; private String url1; private Map> wtsmap; private List vos; private WindturbineanalysisdayService windturbineanalysisdayService; private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); @Action(value = "goodhistoryindex", results = { @Result(name = "success", location = "/pages/apdata/goodhistory.jsp") }) public String goodhistoryindex() { initial(); vos = new ArrayList(); return SUCCESS; } @Action(value = "goodhistorylist") public String goodhistorylist() throws Exception { initial(); Map params = new HashMap(); if(StringUtils.notEmp(windturbineid)) { params.put("windturbineid", windturbineid); } if(StringUtils.notEmp(beginDate)) { params.put("@recorddate", DateUtils.truncate(beginDate)); } if(StringUtils.notEmp(endDate)) { params.put("$recorddate", DateUtils.truncate(endDate)); } QueryOrder orders=new QueryOrder("recorddate", "desc"); vos = windturbineanalysisdayService.findByProperties(params, orders); if (null != vos && !vos.isEmpty()) { json = JsonUtils.getJsons(vos); } else { json = JsonUtils.getJsons(new ArrayList()); } return JSON; } // private String getJsons(Object object) // { // ObjectMapper mappers = new ObjectMapper(); // String SIMPLE_DATETIME_FORMAT = "yyyy-MM-dd"; // SimpleDateFormat df = new SimpleDateFormat(SIMPLE_DATETIME_FORMAT); // mappers.configure(org.codehaus.jackson.map.SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false); // mappers.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false); // mappers.getSerializationConfig().setDateFormat(df); // try { // return mappers.writeValueAsString(object); // } catch (Exception e) { // throw new RuntimeException(e); // } // } private void initial() { wps=new ArrayList(); for (Windpowerstation station : CacheContext.wpls) { if (station.getId().endsWith("FDC")) { wps.add(station); } } Map> wtsmap = CacheContext.wtsmap; Map wtmap = CacheContext.wtmap; if (StringUtils.empty(windturbineid)) { List wtls = wtsmap.get(wps.get(0).getId()); windturbineid = wtls.get(0).getId(); } if (StringUtils.empty(windfarm)) { Windturbine wt = wtmap.get(windturbineid); windfarm = wt.getWindpowerstationid(); } if (StringUtils.empty(beginDate)) { Calendar cal = Calendar.getInstance(); String firstday = DateUtils.getCurrtenFirstDay(); if (firstday.equals(format.format(cal.getTime()))) { cal.add(Calendar.MONTH, -1); cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); beginDate = cal.getTime(); } else { cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH)); beginDate = cal.getTime(); } } if (StringUtils.empty(endDate)) { Calendar cal = Calendar.getInstance(); endDate = cal.getTime(); } setUrlInfo(); } private void setUrlInfo() { StringBuilder urlsb1 = new StringBuilder(); urlsb1.append("goodhistorylist.action?1=1"); StringBuilder sb = new StringBuilder(); if (StringUtils.notEmp(windfarm)) { sb.append("&windfarm="); sb.append(windfarm); } if (StringUtils.notEmp(windturbineid)) { sb.append("&windturbineid="); sb.append(windturbineid); } if (StringUtils.notEmp(beginDate)) { sb.append("&beginDate="); sb.append(DateUtils.toDate1(beginDate)); } if (StringUtils.notEmp(endDate)) { sb.append("&endDate="); sb.append(DateUtils.toDate1(endDate)); } url1 = String.valueOf(urlsb1.append(sb)); } public List getWps() { return wps; } public void setWps(List wps) { this.wps = wps; } public Date getBeginDate() { return beginDate; } public void setBeginDate(Date beginDate) { this.beginDate = beginDate; } public Date getEndDate() { return endDate; } public void setEndDate(Date endDate) { this.endDate = endDate; } public Map> getWtsmap() { return wtsmap; } public void setWtsmap(Map> wtsmap) { this.wtsmap = wtsmap; } public SimpleDateFormat getFormat() { return format; } public void setFormat(SimpleDateFormat format) { this.format = format; } public String getJson() { return json; } public void setJson(String json) { this.json = json; } public String getWindfarm() { return windfarm; } public void setWindfarm(String windfarm) { this.windfarm = windfarm; } public String getWindturbineid() { return windturbineid; } public void setWindturbineid(String windturbineid) { this.windturbineid = windturbineid; } public List getVos() { return vos; } public void setVos(List vos) { this.vos = vos; } public WindturbineanalysisdayService getWindturbineanalysisdayService() { return windturbineanalysisdayService; } public void setWindturbineanalysisdayService(WindturbineanalysisdayService windturbineanalysisdayService) { this.windturbineanalysisdayService = windturbineanalysisdayService; } public String getUrl1() { return url1; } public void setUrl1(String url1) { this.url1 = url1; } public Date getRecorddate() { return recorddate; } public void setRecorddate(Date recorddate) { this.recorddate = recorddate; } public String getWtId() { return wtId; } public void setWtId(String wtId) { this.wtId = wtId; } }