@ -133,7 +133,7 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
}
// 设置 redis key, 防止多次操作
redisTemplate . opsForValue ( ) . set ( operationRedisKey , true ) ;
messageDto . setMessage ( " 桩点、立柱、支架数据上传完毕,等待 中 " ) ;
messageDto . setMessage ( " 桩点、立柱、支架数据上传完毕,数据处理 中 " ) ;
SseMessageUtils . publishMessage ( messageDto ) ;
scheduledExecutorService . execute ( ( ) - > {
try {
@ -168,12 +168,40 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
* @param userId 操作用户id
*/
private void saveBatch ( Long projectId , List < FacFeatureByPoint > features , Long userId ) {
// 获取进度类别 Map
List < String > progressCategoryNameList = List . of (
FacPhotovoltaicPanelPartsConstant . POINT ,
FacPhotovoltaicPanelPartsConstant . COLUMN ,
FacPhotovoltaicPanelPartsConstant . SUPPORT
) ;
List < PgsProgressCategory > progressCategoryList = progressCategoryService . lambdaQuery ( )
. select ( PgsProgressCategory : : getId , PgsProgressCategory : : getName , PgsProgressCategory : : getMatrixId )
. in ( PgsProgressCategory : : getName , progressCategoryNameList )
. in ( PgsProgressCategory : : getProjectId , projectId , PgsProgressCategoryConstant . PUBLIC_PROJECT_ID )
. list ( ) ;
Map < String , List < PgsProgressCategory > > progressCategoryMap = progressCategoryList . stream ( )
. collect ( Collectors . groupingBy (
progressCategory - > progressCategory . getMatrixId ( ) + " _ " + progressCategory . getName ( )
) ) ;
// 查询项目下光伏板
List < FacPhotovoltaicPanel > photovoltaicPanelList = photovoltaicPanelService . lambdaQuery ( )
. eq ( FacPhotovoltaicPanel : : getProjectId , projectId ) . list ( ) ;
. eq ( FacPhotovoltaicPanel : : getProjectId , projectId )
. list ( ) ;
Map < String , FacPhotovoltaicPanel > photovoltaicPanelMap = photovoltaicPanelList . stream ( )
. collect ( Collectors . toMap (
FacPhotovoltaicPanel : : getName ,
Function . identity ( ) ,
( existing , replacement ) - > existing // 如果有重复,保留第一个
) ) ;
// 获取数据库中所有点的列表
List < FacPhotovoltaicPanelPoint > oldPointList = photovoltaicPanelPointService . lambdaQuery ( )
. eq ( FacPhotovoltaicPanelPoint : : getProjectId , projectId ) . list ( ) ;
. select ( FacPhotovoltaicPanelPoint : : getId ,
FacPhotovoltaicPanelPoint : : getName ,
FacPhotovoltaicPanelPoint : : getFinishType ,
FacPhotovoltaicPanelPoint : : getFinishDate ,
FacPhotovoltaicPanelPoint : : getStatus )
. eq ( FacPhotovoltaicPanelPoint : : getProjectId , projectId )
. list ( ) ;
Map < String , FacPhotovoltaicPanelPoint > oldPointMap = oldPointList . stream ( )
. collect ( Collectors . toMap (
FacPhotovoltaicPanelPoint : : getName ,
@ -181,7 +209,13 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
( existing , replacement ) - > existing // 如果有重复,保留第一个
) ) ;
List < FacPhotovoltaicPanelColumn > oldColumnList = photovoltaicPanelColumnService . lambdaQuery ( )
. eq ( FacPhotovoltaicPanelColumn : : getProjectId , projectId ) . list ( ) ;
. select ( FacPhotovoltaicPanelColumn : : getId ,
FacPhotovoltaicPanelColumn : : getName ,
FacPhotovoltaicPanelColumn : : getFinishType ,
FacPhotovoltaicPanelColumn : : getFinishDate ,
FacPhotovoltaicPanelColumn : : getStatus )
. eq ( FacPhotovoltaicPanelColumn : : getProjectId , projectId )
. list ( ) ;
Map < String , FacPhotovoltaicPanelColumn > oldColumnMap = oldColumnList . stream ( )
. collect ( Collectors . toMap (
FacPhotovoltaicPanelColumn : : getName ,
@ -189,108 +223,119 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
( existing , replacement ) - > existing // 如果有重复,保留第一个
) ) ;
List < FacPhotovoltaicPanelSupport > oldSupportList = photovoltaicPanelSupportService . lambdaQuery ( )
. eq ( FacPhotovoltaicPanelSupport : : getProjectId , projectId ) . list ( ) ;
. select ( FacPhotovoltaicPanelSupport : : getId ,
FacPhotovoltaicPanelSupport : : getName ,
FacPhotovoltaicPanelSupport : : getFinishType ,
FacPhotovoltaicPanelSupport : : getFinishDate ,
FacPhotovoltaicPanelSupport : : getStatus )
. eq ( FacPhotovoltaicPanelSupport : : getProjectId , projectId )
. list ( ) ;
Map < String , FacPhotovoltaicPanelSupport > oldSupportMap = oldSupportList . stream ( )
. collect ( Collectors . toMap (
FacPhotovoltaicPanelSupport : : getName ,
Function . identity ( ) ,
( existing , replacement ) - > existing // 如果有重复,保留第一个
) ) ;
// 获取所有点列表
List < List < Double > > pointPosition List = new ArrayList < >
( features . stream ( ) . map ( featureByPoin t - > featureByPoint . getGeometry ( ) . getCoordinates ( ) ) . toList ( ) ) ;
List < FacPhotovoltaicPanelPoin t > poin tList = new ArrayList < > ( ) ;
List < FacPhotovoltaicPanelColumn > columnList = new ArrayList < > ( ) ;
List < FacPhotovoltaicPanelSupport > supportList = new ArrayList < > ( ) ;
// 获取进度类别
List < String > progressCategoryNameLis t = List . of ( FacPhotovoltaicPanelPartsConstant . POINT ,
FacPhotovoltaicPanelPartsConstant . COLUMN ,
FacPhotovoltaicPanelPartsConstant . SUPPORT ) ;
Map < String , PgsProgressCategory > progressCategoryMap = progressCategoryService . lambdaQuery ( )
. in ( PgsProgressCategory : : getName , progressCategoryName List)
. in ( PgsProgressCategory : : getProjectId , projectId , PgsProgressCategoryConstant . PUBLIC_PROJECT_ID )
. list ( )
. stream ( ) . collect ( Coll ectors . toMap (
PgsProgressCategory : : getName ,
Function . identity ( ) ,
( existing , replacement ) - > existing
) ) ;
// 遍历所有光伏板,找到所有匹配的点
for ( FacPhotovoltaicPanel photovoltaicPanel : photovoltaicP anel List ) {
String positions = photovoltaicPanel . getPositions ( ) ;
List < List < Double > > positionList = new ArrayList < > ( ) ;
List < String > arr = JSONUtil . toList ( positions , String . class ) ;
for ( String s : arr ) {
positionList . add ( JSONUtil . toList ( s , Double . class ) ) ;
// 线程安全集合
List < FacPhotovoltaicPanelPoint > pointList = Collections . synchronizedList ( new ArrayList < > ( ) ) ;
List < FacPhotovoltaicPanelColumn > columnLis t = Collections . synchronizedList ( new ArrayList < > ( ) ) ;
List < FacPhotovoltaicPanelSuppor t > suppor tList = Collections . synchronizedList ( new ArrayList < > ( ) ) ;
try ( ExecutorService executor = Executors . newFixedThreadPool ( Runtime . getRuntime ( ) . availableProcessors ( ) ) ) {
// 所有点列表
List < List < Double > > pointPositionList = new ArrayList < > ( features . stream ( )
. map ( featureByPoin t - > featureByPoint . getGeometry ( ) . getCoordinates ( ) )
. toList ( ) ) ;
// 多线程处理
List < Future < ? > > futures = new ArrayList < > ( ) ;
List < List < Double > > sharedPointList = Collections . synchronizedList ( pointPosition List) ;
for ( Map . Entry < String , FacPhotovoltaicPanel > entry : photovoltaicPanelMap . entrySet ( ) ) {
FacPhotovoltaicPanel photovoltaicPanel = entry . getValue ( ) ;
Future < ? > future = ex ecu tor . submit ( ( ) - > {
List < List < Double > > positionList = JSONUtil . toList ( photovoltaicPanel . getPositions ( ) , String . class )
. stream ( ) . map ( s - > JSONUtil . toList ( s , Double . class ) ) . collect ( Collectors . toList ( ) ) ;
List < List < Double > > pointInPlaneList = JSTUtil . getPointInPlaneList ( positionList , sharedPointList ) ;
if ( CollUtil . isNotEmpty ( pointInPlaneList ) ) {
int i = 1 ;
for ( List < Double > list : pointInPl aneList ) {
String str = String . format ( " %02d " , i + + ) ;
String name = photovoltaicPanel . getName ( ) + " . " + str ;
Long matrixId = photovoltaicPanel . getMatrixId ( ) ;
String jsonStr = JSONUtil . toJsonStr ( list ) ;
// 创建 Point
FacPhotovoltaicPanelPoint point = new FacPhotovoltaicPanelPoint ( ) ;
point . setProjectId ( projectId ) ;
point . setMatrixId ( matrixId ) ;
point . setName ( name ) ;
point . setPositions ( jsonStr ) ;
point . setCreateBy ( userId ) ;
point . setUpdateBy ( userId ) ;
if ( oldPointMap . containsKey ( name ) ) {
FacPhotovoltaicPanelPoint oldPoint = oldPointMap . get ( name ) ;
point . setFinishType ( oldPoint . getFinishType ( ) ) ;
point . setFinishDate ( oldPoint . getFinishDate ( ) ) ;
point . setStatus ( oldPoint . getStatus ( ) ) ;
}
String pointMapKey = matrixId + " _ " + FacPhotovoltaicPanelPartsConstant . POINT ;
if ( progressCategoryMap . containsKey ( pointMapKey ) ) {
PgsProgressCategory cat = progressCategoryMap . get ( pointMapKey ) . getFirst ( ) ;
point . setProgressCategoryId ( cat . getId ( ) ) ;
point . setProgressCategoryName ( cat . getName ( ) ) ;
}
pointList . add ( point ) ;
// 创建 Column
FacPhotovoltaicPanelColumn column = new FacPhotovoltaicPanelColumn ( ) ;
column . setProjectId ( projectId ) ;
column . setMatrixId ( matrixId ) ;
column . setName ( name ) ;
column . setPositions ( jsonStr ) ;
column . setCreateBy ( userId ) ;
column . setUpdateBy ( userId ) ;
if ( oldColumnMap . containsKey ( name ) ) {
FacPhotovoltaicPanelColumn oldColumn = oldColumnMap . get ( name ) ;
column . setFinishType ( oldColumn . getFinishType ( ) ) ;
column . setFinishDate ( oldColumn . getFinishDate ( ) ) ;
column . setStatus ( oldColumn . getStatus ( ) ) ;
}
String columnMapKey = matrixId + " _ " + FacPhotovoltaicPanelPartsConstant . COLUMN ;
if ( progressCategoryMap . containsKey ( columnMapKey ) ) {
PgsProgressCategory cat = progressCategoryMap . get ( columnMapKey ) . getFirst ( ) ;
column . setProgressCategoryId ( cat . getId ( ) ) ;
column . setProgressCategoryName ( cat . getName ( ) ) ;
}
columnList . add ( column ) ;
// 创建 Support
FacPhotovoltaicPanelSupport support = new FacPhotovoltaicPanelSupport ( ) ;
support . setProjectId ( projectId ) ;
support . setMatrixId ( matrixId ) ;
support . setName ( name ) ;
support . setPositions ( jsonStr ) ;
support . setCreateBy ( userId ) ;
support . setUpdateBy ( userId ) ;
if ( oldSupportMap . containsKey ( name ) ) {
FacPhotovoltaicPanelSupport oldSupport = oldSupportMap . get ( name ) ;
support . setFinishType ( oldSupport . getFinishType ( ) ) ;
support . setFinishDate ( oldSupport . getFinishDate ( ) ) ;
support . setStatus ( oldSupport . getStatus ( ) ) ;
}
String supportMapKey = matrixId + " _ " + FacPhotovoltaicPanelPartsConstant . SUPPORT ;
if ( progressCategoryMap . containsKey ( supportMapKey ) ) {
PgsProgressCategory cat = progressCategoryMap . get ( supportMapKey ) . getFirst ( ) ;
support . setProgressCategoryId ( cat . getId ( ) ) ;
support . setProgressCategoryName ( cat . getName ( ) ) ;
}
supportList . add ( support ) ;
}
}
} ) ;
futures . add ( future ) ;
}
// 获取点在面内的点
List < List < Double > > pointInPlaneList = JSTUtil . getPointInPlaneList ( positionList , pointPositionList ) ;
// 删除点在面内的点
pointPositionList . removeAll ( pointInPlaneList ) ;
// 判断点在面内的点是否为空
if ( CollUtil . isNotEmpty ( pointInPlaneList ) ) {
int i = 1 ;
// 遍历点在面内的点,添加实体信息
for ( List < Double > list : pointInPlaneList ) {
String str = String . format ( " %02d " , i ) ;
String name = photovoltaicPanel . getName ( ) + " . " + str ;
Long matrixId = photovoltaicPanel . getMatrixId ( ) ;
String jsonStr = JSONUtil . toJsonStr ( list ) ;
FacPhotovoltaicPanelPoint photovoltaicPanelPoint = new FacPhotovoltaicPanelPoint ( ) ;
photovoltaicPanelPoint . setProjectId ( projectId ) ;
photovoltaicPanelPoint . setMatrixId ( matrixId ) ;
photovoltaicPanelPoint . setName ( name ) ;
photovoltaicPanelPoint . setPositions ( jsonStr ) ;
photovoltaicPanelPoint . setCreateBy ( userId ) ;
photovoltaicPanelPoint . setUpdateBy ( userId ) ;
if ( CollUtil . isNotEmpty ( oldPointMap ) & & oldPointMap . containsKey ( name ) ) {
FacPhotovoltaicPanelPoint oldPoint = oldPointMap . get ( name ) ;
photovoltaicPanelPoint . setFinishType ( oldPoint . getFinishType ( ) ) ;
photovoltaicPanelPoint . setStatus ( oldPoint . getStatus ( ) ) ;
}
if ( CollUtil . isNotEmpty ( progressCategoryMap ) & & progressCategoryMap . containsKey ( FacPhotovoltaicPanelPartsConstant . POINT ) ) {
PgsProgressCategory progressCategory = progressCategoryMap . get ( FacPhotovoltaicPanelPartsConstant . POINT ) ;
photovoltaicPanelPoint . setProgressCategoryId ( progressCategory . getId ( ) ) ;
photovoltaicPanelPoint . setProgressCategoryName ( progressCategory . getName ( ) ) ;
}
pointList . add ( photovoltaicPanelPoint ) ;
FacPhotovoltaicPanelColumn photovoltaicPanelColumn = new FacPhotovoltaicPanelColumn ( ) ;
photovoltaicPanelColumn . setProjectId ( projectId ) ;
photovoltaicPanelColumn . setMatrixId ( matrixId ) ;
photovoltaicPanelColumn . setName ( name ) ;
photovoltaicPanelColumn . setPositions ( jsonStr ) ;
photovoltaicPanelColumn . setCreateBy ( userId ) ;
photovoltaicPanelColumn . setUpdateBy ( userId ) ;
if ( CollUtil . isNotEmpty ( oldColumnMap ) & & oldColumnMap . containsKey ( name ) ) {
FacPhotovoltaicPanelColumn oldColumn = oldColumnMap . get ( name ) ;
photovoltaicPanelColumn . setFinishType ( oldColumn . getFinishType ( ) ) ;
photovoltaicPanelColumn . setStatus ( oldColumn . getStatus ( ) ) ;
}
if ( CollUtil . isNotEmpty ( progressCategoryMap ) & & progressCategoryMap . containsKey ( FacPhotovoltaicPanelPartsConstant . COLUMN ) ) {
PgsProgressCategory progressCategory = progressCategoryMap . get ( FacPhotovoltaicPanelPartsConstant . COLUMN ) ;
photovoltaicPanelColumn . setProgressCategoryId ( progressCategory . getId ( ) ) ;
photovoltaicPanelColumn . setProgressCategoryName ( progressCategory . getName ( ) ) ;
}
columnList . add ( photovoltaicPanelColumn ) ;
FacPhotovoltaicPanelSupport photovoltaicPanelSupport = new FacPhotovoltaicPanelSupport ( ) ;
photovoltaicPanelSupport . setProjectId ( projectId ) ;
photovoltaicPanelSupport . setMatrixId ( matrixId ) ;
photovoltaicPanelSupport . setName ( name ) ;
photovoltaicPanelSupport . setPositions ( jsonStr ) ;
photovoltaicPanelSupport . setCreateBy ( userId ) ;
photovoltaicPanelSupport . setUpdateBy ( userId ) ;
if ( CollUtil . isNotEmpty ( oldSupportMap ) & & oldSupportMap . containsKey ( name ) ) {
FacPhotovoltaicPanelSupport oldSupport = oldSupportMap . get ( name ) ;
photovoltaicPanelSupport . setFinishType ( oldSupport . getFinishType ( ) ) ;
photovoltaicPanelSupport . setStatus ( oldSupport . getStatus ( ) ) ;
}
if ( CollUtil . isNotEmpty ( progressCategoryMap ) & & progressCategoryMap . containsKey ( FacPhotovoltaicPanelPartsConstant . SUPPORT ) ) {
PgsProgressCategory progressCategory = progressCategoryMap . get ( FacPhotovoltaicPanelPartsConstant . SUPPORT ) ;
photovoltaicPanelSupport . setProgressCategoryId ( progressCategory . getId ( ) ) ;
photovoltaicPanelSupport . setProgressCategoryName ( progressCategory . getName ( ) ) ;
}
supportList . add ( photovoltaicPanelSupport ) ;
i + + ;
// 等待所有线程完成
for ( Future < ? > future : futures ) {
try {
future . get ( ) ;
} catch ( Exception e ) {
log . error ( " 多线程进行光伏板点位与面匹配异常 " , e ) ;
throw new ServiceException ( " 进行光伏板点位与面匹配异常 " , HttpStatus . ERROR ) ;
}
}
}
@ -550,6 +595,7 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
/**
* 更新光伏板点完成状态
*
* @param workType 类型
* @param finishDate 完成时间
* @param projectId 项目id
* @param matrixId 方阵id
@ -558,69 +604,90 @@ public class FacPhotovoltaicPanelPartsServiceImpl implements IFacPhotovoltaicPan
*/
@Override
@Transactional ( rollbackFor = Exception . class )
public Boolean updatePartsFinishStatus ( Date finishDate , Long projectId , Long matrixId , List < String > photovoltaicPanelNameList ) {
public Boolean updatePartsFinishStatus ( String workType , Date finishDate , Long projectId , Long matrixId , List < String > photovoltaicPanelNameList ) {
if ( CollUtil . isEmpty ( photovoltaicPanelNameList ) ) {
return true ;
}
LambdaUpdateWrapper < FacPhotovoltaicPanelPoint > pointWrapper = new LambdaUpdateWrapper < > ( ) ;
pointWrapper . eq ( FacPhotovoltaicPanelPoint : : getProjectId , projectId ) ;
pointWrapper . eq ( FacPhotovoltaicPanelPoint : : getMatrixId , matrixId ) ;
pointWrapper . and ( query - > {
for ( int i = 0 ; i < photovoltaicPanelNameList . size ( ) ; i + + ) {
String prefix = photovoltaicPanelNameList . get ( i ) + " . " ;
if ( i = = 0 ) {
query . likeRight ( FacPhotovoltaicPanelPoint : : getName , prefix ) ;
} else {
query. or ( ) . likeRight ( FacPhotovoltaicPanelPoint : : getName , prefix ) ;
switch ( workType ) {
case PgsProgressCategoryConstant . PHOTOVOLTAIC_PANEL_POINT_WORK_TYPE - > {
LambdaUpdateWrapper < FacPhotovoltaicPanelPoint > pointWrapper = new LambdaUpdateWrapper < > ( ) ;
pointWrapper . eq ( FacPhotovoltaicPanelPoint : : getProjectId , projectId ) ;
pointWrapper . eq ( FacPhotovoltaicPanelPoint : : getMatrixId , matrixId ) ;
pointWrapper . and ( query - > {
for ( int i = 0 ; i < photovoltaicPanelNameList . size ( ) ; i + + ) {
String prefix = photovoltaicPanelNameList . get ( i ) + " . " ;
if ( i = = 0 ) {
query . likeRight ( FacPhotovoltaicPanelPoint : : getName , prefix ) ;
} else {
query . or ( ) . likeRight ( FacPhotovoltaicPanelPoint : : getName , prefix ) ;
}
}
} ) ;
long count = photovoltaicPanelPointService . count ( pointWrapper ) ;
if ( count < = 0 ) {
throw new ServiceException ( " 光伏板桩点数据不存在,请导入数据后再进行操作` " , HttpStatus . NOT_FOUND ) ;
}
pointWrapper . set ( FacPhotovoltaicPanelPoint : : getFinishDate , finishDate ) ;
pointWrapper . set ( FacPhotovoltaicPanelPoint : : getFinishType , FacFinishTypeEnum . HAND . getValue ( ) ) ;
pointWrapper . set ( FacPhotovoltaicPanelPoint : : getStatus , FacFinishStatusEnum . FINISH . getValue ( ) ) ;
boolean updatePoint = photovoltaicPanelPointService . update ( pointWrapper ) ;
if ( ! updatePoint ) {
throw new ServiceException ( " 桩点信息更新失败 " , HttpStatus . ERROR ) ;
}
}
} ) ;
pointWrapper . set ( FacPhotovoltaicPanelPoint : : getFinishDate , finishDate ) ;
point Wrapper . set ( FacPhotovoltaicPanelPoint : : getFinishType , FacFinishTypeEnum . HAND . getValue ( ) ) ;
point Wrapper . set ( FacPhotovoltaicPanelPoint : : getStatus , FacFinishStatusEnum . FINISH . getValue ( ) ) ;
boolean updatePoint = photovoltaicPanelPointService . update ( pointWrapper ) ;
if ( ! updatePoint ) {
throw new ServiceException ( " 桩点信息更新失败 " , HttpStatus . ERROR ) ;
}
LambdaUpdateWrapper < FacPhotovoltaicPanelColumn > columnWrapper = new LambdaUpdateWrapper < > ( ) ;
columnWrapper . eq ( FacPhotovoltaicPanelColumn : : getProjectId , projectId ) ;
columnWrapp er . eq ( FacPhotovoltaicPanelColumn : : getMatrixId , matrixId ) ;
columnWrapper . and ( query - > {
for ( int i = 0 ; i < photovoltaicPanelNameList . size ( ) ; i + + ) {
String prefix = photovoltaicPanelNameList . get ( i ) + " . " ;
if ( i = = 0 ) {
query . likeRight ( FacPhotovoltaicPanelColumn : : getName , prefix ) ;
} else {
query . or ( ) . likeRight ( FacPhotovoltaicPanelColumn : : getName , prefix ) ;
case PgsProgressCategoryConstant . PHOTOVOLTAIC_PANEL_COLUMN_WORK_TYPE - > {
LambdaUpdateWrapper < FacPhotovoltaicPanelColumn > columnWrapper = new LambdaUpdateWrapper < > ( ) ;
column Wrapper . eq ( FacPhotovoltaicPanelColumn : : getProjectId , projectId ) ;
column Wrapper . eq ( FacPhotovoltaicPanelColumn : : getMatrixId , matrixId ) ;
columnWrapper . and ( query - > {
for ( int i = 0 ; i < photovoltaicPanelNameList . size ( ) ; i + + ) {
String prefix = photovoltaicPanelNameList . get ( i ) + " . " ;
if ( i = = 0 ) {
query . likeRight ( FacPhotovoltaicPanelColumn : : getName , prefix ) ;
} else {
qu ery . or ( ) . likeRight ( FacPhotovoltaicPanelColumn : : getName , prefix ) ;
}
}
} ) ;
long count = photovoltaicPanelColumnService . count ( columnWrapper ) ;
if ( count < = 0 ) {
throw new ServiceException ( " 光伏板立柱数据不存在,请导入数据后再进行操作 " , HttpStatus . NOT_FOUND ) ;
}
columnWrapper . set ( FacPhotovoltaicPanelColumn : : getFinishDate , finishDate ) ;
columnWrapper . set ( FacPhotovoltaicPanelColumn : : getFinishType , FacFinishTypeEnum . HAND . getValue ( ) ) ;
columnWrapper . set ( FacPhotovoltaicPanelColumn : : getStatus , FacFinishStatusEnum . FINISH . getValue ( ) ) ;
boolean updateColumn = photovoltaicPanelColumnService . update ( columnWrapper ) ;
if ( ! updateColumn ) {
throw new ServiceException ( " 立柱信息更新失败 " , HttpStatus . ERROR ) ;
}
}
} ) ;
columnWrapper . set ( FacPhotovoltaicPanelColumn : : getFinishDate , finishDate ) ;
column Wrapper . set ( FacPhotovoltaicPanelColumn : : getFinishType , FacFinishTypeEnum . HAND . getValue ( ) ) ;
column Wrapper . set ( FacPhotovoltaicPanelColumn : : getStatus , FacFinishStatusEnum . FINISH . getValue ( ) ) ;
boolean updateColumn = photovoltaicPanelColumnService . update ( columnWrapper ) ;
if ( ! updateColumn ) {
throw new ServiceException ( " 立柱信息更新失败 " , HttpStatus . ERROR ) ;
}
LambdaUpdateWrapper < FacPhotovoltaicPanelSupport > supportWrapper = new LambdaUpdateWrapper < > ( ) ;
supportWrapper . eq ( FacPhotovoltaicPanelSupport : : getProjectId , projectId ) ;
supportWrapper . eq ( FacPhotovoltaicPanelSupport : : getMatrixId , matrixId ) ;
supportWrapper . and ( query - > {
for ( int i = 0 ; i < photovoltaicPanelNameList . size ( ) ; i + + ) {
String prefix = photovoltaicPanelNameList . get ( i ) + " . " ;
if ( i = = 0 ) {
query . likeRight ( FacPhotovoltaicPanelSupport : : getName , prefix ) ;
} else {
query . or ( ) . likeRight ( FacPhotovoltaicPanelSupport : : getName , prefix ) ;
case PgsProgressCategoryConstant . PHOTOVOLTAIC_PANEL_SUPPORT_WORK_TYPE - > {
LambdaUpdateWrapper < FacPhotovoltaicPanelSupport > supportWrapper = new LambdaUpdateWrapper < > ( ) ;
support Wrapper . eq ( FacPhotovoltaicPanelSupport : : getProjectId , projectId ) ;
support Wrapper . eq ( FacPhotovoltaicPanelSupport : : getMatrixId , matrixId ) ;
supportWrapper . and ( query - > {
for ( int i = 0 ; i < photovoltaicPanelNameList . size ( ) ; i + + ) {
String prefix = photovoltaicPanelNameList . get ( i ) + " . " ;
if ( i = = 0 ) {
query . likeRight ( FacPhotovoltaicPanelSupport : : getName , prefix ) ;
} else {
query . or ( ) . likeRight ( FacPhotovoltaicPanelSupport : : getName , prefix ) ;
}
}
} ) ;
long count = photovoltaicPanelSupportService . count ( supportWrapper ) ;
if ( count < = 0 ) {
throw new ServiceException ( " 光伏板支架数据不存在,请导入数据后再进行操作 " , HttpStatus . NOT_FOUND ) ;
}
supportWrapper . set ( FacPhotovoltaicPanelSupport : : getFinishDate , finishDate ) ;
supportWrapper . set ( FacPhotovoltaicPanelSupport : : getFinishType , FacFinishTypeEnum . HAND . getValue ( ) ) ;
supportWrapper . set ( FacPhotovoltaicPanelSupport : : getStatus , FacFinishStatusEnum . FINISH . getValue ( ) ) ;
boolean updateSupport = photovoltaicPanelSupportService . update ( supportWrapper ) ;
if ( ! updateSupport ) {
throw new ServiceException ( " 支架信息更新失败 " , HttpStatus . ERROR ) ;
}
}
} ) ;
supportWrapper . set ( FacPhotovoltaicPanelSupport : : getFinishDate , finishDate ) ;
supportWrapper . set ( FacPhotovoltaicPanelSupport : : getFinishType , FacFinishTypeEnum . HAND . getValue ( ) ) ;
supportWrapper . set ( FacPhotovoltaicPanelSupport : : getStatus , FacFinishStatusEnum . FINISH . getValue ( ) ) ;
boolean updateSupport = photovoltaicPanelSupportService . update ( supportWrapper ) ;
if ( ! updateSupport ) {
throw new ServiceException ( " 支架信息更新失败 " , HttpStatus . ERROR ) ;
case null , default - > throw new ServiceException ( " 未知设施类型 " , HttpStatus . ERROR ) ;
}
return true ;
}