|
@ -2,12 +2,14 @@ package com.yihu.jw.care.service.statistics;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
|
import io.swagger.models.auth.In;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@ -50,21 +52,66 @@ public class DetectionPlatformService {
|
|
|
|
|
|
public JSONObject getDeviceComapny(){
|
|
|
JSONObject object = new JSONObject();
|
|
|
String deviceTypeSum = "SELECT COUNT(1) deviceTypeSum FROM dm_device where del = 1 GROUP BY brands";
|
|
|
String deviceTypeSum = "SELECT * FROM wlyy_devices WHERE device_name IS NOT NULL AND device_name != '' GROUP BY device_name";
|
|
|
List<Map<String , Object>> deviceList = jdbcTemplate.queryForList(deviceTypeSum);
|
|
|
if (deviceList.size() > 0) {
|
|
|
object.put("deviceTypeCount",deviceList.size()); //设备品牌数量
|
|
|
} else {
|
|
|
object.put("deviceTypeCount",0);
|
|
|
}
|
|
|
String manufacturerSql = "";
|
|
|
String manufacturerSql = "SELECT * FROM wlyy_devices WHERE manufacturer IS NOT NULL AND manufacturer != '' GROUP BY manufacturer ;";
|
|
|
List<Map<String , Object>> manufacturerList = jdbcTemplate.queryForList(manufacturerSql);
|
|
|
if (manufacturerList.size() > 0) {
|
|
|
object.put("manufacturerCount",manufacturerList.size());
|
|
|
object.put("manufacturerCount",manufacturerList.size()); //入驻厂商数量
|
|
|
} else {
|
|
|
object.put("manufacturerCount",0);
|
|
|
}
|
|
|
String securitySql = "SELECT allCount,isUse,(allCount - isUse) inventory FROM \n" +
|
|
|
"(SELECT COUNT(1) allCount FROM wlyy_devices WHERE device_type = 1) allCount,\n" +
|
|
|
"(SELECT COUNT(1) isUse FROM wlyy_devices WHERE device_type = 1 AND is_binding = 1) isUse";
|
|
|
List<Map<String , Object>> securityList = jdbcTemplate.queryForList(securitySql);
|
|
|
if (securityList.size() > 0) {
|
|
|
object.put("securityAllCount",securityList.get(0).get("allCount")); //安防设备总量
|
|
|
object.put("securityIsUseCount",securityList.get(0).get("isUse"));//安防设备使用中数量
|
|
|
object.put("securityInventoryCount",securityList.get(0).get("inventory"));//安防设备库存量
|
|
|
} else {
|
|
|
object.put("securityAllCount",0); //安防设备总量
|
|
|
object.put("securityIsUseCount",0);//安防设备使用中数量
|
|
|
object.put("securityInventoryCount",0);//安防设备库存量
|
|
|
}
|
|
|
String healthSql = "SELECT allCount,isUse,(allCount - isUse) inventory FROM \n" +
|
|
|
"(SELECT COUNT(1) allCount FROM wlyy_devices WHERE device_type = 0) allCount,\n" +
|
|
|
"(SELECT COUNT(1) isUse FROM wlyy_devices WHERE device_type = 0 AND is_binding = 1) isUse";
|
|
|
List<Map<String , Object>> healthList = jdbcTemplate.queryForList(healthSql);
|
|
|
if (healthList.size() > 0) {
|
|
|
object.put("healthAllCount",securityList.get(0).get("allCount"));//健康设备总量
|
|
|
object.put("healthIsUseCount",securityList.get(0).get("isUse"));//健康设备使用中数量
|
|
|
object.put("healthInventoryCount",securityList.get(0).get("inventory"));//健康设备库存量
|
|
|
} else {
|
|
|
object.put("healthAllCount",0);//健康设备总量
|
|
|
object.put("healthIsUseCount",0);//健康设备使用中数量
|
|
|
object.put("healthInventoryCount",0);//健康设备库存量
|
|
|
}
|
|
|
//物联率
|
|
|
object.put("lawOfIOT",getRange( ((Integer)securityList.get(0).get("isUse") + (Integer) healthList.get(0).get("isUser")),( (Integer) securityList.get(0).get("allCount") + (Integer) healthList.get(0).get("allCount") ) ));
|
|
|
object.put("isUseAllIot",((Integer)securityList.get(0).get("isUse") + (Integer) healthList.get(0).get("isUser")));//已发放设备
|
|
|
object.put("allIot",(Integer) securityList.get(0).get("allCount") + (Integer) healthList.get(0).get("allCount"));//总设备
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
|
|
|
public String getRange(int first, int second) {
|
|
|
if (second == 0 && first > 0) {
|
|
|
//如果分母为0 分子不为0 返回100%
|
|
|
return "100%";
|
|
|
} else if (second == 0 && first == 0) {
|
|
|
//如果分母为0 分子为0 返回0%
|
|
|
return "0%";
|
|
|
}
|
|
|
float size = (float) (first * 100) / second;
|
|
|
DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0
|
|
|
String filesize = df.format(size);
|
|
|
return filesize + "%";
|
|
|
}
|
|
|
|
|
|
}
|