Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
indicators
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhangkb
indicators
Commits
5882640a
Commit
5882640a
authored
Jun 24, 2020
by
zhangkb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
对标单元计算添加单位计分规则计算代码
parent
798be07b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
7 deletions
+43
-7
CompareUnitCalActor.java
...indicators/akka/actor/indicators/CompareUnitCalActor.java
+39
-6
DriveIndIdCalActor.java
.../indicators/akka/actor/indicators/DriveIndIdCalActor.java
+3
-0
CompareUnitDef.java
...le/indicators/model/entity/indicators/CompareUnitDef.java
+1
-1
No files found.
src/main/java/com/keymobile/indicators/akka/actor/indicators/CompareUnitCalActor.java
View file @
5882640a
package
com
.
keymobile
.
indicators
.
akka
.
actor
.
indicators
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
...
...
@@ -9,6 +10,8 @@ import com.keymobile.indicators.akka.message.indicators.CompareUnitCalMsg;
import
com.keymobile.indicators.akka.message.indicators.DriveIndIdCalMsg
;
import
com.keymobile.indicators.akka.message.indicators.FirstExeConfirmMsg
;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitDef
;
import
com.keymobile.indicators.service.hytobacco.ScoreRuleService
;
import
com.keymobile.indicators.utils.SpringUtil
;
import
akka.actor.AbstractActor
;
import
akka.actor.ActorRef
;
...
...
@@ -16,10 +19,26 @@ import akka.actor.Props;
public
class
CompareUnitCalActor
extends
AbstractActor
{
private
ScoreRuleService
scoreRuleServer
=
SpringUtil
.
getBean
(
ScoreRuleService
.
class
);
private
int
numberOfConfirm
=
0
;
//定义返回确认消息的子actor
private
int
indIdSize
=
0
;
//对标指标个数
private
String
compareId
;
//对标单元id
private
Integer
date
;
private
String
firstExe
;
//是否先执行 0:否 1:是
private
String
averageObj
;
//平均分参考对象
private
Integer
objScoreRuleId
;
//单位得分规则id
private
List
<
String
>
indIdsList
=
new
ArrayList
<>();
//考核指标id list
private
List
<
String
>
compareObjsList
=
new
ArrayList
<>();
//考核对象list
private
final
ActorRef
startCompareUnitCalActor
;
//定义父actor
static
public
Props
props
(
ActorRef
startCompareUnitCalActor
)
{
...
...
@@ -35,6 +54,11 @@ public class CompareUnitCalActor extends AbstractActor{
return
receiveBuilder
()
.
match
(
CompareUnitCalMsg
.
class
,
compareUnitCalMsg
->
{
CompareUnitDef
compareUnitDef
=
compareUnitCalMsg
.
getCompareUnitDef
();
compareId
=
compareUnitDef
.
getCompareId
();
date
=
compareUnitDef
.
getDate
();
firstExe
=
compareUnitDef
.
getFirstExe
();
averageObj
=
compareUnitDef
.
getAverageObj
();
objScoreRuleId
=
compareUnitDef
.
getObjScoreRuleId
();
//获取对标对象
String
compareObjsString
=
compareUnitDef
.
getCompareObjs
();
//获取对标指标
...
...
@@ -42,14 +66,14 @@ public class CompareUnitCalActor extends AbstractActor{
if
(
StringUtils
.
isNotBlank
(
indIdsString
)
&&
StringUtils
.
isNotBlank
(
compareObjsString
))
{
//获取考核指标id list
List
<
String
>
indIdsList
=
Arrays
.
asList
(
indIdsString
.
split
(
","
));
indIdsList
.
addAll
(
Arrays
.
asList
(
indIdsString
.
split
(
","
)
));
//获取考核对象list
List
<
String
>
compareObjsList
=
Arrays
.
asList
(
compareObjsString
.
split
(
","
));
compareObjsList
.
addAll
(
Arrays
.
asList
(
compareObjsString
.
split
(
","
)
));
indIdSize
=
indIdsList
.
size
();
for
(
String
indId
:
indIdsList
)
{
DriveIndIdCalMsg
driveIndIdCalMsg
=
new
DriveIndIdCalMsg
(
compareUnitDef
.
getCompareId
(),
indId
,
compareObjsList
,
compareUnitDef
.
getDate
(),
compareUnitDef
.
getFirstExe
(),
compareUnitDef
.
getAverageObj
()
);
firstExe
,
averageObj
);
//start akka
ActorRef
driveIndIdCalActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
DriveIndIdCalActor
.
class
,
...
...
@@ -60,9 +84,18 @@ public class CompareUnitCalActor extends AbstractActor{
})
.
match
(
FirstExeConfirmMsg
.
class
,
firstExeConfirmMsg
->
{
if
(++
numberOfConfirm
>=
indIdSize
)
{
//子actor全部返回
//发送确认信息给父actor
FirstExeConfirmMsg
confirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
);
startCompareUnitCalActor
.
tell
(
confirmMsg
,
ActorRef
.
noSender
());
//如果是先执行且没有平均分参考对象
if
(
"1"
.
equals
(
firstExe
)
&&
StringUtils
.
isBlank
(
averageObj
))
{
//发送确认信息给父actor
FirstExeConfirmMsg
confirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
);
startCompareUnitCalActor
.
tell
(
confirmMsg
,
ActorRef
.
noSender
());
}
else
{
//计算单位得分
if
(
objScoreRuleId
!=
null
)
{
scoreRuleServer
.
calObjScore
(
compareId
,
indIdsList
,
compareObjsList
,
date
,
objScoreRuleId
);
}
}
}
})
.
build
();
...
...
src/main/java/com/keymobile/indicators/akka/actor/indicators/DriveIndIdCalActor.java
View file @
5882640a
...
...
@@ -142,6 +142,9 @@ public class DriveIndIdCalActor extends AbstractActor{
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
}
}
//发送确认信息给父actor
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
);
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
}
}
}
...
...
src/main/java/com/keymobile/indicators/model/entity/indicators/CompareUnitDef.java
View file @
5882640a
...
...
@@ -13,5 +13,5 @@ public class CompareUnitDef {
private
Integer
date
;
//日期
private
String
firstExe
;
//是否先执行 0:否 1:是
private
String
averageObj
;
//平均分参考对象(主要场景:省对市考核中会有基础指标值会同级全省的值,然后对于不分组的对标单元的平均分参考的是全省的值算出的平均分)
private
String
objScoreRuleId
;
//单位规则评分id
private
Integer
objScoreRuleId
;
//单位规则评分id
}
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