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
d94d480c
Commit
d94d480c
authored
Oct 29, 2020
by
hzc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
对标运算加try捕获未知异常
parent
82229af3
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
630 additions
and
501 deletions
+630
-501
BeforeCompareUnitCalActor.java
...tors/akka/actor/indicators/BeforeCompareUnitCalActor.java
+36
-12
CompareUnitCalActor.java
...indicators/akka/actor/indicators/CompareUnitCalActor.java
+17
-2
DriveIndIdCalActor.java
.../indicators/akka/actor/indicators/DriveIndIdCalActor.java
+186
-165
DriveIndIdObjCalActor.java
...dicators/akka/actor/indicators/DriveIndIdObjCalActor.java
+189
-170
GetBaseIndValueActor.java
...ndicators/akka/actor/indicators/GetBaseIndValueActor.java
+53
-28
StartCompareUnitCalActor.java
...ators/akka/actor/indicators/StartCompareUnitCalActor.java
+137
-122
GetBaseIndValueMsg.java
...ndicators/akka/message/indicators/GetBaseIndValueMsg.java
+12
-2
No files found.
src/main/java/com/keymobile/indicators/akka/actor/indicators/BeforeCompareUnitCalActor.java
View file @
d94d480c
...
@@ -10,6 +10,7 @@ import com.keymobile.indicators.constant.Constants;
...
@@ -10,6 +10,7 @@ import com.keymobile.indicators.constant.Constants;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog
;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog
;
import
com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService
;
import
com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService
;
import
com.keymobile.indicators.utils.LogManager
;
import
com.keymobile.indicators.utils.LogManager
;
import
com.netflix.discovery.converters.jackson.EurekaXmlJacksonCodec
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -51,6 +52,7 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
...
@@ -51,6 +52,7 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
@Override
@Override
public
Receive
createReceive
()
{
public
Receive
createReceive
()
{
try
{
return
receiveBuilder
()
return
receiveBuilder
()
.
match
(
StartCompareUnitCalMsg
.
class
,
beforeCompareUnitCalMsg
->
{
.
match
(
StartCompareUnitCalMsg
.
class
,
beforeCompareUnitCalMsg
->
{
List
<
CompareUnitDef
>
compareUnitDefs
=
beforeCompareUnitCalMsg
.
getCompareInitDefs
();
List
<
CompareUnitDef
>
compareUnitDefs
=
beforeCompareUnitCalMsg
.
getCompareInitDefs
();
...
@@ -88,7 +90,7 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
...
@@ -88,7 +90,7 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
}
}
if
(!
currentCompareUnitDef
.
isEmpty
())
{
if
(!
currentCompareUnitDef
.
isEmpty
())
{
currentDate
=
currentCompareUnitDef
.
get
(
0
).
getDate
();
currentDate
=
currentCompareUnitDef
.
get
(
0
).
getDate
();
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"进行date:"
+
currentDate
+
" 的对标单元试运行计算....."
);
logger
.
info
(
"进行date:"
+
currentDate
+
" 的对标单元试运行计算....."
);
}
else
{
}
else
{
...
@@ -108,10 +110,10 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
...
@@ -108,10 +110,10 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
if
(
"1"
.
equals
(
isTest
))
{
//正式对标单元运算才进行报表数据生成
if
(
"1"
.
equals
(
isTest
))
{
//正式对标单元运算才进行报表数据生成
Map
<
String
,
String
>
compareObjMap
=
new
HashMap
<>();
Map
<
String
,
String
>
compareObjMap
=
new
HashMap
<>();
logger
.
info
(
"进行date:"
+
currentDate
+
" 指标本期同期报表数据和考核指标报表数据2数据整合"
);
logger
.
info
(
"进行date:"
+
currentDate
+
" 指标本期同期报表数据和考核指标报表数据2数据整合"
);
//整合考核指标报表数据2
//整合考核指标报表数据2
for
(
CompareUnitDef
unitDef
:
currentCompareUnitDef
)
{
for
(
CompareUnitDef
unitDef
:
currentCompareUnitDef
)
{
if
(
StringUtils
.
isNotBlank
(
unitDef
.
getIndIds
())
&&
if
(
StringUtils
.
isNotBlank
(
unitDef
.
getIndIds
())
&&
StringUtils
.
isNotBlank
(
unitDef
.
getCompareObjs
()))
{
StringUtils
.
isNotBlank
(
unitDef
.
getCompareObjs
()))
{
//用map整合对标机构
//用map整合对标机构
List
<
String
>
compareObjsList
=
Arrays
List
<
String
>
compareObjsList
=
Arrays
...
@@ -122,31 +124,31 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
...
@@ -122,31 +124,31 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
//整合指标本期同期报表数据
//整合指标本期同期报表数据
indicatorsReportService
.
dealReportOne
(
indicatorsReportService
.
dealReportOne
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
code
);
unitDef
.
getDate
(),
code
);
//整合考核指标报表数据2
//整合考核指标报表数据2
indicatorsReportService
.
dealDriveIndReportTwoData
(
indicatorsReportService
.
dealDriveIndReportTwoData
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
code
);
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
code
);
}
}
}
}
//整合基础项本期同期报表数据
//整合基础项本期同期报表数据
logger
.
info
(
"进行date:"
+
currentDate
+
" 基础项本期同期报表数据整合"
);
logger
.
info
(
"进行date:"
+
currentDate
+
" 基础项本期同期报表数据整合"
);
if
(!
compareObjMap
.
isEmpty
())
{
if
(!
compareObjMap
.
isEmpty
())
{
List
<
String
>
compareObjs
=
new
ArrayList
<
String
>(
compareObjMap
.
keySet
());
List
<
String
>
compareObjs
=
new
ArrayList
<
String
>(
compareObjMap
.
keySet
());
indicatorsReportService
.
dealBaseIndReportOneData
(
currentDate
,
compareObjs
,
code
);
indicatorsReportService
.
dealBaseIndReportOneData
(
currentDate
,
compareObjs
,
code
);
}
}
//整合考核指标报表数据3
//整合考核指标报表数据3
logger
.
info
(
"进行date:"
+
currentDate
+
" 指标报表3数据整合"
);
logger
.
info
(
"进行date:"
+
currentDate
+
" 指标报表3数据整合"
);
//删除历史数据
//删除历史数据
indicatorsReportService
.
deleteReportThreeDataByParam
(
currentDate
,
indicatorsReportService
.
deleteReportThreeDataByParam
(
currentDate
,
new
ArrayList
<
String
>(
compareObjMap
.
keySet
()),
code
);
new
ArrayList
<
String
>(
compareObjMap
.
keySet
()),
code
);
for
(
CompareUnitDef
unitDef
:
currentCompareUnitDef
)
{
for
(
CompareUnitDef
unitDef
:
currentCompareUnitDef
)
{
indicatorsReportService
.
dealDriveIndReportThreeData
(
indicatorsReportService
.
dealDriveIndReportThreeData
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
unitDef
.
getDate
(),
code
);
unitDef
.
getDate
(),
code
);
}
}
}
}
...
@@ -156,6 +158,12 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
...
@@ -156,6 +158,12 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
if
(
compCalLog
!=
null
)
{
if
(
compCalLog
!=
null
)
{
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setRunStatus
(
"1"
);
compCalLog
.
setRunStatus
(
"1"
);
String
logInfo
=
compCalLog
.
getLogInfo
();
if
(
StringUtils
.
isBlank
(
logInfo
)){
logInfo
=
"没异常"
;
}
logInfo
=
"整体试运算成功-运算过程:"
+
logInfo
;
compCalLog
.
setLogInfo
(
logInfo
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
LogManager
.
logInfo
(
Constants
.
LOG_INDICATOR_UNIT_CAL_API
,
"完成对标单元id:{},日期:{} 的试运行计算"
,
compCalLogId
,
currentDate
);
LogManager
.
logInfo
(
Constants
.
LOG_INDICATOR_UNIT_CAL_API
,
"完成对标单元id:{},日期:{} 的试运行计算"
,
compCalLogId
,
currentDate
);
...
@@ -164,18 +172,34 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
...
@@ -164,18 +172,34 @@ public class BeforeCompareUnitCalActor extends AbstractActor{
if
(
compCalLog
!=
null
)
{
if
(
compCalLog
!=
null
)
{
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setRunStatus
(
"1"
);
compCalLog
.
setRunStatus
(
"1"
);
if
(
compCalLog
.
getStatus
()==
1
){
String
logInfo
=
compCalLog
.
getLogInfo
();
compCalLog
.
setLogInfo
(
"运算成功"
);
if
(
StringUtils
.
isBlank
(
logInfo
)){
logInfo
=
"没异常"
;
}
}
logInfo
=
"整体运算成功-运算过程:"
+
logInfo
;
compCalLog
.
setLogInfo
(
logInfo
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
LogManager
.
logInfo
(
Constants
.
LOG_INDICATOR_UNIT_CAL_API
,
"完成对标单元id:{},日期:{} 的
试
运行计算"
,
compCalLogId
,
currentDate
);
LogManager
.
logInfo
(
Constants
.
LOG_INDICATOR_UNIT_CAL_API
,
"完成对标单元id:{},日期:{} 的
正式
运行计算"
,
compCalLogId
,
currentDate
);
logger
.
info
(
"本期同期对标单元计算完成"
);
logger
.
info
(
"本期同期对标单元计算完成"
);
}
}
}
}
}
}
})
})
.
build
();
.
build
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
CompareUnitCalLog
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
if
(
compCalLog
!=
null
){
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setRunStatus
(
"1"
);
compCalLog
.
setStatus
(
0
);
compCalLog
.
setLogInfo
(
"运算失败"
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
return
null
;
}
}
}
}
src/main/java/com/keymobile/indicators/akka/actor/indicators/CompareUnitCalActor.java
View file @
d94d480c
...
@@ -65,6 +65,8 @@ public class CompareUnitCalActor extends AbstractActor{
...
@@ -65,6 +65,8 @@ public class CompareUnitCalActor extends AbstractActor{
@Override
@Override
public
Receive
createReceive
()
{
public
Receive
createReceive
()
{
try
{
return
receiveBuilder
()
return
receiveBuilder
()
.
match
(
CompareUnitCalMsg
.
class
,
compareUnitCalMsg
->
{
.
match
(
CompareUnitCalMsg
.
class
,
compareUnitCalMsg
->
{
CompareUnitDef
compareUnitDef
=
compareUnitCalMsg
.
getCompareUnitDef
();
CompareUnitDef
compareUnitDef
=
compareUnitCalMsg
.
getCompareUnitDef
();
...
@@ -75,7 +77,7 @@ public class CompareUnitCalActor extends AbstractActor{
...
@@ -75,7 +77,7 @@ public class CompareUnitCalActor extends AbstractActor{
objScoreRuleId
=
compareUnitDef
.
getObjScoreRuleId
();
objScoreRuleId
=
compareUnitDef
.
getObjScoreRuleId
();
code
=
compareUnitCalMsg
.
getCode
();
code
=
compareUnitCalMsg
.
getCode
();
isTest
=
compareUnitCalMsg
.
getIsTest
();
isTest
=
compareUnitCalMsg
.
getIsTest
();
compCalLogId
=
compareUnitCalMsg
.
getCompCalLogId
();
// //新增运行日志记录
// //新增运行日志记录
// CompareUnitCalLog compCalLog = new CompareUnitCalLog(compareId,date,
// CompareUnitCalLog compCalLog = new CompareUnitCalLog(compareId,date,
// System.currentTimeMillis()+"","0");
// System.currentTimeMillis()+"","0");
...
@@ -85,7 +87,7 @@ public class CompareUnitCalActor extends AbstractActor{
...
@@ -85,7 +87,7 @@ public class CompareUnitCalActor extends AbstractActor{
// compCalLog.setType(isTest);
// compCalLog.setType(isTest);
//保存
//保存
// Integer compCalLogId = compareUnitCalLogService.saveOrUndate(compCalLog);
// Integer compCalLogId = compareUnitCalLogService.saveOrUndate(compCalLog);
compCalLogId
=
compareUnitCalMsg
.
getCompCalLogId
();
//获取对标对象
//获取对标对象
String
compareObjsString
=
compareUnitDef
.
getCompareObjs
();
String
compareObjsString
=
compareUnitDef
.
getCompareObjs
();
//获取对标指标
//获取对标指标
...
@@ -161,5 +163,18 @@ public class CompareUnitCalActor extends AbstractActor{
...
@@ -161,5 +163,18 @@ public class CompareUnitCalActor extends AbstractActor{
}
}
})
})
.
build
();
.
build
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
CompareUnitCalLog
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
if
(
compCalLog
!=
null
){
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setRunStatus
(
"1"
);
compCalLog
.
setStatus
(
0
);
compCalLog
.
setLogInfo
(
"运算失败"
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
return
null
;
}
}
}
}
src/main/java/com/keymobile/indicators/akka/actor/indicators/DriveIndIdCalActor.java
View file @
d94d480c
...
@@ -6,6 +6,8 @@ import java.util.List;
...
@@ -6,6 +6,8 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
java.util.Map.Entry
;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog
;
import
com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -41,7 +43,8 @@ public class DriveIndIdCalActor extends AbstractActor{
...
@@ -41,7 +43,8 @@ public class DriveIndIdCalActor extends AbstractActor{
private
DriveIndDefService
driveIndDefService
=
SpringUtil
.
getBean
(
DriveIndDefService
.
class
);
private
DriveIndDefService
driveIndDefService
=
SpringUtil
.
getBean
(
DriveIndDefService
.
class
);
private
IndicatorsReportService
indiReportService
=
SpringUtil
.
getBean
(
IndicatorsReportService
.
class
);
private
IndicatorsReportService
indiReportService
=
SpringUtil
.
getBean
(
IndicatorsReportService
.
class
);
private
CompareUnitCalLogService
compareUnitCalLogService
=
SpringUtil
.
getBean
(
CompareUnitCalLogService
.
class
);
private
int
numberOfConfirm
=
0
;
//定义返回确认消息的子actor
private
int
numberOfConfirm
=
0
;
//定义返回确认消息的子actor
private
int
compareObjSize
=
0
;
//对标对象个数
private
int
compareObjSize
=
0
;
//对标对象个数
...
@@ -58,6 +61,8 @@ public class DriveIndIdCalActor extends AbstractActor{
...
@@ -58,6 +61,8 @@ public class DriveIndIdCalActor extends AbstractActor{
private
String
isTest
;
private
String
isTest
;
private
Integer
compCalLogId
;
private
final
ActorRef
compareUnitCalActor
;
//定义父actor
private
final
ActorRef
compareUnitCalActor
;
//定义父actor
static
public
Props
props
(
ActorRef
compareUnitCalActor
)
{
static
public
Props
props
(
ActorRef
compareUnitCalActor
)
{
...
@@ -70,179 +75,195 @@ public class DriveIndIdCalActor extends AbstractActor{
...
@@ -70,179 +75,195 @@ public class DriveIndIdCalActor extends AbstractActor{
@Override
@Override
public
Receive
createReceive
()
{
public
Receive
createReceive
()
{
return
receiveBuilder
()
Receive
receive
=
null
;
.
match
(
DriveIndIdCalMsg
.
class
,
driveIndIdCalMsg
->
{
try
{
String
compareId
=
driveIndIdCalMsg
.
getCompareId
();
String
indId
=
driveIndIdCalMsg
.
getIndId
();
receive
=
receiveBuilder
()
List
<
String
>
compareObjs
=
driveIndIdCalMsg
.
getCompareObj
();
.
match
(
DriveIndIdCalMsg
.
class
,
driveIndIdCalMsg
->
{
Integer
date
=
driveIndIdCalMsg
.
getDate
();
String
compareId
=
driveIndIdCalMsg
.
getCompareId
();
firstExe
=
driveIndIdCalMsg
.
getFirstExe
();
String
indId
=
driveIndIdCalMsg
.
getIndId
();
averageObj
=
driveIndIdCalMsg
.
getAverageObj
();
List
<
String
>
compareObjs
=
driveIndIdCalMsg
.
getCompareObj
();
compareObjSize
=
compareObjs
.
size
();
Integer
date
=
driveIndIdCalMsg
.
getDate
();
code
=
driveIndIdCalMsg
.
getCode
();
firstExe
=
driveIndIdCalMsg
.
getFirstExe
();
isTest
=
driveIndIdCalMsg
.
getIsTest
();
averageObj
=
driveIndIdCalMsg
.
getAverageObj
();
compareObjSize
=
compareObjs
.
size
();
//日志记录id
code
=
driveIndIdCalMsg
.
getCode
();
Integer
compCalLogId
=
driveIndIdCalMsg
.
getCompCalLogId
();
isTest
=
driveIndIdCalMsg
.
getIsTest
();
for
(
String
compareObj
:
compareObjs
)
{
//日志记录id
List
<
DimValue
>
dimValueList
=
new
ArrayList
<>();
compCalLogId
=
driveIndIdCalMsg
.
getCompCalLogId
();
DimValue
dimCompareObj
=
new
DimValue
(
"dim1"
,
compareObj
,
"varchar"
);
DimValue
dimDateObj
=
new
DimValue
(
"dim2"
,
date
,
"number"
);
for
(
String
compareObj
:
compareObjs
)
{
dimValueList
.
add
(
dimCompareObj
);
List
<
DimValue
>
dimValueList
=
new
ArrayList
<>();
dimValueList
.
add
(
dimDateObj
);
DimValue
dimCompareObj
=
new
DimValue
(
"dim1"
,
compareObj
,
"varchar"
);
DimValue
dimDateObj
=
new
DimValue
(
"dim2"
,
date
,
"number"
);
DriveIndIdObjCalMsg
driveIndIdObjCalMsg
=
new
DriveIndIdObjCalMsg
(
compareId
,
dimValueList
.
add
(
dimCompareObj
);
indId
,
compareObj
,
date
,
dimValueList
,
compCalLogId
,
dimValueList
.
add
(
dimDateObj
);
driveIndIdCalMsg
.
getCode
(),
driveIndIdCalMsg
.
getIsTest
());
ActorRef
driveIndIdObjCalActor
=
this
.
getContext
()
DriveIndIdObjCalMsg
driveIndIdObjCalMsg
=
new
DriveIndIdObjCalMsg
(
compareId
,
.
actorOf
(
Props
.
create
(
DriveIndIdObjCalActor
.
class
,
indId
,
compareObj
,
date
,
dimValueList
,
compCalLogId
,
()->
new
DriveIndIdObjCalActor
(
getSelf
())));
driveIndIdCalMsg
.
getCode
(),
driveIndIdCalMsg
.
getIsTest
());
driveIndIdObjCalActor
.
tell
(
driveIndIdObjCalMsg
,
getSelf
());
ActorRef
driveIndIdObjCalActor
=
this
.
getContext
()
}
.
actorOf
(
Props
.
create
(
DriveIndIdObjCalActor
.
class
,
})
()
->
new
DriveIndIdObjCalActor
(
getSelf
())));
.
match
(
CalIndAverageAndRankMsg
.
class
,
calIndAverageAndRankMsg
->
{
driveIndIdObjCalActor
.
tell
(
driveIndIdObjCalMsg
,
getSelf
());
String
value
=
calIndAverageAndRankMsg
.
getDriveIndValue
();
}
String
id
=
String
.
valueOf
(
calIndAverageAndRankMsg
.
getId
());
})
String
indType
=
calIndAverageAndRankMsg
.
getIndType
();
//指标类型:正向 反向
.
match
(
CalIndAverageAndRankMsg
.
class
,
calIndAverageAndRankMsg
->
{
Integer
scoreCardId
=
calIndAverageAndRankMsg
.
getScoreCardId
();
//评分卡id
String
value
=
calIndAverageAndRankMsg
.
getDriveIndValue
();
Integer
compCalLogId
=
calIndAverageAndRankMsg
.
getCompCalLogId
();
//记录日志id
String
id
=
String
.
valueOf
(
calIndAverageAndRankMsg
.
getId
());
if
(!
"-1"
.
equals
(
id
))
{
String
indType
=
calIndAverageAndRankMsg
.
getIndType
();
//指标类型:正向 反向
valueMap
.
put
(
id
,
value
);
Integer
scoreCardId
=
calIndAverageAndRankMsg
.
getScoreCardId
();
//评分卡id
compareObjs
.
add
(
calIndAverageAndRankMsg
.
getCompareObj
());
Integer
compCalLogId
=
calIndAverageAndRankMsg
.
getCompCalLogId
();
//记录日志id
}
if
(!
"-1"
.
equals
(
id
))
{
if
(++
numberOfConfirm
>=
compareObjSize
)
{
//子actor全部返回
valueMap
.
put
(
id
,
value
);
if
(!
valueMap
.
isEmpty
()
&&
!
compareObjs
.
isEmpty
())
{
compareObjs
.
add
(
calIndAverageAndRankMsg
.
getCompareObj
());
//如果是先执行且没有平均分参考对象的,则不进行平均分和排名计算
}
if
(
"1"
.
equals
(
firstExe
)
&&
StringUtils
.
isBlank
(
averageObj
))
{
if
(++
numberOfConfirm
>=
compareObjSize
)
{
//子actor全部返回
//发送确认信息给父actor
if
(!
valueMap
.
isEmpty
()
&&
!
compareObjs
.
isEmpty
())
{
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
,
compCalLogId
);
//如果是先执行且没有平均分参考对象的,则不进行平均分和排名计算
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
if
(
"1"
.
equals
(
firstExe
)
&&
StringUtils
.
isBlank
(
averageObj
))
{
}
else
{
//发送确认信息给父actor
String
actualAverage
=
"0.0"
;
//实际平均分
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
,
compCalLogId
);
if
(
StringUtils
.
isNotBlank
(
averageObj
))
{
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
if
(
"0"
.
equals
(
isTest
))
{
}
else
{
TestDriveIndCalResultDef
provinceDriveIndCalResult
=
String
actualAverage
=
"0.0"
;
//实际平均分
testDriveIndCalResultService
.
findCompareObjInfo
(
if
(
StringUtils
.
isNotBlank
(
averageObj
))
{
calIndAverageAndRankMsg
.
getDriveIndId
(),
if
(
"0"
.
equals
(
isTest
))
{
calIndAverageAndRankMsg
.
getDate
(),
TestDriveIndCalResultDef
provinceDriveIndCalResult
=
averageObj
,
code
);
testDriveIndCalResultService
.
findCompareObjInfo
(
if
(
provinceDriveIndCalResult
!=
null
)
{
calIndAverageAndRankMsg
.
getDriveIndId
(),
//获取实际平均分
calIndAverageAndRankMsg
.
getDate
(),
actualAverage
=
provinceDriveIndCalResult
.
getValue
();
averageObj
,
code
);
}
if
(
provinceDriveIndCalResult
!=
null
)
{
}
else
{
//获取实际平均分
DriveIndCalResultDef
provinceDriveIndCalResult
=
actualAverage
=
provinceDriveIndCalResult
.
getValue
();
driveIndCalResultService
.
findCompareObjInfo
(
}
calIndAverageAndRankMsg
.
getDriveIndId
(),
}
else
{
calIndAverageAndRankMsg
.
getDate
(),
DriveIndCalResultDef
provinceDriveIndCalResult
=
averageObj
,
code
);
driveIndCalResultService
.
findCompareObjInfo
(
if
(
provinceDriveIndCalResult
!=
null
)
{
calIndAverageAndRankMsg
.
getDriveIndId
(),
//获取实际平均分
calIndAverageAndRankMsg
.
getDate
(),
actualAverage
=
provinceDriveIndCalResult
.
getValue
();
averageObj
,
code
);
if
(
provinceDriveIndCalResult
!=
null
)
{
//获取实际平均分
actualAverage
=
provinceDriveIndCalResult
.
getValue
();
}
}
}
}
}
}
//算组内平均数
//算组内平均数
String
average
=
driveIndDefService
.
calGroupAverage
(
String
average
=
driveIndDefService
.
calGroupAverage
(
calIndAverageAndRankMsg
.
getIndFormula
(),
compareObjs
,
calIndAverageAndRankMsg
.
getIndFormula
(),
compareObjs
,
calIndAverageAndRankMsg
.
getDate
(),
code
);
calIndAverageAndRankMsg
.
getDate
(),
code
);
//算组内排名
//算组内排名
Map
<
String
,
Integer
>
rankValue
=
CalculateUtils
.
rankValue
(
valueMap
,
indType
);
Map
<
String
,
Integer
>
rankValue
=
CalculateUtils
.
rankValue
(
valueMap
,
indType
);
List
<
DriveIndCalResultDef
>
dataList
=
new
ArrayList
<>(
);
List
<
DriveIndCalResultDef
>
d
ataList
=
new
ArrayList
<>();
List
<
TestDriveIndCalResultDef
>
testD
ataList
=
new
ArrayList
<>();
List
<
TestDriveIndCalResultDef
>
testDataList
=
new
ArrayList
<>();
//填充平均数和排名到考核结果中
//填充平均数和排名到考核结果中
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
(
))
{
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
//根据id获取指标值结果
//根据id获取指标值结果
TestDriveIndCalResultDef
driveIndCalResult
=
testDriveIndCalResultService
.
TestDriveIndCalResultDef
driveIndCalResult
=
testDriveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
if
(
driveIndCalResult
!=
null
)
{
driveIndCalResult
.
setAverage
(
average
);
driveIndCalResult
.
setAverage
(
average
);
driveIndCalResult
.
setRank
(
entry
.
getValue
()
);
driveIndCalResult
.
setRank
(
entry
.
getValue
()
);
driveIndCalResult
.
setActualAverage
(
actualAverage
);
driveIndCalResult
.
setActualAverage
(
actualAverage
);
testDataList
.
add
(
driveIndCalResult
);
testDataList
.
add
(
driveIndCalResult
);
}
}
}
else
{
}
else
{
//根据id获取指标值结果
//根据id获取指标值结果
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
if
(
driveIndCalResult
!=
null
)
{
driveIndCalResult
.
setAverage
(
average
);
driveIndCalResult
.
setAverage
(
average
);
driveIndCalResult
.
setRank
(
entry
.
getValue
()
);
driveIndCalResult
.
setRank
(
entry
.
getValue
()
);
driveIndCalResult
.
setActualAverage
(
actualAverage
);
driveIndCalResult
.
setActualAverage
(
actualAverage
);
dataList
.
add
(
driveIndCalResult
);
dataList
.
add
(
driveIndCalResult
);
}
}
}
}
}
}
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
//批量保存修改
//批量保存修改
testDriveIndCalResultService
.
batchSaveOrUpdate
(
testDataList
);
testDriveIndCalResultService
.
batchSaveOrUpdate
(
testDataList
);
//批量保存修改
//批量保存修改
testDataList
.
clear
();
testDataList
.
clear
();
}
else
{
}
else
{
//批量保存修改
//批量保存修改
driveIndCalResultService
.
batchSaveOrUpdate
(
dataList
);
driveIndCalResultService
.
batchSaveOrUpdate
(
dataList
);
//批量保存修改//批量保存修改
//批量保存修改//批量保存修改
dataList
.
clear
();
dataList
.
clear
();
}
}
//根据评分卡算指标分数
//根据评分卡算指标分数
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
(
))
{
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
//根据id获取指标值结果
//根据id获取指标值结果
TestDriveIndCalResultDef
driveIndCalResult
=
testDriveIndCalResultService
.
TestDriveIndCalResultDef
driveIndCalResult
=
testDriveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
if
(
driveIndCalResult
!=
null
)
{
//计算分数
//计算分数
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
driveIndCalResult
.
getIndId
(),
driveIndCalResult
.
getDate
(),
driveIndCalResult
.
getIndId
(),
driveIndCalResult
.
getDate
()
,
driveIndCalResult
.
getCompareObj
(),
scoreCardId
,
driveIndCalResult
.
getCompareObj
(),
scoreCardId
,
driveIndCalResult
.
getCompareId
(),
compareObjs
,
code
);
driveIndCalResult
.
getCompareId
(),
compareObjs
,
code
);
driveIndCalResult
.
setScore
(
scoreMap
.
get
(
"score"
)
);
driveIndCalResult
.
setScore
(
scoreMap
.
get
(
"s
core"
));
driveIndCalResult
.
setImproveScore
(
scoreMap
.
get
(
"improveS
core"
));
driveIndCalResult
.
setImproveScore
(
scoreMap
.
get
(
"improveScore"
)
);
testDataList
.
add
(
driveIndCalResult
);
testDataList
.
add
(
driveIndCalResult
);
}
}
}
else
{
}
else
{
//根据id获取指标值结果
//根据id获取指标值结果
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
if
(
driveIndCalResult
!=
null
)
{
//计算分数
//计算分数
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
driveIndCalResult
.
getIndId
(),
driveIndCalResult
.
getDate
(),
driveIndCalResult
.
getIndId
(),
driveIndCalResult
.
getDate
()
,
driveIndCalResult
.
getCompareObj
(),
scoreCardId
,
driveIndCalResult
.
getCompareObj
(),
scoreCardId
,
driveIndCalResult
.
getCompareId
(),
compareObjs
,
code
);
driveIndCalResult
.
getCompareId
(),
compareObjs
,
code
);
driveIndCalResult
.
setScore
(
scoreMap
.
get
(
"score"
)
);
driveIndCalResult
.
setScore
(
scoreMap
.
get
(
"s
core"
));
driveIndCalResult
.
setImproveScore
(
scoreMap
.
get
(
"improveS
core"
));
driveIndCalResult
.
setImproveScore
(
scoreMap
.
get
(
"improveScore"
)
);
dataList
.
add
(
driveIndCalResult
);
dataList
.
add
(
driveIndCalResult
);
}
}
}
}
}
}
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
//批量保存修改
//批量保存修改
testDriveIndCalResultService
.
batchSaveOrUpdate
(
testDataList
);
testDriveIndCalResultService
.
batchSaveOrUpdate
(
testDataList
);
//清空list
//清空list
testDataList
.
clear
();
testDataList
.
clear
();
}
else
{
}
else
{
//批量保存修改
//批量保存修改
driveIndCalResultService
.
batchSaveOrUpdate
(
dataList
);
driveIndCalResultService
.
batchSaveOrUpdate
(
dataList
);
//整合本期同期报表数据
//整合本期同期报表数据
//indiReportService.dealReportOneDatas(dataList);
//indiReportService.dealReportOneDatas(dataList);
//清空list
//清空list
dataList
.
clear
();
dataList
.
clear
();
}
//发送确认信息给父actor
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
,
compCalLogId
);
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
}
}
}
else
{
//发送确认信息给父actor
//发送确认信息给父actor
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
1
,
""
,
compCalLogId
);
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
0
,
""
,
compCalLogId
);
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
}
}
}
else
{
//发送确认信息给父actor
FirstExeConfirmMsg
firstExeConfirmMsg
=
new
FirstExeConfirmMsg
(
0
,
""
,
compCalLogId
);
compareUnitCalActor
.
tell
(
firstExeConfirmMsg
,
ActorRef
.
noSender
());
}
}
}
})
})
.
build
();
.
build
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
CompareUnitCalLog
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
if
(
compCalLog
!=
null
){
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setRunStatus
(
"1"
);
compCalLog
.
setStatus
(
0
);
compCalLog
.
setLogInfo
(
"运算失败"
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
return
receive
;
}
}
}
}
src/main/java/com/keymobile/indicators/akka/actor/indicators/DriveIndIdObjCalActor.java
View file @
d94d480c
...
@@ -33,6 +33,7 @@ import com.keymobile.indicators.utils.SpringUtil;
...
@@ -33,6 +33,7 @@ import com.keymobile.indicators.utils.SpringUtil;
import
akka.actor.AbstractActor
;
import
akka.actor.AbstractActor
;
import
akka.actor.ActorRef
;
import
akka.actor.ActorRef
;
import
akka.actor.Props
;
import
akka.actor.Props
;
import
org.springframework.data.redis.core.script.ReactiveScriptExecutor
;
public
class
DriveIndIdObjCalActor
extends
AbstractActor
{
public
class
DriveIndIdObjCalActor
extends
AbstractActor
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DriveIndIdObjCalActor
.
class
);
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DriveIndIdObjCalActor
.
class
);
...
@@ -90,67 +91,72 @@ public class DriveIndIdObjCalActor extends AbstractActor{
...
@@ -90,67 +91,72 @@ public class DriveIndIdObjCalActor extends AbstractActor{
@Override
@Override
public
Receive
createReceive
()
{
public
Receive
createReceive
()
{
return
receiveBuilder
()
Receive
receive
=
null
;
.
match
(
DriveIndIdObjCalMsg
.
class
,
driveIndIdObjCalMsg
->
{
try
{
compareId
=
driveIndIdObjCalMsg
.
getCompareId
();
receive
=
receiveBuilder
()
compareObj
=
driveIndIdObjCalMsg
.
getCompareObj
();
.
match
(
DriveIndIdObjCalMsg
.
class
,
driveIndIdObjCalMsg
->
{
date
=
driveIndIdObjCalMsg
.
getDate
();
compareId
=
driveIndIdObjCalMsg
.
getCompareId
();
driveIndId
=
driveIndIdObjCalMsg
.
getIndId
();
compareObj
=
driveIndIdObjCalMsg
.
getCompareObj
();
//日志记录id
date
=
driveIndIdObjCalMsg
.
getDate
();
compCalLogId
=
driveIndIdObjCalMsg
.
getCompCalLogId
();
driveIndId
=
driveIndIdObjCalMsg
.
getIndId
();
code
=
driveIndIdObjCalMsg
.
getCode
();
//日志记录id
isTest
=
driveIndIdObjCalMsg
.
getIsTest
();
compCalLogId
=
driveIndIdObjCalMsg
.
getCompCalLogId
();
code
=
driveIndIdObjCalMsg
.
getCode
();
List
<
String
>
indIdList
=
new
ArrayList
<>();
//定义存储从考核指标公式解析出来的基础指标id
isTest
=
driveIndIdObjCalMsg
.
getIsTest
();
DriveIndDef
driveIndDef
=
driveIndDefService
.
getById
(
driveIndId
);
List
<
String
>
indIdList
=
new
ArrayList
<>();
//定义存储从考核指标公式解析出来的基础指标id
if
(
driveIndDef
==
null
)
{
logger
.
info
(
"DriveIndDef:"
+
driveIndId
+
" is not exist."
);
DriveIndDef
driveIndDef
=
driveIndDefService
.
getById
(
driveIndId
);
//返回父actor信息
if
(
driveIndDef
==
null
)
{
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
logger
.
info
(
"DriveIndDef:"
+
driveIndId
+
" is not exist."
);
new
CalIndAverageAndRankMsg
(-
1
,
//返回父actor信息
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
new
CalIndAverageAndRankMsg
(-
1
,
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
}
else
{
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
unit
=
driveIndDef
.
getIndUnit
();
//指标单位
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
indType
=
driveIndDef
.
getIndRule
();
//指标类型:正向 反向
}
else
{
scoreCardId
=
driveIndDef
.
getIndCalScoreRule
();
//指标评分规则
unit
=
driveIndDef
.
getIndUnit
();
//指标单位
indType
=
driveIndDef
.
getIndRule
();
//指标类型:正向 反向
//获取考核指标的公式
scoreCardId
=
driveIndDef
.
getIndCalScoreRule
();
//指标评分规则
driveIndFormula
=
driveIndDef
.
getIndFormat
();
averageDriveIndFormula
=
driveIndDef
.
getIndFormat
();
//定义用于返回父actor算平均分用的公式
//获取考核指标的公式
driveIndFormula
=
driveIndDef
.
getIndFormat
();
Pattern
p
=
Pattern
.
compile
(
"(\\[[^\\]]*\\])"
);
averageDriveIndFormula
=
driveIndDef
.
getIndFormat
();
//定义用于返回父actor算平均分用的公式
Matcher
m
=
p
.
matcher
(
driveIndFormula
);
while
(
m
.
find
()){
Pattern
p
=
Pattern
.
compile
(
"(\\[[^\\]]*\\])"
);
indIdList
.
add
(
m
.
group
().
substring
(
1
,
m
.
group
().
length
()-
1
));
Matcher
m
=
p
.
matcher
(
driveIndFormula
);
}
while
(
m
.
find
())
{
//获取公式中的基础指标id
indIdList
.
add
(
m
.
group
().
substring
(
1
,
m
.
group
().
length
()
-
1
));
indIdSize
=
indIdList
.
size
();
}
if
(!
indIdList
.
isEmpty
())
{
//获取公式中的基础指标id
for
(
String
indId
:
indIdList
)
{
indIdSize
=
indIdList
.
size
();
GetBaseIndValueMsg
getBaseIndValueMsg
=
new
GetBaseIndValueMsg
(
if
(!
indIdList
.
isEmpty
())
{
indId
,
driveIndIdObjCalMsg
.
getDimValues
(),
for
(
String
indId
:
indIdList
)
{
driveIndIdObjCalMsg
.
getCode
());
GetBaseIndValueMsg
getBaseIndValueMsg
=
new
GetBaseIndValueMsg
(
ActorRef
getBaseIndValueActor
=
this
.
getContext
()
indId
,
driveIndIdObjCalMsg
.
getDimValues
(),
.
actorOf
(
Props
.
create
(
GetBaseIndValueActor
.
class
,
driveIndIdObjCalMsg
.
getCode
());
()->
new
GetBaseIndValueActor
()));
//传入日志id
getBaseIndValueActor
.
tell
(
getBaseIndValueMsg
,
getSelf
());
getBaseIndValueMsg
.
setCompCalLogId
(
compCalLogId
);
ActorRef
getBaseIndValueActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
GetBaseIndValueActor
.
class
,
()
->
new
GetBaseIndValueActor
()));
getBaseIndValueActor
.
tell
(
getBaseIndValueMsg
,
getSelf
());
}
}
}
}
}
}
})
})
.
match
(
BaseIndValueMsg
.
class
,
baseIndValueMsg
->
{
.
match
(
BaseIndValueMsg
.
class
,
baseIndValueMsg
->{
//根据日志记录id获取日志
//根据日志记录id获取日志
CompareUnitCalLog
compCalLog
=
null
;
CompareUnitCalLog
compCalLog
=
null
;
if
(
compCalLogId
!=
null
)
{
if
(
compCalLogId
!=
null
)
{
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
}
}
if
(
baseIndValueMsg
.
getIsFinish
()
==
0
)
{
if
(
baseIndValueMsg
.
getIsFinish
()==
0
)
{
//日志填充
//日志填充
if
(
compCalLog
!=
null
)
{
if
(
compCalLog
!=
null
)
{
// String logInfo = compCalLog.getLogInfo();
// String logInfo = compCalLog.getLogInfo();
// compCalLog.setStatus(0);
// compCalLog.setStatus(0);
// if(StringUtils.isNotBlank(logInfo)) {
// if(StringUtils.isNotBlank(logInfo)) {
...
@@ -159,33 +165,34 @@ public class DriveIndIdObjCalActor extends AbstractActor{
...
@@ -159,33 +165,34 @@ public class DriveIndIdObjCalActor extends AbstractActor{
// }else {
// }else {
// compCalLog.setLogInfo(baseIndValueMsg.getConfirmMessage()+"</n>");
// compCalLog.setLogInfo(baseIndValueMsg.getConfirmMessage()+"</n>");
// }
// }
compCalLog
.
setLogInfo
(
"运算失败:指标为空"
);
compCalLog
.
setStatus
(
0
);
compCalLog
.
setLogInfo
(
"运算过程:有指标为空"
);
}
logger
.
info
(
"日志信息::{},日志id{}"
,
baseIndValueMsg
.
getConfirmMessage
(),
compCalLogId
);
}
}
logger
.
info
(
"日志信息::{},日志id{}"
,
baseIndValueMsg
.
getConfirmMessage
(),
compCalLogId
);
String
indValue
=
baseIndValueMsg
.
getValue
();
}
//如果指标值返回空值
String
indValue
=
baseIndValueMsg
.
getValue
();
if
(
StringUtils
.
isBlank
(
indValue
))
{
//如果指标值返回空值
indValue
=
"0.00"
;
if
(
StringUtils
.
isBlank
(
indValue
))
{
indValue
=
"0.00"
;
}
try
{
if
(
indValue
.
indexOf
(
"."
)<
0
)
{
indValue
+=
".00"
;
}
}
driveIndFormula
=
driveIndFormula
.
replace
(
"["
+
baseIndValueMsg
.
getIndId
()+
"]"
,
try
{
indValue
);
if
(
indValue
.
indexOf
(
"."
)
<
0
)
{
//替换公式中的基础指标id为确定指标值
indValue
+=
".00"
;
//env.put(baseIndValueMsg.getIndId(), Double.valueOf(indValue));
}
}
catch
(
Exception
e
)
{
driveIndFormula
=
driveIndFormula
.
replace
(
"["
+
baseIndValueMsg
.
getIndId
()
+
"]"
,
e
.
printStackTrace
();
indValue
);
logger
.
error
(
"driveIndId:"
+
driveIndId
+
";"
+
//替换公式中的基础指标id为确定指标值
"formula:"
+
driveIndFormula
+
";"
+
//env.put(baseIndValueMsg.getIndId(), Double.valueOf(indValue));
"errorValue:"
+
indValue
+
";"
+
"paramEnv:"
+
env
);
}
catch
(
Exception
e
)
{
//日志记录
e
.
printStackTrace
();
//运算失败
logger
.
error
(
"driveIndId:"
+
driveIndId
+
";"
+
if
(
compCalLog
!=
null
){
"formula:"
+
driveIndFormula
+
";"
+
compCalLog
.
setStatus
(
0
);
"errorValue:"
+
indValue
+
";"
+
"paramEnv:"
+
env
);
//String logInfo = compCalLog.getLogInfo();
//日志记录
//运算失败
if
(
compCalLog
!=
null
)
{
compCalLog
.
setStatus
(
0
);
//String logInfo = compCalLog.getLogInfo();
// if(StringUtils.isNotBlank(logInfo)) {
// if(StringUtils.isNotBlank(logInfo)) {
// logInfo+="替换公式值出错:driveIndId:"+driveIndId+";"+
// logInfo+="替换公式值出错:driveIndId:"+driveIndId+";"+
// "formula:"+driveIndFormula+";"+
// "formula:"+driveIndFormula+";"+
...
@@ -196,71 +203,71 @@ public class DriveIndIdObjCalActor extends AbstractActor{
...
@@ -196,71 +203,71 @@ public class DriveIndIdObjCalActor extends AbstractActor{
// "formula:"+driveIndFormula+";"+
// "formula:"+driveIndFormula+";"+
// "errorValue:"+indValue+";"+"paramEnv:"+env+"</n>");
// "errorValue:"+indValue+";"+"paramEnv:"+env+"</n>");
// }
// }
compCalLog
.
setLogInfo
(
"运算公式出错"
);
compCalLog
.
setLogInfo
(
"运算公式出错"
);
//保存日志
//保存日志
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
}
}
confirmList
.
add
(
baseIndValueMsg
.
getIsFinish
());
confirmList
.
add
(
baseIndValueMsg
.
getIsFinish
());
if
(++
numberOfConfirm
>=
indIdSize
)
{
//子actor全部返回
if
(++
numberOfConfirm
>=
indIdSize
)
{
//子actor全部返回
if
(!
confirmList
.
contains
(
0
))
{
//取所有基础指标值没错
if
(!
confirmList
.
contains
(
0
))
{
//取所有基础指标值没错
//进行考核指标值计算
//进行考核指标值计算
try
{
try
{
String
driveIndValue
=
AviatorEvaluator
.
execute
(
driveIndFormula
).
toString
();
String
driveIndValue
=
AviatorEvaluator
.
execute
(
driveIndFormula
).
toString
();
//保留四位小数
//保留四位小数
if
(!
driveIndValue
.
equals
(
"NaN"
)
&&
!
driveIndValue
.
equals
(
"Infinite"
))
{
if
(!
driveIndValue
.
equals
(
"NaN"
)
&&
!
driveIndValue
.
equals
(
"Infinite"
))
{
driveIndValue
=
String
.
format
(
"%.4f"
,
driveIndValue
=
String
.
format
(
"%.4f"
,
new
BigDecimal
(
Double
.
valueOf
(
driveIndValue
)));
new
BigDecimal
(
Double
.
valueOf
(
driveIndValue
)));
}
if
(
"0"
.
equals
(
isTest
))
{
//试运行
//判断结果表中是否已存在该结果数据,存在则覆盖
TestDriveIndCalResultDef
driveIndCalResult
=
testDriveIndCalResultService
.
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
,
code
);
if
(
driveIndCalResult
==
null
)
{
driveIndCalResult
=
new
TestDriveIndCalResultDef
(
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
"1"
,
"1"
,
"admin"
,
code
,
baseIndValueMsg
.
getCompareObjDesc
());
}
else
{
driveIndCalResult
.
setCode
(
code
);
driveIndCalResult
.
setUnit
(
unit
);
driveIndCalResult
.
setValue
(
driveIndValue
);
driveIndCalResult
.
setLastUpdateTime
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
}
}
//保存进考核指标结果表中
if
(
"0"
.
equals
(
isTest
))
{
//试运行
testDriveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
//判断结果表中是否已存在该结果数据,存在则覆盖
//返回指标值回去算平均值和排名
TestDriveIndCalResultDef
driveIndCalResult
=
testDriveIndCalResultService
.
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
,
code
);
new
CalIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
if
(
driveIndCalResult
==
null
)
{
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
driveIndCalResult
=
new
TestDriveIndCalResultDef
(
compareId
,
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
"1"
,
"1"
,
"admin"
,
code
,
baseIndValueMsg
.
getCompareObjDesc
());
}
else
{
}
else
{
//判断结果表中是否已存在该结果数据,存在则覆盖
driveIndCalResult
.
setCode
(
code
);
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
driveIndCalResult
.
setUnit
(
unit
);
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
,
code
);
driveIndCalResult
.
setValue
(
driveIndValue
);
if
(
driveIndCalResult
==
null
)
{
driveIndCalResult
.
setLastUpdateTime
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
driveIndCalResult
=
new
DriveIndCalResultDef
(
compareId
,
}
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
//保存进考核指标结果表中
"1"
,
"1"
,
"admin"
,
code
,
baseIndValueMsg
.
getCompareObjDesc
());
testDriveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
}
else
{
//返回指标值回去算平均值和排名
driveIndCalResult
.
setCode
(
code
);
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
driveIndCalResult
.
setUnit
(
unit
);
new
CalIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
driveIndCalResult
.
setValue
(
driveIndValue
);
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
driveIndCalResult
.
setLastUpdateTime
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
else
{
//判断结果表中是否已存在该结果数据,存在则覆盖
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
,
code
);
if
(
driveIndCalResult
==
null
)
{
driveIndCalResult
=
new
DriveIndCalResultDef
(
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
"1"
,
"1"
,
"admin"
,
code
,
baseIndValueMsg
.
getCompareObjDesc
());
}
else
{
driveIndCalResult
.
setCode
(
code
);
driveIndCalResult
.
setUnit
(
unit
);
driveIndCalResult
.
setValue
(
driveIndValue
);
driveIndCalResult
.
setLastUpdateTime
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
}
//保存进考核指标结果表中
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
//返回指标值回去算平均值和排名
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
CalIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
}
//保存进考核指标结果表中
}
catch
(
Exception
e
)
{
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
//判断结果表中是否已存在该结果数据,存在则覆盖
//返回指标值回去算平均值和排名
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
CalIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
}
catch
(
Exception
e
)
{
//判断结果表中是否已存在该结果数据,存在则覆盖
// DriveIndCalResultDef driveIndCalResult = driveIndCalResultService.
// DriveIndCalResultDef driveIndCalResult = driveIndCalResultService.
// findCalResultDataIsExist(compareId, compareObj, driveIndId, date);
// findCalResultDataIsExist(compareId, compareObj, driveIndId, date);
// if(driveIndCalResult==null) {
// if(driveIndCalResult==null) {
...
@@ -274,10 +281,10 @@ public class DriveIndIdObjCalActor extends AbstractActor{
...
@@ -274,10 +281,10 @@ public class DriveIndIdObjCalActor extends AbstractActor{
// driveIndCalResult.setLastUpdateTime(DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"));
// driveIndCalResult.setLastUpdateTime(DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"));
// }
// }
// driveIndCalResultService.saveOrUpdate(driveIndCalResult);
// driveIndCalResultService.saveOrUpdate(driveIndCalResult);
logger
.
error
(
"driveIndId:"
+
driveIndId
+
";"
+
logger
.
error
(
"driveIndId:"
+
driveIndId
+
";"
+
"paramEnv:"
+
env
+
";formula:"
+
driveIndFormula
);
"paramEnv:"
+
env
+
";formula:"
+
driveIndFormula
);
//日志记录
//日志记录
// String logInfo = compCalLog.getLogInfo();
// String logInfo = compCalLog.getLogInfo();
// if(StringUtils.isNotBlank(logInfo)) {
// if(StringUtils.isNotBlank(logInfo)) {
// logInfo+="计算考核指标出错:driveIndId:"+driveIndId+";"+
// logInfo+="计算考核指标出错:driveIndId:"+driveIndId+";"+
...
@@ -288,33 +295,45 @@ public class DriveIndIdObjCalActor extends AbstractActor{
...
@@ -288,33 +295,45 @@ public class DriveIndIdObjCalActor extends AbstractActor{
// "paramEnv:"+env+";formula:"+driveIndFormula+"</n>");
// "paramEnv:"+env+";formula:"+driveIndFormula+"</n>");
// }
// }
//保存日志
if
(
compCalLog
!=
null
)
{
compCalLog
.
setLogInfo
(
"计算考核指标出错"
);
compCalLog
.
setStatus
(
0
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
//表示计算错误,不生成考核结果
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
CalIndAverageAndRankMsg
(-
1
,
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
}
else
{
//返回考核指标因为考核指标公式中的数据项不存在而导致的计算错误标识
//保存日志
//保存日志
if
(
compCalLog
!=
null
)
{
if
(
compCalLog
!=
null
)
{
compCalLog
.
setLogInfo
(
"计算考核指标出错"
);
compCalLog
.
setStatus
(
0
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
//表示计算错误,不生成考核结果
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
CalIndAverageAndRankMsg
(-
1
,
new
CalIndAverageAndRankMsg
(-
1
,
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
}
}
else
{
//返回考核指标因为考核指标公式中的数据项不存在而导致的计算错误标识
//保存日志
if
(
compCalLog
!=
null
)
{
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
CalIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
CalIndAverageAndRankMsg
(-
1
,
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
unit
,
indType
,
scoreCardId
,
averageDriveIndFormula
,
compCalLogId
);
driveIndIdCalActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
}
}
})
})
.
build
();
.
build
();
}
catch
(
Exception
e
){
e
.
printStackTrace
();
CompareUnitCalLog
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
if
(
compCalLog
!=
null
){
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
compCalLog
.
setRunStatus
(
"1"
);
compCalLog
.
setStatus
(
0
);
compCalLog
.
setLogInfo
(
"运算失败"
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
return
receive
;
}
}
}
}
src/main/java/com/keymobile/indicators/akka/actor/indicators/GetBaseIndValueActor.java
View file @
d94d480c
...
@@ -4,6 +4,8 @@ import java.util.Map;
...
@@ -4,6 +4,8 @@ import java.util.Map;
import
com.keymobile.indicators.akka.message.indicators.BaseIndValueMsg
;
import
com.keymobile.indicators.akka.message.indicators.BaseIndValueMsg
;
import
com.keymobile.indicators.akka.message.indicators.GetBaseIndValueMsg
;
import
com.keymobile.indicators.akka.message.indicators.GetBaseIndValueMsg
;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog
;
import
com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService
;
import
com.keymobile.indicators.service.hytobacco.IndicatorsValueService
;
import
com.keymobile.indicators.service.hytobacco.IndicatorsValueService
;
import
com.keymobile.indicators.utils.SpringUtil
;
import
com.keymobile.indicators.utils.SpringUtil
;
...
@@ -13,37 +15,60 @@ public class GetBaseIndValueActor extends AbstractActor{
...
@@ -13,37 +15,60 @@ public class GetBaseIndValueActor extends AbstractActor{
private
IndicatorsValueService
indicatorsValueService
=
SpringUtil
.
getBean
(
IndicatorsValueService
.
class
);
private
IndicatorsValueService
indicatorsValueService
=
SpringUtil
.
getBean
(
IndicatorsValueService
.
class
);
private
CompareUnitCalLogService
compareUnitCalLogService
=
SpringUtil
.
getBean
(
CompareUnitCalLogService
.
class
);
private
Integer
compCalLogId
=
null
;
@Override
@Override
public
Receive
createReceive
()
{
public
Receive
createReceive
()
{
return
receiveBuilder
()
.
match
(
GetBaseIndValueMsg
.
class
,
getBaseIndValueMsg
->
{
Receive
receive
=
null
;
//根据维度值和基础指标id获取指标值
try
{
Map
<
String
,
Object
>
indValueMap
=
indicatorsValueService
.
getIndicatorsValue
(
getBaseIndValueMsg
.
getIndId
(),
getBaseIndValueMsg
.
getDimValue
(),
receive
=
receiveBuilder
()
getBaseIndValueMsg
.
getCode
());
.
match
(
GetBaseIndValueMsg
.
class
,
getBaseIndValueMsg
->
{
if
(
indValueMap
!=
null
)
{
//根据维度值和基础指标id获取指标值
if
(
indValueMap
.
get
(
"value"
)==
null
)
{
//如果指标值为空,返回失败结果
compCalLogId
=
getBaseIndValueMsg
.
getCompCalLogId
();
Map
<
String
,
Object
>
indValueMap
=
indicatorsValueService
.
getIndicatorsValue
(
getBaseIndValueMsg
.
getIndId
(),
getBaseIndValueMsg
.
getDimValue
(),
getBaseIndValueMsg
.
getCode
());
if
(
indValueMap
!=
null
)
{
if
(
indValueMap
.
get
(
"value"
)
==
null
)
{
//如果指标值为空,返回失败结果
//返回指标值结果
getSender
().
tell
(
new
BaseIndValueMsg
(
getBaseIndValueMsg
.
getIndId
()
,
null
,
indValueMap
.
get
(
"compareObjDesc"
).
toString
(),
0
,
"获取指标id:"
+
getBaseIndValueMsg
.
getIndId
()
+
";维度:"
+
getBaseIndValueMsg
.
getDimValue
().
get
(
0
).
getDimvalue
()
+
","
+
getBaseIndValueMsg
.
getDimValue
().
get
(
1
).
getDimvalue
()
+
" 的指标值为空;"
),
getSelf
());
}
else
{
getSender
().
tell
(
new
BaseIndValueMsg
(
getBaseIndValueMsg
.
getIndId
()
,
indValueMap
.
get
(
"value"
).
toString
(),
indValueMap
.
get
(
"compareObjDesc"
).
toString
(),
1
,
""
),
getSelf
());
}
}
else
{
//返回指标值结果
//返回指标值结果
getSender
().
tell
(
new
BaseIndValueMsg
(
getBaseIndValueMsg
.
getIndId
()
getSender
().
tell
(
new
BaseIndValueMsg
(
getBaseIndValueMsg
.
getIndId
(),
null
,
null
,
,
null
,
indValueMap
.
get
(
"compareObjDesc"
).
toString
(),
0
,
0
,
"无法获取指标id:"
+
"获取指标id:"
+
getBaseIndValueMsg
.
getIndId
()
+
";维度:"
+
getBaseIndValueMsg
.
getIndId
()+
";维度:"
+
getBaseIndValueMsg
.
getDimValue
().
get
(
0
).
getDimvalue
()
+
","
+
getBaseIndValueMsg
.
getDimValue
().
get
(
0
).
getDimvalue
()+
","
+
getBaseIndValueMsg
.
getDimValue
().
get
(
1
).
getDimvalue
()
+
" 的指标值;"
),
getSelf
());
getBaseIndValueMsg
.
getDimValue
().
get
(
1
).
getDimvalue
()+
" 的指标值为空;"
),
getSelf
());
}
else
{
getSender
().
tell
(
new
BaseIndValueMsg
(
getBaseIndValueMsg
.
getIndId
()
,
indValueMap
.
get
(
"value"
).
toString
(),
indValueMap
.
get
(
"compareObjDesc"
).
toString
(),
1
,
""
),
getSelf
());
}
}
}
else
{
})
//返回指标值结果
.
build
();
getSender
().
tell
(
new
BaseIndValueMsg
(
getBaseIndValueMsg
.
getIndId
(),
null
,
null
,
}
catch
(
Exception
e
){
0
,
"无法获取指标id:"
+
e
.
printStackTrace
();
getBaseIndValueMsg
.
getIndId
()+
";维度:"
+
getBaseIndValueMsg
.
getDimValue
().
get
(
0
).
getDimvalue
()+
","
+
CompareUnitCalLog
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
getBaseIndValueMsg
.
getDimValue
().
get
(
1
).
getDimvalue
()+
" 的指标值;"
),
getSelf
());
if
(
compCalLog
!=
null
){
}
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
})
compCalLog
.
setRunStatus
(
"1"
);
.
build
();
compCalLog
.
setStatus
(
0
);
compCalLog
.
setLogInfo
(
"运算失败"
);
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
}
}
return
receive
;
}
}
}
}
src/main/java/com/keymobile/indicators/akka/actor/indicators/StartCompareUnitCalActor.java
View file @
d94d480c
...
@@ -63,156 +63,171 @@ public class StartCompareUnitCalActor extends AbstractActor{
...
@@ -63,156 +63,171 @@ public class StartCompareUnitCalActor extends AbstractActor{
@Override
@Override
public
Receive
createReceive
()
{
public
Receive
createReceive
()
{
return
receiveBuilder
()
Receive
receive
=
null
;
.
match
(
StartCompareUnitCalMsg
.
class
,
startCompareUnitCalMsg
->
{
try
{
code
=
startCompareUnitCalMsg
.
getCode
();
receive
=
receiveBuilder
()
isTest
=
startCompareUnitCalMsg
.
getIsTest
();
.
match
(
StartCompareUnitCalMsg
.
class
,
startCompareUnitCalMsg
->
{
String
user
=
startCompareUnitCalMsg
.
getUser
();
code
=
startCompareUnitCalMsg
.
getCode
();
compCalLogId
=
startCompareUnitCalMsg
.
getCompCalLogId
();
isTest
=
startCompareUnitCalMsg
.
getIsTest
();
List
<
CompareUnitDef
>
compareUnitDefs
=
startCompareUnitCalMsg
.
getCompareInitDefs
();
String
user
=
startCompareUnitCalMsg
.
getUser
();
//将对标单元进行分类,需要先执行的先开始进行对标计算
compCalLogId
=
startCompareUnitCalMsg
.
getCompCalLogId
();
List
<
CompareUnitDef
>
compareUnitDefs
=
startCompareUnitCalMsg
.
getCompareInitDefs
();
//将对标单元进行分类,需要先执行的先开始进行对标计算
for
(
CompareUnitDef
unitDef
:
compareUnitDefs
)
{
for
(
CompareUnitDef
unitDef
:
compareUnitDefs
)
{
if
(
"1"
.
equals
(
unitDef
.
getFirstExe
()))
{
if
(
"1"
.
equals
(
unitDef
.
getFirstExe
()))
{
firstExeList
.
add
(
unitDef
);
firstExeList
.
add
(
unitDef
);
}
else
{
}
else
{
afterExeList
.
add
(
unitDef
);
afterExeList
.
add
(
unitDef
);
}
}
//单位评分规则不为空的对标单元加到calTypeExeList中
//单位评分规则不为空的对标单元加到calTypeExeList中
if
(
unitDef
.
getObjScoreRuleId
()!=
null
)
{
if
(
unitDef
.
getObjScoreRuleId
()
!=
null
)
{
//ScoreRule scoreRule = scoreRuleServer.getById(unitDef.getObjScoreRuleId());
//ScoreRule scoreRule = scoreRuleServer.getById(unitDef.getObjScoreRuleId());
//if(scoreRule!=null) {
//if(scoreRule!=null) {
//if(scoreRule.getCalType()!=null && !"0".equals(scoreRule.getCalType())) {
//if(scoreRule.getCalType()!=null && !"0".equals(scoreRule.getCalType())) {
calTypeExeList
.
add
(
unitDef
);
calTypeExeList
.
add
(
unitDef
);
//}
//}
//}
//}
}
}
}
firstExeUnitSize
=
firstExeList
.
size
();
afterExeUnitSize
=
afterExeList
.
size
();
if
(!
firstExeList
.
isEmpty
())
{
for
(
CompareUnitDef
unitDef
:
firstExeList
)
{
CompareUnitCalMsg
compareUnitCalMsg
=
new
CompareUnitCalMsg
(
unitDef
,
startCompareUnitCalMsg
.
getCode
(),
startCompareUnitCalMsg
.
getIsTest
());
//运算者
compareUnitCalMsg
.
setUser
(
user
);
compareUnitCalMsg
.
setCompCalLogId
(
compCalLogId
);
ActorRef
compareUnitCalActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
CompareUnitCalActor
.
class
,
()->
new
CompareUnitCalActor
(
getSelf
())));
compareUnitCalActor
.
tell
(
compareUnitCalMsg
,
getSelf
());
}
}
}
else
{
firstExeUnitSize
=
firstExeList
.
size
();
if
(!
afterExeList
.
isEmpty
())
{
afterExeUnitSize
=
afterExeList
.
size
();
for
(
CompareUnitDef
unitDef
:
afterExeList
)
{
if
(!
firstExeList
.
isEmpty
())
{
for
(
CompareUnitDef
unitDef
:
firstExeList
)
{
CompareUnitCalMsg
compareUnitCalMsg
=
new
CompareUnitCalMsg
(
unitDef
,
CompareUnitCalMsg
compareUnitCalMsg
=
new
CompareUnitCalMsg
(
unitDef
,
startCompareUnitCalMsg
.
getCode
(),
startCompareUnitCalMsg
.
getCode
(),
startCompareUnitCalMsg
.
getIsTest
());
startCompareUnitCalMsg
.
getIsTest
());
//运算者
compareUnitCalMsg
.
setUser
(
user
);
compareUnitCalMsg
.
setCompCalLogId
(
compCalLogId
);
compareUnitCalMsg
.
setCompCalLogId
(
compCalLogId
);
ActorRef
compareUnitCalActor
=
this
.
getContext
()
ActorRef
compareUnitCalActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
CompareUnitCalActor
.
class
,
.
actorOf
(
Props
.
create
(
CompareUnitCalActor
.
class
,
()
->
new
CompareUnitCalActor
(
getSelf
())));
()
->
new
CompareUnitCalActor
(
getSelf
())));
compareUnitCalActor
.
tell
(
compareUnitCalMsg
,
getSelf
());
compareUnitCalActor
.
tell
(
compareUnitCalMsg
,
getSelf
());
}
}
}
else
{
}
else
{
//发送确认消息给父actor
if
(!
afterExeList
.
isEmpty
())
{
CurrentCompUnitExeMsg
currentCompUnitExeMsg
=
new
CurrentCompUnitExeMsg
(
1
,
""
);
for
(
CompareUnitDef
unitDef
:
afterExeList
)
{
beforeCompareUnitActor
.
tell
(
currentCompUnitExeMsg
,
ActorRef
.
noSender
());
CompareUnitCalMsg
compareUnitCalMsg
=
new
CompareUnitCalMsg
(
unitDef
,
if
(
"0"
.
equals
(
isTest
))
{
startCompareUnitCalMsg
.
getCode
(),
logger
.
info
(
"对标单元试运行计算完成"
);
startCompareUnitCalMsg
.
getIsTest
());
}
else
{
compareUnitCalMsg
.
setCompCalLogId
(
compCalLogId
);
logger
.
info
(
"对标单元计算完成"
);
ActorRef
compareUnitCalActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
CompareUnitCalActor
.
class
,
()
->
new
CompareUnitCalActor
(
getSelf
())));
compareUnitCalActor
.
tell
(
compareUnitCalMsg
,
getSelf
());
}
}
else
{
//发送确认消息给父actor
CurrentCompUnitExeMsg
currentCompUnitExeMsg
=
new
CurrentCompUnitExeMsg
(
1
,
""
);
beforeCompareUnitActor
.
tell
(
currentCompUnitExeMsg
,
ActorRef
.
noSender
());
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"对标单元试运行计算完成"
);
}
else
{
logger
.
info
(
"对标单元计算完成"
);
}
}
}
}
}
}
})
})
.
match
(
FirstExeConfirmMsg
.
class
,
firstExeConfirmMsg
->
{
.
match
(
FirstExeConfirmMsg
.
class
,
firstExeConfirmMsg
->
{
if
(++
numberOfConfirm
>=
firstExeUnitSize
)
{
//全部先执行的子actor全部返回
if
(++
numberOfConfirm
>=
firstExeUnitSize
)
{
//全部先执行的子actor全部返回
//再执行后执行的actor
//再执行后执行的actor
if
(!
afterExeList
.
isEmpty
())
{
if
(!
afterExeList
.
isEmpty
())
{
for
(
CompareUnitDef
unitDef
:
afterExeList
)
{
for
(
CompareUnitDef
unitDef
:
afterExeList
)
{
CompareUnitCalMsg
compareUnitCalMsg
=
new
CompareUnitCalMsg
(
unitDef
,
CompareUnitCalMsg
compareUnitCalMsg
=
new
CompareUnitCalMsg
(
unitDef
,
code
,
isTest
);
code
,
isTest
);
compareUnitCalMsg
.
setCompCalLogId
(
compCalLogId
);
compareUnitCalMsg
.
setCompCalLogId
(
compCalLogId
);
ActorRef
compareUnitCalActor
=
this
.
getContext
()
ActorRef
compareUnitCalActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
CompareUnitCalActor
.
class
,
.
actorOf
(
Props
.
create
(
CompareUnitCalActor
.
class
,
()
->
new
CompareUnitCalActor
(
getSelf
())));
()->
new
CompareUnitCalActor
(
getSelf
())));
compareUnitCalActor
.
tell
(
compareUnitCalMsg
,
getSelf
());
compareUnitCalActor
.
tell
(
compareUnitCalMsg
,
getSelf
());
}
}
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"进行后执行对标单元试运行计算...."
);
logger
.
info
(
"进行后执行对标单元试运行计算...."
);
}
else
{
}
else
{
logger
.
info
(
"进行后执行对标单元计算...."
);
logger
.
info
(
"进行后执行对标单元计算...."
);
}
}
else
{
if
(!
calTypeExeList
.
isEmpty
())
{
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"计算试运行对标单元单位评分......"
);
}
else
{
logger
.
info
(
"计算对标单元单位评分......"
);
}
for
(
CompareUnitDef
unitDef
:
calTypeExeList
)
{
//试运行
if
(
"0"
.
equals
(
isTest
))
{
testScoreRuleServer
.
testCalObjScore
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
}
else
{
scoreRuleServer
.
calObjScore
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
}
}
}
//发送确认消息给父actor
CurrentCompUnitExeMsg
currentCompUnitExeMsg
=
new
CurrentCompUnitExeMsg
(
1
,
""
);
beforeCompareUnitActor
.
tell
(
currentCompUnitExeMsg
,
ActorRef
.
noSender
());
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"对标单元试运行计算完成"
);
}
else
{
logger
.
info
(
"对标单元计算完成"
);
}
}
}
}
else
{
}
if
(!
calTypeExeList
.
isEmpty
())
{
})
if
(
"0"
.
equals
(
isTest
))
{
.
match
(
AfterExeConfirmMsg
.
class
,
afterExeConfirmMsg
->
{
if
(++
numberOfAfterConfirm
>=
afterExeUnitSize
)
{
//全部后执行的子actor全部返回
if
(!
calTypeExeList
.
isEmpty
())
{
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"计算试运行对标单元单位评分......"
);
logger
.
info
(
"计算试运行对标单元单位评分......"
);
}
else
{
}
else
{
logger
.
info
(
"计算对标单元单位评分......"
);
logger
.
info
(
"计算对标单元单位评分......"
);
}
}
for
(
CompareUnitDef
unitDef
:
calTypeExeList
)
{
for
(
CompareUnitDef
unitDef
:
calTypeExeList
)
{
//试运行
//试运行
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
testScoreRuleServer
.
testCalObjScore
(
unitDef
.
getCompareId
(),
testScoreRuleServer
.
testCalObjScore
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
}
else
{
}
else
{
scoreRuleServer
.
calObjScore
(
unitDef
.
getCompareId
(),
scoreRuleServer
.
calObjScore
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
}
}
}
}
}
}
//发送确认消息给父actor
//发送确认消息给父actor
CurrentCompUnitExeMsg
currentCompUnitExeMsg
=
new
CurrentCompUnitExeMsg
(
1
,
""
);
CurrentCompUnitExeMsg
currentCompUnitExeMsg
=
new
CurrentCompUnitExeMsg
(
1
,
""
);
beforeCompareUnitActor
.
tell
(
currentCompUnitExeMsg
,
ActorRef
.
noSender
());
beforeCompareUnitActor
.
tell
(
currentCompUnitExeMsg
,
ActorRef
.
noSender
());
if
(
"0"
.
equals
(
isTest
))
{
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"对标单元试运行计算完成"
);
logger
.
info
(
"对标单元试运行计算完成"
);
}
else
{
}
else
{
logger
.
info
(
"对标单元计算完成"
);
logger
.
info
(
"对标单元计算完成"
);
}
}
}
}
}
})
})
.
build
();
.
match
(
AfterExeConfirmMsg
.
class
,
afterExeConfirmMsg
->
{
}
catch
(
Exception
e
){
if
(++
numberOfAfterConfirm
>=
afterExeUnitSize
)
{
//全部后执行的子actor全部返回
e
.
printStackTrace
();
if
(!
calTypeExeList
.
isEmpty
())
{
if
(
"0"
.
equals
(
isTest
))
{
CompareUnitCalLog
compCalLog
=
compareUnitCalLogService
.
findById
(
compCalLogId
);
logger
.
info
(
"计算试运行对标单元单位评分......"
);
if
(
compCalLog
!=
null
){
}
else
{
compCalLog
.
setEndTime
(
System
.
currentTimeMillis
()+
""
);
logger
.
info
(
"计算对标单元单位评分......"
);
compCalLog
.
setRunStatus
(
"1"
);
}
compCalLog
.
setStatus
(
0
);
for
(
CompareUnitDef
unitDef
:
calTypeExeList
)
{
compCalLog
.
setLogInfo
(
"运算失败"
);
//试运行
compareUnitCalLogService
.
saveOrUndate
(
compCalLog
);
if
(
"0"
.
equals
(
isTest
))
{
}
testScoreRuleServer
.
testCalObjScore
(
unitDef
.
getCompareId
(),
}
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
return
receive
;
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
}
else
{
scoreRuleServer
.
calObjScore
(
unitDef
.
getCompareId
(),
Arrays
.
asList
(
unitDef
.
getIndIds
().
split
(
","
)),
Arrays
.
asList
(
unitDef
.
getCompareObjs
().
split
(
","
)),
unitDef
.
getDate
(),
unitDef
.
getObjScoreRuleId
(),
code
);
}
}
}
//发送确认消息给父actor
CurrentCompUnitExeMsg
currentCompUnitExeMsg
=
new
CurrentCompUnitExeMsg
(
1
,
""
);
beforeCompareUnitActor
.
tell
(
currentCompUnitExeMsg
,
ActorRef
.
noSender
());
if
(
"0"
.
equals
(
isTest
))
{
logger
.
info
(
"对标单元试运行计算完成"
);
}
else
{
logger
.
info
(
"对标单元计算完成"
);
}
}
})
.
build
();
}
}
}
}
src/main/java/com/keymobile/indicators/akka/message/indicators/GetBaseIndValueMsg.java
View file @
d94d480c
...
@@ -17,13 +17,23 @@ public class GetBaseIndValueMsg implements Serializable{
...
@@ -17,13 +17,23 @@ public class GetBaseIndValueMsg implements Serializable{
private
List
<
DimValue
>
dimValue
=
new
ArrayList
<>();
//维度值
private
List
<
DimValue
>
dimValue
=
new
ArrayList
<>();
//维度值
private
String
code
;
private
String
code
;
private
Integer
compCalLogId
;
public
GetBaseIndValueMsg
(
String
indId
,
List
<
DimValue
>
dimValue
,
String
code
)
{
public
GetBaseIndValueMsg
(
String
indId
,
List
<
DimValue
>
dimValue
,
String
code
)
{
this
.
indId
=
indId
;
this
.
indId
=
indId
;
this
.
dimValue
.
addAll
(
dimValue
);
this
.
dimValue
.
addAll
(
dimValue
);
this
.
code
=
code
;
this
.
code
=
code
;
}
}
public
Integer
getCompCalLogId
()
{
return
compCalLogId
;
}
public
void
setCompCalLogId
(
Integer
compCalLogId
)
{
this
.
compCalLogId
=
compCalLogId
;
}
public
List
<
DimValue
>
getDimValue
()
{
public
List
<
DimValue
>
getDimValue
()
{
return
dimValue
;
return
dimValue
;
}
}
...
...
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