|
@@ -9,16 +9,19 @@ import com.usky.common.core.exception.BusinessException;
|
|
|
import com.usky.common.core.util.Arith;
|
|
|
import com.usky.common.mybatis.core.AbstractCrudService;
|
|
|
import com.usky.fire.domain.BscEnterpriseScreen;
|
|
|
+import com.usky.fire.domain.DemBuildScore;
|
|
|
+import com.usky.fire.domain.DemBuildScoreRecord;
|
|
|
import com.usky.fire.mapper.BscEnterpriseScreenMapper;
|
|
|
+import com.usky.fire.mapper.PatrolInspectionPlanSiteSonMapper;
|
|
|
import com.usky.fire.service.*;
|
|
|
+import com.usky.fire.service.util.OnlineMethod;
|
|
|
import com.usky.fire.service.vo.DataCountVo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.text.DecimalFormat;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -49,6 +52,15 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
|
|
|
@Autowired
|
|
|
private AlarmElectricalFireService alarmElectricalFireService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private DemBuildScoreService demBuildScoreService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private DemBuildScoreRecordService demBuildScoreRecordService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private PatrolInspectionPlanSiteSonMapper patrolInspectionPlanSiteSonMapper;
|
|
|
+
|
|
|
@Override
|
|
|
public Object screenDataStatistic(String dataType, String moduleType) {
|
|
|
String companyId = baseUserCompanyService.companyId();
|
|
@@ -142,12 +154,12 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
|
|
|
|
|
|
@Override
|
|
|
public Object fireAlarmStatistics(String companyId) {
|
|
|
- int fireUntreated = alarmFireService.fireAlarmCount(companyId, 0, "2");
|
|
|
- int fireProcessed = alarmFireService.fireAlarmCount(companyId, 1, "2");
|
|
|
+ int fireUntreated = alarmFireService.fireAlarmCount(companyId, 0, "2", null, null);
|
|
|
+ int fireProcessed = alarmFireService.fireAlarmCount(companyId, 1, "2", null, null);
|
|
|
int fireCount = fireUntreated + fireProcessed;
|
|
|
double fireRatio = Arith.div(fireProcessed, fireCount, 2) * 100;
|
|
|
- int faultUntreated = alarmFireService.fireAlarmCount(companyId, 0, "4");
|
|
|
- int faultProcessed = alarmFireService.fireAlarmCount(companyId, 1, "4");
|
|
|
+ int faultUntreated = alarmFireService.fireAlarmCount(companyId, 0, "4", null, null);
|
|
|
+ int faultProcessed = alarmFireService.fireAlarmCount(companyId, 1, "4", null, null);
|
|
|
int faultCount = faultUntreated + faultProcessed;
|
|
|
double faultRatio = Arith.div(faultProcessed, faultCount, 2) * 100;
|
|
|
int deviceCount = baseDeviceService.deviceCount(companyId, 1);
|
|
@@ -354,4 +366,177 @@ public class BscEnterpriseScreenServiceImpl extends AbstractCrudService<BscEnter
|
|
|
map.put("data2", map4);
|
|
|
return map;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object buildScoreStatistics(String companyId) {
|
|
|
+ String LastMonthDate = OnlineMethod.getLastMonth(new Date());
|
|
|
+ DecimalFormat df = new DecimalFormat("0.00");
|
|
|
+ int deviceDamageCount = 20;
|
|
|
+ int fireCount = 0;
|
|
|
+ int rectificationCount = 40;
|
|
|
+ int buildTypeCount = 10;
|
|
|
+ int highRiskCount = 30;
|
|
|
+ int hiddenDangerCount = 70;
|
|
|
+
|
|
|
+ List<DemBuildScore> list1 = demBuildScoreService.buildScoreListOne();
|
|
|
+ int demBuildScoreRecordsCount = demBuildScoreRecordService.demBuildScoreRecordCount(LastMonthDate, null, companyId);
|
|
|
+ Double deviceDamageRieo = 0.00;
|
|
|
+ Double fireRieo = 0.00;
|
|
|
+ Double rectificationRieo = 0.00;
|
|
|
+ Double buildTypeRieo = 0.00;
|
|
|
+ Double highRiskRieo = 0.00;
|
|
|
+ Double hiddenDangerRieo = 0.00;
|
|
|
+
|
|
|
+ Double deviceDamageScore = 0.00;
|
|
|
+ Double fireScore = 0.00;
|
|
|
+ Double rectificationScore = 0.00;
|
|
|
+ Double buildTypeScore = 0.00;
|
|
|
+ Double highRiskScore = 0.00;
|
|
|
+ Double hiddenDangerScore = 0.00;
|
|
|
+
|
|
|
+ for (int i = 0; i < list1.size(); i++) {
|
|
|
+ int riskMax = Integer.parseInt(list1.get(i).getRiskMax());
|
|
|
+ int weightProportion = Integer.parseInt(list1.get(i).getWeightProportion());
|
|
|
+ switch (list1.get(i).getRiskId()) {
|
|
|
+ case 1:
|
|
|
+ deviceDamageRieo = Double.valueOf(df.format((float) deviceDamageCount / riskMax * 100));
|
|
|
+ deviceDamageScore = (100 - deviceDamageRieo) * (weightProportion / 100);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ fireRieo = Double.valueOf(df.format((float) fireCount / riskMax * 100));
|
|
|
+ fireScore = (100 - fireRieo) * (weightProportion / 100);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ rectificationRieo = Double.valueOf(df.format((float) rectificationCount / riskMax * 100));
|
|
|
+ rectificationScore = (100 - rectificationRieo) * (weightProportion / 100);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ buildTypeRieo = Double.valueOf(df.format((float) buildTypeCount / riskMax * 100));
|
|
|
+ buildTypeScore = (100 - buildTypeRieo) * (weightProportion / 100);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ highRiskRieo = Double.valueOf(df.format((float) highRiskCount / riskMax * 100));
|
|
|
+ highRiskScore = (100 - highRiskRieo) * (weightProportion / 100);
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ hiddenDangerRieo = Double.valueOf(df.format((float) hiddenDangerCount / riskMax * 100));
|
|
|
+ hiddenDangerScore = (100 - hiddenDangerRieo) * (weightProportion / 100);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Double totalScore1 = deviceDamageScore + fireScore + rectificationScore + buildTypeScore + highRiskScore + hiddenDangerScore;
|
|
|
+ int totalScore = totalScore1.intValue();
|
|
|
+ List<Object> data1 = new ArrayList<>();
|
|
|
+ for (int i = 0; i < 6; i++) {
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
+ map1.put("text", "DataA");
|
|
|
+ switch (i) {
|
|
|
+ case 0:
|
|
|
+ map1.put("name", "设备状况指数");
|
|
|
+ map1.put("value", deviceDamageRieo);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ map1.put("name", "执法监管安全指数");
|
|
|
+ map1.put("value", rectificationRieo);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ map1.put("name", "历史火灾指数");
|
|
|
+ map1.put("value", fireRieo);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ map1.put("name", "隐患状况指数");
|
|
|
+ map1.put("value", highRiskRieo);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ map1.put("name", "建筑整体风险指");
|
|
|
+ map1.put("value", buildTypeRieo);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ map1.put("name", "场所行业风险指数");
|
|
|
+ map1.put("value", highRiskRieo);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ data1.add(map1);
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<String, Object> data2 = new HashMap<>();
|
|
|
+ data2.put("value", totalScore);
|
|
|
+
|
|
|
+ Map<String, Object> data3 = new HashMap<>();
|
|
|
+ data3.put("value", 10);
|
|
|
+
|
|
|
+ Map<String, Object> data4 = new HashMap<>();
|
|
|
+ data4.put("value", 80);
|
|
|
+ if (demBuildScoreRecordsCount <= 0) {
|
|
|
+ DemBuildScoreRecord demBuildScoreRecord = new DemBuildScoreRecord();
|
|
|
+ demBuildScoreRecord.setBuildScore(totalScore);
|
|
|
+ demBuildScoreRecord.setScoreDate(LastMonthDate);
|
|
|
+ demBuildScoreRecord.setCompanyId(companyId);
|
|
|
+ demBuildScoreRecordService.demBuildScoreRecordAdd(demBuildScoreRecord);
|
|
|
+ }
|
|
|
+ List<DemBuildScoreRecord> demBuildScoreRecordsList = demBuildScoreRecordService.demBuildScoreRecordList(companyId, null);
|
|
|
+ List<String> categoriesList = new ArrayList<>();
|
|
|
+ List<Integer> seriesDataList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < demBuildScoreRecordsList.size(); i++) {
|
|
|
+ categoriesList.add(demBuildScoreRecordsList.get(demBuildScoreRecordsList.size() - (i + 1)).getScoreDate());
|
|
|
+ seriesDataList.add(demBuildScoreRecordsList.get(demBuildScoreRecordsList.size() - (i + 1)).getBuildScore());
|
|
|
+ }
|
|
|
+ List<Object> series = new ArrayList<>();
|
|
|
+ Map<String, Object> map3 = new HashMap<>();
|
|
|
+ map3.put("name", "得分");
|
|
|
+ map3.put("data", seriesDataList);
|
|
|
+ series.add(map3);
|
|
|
+ Map<String, Object> map4 = new HashMap<>();
|
|
|
+ map4.put("categories", categoriesList);
|
|
|
+ map4.put("series", series);
|
|
|
+ Map<String, Object> data5 = new HashMap<>();
|
|
|
+ data5.put("data", map4);
|
|
|
+
|
|
|
+ Map<String, Object> map2 = new HashMap<>();
|
|
|
+ map2.put("data1", data1);
|
|
|
+ map2.put("data2", data2);
|
|
|
+ map2.put("data3", data3);
|
|
|
+ map2.put("data4", data4);
|
|
|
+ map2.put("data5", data5);
|
|
|
+ return map2;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Object patrolInspectionStatistics(String companyId) {
|
|
|
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String sameDay = format.format(new Date());
|
|
|
+ String startTime = null;
|
|
|
+ String endTime = null;
|
|
|
+ int qualifiedCount = 0;
|
|
|
+ int undetectedCount = 0;
|
|
|
+ List<Integer> seriesDataList1 = new ArrayList<>();
|
|
|
+ List<Integer> seriesDataList2 = new ArrayList<>();
|
|
|
+ List<Integer> seriesDataList3 = new ArrayList<>();
|
|
|
+ for (int i = 0; i < 3; i++) {
|
|
|
+ if (i == 0) {
|
|
|
+ startTime = sameDay;
|
|
|
+ endTime = sameDay;
|
|
|
+ } else if (i == 1) {
|
|
|
+ startTime = sameDay;
|
|
|
+ endTime = sameDay;
|
|
|
+ } else if (i == 2) {
|
|
|
+ startTime = sameDay;
|
|
|
+ endTime = sameDay;
|
|
|
+ }
|
|
|
+ qualifiedCount = patrolInspectionPlanSiteSonMapper.planSonSiteCout(startTime, endTime, 2);
|
|
|
+ undetectedCount = patrolInspectionPlanSiteSonMapper.planSonSiteCout(startTime, endTime, 1);
|
|
|
+ if (i == 0) {
|
|
|
+ seriesDataList1.add(qualifiedCount);
|
|
|
+ seriesDataList1.add(undetectedCount);
|
|
|
+ } else if (i == 1) {
|
|
|
+ seriesDataList2.add(qualifiedCount);
|
|
|
+ seriesDataList2.add(undetectedCount);
|
|
|
+ } else if (i == 2) {
|
|
|
+ seriesDataList3.add(qualifiedCount);
|
|
|
+ seriesDataList3.add(undetectedCount);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
}
|