@@ -2,9 +2,13 @@ package com.njcn.supervision.service.survey.impl;
import cn.hutool.core.collection.CollectionUtil ;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.date.DateUtil ;
import cn.hutool.core.text.StrPool ;
import cn.hutool.core.util.StrUtil ;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper ;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper ;
import com.baomidou.mybatisplus.core.toolkit.IdWorker ;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page ;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl ;
import com.njcn.bpm.api.BpmProcessFeignClient ;
@@ -14,6 +18,7 @@ import com.njcn.bpm.pojo.dto.BpmProcessInstanceCreateReqDTO;
import com.njcn.bpm.pojo.param.instance.BpmProcessInstanceCancelParam ;
import com.njcn.common.pojo.enums.common.DataStateEnum ;
import com.njcn.common.pojo.exception.BusinessException ;
import com.njcn.common.pojo.response.HttpResult ;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient ;
import com.njcn.device.biz.pojo.dto.SubGetBase ;
import com.njcn.device.biz.pojo.param.SubstationParam ;
@@ -21,15 +26,20 @@ import com.njcn.device.pq.api.LineFeignClient;
import com.njcn.device.pq.pojo.po.Line ;
import com.njcn.device.pq.pojo.vo.LineDetailDataVO ;
import com.njcn.supervision.enums.FlowStatusEnum ;
import com.njcn.supervision.enums.LeafletTypeEnum ;
import com.njcn.supervision.enums.ProblemTypeEnum ;
import com.njcn.supervision.mapper.survey.SupervisionGeneralSurveyPlanPOMapper ;
import com.njcn.supervision.pojo.param.survey.SupervisionGeneralSurveyPlanParm ;
import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanDetailPO ;
import com.njcn.supervision.pojo.po.survey.SupervisionGeneralSurveyPlanPO ;
import com.njcn.supervision.pojo.vo.survey.DeptSubstationVO ;
import com.njcn.supervision.pojo.vo.survey.SupervisionGeneralSurveyPlanDetailVO ;
import com.njcn.supervision.pojo.vo.survey.SupervisionGeneralSurveyPlanVO ;
import com.njcn.supervision.service.leaflet.IWarningLeafletService ;
import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanDetailPOService ;
import com.njcn.supervision.service.survey.SupervisionGeneralSurveyPlanPOService ;
import com.njcn.user.api.DeptFeignClient ;
import com.njcn.user.api.UserFeignClient ;
import com.njcn.user.pojo.vo.PvTerminalTreeVO ;
import com.njcn.web.factory.PageFactory ;
import com.njcn.web.utils.RequestUtil ;
@@ -52,7 +62,7 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl < SupervisionGeneralSurveyPlanPOMapper , SupervisionGeneralSurveyPlanPO > implements SupervisionGeneralSurveyPlanPOService {
public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl < SupervisionGeneralSurveyPlanPOMapper , SupervisionGeneralSurveyPlanPO > implements SupervisionGeneralSurveyPlanPOService {
/**
* 用户信息建档对应的流程定义 KEY todo 修改成普测的key
*/
@@ -63,6 +73,8 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
private final BpmProcessFeignClient bpmProcessFeignClient ;
private final DeptFeignClient deptFeignClient ;
private final LineFeignClient lineFeignClient ;
private final UserFeignClient userFeignClient ;
private final IWarningLeafletService warningLeafletService ;
@Override
@Transactional ( rollbackFor = Exception . class )
@@ -78,7 +90,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
this . save ( supervisionGeneralSurveyPlanPO ) ;
String planNo = supervisionGeneralSurveyPlanPO . getPlanNo ( ) ;
//保存普测计划电站表
if ( CollectionUtil . isNotEmpty ( supervisionGeneralSurveyPlanParm . getSubIds ( ) ) ) {
if ( CollectionUtil . isNotEmpty ( supervisionGeneralSurveyPlanParm . getSubIds ( ) ) ) {
SubstationParam param = new SubstationParam ( ) ;
param . setPowerIds ( supervisionGeneralSurveyPlanParm . getSubIds ( ) ) ;
List < SubGetBase > stationList = commTerminalGeneralClient . tagOrIdGetSub ( param ) . getData ( ) ;
@@ -91,11 +103,11 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
supervisionGeneralSurveyPlanDetailPO . setSubName ( stat . getName ( ) ) ;
/*目前时间与计划开始时间,结束时间一致*/
supervisionGeneralSurveyPlanDetailPO . setVoltageLevel ( stat . getVoltageLevel ( ) ) ;
List < Line > lines = lineFeignClient . getSubIndexLineDetail ( stat . getId ( ) ) . getData ( ) ;
if ( CollectionUtil . isEmpty ( lines ) ) {
List < Line > lines = lineFeignClient . getSubIndexLineDetail ( stat . getId ( ) ) . getData ( ) ;
if ( CollectionUtil . isEmpty ( lines ) ) {
supervisionGeneralSurveyPlanDetailPO . setMeasurementPointId ( " " ) ;
supervisionGeneralSurveyPlanDetailPO . setIsSurvey ( 0 ) ;
} else {
} else {
String subList = lines . stream ( ) . map ( Line : : getName ) . collect ( Collectors . joining ( " , " ) ) ;
supervisionGeneralSurveyPlanDetailPO . setMeasurementPointId ( subList ) ;
supervisionGeneralSurveyPlanDetailPO . setIsSurvey ( 1 ) ;
@@ -111,19 +123,17 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
bpmProcessInstanceCreateReqDTO . setBusinessKey ( planNo ) ;
bpmProcessInstanceCreateReqDTO . setStartUserSelectAssignees ( supervisionGeneralSurveyPlanParm . getStartUserSelectAssignees ( ) ) ;
bpmProcessInstanceCreateReqDTO . setVariables ( processInstanceVariables ) ;
String processInstanceId = bpmProcessFeignClient . createProcessInstance ( supervisionGeneralSurveyPlanPO . getCreateBy ( ) , bpmProcessInstanceCreateReqDTO ) . getData ( ) ;
String processInstanceId = bpmProcessFeignClient . createProcessInstance ( supervisionGeneralSurveyPlanPO . getCreateBy ( ) , bpmProcessInstanceCreateReqDTO ) . getData ( ) ;
// 将工作流的编号,更新到流程单中
supervisionGeneralSurveyPlanPO . setProcessInstanceId ( processInstanceId ) ;
this . baseMapper . updateById ( supervisionGeneralSurveyPlanPO ) ;
return planNo ;
} {
}
{
throw new BusinessException ( " 请选择电站 " ) ;
}
}
@Override
@@ -149,10 +159,10 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
/*目前时间与计划开始时间,结束时间一致*/
supervisionGeneralSurveyPlanDetailPO . setVoltageLevel ( stat . getVoltageLevel ( ) ) ;
List < String > unitChildrenList = stat . getUnitChildrenList ( ) ;
if ( CollectionUtil . isEmpty ( unitChildrenList ) ) {
if ( CollectionUtil . isEmpty ( unitChildrenList ) ) {
supervisionGeneralSurveyPlanDetailPO . setMeasurementPointId ( " " ) ;
supervisionGeneralSurveyPlanDetailPO . setIsSurvey ( 0 ) ;
} else {
} else {
List < LineDetailDataVO > data = lineFeignClient . getLineDetailList ( unitChildrenList ) . getData ( ) ;
String subList = data . stream ( ) . map ( LineDetailDataVO : : getLineName ) . collect ( Collectors . joining ( " , " ) ) ;
@@ -163,7 +173,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
supervisionGeneralSurveyPlanDetailPOS . add ( supervisionGeneralSurveyPlanDetailPO ) ;
}
//清除原有的
supervisionGeneralSurveyPlanDetailPOService . remove ( new QueryWrapper < SupervisionGeneralSurveyPlanDetailPO > ( ) . lambda ( ) . eq ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , planNo ) ) ;
supervisionGeneralSurveyPlanDetailPOService . remove ( new QueryWrapper < SupervisionGeneralSurveyPlanDetailPO > ( ) . lambda ( ) . eq ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , planNo ) ) ;
supervisionGeneralSurveyPlanDetailPOService . saveOrUpdateBatchByMultiId ( supervisionGeneralSurveyPlanDetailPOS , 500 ) ;
// 发起 BPM 流程
Map < String , Object > processInstanceVariables = new HashMap < > ( ) ;
@@ -172,7 +182,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
bpmProcessInstanceCreateReqDTO . setBusinessKey ( planNo ) ;
bpmProcessInstanceCreateReqDTO . setStartUserSelectAssignees ( supervisionGeneralSurveyPlanUpdate . getStartUserSelectAssignees ( ) ) ;
bpmProcessInstanceCreateReqDTO . setVariables ( processInstanceVariables ) ;
String processInstanceId = bpmProcessFeignClient . createProcessInstance ( RequestUtil . getUserIndex ( ) , bpmProcessInstanceCreateReqDTO ) . getData ( ) ;
String processInstanceId = bpmProcessFeignClient . createProcessInstance ( RequestUtil . getUserIndex ( ) , bpmProcessInstanceCreateReqDTO ) . getData ( ) ;
// 将工作流的编号,更新到流程单中
byId . setProcessInstanceId ( processInstanceId ) ;
this . baseMapper . updateById ( byId ) ;
@@ -185,7 +195,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
public Boolean removeSurvey ( List < String > ids ) {
this . lambdaUpdate ( ) . set ( SupervisionGeneralSurveyPlanPO : : getState , 0 ) . in ( SupervisionGeneralSurveyPlanPO : : getPlanNo , ids ) . update ( ) ;
supervisionGeneralSurveyPlanDetailPOService . remove ( new QueryWrapper < SupervisionGeneralSurveyPlanDetailPO > ( ) .
lambda ( ) . in ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , ids ) ) ;
lambda ( ) . in ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , ids ) ) ;
return true ;
}
@@ -212,7 +222,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
queryWrapper . orderByDesc ( " supervision_general_survey_plan.create_time " ) ;
Page < SupervisionGeneralSurveyPlanVO > page = this . baseMapper . page ( new Page < > ( PageFactory . getPageNum ( generalSurveyPlanQueryParam ) , PageFactory . getPageSize ( generalSurveyPlanQueryParam ) ) , queryWrapper ) ;
page . getRecords ( ) . stream ( ) . forEach ( temp - > {
page . getRecords ( ) . stream ( ) . forEach ( temp - > {
temp . setOrgName ( ( deptFeignClient . getDeptById ( temp . getOrgNo ( ) ) . getData ( ) . getName ( ) ) ) ;
//获取普测下电站详情
List < SupervisionGeneralSurveyPlanDetailPO > list = supervisionGeneralSurveyPlanDetailPOService . lambdaQuery ( ) . eq ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , temp . getPlanNo ( ) ) . list ( ) ;
@@ -224,11 +234,31 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
}
@Override
public Page < SupervisionGeneralSurveyPlanDetailVO > pageProblemSubstationBySurvey ( SupervisionGeneralSurveyPlanParm . GeneralSurveyPlanQueryParam generalSurveyPlanQueryParam ) {
QueryWrapper < SupervisionGeneralSurveyPlanDetailVO > supervisionGeneralSurveyPlanDetailVOQueryWrapper = new QueryWrapper < > ( ) ;
if ( Objects . nonNull ( generalSurveyPlanQueryParam ) ) {
//添加上时间范围
supervisionGeneralSurveyPlanDetailVOQueryWrapper . between ( " supervision_general_survey_plan_detail.Create_Time " ,
DateUtil . beginOfDay ( DateUtil . parse ( generalSurveyPlanQueryParam . getSearchBeginTime ( ) ) ) ,
DateUtil . endOfDay ( DateUtil . parse ( generalSurveyPlanQueryParam . getSearchEndTime ( ) ) ) ) ;
}
//获取当前用户部门所有同事的id, 查看该部门下所有的数据
List < String > colleaguesIds = userFeignClient . getColleaguesIdByUserId ( RequestUtil . getUserIndex ( ) ) . getData ( ) ;
supervisionGeneralSurveyPlanDetailVOQueryWrapper . in ( " supervision_general_survey_plan_detail.Create_By " , colleaguesIds )
. eq ( " supervision_general_survey_plan.status " , BpmProcessInstanceStatusEnum . APPROVE . getStatus ( ) )
. orderByDesc ( " supervision_general_survey_plan_detail.Update_Time " ) ;
Page < SupervisionGeneralSurveyPlanDetailVO > page = this . baseMapper . pageProblemSubstationBySurvey ( new Page < > ( PageFactory . getPageNum ( generalSurveyPlanQueryParam ) , PageFactory . getPageSize ( generalSurveyPlanQueryParam ) ) , supervisionGeneralSurveyPlanDetailVOQueryWrapper ) ;
//填充部门名称
page . getRecords ( ) . forEach ( temp - > temp . setOrgName ( ( deptFeignClient . getDeptById ( temp . getOrgNo ( ) ) . getData ( ) . getName ( ) ) ) ) ;
return page ;
}
@Override
public SupervisionGeneralSurveyPlanVO querySurveyDetail ( String id ) {
SupervisionGeneralSurveyPlanVO supervisionGeneralSurveyPlanVO = new SupervisionGeneralSurveyPlanVO ( ) ;
SupervisionGeneralSurveyPlanPO byId = this . getById ( id ) ;
BeanUtils . copyProperties ( byId , supervisionGeneralSurveyPlanVO ) ;
BeanUtils . copyProperties ( byId , supervisionGeneralSurveyPlanVO ) ;
//获取普测下电站详情
List < SupervisionGeneralSurveyPlanDetailPO > list = supervisionGeneralSurveyPlanDetailPOService . lambdaQuery ( ) . eq ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , id ) . list ( ) ;
supervisionGeneralSurveyPlanVO . setSupervisionGeneralSurveyPlanDetailPOS ( list ) ;
@@ -282,7 +312,7 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
@Override
public void updateStatus ( String businessKey , Integer status ) {
this . lambdaUpdate ( ) . set ( SupervisionGeneralSurveyPlanPO : : getStatus , status ) . eq ( SupervisionGeneralSurveyPlanPO : : getPlanNo , businessKey ) . update ( ) ;
this . lambdaUpdate ( ) . set ( SupervisionGeneralSurveyPlanPO : : getStatus , status ) . eq ( SupervisionGeneralSurveyPlanPO : : getPlanNo , businessKey ) . update ( ) ;
}
@Override
@@ -297,6 +327,36 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
return supervisionGeneralSurveyPlanPO . getPlanNo ( ) ;
}
@Override
public void initiateWarningLeaflet ( String id , String subId ) {
//获取数据源用于组装数据
LambdaQueryWrapper < SupervisionGeneralSurveyPlanDetailPO > detailPOLambdaQueryWrapper = new LambdaQueryWrapper < > ( ) ;
detailPOLambdaQueryWrapper . eq ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , id )
. eq ( SupervisionGeneralSurveyPlanDetailPO : : getSubId , subId ) ;
SupervisionGeneralSurveyPlanDetailPO detailPlan = supervisionGeneralSurveyPlanDetailPOService . getOne ( detailPOLambdaQueryWrapper ) ;
SupervisionGeneralSurveyPlanPO generalSurveyPlan = this . getById ( id ) ;
/*
* 1、预告警单名称, 此处暂时用普测计划名称+变电站名称组成预告警单名
* 2、预告警编号暂时随机by yxb
* 3、问题类型: 1: 技术监督管理; 2: 在线监测超标问题; 3: 用户投诉; 4: 现场测试超标, 此处是现场测试超标
* 4、对应问题源id, 用于查询详细数据
* 5、单子类型: 1: 预警单; 2: 告警单
* */
warningLeafletService . createLeaflet (
generalSurveyPlan . getPlanName ( ) . concat ( StrPool . UNDERLINE ) . concat ( detailPlan . getSubName ( ) ) ,
IdWorker . get32UUID ( ) ,
id ,
ProblemTypeEnum . SITE_TEST . getCode ( ) ,
LeafletTypeEnum . ALARM . getCode ( )
) ;
//将当前的问题记录是否告警修改为已告警
LambdaUpdateWrapper < SupervisionGeneralSurveyPlanDetailPO > detailPOLambdaUpdateWrapper = new LambdaUpdateWrapper < > ( ) ;
detailPOLambdaUpdateWrapper . set ( SupervisionGeneralSurveyPlanDetailPO : : getInitiateWarningFlag , 1 )
. eq ( SupervisionGeneralSurveyPlanDetailPO : : getPlanNo , id )
. eq ( SupervisionGeneralSurveyPlanDetailPO : : getSubId , subId ) ;
supervisionGeneralSurveyPlanDetailPOService . update ( detailPOLambdaUpdateWrapper ) ;
}
public List < DeptSubstationVO > recursion ( DeptSubstationVO result , String orgdid ) {
List < DeptSubstationVO > deptSubstationVOList = new ArrayList < > ( ) ;
@@ -318,13 +378,13 @@ public class SupervisionGeneralSurveyPlanPOServiceImpl extends ServiceImpl<Super
}
/**
* @Description: 校验计划名称是否存在
* @Param: * @param userReportParam 用户申请数据
* * @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己
* @return: void
* @Author: clam
* @Date: 2024/5/13
*/
* @Description: 校验计划名称是否存在
* @Param: * @param userReportParam 用户申请数据
* * @param isExcludeSelf 是否排除自己,一般新增不排除,更新时需要排除自己
* @return: void
* @Author: clam
* @Date: 2024/5/13
*/
private void checkPlanName ( SupervisionGeneralSurveyPlanParm supervisionGeneralSurveyPlanParm , boolean isExcludeSelf ) {
LambdaQueryWrapper < SupervisionGeneralSurveyPlanPO > userReportPOLambdaQueryWrapper = new LambdaQueryWrapper < > ( ) ;
userReportPOLambdaQueryWrapper