海南版本提交
This commit is contained in:
@@ -1,40 +1,35 @@
|
||||
package com.njcn.advance.controller.carrycapacity;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelExportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
|
||||
import com.alibaba.nacos.shaded.com.google.common.collect.Maps;
|
||||
import com.njcn.advance.pojo.carrycapacity.excel.CarryCapcityDataIEexcel;
|
||||
import com.njcn.advance.pojo.carrycapacity.excel.CarryCapcityDataPEexcel;
|
||||
import com.njcn.advance.pojo.carrycapacity.excel.CarryCapcityDataQEexcel;
|
||||
import com.njcn.advance.pojo.carrycapacity.excel.CarryCapcityDataVEexcel;
|
||||
import com.alibaba.excel.EasyExcel;
|
||||
import com.njcn.advance.pojo.carrycapacity.excel.CarryCapcityDataEexcel;
|
||||
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityCalParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityEvaluateParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityQueryDataParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.param.ExcelDataParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.*;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDResultVO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDataIVO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDataQVO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDataVO;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapcityService;
|
||||
import com.njcn.advance.utils.EasyExcelUtil;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.HttpResultUtil;
|
||||
import com.njcn.device.pq.pojo.vo.TerminalTree;
|
||||
import com.njcn.poi.util.PoiUtil;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.compress.utils.Lists;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
@@ -113,49 +108,19 @@ public class CarryCapacityController extends BaseController {
|
||||
@ResponseBody
|
||||
@ApiOperation("导出数据集模板")
|
||||
@GetMapping(value = "getExcelTemplate")
|
||||
public HttpResult<String> getExcelTemplate(HttpServletResponse response) {
|
||||
final List<Map<String, Object>> sheetsList = Lists.newArrayList();
|
||||
Map<String, Object> exportMap = Maps.newHashMap();
|
||||
final ExportParams exportParams = new ExportParams(null, "电流幅值", ExcelType.HSSF);
|
||||
// 以下3个参数为API中写死的参数名 分别是sheet配置/导出类(注解定义)/数据集
|
||||
exportMap.put("title", exportParams);
|
||||
exportMap.put("entity", CarryCapcityDataIEexcel.class);
|
||||
exportMap.put("data", new ArrayList<>());
|
||||
// 加入多sheet配置列表
|
||||
sheetsList.add(exportMap);
|
||||
|
||||
Map<String, Object> exportMap2 = Maps.newHashMap();
|
||||
final ExportParams exportParams2 = new ExportParams(null, "电压", ExcelType.XSSF);
|
||||
// 以下3个参数为API中写死的参数名 分别是sheet配置/导出类(注解定义)/数据集
|
||||
exportMap2.put("title", exportParams2);
|
||||
exportMap2.put("entity", CarryCapcityDataVEexcel.class);
|
||||
exportMap2.put("data", new ArrayList<>());
|
||||
// 加入多sheet配置列表
|
||||
sheetsList.add(exportMap2);
|
||||
|
||||
Map<String, Object> exportMap3 = Maps.newHashMap();
|
||||
final ExportParams exportParams3 = new ExportParams(null, "有功功率", ExcelType.XSSF);
|
||||
// 以下3个参数为API中写死的参数名 分别是sheet配置/导出类(注解定义)/数据集
|
||||
exportMap3.put("title", exportParams3);
|
||||
exportMap3.put("entity", CarryCapcityDataPEexcel.class);
|
||||
exportMap3.put("data", new ArrayList<>());
|
||||
// 加入多sheet配置列表
|
||||
sheetsList.add(exportMap3);
|
||||
|
||||
Map<String, Object> exportMap4 = Maps.newHashMap();
|
||||
final ExportParams exportParams4 = new ExportParams(null, "无功功率", ExcelType.XSSF);
|
||||
// 以下3个参数为API中写死的参数名 分别是sheet配置/导出类(注解定义)/数据集
|
||||
exportMap4.put("title", exportParams4);
|
||||
exportMap4.put("entity", CarryCapcityDataQEexcel.class);
|
||||
exportMap4.put("data", new ArrayList<>());
|
||||
// 加入多sheet配置列表
|
||||
sheetsList.add(exportMap4);
|
||||
Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF);
|
||||
public HttpResult<String> getExcelTemplate(HttpServletResponse response) throws IOException {
|
||||
|
||||
|
||||
String fileName = "数据集.xlsx";
|
||||
ExportParams exportExcel = new ExportParams("数据集", "数据集");
|
||||
PoiUtil.exportFileByWorkbook(workbook, fileName, response);
|
||||
|
||||
String sheetName = "数据集模版.xlsx";
|
||||
List<CarryCapcityDataEexcel> excels = new ArrayList<>();
|
||||
CarryCapcityDataEexcel exportHeadersExcel = new CarryCapcityDataEexcel();
|
||||
excels.add(exportHeadersExcel);
|
||||
EasyExcel.write(response.getOutputStream(), CarryCapcityDataEexcel.class)
|
||||
.sheet(sheetName)
|
||||
.doWrite(excels);
|
||||
EasyExcelUtil.writeWithSheetsWeb(response, "数据集模版");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.njcn.advance.controller.carrycapacity;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityResultParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityResultPO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityDResultVO;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapacityResultPOService;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
@@ -15,10 +16,9 @@ import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
@@ -45,7 +45,14 @@ public class CarryCapacityResultController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, vo, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/remove")
|
||||
@ApiOperation("承载能力评估用户批量删除")
|
||||
public HttpResult<Boolean> remove(@RequestParam("ids") List<String> ids) {
|
||||
String methodDescribe = getMethodDescribe("remove");
|
||||
Boolean flag = carryCapacityResultPOService.lambdaUpdate().in(CarryCapacityResultPO::getId, ids).set(CarryCapacityResultPO::getStatus, 0).update();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.njcn.advance.controller.carrycapacity;
|
||||
|
||||
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityStrategyParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyDhlVO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyVO;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyDhlPOService;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyPOService;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
@@ -36,10 +38,12 @@ public class CarryCapacityStrategyController extends BaseController {
|
||||
|
||||
|
||||
private final CarryCapacityStrategyPOService carryCapacityStrategyPOService;
|
||||
private final CarryCapacityStrategyDhlPOService carryCapacityStrategyDhlPOService;
|
||||
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/add")
|
||||
@ApiOperation("用户新增承载能力评估策略")
|
||||
@ApiOperation("用户新增承载能力评估策略(光伏)")
|
||||
@ApiImplicitParam(name = "carryCapacityStrategyParam", value = "新增参数", required = true)
|
||||
public HttpResult<Boolean> add(@RequestBody @Validated CarryCapacityStrategyParam carryCapacityStrategyParam) {
|
||||
String methodDescribe = getMethodDescribe("add");
|
||||
@@ -47,8 +51,17 @@ public class CarryCapacityStrategyController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
}
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/addList")
|
||||
@ApiOperation("用户新增承载能力评估策略组(光伏)")
|
||||
@ApiImplicitParam(name = "carryCapacityStrategyParamList", value = "新增参数", required = true)
|
||||
public HttpResult<Boolean> addList(@RequestBody @Validated List<CarryCapacityStrategyParam> carryCapacityStrategyParamList) {
|
||||
String methodDescribe = getMethodDescribe("addList");
|
||||
Boolean flag = carryCapacityStrategyPOService.addList(carryCapacityStrategyParamList);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
}
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queyDetail")
|
||||
@ApiOperation("承载能力评估策略初始化查询")
|
||||
@ApiOperation("承载能力评估策略初始化查询(光伏)")
|
||||
public HttpResult<List<CarryCapacityStrategyVO>> queyDetail() {
|
||||
String methodDescribe = getMethodDescribe("queyDetail");
|
||||
List<CarryCapacityStrategyVO> carryCapacityStrategyVOList = carryCapacityStrategyPOService.queyDetail();
|
||||
@@ -64,4 +77,23 @@ public class CarryCapacityStrategyController extends BaseController {
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/adddhl")
|
||||
@ApiOperation("用户新增承载能力评估策略(电弧炉)")
|
||||
@ApiImplicitParam(name = "capacityStrategyDhlVO", value = "新增参数", required = true)
|
||||
public HttpResult<Boolean> adddhl(@RequestBody @Validated CarryCapacityStrategyDhlVO capacityStrategyDhlVO) {
|
||||
String methodDescribe = getMethodDescribe("adddhl");
|
||||
Boolean flag = carryCapacityStrategyDhlPOService.adddhl(capacityStrategyDhlVO);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, flag, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@PostMapping("/queyDetailDhl")
|
||||
@ApiOperation("承载能力评估策略初始化查询(电弧炉)")
|
||||
public HttpResult<List<CarryCapacityStrategyDhlVO>> queyDetailDhl() {
|
||||
String methodDescribe = getMethodDescribe("queyDetailDhl");
|
||||
List<CarryCapacityStrategyDhlVO> car = carryCapacityStrategyDhlPOService.queyDetailDhl();
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, car, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.njcn.advance.mapper.carrycapacity;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityStrategyDhlPO;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2024/3/15 10:45【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CarryCapacityStrategyDhlPOMapper extends BaseMapper<CarryCapacityStrategyDhlPO> {
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.njcn.advance.mapper.carrycapacity.CarryCapacityStrategyDhlPOMapper">
|
||||
<resultMap id="BaseResultMap" type="com.njcn.advance.pojo.carrycapacity.po.CarryCapacityStrategyDhlPO">
|
||||
<!--@mbg.generated-->
|
||||
<!--@Table carry_capacity_strategy_dhl-->
|
||||
<result column="id" jdbcType="INTEGER" property="id" />
|
||||
<result column="type" jdbcType="VARCHAR" property="type" />
|
||||
<result column="comparison_operators_1" jdbcType="VARCHAR" property="comparisonOperators1" />
|
||||
<result column="count_1" jdbcType="INTEGER" property="count1" />
|
||||
<result column="comparison_operators_2" jdbcType="VARCHAR" property="comparisonOperators2" />
|
||||
<result column="count_2" jdbcType="INTEGER" property="count2" />
|
||||
<result column="comparison_operators_3" jdbcType="VARCHAR" property="comparisonOperators3" />
|
||||
<result column="count_3" jdbcType="INTEGER" property="count3" />
|
||||
<result column="proto_flag" jdbcType="INTEGER" property="protoFlag" />
|
||||
<result column="comparison_operators_4" jdbcType="VARCHAR" property="comparisonOperators4" />
|
||||
<result column="count_4" jdbcType="INTEGER" property="count4" />
|
||||
<result column="user_flag" jdbcType="INTEGER" property="userFlag" />
|
||||
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
|
||||
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
|
||||
<result column="update_by" jdbcType="VARCHAR" property="updateBy" />
|
||||
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
|
||||
</resultMap>
|
||||
<sql id="Base_Column_List">
|
||||
<!--@mbg.generated-->
|
||||
id, `type`, comparison_operators_1, count_1, comparison_operators_2, count_2, comparison_operators_3,
|
||||
count_3, proto_flag, comparison_operators_4, count_4, user_flag, create_by, create_time,
|
||||
update_by, update_time
|
||||
</sql>
|
||||
</mapper>
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.njcn.advance.service.carrycapacity;
|
||||
|
||||
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityStrategyDhlPO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyDhlVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2024/3/15 10:45【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
public interface CarryCapacityStrategyDhlPOService extends IService<CarryCapacityStrategyDhlPO>{
|
||||
|
||||
|
||||
List<CarryCapacityStrategyDhlVO> queyDetailDhl();
|
||||
|
||||
Boolean adddhl(CarryCapacityStrategyDhlVO capacityStrategyDhlVO);
|
||||
}
|
||||
@@ -23,4 +23,6 @@ public interface CarryCapacityStrategyPOService extends IService<CarryCapacitySt
|
||||
List<CarryCapacityStrategyVO> queyDetail();
|
||||
|
||||
Boolean restore();
|
||||
|
||||
Boolean addList(List<CarryCapacityStrategyParam> carryCapacityStrategyParamList);
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.njcn.advance.service.carrycapacity.impl;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
@@ -13,6 +14,7 @@ import com.njcn.advance.service.carrycapacity.CarryCapacityResultPOService;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapacityUserPOService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -54,6 +56,11 @@ public class CarryCapacityResultPOServiceImpl extends ServiceImpl<CarryCapacityR
|
||||
return carryCapacityUserPO.getUserName();
|
||||
}).collect(Collectors.toList());
|
||||
vo.setUserName(collect1.stream().collect(Collectors.joining(",")));
|
||||
if (ObjectUtils.isNotEmpty(temp.getIResultList()) ){
|
||||
String iResultList = temp.getIResultList();
|
||||
List<CarryCapacityDResultVO.CarryCapacityIResult> list = JSONUtil.toList(JSONUtil.toJsonStr(iResultList), CarryCapacityDResultVO.CarryCapacityIResult.class);
|
||||
vo.setIResultList(list);
|
||||
}
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
returnpage.setRecords(collect);
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.njcn.advance.service.carrycapacity.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.advance.mapper.carrycapacity.CarryCapacityStrategyDhlPOMapper;
|
||||
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityStrategyDhlPO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyDhlVO;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyDhlPOService;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
*
|
||||
* Description:
|
||||
* Date: 2024/3/15 10:45【需求编号】
|
||||
*
|
||||
* @author clam
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
public class CarryCapacityStrategyDhlPOServiceImpl extends ServiceImpl<CarryCapacityStrategyDhlPOMapper, CarryCapacityStrategyDhlPO> implements CarryCapacityStrategyDhlPOService{
|
||||
|
||||
|
||||
@Override
|
||||
public List<CarryCapacityStrategyDhlVO> queyDetailDhl() {
|
||||
List<CarryCapacityStrategyDhlPO> list = this.lambdaQuery().eq(CarryCapacityStrategyDhlPO::getUserFlag, 1).list();
|
||||
List<CarryCapacityStrategyDhlVO> collect = list.stream().map(t -> {
|
||||
CarryCapacityStrategyDhlVO vo = new CarryCapacityStrategyDhlVO();
|
||||
vo.setCount1(t.getCount1());
|
||||
vo.setCount2(t.getCount2());
|
||||
vo.setCount3(t.getCount3());
|
||||
vo.setComparisonOperators1(t.getComparisonOperators1());
|
||||
vo.setComparisonOperators2(t.getComparisonOperators2());
|
||||
vo.setComparisonOperators3(t.getComparisonOperators3());
|
||||
vo.setId(t.getId());
|
||||
vo.setProtoFlag(t.getProtoFlag());
|
||||
vo.setType(t.getType());
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
return collect;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean adddhl(CarryCapacityStrategyDhlVO capacityStrategyDhlVO) {
|
||||
this.lambdaUpdate().eq(CarryCapacityStrategyDhlPO::getId, capacityStrategyDhlVO.getId()).
|
||||
set(CarryCapacityStrategyDhlPO::getUserFlag, 2).update();
|
||||
CarryCapacityStrategyDhlPO carryCapacityStrategyDhlPO = new CarryCapacityStrategyDhlPO();
|
||||
BeanUtils.copyProperties(capacityStrategyDhlVO,carryCapacityStrategyDhlPO);
|
||||
carryCapacityStrategyDhlPO.setId(null);
|
||||
carryCapacityStrategyDhlPO.setProtoFlag(2);
|
||||
boolean save = this.save(carryCapacityStrategyDhlPO);
|
||||
return save;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,17 +1,26 @@
|
||||
package com.njcn.advance.service.carrycapacity.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.advance.enums.AdvanceResponseEnum;
|
||||
import com.njcn.advance.mapper.carrycapacity.CarryCapacityStrategyDhlPOMapper;
|
||||
import com.njcn.advance.mapper.carrycapacity.CarryCapacityStrategyPOMapper;
|
||||
import com.njcn.advance.pojo.carrycapacity.param.CarryCapacityStrategyParam;
|
||||
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityStrategyDhlPO;
|
||||
import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityStrategyPO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyVO;
|
||||
import com.njcn.advance.service.carrycapacity.CarryCapacityStrategyPOService;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -23,8 +32,9 @@ import java.util.stream.Collectors;
|
||||
* @version V1.0.0
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class CarryCapacityStrategyPOServiceImpl extends ServiceImpl<CarryCapacityStrategyPOMapper, CarryCapacityStrategyPO> implements CarryCapacityStrategyPOService{
|
||||
|
||||
private final CarryCapacityStrategyDhlPOMapper carryCapacityStrategyDhlPOMapper;
|
||||
@Override
|
||||
@Transactional(rollbackFor = {Exception.class})
|
||||
public Boolean add(CarryCapacityStrategyParam carryCapacityStrategyParam) {
|
||||
@@ -32,6 +42,7 @@ public class CarryCapacityStrategyPOServiceImpl extends ServiceImpl<CarryCapacit
|
||||
BeanUtils.copyProperties(carryCapacityStrategyParam, carryCapacityStrategyPO);
|
||||
//将原始策略处理为不启用
|
||||
this.lambdaUpdate().eq(CarryCapacityStrategyPO::getResult, carryCapacityStrategyParam.getResult())
|
||||
.eq(CarryCapacityStrategyPO::getId, carryCapacityStrategyParam.getId())
|
||||
.eq(CarryCapacityStrategyPO::getIndexResult, carryCapacityStrategyParam.getIndexResult())
|
||||
.eq(CarryCapacityStrategyPO::getProtoFlag, 1)
|
||||
.set(CarryCapacityStrategyPO::getUserFlag,2)
|
||||
@@ -39,6 +50,7 @@ public class CarryCapacityStrategyPOServiceImpl extends ServiceImpl<CarryCapacit
|
||||
QueryWrapper<CarryCapacityStrategyPO> lambdaQuery = new QueryWrapper<>();
|
||||
lambdaQuery.lambda()
|
||||
.eq(CarryCapacityStrategyPO::getResult, carryCapacityStrategyParam.getResult())
|
||||
.eq(CarryCapacityStrategyPO::getId, carryCapacityStrategyParam.getId())
|
||||
.eq(CarryCapacityStrategyPO::getIndexResult, carryCapacityStrategyParam.getIndexResult())
|
||||
.eq(CarryCapacityStrategyPO::getProtoFlag, 2);
|
||||
//将客户对应策略删除
|
||||
@@ -52,13 +64,29 @@ public class CarryCapacityStrategyPOServiceImpl extends ServiceImpl<CarryCapacit
|
||||
|
||||
@Override
|
||||
public List<CarryCapacityStrategyVO> queyDetail() {
|
||||
List<CarryCapacityStrategyVO> result = new ArrayList<>();
|
||||
List<CarryCapacityStrategyPO> list = this.lambdaQuery().eq(CarryCapacityStrategyPO::getUserFlag, 1).list();
|
||||
List<CarryCapacityStrategyVO> collect = list.stream().map(temp -> {
|
||||
Map<Integer, Map<String, List<CarryCapacityStrategyPO>>> collect = list.stream().collect(Collectors.groupingBy(CarryCapacityStrategyPO::getResult,
|
||||
Collectors.groupingBy(CarryCapacityStrategyPO::getId)));
|
||||
collect.forEach((key, value) -> {
|
||||
CarryCapacityStrategyVO vo = new CarryCapacityStrategyVO();
|
||||
BeanUtils.copyProperties(temp, vo);
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
return collect;
|
||||
vo.setResult(key);
|
||||
List<CarryCapacityStrategyVO.CarryCapacityStrategysingleVO> capacityStrategysingleVOList =new ArrayList<>();
|
||||
value.forEach((k, v) -> {
|
||||
CarryCapacityStrategyVO.CarryCapacityStrategysingleVO vo1 = new CarryCapacityStrategyVO.CarryCapacityStrategysingleVO();
|
||||
vo1.setId(k);
|
||||
vo1.setCarryCapacityStrategyIndexVOList(v.stream().map(temp -> {
|
||||
CarryCapacityStrategyVO.CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO vo2 = new CarryCapacityStrategyVO.CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO();
|
||||
BeanUtils.copyProperties(temp, vo2);
|
||||
return vo2;
|
||||
}).collect(Collectors.toList()));
|
||||
capacityStrategysingleVOList.add(vo1);
|
||||
});
|
||||
vo.setCapacityStrategysingleVOList(capacityStrategysingleVOList);
|
||||
result.add(vo);
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -67,12 +95,45 @@ public class CarryCapacityStrategyPOServiceImpl extends ServiceImpl<CarryCapacit
|
||||
QueryWrapper<CarryCapacityStrategyPO> lambdaQuery = new QueryWrapper<>();
|
||||
lambdaQuery.lambda()
|
||||
.eq(CarryCapacityStrategyPO::getProtoFlag, 2);
|
||||
this.remove(lambdaQuery
|
||||
);
|
||||
this.remove(lambdaQuery);
|
||||
|
||||
//将原始策略处理为启用
|
||||
boolean update = this.lambdaUpdate().eq(CarryCapacityStrategyPO::getProtoFlag, 1)
|
||||
.set(CarryCapacityStrategyPO::getUserFlag, 1)
|
||||
.update();
|
||||
|
||||
//电弧炉初始化
|
||||
QueryWrapper<CarryCapacityStrategyDhlPO> lambdaQuery2 = new QueryWrapper<>();
|
||||
lambdaQuery2.lambda()
|
||||
.eq(CarryCapacityStrategyDhlPO::getProtoFlag, 2);
|
||||
carryCapacityStrategyDhlPOMapper.delete(lambdaQuery2);
|
||||
UpdateWrapper<CarryCapacityStrategyDhlPO> lambdaQuery3 = new UpdateWrapper<>();
|
||||
lambdaQuery3.lambda()
|
||||
.eq(CarryCapacityStrategyDhlPO::getProtoFlag, 1)
|
||||
.set(CarryCapacityStrategyDhlPO::getUserFlag, 1);
|
||||
|
||||
carryCapacityStrategyDhlPOMapper.update(null,lambdaQuery3);
|
||||
|
||||
return update;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean addList(List<CarryCapacityStrategyParam> carryCapacityStrategyParamList) {
|
||||
UUID uuid = UUID.randomUUID();
|
||||
if(4!=carryCapacityStrategyParamList.size()){
|
||||
throw new BusinessException(AdvanceResponseEnum.UNCOMPLETE_STRATEGY);
|
||||
|
||||
}
|
||||
List<CarryCapacityStrategyPO> collect = carryCapacityStrategyParamList.stream().map(temp -> {
|
||||
CarryCapacityStrategyPO po = new CarryCapacityStrategyPO();
|
||||
BeanUtils.copyProperties(temp, po);
|
||||
po.setId(uuid.toString());
|
||||
//新增客户策略;
|
||||
po.setProtoFlag(2);
|
||||
po.setUserFlag(1);
|
||||
return po;
|
||||
}).collect(Collectors.toList());
|
||||
boolean b = this.saveBatch(collect);
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ public class CarryCapacityUserPOServiceImpl extends ServiceImpl<CarryCapacityUse
|
||||
Page<CarryCapacityUserPO> returnpage = new Page<> (pageParm.getPageNum ( ), pageParm.getPageSize ( ));
|
||||
QueryWrapper<CarryCapacityUserPO> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(StringUtils.isNotBlank(pageParm.getUserId()) ,CarryCapacityUserPO::getUserId,pageParm.getUserId())
|
||||
.eq(StringUtils.isNotBlank(pageParm.getVoltage()) ,CarryCapacityUserPO::getVoltage,pageParm.getVoltage())
|
||||
.eq(StringUtils.isNotBlank(pageParm.getUserType()) ,CarryCapacityUserPO::getUserType,pageParm.getUserType())
|
||||
.between(StringUtils.isNotBlank(pageParm.getStartTime()) && StringUtils.isNotBlank(pageParm.getEndTime()) ,CarryCapacityUserPO::getCreateTime,pageParm.getStartTime(),pageParm.getEndTime()).
|
||||
orderByDesc(CarryCapacityUserPO::getCreateTime);
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
package com.njcn.advance.service.carrycapacity.impl;
|
||||
|
||||
import cn.afterturn.easypoi.excel.ExcelImportUtil;
|
||||
import cn.afterturn.easypoi.excel.entity.ImportParams;
|
||||
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
@@ -19,6 +16,7 @@ import com.njcn.advance.pojo.carrycapacity.po.CarryCapacityUserPO;
|
||||
import com.njcn.advance.pojo.carrycapacity.vo.*;
|
||||
import com.njcn.advance.service.carrycapacity.*;
|
||||
import com.njcn.advance.utils.CZNLPG;
|
||||
import com.njcn.advance.utils.EasyExcelUtil;
|
||||
import com.njcn.advance.utils.Utils;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.utils.PubUtils;
|
||||
@@ -43,20 +41,22 @@ import com.njcn.system.enums.DicDataEnum;
|
||||
import com.njcn.system.pojo.po.DictData;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import org.apache.poi.ss.usermodel.Workbook;
|
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.njcn.advance.pojo.carrycapacity.vo.CarryCapacityStrategyVO.CarryCapacityStrategysingleVO;
|
||||
|
||||
/**
|
||||
* Description:
|
||||
* Date: 2024/1/31 14:42【需求编号】
|
||||
@@ -80,7 +80,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
private final RedisUtil redisUtil;
|
||||
private final CarryCapacityResultPOService carryCapacityResultPOService;
|
||||
private final CarryCapacityUserPOService carryCapacityUserPOService;
|
||||
private static final double DEFAULTVALUE=3.1415926;
|
||||
private static final double DEFAULTVALUE=31415.926;
|
||||
|
||||
private final FileStorageUtil fileStorageUtil;
|
||||
|
||||
@@ -260,12 +260,8 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerPList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> listP = dataHarmPowerPList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.map(CarryCapcityData::getValue)
|
||||
.collect(Collectors.toList());
|
||||
if (listP.size()<minDataNum){
|
||||
|
||||
if (!checkData(dataHarmPowerPList,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
@@ -280,55 +276,45 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
"' and time >= '" + startTime + "'and time <= '" +endTime + "'"+"group by time("+timeInterval+"m) ,* fill(3.1415926)"+InfluxDBPublicParam.TIME_ZONE;
|
||||
dataHarmPowerQList = dataHarmPowerQMapper.getSqlResult(SqlQ1);
|
||||
//数据缺失填补
|
||||
|
||||
//数据校验
|
||||
linearInterpolation(dataHarmPowerQList);
|
||||
redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"Q",
|
||||
dataHarmPowerQList);
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerQList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
|
||||
if (!checkData(dataHarmPowerQList,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
linearInterpolation(dataHarmPowerQList);
|
||||
// redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"Q",
|
||||
// dataHarmPowerQList);
|
||||
|
||||
|
||||
//电流
|
||||
// StringBuilder stringBuilder1 = new StringBuilder();
|
||||
// StringBuilder stringBuilder2 = new StringBuilder();
|
||||
// for (int i = 2; i <=25 ; i++) {
|
||||
// if (i==25){
|
||||
// stringBuilder1.append("mean(i_").append(i).append(") AS i_").append(i);
|
||||
// } else {
|
||||
// stringBuilder1.append("mean(i_").append(i).append(") AS i_").append(i).append(",");
|
||||
// }
|
||||
// }
|
||||
// stringBuilder2.append ("line_id='").append (lineId).append ("' and ").append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' group by time(").append(timeInterval).append("m),* fill(3.1415926) ").append(InfluxDBPublicParam.TIME_ZONE);
|
||||
// String sqlI1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_I+" where value_type='CP95' and phasic_type!='T' and "+stringBuilder2;
|
||||
// dataIList = dataIMapper.getSqlResult(sqlI1);
|
||||
// //数据校验
|
||||
// //数据缺失填补
|
||||
// linearInterpolationI(dataIList);
|
||||
// redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"I",
|
||||
// dataIList);
|
||||
|
||||
//前2周的数据用于计算首端电流模型参数
|
||||
String forwardStartTime = LocalDateTimeUtil.format(queryParam.getStartTime()
|
||||
// .plusWeeks(-1)
|
||||
.plusWeeks(-1)
|
||||
, formatter) + " 00:00:00";
|
||||
String forwardEndTime = LocalDateTimeUtil.format(queryParam.getEndTime()
|
||||
// .plusWeeks(-1)
|
||||
.plusWeeks(-1)
|
||||
, formatter) + " 23:59:00";
|
||||
|
||||
String SqlP2 = "select mean(p)*1000 as value from data_harmpower_p where value_type='CP95' and phasic_type!='T' and line_id='"+lineId+
|
||||
"' and time >= '" + forwardStartTime + "'and time <= '" +forwardEndTime + "'"+"group by time("+timeInterval+"m) ,* fill(3.1415926)"+InfluxDBPublicParam.TIME_ZONE;
|
||||
dataHarmPowerP2List = dataHarmPowerPMapper.getSqlResult(SqlP2);
|
||||
//数据校验
|
||||
// if(CollectionUtil.isEmpty(dataHarmPowerPList2)){
|
||||
// throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
// }else {
|
||||
// //数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
// List<Double> listP = dataHarmPowerPList2.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
// .filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
// .map(CarryCapcityData::getValue)
|
||||
// .collect(Collectors.toList());
|
||||
// if (listP.size()<minDataNum){
|
||||
// throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
// }
|
||||
// }
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerP2List)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
|
||||
if (!checkData(dataHarmPowerP2List,startDate2,endDate2,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
//数据缺失填补
|
||||
linearInterpolation(dataHarmPowerP2List);
|
||||
|
||||
@@ -338,6 +324,17 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
"' and time >= '" + forwardStartTime + "'and time <= '" +forwardEndTime + "'"+"group by time("+timeInterval+"m) ,* fill(3.1415926)"+InfluxDBPublicParam.TIME_ZONE;
|
||||
dataHarmPowerQ2List = dataHarmPowerQMapper.getSqlResult(SqlQ2);
|
||||
//数据校验
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerQ2List)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
|
||||
if (!checkData(dataHarmPowerQ2List,startDate2,endDate2,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
|
||||
//数据缺失填补
|
||||
linearInterpolation(dataHarmPowerQ2List);
|
||||
|
||||
@@ -347,17 +344,26 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
"' and time >= '" + forwardStartTime + "'and time <= '" +forwardEndTime + "'"+"group by time("+timeInterval+"m) ,* fill(3.1415926)"+InfluxDBPublicParam.TIME_ZONE;
|
||||
dataHarmPowerU2List = dataVMapper.getSqlResult(SqlU2);
|
||||
//数据校验
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerU2List)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
|
||||
if (!checkData(dataHarmPowerU2List,startDate2,endDate2,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
//数据缺失填补
|
||||
linearInterpolation(dataHarmPowerU2List);
|
||||
redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate2, formatter)+"#"+LocalDateTimeUtil.format(endDate2, formatter)+"#"+"P",
|
||||
dataHarmPowerP2List);
|
||||
redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate2, formatter)+"#"+LocalDateTimeUtil.format(endDate2, formatter)+"#"+"Q",
|
||||
dataHarmPowerQ2List);
|
||||
redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate2, formatter)+"#"+LocalDateTimeUtil.format(endDate2, formatter)+"#"+"U",
|
||||
dataHarmPowerU2List);
|
||||
redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"I",
|
||||
dataIList);
|
||||
// redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate2, formatter)+"#"+LocalDateTimeUtil.format(endDate2, formatter)+"#"+"P",
|
||||
// dataHarmPowerP2List);
|
||||
// redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate2, formatter)+"#"+LocalDateTimeUtil.format(endDate2, formatter)+"#"+"Q",
|
||||
// dataHarmPowerQ2List);
|
||||
// redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate2, formatter)+"#"+LocalDateTimeUtil.format(endDate2, formatter)+"#"+"U",
|
||||
// dataHarmPowerU2List);
|
||||
// redisUtil.saveByKey(lineId+"#"+LocalDateTimeUtil.format(startDate, formatter)+"#"+LocalDateTimeUtil.format(endDate, formatter)+"#"+"I",
|
||||
// dataIList);
|
||||
|
||||
|
||||
}
|
||||
@@ -406,7 +412,12 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
Integer timeInterval = data.getTimeInterval();
|
||||
// Integer timeInterval =10;
|
||||
|
||||
//根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔
|
||||
int minDataNum = 7*6*60*3*90/(100*timeInterval);
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate startDate = queryParam.getStartTime();
|
||||
LocalDate endDate = queryParam.getEndTime();
|
||||
|
||||
String startTime = LocalDateTimeUtil.format(queryParam.getStartTime(), formatter) + " 00:00:00";
|
||||
String endTime = LocalDateTimeUtil.format(queryParam.getEndTime(), formatter) + " 23:59:00";
|
||||
|
||||
@@ -415,6 +426,15 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
String SqlQ1 = "select mean(q)*1000 as value from data_harmpower_q where value_type='CP95' and phasic_type!='T' and line_id='"+lineId+
|
||||
"' and time >= '" + startTime + "'and time <= '" +endTime + "'"+"group by time("+timeInterval+"m) ,* fill(3.1415926)"+InfluxDBPublicParam.TIME_ZONE;
|
||||
List<CarryCapcityData> dataHarmPowerList = dataHarmPowerQMapper.getSqlResult(SqlQ1);
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
|
||||
if (!checkData(dataHarmPowerList,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
//数据缺失填补
|
||||
linearInterpolation(dataHarmPowerList);
|
||||
carryCapacityDataQVO.setData(dataHarmPowerList);
|
||||
@@ -448,6 +468,8 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
//时间间隔
|
||||
Integer timeInterval = data.getTimeInterval();
|
||||
// Integer timeInterval =10;
|
||||
//根据时间间隔算出最低数据量 7天*6小时*60分钟*3项*90%/时间间隔
|
||||
int minDataNum = 7*6*60*3*90/(100*timeInterval);
|
||||
LocalDate startDate = queryParam.getStartTime();
|
||||
LocalDate endDate = queryParam.getEndTime();
|
||||
|
||||
@@ -468,6 +490,20 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
stringBuilder2.append ("line_id='").append (lineId).append ("' and ").append(InfluxDBPublicParam.TIME + " >= '").append(startTime).append("' and ").append(InfluxDBPublicParam.TIME).append(" <= '").append(endTime).append("' group by time(").append(timeInterval).append("m),* fill(3.1415926) ").append(InfluxDBPublicParam.TIME_ZONE);
|
||||
String sqlI1 = "select "+stringBuilder1+" from "+ InfluxDBPublicParam.DATA_I+" where value_type='CP95' and phasic_type!='T' and "+stringBuilder2;
|
||||
List<DataI> dataI = dataIMapper.getSqlResult(sqlI1);
|
||||
if(CollectionUtil.isEmpty(dataI)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
List<CarryCapcityData> i_list = dataI.stream().map(temp -> {
|
||||
CarryCapcityData carryCapcityData = new CarryCapcityData();
|
||||
BeanUtils.copyProperties(temp, carryCapcityData);
|
||||
carryCapcityData.setValue(temp.getI2());
|
||||
return carryCapcityData;
|
||||
}).collect(Collectors.toList());
|
||||
if (!checkData(i_list,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
//数据缺失填补
|
||||
linearInterpolationI(dataI);
|
||||
List<CarryCapcityData> i_list = dataI.stream().map(temp -> {
|
||||
@@ -604,16 +640,23 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
//1-安全,2-III级预警,3-II级预警,4-I 级预警,依次执行策略看是否符合
|
||||
for (int i = 1; i < 5; i++) {
|
||||
int finalI = i;
|
||||
boolean b = StrategyReslut(carryCapacityStrategyVOList, i, 1, safe_count);
|
||||
boolean b1 = StrategyReslut(carryCapacityStrategyVOList, i, 2, warn_count3);
|
||||
boolean b2 = StrategyReslut(carryCapacityStrategyVOList, i, 3, warn_count2);
|
||||
boolean b3 = StrategyReslut(carryCapacityStrategyVOList, i, 4, warn_count1);
|
||||
if(b&&b1&&b2&&b3){
|
||||
boolean b = StrategyReslut(carryCapacityStrategyVOList, i,safe_count, warn_count1, warn_count2, warn_count3 );
|
||||
|
||||
if(b){
|
||||
carryCapacityDResultVO.setReslutLevel(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO();
|
||||
List<CarryCapacityResultPO> list1 = carryCapacityResultPOService.lambdaQuery().eq(CarryCapacityResultPO::getLineId, calParam.getLineId())
|
||||
.eq(CarryCapacityResultPO::getUserId, calParam.getUserId())
|
||||
.eq(CarryCapacityResultPO::getStartTime, calParam.getStartTime())
|
||||
.eq(CarryCapacityResultPO::getEndTime, calParam.getEndTime())
|
||||
.eq(CarryCapacityResultPO::getStatus, 1).list();
|
||||
if (CollectionUtil.isNotEmpty(list1)) {
|
||||
throw new BusinessException(AdvanceResponseEnum.EXISTENCE_EVALUATION_RESULT);
|
||||
|
||||
}
|
||||
|
||||
carryCapacityResultPO.setLineId(calParam.getLineId());
|
||||
carryCapacityResultPO.setUserId(calParam.getUserId());
|
||||
@@ -681,7 +724,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
|
||||
|
||||
//前一周的数据
|
||||
ExcelDataDTO excelDataDTO = ParsingFile(startDate, endDate, excelDataParam.getFile());
|
||||
ExcelDataDTO excelDataDTO = ParsingFile(startDate, endDate, excelDataParam.getFile().getInputStream());
|
||||
List<CarryCapcityData> dataHarmPowerPList =excelDataDTO.getDataHarmPowerPList();
|
||||
List<CarryCapcityData> dataHarmPowerQList =excelDataDTO.getDataHarmPowerQList();
|
||||
List<DataI> dataIList =excelDataDTO.getDataIList();
|
||||
@@ -690,74 +733,62 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
List<CarryCapcityData> dataHarmPowerQ2List =excelDataDTO.getDataHarmPowerQ2List();
|
||||
List<CarryCapcityData> dataHarmPowerUList =excelDataDTO.getDataHarmPowerU2List();
|
||||
|
||||
//数据校验
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerPList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> tempList = dataHarmPowerPList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.map(CarryCapcityData::getValue)
|
||||
.collect(Collectors.toList());
|
||||
if (tempList.size()<minDataNum){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_UNDERRUN);
|
||||
|
||||
if (!checkData(dataHarmPowerPList,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
linearInterpolation(dataHarmPowerPList);
|
||||
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerP2List)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> tempList = dataHarmPowerP2List.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.map(CarryCapcityData::getValue)
|
||||
.collect(Collectors.toList());
|
||||
if (tempList.size()<minDataNum){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_UNDERRUN);
|
||||
|
||||
if (!checkData(dataHarmPowerP2List,startDate2,endDate2,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
linearInterpolation(dataHarmPowerP2List);
|
||||
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerQList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> tempList = dataHarmPowerQList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.map(CarryCapcityData::getValue)
|
||||
.collect(Collectors.toList());
|
||||
if (tempList.size()<minDataNum){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_UNDERRUN);
|
||||
|
||||
if (!checkData(dataHarmPowerQList,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
linearInterpolation(dataHarmPowerQList);
|
||||
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerQ2List)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> tempList = dataHarmPowerQ2List.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.map(CarryCapcityData::getValue)
|
||||
.collect(Collectors.toList());
|
||||
if (tempList.size()<minDataNum){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_UNDERRUN);
|
||||
|
||||
if (!checkData(dataHarmPowerQ2List,startDate2,endDate2,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
linearInterpolation(dataHarmPowerQ2List);
|
||||
|
||||
//数据校验
|
||||
if(CollectionUtil.isEmpty(dataHarmPowerUList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> tempList = dataHarmPowerUList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.map(CarryCapcityData::getValue)
|
||||
.collect(Collectors.toList());
|
||||
if (tempList.size()<minDataNum){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_UNDERRUN);
|
||||
|
||||
if (!checkData(dataHarmPowerUList,startDate2,endDate2,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
linearInterpolation(dataHarmPowerUList);
|
||||
@@ -765,13 +796,15 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
if(CollectionUtil.isEmpty(dataIList)){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}else {
|
||||
//数据清洗取近一周的配变每日9时~15时段的负载率数据中概率95%小值所对应时刻的有功功率和无功功率值
|
||||
List<Double> tempList = dataIList.stream().filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getI2()!=DEFAULTVALUE&&Objects.nonNull(temp.getI2()))
|
||||
.map(DataI::getI2)
|
||||
.collect(Collectors.toList());
|
||||
if (tempList.size()<minDataNum){
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_UNDERRUN);
|
||||
List<CarryCapcityData> i_list = dataIList.stream().map(temp -> {
|
||||
CarryCapcityData carryCapcityData = new CarryCapcityData();
|
||||
BeanUtils.copyProperties(temp, carryCapcityData);
|
||||
carryCapcityData.setValue(temp.getI2());
|
||||
return carryCapcityData;
|
||||
}).collect(Collectors.toList());
|
||||
if (!checkData(i_list,startDate,endDate,timeInterval)){
|
||||
|
||||
throw new BusinessException(AdvanceResponseEnum.DATA_NOT_FOUND);
|
||||
}
|
||||
}
|
||||
linearInterpolationI(dataIList);
|
||||
@@ -895,6 +928,10 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
@Override
|
||||
public CarryCapacityDResultVO carryCapacityEvaluate(CarryCapacityEvaluateParam calParam) {
|
||||
CarryCapacityDResultVO vo = new CarryCapacityDResultVO();
|
||||
List<CarryCapacityDResultVO.CarryCapacityIResult> carryCapacityIResultList = new ArrayList<>();
|
||||
|
||||
String userType = calParam.getUserList().get(0).getUserType();
|
||||
String code = dicDataFeignClient.getDicDataById(userType).getData().getCode();
|
||||
//用户协议容量
|
||||
double sumCapacity = 0.00;
|
||||
if (CollectionUtil.isEmpty(calParam.getUserList())){
|
||||
@@ -907,7 +944,26 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
}
|
||||
double rate = sumCapacity / calParam.getShortCapacity();
|
||||
vo.setFirstResult(rate*100);
|
||||
if(rate>0.001){
|
||||
|
||||
CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO();
|
||||
carryCapacityResultPO.setFirstResult(rate*100);
|
||||
carryCapacityResultPO.setUserId( String.join(",", calParam.getUserList().stream().map(CarryCapacityUserVO::getUserId).collect(Collectors.toList())));
|
||||
carryCapacityResultPO.setEvaluateDate(LocalDate.now());
|
||||
carryCapacityResultPO.setEvaluateType(userType);
|
||||
carryCapacityResultPO.setStatus(1);
|
||||
carryCapacityResultPO.setPtType(calParam.getPtType());
|
||||
carryCapacityResultPO.setConnectionMode(calParam.getConnectionMode());
|
||||
carryCapacityResultPO.setK(calParam.getK());
|
||||
carryCapacityResultPO.setUserMode(calParam.getUserMode());
|
||||
carryCapacityResultPO.setScale(calParam.getScale());
|
||||
carryCapacityResultPO.setShortCapacity(calParam.getShortCapacity());
|
||||
carryCapacityResultPO.setDeviceCapacity(calParam.getDeviceCapacity());
|
||||
|
||||
|
||||
carryCapacityResultPO.setStatus(1);
|
||||
if(rate<0.001){
|
||||
carryCapacityResultPO.setReslutLevel(6);
|
||||
carryCapacityResultPOService.save(carryCapacityResultPO);
|
||||
return vo;
|
||||
}
|
||||
|
||||
@@ -934,9 +990,7 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
Overlimit overlimit = new Overlimit();
|
||||
COverlimitUtil.iHarm(overlimit,Float.valueOf(sacaleValue),(float) sumCapacity,calParam.getDeviceCapacity(),calParam.getShortCapacity());
|
||||
|
||||
String userType = calParam.getUserList().get(0).getUserType();
|
||||
String code = dicDataFeignClient.getDicDataById(userType).getData().getCode();
|
||||
List<CarryCapacityDResultVO.CarryCapacityIResult> carryCapacityIResultList = new ArrayList<>();
|
||||
|
||||
if(DicDataEnum.Charging_Station_Users.getCode().equals(code)){
|
||||
|
||||
integerList.stream().forEach(temp->{
|
||||
@@ -1004,22 +1058,16 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
});
|
||||
}
|
||||
vo.setIResultList(carryCapacityIResultList);
|
||||
|
||||
CarryCapacityResultPO carryCapacityResultPO = new CarryCapacityResultPO();
|
||||
carryCapacityResultPO.setFirstResult(rate*100);
|
||||
carryCapacityResultPO.setIResultList(JSONUtil.toJsonStr(carryCapacityIResultList));
|
||||
carryCapacityResultPO.setEvaluateDate(LocalDate.now());
|
||||
carryCapacityResultPO.setEvaluateType(userType);
|
||||
List<CarryCapacityDResultVO.CarryCapacityIResult> list = JSONUtil.toList(JSONUtil.toJsonStr(carryCapacityIResultList), CarryCapacityDResultVO.CarryCapacityIResult.class);
|
||||
|
||||
carryCapacityResultPO.setStatus(1);
|
||||
|
||||
carryCapacityResultPOService.save(carryCapacityResultPO);
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
||||
|
||||
public static ExcelDataDTO ParsingFile(LocalDate startDate, LocalDate endDate, MultipartFile file) throws Exception{
|
||||
public static ExcelDataDTO ParsingFile(LocalDate startDate, LocalDate endDate, InputStream is) throws Exception{
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
List<CarryCapcityData> dataHarmPowerPList = new ArrayList<>();
|
||||
List<CarryCapcityData> dataHarmPowerQList= new ArrayList<>();
|
||||
@@ -1035,76 +1083,80 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
List<CarryCapcityData> dataHarmPowerU2List= new ArrayList<>();
|
||||
|
||||
try {
|
||||
// 根据file得到Workbook,主要是要根据这个对象获取,传过来的excel有几个sheet页
|
||||
Workbook workbook = new XSSFWorkbook(file.getInputStream());
|
||||
StringBuilder sb=new StringBuilder();
|
||||
ImportParams params = new ImportParams();
|
||||
// 循环工作表Sheet
|
||||
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
|
||||
// 表头在第几行
|
||||
params.setTitleRows(0);
|
||||
// 距离表头中间有几行不要的数据
|
||||
params.setStartRows(0);
|
||||
// 第几个sheet页
|
||||
params.setStartSheetIndex(numSheet);
|
||||
// 验证数据
|
||||
params.setNeedVerify(true);
|
||||
if(numSheet==0){
|
||||
ExcelImportResult<CarryCapcityDataIEexcel> result =ExcelImportUtil.importExcelMore(file.getInputStream(),
|
||||
CarryCapcityDataIEexcel.class, params);
|
||||
List<CarryCapcityDataEexcel> objects = EasyExcelUtil.syncReadModel( is, CarryCapcityDataEexcel.class, 0,3);
|
||||
List<CarryCapcityDataIEexcel > iEexcelList = new ArrayList<>();
|
||||
List<CarryCapcityDataVEexcel> vEexcelList = new ArrayList<>();
|
||||
List<CarryCapcityDataPEexcel> pEexcelList = new ArrayList<>();
|
||||
List<CarryCapcityDataQEexcel> qEexcelList = new ArrayList<>();
|
||||
objects.stream().forEach(temp->{
|
||||
CarryCapcityDataIEexcel carryCapcityDataIEexcel = new CarryCapcityDataIEexcel();
|
||||
CarryCapcityDataVEexcel carryCapcityDataVEexcel = new CarryCapcityDataVEexcel();
|
||||
CarryCapcityDataPEexcel carryCapcityDataPEexcel = new CarryCapcityDataPEexcel();
|
||||
CarryCapcityDataQEexcel carryCapcityDataQEexcel = new CarryCapcityDataQEexcel();
|
||||
|
||||
List<CarryCapcityDataIEexcel > successList = result.getList();
|
||||
List<DataI> collect = successList.stream().map(CarryCapcityDataIEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
dataIList = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate, endDate)
|
||||
).collect(Collectors.toList());
|
||||
BeanUtils.copyProperties(temp,carryCapcityDataIEexcel);
|
||||
carryCapcityDataIEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
||||
carryCapcityDataIEexcel.setValueType("CP95");
|
||||
|
||||
carryCapcityDataVEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
||||
carryCapcityDataVEexcel.setValueType("CP95");
|
||||
carryCapcityDataVEexcel.setValue_a(Double.valueOf(temp.getU_a()));
|
||||
carryCapcityDataVEexcel.setValue_b(Double.valueOf(temp.getU_b()));
|
||||
carryCapcityDataVEexcel.setValue_c(Double.valueOf(temp.getU_c()));
|
||||
|
||||
|
||||
}else if(numSheet==1){
|
||||
ExcelImportResult<CarryCapcityDataVEexcel> result = ExcelImportUtil.importExcelMore(file.getInputStream(),
|
||||
CarryCapcityDataVEexcel.class, params);
|
||||
carryCapcityDataPEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
||||
carryCapcityDataPEexcel.setValueType("CP95");
|
||||
carryCapcityDataPEexcel.setValue_a(Double.valueOf(temp.getP_a()));
|
||||
carryCapcityDataPEexcel.setValue_b(Double.valueOf(temp.getP_b()));
|
||||
carryCapcityDataPEexcel.setValue_c(Double.valueOf(temp.getP_c()));
|
||||
|
||||
// 校验合格的数据
|
||||
List<CarryCapcityDataVEexcel> successList = result.getList();
|
||||
List<CarryCapcityData> collect = successList.stream().map(CarryCapcityDataVEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
// 业务逻辑
|
||||
dataHarmPowerU2List = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2)
|
||||
).collect(Collectors.toList());
|
||||
}
|
||||
else if(numSheet==2){
|
||||
ExcelImportResult<CarryCapcityDataPEexcel> result = ExcelImportUtil.importExcelMore(file.getInputStream(),
|
||||
CarryCapcityDataPEexcel.class, params);
|
||||
carryCapcityDataQEexcel.setTime(temp.getTime().atZone(ZoneId.systemDefault()).toInstant());
|
||||
carryCapcityDataQEexcel.setValueType("CP95");
|
||||
carryCapcityDataQEexcel.setValue_a(Double.valueOf(temp.getQ_a()));
|
||||
carryCapcityDataQEexcel.setValue_b(Double.valueOf(temp.getQ_b()));
|
||||
carryCapcityDataQEexcel.setValue_c(Double.valueOf(temp.getQ_c()));
|
||||
iEexcelList.add(carryCapcityDataIEexcel);
|
||||
vEexcelList.add(carryCapcityDataVEexcel);
|
||||
pEexcelList.add(carryCapcityDataPEexcel);
|
||||
qEexcelList.add(carryCapcityDataQEexcel);
|
||||
|
||||
// 校验合格的数据
|
||||
List<CarryCapcityDataPEexcel> successList = result.getList();
|
||||
List<CarryCapcityData> collect = successList.stream().map(CarryCapcityDataPEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
dataHarmPowerPList = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate, endDate)
|
||||
).collect(Collectors.toList());
|
||||
dataHarmPowerP2List = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2)
|
||||
).collect(Collectors.toList());
|
||||
});
|
||||
|
||||
// 业务逻辑
|
||||
}
|
||||
else if(numSheet==3){
|
||||
ExcelImportResult<CarryCapcityDataQEexcel> result = ExcelImportUtil.importExcelMore(file.getInputStream(),
|
||||
CarryCapcityDataQEexcel.class, params);
|
||||
|
||||
// 校验合格的数据
|
||||
List<CarryCapcityDataQEexcel> successList = result.getList();
|
||||
List<CarryCapcityData> collect = successList.stream().map(CarryCapcityDataQEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
dataHarmPowerQList = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate, endDate)
|
||||
).collect(Collectors.toList());
|
||||
dataHarmPowerQ2List = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2)
|
||||
).collect(Collectors.toList());
|
||||
// 业务逻辑
|
||||
}
|
||||
|
||||
}
|
||||
List<DataI> collect = iEexcelList.stream().map(CarryCapcityDataIEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
dataIList = collect.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate, endDate)
|
||||
).collect(Collectors.toList());
|
||||
|
||||
|
||||
// 校验合格的数据
|
||||
List<CarryCapcityData> collect2 = vEexcelList.stream().map(CarryCapcityDataVEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
// 业务逻辑
|
||||
dataHarmPowerU2List = collect2.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2)
|
||||
).collect(Collectors.toList());
|
||||
|
||||
|
||||
// 校验合格的数据
|
||||
List<CarryCapcityData> collect3 = pEexcelList.stream().map(CarryCapcityDataPEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
dataHarmPowerPList = collect3.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate, endDate)
|
||||
).collect(Collectors.toList());
|
||||
dataHarmPowerP2List = collect3.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2)
|
||||
).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<CarryCapcityData> collect4 = qEexcelList.stream().map(CarryCapcityDataQEexcel::excelToPO).flatMap(Collection::stream).collect(Collectors.toList());
|
||||
dataHarmPowerQList = collect4.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate, endDate)
|
||||
).collect(Collectors.toList());
|
||||
dataHarmPowerQ2List = collect4.stream().filter(
|
||||
item -> Utils.isTimeInRange(item.getTime(), startDate2, endDate2)
|
||||
).collect(Collectors.toList());
|
||||
|
||||
} catch (Exception e) {
|
||||
throw new BusinessException(AdvanceResponseEnum.DOCUMENT_FORMAT_ERROR);
|
||||
}
|
||||
@@ -1285,14 +1337,67 @@ public class CarryCapcityServiceImpl implements CarryCapcityService {
|
||||
throw new IllegalArgumentException("无效的操作符");
|
||||
}
|
||||
}
|
||||
private static boolean StrategyReslut(List<CarryCapacityStrategyVO> carryCapacityStrategyVOList, int result_level, int index_result_level,int result_count) {
|
||||
private static boolean StrategyReslut(List<CarryCapacityStrategyVO> carryCapacityStrategyVOList, int result_level, int safe_count,int warn_count1,int warn_count2,int warn_count3) {
|
||||
|
||||
CarryCapacityStrategyVO carryCapacityStrategyVO = carryCapacityStrategyVOList.stream()
|
||||
.filter(temp -> temp.getResult() == result_level)
|
||||
.filter(temp -> temp.getIndexResult() == index_result_level)
|
||||
.collect(Collectors.toList()).get(0);
|
||||
boolean b1 = compareNumbers(result_count, carryCapacityStrategyVO.getCount(), carryCapacityStrategyVO.getComparisonOperators());
|
||||
return b1;
|
||||
//每个策略组结果
|
||||
List<Boolean> list = new ArrayList<>();
|
||||
List<CarryCapacityStrategysingleVO> capacityStrategysingleVOList = carryCapacityStrategyVO.getCapacityStrategysingleVOList();
|
||||
capacityStrategysingleVOList.forEach(temp -> {
|
||||
CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO = temp.getCarryCapacityStrategyIndexVOList().stream()
|
||||
.filter(temp1 -> temp1.getIndexResult() == 1)
|
||||
.collect(Collectors.toList()).get(0);
|
||||
boolean b1 = compareNumbers(safe_count, carryCapacityStrategyIndexVO.getCount(), carryCapacityStrategyIndexVO.getComparisonOperators());
|
||||
CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO2 = temp.getCarryCapacityStrategyIndexVOList().stream()
|
||||
.filter(temp1 -> temp1.getIndexResult() == 2)
|
||||
.collect(Collectors.toList()).get(0);
|
||||
boolean b2 = compareNumbers(warn_count3, carryCapacityStrategyIndexVO2.getCount(), carryCapacityStrategyIndexVO2.getComparisonOperators());
|
||||
|
||||
CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO3 = temp.getCarryCapacityStrategyIndexVOList().stream()
|
||||
.filter(temp1 -> temp1.getIndexResult() == 3)
|
||||
.collect(Collectors.toList()).get(0);
|
||||
boolean b3 = compareNumbers(warn_count2, carryCapacityStrategyIndexVO3.getCount(), carryCapacityStrategyIndexVO3.getComparisonOperators());
|
||||
|
||||
|
||||
CarryCapacityStrategysingleVO.CarryCapacityStrategyIndexVO carryCapacityStrategyIndexVO4 = temp.getCarryCapacityStrategyIndexVOList().stream()
|
||||
.filter(temp1 -> temp1.getIndexResult() == 4)
|
||||
.collect(Collectors.toList()).get(0);
|
||||
boolean b4 = compareNumbers(warn_count1, carryCapacityStrategyIndexVO4.getCount(), carryCapacityStrategyIndexVO4.getComparisonOperators());
|
||||
Boolean flag =b1&&b2&&b3&&b4;
|
||||
list.add(flag);
|
||||
});
|
||||
long count = list.stream().filter(temp -> temp == true).count();
|
||||
return count>0;
|
||||
}
|
||||
|
||||
private static boolean checkData(List<CarryCapcityData> list,LocalDate startTime,LocalDate endTime,int timeInterval){
|
||||
boolean flag = false;
|
||||
long daysBetween = ChronoUnit.DAYS.between(startTime, endTime);
|
||||
//根据时间间隔算出最低数据量 1天*6小时*60分钟*90%/时间间隔算出一天一个的数据
|
||||
int minDataNum = 1*6*60*3*80/(100*timeInterval);
|
||||
//合格天数》=3通过
|
||||
int days =0;
|
||||
|
||||
for (long i = 0; i <= daysBetween; i++) {
|
||||
LocalDate currentDay = startTime.plusDays(i);
|
||||
long count = list.stream()
|
||||
.filter(temp -> Utils.isTimeInRange(temp.getTime(), LocalTime.of(9, 0), LocalTime.of(15, 0)))
|
||||
.filter(temp -> temp.getValue()!=DEFAULTVALUE&&Objects.nonNull(temp.getValue()))
|
||||
.filter(temp -> temp.getTime().atZone(ZoneId.systemDefault()).toLocalDate().equals(currentDay)).count();
|
||||
if(count>=minDataNum){
|
||||
days++;
|
||||
}
|
||||
|
||||
}
|
||||
if(days>=3) {
|
||||
flag = true;
|
||||
}
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user