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
7a5cd918
Commit
7a5cd918
authored
Sep 15, 2023
by
ZWT
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(能源管理系统): 间开优化定时任务
1.开发间开优化长期间开优化定时任务,完成并网流程绿电消纳优先策略; BREAKING CHANGE: 无 Closes 无 [skip ci]
parent
ca7aee96
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
189 additions
and
10 deletions
+189
-10
C00-common/pps-common/src/main/java/pps/core/common/utils/BaseUtils.java
...common/src/main/java/pps/core/common/utils/BaseUtils.java
+31
-0
C11-space/pps-core-space/src/main/java/pps/core/space/mapper/SpaceOptimizeLongDurationViewMapper.java
...ore/space/mapper/SpaceOptimizeLongDurationViewMapper.java
+9
-0
C11-space/pps-core-space/src/main/java/pps/core/space/mapper/SpaceOptimizeLongPeriodViewMapper.java
.../core/space/mapper/SpaceOptimizeLongPeriodViewMapper.java
+9
-0
C11-space/pps-core-space/src/main/java/pps/core/space/mapper/SpaceOptimizeLongWellheadViewMapper.java
...ore/space/mapper/SpaceOptimizeLongWellheadViewMapper.java
+9
-0
C11-space/pps-core-space/src/main/java/pps/core/space/service/SpaceOptimizeLongCloudServiceImpl.java
...core/space/service/SpaceOptimizeLongCloudServiceImpl.java
+43
-10
C11-space/pps-core-space/src/main/resources/mybatis/mapper/pps/core/space/SpaceOptimizeLongDurationViewMapper.xml
...er/pps/core/space/SpaceOptimizeLongDurationViewMapper.xml
+45
-0
C11-space/pps-core-space/src/main/resources/mybatis/mapper/pps/core/space/SpaceOptimizeLongPeriodViewMapper.xml
...pper/pps/core/space/SpaceOptimizeLongPeriodViewMapper.xml
+23
-0
C11-space/pps-core-space/src/main/resources/mybatis/mapper/pps/core/space/SpaceOptimizeLongWellheadViewMapper.xml
...er/pps/core/space/SpaceOptimizeLongWellheadViewMapper.xml
+20
-0
No files found.
C00-common/pps-common/src/main/java/pps/core/common/utils/BaseUtils.java
View file @
7a5cd918
...
...
@@ -7,6 +7,9 @@ import pps.core.common.entity.BaseModel;
import
pps.core.common.session.PpsUserSession
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
java.util.stream.Stream
;
/**
* 封装工具类
...
...
@@ -16,6 +19,34 @@ import java.util.Date;
*/
public
class
BaseUtils
{
/**
* 按每500个一组分割
*/
public
static
final
Integer
BATCH_SIZE
=
500
;
/**
* 计算批次数
*/
public
static
Integer
countStep
(
Integer
totalSize
)
{
return
(
totalSize
+
BATCH_SIZE
-
1
)
/
BATCH_SIZE
;
}
/**
* 分批处理
*
* @param list 列表
* @return {@link List}<{@link List}<{@link E}>>
*/
public
static
<
E
>
List
<
List
<
E
>>
getSubList
(
List
<
E
>
list
)
{
return
Stream
.
iterate
(
0
,
n
->
n
+
1
)
.
limit
(
countStep
(
list
.
size
()))
.
parallel
()
.
map
(
a
->
list
.
stream
().
skip
(
a
*
BaseUtils
.
BATCH_SIZE
)
.
limit
(
BATCH_SIZE
).
parallel
()
.
collect
(
Collectors
.
toList
()))
.
collect
(
Collectors
.
toList
());
}
/**
* 设置实体默认值
*
...
...
C11-space/pps-core-space/src/main/java/pps/core/space/mapper/SpaceOptimizeLongDurationViewMapper.java
View file @
7a5cd918
package
pps.core.space.mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
pps.core.space.entity.SpaceOptimizeLongDurationView
;
...
...
@@ -16,4 +17,12 @@ public interface SpaceOptimizeLongDurationViewMapper {
SpaceOptimizeLongDurationView
selectOne
(
SpaceOptimizeLongDurationView
record
);
List
<
SpaceOptimizeLongDurationView
>
selectList
(
SpaceOptimizeLongDurationView
record
);
/**
* 批量新增
*
* @param list 列表
* @return int
*/
int
batchInsertList
(
@Param
(
value
=
"list"
)
List
<
SpaceOptimizeLongDurationView
>
list
);
}
C11-space/pps-core-space/src/main/java/pps/core/space/mapper/SpaceOptimizeLongPeriodViewMapper.java
View file @
7a5cd918
package
pps.core.space.mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
pps.core.space.entity.SpaceOptimizeLongPeriodView
;
...
...
@@ -22,4 +23,12 @@ public interface SpaceOptimizeLongPeriodViewMapper {
* @return {@link List}<{@link SpaceOptimizeLongPeriodView}>
*/
List
<
SpaceOptimizeLongPeriodView
>
selectList
(
SpaceOptimizeLongPeriodView
record
);
/**
* 批量新增
*
* @param list 列表
* @return int
*/
int
batchInsertList
(
@Param
(
value
=
"list"
)
List
<
SpaceOptimizeLongPeriodView
>
list
);
}
C11-space/pps-core-space/src/main/java/pps/core/space/mapper/SpaceOptimizeLongWellheadViewMapper.java
View file @
7a5cd918
package
pps.core.space.mapper
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.stereotype.Repository
;
import
pps.core.space.entity.SpaceOptimizeLongWellheadView
;
...
...
@@ -16,4 +17,12 @@ public interface SpaceOptimizeLongWellheadViewMapper {
SpaceOptimizeLongWellheadView
selectOne
(
SpaceOptimizeLongWellheadView
record
);
List
<
SpaceOptimizeLongWellheadView
>
selectList
(
SpaceOptimizeLongWellheadView
record
);
/**
* 批量新增
*
* @param list 列表
* @return int
*/
int
batchInsertList
(
@Param
(
value
=
"list"
)
List
<
SpaceOptimizeLongWellheadView
>
list
);
}
C11-space/pps-core-space/src/main/java/pps/core/space/service/SpaceOptimizeLongCloudServiceImpl.java
View file @
7a5cd918
...
...
@@ -22,9 +22,7 @@ import pps.core.common.entity.BaseModel;
import
pps.core.common.utils.BaseUtils
;
import
pps.core.space.entity.*
;
import
pps.core.space.enums.BusinessError
;
import
pps.core.space.mapper.SpaceInstitutionDetailMapper
;
import
pps.core.space.mapper.SpaceInstitutionDurationMapper
;
import
pps.core.space.mapper.SpaceInstitutionWellheadViewMapper
;
import
pps.core.space.mapper.*
;
import
xstartup.annotation.XService
;
import
xstartup.base.XContext
;
import
xstartup.data.XListResult
;
...
...
@@ -169,7 +167,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
for
(
int
w
=
0
,
wellheadSize
=
wellheadViewList
.
size
();
w
<
wellheadSize
;
w
++)
{
SpaceInstitutionWellheadView
wellhead
=
wellheadViewList
.
get
(
w
);
String
wellheadId
=
wellhead
.
getWellheadId
();
this
.
createOptimizeLongWellhead
(
longWellheadList
,
longPeriodId
,
wellheadId
,
wellhead
.
getWellNumber
());
String
recordId
=
this
.
createOptimizeLongWellhead
(
longWellheadList
,
longPeriodId
,
wellheadId
,
wellhead
.
getWellNumber
());
//取当前井口最大发电量
BigDecimal
serviceRating
=
wellhead
.
getServiceRating
();
List
<
SpaceInstitutionDurationEnt
>
durationConfigList
=
durationMap
.
get
(
wellhead
);
...
...
@@ -209,7 +207,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
}
DynamicQueryPlantPredictedPowerOutput
end
=
avgPowerList
.
get
(
endIndex
);
String
endTimeString
=
end
.
getHourTime
()
+
end
.
getMinTime
();
this
.
createOptimizeLongDuration
(
longDurationList
,
duration
,
longPeriodId
,
wellheadId
,
null
,
this
.
createOptimizeLongDuration
(
longDurationList
,
duration
,
longPeriodId
,
recordId
,
wellheadId
,
null
,
openWellTime
,
StringUtils
.
substringBeforeLast
(
endTimeString
,
BusinessConstant
.
INITIALIZATION_SECOND
)
);
//计算
...
...
@@ -249,7 +247,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
}
else
{
endTimeString
=
endTimeOptimize
.
toString
(
BusinessConstant
.
MINUTES_FORMAT
);
}
this
.
createOptimizeLongDuration
(
longDurationList
,
duration
,
longPeriodId
,
wellheadId
,
null
,
this
.
createOptimizeLongDuration
(
longDurationList
,
duration
,
longPeriodId
,
recordId
,
wellheadId
,
null
,
openWellTime
,
endTimeString
);
//取时间间隔(分钟)
...
...
@@ -279,7 +277,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
closeWellTime
=
endDate
.
toString
(
BusinessConstant
.
MINUTES_FORMAT
);
}
//计算偏移
this
.
createOptimizeLongDuration
(
longDurationList
,
duration
,
longPeriodId
,
wellheadId
,
null
,
this
.
createOptimizeLongDuration
(
longDurationList
,
duration
,
longPeriodId
,
recordId
,
wellheadId
,
null
,
offset
.
toString
(
BusinessConstant
.
MINUTES_FORMAT
),
closeWellTime
);
}
...
...
@@ -317,7 +315,37 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
}
//开启事务
return
XTransactionHelper
.
begin
(
context
,
()
->
{
int
size
;
if
(
CollUtil
.
isNotEmpty
(
longPeriodList
))
{
SpaceOptimizeLongPeriodViewMapper
longPeriodViewMapper
=
context
.
getBean
(
SpaceOptimizeLongPeriodViewMapper
.
class
);
size
=
longPeriodList
.
size
();
if
(
size
>
BaseUtils
.
BATCH_SIZE
)
{
List
<
List
<
SpaceOptimizeLongPeriodView
>>
subList
=
BaseUtils
.
getSubList
(
longPeriodList
);
subList
.
forEach
(
b
->
longPeriodViewMapper
.
batchInsertList
(
b
));
}
else
{
longPeriodViewMapper
.
batchInsertList
(
longPeriodList
);
}
}
if
(
CollUtil
.
isNotEmpty
(
longWellheadList
))
{
SpaceOptimizeLongWellheadViewMapper
longWellheadViewMapper
=
context
.
getBean
(
SpaceOptimizeLongWellheadViewMapper
.
class
);
size
=
longWellheadList
.
size
();
if
(
size
>
BaseUtils
.
BATCH_SIZE
)
{
List
<
List
<
SpaceOptimizeLongWellheadView
>>
subList
=
BaseUtils
.
getSubList
(
longWellheadList
);
subList
.
forEach
(
b
->
longWellheadViewMapper
.
batchInsertList
(
b
));
}
else
{
longWellheadViewMapper
.
batchInsertList
(
longWellheadList
);
}
}
if
(
CollUtil
.
isNotEmpty
(
longDurationList
))
{
SpaceOptimizeLongDurationViewMapper
longDurationViewMapper
=
context
.
getBean
(
SpaceOptimizeLongDurationViewMapper
.
class
);
size
=
longDurationList
.
size
();
if
(
size
>
BaseUtils
.
BATCH_SIZE
)
{
List
<
List
<
SpaceOptimizeLongDurationView
>>
subList
=
BaseUtils
.
getSubList
(
longDurationList
);
subList
.
forEach
(
b
->
longDurationViewMapper
.
batchInsertList
(
b
));
}
else
{
longDurationViewMapper
.
batchInsertList
(
longDurationList
);
}
}
return
XServiceResult
.
OK
;
});
}
...
...
@@ -352,14 +380,16 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
* @param longPeriodId 长周期id
* @param wellheadId 井口id
* @param wellNumber 井号
* @return {@link String}
*/
private
void
createOptimizeLongWellhead
(
List
<
SpaceOptimizeLongWellheadView
>
longWellheadList
,
String
longPeriodId
,
String
wellheadId
,
String
wellNumber
)
{
private
String
createOptimizeLongWellhead
(
List
<
SpaceOptimizeLongWellheadView
>
longWellheadList
,
String
longPeriodId
,
String
wellheadId
,
String
wellNumber
)
{
SpaceOptimizeLongWellheadView
wellheadView
=
new
SpaceOptimizeLongWellheadView
();
BaseUtils
.
setBaseModelDefaultForJob
(
wellheadView
);
wellheadView
.
setLongPeriodId
(
longPeriodId
);
wellheadView
.
setWellheadId
(
wellheadId
);
wellheadView
.
setWellNumber
(
wellNumber
);
longWellheadList
.
add
(
wellheadView
);
return
wellheadView
.
getId
();
}
/**
...
...
@@ -368,15 +398,17 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
* @param longDurationList 长期清单
* @param durationEnt 持续时间ent
* @param longPeriodId 长周期id
* @param recordId 记录id
* @param wellheadId 井口id
* @param generationTypeKey 生成类型密钥
* @param openWellTime 开井时间
* @param endTimeString 结束时间字符串
*/
private
void
createOptimizeLongDuration
(
List
<
SpaceOptimizeLongDurationView
>
longDurationList
,
SpaceInstitutionDurationEnt
durationEnt
,
String
longPeriodId
,
String
wellheadId
,
String
generationTypeKey
,
String
openWellTime
,
String
endTimeString
)
{
String
recordId
,
String
wellheadId
,
String
generationTypeKey
,
String
openWellTime
,
String
endTimeString
)
{
SpaceOptimizeLongDurationView
durationView
=
new
SpaceOptimizeLongDurationView
();
BaseUtils
.
setBaseModelDefaultForJob
(
durationView
);
durationView
.
setRecordId
(
recordId
);
durationView
.
setLongPeriodId
(
longPeriodId
);
durationView
.
setWellheadId
(
wellheadId
);
durationView
.
setGenerationTypeKey
(
generationTypeKey
);
...
...
@@ -386,6 +418,7 @@ public class SpaceOptimizeLongCloudServiceImpl implements ISpaceOptimizeLongClou
longDurationList
.
add
(
durationView
);
SpaceOptimizeLongDurationView
durationViewUnOptimize
=
new
SpaceOptimizeLongDurationView
();
BaseUtils
.
setBaseModelDefaultForJob
(
durationViewUnOptimize
);
durationViewUnOptimize
.
setRecordId
(
recordId
);
durationViewUnOptimize
.
setLongPeriodId
(
longPeriodId
);
durationViewUnOptimize
.
setWellheadId
(
wellheadId
);
durationViewUnOptimize
.
setGenerationTypeKey
(
generationTypeKey
);
...
...
C11-space/pps-core-space/src/main/resources/mybatis/mapper/pps/core/space/SpaceOptimizeLongDurationViewMapper.xml
View file @
7a5cd918
...
...
@@ -52,4 +52,49 @@
where
id=#{id}
</select>
<insert
id=
"batchInsertList"
parameterType=
"list"
>
INSERT INTO space_optimize_long_duration (
id,
create_by_id,
create_by_name,
create_time,
modify_by_id,
modify_by_name,
modify_time,
record_id,
long_period_id,
wellhead_id,
is_optimize,
generation_type_key,
open_well_time,
close_well_time
)
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.recordId},
#{item.longPeriodId},
#{item.wellheadId},
#{item.isOptimize},
<choose>
<when
test=
"item.generationTypeKey != null and item.generationTypeKey != ''"
>
#{item.generationTypeKey},
</when>
<otherwise>
NULL,
</otherwise>
</choose>
#{item.openWellTime},
#{item.closeWellTime}
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
C11-space/pps-core-space/src/main/resources/mybatis/mapper/pps/core/space/SpaceOptimizeLongPeriodViewMapper.xml
View file @
7a5cd918
...
...
@@ -65,4 +65,27 @@
AND p.line_id = #{lineId}
ORDER BY p.optimize_deadline DESC
</select>
<insert
id=
"batchInsertList"
parameterType=
"list"
>
INSERT INTO space_optimize_long_period ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, line_id, institution_id, execution_cycle, optimize_state,
optimize_deadline )
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.lineId},
#{item.institutionId},
#{item.executionCycle},
#{item.optimizeState},
#{item.optimizeDeadline}
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
C11-space/pps-core-space/src/main/resources/mybatis/mapper/pps/core/space/SpaceOptimizeLongWellheadViewMapper.xml
View file @
7a5cd918
...
...
@@ -44,4 +44,24 @@
where
id=#{id}
</select>
<insert
id=
"batchInsertList"
parameterType=
"list"
>
INSERT INTO space_optimize_long_wellhead ( id, create_by_id, create_by_name, create_time,
modify_by_id, modify_by_name, modify_time, long_period_id, wellhead_id, well_number )
VALUES
<foreach
collection=
"list"
item=
"item"
separator=
","
>
(
#{item.id},
#{item.createById},
#{item.createByName},
#{item.createTime},
#{item.modifyById},
#{item.modifyByName},
#{item.modifyTime},
#{item.longPeriodId},
#{item.wellheadId},
#{item.wellNumber}
)
</foreach>
</insert>
</mapper>
\ 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