|
@@ -0,0 +1,138 @@
|
|
|
+package com.persagy.apm.energy.report.manualfilling.service.impl;
|
|
|
+
|
|
|
+import com.persagy.apm.energy.report.common.utils.DateUtils;
|
|
|
+import com.persagy.apm.energy.report.manualfilling.model.dto.QueryEnergyItemDataDTO;
|
|
|
+import com.persagy.apm.energy.report.manualfilling.model.dto.SaveEnergyItemDataDTO;
|
|
|
+import com.persagy.apm.energy.report.manualfilling.model.vo.EnergyItemDataVo;
|
|
|
+import com.persagy.apm.energy.report.manualfilling.model.vo.EnergyItemInfoVo;
|
|
|
+import com.persagy.apm.energy.report.manualfilling.service.IEnergyItemDataService;
|
|
|
+import com.persagy.apm.energy.report.monthly.config.function.model.Function;
|
|
|
+import com.persagy.apm.energy.report.monthly.config.function.model.dto.QueryFunctionDTO;
|
|
|
+import com.persagy.apm.energy.report.monthly.config.function.service.IFunctionService;
|
|
|
+import com.persagy.apm.energy.report.monthly.functionvalue.model.FunctionValue;
|
|
|
+import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.AddFunctionValueDTO;
|
|
|
+import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.QueryFunctionValueDTO;
|
|
|
+import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.UpdateFunctionValueDTO;
|
|
|
+import com.persagy.apm.energy.report.monthly.functionvalue.service.IFunctionValueService;
|
|
|
+import com.persagy.apm.energy.report.saasweb.model.vo.ReportProjectVO;
|
|
|
+import com.persagy.apm.energy.report.saasweb.service.ISaasWebService;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+@Service
|
|
|
+public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IFunctionService functionService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ISaasWebService iSaasWebService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private IFunctionValueService functionValueService;
|
|
|
+
|
|
|
+ @Value("${group.code}")
|
|
|
+ private String groupCode;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<EnergyItemInfoVo> queryEnergyItemDataList(QueryEnergyItemDataDTO queryEnergyItemDataDTO) {
|
|
|
+ try {
|
|
|
+ ReportProjectVO projectVO = iSaasWebService.getReportProjectInfo(queryEnergyItemDataDTO.getProjectId());
|
|
|
+ if (null == projectVO || StringUtils.isEmpty(projectVO.getFunctionType())) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ QueryFunctionDTO queryFunctionDTO = new QueryFunctionDTO();
|
|
|
+ queryFunctionDTO.setGroupCode(groupCode);
|
|
|
+ if (!StringUtils.isEmpty(queryEnergyItemDataDTO.getGroupCode())) {
|
|
|
+ queryFunctionDTO.setGroupCode(queryEnergyItemDataDTO.getGroupCode());
|
|
|
+ }
|
|
|
+ queryFunctionDTO.setEnergyType(queryEnergyItemDataDTO.getEnergyType());
|
|
|
+ queryFunctionDTO.setFunctionType(queryEnergyItemDataDTO.getFunctionType());
|
|
|
+ queryFunctionDTO.setBuildingType(projectVO.getFunctionType());
|
|
|
+ queryFunctionDTO.setModelCode(queryEnergyItemDataDTO.getModelCode());
|
|
|
+ // 查询配置的分项信息列表
|
|
|
+ List<Function> functionList = functionService.queryFunctionList(queryFunctionDTO);
|
|
|
+ if (CollectionUtils.isEmpty(functionList)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ // 配置信息点id列表
|
|
|
+ List<String> functionIdList = new ArrayList<>();
|
|
|
+ for (Function function : functionList) {
|
|
|
+ functionIdList.add(function.getItemId());
|
|
|
+ }
|
|
|
+ QueryFunctionValueDTO queryFunctionValueDTO = new QueryFunctionValueDTO();
|
|
|
+ queryFunctionValueDTO.setProjectId(queryEnergyItemDataDTO.getProjectId());
|
|
|
+ queryFunctionValueDTO.setFunctionIdList(functionIdList);
|
|
|
+ queryFunctionValueDTO.setStartTime(DateUtils.str2Date(queryEnergyItemDataDTO.getStartDate(), DateUtils.SDF_SECOND));
|
|
|
+ queryFunctionValueDTO.setEndTime(DateUtils.str2Date(queryEnergyItemDataDTO.getEndDate(), DateUtils.SDF_SECOND));
|
|
|
+ // 查询配置分项某时间段内的数据
|
|
|
+ List<FunctionValue> functionValueList = functionValueService.queryFunctionValueList(queryFunctionValueDTO);
|
|
|
+ // {信息点id:{数据时间:数据}}
|
|
|
+ Map<String, List<EnergyItemDataVo>> funcId_dateAndDataMap = new HashMap<>();
|
|
|
+ if (CollectionUtils.isNotEmpty(functionValueList)) {
|
|
|
+ for (FunctionValue functionValue : functionValueList) {
|
|
|
+ List<EnergyItemDataVo> energyItemDataVoList = funcId_dateAndDataMap.get(functionValue.getFunctionId());
|
|
|
+ if (null == energyItemDataVoList) {
|
|
|
+ energyItemDataVoList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ EnergyItemDataVo energyItemDataVo = new EnergyItemDataVo();
|
|
|
+ energyItemDataVo.setId(functionValue.getId());
|
|
|
+ energyItemDataVo.setTime(DateUtils.date2Str(functionValue.getDataTime(), DateUtils.SDF_SECOND));
|
|
|
+ energyItemDataVo.setValue(functionValue.getValue());
|
|
|
+ energyItemDataVoList.add(energyItemDataVo);
|
|
|
+ funcId_dateAndDataMap.put(functionValue.getFunctionId(), energyItemDataVoList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<EnergyItemInfoVo> resultList = new ArrayList<>();
|
|
|
+ for (Function function : functionList) {
|
|
|
+ EnergyItemInfoVo energyItemInfoVo = new EnergyItemInfoVo();
|
|
|
+ energyItemInfoVo.setItemId(function.getItemId());
|
|
|
+ energyItemInfoVo.setFunctionId(function.getId());
|
|
|
+ energyItemInfoVo.setDataList(funcId_dateAndDataMap.get(function.getId()) == null ? new ArrayList<>() : funcId_dateAndDataMap.get(function.getId()));
|
|
|
+ resultList.add(energyItemInfoVo);
|
|
|
+ }
|
|
|
+ return resultList;
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void saveEnergyItemData(SaveEnergyItemDataDTO saveEnergyItemDataDTO) {
|
|
|
+ try {
|
|
|
+ List<EnergyItemInfoVo> energyItemInfoVoList = saveEnergyItemDataDTO.getDataList();
|
|
|
+ for (EnergyItemInfoVo energyItemInfoVo : energyItemInfoVoList) {
|
|
|
+ List<EnergyItemDataVo> energyItemDataVos = energyItemInfoVo.getDataList();
|
|
|
+ for (EnergyItemDataVo energyItemDataVo : energyItemDataVos) {
|
|
|
+ if (StringUtils.isEmpty(energyItemDataVo.getId())) {
|
|
|
+ AddFunctionValueDTO addFunctionValueDTO = new AddFunctionValueDTO();
|
|
|
+ addFunctionValueDTO.setProjectId(saveEnergyItemDataDTO.getProjectId());
|
|
|
+ addFunctionValueDTO.setFunctionId(energyItemInfoVo.getFunctionId());
|
|
|
+ addFunctionValueDTO.setDataTime(DateUtils.str2Date(energyItemDataVo.getTime(), DateUtils.SDF_SECOND));
|
|
|
+ addFunctionValueDTO.setValue(energyItemDataVo.getValue());
|
|
|
+ functionValueService.createFunctionValue(addFunctionValueDTO);
|
|
|
+ } else {
|
|
|
+ UpdateFunctionValueDTO updateFunctionValueDTO = new UpdateFunctionValueDTO();
|
|
|
+ updateFunctionValueDTO.setId(energyItemDataVo.getId());
|
|
|
+ updateFunctionValueDTO.setProjectId(saveEnergyItemDataDTO.getProjectId());
|
|
|
+ updateFunctionValueDTO.setFunctionId(energyItemInfoVo.getFunctionId());
|
|
|
+ updateFunctionValueDTO.setDataTime(DateUtils.str2Date(energyItemDataVo.getTime(), DateUtils.SDF_SECOND));
|
|
|
+ updateFunctionValueDTO.setValue(energyItemDataVo.getValue());
|
|
|
+ functionValueService.updateFunctionValue(updateFunctionValueDTO);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|