|
@ -11,6 +11,7 @@ import com.yihu.jw.patient.dao.BasePatientDao;
|
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
|
import com.yihu.jw.rm.base.BaseRequestMapping;
|
|
|
import com.yihu.jw.utils.StringUtil;
|
|
|
import io.swagger.models.auth.In;
|
|
|
import org.apache.commons.lang.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@ -21,6 +22,7 @@ import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
@ -333,4 +335,71 @@ public class DetectionPlatformService {
|
|
|
return nightRecordList; //起夜记录
|
|
|
}
|
|
|
|
|
|
public JSONObject getDistributionOfWarningTypes(){
|
|
|
JSONObject object = new JSONObject();
|
|
|
/****预警类型分布****/
|
|
|
String sql = "SELECT hsd.dict_value,aa.count FROM wlyy_hospital_sys_dict hsd LEFT JOIN (SELECT serve_desc,COUNT(1) count FROM base_security_monitoring_order GROUP BY serve_desc)aa ON hsd.dict_value = aa.serve_desc WHERE hsd.dict_name = 'security_server_dict'";
|
|
|
List<Map<String , Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
/****工单总量****/
|
|
|
String sqlAll = "SELECT COUNT(1) count FROM base_security_monitoring_order";
|
|
|
Integer countAll = jdbcTemplate.queryForObject(sqlAll,Integer.class);
|
|
|
|
|
|
/****误报警数量****/
|
|
|
String sql1 = "SELECT COUNT(1) count FROM base_security_monitoring_order WHERE emergency_cancel IS NOT NULL OR emergency_cancel != ''";
|
|
|
Integer falseAlarmCount = jdbcTemplate.queryForObject(sql1,Integer.class);
|
|
|
|
|
|
/****响应数量****/
|
|
|
String responseCountSql = "SELECT COUNT(1) count FROM base_security_monitoring_order WHERE (emergency_cancel IS NOT NULL OR emergency_cancel != '') OR `status` = 0 GROUP BY id";
|
|
|
List<Map<String,Object>> responseList = jdbcTemplate.queryForList(responseCountSql);
|
|
|
Integer responseCount = responseList.size();
|
|
|
|
|
|
object.put("distributionOfWarning",list);
|
|
|
object.put("countAll",countAll);
|
|
|
object.put("falseAlarmCount",falseAlarmCount);
|
|
|
object.put("responseCount",responseCount);
|
|
|
/****误报警率****/
|
|
|
object.put("falseAlarmLaw",getRange(falseAlarmCount,countAll));
|
|
|
/****响应率****/
|
|
|
object.put("responseLaw",getRange(responseCount,countAll));
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
public JSONObject getServiceSituation(){
|
|
|
JSONObject object = new JSONObject();
|
|
|
/*****设备分类****/
|
|
|
// SELECT hsd.`value` dict_value,aa.count FROM base_system_dict_entry hsd LEFT JOIN (SELECT serve_desc,COUNT(1) count FROM base_security_monitoring_order GROUP BY serve_desc)aa ON hsd.`value` = aa.serve_desc WHERE hsd.remark = 'security'
|
|
|
String passportTypeSql = "SELECT sde.`value`,COUNT(d.id) count,GROUP_CONCAT(DISTINCT d.category_code SEPARATOR ',') AS category_code,GROUP_CONCAT(DISTINCT d.model SEPARATOR ',') AS model FROM base_system_dict_entry sde LEFT JOIN dm_device d ON FIND_IN_SET(sde.`code`,d.service_topic) WHERE sde.remark = 'security' GROUP BY sde.`value` ";
|
|
|
List<Map<String , Object>> passportType = jdbcTemplate.queryForList(passportTypeSql);
|
|
|
String useSql = "";
|
|
|
String allSql = "";
|
|
|
String model = "";
|
|
|
Integer use = 0;
|
|
|
Integer putOnFile = 0;
|
|
|
if (passportType.size() > 0) {
|
|
|
for (int i=0;i<passportType.size();i++) {
|
|
|
System.out.println(passportType.get(i).get("value") +" " + passportType.get(i).get("count") +" " + passportType.get(i).get("category_code"));
|
|
|
Long count = (Long) passportType.get(i).get("count");
|
|
|
model = (String) passportType.get(i).get("model");
|
|
|
model = model.replace(",","','");
|
|
|
if ( count.intValue() > 0) {
|
|
|
useSql = "SELECT COUNT(1) FROM wlyy_patient_device WHERE category_code IN ("+ passportType.get(i).get("category_code") +") AND del = 0";
|
|
|
use = jdbcTemplate.queryForObject(useSql,Integer.class);
|
|
|
passportType.get(i).put("use",use);//使用
|
|
|
allSql = "SELECT COUNT(1) FROM wlyy_devices WHERE device_model IN ('"+ model +"')";
|
|
|
putOnFile = jdbcTemplate.queryForObject(allSql,Integer.class);
|
|
|
passportType.get(i).put("putOnFile",putOnFile); //备案
|
|
|
passportType.get(i).put("stock",putOnFile - use); //库存
|
|
|
} else {
|
|
|
passportType.get(i).put("putOnFile",0); //备案
|
|
|
passportType.get(i).put("stock",0); //库存
|
|
|
passportType.get(i).put("use",0); //使用
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
object.put("passportType",passportType);
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|