Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
gf_back
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tianchao
gf_back
Commits
b6eb6ea2
Commit
b6eb6ea2
authored
Sep 15, 2023
by
ZWT
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(能源管理系统): 间开优化定时任务
1.开发间开优化长期间开优化定时任务,完成并网流程绿电消纳优先策略; BREAKING CHANGE: 无 Closes 无 [skip ci]
parent
7a5cd918
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
49 additions
and
25 deletions
+49
-25
C09-base/pps-core-base/src/main/java/pps/core/base/service/BasePriceStrategyCloudServiceImpl.java
.../core/base/service/BasePriceStrategyCloudServiceImpl.java
+10
-2
C11-space/pps-core-space/src/main/java/pps/core/space/service/SpaceOptimizeLongCloudServiceImpl.java
...core/space/service/SpaceOptimizeLongCloudServiceImpl.java
+39
-23
No files found.
C09-base/pps-core-base/src/main/java/pps/core/base/service/BasePriceStrategyCloudServiceImpl.java
View file @
b6eb6ea2
package
pps.core.base.service
;
package
pps.core.base.service
;
import
cn.hutool.core.collection.CollUtil
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
pps.cloud.base.service.IBasePriceStrategyCloudService
;
import
pps.cloud.base.service.IBasePriceStrategyCloudService
;
import
pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput
;
import
pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput
;
...
@@ -13,6 +14,7 @@ import xstartup.base.XContext;
...
@@ -13,6 +14,7 @@ import xstartup.base.XContext;
import
xstartup.base.util.XCopyUtils
;
import
xstartup.base.util.XCopyUtils
;
import
xstartup.data.XListResult
;
import
xstartup.data.XListResult
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -42,6 +44,12 @@ public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyClou
...
@@ -42,6 +44,12 @@ public class BasePriceStrategyCloudServiceImpl implements IBasePriceStrategyClou
.
apply
(
"strategy_id = ( SELECT strategy_id FROM base_power_line WHERE id = {0} ) "
,
input
.
getLineId
())
.
apply
(
"strategy_id = ( SELECT strategy_id FROM base_power_line WHERE id = {0} ) "
,
input
.
getLineId
())
.
orderByAsc
(
BasePriceStrategyDetailEnt:
:
getStartTime
)
.
orderByAsc
(
BasePriceStrategyDetailEnt:
:
getStartTime
)
);
);
return
XListResult
.
success
(
XCopyUtils
.
copyNewList
(
detailList
,
GetBasePriceStrategyDetailOutput
.
class
));
List
<
GetBasePriceStrategyDetailOutput
>
outputs
;
if
(
CollUtil
.
isEmpty
(
detailList
))
{
outputs
=
new
ArrayList
<>(
0
);
}
else
{
outputs
=
XCopyUtils
.
copyNewList
(
detailList
,
GetBasePriceStrategyDetailOutput
.
class
);
}
return
XListResult
.
success
(
outputs
);
}
}
}
}
\ No newline at end of file
C11-space/pps-core-space/src/main/java/pps/core/space/service/SpaceOptimizeLongCloudServiceImpl.java
View file @
b6eb6ea2
...
@@ -11,6 +11,8 @@ import pps.cloud.base.service.IBasePowerLineCloudService;
...
@@ -11,6 +11,8 @@ import pps.cloud.base.service.IBasePowerLineCloudService;
import
pps.cloud.base.service.IBaseWellheadCloudService
;
import
pps.cloud.base.service.IBaseWellheadCloudService
;
import
pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput
;
import
pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantInput
;
import
pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput
;
import
pps.cloud.base.service.data.base_power_line_plant.DynamicQueryBasePowerLinePlantOutput
;
import
pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailInput
;
import
pps.cloud.base.service.data.base_price_strategy_detail.GetBasePriceStrategyDetailOutput
;
import
pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput
;
import
pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadInput
;
import
pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput
;
import
pps.cloud.base.service.data.base_wellhead.DynamicQueryBaseWellheadOutput
;
import
pps.cloud.prediction.service.IPlantPredictedPowerCloudService
;
import
pps.cloud.prediction.service.IPlantPredictedPowerCloudService
;
...
@@ -23,6 +25,7 @@ import pps.core.common.utils.BaseUtils;
...
@@ -23,6 +25,7 @@ import pps.core.common.utils.BaseUtils;
import
pps.core.space.entity.*
;
import
pps.core.space.entity.*
;
import
pps.core.space.enums.BusinessError
;
import
pps.core.space.enums.BusinessError
;
import
pps.core.space.mapper.*
;
import
pps.core.space.mapper.*
;
import
pps.core.space.utils.ServiceUtil
;
import
xstartup.annotation.XService
;
import
xstartup.annotation.XService
;
import
xstartup.base.XContext
;
import
xstartup.base.XContext
;
import
xstartup.data.XListResult
;
import
xstartup.data.XListResult
;
...
@@ -131,32 +134,32 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
...
@@ -131,32 +134,32 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
.
filter
(
w
->
StringUtils
.
equals
(
detailId
,
w
.
getInstitutionId
()))
.
filter
(
w
->
StringUtils
.
equals
(
detailId
,
w
.
getInstitutionId
()))
.
map
(
SpaceInstitutionWellheadView:
:
getServiceRating
)
.
map
(
SpaceInstitutionWellheadView:
:
getServiceRating
)
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
.
reduce
(
BigDecimal
.
ZERO
,
BigDecimal:
:
add
);
//根据类型过滤井口:大间开,连抽井不优化
List
<
SpaceInstitutionWellheadView
>
wellheadViewList
=
spaceWellheadList
.
stream
()
.
filter
(
w
->
StringUtils
.
equals
(
detailId
,
w
.
getInstitutionId
())
&&
StringUtils
.
equals
(
"INTERVAL"
,
w
.
getRunTypeKey
())
&&
StringUtils
.
equals
(
"0"
,
w
.
getIntervalTypeKey
()))
.
sorted
(
Comparator
.
comparing
(
SpaceInstitutionWellheadView:
:
getStartSeq
))
.
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
wellheadViewList
))
{
continue
;
}
//通过间开ID和井口ID查所有井口时段配置
List
<
SpaceInstitutionDurationEnt
>
durationList
=
durationMapper
.
selectList
(
new
LambdaQueryWrapper
<
SpaceInstitutionDurationEnt
>()
.
eq
(
BaseModel:
:
getIsDeleted
,
BusinessConstant
.
ONE
)
.
eq
(
SpaceInstitutionDurationEnt:
:
getInstitutionId
,
detailId
)
.
orderByAsc
(
SpaceInstitutionDurationEnt:
:
getOpenWellTime
)
);
if
(
CollUtil
.
isEmpty
(
durationList
))
{
//没有设置时间段,无法优化
continue
;
}
Map
<
String
,
List
<
SpaceInstitutionDurationEnt
>>
durationMap
=
durationList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
SpaceInstitutionDurationEnt:
:
getWellheadId
));
int
compare
=
powerMax
.
compareTo
(
wellheadTotalPower
);
int
compare
=
powerMax
.
compareTo
(
wellheadTotalPower
);
//光伏出力峰值大于等于井口总功率:绿电消纳优先策略
//光伏出力峰值大于等于井口总功率:绿电消纳优先策略
if
(
compare
>=
BusinessConstant
.
ZERO
)
{
if
(
compare
>=
BusinessConstant
.
ZERO
)
{
//根据类型过滤井口:大间开,连抽井不优化
List
<
SpaceInstitutionWellheadView
>
wellheadViewList
=
spaceWellheadList
.
stream
()
.
filter
(
w
->
StringUtils
.
equals
(
detailId
,
w
.
getInstitutionId
())
&&
StringUtils
.
equals
(
"INTERVAL"
,
w
.
getRunTypeKey
())
&&
StringUtils
.
equals
(
"0"
,
w
.
getIntervalTypeKey
()))
.
sorted
(
Comparator
.
comparing
(
SpaceInstitutionWellheadView:
:
getStartSeq
))
.
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
wellheadViewList
))
{
continue
;
}
//通过间开ID和井口ID查所有井口时段配置
List
<
SpaceInstitutionDurationEnt
>
durationList
=
durationMapper
.
selectList
(
new
LambdaQueryWrapper
<
SpaceInstitutionDurationEnt
>()
.
eq
(
BaseModel:
:
getIsDeleted
,
BusinessConstant
.
ONE
)
.
eq
(
SpaceInstitutionDurationEnt:
:
getInstitutionId
,
detailId
)
.
orderByAsc
(
SpaceInstitutionDurationEnt:
:
getOpenWellTime
)
);
if
(
CollUtil
.
isEmpty
(
durationList
))
{
//没有设置时间段,无法优化
continue
;
}
//---------------------------------井口优化---------------------------------
//---------------------------------井口优化---------------------------------
Map
<
String
,
List
<
SpaceInstitutionDurationEnt
>>
durationMap
=
durationList
.
stream
()
.
collect
(
Collectors
.
groupingBy
(
SpaceInstitutionDurationEnt:
:
getWellheadId
));
int
between
=
0
;
int
between
=
0
;
//判断是否第一口井
//判断是否第一口井
boolean
isFirstWellhead
;
boolean
isFirstWellhead
;
...
@@ -296,10 +299,23 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
...
@@ -296,10 +299,23 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
int
lowWellheadListSize
=
lowWellheadList
.
size
();
int
lowWellheadListSize
=
lowWellheadList
.
size
();
//光伏出力峰值<任何一口井的运行功率:消峰平谷策略
//光伏出力峰值<任何一口井的运行功率:消峰平谷策略
if
(
size
==
lowWellheadListSize
)
{
if
(
size
==
lowWellheadListSize
)
{
//通过线路ID和月份获取市电峰谷策略明细配置
List
<
GetBasePriceStrategyDetailOutput
>
strategyDetailList
=
ServiceUtil
.
getStrategyDetailList
(
context
,
GetBasePriceStrategyDetailInput
.
builder
()
.
lineId
(
lineId
)
.
strategyMonth
(
String
.
valueOf
(
monthNum
))
.
build
()
);
if
(
CollUtil
.
isEmpty
(
strategyDetailList
))
{
//没有配置,不优化
continue
;
}
//---------------------------------井口优化---------------------------------
}
}
//光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷
//光伏出力峰值>=线路哪部分井口运行功率:满足的部分井口采用绿电消纳优先,不满足的井采用消峰平谷
else
{
else
{
//---------------------------------井口优化---------------------------------
List
<
SpaceInstitutionWellheadView
>
highWellheadList
=
collect
.
get
(
true
);
List
<
SpaceInstitutionWellheadView
>
highWellheadList
=
collect
.
get
(
true
);
...
@@ -491,4 +507,4 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
...
@@ -491,4 +507,4 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
);
);
});
});
}
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment