@@ -5,7 +5,10 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams ;
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult ;
import cn.hutool.core.bean.BeanUtil ;
import cn.hutool.core.collection.CollUtil ;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.util.ObjectUtil ;
import cn.hutool.core.util.StrUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
@@ -29,14 +32,15 @@ import com.njcn.poi.util.PoiUtil;
import com.njcn.supervision.enums.* ;
import com.njcn.supervision.mapper.device.SupervisionTempLineReportMapper ;
import com.njcn.supervision.mapper.user.UserReportPOMapper ;
import com.njcn.supervision.pojo.dto.SensitiveReportExcel ;
import com.njcn.supervision.pojo.dto.SensitiveUserExcel ;
import com.njcn.supervision.pojo.dto.SensitiveUserSExcel ;
import com.njcn.supervision.pojo.param.user.UserReportParam ;
import com.njcn.supervision.pojo.po.device.SupervisionTempLineReport ;
import com.njcn.supervision.pojo.po.user.UserReportPO ;
import com.njcn.supervision.pojo.po.user.UserReportProjectPO ;
import com.njcn.supervision.pojo.po.user.UserReportSensitivePO ;
import com.njcn.supervision.pojo.po.user.UserReportSubstationPO ;
import com.njcn.supervision.pojo.vo.survey.SurveyPlanVO ;
import com.njcn.supervision.pojo.vo.user.UserReportVO ;
import com.njcn.supervision.service.user.UserReportPOService ;
import com.njcn.supervision.service.user.UserReportProjectPOService ;
@@ -44,8 +48,10 @@ import com.njcn.supervision.service.user.UserReportSensitivePOService;
import com.njcn.supervision.service.user.UserReportSubstationPOService ;
import com.njcn.supervision.utils.InstanceUtil ;
import com.njcn.system.api.DicDataFeignClient ;
import com.njcn.system.api.DictTreeFeignClient ;
import com.njcn.system.enums.DicDataTypeEnum ;
import com.njcn.system.pojo.po.DictData ;
import com.njcn.system.pojo.po.SysDicTreePO ;
import com.njcn.user.api.DeptFeignClient ;
import com.njcn.user.api.UserFeignClient ;
import com.njcn.user.pojo.vo.UserVO ;
@@ -86,6 +92,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
private final SupervisionTempLineReportMapper supervisionTempLineReportMapper ;
private final LineFeignClient lineFeignClient ;
private final DicDataFeignClient dicDataFeignClient ;
private final DictTreeFeignClient dictTreeFeignClient ;
@Override
@@ -164,15 +171,15 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
public String updateUserReport ( UserReportParam . UserReportUpdate userReportParam ) {
UserReportPO userReportPO = this . baseMapper . selectById ( userReportParam . getId ( ) ) ;
//判断是否有权限操作
InstanceUtil . judgeUserPower ( RequestUtil . getUserIndex ( ) , userReportPO . getCreateBy ( ) ) ;
if ( Objects . equals ( userReportPO . getStatus ( ) , BpmTaskStatusEnum . APPROVE . getStatus ( ) ) ) {
InstanceUtil . judgeUserPower ( RequestUtil . getUserIndex ( ) , userReportPO . getCreateBy ( ) ) ;
if ( Objects . equals ( userReportPO . getStatus ( ) , BpmTaskStatusEnum . APPROVE . getStatus ( ) ) ) {
throw new BusinessException ( " 当前流程以完成审批,无法重新发起 " ) ;
}
//处理历史流程id列表
String historyInstanceIds = InstanceUtil . dealHistoryId ( userReportPO . getProcessInstanceId ( ) , userReportPO . getHistoryInstanceId ( ) ) ;
BeanUtil . copyProperties ( userReportParam , userReportPO ) ;
BeanUtil . copyProperties ( userReportParam , userReportPO ) ;
if (
CollectionUtil . newArrayList (
@@ -205,7 +212,6 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
}
// 发起 BPM 流程
Map < String , Object > processInstanceVariables = new HashMap < > ( ) ;
BpmProcessInstanceCreateReqDTO bpmProcessInstanceCreateReqDTO = new BpmProcessInstanceCreateReqDTO ( ) ;
@@ -270,20 +276,23 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
List < String > colleaguesIds = userFeignClient . getColleaguesIdByUserId ( RequestUtil . getUserIndex ( ) ) . getData ( ) ;
userReportVOQueryWrapper . in ( " supervision_user_report.create_by " , colleaguesIds )
. eq ( " supervision_user_report.state " , DataStateEnum . ENABLE . getCode ( ) )
. eq ( " supervision_user_report.data_type " , 0 ) ;
. eq ( " supervision_user_report.data_type " , 0 ) ;
if ( Objects . nonNull ( userReportQueryParam ) ) {
if ( StrUtil . isNotBlank ( userReportQueryParam . getCity ( ) ) ) {
//查询所有区域下的数据
userReportVOQueryWrapper . in ( " supervision_user_report.city " , userReportQueryParam . getCity ( ) ) ;
}
if ( Objects . nonNull ( userReportQueryParam . getStatus ( ) ) ) {
if ( Objects . nonNull ( userReportQueryParam . getStatus ( ) ) ) {
userReportVOQueryWrapper . eq ( " supervision_user_report.status " , userReportQueryParam . getStatus ( ) ) ;
}
userReportVOQueryWrapper . like ( StringUtils . isNotBlank ( userReportQueryParam . getProjectName ( ) ) , " supervision_user_report.project_name " , userReportQueryParam . getProjectName ( ) ) ;
//添加上时间范围
// userReportVO QueryWrapper.between("supervision_ user_r eport.Create_Time",
// DateUtil.beginOfDay(DateUtil.parse( userR eportQueryParam.getSearchBeginTime())) ,
// DateUtil.endOfDay(DateUtil.parse( userReportQueryParam. getSearchEndTime())));
if ( StrUtil . isNotBlank ( userReportQueryParam . getSearchBeginTime ( ) ) & & StrUtil . isNotBlank ( userR eportQueryParam . getSearchEndTime ( ) ) ) {
userReportVOQueryWrapper . between ( " supervision_ user_r eport.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 " ) ;
return this . baseMapper . page ( new Page < > ( PageFactory . getPageNum ( userReportQueryParam ) , PageFactory . getPageSize ( userReportQueryParam ) ) , userReportVOQueryWrapper ) ;
@@ -364,7 +373,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
List < UserReportPO > list = this . lambdaQuery ( )
. eq ( UserReportPO : : getStatus , 2 )
. eq ( UserReportPO : : getDataType , 0 )
. eq ( UserReportPO : : getDataType , 0 )
. in ( CollectionUtil . isNotEmpty ( data ) , UserReportPO : : getOrgId , data )
. list ( ) ;
List < UserReportVO > collect = list . stream ( ) . map ( temp - > {
@@ -397,7 +406,12 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
userReportVOQueryWrapper . eq ( " data_type " , userReportQueryParam . getDataType ( ) ) ;
}
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 " ) ;
return this . baseMapper . page ( new Page < > ( PageFactory . getPageNum ( userReportQueryParam ) , PageFactory . getPageSize ( userReportQueryParam ) ) , userReportVOQueryWrapper ) ;
@@ -421,7 +435,7 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Transactional ( rollbackFor = Exception . class )
public void updateUserStatus ( String lineId , Integer userStatus ) {
SupervisionTempLineReport supervisionTempLineReport = supervisionTempLineReportMapper . selectById ( lineId ) ;
if ( Objects . nonNull ( supervisionTempLineReport ) ) {
if ( Objects . nonNull ( supervisionTempLineReport ) ) {
String userId = supervisionTempLineReport . getUserId ( ) ;
UserReportPO userReportPO = this . baseMapper . selectById ( userId ) ;
//如果目前的干扰源用户状态>userStatus则不修改, 如果将干扰源用户状态改为3退运, 则必须其下的监测点都退运才能修改
@@ -481,55 +495,108 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
@Override
public void downloadSensitiveUserTemplate ( ) {
ExportParams exportParams = new ExportParams ( ) ;
exportParams . setSheetName ( " 敏感及重要用户 " ) ;
ExportParams exportParams = new ExportParams ( " 敏感及重要用户数据模板(带*字段均是必填,请严格按照模板标准填入数据) " , " 敏感及重要用户数据信息 " ) ;
//所属地市
List < DictData > jiBeiArea = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . JIBEI_AREA . 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 > loadLevel = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . LOAD_LEVEL . getCode ( ) ) . getData ( ) ;
//供电电源情况
List < DictData > supplyCondition = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . SUPPLY_CONDITION . getCode ( ) ) . getData ( ) ;
List < PullDown > pullDowns = new ArrayList < > ( ) ;
PullDown pullDown ;
pullDown = new PullDown ( ) ;
pullDown . setFirstCol ( 2 ) ;
pullDown . setLastCol ( 2 ) ;
pullDown . setFirstCol ( 1 ) ;
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 ( ) ) ) ;
pullDowns . add ( pullDown ) ;
pullDown = new PullDown ( ) ;
pullDown . setFirstCol ( 4 ) ;
pullDown . setLastCol ( 4 ) ;
pullDown . setFirstCol ( 6 ) ;
pullDown . setLastCol ( 6 ) ;
pullDown . setStrings ( devVoltage . stream ( ) . map ( DictData : : getName ) . collect ( Collectors . toList ( ) ) ) ;
pullDowns . add ( pullDown ) ;
pullDown = new PullDown ( ) ;
pullDown . setFirstCol ( 5 ) ;
pullDown . setLastCol ( 5 ) ;
pullDown . setFirstCol ( 7 ) ;
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 ( ) ) ) ;
pullDowns . add ( pullDown ) ;
pullDown = new PullDown ( ) ;
pullDown . setFirstCol ( 8 ) ;
pullDown . setLastCol ( 8 ) ;
pullDown . setFirstCol ( 16 ) ;
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 ( ) ) ) ;
pullDowns . add ( pullDown ) ;
pullDown = new PullDown ( ) ;
pullDown . setFirstCol ( 9 ) ;
pullDown . setLastCol ( 9 ) ;
pullDown . setFirstCol ( 21 ) ;
pullDown . setLastCol ( 21 ) ;
pullDown . setStrings ( loadLevel . stream ( ) . map ( DictData : : getName ) . collect ( Collectors . toList ( ) ) ) ;
pullDowns . add ( pullDown ) ;
pullDown = new PullDown ( ) ;
pullDown . setFirstCol ( 10 ) ;
pullDown . setLastCol ( 10 ) ;
pullDown . setStrings ( supplyCondition . stream ( ) . map ( DictData : : getName ) . collect ( Collectors . toList ( ) ) ) ;
pullDown . setStrings ( Stream . of ( " 否 " , " 是 " ) . collect ( Collectors . toList ( ) ) ) ;
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 < > ( ) ) ;
}
@@ -538,13 +605,13 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
public String importSensitiveUserData ( MultipartFile file , HttpServletResponse response ) {
ImportParams params = new ImportParams ( ) ;
params . setHeadRows ( 1 ) ; //表头
// params. setTitleRows(1); //标题
params. setTitleRows( 1 ) ; //标题
params . setNeedVerify ( true ) ;
params . setStartSheetIndex ( 0 ) ;
params . setSheetNum ( 1 ) ;
List < SensitiveUserExcel > sensitiveUserExcels ;
List < SensitiveUserS Excel > sensitiveUserExcels ;
try {
ExcelImportResult < SensitiveUserExcel > sensitiveUserExcelExcelImportResult = ExcelImportUtil . importExcelMore ( file . getInputStream ( ) , SensitiveUserExcel . class , params ) ;
ExcelImportResult < SensitiveUserS Excel > sensitiveUserExcelExcelImportResult = ExcelImportUtil . importExcelMore ( file . getInputStream ( ) , SensitiveUserS Excel . class , params ) ;
//如果存在非法数据,将不合格的数据导出
if ( sensitiveUserExcelExcelImportResult . isVerifyFail ( ) ) {
PoiUtil . exportFileByWorkbook ( sensitiveUserExcelExcelImportResult . getFailWorkbook ( ) , " 非法用户数据.xlsx " , response ) ;
@@ -555,72 +622,300 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
} catch ( Exception e ) {
throw new BusinessException ( SupervisionResponseEnum . IMPORT_SENSITIVE_USER_ERROR ) ;
}
//电压等级
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 > loadLevel = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . LOAD_LEVEL . getCode ( ) ) . getData ( ) ;
//供电电源情况
List < DictData > supplyCondition = dicDataFeignClient . getDicDataByTypeCode ( DicDataTypeEnum . SUPPLY_CONDITION . getCode ( ) ) . getData ( ) ;
//执行批量导入敏感及重要用户,入库过程中会进行数据校验
List < SensitiveUserExcel . SensitiveUserExcelMsg > sensitiveUserExcelMsgs = new ArrayList < > ( ) ;
List < SensitiveUserS Excel . SensitiveUserExcelMsg > sensitiveUserExcelMsgs = new ArrayList < > ( ) ;
if ( CollectionUtil . isNotEmpty ( sensitiveUserExcels ) ) {
for ( SensitiveUserExcel sensitiveU serExcel : sensitiveUserExcels ) {
for ( SensitiveUserS Excel u serExcel : sensitiveUserExcels ) {
//先判断当前用户是否已经存在
LambdaQueryWrapper < UserReportPO > userReportPOLambdaQueryWrapper = new LambdaQueryWrapper < > ( ) ;
userReportPOLambdaQueryWrapper . eq ( UserReportPO : : getProjectName , sensitiveU serExcel. getProjectName ( ) )
userReportPOLambdaQueryWrapper . eq ( UserReportPO : : getProjectName , u serExcel. getProjectName ( ) )
. eq ( UserReportPO : : getState , DataStateEnum . ENABLE . getCode ( ) ) ;
int count = this . count ( userReportPOLambdaQueryWrapper ) ;
if ( count > 0 ) {
// if(sensitiveUserExcel.getOverlay() == 1){
//
// }else{
//该用户已经录入
SensitiveUserExcel . SensitiveUserExcelMsg sensitiveUserExcelMsg = new SensitiveUserExcel . SensitiveUserExcelMsg ( ) ;
BeanUtils . copyProperties ( sensitiveU serExcel, sensitiveUserExcelMsg ) ;
SensitiveUserS Excel . SensitiveUserExcelMsg sensitiveUserExcelMsg = new SensitiveUserS Excel . SensitiveUserExcelMsg ( ) ;
BeanUtils . copyProperties ( u serExcel, sensitiveUserExcelMsg ) ;
sensitiveUserExcelMsg . setMsg ( " 该用户已录入! " ) ;
sensitiveUserExcelMsgs . add ( sensitiveUserExcelMsg ) ;
// }
continue ;
}
//处理通用信息
UserReportPO userReportPO = new UserReportPO ( ) ;
userReportPO . setReporter ( RequestUtil . getUserIndex ( ) ) ;
userReportPO . setReportDate ( LocalDate . now ( ) ) ;
userReportPO . setOrgId ( RequestUtil . getDeptIndex ( ) ) ;
userReportPO . setCity ( sensitiveUserExcel . getCity ( ) ) ;
userReportPO . setUserType ( UserNatureEnum . SENSITIVE_USER . getCode ( ) ) ;
if ( Objects . nonNull ( sensitiveUserExcel . getUserStatus ( ) ) ) {
userReportPO . setUserStatus ( sensitiveUserExcel . getUserStatus ( ) ) ;
} else {
userReportPO . setUserStatus ( SupervisionUserStatusEnum . PRODUCT . getCode ( ) ) ;
//处理通用信息
UserReportPO userReportPO = new UserReportPO ( ) ;
userReportPO . setReporter ( RequestUtil . getUserIndex ( ) ) ;
userReportPO . setReportDate ( LocalDate . now ( ) ) ;
userReportPO . setOrgId ( RequestUtil . getDeptIndex ( ) ) ;
userReportPO . setExpectedProductionDate ( userExcel . getExpectedProductionDate ( ) ) ;
userReportPO . setUserType ( UserNatureEnum . SENSITIVE_USER . getCode ( ) ) ;
//所属地市
userReportPO . setCity ( userExcel . getCity ( ) ) ;
userReportPO . setResponsibleDepartment ( userExcel . getResponsibleDepartment ( ) ) ;
userReportPO . setUserStatus ( userExcel . getUserStatus ( ) ) ;
userReportPO . setSubstation ( userExcel . getSubstation ( ) ) ;
userReportPO . setVoltageLevel ( PubUtil . getDicById ( userExcel . getVoltageLevel ( ) , devVoltage ) ) ;
userReportPO . setProjectName ( userExcel . getProjectName ( ) ) ;
userReportPO . setEvaluationDept ( userExcel . getEvaluationDept ( ) ) ;
userReportPO . setEvaluationConclusion ( userExcel . getEvaluationConclusion ( ) ) ;
userReportPO . setDataType ( 1 ) ;
userReportPO . setStatus ( 2 ) ;
userReportPO . setState ( DataStateEnum . ENABLE . getCode ( ) ) ;
this . baseMapper . insert ( userReportPO ) ;
//处理敏感用户的信息
UserReportSensitivePO userReportSensitivePO = new UserReportSensitivePO ( ) ;
userReportSensitivePO . setId ( userReportPO . getId ( ) ) ;
userReportSensitivePO . setPccPoint ( userExcel . getPccPoint ( ) ) ;
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 ( userExcel . getMaintenanceUnit ( ) ) ;
userReportSensitivePO . setPowerSupply ( userExcel . getPowerSupply ( ) ) ;
if ( StrUtil . isNotBlank ( userExcel . getSupplyVoltageLevel ( ) ) ) {
userReportSensitivePO . setSupplyVoltageLevel ( PubUtil . getDicById ( userExcel . getSupplyVoltageLevel ( ) , devVoltage ) ) ;
}
if ( StrUtil . isNotBlank ( userExcel . getLoadLevel ( ) ) ) {
userReportSensitivePO . setLoadLevel ( PubUtil . getDicById ( userExcel . getLoadLevel ( ) , loadLevel ) ) ;
}
if ( StrUtil . isNotBlank ( userExcel . getPowerSupplyInfo ( ) ) ) {
userReportSensitivePO . setPowerSupplyInfo ( PubUtil . getDicById ( userExcel . getPowerSupplyInfo ( ) , supplyCondition ) ) ;
}
userReportSensitivePO . setState ( DataStateEnum . ENABLE . getCode ( ) ) ;
userReportSensitivePOService . save ( userReportSensitivePO ) ;
}
userReportPO . setSubstation ( sensitiveUserExcel . getSubstation ( ) ) ;
//电压等级需要特殊处理下
if ( StrUtil . isNotBlank ( sensitiveUserExcel . getVoltageLevel ( ) ) ) {
userReportPO . setVoltageLevel ( PubUtil . getDicById ( sensitiveUserExcel . getVoltageLevel ( ) , devVoltage ) ) ;
}
}
//判断有没有错误信息
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 ) ;
}
}
userReportPO . setProjectName ( sensitiveUserExcel . getProjectName ( ) ) ;
userReportPO . setDataType ( 1 ) ;
userReportPO . setStatus ( 2 ) ;
userReportPO . setState ( DataStateEnum . ENABLE . getCode ( ) ) ;
this . baseMapper . insert ( userReportPO ) ;
//处理敏感用户的信息
UserReportSensitivePO userReportSensitivePO = new UserReportSensitivePO ( ) ;
userReportSensitivePO . setId ( userReportPO . getId ( ) ) ;
if ( StrUtil . isNotBlank ( sensitiveUserExcel . getIndustry ( ) ) ) {
userReportSensitivePO . setIndustry ( PubUtil . getDicById ( sensitiveUserExcel . getIndustry ( ) , industryType ) ) ;
}
userReportSensitivePO . setMaintenanceUnit ( sensitiveUserExcel . getMaintenanceUnit ( ) ) ;
userReportSensitivePO . setPowerSupply ( sensitiveUserExcel . getPowerSupply ( ) ) ;
if ( StrUtil . isNotBlank ( sensitiveUserExcel . getSupplyVoltageLevel ( ) ) ) {
userReportSensitivePO . setSupplyVoltageLevel ( PubUtil . getDicById ( sensitiveUserExcel . getSupplyVoltageLevel ( ) , devVoltage ) ) ;
}
if ( StrUtil . isNotBlank ( sensitiveUserExcel . getLoadLevel ( ) ) ) {
userReportSensitivePO . setLoadLevel ( PubUtil . getDicById ( sensitiveUserExcel . getLoadLevel ( ) , loadLevel ) ) ;
}
if ( StrUtil . isNotBlank ( sensitiveUserExcel . getPowerSupplyInfo ( ) ) ) {
userReportSensitivePO . setPowerSupplyInfo ( PubUtil . getDicById ( sensitiveUserExcel . getPowerSupplyInfo ( ) , supplyCondition ) ) ;
}
userReportSensitivePO . setState ( DataStateEnum . ENABLE . getCode ( ) ) ;
userReportSensitivePOService . save ( userReportSensitivePO ) ;
}
}
//判断有没有错误信息
@@ -631,6 +926,20 @@ public class UserReportPOServiceImpl extends ServiceImpl<UserReportPOMapper, Use
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的属性名