From 9437c74510c25be9d2413821c65fcf6ca4e6d21a Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Fri, 31 Aug 2018 08:35:26 +0800
Subject: [PATCH] 获取优良天数

---
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java |   65 +++++++++++++++++++++++++-------
 1 files changed, 50 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index e2873c2..345dceb 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -4,6 +4,7 @@
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
 
 import com.alibaba.fastjson.TypeReference;
 import com.github.pagehelper.Page;
@@ -13,8 +14,8 @@
 import com.moral.common.exception.BusinessException;
 import com.moral.common.util.ExampleUtil;
 import com.moral.common.util.RedisUtils;
-import com.moral.mapper.MonitorPointMapper;
-import com.moral.mapper.OrganizationMapper;
+import com.moral.entity.DeviceVersion;
+import com.moral.mapper.*;
 import org.apache.commons.collections.MapUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -26,7 +27,6 @@
 import com.github.pagehelper.PageHelper;
 import com.moral.common.util.ValidateUtil;
 import com.moral.entity.Device;
-import com.moral.mapper.DeviceMapper;
 import com.moral.service.AccountService;
 import com.moral.service.DeviceService;
 import tk.mybatis.mapper.entity.Example;
@@ -58,8 +58,14 @@
     private Class ENTITY_CLASS = Device.class;
     @Resource
 	OrganizationMapper orgMapper;
+    @Resource
+	DeviceVersionMapper deviceVersionMapper;
 	@Resource
 	RedisUtils redisUtils;
+	@Resource
+	OrganizationMapper organizationMapper;
+	@Resource
+	DictionaryDataMapper dictionaryDataMapper;
 	@Override
 	public Map<String, Object> getDeviceStatesByAccount(Map<String, Object> parameters) {
 		ValidateUtil.notNull(parameters.get("accountId"), "param.is.null");
@@ -173,6 +179,7 @@
 		simpleDevice.setMac(device.getMac()); // mac
 		simpleDevice.setMonitorPointId(device.getMonitorPointId());// ���������id
 		simpleDevice.setOrganizationIds(device.getOrganizationIds());// ������������
+		simpleDevice.setDeviceVersion(device.getDeviceVersion());
 		redisUtils.set(key,simpleDevice);
 	}
 	private Device getDeviceFromRedis(String mac) {
@@ -310,15 +317,8 @@
 	 */
 	private void refreshDeviceInRedis(String mac){
 	     if(!StringUtils.isBlank(mac)){
-	     	 Device devQuery = new Device();
-	     	 devQuery.setMac(mac);
-	     	 Device device = deviceMapper.selectOne(devQuery);
-	     	 if(device.getMonitorPointId()!=null){
-	     	 	List<Integer> orgIds = monitorPointMapper.selectOrganizationIds(device.getMonitorPointId());
-	     	 	device.setOrganizationIds(orgIds);
-			 }
-             String key = "device_"+mac;
-             redisUtils.set(key,device);
+	     	 Device device = deviceMapper.selectWithOrgIdsByMac(mac);
+			 setDeviceToRedis(mac,device);
          }else
 		 {
 		 	log.warn("param mac is null in method [refreshDeviceInRedis]");
@@ -348,12 +348,12 @@
 	@Override
 	public PageBean queryByPageBean(PageBean pageBean) {
 		Example example = ExampleUtil.generateExample(ENTITY_CLASS,pageBean);
-		addDeletesToExample(example);
+//		addDeletesToExample(example);
 		if(pageBean.getPageSize()>0){
 			PageHelper.startPage(pageBean.getPageIndex(),pageBean.getPageSize());
 		}
-		List<Device> organizationList = deviceMapper.selectWithRelationData(example);
-		return new PageBean(organizationList);
+		List<Device> deviceList = deviceMapper.selectWithRelationData(example);
+		return new PageBean(deviceList);
 	}
 
 	@Override
@@ -476,4 +476,39 @@
 		return deviceMapper.getDevicesByProfession(parameters);
 	}
 
+	@Override
+	public List<Device> getDevicesByOrganizationId(Map<String, Object> parameters) {
+		ValidateUtil.notNull(parameters.get("organizationId"), "param.is.null");
+		return deviceMapper.getDevicesByOrganizationId(parameters);
+	}
+	@Override
+    public Map<String,Long> queryDeviceStateSummary(@NotNull Integer orgId){
+	    Map<String,Object> params = new HashMap<>();
+	    if(!dictionaryDataMapper.isSupperOrgId(orgId)){
+			List<Integer> orgIds = organizationMapper.selectLowerOrgIds(orgId);
+			params.put("orgIds",orgIds);
+		}
+		List<Map<String, Object>> list = deviceMapper.getDeviceStatesByAccount(params);
+		Long all = 0L, normal = 0L, abnormal = 0L, stop = 0L;
+		for (Map<String, Object> map : list) {
+			Long count = (Long) map.get("count");
+			all += count;
+			switch (Integer.valueOf((String) map.get("state"))) {
+				case 0:
+					normal = count;
+					break;
+				case 4:
+					stop = count;
+					break;
+				default:
+					abnormal += count;
+			}
+		}
+		Map<String,Long> result = new HashMap<>();
+		result.put("all", all);
+		result.put("normal", normal);
+		result.put("abnormal", abnormal);
+		result.put("stop", stop);
+		return result;
+	}
 }

--
Gitblit v1.8.0