Ver código fonte

Merge branch '2.2.0' of http://shvber.com:8083/Git/VSDSM_SERVER into 2.2.0

klzhangweiya 2 anos atrás
pai
commit
9882654e71

+ 2 - 1
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/common/utils/MonitorUtil.java

@@ -71,8 +71,9 @@ public class MonitorUtil {
 	 * @return
 	 */
 	public static BigDecimal calcCtPt(Monitor m,BigDecimal val){
+
 		double d = Math.abs(val.doubleValue());
-		d *= ((m.getUseCt() == 1 ? m.getCt() : 1) * (m.getUsePt() == 1 ? m.getPt() : 1));
+		d *= ((m!=null&&m.getUseCt() == 1 ? m.getCt() : 1) * (m!=null&&m.getUsePt() == 1 ? m.getPt() : 1));
 		return new BigDecimal(d);
 	}
 	

+ 93 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/dao/CompanyDateMDao.java

@@ -0,0 +1,93 @@
+package cn.vbdsm.powerservice.dao;
+
+import cn.vbdsm.common.constants.DataSourceConstant;
+import cn.vbdsm.core.dao.datasource.DynamicDataSource;
+import cn.vbdsm.core.dao.datasource.DynamicDataSourceEntry;
+import cn.vbdsm.powerservice.model.CompanyDateM;
+import com.alibaba.fastjson.JSONArray;
+import org.springframework.stereotype.Repository;
+
+import javax.annotation.Resource;
+import javax.core.common.jdbc.BaseDaoSupport;
+import javax.core.common.jdbc.QueryRule;
+import javax.sql.DataSource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * 公司日最值 Dao
+ * @author LAUEZX
+ *
+ */
+
+@Repository
+public class CompanyDateMDao extends BaseDaoSupport<CompanyDateM, Long> {
+
+    private SimpleDateFormat monthSdf = new SimpleDateFormat("yyyyMM");
+
+    private DynamicDataSourceEntry dynamicDataSourceEntry;
+
+    @Override
+    protected String getPKColumn() { return "id"; }
+
+    /**
+     * 配置动态数据源
+     *
+     * @param dataSource
+     */
+    @Resource(name = "dynamicDataSource")
+    public void setDataSource(DataSource dataSource) {
+        dynamicDataSourceEntry = ((DynamicDataSource) dataSource).getDataSourceEntry();
+        super.setDataSourceReadOnly(dataSource);
+        super.setDataSourceWrite(dataSource);
+    }
+
+
+    public CompanyDateM selectByCompanyId(Long companyId,String date) {
+
+        QueryRule queryRule = QueryRule.getInstance();
+        queryRule.andEqual("companyId", companyId);
+        queryRule.andEqual("getDate", date);
+        dynamicDataSourceEntry.set(DataSourceConstant.DB_GOV);
+        return (CompanyDateM) super.findUnique(queryRule);
+    }
+    public List<CompanyDateM> selectByCompanyIds(String companyIds,String date) {
+        List<Object> conditionList = new ArrayList<Object>();
+        String sql = "SELECT * FROM t_company_date_m WHERE getDate=? AND companyId in("+companyIds+")";
+        conditionList.add(date);
+        dynamicDataSourceEntry.set(DataSourceConstant.DB_GOV);
+        List<Map<String, Object>> result = super.findBySql(sql, conditionList);
+        return JSONArray.parseArray(JSONArray.toJSONString(result), CompanyDateM.class);
+    }
+//	public List<CompanyDateM> selectForPage(int pageNo,int pageSize){
+//		int start = Page.getStartOfPage(pageNo, pageSize);
+//		String sql = "select * from " + op.tableName + "_copy" + " limit ?,?";
+//		dynamicDataSourceEntry.set(DataSourceConstant.DB_GOV);
+//		List<Map<String,Object>> result = super.findBySql(sql, start,pageSize);
+//		return JSONArray.parseArray(JSONArray.toJSONString(result), CompanyDateM.class);
+//	}
+
+
+    public int replaceForBatch(List<CompanyDateM> entity) throws Exception{
+        //保存到实时库
+        dynamicDataSourceEntry.set(DataSourceConstant.DB_GOV);
+        return this.replaceAll(entity);
+    }
+
+
+    public List<CompanyDateM> selectByMonth(Date m){
+        String month = monthSdf.format(m);
+
+        Calendar c = Calendar.getInstance();
+        c.setTime(m);
+        int lastDayNum = c.getMaximum(Calendar.DAY_OF_MONTH);
+        String lastDay = (lastDayNum < 10 ? ("0" + lastDayNum) : ("" + lastDayNum));
+
+        QueryRule queryRule = QueryRule.getInstance();
+        queryRule.andBetween("getDate", Long.valueOf(month + "01"),Long.valueOf(month + lastDay));
+
+        dynamicDataSourceEntry.set(DataSourceConstant.DB_GOV);
+        return super.find(queryRule);
+    }
+}

+ 29 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/dao/CompanyOnlineDao.java

@@ -1,12 +1,17 @@
 package cn.vbdsm.powerservice.dao;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import javax.annotation.Resource;
 import javax.core.common.jdbc.BaseDaoSupport;
 import javax.core.common.jdbc.QueryRule;
 import javax.sql.DataSource;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import org.springframework.stereotype.Repository;
 
 import cn.vbdsm.common.constants.DataSourceConstant;
@@ -84,4 +89,28 @@ public class CompanyOnlineDao extends BaseDaoSupport<CompanyOnline, Long>{
 			return null;
 		}
 	}
+
+	public List<CompanyOnline> selectByCompanyIdsAndGetTime(List<Long> companyIds, long startTime, long endTime) {
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_GOV);
+		StringBuffer sql = new StringBuffer("SELECT t.getTime, SUM(t.p) as p FROM t_company_online t where 1=1");
+		sql.append(" and t.getTime >= ").append(startTime);
+		sql.append(" and t.getTime <= ").append(endTime);
+		sql.append(" AND (");
+		for (int i = 0;i < companyIds.size(); i++) {
+			sql.append(" t.companyId =").append(companyIds.get(i));
+			if(i < companyIds.size()-1)
+				sql.append(" OR");
+		}
+		sql.append(" ) ");
+		sql.append(" group by t.getTime");
+		sql.append(" order by t.getTime");
+		List<CompanyOnline> companyOnlines = new ArrayList<CompanyOnline>();
+		List<Map<String,Object>> resultList = super.findBySql(sql.toString(), new HashMap<String, Object>());
+		for (Map<String, Object> map : resultList) {
+			CompanyOnline companyOnline = new CompanyOnline();
+			companyOnline = JSONObject.toJavaObject((JSONObject) JSON.toJSON(map),CompanyOnline.class);
+			companyOnlines.add(companyOnline);
+		}
+		return companyOnlines;
+	}
 }

+ 80 - 5
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/dao/OnlineDataOverwarningInfoDao.java

@@ -1,9 +1,7 @@
 package cn.vbdsm.powerservice.dao;
 
 import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 import javax.annotation.Resource;
 import javax.core.common.Page;
@@ -180,7 +178,82 @@ public class OnlineDataOverwarningInfoDao extends BaseDaoSupport<OnlineDataOverw
 		Query query = getQuery(companyId,condition);
 		return super.findBySqlToPage(query.sql, query.param, pageNo, pageSize);
 	}
-	
+
+	public Page<Map<String,Object>> getWarningList(String companyIds,boolean isService,OnlineDataOverwarningInfo condition,int pageNo,int pageSize){
+		Map<String,Object> param = new HashMap<String,Object>();
+		StringBuffer sql = new StringBuffer("SELECT m.name,m.companyId,a.* FROM t_online_data_overwarning_info as a INNER JOIN t_monitor as m on a.terminalId = m.terminalId WHERE 1 = 1 ");
+		if(!(null == condition.getWarningInfoId() || condition.getWarningInfoId() == 0)){
+			sql.append(" and a.warningInfoId = :warningInfoId");
+			param.put("warningInfoId",condition.getWarningInfoId());
+		}
+		//默认获取5分钟以内的数据
+		Calendar c = Calendar.getInstance();
+		c.add(Calendar.MINUTE, -5);
+		if(null == condition.getWarningTimeStart() || condition.getWarningTimeStart() == 0){
+			condition.setWarningTimeStart(Long.valueOf(sdf.format(c.getTime())));
+		}
+		sql.append(" and a.warningTimeStart >= :warningTimeStart");
+
+		if(!(null == condition.getWarningTimeEnd() || condition.getWarningTimeEnd() == 0)){
+			sql.append(" and a.warningTimeEnd <= :warningTimeEnd");
+			param.put("warningTimeEnd",condition.getWarningTimeEnd());
+		}else{
+			sql.append(" and a.warningTimeEnd is not null");
+		}
+		//sql.append(" and a.warningInfoId in (" + ListUtils.join(WarnInfoConstants.getCodes(), ",") + ")");
+		sql.append(" and m.companyId = :companyId");
+		if(isService){
+			sql.append(" and m.companyId in (:companyId)");
+		}else{
+			sql.append(" and m.companyId = :companyId");
+		}
+		//排序规则
+		sql.append(" order by warningTimeStart desc");	//优先告警时间降序
+
+		//设置查询条件
+		param.put("warningTimeStart",condition.getWarningTimeStart());
+		param.put("companyId",companyIds);
+
+		return super.findBySqlToPage(sql.toString(), param,pageNo,pageSize);
+	}
+
+
+
+	public List<Map<String, Object>> getWarningList(String companyIds,boolean isService,OnlineDataOverwarningInfo condition){
+		String sql="SELECT m.name,m.companyId,a.* FROM t_online_data_overwarning_info as a" +
+				" LEFT JOIN t_monitor as m on a.terminalId = m.terminalId" +
+				" WHERE 1 = 1 ";
+		List<Object> param = new ArrayList<Object>();
+		//默认获取5分钟以内的数据
+		Calendar c = Calendar.getInstance();
+		c.add(Calendar.MINUTE, -5);
+		if(null == condition.getWarningTimeStart() || condition.getWarningTimeStart() == 0){
+			condition.setWarningTimeStart(Long.valueOf(sdf.format(c.getTime())));
+		}
+		sql+=" and a.warningTimeStart >= ?";
+		param.add(condition.getWarningTimeStart());
+
+		if(!(null == condition.getWarningTimeEnd() || condition.getWarningTimeEnd() == 0)){
+			sql+=" and a.warningTimeEnd <= ?";
+			param.add(condition.getWarningTimeEnd());
+		}else{
+			sql+=" and a.warningTimeEnd is not null";
+		}
+
+		//sql+=" and a.warningInfoId in (" + ListUtils.join(WarnInfoConstants.getCodes(), ",") + ")";
+		if(isService){
+			sql+=" and m.companyId in (?)";
+		}else{
+			sql+=" and m.companyId =?";
+		}
+		param.add(companyIds);
+		//排序规则
+		sql+=" order by warningTimeStart desc";	//优先告警时间降序
+
+		//设置查询条件
+		return super.findBySql(sql, param);
+	}
+
 	
 	/**
 	 * 拼装关联查询的sql语句
@@ -228,7 +301,9 @@ public class OnlineDataOverwarningInfoDao extends BaseDaoSupport<OnlineDataOverw
 		return query;
 	}
 
-	
+
+
+
 	class Query{
 		String sql;
 		Map<String,Object> param;

+ 102 - 8
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/dao/OrgDao.java

@@ -66,6 +66,7 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	 * @return
 	 */
 	public List<Org> selectAll() {
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		QueryRule queryRule = QueryRule.getInstance();
 		queryRule.andEqual("isDel", 0);
 		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
@@ -77,6 +78,7 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	 * @return
 	 */
 	public Map<Long, String> selectOrgIdName(){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		String sql = "SELECT id,name FROM t_org WHERE orgType=2 AND isDel=0";
 		List<Map<String, Object>> list = super.findBySql(sql, new Object[]{});
 		Map<Long, String> idNameMap = new HashMap<Long, String>();
@@ -94,6 +96,7 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	 * @return
 	 */
 	public Map<Long, String> selectOrgBySite(int fromSite){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		String sql = "SELECT org.id,org.name FROM t_org AS org, t_org_site AS site WHERE org.id=site.orgId AND org.orgType=2 AND org.isDel=0 AND site.siteId = ?";
 		List<Map<String, Object>> list = super.findBySql(sql, new Object[]{fromSite});
 		Map<Long, String> idNameMap = new HashMap<Long, String>();
@@ -113,6 +116,7 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	 * @return
 	 */
 	public Page<Org> selectAllForPage(int pageNo, int pageSize, int orgType){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		QueryRule queryRule = QueryRule.getInstance();
 		queryRule.andEqual("orgType", orgType);
 		queryRule.andEqual("isDel", 0);
@@ -130,7 +134,8 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	 * @return
 	 */
 	public Org selectById(long id){
-		
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
+
 		//计算缓存key
 		String cacheKey = cacheDao.genMD5Key(ORG_BY_ID, "" + id);
 		
@@ -160,6 +165,7 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	
 	
 	public Page<Org> selectListByFromSite(int pageNo, int pageSize, int orgType, int fromSite){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		if(pageNo <= 1) pageNo = 0;
 		if(pageNo > 1) pageNo = pageNo - 1;
 		List<Object> conditionList = new ArrayList<Object>();
@@ -192,10 +198,10 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	/**
 	 * 批量修改删除状态
 	 * @param ids
-	 * @param disable
 	 * @return
 	 */
 	public int removeBatch(String[] ids, int state) {
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		int result = 0  ;
 		String sql = "update t_org set isDel = ?  where id = ?";
 		for(String id : ids){
@@ -205,19 +211,106 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 		return result;
 	}
 
+
+	/**
+	 * 获取服务商下属企业
+	 * @param pageNo
+	 * @param pageSize
+	 * @param serviceId
+	 * @return
+	 */
+
+	public Page<Org> selectListByService(int pageNo, int pageSize, Long serviceId){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
+
+		if(pageNo <= 1) pageNo = 0;
+		if(pageNo > 1) pageNo = pageNo - 1;
+		List<Object> conditionList = new ArrayList<Object>();
+		int orgType=1;
+		String sql = "SELECT org.* FROM t_org AS org WHERE  org.isDel=0 AND org.orgType=? AND org.serviceId = ?";
+		conditionList.add(orgType);
+		conditionList.add(serviceId);
+		String countSql = "SELECT count(*) " + removeSelect(removeOrders(sql.toString()));
+		long count = this.jdbcTemplateReadOnly().queryForLong(countSql, conditionList.toArray());
+		if(count == 0){
+			return new Page<Org>();
+		}
+		sql += " limit ?,?";
+		conditionList.add(pageNo * pageSize);
+		conditionList.add(pageSize);
+
+		List<Map<String, Object>> dataList = super.findBySql(sql, conditionList);
+		List<Org> orgList = new ArrayList<Org>();
+		for(Map<String, Object> map : dataList){
+			Org org = new Org();
+			org.setId(Long.parseLong(map.get("id").toString()));
+			org.setName(map.get("name").toString());
+			org.setAddress(map.get("address").toString());
+			org.setCoordinate(map.get("coordinate").toString());
+			orgList.add(org);
+		}
+		Page<Org> page = new Page<Org>(pageNo, count, pageSize, orgList);
+		return page;
+	}
+
+	public List<Org> getListByService(Long serviceId){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
+		String sql = "SELECT id,name,address,coordinate FROM t_org AS org WHERE  org.isDel=0 AND org.orgType=? AND org.serviceId = ?";
+		List<Object> conditionList = new ArrayList<Object>();
+		conditionList.add(1);
+		conditionList.add(serviceId);
+		List<Map<String, Object>> dataList = super.findBySql(sql, conditionList);
+		List<Org> orgList = new ArrayList<Org>();
+		for(Map<String, Object> map : dataList){
+			Org org = new Org();
+			org.setName(map.get("name").toString());
+			org.setId(Long.parseLong(map.get("id").toString()));
+			org.setAddress(map.get("address").toString());
+			org.setCoordinate(map.get("coordinate").toString());
+			orgList.add(org);
+		}
+		return orgList;
+	}
+
+	public List<Map<String, Object>> getAllMonitor(String powerUserIds){
+		dynamicDataSourceEntry.set("curr");
+		List<Map<String, Object>> result=new ArrayList<Map<String,Object>>();
+		Map<String, Object> pamam = new HashMap<String, Object>();
+		if(powerUserIds!=null&&!powerUserIds.isEmpty()){
+			String sql = "SELECT companyId,onlineTime FROM t_monitor WHERE companyId in("+powerUserIds+") AND seeType!= 2";
+			result=super.findBySql(sql, pamam);
+		}
+		return result;
+	}
+//	public Map<String, Object> getServiceMonitor(Long serviceId){
+//		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
+//		String sql = "SELECT org.* FROM t_org AS org WHERE  org.isDel=0 AND org.orgType=? AND org.serviceId = ?";
+//		List<Object> conditionList = new ArrayList<Object>();
+//		conditionList.add(1);
+//		conditionList.add(serviceId);
+//		List<Map<String, Object>> dataList = super.findBySql(sql, conditionList);
+//	}
+
 	/**
 	 * 获取电力企业信息
 	 * @author grxie
 	 * @param companyId
 	 * @return
 	 */
-	public Map<String, Object> getPowerUser(long companyId) {
-		String sql = "SELECT org.name _name,org.serviceId _serviceId,org.address _address,tp.id _powerUserId,tp.expiredDate _expiredDate,tp.rank _rank,"
-				+ "tp.industry1 _industry1,tp.industry2 _industry2,tp.industry3 _industry3,tp.applyLoad _applyLoad,tp.zbsl _zbsl,"
-				+ "tp.voltageClass _voltageClass,tp.jffs _jffs,tp.isFgp _isFgp,tp.powerSupply _powerSupply,tp.style _style,tp.jbdj _jbdj,tp.state _state "
-				+ "FROM t_org org,t_poweruser tp WHERE org.id = tp.orgId AND org.id = ? ";
-		return super.findUniqueBySql(sql, companyId);
+	public List<Map<String, Object>> getPowerUsers(Long companyId,boolean isService) {
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
+		String sql ="SELECT org.id _orgId,org.name _name,org.serviceId _serviceId,org.address _address,tp.id _powerUserId,tp.expiredDate _expiredDate,tp.rank _rank,"
+				+ "tp.industry1 _industry1,tp.industry2 _industry2,tp.industry3 _industry3,tp.applyLoad _applyLoad,tp.jcrl _jcrl,tp.zbsl _zbsl,"
+				+ "tp.voltageClass _voltageClass,tp.jffs _jffs,tp.powerSupply _powerSupply,tp.style _style,tp.jbdj _jbdj,tp.state _state "
+				+ "FROM t_org org,t_poweruser tp WHERE org.id = tp.orgId";
+		if(isService){
+			sql+=" AND org.serviceId = ?";
+		}else {
+			sql +="	AND org.id = ? ";
+		}
+		return super.findBySql(sql, companyId);
 	}
+
 	
 	/**
 	 * 获取服务机构信息
@@ -226,6 +319,7 @@ public class OrgDao extends BaseDaoSupport<Org, Long>  {
 	 * @return
 	 */
 	public Map<String, Object> getProxyCompany(long companyId){
+		dynamicDataSourceEntry.set(DataSourceConstant.DB_BASE);
 		String sql = "SELECT org.name _name,org.address _address,tpc.principal _principal,tpc.tel _tel,tpc.tg _tg "
 				+ "FROM t_org org,t_proxy_company tpc WHERE org.id = tpc.orgId AND org.id = ?";
 		return super.findUniqueBySql(sql, companyId);

+ 69 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/model/CompanyDateM.java

@@ -0,0 +1,69 @@
+package cn.vbdsm.powerservice.model;
+
+import javax.persistence.Entity;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 县区日最值
+ * @author LAUEZX
+ *
+ */
+
+@Entity
+@Table(name = "t_company_date_m")
+public class CompanyDateM implements Serializable {
+
+	private static final long serialVersionUID = 1L;
+
+	//private Long id;//id
+	private Long companyId;//公司id
+	private Integer getDate;//日期
+	private BigDecimal mmin;//最小值
+	private Long minTime;//最小值时间
+	private BigDecimal mmax;//最大值
+	private Long maxTime;//最大值时间
+	private BigDecimal mavg = new BigDecimal(0);//平均值
+
+
+	public Long getCompanyId() {return companyId;	}
+	public void setCompanyId(Long companyId) {this.companyId = companyId;	}
+	public Integer getGetDate() {
+		return getDate;
+	}
+	public void setGetDate(Integer getDate) {
+		this.getDate = getDate;
+	}
+	public BigDecimal getMmin() {
+		return mmin;
+	}
+	public void setMmin(BigDecimal mmin) {
+		this.mmin = mmin;
+	}
+	public Long getMinTime() {
+		return minTime;
+	}
+	public void setMinTime(Long minTime) {
+		this.minTime = minTime;
+	}
+	public BigDecimal getMmax() {
+		return mmax;
+	}
+	public void setMmax(BigDecimal mmax) {
+		this.mmax = mmax;
+	}
+	public Long getMaxTime() {
+		return maxTime;
+	}
+	public void setMaxTime(Long maxTime) {
+		this.maxTime = maxTime;
+	}
+	public BigDecimal getMavg() {
+		return mavg;
+	}
+	public void setMavg(BigDecimal mavg) {
+		this.mavg = mavg;
+	}
+
+}

+ 158 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/mvc/action/web/action/ScreenAction.java

@@ -0,0 +1,158 @@
+package cn.vbdsm.powerservice.mvc.action.web.action;
+
+import cn.vbdsm.core.mvc.action.BaseAction;
+import cn.vbdsm.model.Org;
+import cn.vbdsm.powerservice.service.online.facade.IAuthService;
+import cn.vbdsm.powerservice.service.sys.IScreenService;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.ModelAndView;
+
+import javax.core.common.Page;
+import javax.core.common.ResultMsg;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Map;
+
+
+/**
+ * 大屏服务Action
+ * @author Tanpeng
+ *
+ */
+@Controller
+@RequestMapping("/web/screen")
+public class ScreenAction extends BaseAction{
+
+	@Autowired IAuthService authService;
+	@Autowired 	IScreenService screenService;
+
+	/**
+	 * 查询公司列表
+	 */
+	@RequestMapping("getCompanyList.json")
+	public ModelAndView getCompanyList(HttpServletRequest request,HttpServletResponse response,
+			@RequestParam(value="pageNo",defaultValue="1",required=false) int pageNo,
+			@RequestParam(value="pageSize",defaultValue="20",required=false) int pageSize){
+		JSONObject userinfo = super.getUserInfo(request);
+
+		Long serviceId = userinfo.getJSONObject("company").getLong("id");
+		Page<Org> result = screenService.getCompanyList(pageNo, pageSize, serviceId);
+		return super.callBackForJsonp(request, response, JSONObject.toJSONString(result));
+	}
+
+	@RequestMapping("getCompanyDetail.json")
+	public ModelAndView getCompanyDetail(HttpServletRequest request,HttpServletResponse response,@RequestParam(value = "orgId", defaultValue = "") Long orgId){
+
+		String local = super.getLocal(request);
+		ResultMsg<Object> result = screenService.getCompanyDetail(local, orgId);
+		return super.callBackForJsonp(request, response, JSONObject.toJSONString(result));
+	}
+
+	/**
+	 * 获取服务商或客户的监测点
+	 * @param request
+	 * @param response
+	 * @param orgId
+	 * @return
+	 */
+	@RequestMapping("getCompanyMonitor.json")
+	public ModelAndView getCompanyMonitor(HttpServletRequest request,HttpServletResponse response
+			,@RequestParam(value = "orgId", defaultValue = "") Long orgId
+			,@RequestParam(value = "isService", defaultValue = "1") Long isService
+	){
+		String local = super.getLocal(request);
+		if(orgId==null){
+			JSONObject userinfo = super.getUserInfo(request);
+			orgId = userinfo.getJSONObject("company").getLong("id");
+			isService=1L;
+		}else{
+			isService=0L;
+		}
+
+		ResultMsg<?> result = screenService.getServiceMonitor(local,orgId,isService==1L);
+		return super.callBackForJsonp(request, response, JSONObject.toJSONString(result));
+	}
+
+	/**
+	 * 最大最小平均负荷
+	 * @param request
+	 * @param response
+	 * @param date
+	 * @return
+	 */
+	@RequestMapping(value = "/getMaxPower.json")
+	public ModelAndView getMaxMinAvgP(HttpServletRequest request, HttpServletResponse response
+		  ,@RequestParam(value = "orgId", defaultValue = "") Long orgId
+			,@RequestParam(value = "isService", defaultValue = "0") Long isService
+			,@RequestParam(value = "date", defaultValue = "") String date) {
+		String local = super.getLocal(request);
+		if(orgId==null){
+			JSONObject userinfo = super.getUserInfo(request);
+			orgId = userinfo.getJSONObject("company").getLong("id");
+			isService = 1L;
+		}
+		if(date==null|| date.isEmpty()){
+			SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+			date= format.format(new Date());
+		}
+		ResultMsg<?> result = screenService.getMaxMinAvgP(local, orgId, isService==1L, date);
+		return super.callBackForJsonp(request, response, JSONObject.toJSONString(result));
+	}
+
+	@RequestMapping(value = "/getCompanyLoadData.json")
+	public ModelAndView getCompanyLoadData(HttpServletRequest request, HttpServletResponse response
+		  ,@RequestParam(value = "orgId", defaultValue = "") Long orgId
+			,@RequestParam(value = "isService", defaultValue = "0") Long isService
+			,@RequestParam(value = "date1", defaultValue = "") String date1
+			,@RequestParam(value = "date1", defaultValue = "") String date2
+			,@RequestParam(value = "date1", defaultValue = "") String date3
+	) {
+		String local = super.getLocal(request);
+		if(orgId==null){
+			JSONObject userinfo = super.getUserInfo(request);
+			orgId = userinfo.getJSONObject("company").getLong("id");
+			isService = 1L;
+		}
+		SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
+		if(date1==null|| date1.isEmpty()){
+			date1=  format.format(new Date());
+		}
+		if(date2==null|| date2.isEmpty()){
+			Calendar c = Calendar.getInstance();
+			c.add(Calendar.DATE, -1);
+			date2=  format.format(c.getTime());
+		}
+		if(date3==null|| date3.isEmpty()){
+			Calendar c = Calendar.getInstance();
+			c.add(Calendar.DATE, -2);
+			date3=  format.format(c.getTime());
+		}
+		ResultMsg<?> result = screenService.getCompanyLoadData(local, orgId, isService==1L, date1,date2,date3);
+		return super.callBackForJsonp(request, response, JSONObject.toJSONString(result));
+	}
+
+	@RequestMapping("getWarnInfoList.json")
+	public ModelAndView getWarningList(HttpServletRequest request,HttpServletResponse response
+			,@RequestParam(value = "orgId", defaultValue = "") Long orgId
+			,@RequestParam(value = "isService", defaultValue = "0") Long isService
+			,@RequestParam(value="pageNo",defaultValue="1",required=false) int pageNo
+			,@RequestParam(value="pageSize",defaultValue="10",required=false) int pageSize
+	){
+		if(orgId==null){
+			JSONObject userinfo = super.getUserInfo(request);
+			orgId = userinfo.getJSONObject("company").getLong("id");
+			isService = 1L;
+		}
+		ResultMsg<Object> result = screenService.getWarningList(orgId,isService==1L,pageNo,pageSize);
+		return super.callBackForJsonp(request, response, JSONObject.toJSONString(result));
+	}
+
+
+}

+ 15 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/service/sys/IScreenService.java

@@ -0,0 +1,15 @@
+package cn.vbdsm.powerservice.service.sys;
+
+import cn.vbdsm.model.Org;
+
+import javax.core.common.Page;
+import javax.core.common.ResultMsg;
+
+public interface IScreenService {
+     Page<Org> getCompanyList(int pageNo, int pageSize, Long serviceId);
+     ResultMsg<Object> getCompanyDetail(String local, Long orgId);
+     ResultMsg<Object> getServiceMonitor(String local, Long orgId,boolean isService);
+     ResultMsg<Object> getMaxMinAvgP(String local, Long orgId,boolean isService,String date);
+     ResultMsg<?> getCompanyLoadData(String local, Long orgId,boolean isService, String date1, String date2, String date3);
+     ResultMsg<Object> getWarningList(Long orgId,boolean isService,int pageNo, int pageSize);
+}

+ 410 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/service/sys/impl/ScreenService.java

@@ -0,0 +1,410 @@
+package cn.vbdsm.powerservice.service.sys.impl;
+
+import cn.vbdsm.common.config.I18nConfig;
+import cn.vbdsm.common.constants.SystemConstant;
+import cn.vbdsm.common.constants.WarnInfoConstants;
+import cn.vbdsm.common.utils.AnalDataCtPtUtil;
+import cn.vbdsm.model.Org;
+import cn.vbdsm.powerservice.dao.*;
+import cn.vbdsm.powerservice.model.CompanyDateM;
+import cn.vbdsm.powerservice.model.CompanyOnline;
+import cn.vbdsm.powerservice.model.Monitor;
+import cn.vbdsm.powerservice.model.OnlineDataOverwarningInfo;
+import cn.vbdsm.powerservice.service.sys.IScreenService;
+import cn.vbdsm.powerservice.vo.OnlineDataOverwarningInfoVo;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import javax.core.common.Page;
+import javax.core.common.ResultMsg;
+import javax.core.common.utils.DataUtils;
+import javax.core.common.utils.NumberUtils;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author Yue
+ */
+@Service
+public class ScreenService implements IScreenService {
+
+    @Resource
+    private OrgDao orgDao;
+    @Resource
+    private OnlineDataOverwarningInfoDao odoiDao;
+    @Resource
+    private CompanyOnlineDao companyOnlineDao;
+    @Resource
+    private CompanyDateMDao companyDateMDao;
+    @Resource
+    private MonitorDao monitorDao;
+
+    public Page<Org> getCompanyList(int pageNo, int pageSize, Long serviceId){
+        return orgDao.selectListByService(pageNo,pageSize,serviceId);
+    }
+    @Override
+    public ResultMsg<Object> getCompanyDetail(String local,Long orgId){
+
+        List<Map<String, Object>> powerUsers = orgDao.getPowerUsers(orgId,false);
+        Map<String, Object> map = new HashMap<String, Object>();
+        if(powerUsers.size()>0){
+            map = powerUsers.get(0);
+        }
+        return new ResultMsg<Object>(SystemConstant.RESULT_STATUS_SUCCESS, I18nConfig.getValue(local, "tips", "query_success"), map);
+    }
+
+    // 获取公司监控数据
+    @Override
+    public ResultMsg<Object> getServiceMonitor(String local, Long orgId,boolean isService) {
+
+        Org org=  orgDao.selectOne(orgId);
+        List<Org> orgList;
+
+        if(isService){
+            orgList=orgDao.getListByService(orgId);
+        }else{
+            orgList=new ArrayList<Org>();
+          orgList.add(org);
+        }
+
+        StringBuffer powerUserIds = new StringBuffer();
+        int k = 0;
+        for (Org o : orgList) {
+            if (k < orgList.size() - 1) {
+                powerUserIds.append(o.getId()).append(",");
+            } else {
+                powerUserIds.append(o.getId());
+            }
+            k++;
+        }
+        int companyCount=orgList.size();
+        List<Map<String, Object>> monitorList = orgDao.getAllMonitor(powerUserIds.toString());
+        List<Map<String, Object>> powerUsers = orgDao.getPowerUsers(orgId,isService);
+        int notOnlineCount = 0, onlineCount = 0,totalCount = 0,jcrlCount = 0;
+        for (Map<String, Object> powerUser: powerUsers){
+            if(isService&& powerUser.get("_serviceId").equals(orgId)){
+                jcrlCount+=(Long) powerUser.get("_jcrl");
+            }else if(!isService&& powerUser.get("_orgId").equals(orgId)){
+                jcrlCount+=(Long) powerUser.get("_jcrl");
+            }
+        }
+        for (Map<String, Object> monitor: monitorList){
+            Long onlineTime = (Long) monitor.get("onlineTime");
+            Long stamp = null;
+            try {
+                stamp = new SimpleDateFormat("yyyyMMddHHmmss").parse(onlineTime + "").getTime();
+            } catch (Exception e) {
+                continue;
+            }
+            Long now = new Date().getTime();
+            if (now - stamp > 30L * 60L * 1000L) {
+                notOnlineCount++;
+            }else{
+                onlineCount++;
+            }
+//            if (now - stamp > 90L * 24L * 60L * 60L * 1000L) {
+//                threeMonthNotOnlineCount++;
+//            }
+            totalCount++;
+
+        }
+        Map<String, Object> map = new HashMap<String, Object>();
+        map.put("companyId", org.getId());
+        map.put("companyName", org.getName());
+        map.put("companyCount",companyCount);
+        map.put("totalCount", totalCount);
+        map.put("jcrl", jcrlCount);
+        map.put("notOnlineCount", notOnlineCount);
+        //map.put("threeMonthNotOnlineCount", threeMonthNotOnlineCount);
+        map.put("onlineCount", onlineCount);
+        return new ResultMsg<Object>(SystemConstant.RESULT_STATUS_SUCCESS, I18nConfig.getValue(local, "tips", "query_success"), map);
+
+    }
+
+    @Override
+    public ResultMsg<Object> getMaxMinAvgP(String local, Long orgId,boolean isService,String date) {
+        CompanyDateM companyDateM=new CompanyDateM();
+         if(isService){
+             List<Org> orgList = orgDao.getListByService(orgId);
+             int k = 0;
+             StringBuffer orgIds = new StringBuffer();
+             for (Org o : orgList) {
+                 if (k < orgList.size() - 1) {
+                     orgIds.append(o.getId()).append(",");
+                 } else {
+                     orgIds.append(o.getId());
+                 }
+                 k++;
+             }
+             List<CompanyDateM> list = companyDateMDao.selectByCompanyIds(orgIds.toString(), date);
+             BigDecimal avgTotal = new BigDecimal(0);
+             companyDateM.setCompanyId(orgId);
+             for (CompanyDateM cm : list){
+                if(isMax(companyDateM.getMmax(),cm.getMmax())){
+                    companyDateM.setMmax(cm.getMmax());
+                    companyDateM.setMaxTime(cm.getMaxTime());
+                }
+                if(isMin(companyDateM.getMmin(),cm.getMmin())){
+                    companyDateM.setMmin(cm.getMmin());
+                    companyDateM.setMinTime(cm.getMinTime());
+                }
+                avgTotal=  avgTotal.add(cm.getMavg());
+             }
+             if(avgTotal.compareTo(new BigDecimal(0))>0){
+                 companyDateM.setMavg(avgTotal.divide(new BigDecimal(list.size()),2,BigDecimal.ROUND_HALF_UP));
+             }
+
+         }else{
+             companyDateM = companyDateMDao.selectByCompanyId(orgId, date);
+         }
+
+        return new ResultMsg<Object>(SystemConstant.RESULT_STATUS_SUCCESS, I18nConfig.getValue(local, "tips", "query_success"), companyDateM);
+    }
+
+
+    @Override
+    public ResultMsg<Object> getWarningList(Long orgId,boolean isService,int pageNo, int pageSize){
+        ResultMsg<Object> result = new ResultMsg<Object>();
+        result.setStatus(SystemConstant.RESULT_STATUS_SUCCESS);
+        Org org=  orgDao.selectOne(orgId);
+        List<Org> orgList;
+
+        if(isService){
+            orgList=orgDao.getListByService(orgId);
+        }else{
+            orgList=new ArrayList<Org>();
+            orgList.add(org);
+        }
+        StringBuffer powerUserIds = new StringBuffer();
+        int k = 0;
+        for (Org o : orgList) {
+            if (k < orgList.size() - 1) {
+                powerUserIds.append(o.getId()).append(",");
+            } else {
+                powerUserIds.append(o.getId());
+            }
+            k++;
+        }
+        OnlineDataOverwarningInfo condition = new OnlineDataOverwarningInfo();
+        SimpleDateFormat daySdf = new SimpleDateFormat("yyyyMMdd");
+        condition.setWarningTimeStart(getStartTime(daySdf.format(new Date())));
+        Page<Map<String, Object>> warningList = odoiDao.getWarningList(powerUserIds.toString(), isService, condition, pageNo, pageSize);
+
+
+        List<OnlineDataOverwarningInfoVo> dataList = new ArrayList<OnlineDataOverwarningInfoVo>();
+        Map<String, Monitor> monitorMap = new HashMap<String, Monitor>();
+        for (Map<String,Object> map : warningList.getRows()) {
+            OnlineDataOverwarningInfoVo vo = new OnlineDataOverwarningInfoVo();
+            Long companyId = DataUtils.getLong(map.get("companyId"));
+            for (Org o : orgList){
+                if(o.getId().equals(companyId)){
+                    vo.setCompanyName(o.getName());
+                }
+            }
+            vo.setName(DataUtils.getString(map.get("name")));
+            vo.setTerminalId(DataUtils.getString(map.get("terminalId")));
+            vo.setWarningInfoId(DataUtils.getInteger(map.get("warningInfoId")));
+            vo.setOverFlag(DataUtils.getInteger(map.get("overFlag")));
+            vo.setWarningTimeStart(DataUtils.getLong(map.get("warningTimeStart")));
+            vo.setWarningTimeEnd(DataUtils.getLong(map.get("warningTimeEnd")));
+//			vo.setValue(DataUtils.getDouble(map.get("value")));
+//			vo.setValueMax(DataUtils.getDouble(map.get("valueMax")));
+//			vo.setValueMin(DataUtils.getDouble(map.get("valueMin")));
+            vo.setReadFlag(DataUtils.getInteger(map.get("readFlag")));
+
+            if(!monitorMap.containsKey(vo.getTerminalId())) {
+                monitorMap.put(vo.getTerminalId(), monitorDao.selectByTerminalId(vo.getTerminalId()));
+            }
+            BigDecimal value = new BigDecimal(DataUtils.getDouble(map.get("value")));
+            BigDecimal valueMax = new BigDecimal(DataUtils.getDouble(map.get("valueMax")));
+            BigDecimal valueMin = new BigDecimal(DataUtils.getDouble(map.get("valueMin")));
+            Monitor m = monitorMap.get(vo.getTerminalId());
+            if(vo.getWarningInfoId() == 1 || vo.getWarningInfoId() == 2 || vo.getWarningInfoId() == 3
+                    || vo.getWarningInfoId() == 5 || vo.getWarningInfoId() == 6 || vo.getWarningInfoId() == 7){
+                vo.setValue(NumberUtils.round(AnalDataCtPtUtil.addPt(m, value), 2).doubleValue());
+                vo.setValueMax(NumberUtils.round(AnalDataCtPtUtil.addPt(m, valueMax), 2).doubleValue());
+                vo.setValueMin(NumberUtils.round(AnalDataCtPtUtil.addPt(m, valueMin), 2).doubleValue());
+            } else if(vo.getWarningInfoId() == 9 || vo.getWarningInfoId() == 10 || vo.getWarningInfoId() == 11
+                    || vo.getWarningInfoId() == 13) {
+                vo.setValue(NumberUtils.round(AnalDataCtPtUtil.addCt(m, value), 2).doubleValue());
+                vo.setValueMax(NumberUtils.round(AnalDataCtPtUtil.addCt(m, valueMax), 2).doubleValue());
+                vo.setValueMin(NumberUtils.round(AnalDataCtPtUtil.addCt(m, valueMin), 2).doubleValue());
+            } else if(vo.getWarningInfoId() == 14 || vo.getWarningInfoId() == 15 || vo.getWarningInfoId() == 16
+                    ||vo.getWarningInfoId() == 17) {
+                vo.setValue(NumberUtils.round(AnalDataCtPtUtil.ctpt(m, value), 2).doubleValue());
+                vo.setValueMax(NumberUtils.round(AnalDataCtPtUtil.ctpt(m, valueMax), 2).doubleValue());
+                vo.setValueMin(NumberUtils.round(AnalDataCtPtUtil.ctpt(m, valueMin), 2).doubleValue());
+            } else {
+                vo.setValue(NumberUtils.round(value.doubleValue(), 2));
+                vo.setValueMax(NumberUtils.round(valueMax.doubleValue(), 2));
+                vo.setValueMin(NumberUtils.round(valueMin.doubleValue(), 2));
+            }
+
+            dataList.add(vo);
+        }
+        result.setData(dataList);
+        return result;
+    }
+
+
+    public ResultMsg<?> getCompanyLoadData(String local, Long orgId,boolean isService, String date1, String date2, String date3){
+        Org org=  orgDao.selectOne(orgId);
+        List<Org> orgList;
+
+        if(isService){
+            orgList=orgDao.getListByService(orgId);
+        }else{
+            orgList=new ArrayList<Org>();
+            orgList.add(org);
+        }
+        //获取日期1的负荷波动偏差
+        List<Map<String, Object>> todayData = new ArrayList<Map<String, Object>>();
+        //获取日期2的负荷波动偏差
+        List<Map<String, Object>> yesterdayData = new ArrayList<Map<String, Object>>();
+        //获取日期3的负荷波动偏差
+        List<Map<String, Object>> beforedayData = new ArrayList<Map<String, Object>>();
+        if (!orgList.isEmpty()) {
+            Map<Long, Org> orgMap = new  HashMap<Long, Org>();
+            for (Org o : orgList) {
+                orgMap.put(DataUtils.getLong(o.getId()), o);
+            }
+            List<Long> companyIds = new ArrayList<Long>(orgMap.keySet());
+            //查询日期1
+            List<CompanyOnline> firstdayCompanyOnlineList = this.getByCompanyIdsAndDate(companyIds, date1);
+            //查询日期2
+            List<CompanyOnline> seconddayCompanyOnlineList = this.getByCompanyIdsAndDate(companyIds, date2);
+            //查询日期3
+            List<CompanyOnline> thirddayCompanyOnlineList = this.getByCompanyIdsAndDate(companyIds, date3);
+
+            todayData = this.getLoadData(date1, firstdayCompanyOnlineList);
+            yesterdayData = this.getLoadData(date2, seconddayCompanyOnlineList);
+            beforedayData = this.getLoadData(date3, thirddayCompanyOnlineList);
+        }
+        Map<String, List<Map<String, Object>>> chartData = new HashMap<String, List<Map<String, Object>>>();
+        chartData.put("date1", todayData);
+        chartData.put("date2", yesterdayData);
+        chartData.put("date3", beforedayData);
+        return new ResultMsg<Object>(SystemConstant.RESULT_STATUS_SUCCESS, I18nConfig.getValue(local, "tips", "query_success"), chartData);
+    }
+
+    private List<CompanyOnline> getByCompanyIdsAndDate(List<Long> companyIds, String date) {
+        long startTime = new Long(date + "000000");
+        long endTime = new Long(date + "235500");
+        List<CompanyOnline> data = companyOnlineDao.selectByCompanyIdsAndGetTime(companyIds, startTime, endTime);
+        return data;
+    }
+
+    private List<Map<String, Object>> getLoadData(String date, List<CompanyOnline> companyOnlineList) {
+        List<Map<String, Object>> datas = getDayData(date);
+        if (companyOnlineList == null || companyOnlineList.size() == 0) {
+            return datas;
+        }
+        Map<Long, CompanyOnline> companyOnlineMap = new HashMap<Long, CompanyOnline>();
+        for (CompanyOnline c : companyOnlineList) {
+            companyOnlineMap.put(c.getGetTime(), c);
+        }
+
+        for (Map<String, Object> data : datas) {
+            long x = (Long) data.get("timestamp");
+            for (Long getTime : companyOnlineMap.keySet()) {
+                BigDecimal p = companyOnlineMap.get(getTime).getP();
+                if (p == null) {
+                    continue;
+                }
+
+                Long time = getStampe(getTime);
+                if (time == x) {
+                    data.put("y", p.setScale(2, RoundingMode.HALF_UP));
+                }
+
+            }
+        }
+        return datas;
+    }
+
+
+    private List<Map<String, Object>> getDayData(String day) {
+        List<Map<String, Object>> data = new ArrayList<Map<String, Object>>();
+        long startTime = getStartTime(day);
+        //for (int i = 0; i < 288; i++) {}
+        for (int i = 0; i < 48; i++) {
+            Map<String, Object> map = new HashMap<String, Object>();
+            long timestamp = startTime + 30L * 60L * 1000L * i;
+            long x = 30L * 60L * 1000L * i;
+            map.put("x", x);
+            map.put("timestamp", timestamp);
+            map.put("y", new BigDecimal(-9999));
+            data.add(map);
+        }
+        return data;
+    }
+
+    private long getStartTime(String day) {
+        long startTime = 0L;
+        if (day.length() == 4) {
+            day = day + "01000000";
+        } else {
+            day = day + "000000";
+        }
+        SimpleDateFormat format1 = new SimpleDateFormat("yyyyMMddHHmmss");
+        try {
+            Date date = format1.parse(day);
+            startTime = date.getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return startTime;
+    }
+
+
+    private long getStampe(long time) {
+        long timeStamp = 0L;
+        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
+        try {
+            timeStamp = format.parse(time + "").getTime();
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return timeStamp;
+    }
+    /**
+     * 判断是否要替换最小值
+     * @param ago
+     * @param now
+     * @return
+     */
+    private boolean isMin(BigDecimal ago, BigDecimal now){
+        if(ago == null){
+            return now != null;
+        }else{
+            if(now != null){
+
+                return ago.compareTo(now) > 0;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 判断是否要替换最大值
+     * @param ago
+     * @param now
+     * @return
+     */
+    private boolean isMax(BigDecimal ago,BigDecimal now){
+        if(ago == null){
+            return now != null;
+        }else{
+            if(now != null){
+                return ago.compareTo(now) < 0;
+            }
+        }
+        return false;
+    }
+}

+ 8 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/java/cn/vbdsm/powerservice/vo/OnlineDataOverwarningInfoVo.java

@@ -21,6 +21,14 @@ public class OnlineDataOverwarningInfoVo extends OnlineDataOverwarningInfo {
 		this.name = name;
 	}
 
+	public String companyName;
+	public String getCompanyName() {
+		return companyName;
+	}
+
+	public void setCompanyName(String name) {
+		this.companyName = name;
+	}
 	public void setStime(String stime) {
 		long time = System.currentTimeMillis();
 		try {

+ 8 - 0
VB_DSM_V2.1/vbdsm-web/vbdsm-powerservice/src/main/resources/test/application-db.xml

@@ -55,12 +55,20 @@
         <property name="password" value="${sysbase.mysql.jdbc.password}"/>
     </bean>
 
+    <bean id="govDataSource" parent="datasourcePool">
+        <property name="driverClassName" value="${gov.mysql.jdbc.driverClassName}"/>
+        <property name="url" value="${gov.mysql.jdbc.url}"/>
+        <property name="username" value="${gov.mysql.jdbc.username}"/>
+        <property name="password" value="${gov.mysql.jdbc.password}"/>
+    </bean>
+
     <bean id="dynamicDataSource" class="cn.vbdsm.core.dao.datasource.DynamicDataSource">
         <property name="dataSourceEntry" ref="dynamicDataSourceEntry"></property>
         <property name="targetDataSources">
             <map>
                 <entry key="sysbase" value-ref="sysbaseDataSource"></entry>
                 <entry key="curr" value-ref="currDataSource"></entry>
+                <entry key="gov" value-ref="govDataSource"></entry>
                 <entry key="DB_2023" value-ref="dataSource_2023"></entry>
                 <entry key="DB_2024" value-ref="dataSource_2024"></entry>
             </map>