|
|
|
@ -27,6 +27,7 @@ import org.jeecg.modules.exhibitShowpiece.service.IExhibitShowpieceService; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import javax.annotation.Resource; |
|
|
|
import java.util.ArrayList; |
|
|
|
import java.util.HashMap; |
|
|
|
import java.util.List; |
|
|
|
import java.util.Map; |
|
|
|
@ -278,41 +279,131 @@ public class ConfigServiceImpl implements ConfigService { |
|
|
|
log.info("开始查询统计信息"); |
|
|
|
//返回信息 |
|
|
|
String massege = ""; |
|
|
|
Map<String, Object> map = new HashMap<>(); |
|
|
|
Map<String, Object> result = new HashMap<>(); |
|
|
|
|
|
|
|
try{ |
|
|
|
//展品数量 |
|
|
|
long showpieceNum = exhibitShowpieceService.count(); |
|
|
|
map.put("showpieceNum", showpieceNum); |
|
|
|
|
|
|
|
//维护中的数量 |
|
|
|
long repairingNum = exhibitMalfunctionService.lambdaQuery().notIn(ExhibitMalfunction::getStatus, "2").count(); |
|
|
|
map.put("repairingNum", repairingNum); |
|
|
|
|
|
|
|
//无法使用数量 |
|
|
|
long cannotUseNum = exhibitMalfunctionService.lambdaQuery().notIn(ExhibitMalfunction::getStatus, "2").eq(ExhibitMalfunction::getIsAffectUse, "1").count(); |
|
|
|
map.put("cannotUseNum", cannotUseNum); |
|
|
|
|
|
|
|
//完好率 |
|
|
|
double undamaged = (showpieceNum - repairingNum) * 1.0 / showpieceNum; |
|
|
|
String undamagedRate = String.format("%.2f", undamaged * 100) + "%"; |
|
|
|
map.put("undamagedRate", undamagedRate); |
|
|
|
|
|
|
|
//维修率(暂不处理) |
|
|
|
|
|
|
|
//维修次数 |
|
|
|
long repairedNum = exhibitMalfunctionService.count(); |
|
|
|
map.put("repairedNum", repairedNum); |
|
|
|
|
|
|
|
//保养次数 |
|
|
|
long maintenancedNum = exhibitMaintenanceService.count(); |
|
|
|
map.put("maintenancedNum", maintenancedNum); |
|
|
|
|
|
|
|
//维修次数最多的展品 |
|
|
|
|
|
|
|
// 第一行:基础数据统计 |
|
|
|
List<Map<String, Object>> dataItems = new ArrayList<>(); |
|
|
|
Map<String, Object> item1 = new HashMap<>(); |
|
|
|
item1.put("title", "展品数量"); |
|
|
|
item1.put("value", showpieceNum); |
|
|
|
item1.put("icon", "database"); |
|
|
|
item1.put("cardClass", "primary-card"); |
|
|
|
item1.put("description", "总展品数量"); |
|
|
|
dataItems.add(item1); |
|
|
|
|
|
|
|
Map<String, Object> item2 = new HashMap<>(); |
|
|
|
item2.put("title", "维护中数量"); |
|
|
|
item2.put("value", repairingNum); |
|
|
|
item2.put("icon", "tool"); |
|
|
|
item2.put("cardClass", "warning-card"); |
|
|
|
item2.put("description", "正在维护的展品"); |
|
|
|
dataItems.add(item2); |
|
|
|
|
|
|
|
Map<String, Object> item3 = new HashMap<>(); |
|
|
|
item3.put("title", "无法使用数量"); |
|
|
|
item3.put("value", cannotUseNum); |
|
|
|
item3.put("icon", "exclamation-circle"); |
|
|
|
item3.put("cardClass", "danger-card"); |
|
|
|
item3.put("description", "故障无法使用"); |
|
|
|
dataItems.add(item3); |
|
|
|
|
|
|
|
// Map<String, Object> item4 = new HashMap<>(); |
|
|
|
// item4.put("title", "其它"); |
|
|
|
// item4.put("value", showpieceNum - repairingNum - cannotUseNum); |
|
|
|
// item4.put("icon", "question-circle"); |
|
|
|
// item4.put("cardClass", "info-card"); |
|
|
|
// item4.put("description", "其他状态展品"); |
|
|
|
// dataItems.add(item4); |
|
|
|
|
|
|
|
// 第二行:统计率数据 |
|
|
|
List<Map<String, Object>> rateItems = new ArrayList<>(); |
|
|
|
//完好率 |
|
|
|
double undamaged = showpieceNum > 0 ? (showpieceNum - repairingNum) * 1.0 / showpieceNum : 0; |
|
|
|
double undamagedRate = undamaged * 100; |
|
|
|
|
|
|
|
Map<String, Object> rate1 = new HashMap<>(); |
|
|
|
rate1.put("title", "完好率"); |
|
|
|
rate1.put("value", Double.parseDouble(String.format("%.1f", undamagedRate))); |
|
|
|
rate1.put("icon", "check-circle"); |
|
|
|
rate1.put("cardClass", "success-rate"); |
|
|
|
// rate1.put("trend", "up"); |
|
|
|
// rate1.put("trendValue", 2.3); |
|
|
|
rateItems.add(rate1); |
|
|
|
|
|
|
|
//维修率 |
|
|
|
double repairRate = showpieceNum > 0 ? repairingNum * 100.0 / showpieceNum : 0; |
|
|
|
Map<String, Object> rate2 = new HashMap<>(); |
|
|
|
rate2.put("title", "维修率"); |
|
|
|
rate2.put("value", Double.parseDouble(String.format("%.1f", repairRate))); |
|
|
|
rate2.put("icon", "setting"); |
|
|
|
rate2.put("cardClass", "warning-rate"); |
|
|
|
// rate2.put("trend", "down"); |
|
|
|
// rate2.put("trendValue", 1.2); |
|
|
|
rateItems.add(rate2); |
|
|
|
|
|
|
|
//故障率 |
|
|
|
// double faultRate = showpieceNum > 0 ? cannotUseNum * 100.0 / showpieceNum : 0; |
|
|
|
// Map<String, Object> rate3 = new HashMap<>(); |
|
|
|
// rate3.put("title", "故障率"); |
|
|
|
// rate3.put("value", Double.parseDouble(String.format("%.1f", faultRate))); |
|
|
|
// rate3.put("icon", "warning"); |
|
|
|
// rate3.put("cardClass", "danger-rate"); |
|
|
|
// // rate3.put("trend", "down"); |
|
|
|
// // rate3.put("trendValue", 0.5); |
|
|
|
// rateItems.add(rate3); |
|
|
|
|
|
|
|
// 第三行:维修保养统计 |
|
|
|
List<Map<String, Object>> maintenanceItems = new ArrayList<>(); |
|
|
|
Map<String, Object> maintenance1 = new HashMap<>(); |
|
|
|
maintenance1.put("title", "维修次数"); |
|
|
|
maintenance1.put("value", repairedNum); |
|
|
|
maintenance1.put("icon", "wrench"); |
|
|
|
maintenance1.put("description", "维修总次数"); |
|
|
|
maintenanceItems.add(maintenance1); |
|
|
|
|
|
|
|
Map<String, Object> maintenance2 = new HashMap<>(); |
|
|
|
maintenance2.put("title", "保养次数"); |
|
|
|
maintenance2.put("value", maintenancedNum); |
|
|
|
maintenance2.put("icon", "safety-certificate"); |
|
|
|
maintenance2.put("description", "保养总次数"); |
|
|
|
maintenanceItems.add(maintenance2); |
|
|
|
|
|
|
|
// TODO: 需要实现查询数据库的逻辑 |
|
|
|
/* |
|
|
|
Map<String, Object> maintenance3 = new HashMap<>(); |
|
|
|
maintenance3.put("title", "维修次数/最多展品"); |
|
|
|
maintenance3.put("value", 12); // 这里可以根据实际需求查询最多维修次数的展品 |
|
|
|
maintenance3.put("icon", "bar-chart"); |
|
|
|
maintenance3.put("description", "单个展品最多维修次数"); |
|
|
|
maintenanceItems.add(maintenance3); |
|
|
|
|
|
|
|
Map<String, Object> maintenance4 = new HashMap<>(); |
|
|
|
maintenance4.put("title", "平均维修时长"); |
|
|
|
maintenance4.put("value", 4.5); // 这里可以根据实际需求计算平均维修时长 |
|
|
|
maintenance4.put("icon", "clock-circle"); |
|
|
|
maintenance4.put("description", "小时"); |
|
|
|
maintenance4.put("unit", "小时"); |
|
|
|
maintenanceItems.add(maintenance4); |
|
|
|
*/ |
|
|
|
|
|
|
|
result.put("dataItems", dataItems); |
|
|
|
result.put("rateItems", rateItems); |
|
|
|
result.put("maintenanceItems", maintenanceItems); |
|
|
|
|
|
|
|
log.info("统计信息查询结束"); |
|
|
|
return Result.OK("统计信息", map); |
|
|
|
return Result.OK("统计信息", result); |
|
|
|
}catch (Exception e){ |
|
|
|
log.error("统计信息查询失败"); |
|
|
|
e.printStackTrace(); |
|
|
|
|