草稿功能各个页面开发

This commit is contained in:
hzj
2024-06-19 16:01:18 +08:00
parent 22f5538c13
commit 9c3fbb31dd

View File

@@ -406,7 +406,12 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportVOQueryWrapper.eq("data_type", userReportQueryParam.getDataType()); userReportVOQueryWrapper.eq("data_type", userReportQueryParam.getDataType());
} }
userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()), "supervision_user_report.project_name", userReportQueryParam.getProjectName()); userReportVOQueryWrapper.like(StringUtils.isNotBlank(userReportQueryParam.getProjectName()), "supervision_user_report.project_name", userReportQueryParam.getProjectName());
if(StrUtil.isNotBlank(userReportQueryParam.getSearchBeginTime())&&StrUtil.isNotBlank(userReportQueryParam.getSearchEndTime())){
userReportVOQueryWrapper.between("supervision_user_report.expected_production_date",
DateUtil.beginOfDay(DateUtil.parse(userReportQueryParam.getSearchBeginTime())),
DateUtil.endOfDay(DateUtil.parse(userReportQueryParam.getSearchEndTime())));
}
userReportVOQueryWrapper.orderByDesc("supervision_user_report.Update_Time");
} }
userReportVOQueryWrapper.orderByDesc("supervision_user_report.create_time"); userReportVOQueryWrapper.orderByDesc("supervision_user_report.create_time");
return this.baseMapper.page(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper); return this.baseMapper.page(new Page<>(PageFactory.getPageNum(userReportQueryParam), PageFactory.getPageSize(userReportQueryParam)), userReportVOQueryWrapper);
@@ -490,55 +495,108 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Override @Override
public void downloadSensitiveUserTemplate() { public void downloadSensitiveUserTemplate() {
ExportParams exportParams = new ExportParams(); ExportParams exportParams = new ExportParams("敏感及重要用户数据模板(带*字段均是必填,请严格按照模板标准填入数据)", "敏感及重要用户数据信息");
exportParams.setSheetName("敏感及重要用户"); //所属地市
List<DictData> jiBeiArea = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.JIBEI_AREA.getCode()).getData();
//电压等级
List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData(); List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
//评估单位
List<DictData> evaluationDept;
evaluationDept = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVALUATION_DEPT.getCode()).getData();
//评估类型
List<DictData> evaluationType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVALUATION_TYPE.getCode()).getData();
//指标类型
List<DictData> indicatorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData();
//行业类型
List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE_JB.getCode()).getData(); List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE_JB.getCode()).getData();
//负荷级别
List<DictData> loadLevel = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LOAD_LEVEL.getCode()).getData(); List<DictData> loadLevel = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LOAD_LEVEL.getCode()).getData();
//供电电源情况
List<DictData> supplyCondition = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.SUPPLY_CONDITION.getCode()).getData(); List<DictData> supplyCondition = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.SUPPLY_CONDITION.getCode()).getData();
List<PullDown> pullDowns = new ArrayList<>(); List<PullDown> pullDowns = new ArrayList<>();
PullDown pullDown; PullDown pullDown;
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(2); pullDown.setFirstCol(1);
pullDown.setLastCol(2); pullDown.setLastCol(1);
pullDown.setStrings(jiBeiArea.stream().filter(x -> !x.getName().equals("风光储")&&!x.getName().equals("超高压")).map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(3);
pullDown.setLastCol(3);
pullDown.setStrings(Stream.of("可研", "建设", "运行", "退运").collect(Collectors.toList())); pullDown.setStrings(Stream.of("可研", "建设", "运行", "退运").collect(Collectors.toList()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(4); pullDown.setFirstCol(6);
pullDown.setLastCol(4); pullDown.setLastCol(6);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList())); pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(5); pullDown.setFirstCol(7);
pullDown.setLastCol(5); pullDown.setLastCol(7);
pullDown.setStrings(evaluationDept.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(12);
pullDown.setLastCol(12);
pullDown.setStrings(evaluationType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(13);
pullDown.setLastCol(13);
pullDown.setStrings(industryType.stream().map(DictData::getName).collect(Collectors.toList())); pullDown.setStrings(industryType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(8); pullDown.setFirstCol(16);
pullDown.setLastCol(8); pullDown.setLastCol(16);
pullDown.setStrings(indicatorType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(22);
pullDown.setLastCol(22);
pullDown.setStrings(supplyCondition.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(20);
pullDown.setLastCol(20);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList())); pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(9); pullDown.setFirstCol(21);
pullDown.setLastCol(9); pullDown.setLastCol(21);
pullDown.setStrings(loadLevel.stream().map(DictData::getName).collect(Collectors.toList())); pullDown.setStrings(loadLevel.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
pullDown = new PullDown(); pullDown = new PullDown();
pullDown.setFirstCol(10); pullDown.setFirstCol(10);
pullDown.setLastCol(10); pullDown.setLastCol(10);
pullDown.setStrings(supplyCondition.stream().map(DictData::getName).collect(Collectors.toList())); pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown); pullDowns.add(pullDown);
ExcelUtil.exportExcelPullDownOne(exportParams, "敏感及重要用户模板.xlsx", pullDowns, SensitiveUserExcel.class, new ArrayList<>());
pullDown = new PullDown();
pullDown.setFirstCol(11);
pullDown.setLastCol(11);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(17);
pullDown.setLastCol(17);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
ExcelUtil.exportExcelPullDown(exportParams, "敏感及重要用户模板.xlsx", pullDowns, SensitiveUserSExcel.class, new ArrayList<>());
} }
@@ -547,13 +605,13 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
public String importSensitiveUserData(MultipartFile file, HttpServletResponse response) { public String importSensitiveUserData(MultipartFile file, HttpServletResponse response) {
ImportParams params = new ImportParams(); ImportParams params = new ImportParams();
params.setHeadRows(1);//表头 params.setHeadRows(1);//表头
// params.setTitleRows(1);//标题 params.setTitleRows(1);//标题
params.setNeedVerify(true); params.setNeedVerify(true);
params.setStartSheetIndex(0); params.setStartSheetIndex(0);
params.setSheetNum(1); params.setSheetNum(1);
List<SensitiveUserExcel> sensitiveUserExcels; List<SensitiveUserSExcel> sensitiveUserExcels;
try { try {
ExcelImportResult<SensitiveUserExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveUserExcel.class, params); ExcelImportResult<SensitiveUserSExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveUserSExcel.class, params);
//如果存在非法数据,将不合格的数据导出 //如果存在非法数据,将不合格的数据导出
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) { if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response); PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
@@ -564,49 +622,51 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
} catch (Exception e) { } catch (Exception e) {
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_USER_ERROR); throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_USER_ERROR);
} }
//电压等级
List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData(); List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
//指标类型
List<DictData> indicatorType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDICATOR_TYPE.getCode()).getData();
//评估类型
List<DictData> evaluationType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVALUATION_TYPE.getCode()).getData();
//行业类型
List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE_JB.getCode()).getData(); List<DictData> industryType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.INDUSTRY_TYPE_JB.getCode()).getData();
//负荷级别
List<DictData> loadLevel = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LOAD_LEVEL.getCode()).getData(); List<DictData> loadLevel = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LOAD_LEVEL.getCode()).getData();
//供电电源情况
List<DictData> supplyCondition = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.SUPPLY_CONDITION.getCode()).getData(); List<DictData> supplyCondition = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.SUPPLY_CONDITION.getCode()).getData();
//执行批量导入敏感及重要用户,入库过程中会进行数据校验 //执行批量导入敏感及重要用户,入库过程中会进行数据校验
List<SensitiveUserExcel.SensitiveUserExcelMsg> sensitiveUserExcelMsgs = new ArrayList<>(); List<SensitiveUserSExcel.SensitiveUserExcelMsg> sensitiveUserExcelMsgs = new ArrayList<>();
if (CollectionUtil.isNotEmpty(sensitiveUserExcels)) { if (CollectionUtil.isNotEmpty(sensitiveUserExcels)) {
for (SensitiveUserExcel sensitiveUserExcel : sensitiveUserExcels) { for (SensitiveUserSExcel userExcel : sensitiveUserExcels) {
//先判断当前用户是否已经存在 //先判断当前用户是否已经存在
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
userReportPOLambdaQueryWrapper.eq(UserReportPO::getProjectName, sensitiveUserExcel.getProjectName()) userReportPOLambdaQueryWrapper.eq(UserReportPO::getProjectName, userExcel.getProjectName())
.eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode()); .eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode());
int count = this.count(userReportPOLambdaQueryWrapper); int count = this.count(userReportPOLambdaQueryWrapper);
if (count > 0) { if (count > 0) {
// if(sensitiveUserExcel.getOverlay() == 1){
//
// }else{
//该用户已经录入 //该用户已经录入
SensitiveUserExcel.SensitiveUserExcelMsg sensitiveUserExcelMsg = new SensitiveUserExcel.SensitiveUserExcelMsg(); SensitiveUserSExcel.SensitiveUserExcelMsg sensitiveUserExcelMsg = new SensitiveUserSExcel.SensitiveUserExcelMsg();
BeanUtils.copyProperties(sensitiveUserExcel, sensitiveUserExcelMsg); BeanUtils.copyProperties(userExcel, sensitiveUserExcelMsg);
sensitiveUserExcelMsg.setMsg("该用户已录入!"); sensitiveUserExcelMsg.setMsg("该用户已录入!");
sensitiveUserExcelMsgs.add(sensitiveUserExcelMsg); sensitiveUserExcelMsgs.add(sensitiveUserExcelMsg);
// } }else{
continue;
}
//处理通用信息 //处理通用信息
UserReportPO userReportPO = new UserReportPO(); UserReportPO userReportPO = new UserReportPO();
userReportPO.setReporter(RequestUtil.getUserIndex()); userReportPO.setReporter(RequestUtil.getUserIndex());
userReportPO.setReportDate(LocalDate.now()); userReportPO.setReportDate(LocalDate.now());
userReportPO.setOrgId(RequestUtil.getDeptIndex()); userReportPO.setOrgId(RequestUtil.getDeptIndex());
userReportPO.setCity(sensitiveUserExcel.getCity()); userReportPO.setExpectedProductionDate(userExcel.getExpectedProductionDate());
userReportPO.setUserType(UserNatureEnum.SENSITIVE_USER.getCode()); userReportPO.setUserType(UserNatureEnum.SENSITIVE_USER.getCode());
if(Objects.nonNull(sensitiveUserExcel.getUserStatus())){ //所属地市
userReportPO.setUserStatus(sensitiveUserExcel.getUserStatus()); userReportPO.setCity(userExcel.getCity());
}else{ userReportPO.setResponsibleDepartment(userExcel.getResponsibleDepartment());
userReportPO.setUserStatus(SupervisionUserStatusEnum.PRODUCT.getCode()); userReportPO.setUserStatus(userExcel.getUserStatus());
} userReportPO.setSubstation(userExcel.getSubstation());
userReportPO.setSubstation(sensitiveUserExcel.getSubstation()); userReportPO.setVoltageLevel(PubUtil.getDicById(userExcel.getVoltageLevel(), devVoltage));
//电压等级需要特殊处理下 userReportPO.setProjectName(userExcel.getProjectName());
if (StrUtil.isNotBlank(sensitiveUserExcel.getVoltageLevel())) { userReportPO.setEvaluationDept(userExcel.getEvaluationDept());
userReportPO.setVoltageLevel(PubUtil.getDicById(sensitiveUserExcel.getVoltageLevel(), devVoltage)); userReportPO.setEvaluationConclusion(userExcel.getEvaluationConclusion());
}
userReportPO.setProjectName(sensitiveUserExcel.getProjectName());
userReportPO.setDataType(1); userReportPO.setDataType(1);
userReportPO.setStatus(2); userReportPO.setStatus(2);
userReportPO.setState(DataStateEnum.ENABLE.getCode()); userReportPO.setState(DataStateEnum.ENABLE.getCode());
@@ -614,24 +674,250 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
//处理敏感用户的信息 //处理敏感用户的信息
UserReportSensitivePO userReportSensitivePO = new UserReportSensitivePO(); UserReportSensitivePO userReportSensitivePO = new UserReportSensitivePO();
userReportSensitivePO.setId(userReportPO.getId()); userReportSensitivePO.setId(userReportPO.getId());
if (StrUtil.isNotBlank(sensitiveUserExcel.getIndustry())) { userReportSensitivePO.setPccPoint(userExcel.getPccPoint());
userReportSensitivePO.setIndustry(PubUtil.getDicById(sensitiveUserExcel.getIndustry(), industryType)); userReportSensitivePO.setDeviceName(userExcel.getDeviceName());
userReportSensitivePO.setPowerSupplyCount(userExcel.getPowerSupplyCount());
userReportSensitivePO.setEnergyQualityIndex(PubUtil.getDicById(userExcel.getEnergyQualityIndex(), indicatorType));
userReportSensitivePO.setEvaluationType(PubUtil.getDicById(userExcel.getEvaluationType(), evaluationType));
userReportSensitivePO.setAntiInterferenceTest(userExcel.getAntiInterferenceTest()+"");
userReportSensitivePO.setEvaluationChekDept(userExcel.getEvaluationChekDept());
userReportSensitivePO.setNeedGovernance(userExcel.getNeedGovernance());
userReportSensitivePO.setBackgroundTestPerformed(userExcel.getBackgroundTestPerformed());
// userReportSensitivePO.setSubstationMainWiringDiagram();
// userReportSensitivePO.setSensitiveDevices();
// userReportSensitivePO.setAntiInterferenceReport();
// userReportSensitivePO.setPowerQualityReport();
// userReportSensitivePO.setFeasibilityReport();
// userReportSensitivePO.setPreliminaryDesignDescription();
// userReportSensitivePO.setPredictionEvaluationReport();
// userReportSensitivePO.setPredictionEvaluationReviewOpinions();
// userReportSensitivePO.setAdditionalAttachments();
if (StrUtil.isNotBlank(userExcel.getIndustry())) {
userReportSensitivePO.setIndustry(PubUtil.getDicById(userExcel.getIndustry(), industryType));
} }
userReportSensitivePO.setMaintenanceUnit(sensitiveUserExcel.getMaintenanceUnit()); userReportSensitivePO.setMaintenanceUnit(userExcel.getMaintenanceUnit());
userReportSensitivePO.setPowerSupply(sensitiveUserExcel.getPowerSupply()); userReportSensitivePO.setPowerSupply(userExcel.getPowerSupply());
if (StrUtil.isNotBlank(sensitiveUserExcel.getSupplyVoltageLevel())) { if (StrUtil.isNotBlank(userExcel.getSupplyVoltageLevel())) {
userReportSensitivePO.setSupplyVoltageLevel(PubUtil.getDicById(sensitiveUserExcel.getSupplyVoltageLevel(), devVoltage)); userReportSensitivePO.setSupplyVoltageLevel(PubUtil.getDicById(userExcel.getSupplyVoltageLevel(), devVoltage));
} }
if (StrUtil.isNotBlank(sensitiveUserExcel.getLoadLevel())) { if (StrUtil.isNotBlank(userExcel.getLoadLevel())) {
userReportSensitivePO.setLoadLevel(PubUtil.getDicById(sensitiveUserExcel.getLoadLevel(), loadLevel)); userReportSensitivePO.setLoadLevel(PubUtil.getDicById(userExcel.getLoadLevel(), loadLevel));
} }
if (StrUtil.isNotBlank(sensitiveUserExcel.getPowerSupplyInfo())) { if (StrUtil.isNotBlank(userExcel.getPowerSupplyInfo())) {
userReportSensitivePO.setPowerSupplyInfo(PubUtil.getDicById(sensitiveUserExcel.getPowerSupplyInfo(), supplyCondition)); userReportSensitivePO.setPowerSupplyInfo(PubUtil.getDicById(userExcel.getPowerSupplyInfo(), supplyCondition));
} }
userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode()); userReportSensitivePO.setState(DataStateEnum.ENABLE.getCode());
userReportSensitivePOService.save(userReportSensitivePO); userReportSensitivePOService.save(userReportSensitivePO);
} }
} }
}
//判断有没有错误信息
if (CollectionUtil.isNotEmpty(sensitiveUserExcelMsgs)) {
ExcelUtil.exportExcel("失败列表.xlsx", SensitiveUserSExcel.SensitiveUserExcelMsg.class, sensitiveUserExcelMsgs);
return null;
}
return CommonResponseEnum.SUCCESS.getCode();
}
@Override
public void downloadSensitiveReportTemplate() {
ExportParams exportParams = new ExportParams("干扰源用户数据模板(带*字段均是必填,请严格按照模板标准填入数据)", "干扰源用户数据信息");
//所属地市
List<DictData> jiBeiArea = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.JIBEI_AREA.getCode()).getData();
//主要非线性设备类型-冀北
List<SysDicTreePO> treeVOS = dictTreeFeignClient.queryByCodeList(DicDataTypeEnum.Major_Nonlinear_Device.getCode()).getData();
//电压等级
List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
//评估单位
List<DictData> evaluationDept = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVALUATION_DEPT.getCode()).getData();
//评估类型
List<DictData> evaluationType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVALUATION_TYPE.getCode()).getData();
Map<String, String> treeString = getTreeString("", treeVOS.get(0).getChildren());
List<PullDown> pullDowns = new ArrayList<>();
PullDown pullDown;
pullDown = new PullDown();
pullDown.setFirstCol(1);
pullDown.setLastCol(1);
pullDown.setStrings(Stream.of("新建电网工程", "扩建电网工程", "新建非线性负荷用户", "扩建非线性负荷用户", "新建新能源发电站", "扩建新能源发电站").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(2);
pullDown.setLastCol(2);
pullDown.setStrings(jiBeiArea.stream().filter(x -> !"风光储".equals(x.getName())&&!"超高压".equals(x.getName())).map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(4);
pullDown.setLastCol(4);
pullDown.setStrings(Stream.of("可研", "建设", "运行", "退运").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(7);
pullDown.setLastCol(7);
pullDown.setStrings(devVoltage.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(8);
pullDown.setLastCol(8);
pullDown.setStrings(evaluationDept.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(15);
pullDown.setLastCol(15);
pullDown.setStrings(evaluationType.stream().map(DictData::getName).collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(16);
pullDown.setLastCol(16);
pullDown.setStrings(treeString.keySet().stream().collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(18);
pullDown.setLastCol(18);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
pullDown = new PullDown();
pullDown.setFirstCol(19);
pullDown.setLastCol(19);
pullDown.setStrings(Stream.of("", "").collect(Collectors.toList()));
pullDowns.add(pullDown);
ExcelUtil.exportExcelPullDown(exportParams, "干扰源用户用户模板.xlsx", pullDowns, SensitiveReportExcel.class, new ArrayList<>());
}
@Override
@Transactional(rollbackFor = Exception.class)
public String importSensitiveReportData(MultipartFile file, HttpServletResponse response) {
ImportParams params = new ImportParams();
params.setHeadRows(1);//表头
params.setTitleRows(1);//标题
params.setNeedVerify(true);
params.setStartSheetIndex(0);
params.setSheetNum(1);
List<SensitiveReportExcel> sensitiveUserExcels;
try {
ExcelImportResult<SensitiveReportExcel> sensitiveUserExcelExcelImportResult = ExcelImportUtil.importExcelMore(file.getInputStream(), SensitiveReportExcel.class, params);
//如果存在非法数据,将不合格的数据导出
if (sensitiveUserExcelExcelImportResult.isVerifyFail()) {
PoiUtil.exportFileByWorkbook(sensitiveUserExcelExcelImportResult.getFailWorkbook(), "非法用户数据.xlsx", response);
return null;
} else {
sensitiveUserExcels = sensitiveUserExcelExcelImportResult.getList();
}
} catch (Exception e) {
throw new BusinessException(SupervisionResponseEnum.IMPORT_SENSITIVE_USER_ERROR);
}
//主要非线性设备类型-冀北
List<SysDicTreePO> treeVOS = dictTreeFeignClient.queryByCodeList(DicDataTypeEnum.Major_Nonlinear_Device.getCode()).getData();
//电压等级
List<DictData> devVoltage = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE_STAND.getCode()).getData();
Map<String, String> treeString = getTreeString("", treeVOS.get(0).getChildren());
//评估类型
List<DictData> evaluationType = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.EVALUATION_TYPE.getCode()).getData();
//执行批量导入敏感及重要用户,入库过程中会进行数据校验
List<SensitiveReportExcel.SensitiveReportExcelMsg> sensitiveUserExcelMsgs = new ArrayList<>();
if (CollectionUtil.isNotEmpty(sensitiveUserExcels)) {
for (SensitiveReportExcel reportExcel : sensitiveUserExcels) {
//先判断当前用户是否已经存在
LambdaQueryWrapper<UserReportPO> userReportPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
userReportPOLambdaQueryWrapper.eq(UserReportPO::getProjectName, reportExcel.getProjectName())
.eq(UserReportPO::getState, DataStateEnum.ENABLE.getCode());
int count = this.count(userReportPOLambdaQueryWrapper);
if (count > 0) {
//该用户已经录入
SensitiveReportExcel.SensitiveReportExcelMsg sensitiveUserExcelMsg = new SensitiveReportExcel.SensitiveReportExcelMsg();
BeanUtils.copyProperties(reportExcel, sensitiveUserExcelMsg);
sensitiveUserExcelMsg.setMsg("该用户已录入!");
sensitiveUserExcelMsgs.add(sensitiveUserExcelMsg);
} else {
//处理通用信息
UserReportPO userReportPO = new UserReportPO();
userReportPO.setReporter(RequestUtil.getUserIndex());
userReportPO.setReportDate(LocalDate.now());
userReportPO.setOrgId(RequestUtil.getDeptIndex());
userReportPO.setExpectedProductionDate(reportExcel.getExpectedProductionDate());
userReportPO.setUserType(reportExcel.getUserType());
//所属地市
userReportPO.setCity(reportExcel.getCity());
userReportPO.setResponsibleDepartment(reportExcel.getResponsibleDepartment());
userReportPO.setUserStatus(reportExcel.getUserStatus());
userReportPO.setSubstation(reportExcel.getSubstation());
userReportPO.setVoltageLevel(PubUtil.getDicById(reportExcel.getVoltageLevel(), devVoltage));
userReportPO.setProjectName(reportExcel.getProjectName());
userReportPO.setEvaluationDept(reportExcel.getEvaluationDept());
userReportPO.setEvaluationConclusion(reportExcel.getEvaluationConclusion());
userReportPO.setDataType(1);
userReportPO.setStatus(2);
userReportPO.setState(DataStateEnum.ENABLE.getCode());
this.baseMapper.insert(userReportPO);
if (CollectionUtil.newArrayList(
UserNatureEnum.BUILD_POWER_GRID.getCode(),
UserNatureEnum.EXTEND_POWER_GRID.getCode()
).contains(userReportPO.getUserType())) {
//电网工程类用户额外数据
UserReportProjectPO userReportProjectPO = new UserReportProjectPO();
userReportProjectPO.setId(userReportPO.getId());
if(ObjectUtil.isNotEmpty(reportExcel.getNonlinearLoadType())){
userReportProjectPO.setAgreementCapacity(reportExcel.getUserAgreementCapacity().doubleValue());
}
if(StrUtil.isNotBlank(reportExcel.getNonlinearLoadType())){
userReportProjectPO.setNonlinearDeviceType(treeString.containsKey(reportExcel.getNonlinearLoadType()) ? treeString.get(reportExcel.getNonlinearLoadType()) : null);
}
userReportProjectPO.setNeedGovernance(reportExcel.getNeedGovernance());
userReportProjectPO.setBackgroundTestPerformed(reportExcel.getBackgroundTestPerformed());
// userReportProjectPO.setFeasibilityReport();
// userReportProjectPO.setPreliminaryDesignDescription();
// userReportProjectPO.setPredictionEvaluationReport();
// userReportProjectPO.setPredictionEvaluationReviewOpinions();
// userReportProjectPO.setAdditionalAttachments();
userReportProjectPO.setState(DataStateEnum.ENABLE.getCode());
userReportProjectPOService.saveOrUpdate(userReportProjectPO);
}
if (CollectionUtil.newArrayList(
UserNatureEnum.BUILD_NON_LINEAR_LOAD.getCode(),
UserNatureEnum.EXTEND_NON_LINEAR_LOAD.getCode(),
UserNatureEnum.BUILD_NEW_ENERGY_POWER_STATION.getCode(),
UserNatureEnum.EXTEND_NEW_ENERGY_POWER_STATION.getCode()
).contains(userReportPO.getUserType())) {
//非线性负荷用户 & 新能源发电站用户
UserReportSubstationPO userReportSubstationPO = new UserReportSubstationPO();
userReportSubstationPO.setId(userReportPO.getId());
userReportSubstationPO.setPccPoint(reportExcel.getPccPoint());
userReportSubstationPO.setBaseShortCircuitCapacity(reportExcel.getBaseShortCircuitCapacity());
userReportSubstationPO.setMinShortCircuitCapacity(reportExcel.getMinShortCircuitCapacity());
userReportSubstationPO.setPccEquipmentCapacity(reportExcel.getPccEquipmentCapacity());
userReportSubstationPO.setUserAgreementCapacity(reportExcel.getUserAgreementCapacity());
userReportSubstationPO.setEvaluationType(PubUtil.getDicById(reportExcel.getEvaluationType(), evaluationType));
if(StrUtil.isNotBlank(reportExcel.getNonlinearLoadType())){
userReportSubstationPO.setNonlinearLoadType(treeString.containsKey(reportExcel.getNonlinearLoadType()) ? treeString.get(reportExcel.getNonlinearLoadType()) : null);
}
userReportSubstationPO.setEvaluationChekDept(reportExcel.getEvaluationChekDept());
userReportSubstationPO.setNeedGovernance(reportExcel.getNeedGovernance());
userReportSubstationPO.setBackgroundTestPerformed(reportExcel.getBackgroundTestPerformed());
// userReportSubstationPO.setSubstationMainWiringDiagram();
// userReportSubstationPO.setFeasibilityReport();
// userReportSubstationPO.setPreliminaryDesignDescription();
// userReportSubstationPO.setPredictionEvaluationReport();
// userReportSubstationPO.setPredictionEvaluationReviewOpinions();
// userReportSubstationPO.setAdditionalAttachments();
userReportSubstationPO.setState(DataStateEnum.ENABLE.getCode());
userReportSubstationPOService.saveOrUpdate(userReportSubstationPO);
}
}
}
}
//判断有没有错误信息 //判断有没有错误信息
if (CollectionUtil.isNotEmpty(sensitiveUserExcelMsgs)) { if (CollectionUtil.isNotEmpty(sensitiveUserExcelMsgs)) {
ExcelUtil.exportExcel("失败列表.xlsx", SensitiveUserExcel.SensitiveUserExcelMsg.class, sensitiveUserExcelMsgs); ExcelUtil.exportExcel("失败列表.xlsx", SensitiveUserExcel.SensitiveUserExcelMsg.class, sensitiveUserExcelMsgs);
@@ -640,6 +926,20 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
return CommonResponseEnum.SUCCESS.getCode(); return CommonResponseEnum.SUCCESS.getCode();
} }
public Map<String,String> getTreeString(String name, List<SysDicTreePO> treeVOS) {
Map<String,String> info = new LinkedHashMap<>();
for (SysDicTreePO sysMenuDtoChild : treeVOS) {
if (sysMenuDtoChild.getLevel() == 3) {
name = sysMenuDtoChild.getId()+"-"+sysMenuDtoChild.getName();
}
if (CollUtil.isNotEmpty(sysMenuDtoChild.getChildren())) {
info.putAll(getTreeString(name, sysMenuDtoChild.getChildren()));
} else {
info.put(name.split("-")[1],name.split("-")[0]);
}
}
return info;
}
/** /**
* 获取所有字段为null的属性名 * 获取所有字段为null的属性名