|
@@ -12,6 +12,7 @@ import com.persagy.apm.energy.report.common.utils.SpringContextHolder;
|
|
|
import com.persagy.apm.energy.report.common.vo.PlatformAreaInfoVO;
|
|
|
import com.persagy.apm.energy.report.environment.model.dto.BatchQueryEnvListByParamDTO;
|
|
|
import com.persagy.apm.energy.report.environment.service.IEnvironmentWebService;
|
|
|
+import com.persagy.apm.energy.report.equiprunmanager.service.IEquipRunManagerService;
|
|
|
import com.persagy.apm.energy.report.iotdataanalysis.model.AlarmInfoVo;
|
|
|
import com.persagy.apm.energy.report.iotdataanalysis.model.CountAndDayRateDataVo;
|
|
|
import com.persagy.apm.energy.report.iotdataanalysis.service.IDataAnalysisWebService;
|
|
@@ -22,15 +23,13 @@ import com.persagy.apm.energy.report.monthly.config.statisticsitems.service.ISta
|
|
|
import com.persagy.apm.energy.report.monthly.config.type.constant.enums.BelongTypeEnum;
|
|
|
import com.persagy.apm.energy.report.monthly.detail.business.model.Platform;
|
|
|
import com.persagy.apm.energy.report.monthly.detail.common.model.vo.DateGraphItemVO;
|
|
|
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectAlarmDealInfo;
|
|
|
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectKpiItem;
|
|
|
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceGraph;
|
|
|
-import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.HotelProjectMaintenanceInfo;
|
|
|
+import com.persagy.apm.energy.report.monthly.detail.hotel.project.model.vo.*;
|
|
|
import com.persagy.apm.energy.report.saasweb.model.dto.QueryProjectDTO;
|
|
|
import com.persagy.apm.energy.report.saasweb.model.vo.PoemsProjectVO;
|
|
|
import com.persagy.apm.energy.report.saasweb.model.vo.ReportProjectVO;
|
|
|
import com.persagy.apm.energy.report.saasweb.service.ISaasWebService;
|
|
|
import com.persagy.apm.energy.report.saasweb.service.impl.SaasWebClientWrapper;
|
|
|
+import com.persagy.apm.energy.report.workorder.model.WorkOrder;
|
|
|
import com.persagy.apm.energy.report.workorder.service.IWorkOrderWebService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -63,7 +62,7 @@ public class CommonServiceImpl implements CommonService {
|
|
|
IDataAnalysisWebService iDataAnalysisWebService;
|
|
|
|
|
|
@Value("${group.code}")
|
|
|
- private String groupCode;
|
|
|
+ String groupCode;
|
|
|
|
|
|
@Autowired
|
|
|
IStatisticItemsService iStatisticItemsService;
|
|
@@ -71,6 +70,15 @@ public class CommonServiceImpl implements CommonService {
|
|
|
@Autowired
|
|
|
ISaasWebService saasWebService;
|
|
|
|
|
|
+ @Value("${work.order.type}")
|
|
|
+ String workOrderType;
|
|
|
+
|
|
|
+ @Value("${energy.save.work.order.type}")
|
|
|
+ String energySaveWorkOrderType;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ IEquipRunManagerService iEquipRunManagerService;
|
|
|
+
|
|
|
@Override
|
|
|
public List<String> getPjNameByPjId(List<String> pjIdList) {
|
|
|
if (CollectionUtils.isEmpty(pjIdList)) {
|
|
@@ -125,8 +133,16 @@ public class CommonServiceImpl implements CommonService {
|
|
|
|
|
|
@Override
|
|
|
public HotelProjectAlarmDealInfo getHotelProjectAlarmDealInfo(String projectId, Date reportDate) {
|
|
|
- Integer workCount = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "ask_end_time");
|
|
|
- Integer dealCount = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time");
|
|
|
+ Integer workCount = null;
|
|
|
+ Integer dealCount = null;
|
|
|
+ List<WorkOrder> askEndTimeList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "ask_end_time", null);
|
|
|
+ if (null != askEndTimeList) {
|
|
|
+ workCount = askEndTimeList.size();
|
|
|
+ }
|
|
|
+ List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", null);
|
|
|
+ if (null != createTimeWorkList) {
|
|
|
+ dealCount = createTimeWorkList.size();
|
|
|
+ }
|
|
|
Double completeRate = null;
|
|
|
if (null != workCount && workCount != 0 && null != dealCount) {
|
|
|
completeRate = DataUtils.parseDouble(dealCount) / workCount * 100;
|
|
@@ -253,4 +269,69 @@ public class CommonServiceImpl implements CommonService {
|
|
|
return hotelProjectMaintenanceInfo;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public HotelProjectEnergyWorkerOrderInfo getHotelProjectEnergyWorkerOrderInfo(String projectId, Date reportDate) {
|
|
|
+ if (StringUtils.isEmpty(projectId) || null == reportDate) {
|
|
|
+ return new HotelProjectEnergyWorkerOrderInfo();
|
|
|
+ }
|
|
|
+ HotelProjectEnergyWorkerOrderInfo hotelProjectEnergyWorkerOrderInfo = new HotelProjectEnergyWorkerOrderInfo();
|
|
|
+ try {
|
|
|
+ List<WorkOrder> createTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "create_time", workOrderType);
|
|
|
+ Integer totalCount = null;
|
|
|
+ if (null != createTimeWorkList) {
|
|
|
+ totalCount = createTimeWorkList.size();
|
|
|
+ }
|
|
|
+ List<WorkOrder> realFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", workOrderType);
|
|
|
+ Integer executeCount = null;
|
|
|
+ if (null != realFinishTimeWorkList) {
|
|
|
+ executeCount = realFinishTimeWorkList.size();
|
|
|
+ }
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setTotalCount(totalCount);
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setExecuteCount(executeCount);
|
|
|
+ Double executePercent = null;
|
|
|
+ if (null != totalCount && totalCount != 0 && null != executeCount) {
|
|
|
+ executePercent = DataUtils.parseDouble(executeCount) / totalCount * 100;
|
|
|
+ }
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setExecutePercent(executePercent);
|
|
|
+ List<WorkOrder> energySaveRealFinishTimeWorkList = iWorkOrderWebService.getWorkOrderNumByParam(projectId, reportDate, "real_finish_time", energySaveWorkOrderType);
|
|
|
+ Integer initiativeCount = null;
|
|
|
+ if (null != energySaveRealFinishTimeWorkList) {
|
|
|
+ initiativeCount = energySaveRealFinishTimeWorkList.size();
|
|
|
+ }
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setInitiativeCount(initiativeCount);
|
|
|
+ List<String> workOrderIdList = new ArrayList<>();
|
|
|
+ for (WorkOrder workOrder : energySaveRealFinishTimeWorkList) {
|
|
|
+ workOrderIdList.add(workOrder.getOrderId());
|
|
|
+ }
|
|
|
+ // {工单id:工单节能量}
|
|
|
+ Map<String, Double> workId_energyMap = iEquipRunManagerService.getEnergySaveWorderMap(workOrderIdList);
|
|
|
+ Map<String, Integer> sortMap = new HashMap<>();
|
|
|
+ sortMap.put("realFinishTime", -1);
|
|
|
+ DataUtils.sort(energySaveRealFinishTimeWorkList, sortMap);
|
|
|
+ List<HotelProjectEnergyWorkOrderItem> hotelProjectEnergyWorkOrderItemList = new ArrayList<>();
|
|
|
+ Double totalEnergySave = null;
|
|
|
+ for (WorkOrder workOrder : energySaveRealFinishTimeWorkList) {
|
|
|
+ HotelProjectEnergyWorkOrderItem hotelProjectEnergyWorkOrderItem = new HotelProjectEnergyWorkOrderItem();
|
|
|
+ hotelProjectEnergyWorkOrderItem.setWorkName(workOrder.getWoName());
|
|
|
+ String completeTimeStr = "";
|
|
|
+ if (!StringUtils.isEmpty(workOrder.getRealFinishTime())) {
|
|
|
+ Date completeTime = DateUtils.str2Date(workOrder.getRealFinishTime(), DateUtils.SDFSECOND);
|
|
|
+ completeTimeStr = DateUtils.date2Str(completeTime, DateUtils.SDF_DOT_DAY);
|
|
|
+ }
|
|
|
+ hotelProjectEnergyWorkOrderItem.setCompletedTime(completeTimeStr);
|
|
|
+ hotelProjectEnergyWorkOrderItem.setEnergySaved(workId_energyMap.get(workOrder.getOrderId()));
|
|
|
+ hotelProjectEnergyWorkOrderItemList.add(hotelProjectEnergyWorkOrderItem);
|
|
|
+ }
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setDetailInfo(hotelProjectEnergyWorkOrderItemList);
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setTotalEnergySave(totalEnergySave);
|
|
|
+ // 获取项目信息
|
|
|
+ ReportProjectVO reportProjectInfo = saasWebService.getReportProjectInfo(projectId);
|
|
|
+ hotelProjectEnergyWorkerOrderInfo.setProjectName(null == reportProjectInfo ? "" : reportProjectInfo.getProjectName());
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+
|
|
|
+ }
|
|
|
+ return hotelProjectEnergyWorkerOrderInfo;
|
|
|
+ }
|
|
|
+
|
|
|
}
|