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
7c9cf290
Commit
7c9cf290
authored
Jul 16, 2020
by
zhangkb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
去掉多余冗余代码
parent
41052a89
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
3 additions
and
883 deletions
+3
-883
DriveIndCalculateActor.java
...ymobile/indicators/akka/actor/DriveIndCalculateActor.java
+0
-205
IndGetValueActor.java
...com/keymobile/indicators/akka/actor/IndGetValueActor.java
+0
-40
DriveIndCalculateRegionActor.java
...ors/akka/actor/specific/DriveIndCalculateRegionActor.java
+0
-133
DriveIndCompareObjActor.java
...dicators/akka/actor/specific/DriveIndCompareObjActor.java
+0
-36
DriveIndCalculateMsg.java
...ymobile/indicators/akka/message/DriveIndCalculateMsg.java
+0
-74
IndGetValueMsg.java
...com/keymobile/indicators/akka/message/IndGetValueMsg.java
+0
-50
IndValueMsg.java
...va/com/keymobile/indicators/akka/message/IndValueMsg.java
+0
-81
DriveIndAverageAndRankMsg.java
...tors/akka/message/specific/DriveIndAverageAndRankMsg.java
+0
-115
DriveIndCalculateRegionMsg.java
...ors/akka/message/specific/DriveIndCalculateRegionMsg.java
+0
-60
DriveIndCompareObjMsg.java
...dicators/akka/message/specific/DriveIndCompareObjMsg.java
+0
-61
DriveIndCalResultCtrl.java
...obile/indicators/api/hytobacco/DriveIndCalResultCtrl.java
+0
-7
IndicatorReportCtrl.java
.../keymobile/indicators/api/report/IndicatorReportCtrl.java
+2
-1
DriveIndCalResultService.java
...ndicators/service/hytobacco/DriveIndCalResultService.java
+0
-20
IndicatorsReportService.java
...le/indicators/service/report/IndicatorsReportService.java
+1
-0
No files found.
src/main/java/com/keymobile/indicators/akka/actor/DriveIndCalculateActor.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
actor
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
com.google.common.collect.Maps
;
import
com.googlecode.aviator.AviatorEvaluator
;
import
com.keymobile.indicators.akka.message.DriveIndCalculateMsg
;
import
com.keymobile.indicators.akka.message.IndGetValueMsg
;
import
com.keymobile.indicators.akka.message.IndValueMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.service.hytobacco.DriveIndCalResultService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndDefService
;
import
com.keymobile.indicators.utils.SpringUtil
;
import
akka.actor.AbstractActor
;
import
akka.actor.ActorRef
;
import
akka.actor.Props
;
public
class
DriveIndCalculateActor
extends
AbstractActor
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DriveIndCalculateActor
.
class
);
private
DriveIndDefService
driveIndDefService
=
SpringUtil
.
getBean
(
DriveIndDefService
.
class
);
private
DriveIndCalResultService
driveIndCalResultService
=
SpringUtil
.
getBean
(
DriveIndCalResultService
.
class
);
private
int
numberOfConfirm
=
0
;
//定义返回确认消息的子actor
private
int
indIdSize
=
0
;
//考核指标内包含的基础指标id的个数
//定义线程安全的收集反馈确认消息list
private
List
<
Integer
>
confirmList
=
new
CopyOnWriteArrayList
<>();
private
String
driveIndFormula
;
//考核指标公式
private
String
averageDriveIndFormula
;
//需要传递回去算平均值的考核指标公式
private
String
driveIndDataType
;
//考核指标数据类型
private
String
compareId
;
private
String
compareObj
;
private
int
date
;
private
String
unit
;
private
Integer
markType
;
private
String
driveIndId
;
private
Map
<
String
,
Object
>
env
=
Maps
.
newHashMap
();
private
String
indType
;
//正向,反向
private
String
code
;
//编码标识
private
final
ActorRef
driveIndCalculateRegionActor
;
//定义schemaActor,用于返回给schemaActor确认信息
static
public
Props
props
(
ActorRef
driveIndCalculateRegionActor
)
{
return
Props
.
create
(
DriveIndCalculateActor
.
class
,()->
new
DriveIndCalculateActor
(
driveIndCalculateRegionActor
));
}
public
DriveIndCalculateActor
(
ActorRef
driveIndCalculateRegionActor
)
{
this
.
driveIndCalculateRegionActor
=
driveIndCalculateRegionActor
;
}
@Override
public
Receive
createReceive
()
{
return
receiveBuilder
()
.
match
(
DriveIndCalculateMsg
.
class
,
driveIndCalculateMsg
->
{
compareId
=
driveIndCalculateMsg
.
getCompareId
();
compareObj
=
driveIndCalculateMsg
.
getCompareObj
();
date
=
driveIndCalculateMsg
.
getDate
();
driveIndId
=
driveIndCalculateMsg
.
getDriveIndId
();
List
<
String
>
indIdList
=
new
ArrayList
<>();
DriveIndDef
driveIndDef
=
driveIndDefService
.
getById
(
driveIndId
);
unit
=
driveIndDef
.
getIndUnit
();
//指标单位
indType
=
driveIndDef
.
getIndType
();
//指标类型:正向 反向
markType
=
driveIndDef
.
getIndCalScoreRule
();
//指标评分规则
code
=
driveIndDef
.
getCode
();
//获取考核指标的公式
driveIndFormula
=
driveIndDef
.
getIndFormat
();
averageDriveIndFormula
=
driveIndDef
.
getIndFormat
();
Pattern
p
=
Pattern
.
compile
(
"(\\[[^\\]]*\\])"
);
Matcher
m
=
p
.
matcher
(
driveIndFormula
);
while
(
m
.
find
()){
indIdList
.
add
(
m
.
group
().
substring
(
1
,
m
.
group
().
length
()-
1
));
}
//获取公式中的基础指标id
indIdSize
=
indIdList
.
size
();
if
(!
indIdList
.
isEmpty
())
{
for
(
String
indId
:
indIdList
)
{
//根据基础指标id获取基础指标
String
indValueType
=
null
;
//基础指标值的数据类型
IndGetValueMsg
indGetValueMsg
=
new
IndGetValueMsg
(
indId
,
driveIndCalculateMsg
.
getDimValues
(),
indValueType
);
ActorRef
indGetValueActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
IndGetValueActor
.
class
,
()->
new
IndGetValueActor
()));
indGetValueActor
.
tell
(
indGetValueMsg
,
getSelf
());
}
}
})
.
match
(
IndValueMsg
.
class
,
indValueMsg
->{
if
(
indValueMsg
.
getIsFinish
()==
0
)
{
logger
.
info
(
indValueMsg
.
getConfirmMessage
());
}
else
{
//判断类型,进行转换
String
indValueDataType
=
indValueMsg
.
getType
();
String
indValue
=
indValueMsg
.
getValue
();
if
(
StringUtils
.
isBlank
(
indValue
))
{
indValue
=
"0.0"
;
}
try
{
driveIndFormula
=
driveIndFormula
.
replace
(
"["
+
indValueMsg
.
getIndId
()+
"]"
,
indValue
);
//替换公式中的基础指标id为确定指标值
//env.put(indValueMsg.getIndId(), Double.valueOf(indValue));
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
logger
.
error
(
driveIndFormula
+
";"
+
env
);
}
}
confirmList
.
add
(
indValueMsg
.
getIsFinish
());
if
(++
numberOfConfirm
>=
indIdSize
)
{
//子actor全部返回
if
(!
confirmList
.
contains
(
0
))
{
//取所有基础指标值没错
driveIndDataType
=
null
;
//进行考核指标值计算
try
{
String
driveIndValue
=
AviatorEvaluator
.
execute
(
driveIndFormula
).
toString
();
//保留四位小数
if
(!
driveIndValue
.
equals
(
"NaN"
)
&&
!
driveIndValue
.
equals
(
"Infinite"
))
{
driveIndValue
=
String
.
format
(
"%.4f"
,
new
BigDecimal
(
Double
.
valueOf
(
driveIndValue
)));
}
//判断结果表中是否已存在该结果数据,存在则覆盖
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
);
if
(
driveIndCalResult
==
null
)
{
driveIndCalResult
=
new
DriveIndCalResultDef
(
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
"1"
,
"1"
,
"admin"
,
code
,
indValueMsg
.
getCompareObjDesc
());
}
else
{
driveIndCalResult
.
setValue
(
driveIndValue
);
}
//保存进考核指标结果表中
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
//返回指标值回去算平均值和排名
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
DriveIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
indType
,
markType
,
averageDriveIndFormula
);
driveIndCalculateRegionActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
catch
(
Exception
e
)
{
//判断结果表中是否已存在该结果数据,存在则覆盖
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
);
if
(
driveIndCalResult
==
null
)
{
driveIndCalResult
=
new
DriveIndCalResultDef
(
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
unit
,
"1"
,
"0"
,
"admin"
,
code
,
indValueMsg
.
getCompareObjDesc
());
}
else
{
driveIndCalResult
.
setValue
(
"NaN"
);
}
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
DriveIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
unit
,
indType
,
markType
,
averageDriveIndFormula
);
driveIndCalculateRegionActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
logger
.
error
(
"env:"
+
env
+
";formula:"
+
driveIndFormula
);
}
}
else
{
//返回考核指标因为考核指标公式中的数据项不存在而导致的计算错误标识
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
DriveIndAverageAndRankMsg
(-
1
,
compareId
,
driveIndId
,
compareObj
,
date
,
"NaN"
,
unit
,
indType
,
markType
,
averageDriveIndFormula
);
driveIndCalculateRegionActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
}
})
.
build
();
}
}
src/main/java/com/keymobile/indicators/akka/actor/IndGetValueActor.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
actor
;
import
java.util.Map
;
import
com.keymobile.indicators.akka.message.IndGetValueMsg
;
import
com.keymobile.indicators.akka.message.IndValueMsg
;
import
com.keymobile.indicators.service.hytobacco.IndicatorsValueService
;
import
com.keymobile.indicators.utils.SpringUtil
;
import
akka.actor.AbstractActor
;
public
class
IndGetValueActor
extends
AbstractActor
{
private
IndicatorsValueService
indicatorsValueService
=
SpringUtil
.
getBean
(
IndicatorsValueService
.
class
);
@Override
public
Receive
createReceive
()
{
return
receiveBuilder
()
.
match
(
IndGetValueMsg
.
class
,
indCalculateMsg
->
{
//根据维度值和基础指标id获取指标值
Map
<
String
,
Object
>
indValueMap
=
indicatorsValueService
.
getIndicatorsValue
(
indCalculateMsg
.
getIndId
(),
indCalculateMsg
.
getDimValue
());
if
(
indValueMap
!=
null
)
{
//返回指标值结果
getSender
().
tell
(
new
IndValueMsg
(
indCalculateMsg
.
getIndId
()
,
indValueMap
.
get
(
"value"
).
toString
()
,
indCalculateMsg
.
getIndValueType
(),
indValueMap
.
get
(
"compareObjDesc"
).
toString
(),
1
,
""
),
getSelf
());
}
else
{
//返回指标值结果
getSender
().
tell
(
new
IndValueMsg
(
indCalculateMsg
.
getIndId
(),
null
,
indCalculateMsg
.
getIndValueType
(),
null
,
0
,
"无法获取指标id:"
+
indCalculateMsg
.
getIndId
()+
";维度:"
+
indCalculateMsg
.
getDimValue
().
get
(
0
).
getDimvalue
()+
","
+
indCalculateMsg
.
getDimValue
().
get
(
1
).
getDimvalue
()+
" 的指标值"
),
getSelf
());
}
})
.
build
();
}
}
src/main/java/com/keymobile/indicators/akka/actor/specific/DriveIndCalculateRegionActor.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
actor
.
specific
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
com.keymobile.indicators.akka.actor.DriveIndCalculateActor
;
import
com.keymobile.indicators.akka.message.DriveIndCalculateMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCalculateRegionMsg
;
import
com.keymobile.indicators.model.entity.DimValue
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.service.hytobacco.DriveIndCalResultService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndDefService
;
import
com.keymobile.indicators.service.hytobacco.IndScorecardService
;
import
com.keymobile.indicators.utils.CalculateUtils
;
import
com.keymobile.indicators.utils.SpringUtil
;
import
akka.actor.AbstractActor
;
import
akka.actor.ActorRef
;
import
akka.actor.Props
;
public
class
DriveIndCalculateRegionActor
extends
AbstractActor
{
private
DriveIndCalResultService
driveIndCalResultService
=
SpringUtil
.
getBean
(
DriveIndCalResultService
.
class
);
private
IndScorecardService
indScorecardService
=
SpringUtil
.
getBean
(
IndScorecardService
.
class
);
private
DriveIndDefService
driveIndDefService
=
SpringUtil
.
getBean
(
DriveIndDefService
.
class
);
private
int
numberOfConfirm
=
0
;
//定义返回确认消息的子actor
private
int
compareObjSize
=
0
;
//对标对象个数
// private List<String> values = new ArrayList<>();
private
Map
<
String
,
String
>
valueMap
=
new
HashMap
<>();
private
List
<
String
>
compareObjs
=
new
ArrayList
<>();
@Override
public
Receive
createReceive
()
{
return
receiveBuilder
()
.
match
(
DriveIndCalculateRegionMsg
.
class
,
driveIndCalculateRegionMsg
->
{
String
compareId
=
driveIndCalculateRegionMsg
.
getCompareId
();
String
driveIndId
=
driveIndCalculateRegionMsg
.
getDriveIndId
();
List
<
String
>
compareObjs
=
driveIndCalculateRegionMsg
.
getCompareObj
();
int
date
=
driveIndCalculateRegionMsg
.
getDate
();
compareObjSize
=
compareObjs
.
size
();
for
(
String
compareObj
:
compareObjs
)
{
List
<
DimValue
>
dimValueList
=
new
ArrayList
<>();
DimValue
dimCompareObj
=
new
DimValue
(
"dim1"
,
compareObj
,
"varchar"
);
DimValue
dimDateObj
=
new
DimValue
(
"dim2"
,
date
,
"number"
);
dimValueList
.
add
(
dimCompareObj
);
dimValueList
.
add
(
dimDateObj
);
DriveIndCalculateMsg
driveIndCalculateMsg
=
new
DriveIndCalculateMsg
(
compareId
,
driveIndId
,
compareObj
,
date
,
dimValueList
);
//启动akka
ActorRef
driveIndCalculateActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
DriveIndCalculateActor
.
class
,
()->
new
DriveIndCalculateActor
(
getSelf
())));
driveIndCalculateActor
.
tell
(
driveIndCalculateMsg
,
getSelf
());
}
})
.
match
(
DriveIndAverageAndRankMsg
.
class
,
driveIndAverageAndRankMsg
->
{
String
value
=
driveIndAverageAndRankMsg
.
getDriveIndValue
();
String
id
=
String
.
valueOf
(
driveIndAverageAndRankMsg
.
getId
());
String
indType
=
driveIndAverageAndRankMsg
.
getIndType
();
Integer
markType
=
driveIndAverageAndRankMsg
.
getMarkType
();
//评分卡id
if
(!
"-1"
.
equals
(
id
))
{
valueMap
.
put
(
id
,
value
);
// values.add(value);
compareObjs
.
add
(
driveIndAverageAndRankMsg
.
getCompareObj
());
}
if
(++
numberOfConfirm
>=
compareObjSize
)
{
//子actor全部返回
if
(!
valueMap
.
isEmpty
()
&&
!
compareObjs
.
isEmpty
())
{
//考核地区只有一个“全省”的情况下
if
(!
"全省"
.
equals
(
driveIndAverageAndRankMsg
.
getCompareObj
()))
{
//查询有没有全省的考核指标数据
DriveIndCalResultDef
provinceDriveIndCalResult
=
driveIndCalResultService
.
findCompareObjInfo
(
driveIndAverageAndRankMsg
.
getDriveIndId
(),
driveIndAverageAndRankMsg
.
getDate
(),
"全省"
);
String
actualAverage
=
"0.0"
;
if
(
provinceDriveIndCalResult
!=
null
)
{
//获取实际平均分
actualAverage
=
provinceDriveIndCalResult
.
getValue
();
}
//算组内平均数
//String average = CalculateUtils.averageValue(values);
String
average
=
driveIndDefService
.
calGroupAverage
(
driveIndAverageAndRankMsg
.
getIndFormula
(),
compareObjs
,
driveIndAverageAndRankMsg
.
getDate
());
//算组内排名
Map
<
String
,
Integer
>
rankValue
=
CalculateUtils
.
rankValue
(
valueMap
,
indType
);
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
//根据id获取指标值结果
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
driveIndCalResult
.
setAverage
(
average
);
driveIndCalResult
.
setRank
(
entry
.
getValue
());
driveIndCalResult
.
setActualAverage
(
actualAverage
);
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
}
}
//根据评分卡算指标分数
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
//根据id获取指标值结果
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
//计算分数
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
driveIndCalResult
.
getIndId
(),
driveIndCalResult
.
getDate
(),
driveIndCalResult
.
getCompareObj
(),
markType
,
driveIndCalResult
.
getCompareId
(),
compareObjs
);
driveIndCalResult
.
setScore
(
scoreMap
.
get
(
"score"
));
driveIndCalResult
.
setImproveScore
(
scoreMap
.
get
(
"improveScore"
));
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
}
}
}
}
}
})
.
build
();
}
}
src/main/java/com/keymobile/indicators/akka/actor/specific/DriveIndCompareObjActor.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
actor
.
specific
;
import
java.util.List
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCalculateRegionMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCompareObjMsg
;
import
akka.actor.AbstractActor
;
import
akka.actor.ActorRef
;
import
akka.actor.Props
;
public
class
DriveIndCompareObjActor
extends
AbstractActor
{
@Override
public
Receive
createReceive
()
{
return
receiveBuilder
()
.
match
(
DriveIndCompareObjMsg
.
class
,
driveIndCompareObjMsg
->{
String
compareId
=
driveIndCompareObjMsg
.
getCompareId
();
List
<
String
>
driveIndIds
=
driveIndCompareObjMsg
.
getDriveIndIds
();
List
<
String
>
compareObj
=
driveIndCompareObjMsg
.
getCompareObj
();
int
date
=
driveIndCompareObjMsg
.
getDate
();
for
(
String
driveIndId:
driveIndIds
)
{
DriveIndCalculateRegionMsg
driveIndCalculateRegionMsg
=
new
DriveIndCalculateRegionMsg
(
compareId
,
driveIndId
,
compareObj
,
date
);
//start akka
ActorRef
driveIndCalculateRegionActor
=
this
.
getContext
()
.
actorOf
(
Props
.
create
(
DriveIndCalculateRegionActor
.
class
,
()->
new
DriveIndCalculateRegionActor
()));
driveIndCalculateRegionActor
.
tell
(
driveIndCalculateRegionMsg
,
getSelf
());
}
})
.
build
();
}
}
src/main/java/com/keymobile/indicators/akka/message/DriveIndCalculateMsg.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
message
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
import
com.keymobile.indicators.model.entity.DimValue
;
public
class
DriveIndCalculateMsg
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
compareId
;
//对标id
private
String
driveIndId
;
//考核指标id
private
String
compareObj
;
//对标对象
private
int
date
;
private
List
<
DimValue
>
dimValues
=
new
ArrayList
<>();
//维度值list
public
DriveIndCalculateMsg
(
String
compareId
,
String
driveIndId
,
String
compareObj
,
int
date
,
List
<
DimValue
>
dimValues
)
{
this
.
compareId
=
compareId
;
this
.
driveIndId
=
driveIndId
;
this
.
compareObj
=
compareObj
;
this
.
setDate
(
date
);
this
.
dimValues
.
addAll
(
dimValues
);
}
public
String
getCompareId
()
{
return
compareId
;
}
public
void
setCompareId
(
String
compareId
)
{
this
.
compareId
=
compareId
;
}
public
String
getDriveIndId
()
{
return
driveIndId
;
}
public
void
setDriveIndId
(
String
driveIndId
)
{
this
.
driveIndId
=
driveIndId
;
}
public
List
<
DimValue
>
getDimValues
()
{
return
dimValues
;
}
public
void
setDimValues
(
List
<
DimValue
>
dimValues
)
{
this
.
dimValues
.
addAll
(
dimValues
);
}
public
String
getCompareObj
()
{
return
compareObj
;
}
public
void
setCompareObj
(
String
compareObj
)
{
this
.
compareObj
=
compareObj
;
}
public
int
getDate
()
{
return
date
;
}
public
void
setDate
(
int
date
)
{
this
.
date
=
date
;
}
}
src/main/java/com/keymobile/indicators/akka/message/IndGetValueMsg.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
message
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
import
com.keymobile.indicators.model.entity.DimValue
;
public
class
IndGetValueMsg
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
indId
;
//基础指标id
private
List
<
DimValue
>
dimValue
=
new
ArrayList
<>();
//维度值
private
String
indValueType
;
//基础指标值类型
public
IndGetValueMsg
(
String
indId
,
List
<
DimValue
>
dimValue
,
String
indValueType
)
{
this
.
indId
=
indId
;
this
.
dimValue
.
addAll
(
dimValue
);
this
.
setIndValueType
(
indValueType
);
}
public
List
<
DimValue
>
getDimValue
()
{
return
dimValue
;
}
public
void
setDimValue
(
List
<
DimValue
>
dimValue
)
{
this
.
dimValue
.
addAll
(
dimValue
);
}
public
String
getIndId
()
{
return
indId
;
}
public
void
setIndId
(
String
indId
)
{
this
.
indId
=
indId
;
}
public
String
getIndValueType
()
{
return
indValueType
;
}
public
void
setIndValueType
(
String
indValueType
)
{
this
.
indValueType
=
indValueType
;
}
}
src/main/java/com/keymobile/indicators/akka/message/IndValueMsg.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
message
;
import
java.io.Serializable
;
public
class
IndValueMsg
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
indId
;
//基础指标id
private
String
value
;
//指标值
private
String
type
;
//指标值类型
private
String
compareObjDesc
;
//是否完成标识:1.完成 0.未完成
private
Integer
isFinish
;
//日志报告
private
String
confirmMessage
;
public
IndValueMsg
(
String
indId
,
String
value
,
String
type
,
String
compareObjDesc
,
Integer
isFinish
,
String
confirmMessage
)
{
this
.
indId
=
indId
;
this
.
value
=
value
;
this
.
type
=
type
;
this
.
setCompareObjDesc
(
compareObjDesc
);
this
.
isFinish
=
isFinish
;
this
.
confirmMessage
=
confirmMessage
;
}
public
String
getValue
()
{
return
value
;
}
public
void
setValue
(
String
value
)
{
this
.
value
=
value
;
}
public
String
getType
()
{
return
type
;
}
public
void
setType
(
String
type
)
{
this
.
type
=
type
;
}
public
Integer
getIsFinish
()
{
return
isFinish
;
}
public
void
setIsFinish
(
Integer
isFinish
)
{
this
.
isFinish
=
isFinish
;
}
public
String
getConfirmMessage
()
{
return
confirmMessage
;
}
public
void
setConfirmMessage
(
String
confirmMessage
)
{
this
.
confirmMessage
=
confirmMessage
;
}
public
String
getIndId
()
{
return
indId
;
}
public
void
setIndId
(
String
indId
)
{
this
.
indId
=
indId
;
}
public
String
getCompareObjDesc
()
{
return
compareObjDesc
;
}
public
void
setCompareObjDesc
(
String
compareObjDesc
)
{
this
.
compareObjDesc
=
compareObjDesc
;
}
}
src/main/java/com/keymobile/indicators/akka/message/specific/DriveIndAverageAndRankMsg.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
message
.
specific
;
import
java.io.Serializable
;
public
class
DriveIndAverageAndRankMsg
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
Integer
id
;
//id
private
String
compareId
;
private
String
driveIndId
;
private
String
compareObj
;
private
Integer
date
;
private
String
driveIndValue
;
private
String
unit
;
private
String
indType
;
private
Integer
markType
;
private
String
indFormula
;
public
DriveIndAverageAndRankMsg
(
Integer
id
,
String
compareId
,
String
driveIndId
,
String
compareObj
,
Integer
date
,
String
driveIndValue
,
String
unit
,
String
indType
,
Integer
markType
,
String
indFormula
)
{
this
.
id
=
id
;
this
.
compareId
=
compareId
;
this
.
driveIndId
=
driveIndId
;
this
.
compareObj
=
compareObj
;
this
.
date
=
date
;
this
.
driveIndValue
=
driveIndValue
;
this
.
unit
=
unit
;
this
.
indType
=
indType
;
this
.
markType
=
markType
;
this
.
indFormula
=
indFormula
;
}
public
String
getCompareId
()
{
return
compareId
;
}
public
void
setCompareId
(
String
compareId
)
{
this
.
compareId
=
compareId
;
}
public
String
getDriveIndId
()
{
return
driveIndId
;
}
public
void
setDriveIndId
(
String
driveIndId
)
{
this
.
driveIndId
=
driveIndId
;
}
public
String
getCompareObj
()
{
return
compareObj
;
}
public
void
setCompareObj
(
String
compareObj
)
{
this
.
compareObj
=
compareObj
;
}
public
Integer
getDate
()
{
return
date
;
}
public
void
setDate
(
Integer
date
)
{
this
.
date
=
date
;
}
public
String
getDriveIndValue
()
{
return
driveIndValue
;
}
public
void
setDriveIndValue
(
String
driveIndValue
)
{
this
.
driveIndValue
=
driveIndValue
;
}
public
String
getUnit
()
{
return
unit
;
}
public
void
setUnit
(
String
unit
)
{
this
.
unit
=
unit
;
}
public
Integer
getId
()
{
return
id
;
}
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
}
public
String
getIndType
()
{
return
indType
;
}
public
void
setIndType
(
String
indType
)
{
this
.
indType
=
indType
;
}
public
Integer
getMarkType
()
{
return
markType
;
}
public
void
setMarkType
(
Integer
markType
)
{
this
.
markType
=
markType
;
}
public
String
getIndFormula
()
{
return
indFormula
;
}
public
void
setIndFormula
(
String
indFormula
)
{
this
.
indFormula
=
indFormula
;
}
}
src/main/java/com/keymobile/indicators/akka/message/specific/DriveIndCalculateRegionMsg.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
message
.
specific
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
DriveIndCalculateRegionMsg
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
compareId
;
//对标id
private
String
driveIndId
;
//考核指标id
private
List
<
String
>
compareObj
=
new
ArrayList
<>();
//对标对象list
private
int
date
;
//年份
public
DriveIndCalculateRegionMsg
(
String
compareId
,
String
driveIndId
,
List
<
String
>
compareObj
,
int
date
)
{
this
.
compareId
=
compareId
;
this
.
driveIndId
=
driveIndId
;
this
.
compareObj
.
addAll
(
compareObj
);
this
.
date
=
date
;
}
public
String
getCompareId
()
{
return
compareId
;
}
public
void
setCompareId
(
String
compareId
)
{
this
.
compareId
=
compareId
;
}
public
String
getDriveIndId
()
{
return
driveIndId
;
}
public
void
setDriveIndId
(
String
driveIndId
)
{
this
.
driveIndId
=
driveIndId
;
}
public
List
<
String
>
getCompareObj
()
{
return
compareObj
;
}
public
void
setCompareObj
(
List
<
String
>
compareObj
)
{
this
.
compareObj
.
addAll
(
compareObj
);
}
public
int
getDate
()
{
return
date
;
}
public
void
setDate
(
int
date
)
{
this
.
date
=
date
;
}
}
src/main/java/com/keymobile/indicators/akka/message/specific/DriveIndCompareObjMsg.java
deleted
100644 → 0
View file @
41052a89
package
com
.
keymobile
.
indicators
.
akka
.
message
.
specific
;
import
java.io.Serializable
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
DriveIndCompareObjMsg
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
private
String
compareId
;
//对标id
private
List
<
String
>
driveIndIds
=
new
ArrayList
<>();
private
List
<
String
>
compareObj
=
new
ArrayList
<>();
//对标对象list
private
int
date
;
//年份
public
DriveIndCompareObjMsg
(
String
compareId
,
List
<
String
>
driveIndIds
,
List
<
String
>
compareObj
,
int
date
)
{
this
.
compareId
=
compareId
;
this
.
driveIndIds
.
addAll
(
driveIndIds
);
this
.
compareObj
.
addAll
(
compareObj
);
this
.
date
=
date
;
}
public
String
getCompareId
()
{
return
compareId
;
}
public
void
setCompareId
(
String
compareId
)
{
this
.
compareId
=
compareId
;
}
public
List
<
String
>
getDriveIndIds
()
{
return
driveIndIds
;
}
public
void
setDriveIndIds
(
List
<
String
>
driveIndIds
)
{
this
.
driveIndIds
.
addAll
(
driveIndIds
);
}
public
List
<
String
>
getCompareObj
()
{
return
compareObj
;
}
public
void
setCompareObj
(
List
<
String
>
compareObj
)
{
this
.
compareObj
.
addAll
(
compareObj
);
}
public
int
getDate
()
{
return
date
;
}
public
void
setDate
(
int
date
)
{
this
.
date
=
date
;
}
}
src/main/java/com/keymobile/indicators/api/hytobacco/DriveIndCalResultCtrl.java
View file @
7c9cf290
...
@@ -27,13 +27,6 @@ public class DriveIndCalResultCtrl {
...
@@ -27,13 +27,6 @@ public class DriveIndCalResultCtrl {
@Autowired
@Autowired
private
CompareUnitCalLogService
compUnitCalLogService
;
private
CompareUnitCalLogService
compUnitCalLogService
;
@ApiOperation
(
value
=
"对标计算"
,
notes
=
"对标计算"
)
@PostMapping
(
value
=
"/calculateComp"
)
public
void
calculateComp
(
@RequestParam
String
compareId
,
@RequestParam
String
compareObjsString
,
@RequestParam
String
driveIndIdsString
,
@RequestParam
int
date
)
{
driveIndCalResultService
.
calculateComp
(
compareId
,
compareObjsString
,
driveIndIdsString
,
date
);
}
@ApiOperation
(
value
=
"对标单元综合计算"
,
notes
=
"对标单元综合计算"
)
@ApiOperation
(
value
=
"对标单元综合计算"
,
notes
=
"对标单元综合计算"
)
@PostMapping
(
value
=
"/compareUnitListCal"
)
@PostMapping
(
value
=
"/compareUnitListCal"
)
public
void
compareUnitListCal
(
@RequestBody
List
<
CompareUnitDef
>
compareUnitList
)
{
public
void
compareUnitListCal
(
@RequestBody
List
<
CompareUnitDef
>
compareUnitList
)
{
...
...
src/main/java/com/keymobile/indicators/api/report/IndicatorReportCtrl.java
View file @
7c9cf290
...
@@ -23,7 +23,8 @@ public class IndicatorReportCtrl {
...
@@ -23,7 +23,8 @@ public class IndicatorReportCtrl {
@ApiOperation
(
value
=
"整合指标本期同期报表数据"
,
notes
=
"整合指标本期同期报表数据"
)
@ApiOperation
(
value
=
"整合指标本期同期报表数据"
,
notes
=
"整合指标本期同期报表数据"
)
@PostMapping
(
value
=
"/dealReportOne"
)
@PostMapping
(
value
=
"/dealReportOne"
)
public
String
dealReportOne
(
@RequestParam
String
code
)
{
public
String
dealReportOne
(
@RequestParam
String
code
)
{
return
indicatorsReportService
.
dealReportOne
(
code
);
indicatorsReportService
.
dealReportOne
(
code
);
return
"考核指标本期同期报表数据开始整合..."
;
}
}
@ApiOperation
(
value
=
"整合基础项本期同期报表数据"
,
notes
=
"整合基础项本期同期报表数据"
)
@ApiOperation
(
value
=
"整合基础项本期同期报表数据"
,
notes
=
"整合基础项本期同期报表数据"
)
...
...
src/main/java/com/keymobile/indicators/service/hytobacco/DriveIndCalResultService.java
View file @
7c9cf290
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -11,9 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -11,9 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.keymobile.indicators.akka.actor.indicators.StartCompareUnitCalActor
;
import
com.keymobile.indicators.akka.actor.indicators.StartCompareUnitCalActor
;
import
com.keymobile.indicators.akka.actor.specific.DriveIndCompareObjActor
;
import
com.keymobile.indicators.akka.message.indicators.StartCompareUnitCalMsg
;
import
com.keymobile.indicators.akka.message.indicators.StartCompareUnitCalMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCompareObjMsg
;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitDef
;
import
com.keymobile.indicators.model.entity.indicators.CompareUnitDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper
;
import
com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper
;
...
@@ -55,21 +50,6 @@ public class DriveIndCalResultService {
...
@@ -55,21 +50,6 @@ public class DriveIndCalResultService {
return
driveIndCalResultDefMapper
.
findByCompareIdAndDate
(
compareId
,
date
);
return
driveIndCalResultDefMapper
.
findByCompareIdAndDate
(
compareId
,
date
);
}
}
public
void
calculateComp
(
String
compareId
,
String
compareObjsString
,
String
driveIndIdsString
,
int
date
)
{
String
[]
compareObjs
=
compareObjsString
.
split
(
";"
);
String
[]
driveIndIds
=
driveIndIdsString
.
split
(
";"
);
//启动回流actor
final
ActorSystem
system
=
ActorSystem
.
create
(
"DriveIndCompareAkka"
);
//创建akka
DriveIndCompareObjMsg
driveIndCompareObjMsg
=
new
DriveIndCompareObjMsg
(
compareId
,
Arrays
.
asList
(
driveIndIds
),
Arrays
.
asList
(
compareObjs
),
date
);
ActorRef
driveIndCompareObjActor
=
system
.
actorOf
(
Props
.
create
(
DriveIndCompareObjActor
.
class
,
()->
new
DriveIndCompareObjActor
()));
driveIndCompareObjActor
.
tell
(
driveIndCompareObjMsg
,
ActorRef
.
noSender
());
logger
.
info
(
"开始对标计算..."
);
}
public
void
compareUnitListCal
(
List
<
CompareUnitDef
>
compareUnitList
)
{
public
void
compareUnitListCal
(
List
<
CompareUnitDef
>
compareUnitList
)
{
if
(!
compareUnitList
.
isEmpty
())
{
if
(!
compareUnitList
.
isEmpty
())
{
//启动回流actor
//启动回流actor
...
...
src/main/java/com/keymobile/indicators/service/report/IndicatorsReportService.java
View file @
7c9cf290
...
@@ -82,6 +82,7 @@ public class IndicatorsReportService {
...
@@ -82,6 +82,7 @@ public class IndicatorsReportService {
}
}
//整合指标本期同期指标报表数据
//整合指标本期同期指标报表数据
@Async
public
String
dealReportOne
(
String
code
)
{
public
String
dealReportOne
(
String
code
)
{
//获取所有考核指标结果
//获取所有考核指标结果
List
<
DriveIndCalResultDef
>
calDatas
=
driveIndCalResultDefMapper
.
findReportData
(
code
);
List
<
DriveIndCalResultDef
>
calDatas
=
driveIndCalResultDefMapper
.
findReportData
(
code
);
...
...
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