Browse Source

Merge branch 'dev-v1.0.0' of http://39.106.8.246:3003/apm/energy-report into dev-v1.0.0

lixing 4 years ago
parent
commit
008582574b

+ 1 - 2
src/main/java/com/persagy/apm/energy/report/iotdataanalysis/service/impl/IDataAnalysisWebServiceImpl.java

@@ -14,13 +14,12 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 @Service
 public class IDataAnalysisWebServiceImpl implements IDataAnalysisWebService {
 
-    @Value("${iot.data.analysis.url}")
+//    @Value("${iot.data.analysis.url}")
     private String iotDataAnalysisUrl;
 
     @Resource

+ 0 - 1
src/main/java/com/persagy/apm/energy/report/manualfilling/model/dto/QueryEnergyItemDataDTO.java

@@ -25,7 +25,6 @@ public class QueryEnergyItemDataDTO {
     @ApiModelProperty(value = "信息点类型(0-能耗,1-费用 ,2-能耗预算,3-费用预算)", required = true)
     private String functionType;
 
-    @NotNull(message = "modelCode不能为空")
     @ApiModelProperty(value = "能耗模型编码", required = true)
     private String modelCode;
 

+ 9 - 0
src/main/java/com/persagy/apm/energy/report/manualfilling/model/dto/SaveEnergyItemDataDTO.java

@@ -15,6 +15,15 @@ public class SaveEnergyItemDataDTO {
     @ApiModelProperty(value = "项目id", required = true)
     private String projectId;
 
+    @ApiModelProperty("能耗类型")
+    private String energyType;
+
+    @ApiModelProperty("建筑类型(业态)")
+    private String buildingType;
+
+    @ApiModelProperty("信息点类型(0-能耗,1-费用 ,2-能耗预算,3-费用预算)")
+    private String functionType;
+
     @NotNull(message = "dataList不能为空")
     @ApiModelProperty(value = "能耗分项录入数据列表", required = true)
     private List<EnergyItemInfoVo> dataList;

+ 38 - 24
src/main/java/com/persagy/apm/energy/report/manualfilling/service/impl/IEnergyItemDataServiceImpl.java

@@ -10,9 +10,8 @@ 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.BatchDeleteFunctionValueDTO;
 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;
@@ -22,10 +21,7 @@ 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;
+import java.util.*;
 
 @Service
 public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
@@ -39,7 +35,7 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
     @Autowired
     private IFunctionValueService functionValueService;
 
-    @Value("${group.code}")
+//    @Value("${group.code}")
     private String groupCode;
 
     @Override
@@ -95,7 +91,6 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
             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);
             }
@@ -110,29 +105,48 @@ public class IEnergyItemDataServiceImpl implements IEnergyItemDataService {
     public void saveEnergyItemData(SaveEnergyItemDataDTO saveEnergyItemDataDTO) {
         try {
             List<EnergyItemInfoVo> energyItemInfoVoList = saveEnergyItemDataDTO.getDataList();
+            Map<String, String> itemId_functionIdMap = getFunctionIdMap(saveEnergyItemDataDTO);
             for (EnergyItemInfoVo energyItemInfoVo : energyItemInfoVoList) {
+                // 配置信息点id
+                String functionId = itemId_functionIdMap.get(energyItemInfoVo.getItemId());
                 List<EnergyItemDataVo> energyItemDataVos = energyItemInfoVo.getDataList();
+                List<Date> deleteDates = new ArrayList<>();
+                List<FunctionValue> functionValues = new ArrayList<>();
                 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);
-                    }
+                    FunctionValue functionValue = new FunctionValue();
+                    functionValue.setProjectId(saveEnergyItemDataDTO.getProjectId());
+                    functionValue.setFunctionId(functionId);
+                    functionValue.setDataTime(DateUtils.str2Date(energyItemDataVo.getTime(), DateUtils.SDF_SECOND));
+                    functionValue.setValue(energyItemDataVo.getValue());
+                    deleteDates.add(functionValue.getDataTime());
+                    functionValues.add(functionValue);
                 }
+                BatchDeleteFunctionValueDTO batchDeleteFunctionValueDTO = new BatchDeleteFunctionValueDTO();
+                batchDeleteFunctionValueDTO.setProjectId(saveEnergyItemDataDTO.getProjectId());
+                batchDeleteFunctionValueDTO.setFunctionId(functionId);
+                batchDeleteFunctionValueDTO.setDataTimeList(deleteDates);
+                functionValueService.batchDeleteFunctionValue(batchDeleteFunctionValueDTO);
+                functionValueService.batchCreateFunctionValue(functionValues);
             }
         } catch (Exception e) {
             e.printStackTrace();
         }
     }
+
+    private Map<String, String> getFunctionIdMap(SaveEnergyItemDataDTO saveEnergyItemDataDTO) {
+        QueryFunctionDTO queryFunctionDTO = new QueryFunctionDTO();
+        queryFunctionDTO.setEnergyType(saveEnergyItemDataDTO.getEnergyType());
+        queryFunctionDTO.setFunctionType(saveEnergyItemDataDTO.getFunctionType());
+        queryFunctionDTO.setBuildingType(saveEnergyItemDataDTO.getBuildingType());
+        List<Function> functionList = functionService.queryFunctionList(queryFunctionDTO);
+        if (CollectionUtils.isEmpty(functionList)) {
+            return new HashMap<>();
+        }
+        Map<String, String> resultMap = new HashMap<>();
+        for (Function function : functionList) {
+            resultMap.put(function.getItemId(), function.getId());
+        }
+        return resultMap;
+    }
+
 }

+ 27 - 0
src/main/java/com/persagy/apm/energy/report/monthly/functionvalue/model/dto/BatchDeleteFunctionValueDTO.java

@@ -0,0 +1,27 @@
+package com.persagy.apm.energy.report.monthly.functionvalue.model.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author lixing
+ * @version V1.0 2021-05-20 19:07:15
+ */
+@Data
+@ApiModel(value = "批量删除能耗报告信息点取值入参")
+public class BatchDeleteFunctionValueDTO {
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("信息点id")
+    private String functionId;
+
+    @ApiModelProperty("数据时间列表")
+    private List<Date> dataTimeList;
+
+}

+ 14 - 0
src/main/java/com/persagy/apm/energy/report/monthly/functionvalue/service/IFunctionValueService.java

@@ -28,6 +28,13 @@ public interface IFunctionValueService {
     String createFunctionValue(AddFunctionValueDTO addFunctionValueDTO);
 
     /**
+     * 批量保存能耗报告信息点
+     *
+     * @param saveList
+     */
+    void batchCreateFunctionValue(List<FunctionValue> saveList);
+
+    /**
      * 能耗报告信息点取值详情
      *
      * @param id 主键
@@ -56,6 +63,13 @@ public interface IFunctionValueService {
     void deleteFunctionValue(String id);
 
     /**
+     * 批量删除能耗报告信息点取值
+     *
+     * @param batchDeleteFunctionValueDTO
+     */
+    void batchDeleteFunctionValue(BatchDeleteFunctionValueDTO batchDeleteFunctionValueDTO);
+
+    /**
      * 查询能耗报告信息点取值
      *
      * @param queryFunctionValueDTO queryDTO

+ 31 - 12
src/main/java/com/persagy/apm/energy/report/monthly/functionvalue/service/impl/FunctionValueServiceImpl.java

@@ -1,24 +1,25 @@
 package com.persagy.apm.energy.report.monthly.functionvalue.service.impl;
 
-import com.persagy.apm.common.context.AppContext;
-import com.persagy.apm.energy.report.monthly.functionvalue.dao.FunctionValueMapper;
-import com.persagy.apm.energy.report.monthly.functionvalue.service.IFunctionValueService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-import org.apache.commons.lang.StringUtils;
-import com.persagy.apm.common.constant.enums.ValidEnum;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.persagy.apm.energy.report.monthly.functionvalue.model.*;
-import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.*;
-
-import java.util.List;
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.base.CaseFormat;
+import com.persagy.apm.common.constant.enums.ValidEnum;
+import com.persagy.apm.common.context.AppContext;
 import com.persagy.apm.common.model.dto.Sort;
+import com.persagy.apm.energy.report.monthly.functionvalue.dao.FunctionValueMapper;
+import com.persagy.apm.energy.report.monthly.functionvalue.model.ConvertFunctionValueTool;
+import com.persagy.apm.energy.report.monthly.functionvalue.model.FunctionValue;
+import com.persagy.apm.energy.report.monthly.functionvalue.model.dto.*;
+import com.persagy.apm.energy.report.monthly.functionvalue.service.IFunctionValueService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 能耗报告信息点取值(FunctionValue) service层
  *
@@ -45,6 +46,13 @@ public class FunctionValueServiceImpl extends ServiceImpl<FunctionValueMapper, F
         return functionValue.getId();
     }
 
+    @Override
+    public void batchCreateFunctionValue(List<FunctionValue> saveList) {
+        if (!CollectionUtils.isEmpty(saveList)) {
+            saveBatch(saveList);
+        }
+    }
+
     /**
      * 如果某些字段没有赋值,使用默认的值
      *
@@ -127,6 +135,17 @@ public class FunctionValueServiceImpl extends ServiceImpl<FunctionValueMapper, F
         updateById(functionValue);
     }
 
+    @Override
+    public void batchDeleteFunctionValue(BatchDeleteFunctionValueDTO batchDeleteFunctionValueDTO) {
+        if (batchDeleteFunctionValueDTO != null) {
+            QueryWrapper<FunctionValue> deleteWrapper = new QueryWrapper<>();
+            deleteWrapper.eq(FunctionValue.PROP_PROJECT_ID, batchDeleteFunctionValueDTO.getProjectId());
+            deleteWrapper.eq(FunctionValue.PROP_FUNCTION_ID, batchDeleteFunctionValueDTO.getFunctionId());
+            deleteWrapper.in(FunctionValue.PROP_DATA_TIME, batchDeleteFunctionValueDTO.getDataTimeList());
+            remove(deleteWrapper);
+        }
+    }
+
     /**
      * 查询能耗报告信息点取值
      *