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
4b06f9d9
Commit
4b06f9d9
authored
Jun 12, 2020
by
zhangkb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
把mongodb基础项数据表和考核指标结果表转移到mysql库中
parent
9853dffb
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
264 additions
and
294 deletions
+264
-294
DriveIndCalculateActor.java
...ymobile/indicators/akka/actor/DriveIndCalculateActor.java
+6
-6
DriveIndCalculateRegionActor.java
...ors/akka/actor/specific/DriveIndCalculateRegionActor.java
+7
-5
DriveIndAverageAndRankMsg.java
...tors/akka/message/specific/DriveIndAverageAndRankMsg.java
+8
-8
DriveIndCalResult.java
.../keymobile/indicators/model/entity/DriveIndCalResult.java
+0
-55
DriveIndCalResultDefMapper.java
...rs/model/mapper/indmapper/DriveIndCalResultDefMapper.java
+35
-0
DriveIndCalResultRepository.java
...persistence/hyindicators/DriveIndCalResultRepository.java
+0
-40
DriveIndCalResultDefService.java
...cators/service/hytobacco/DriveIndCalResultDefService.java
+0
-51
DriveIndCalResultService.java
...ndicators/service/hytobacco/DriveIndCalResultService.java
+15
-31
IndScorecardService.java
...ile/indicators/service/hytobacco/IndScorecardService.java
+28
-30
IndiDataDefService.java
...bile/indicators/service/hytobacco/IndiDataDefService.java
+0
-24
IndicatorsValueService.java
.../indicators/service/hytobacco/IndicatorsValueService.java
+0
-0
ScoreRuleService.java
...mobile/indicators/service/hytobacco/ScoreRuleService.java
+28
-24
ShortboardRuleService.java
...e/indicators/service/hytobacco/ShortboardRuleService.java
+24
-19
DriveIndCalResultDefMapper.xml
.../resources/mybatis/mapping/DriveIndCalResultDefMapper.xml
+113
-1
No files found.
src/main/java/com/keymobile/indicators/akka/actor/DriveIndCalculateActor.java
View file @
4b06f9d9
...
@@ -18,7 +18,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg;
...
@@ -18,7 +18,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg;
import
com.keymobile.indicators.akka.message.IndGetValueMsg
;
import
com.keymobile.indicators.akka.message.IndGetValueMsg
;
import
com.keymobile.indicators.akka.message.IndValueMsg
;
import
com.keymobile.indicators.akka.message.IndValueMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg
;
import
com.keymobile.indicators.model.entity.
DriveIndCalResult
;
import
com.keymobile.indicators.model.entity.
indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.service.hytobacco.DriveIndCalResultService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndCalResultService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndDefService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndDefService
;
...
@@ -148,16 +148,16 @@ public class DriveIndCalculateActor extends AbstractActor{
...
@@ -148,16 +148,16 @@ public class DriveIndCalculateActor extends AbstractActor{
new
BigDecimal
(
Double
.
valueOf
(
driveIndValue
)));
new
BigDecimal
(
Double
.
valueOf
(
driveIndValue
)));
}
}
//判断结果表中是否已存在该结果数据,存在则覆盖
//判断结果表中是否已存在该结果数据,存在则覆盖
DriveIndCalResult
driveIndCalResult
=
driveIndCalResultService
.
DriveIndCalResult
Def
driveIndCalResult
=
driveIndCalResultService
.
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
);
findCalResultDataIsExist
(
compareId
,
compareObj
,
driveIndId
,
date
);
if
(
driveIndCalResult
==
null
)
{
if
(
driveIndCalResult
==
null
)
{
driveIndCalResult
=
new
DriveIndCalResult
(
compareId
,
driveIndCalResult
=
new
DriveIndCalResult
Def
(
compareId
,
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
"1"
,
"1"
,
"admin"
);
driveIndId
,
compareObj
,
date
,
driveIndValue
,
unit
,
"1"
,
"1"
,
"admin"
);
}
else
{
}
else
{
driveIndCalResult
.
setValue
(
driveIndValue
);
driveIndCalResult
.
setValue
(
driveIndValue
);
}
}
//保存进考核指标结果表中
//保存进考核指标结果表中
driveIndCalResult
=
driveIndCalResult
Service
.
saveOrUpdate
(
driveIndCalResult
);
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
//返回指标值回去算平均值和排名
//返回指标值回去算平均值和排名
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
...
@@ -166,9 +166,9 @@ public class DriveIndCalculateActor extends AbstractActor{
...
@@ -166,9 +166,9 @@ public class DriveIndCalculateActor extends AbstractActor{
unit
,
indType
,
markType
,
averageDriveIndFormula
);
unit
,
indType
,
markType
,
averageDriveIndFormula
);
driveIndCalculateRegionActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
driveIndCalculateRegionActor
.
tell
(
driveIndAverageAndRankMsg
,
ActorRef
.
noSender
());
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
DriveIndCalResult
driveIndCalResult
=
new
DriveIndCalResult
(
compareId
,
DriveIndCalResult
Def
driveIndCalResult
=
new
DriveIndCalResultDef
(
compareId
,
driveIndId
,
compareObj
,
date
,
"0(Error)"
,
unit
,
"1"
,
"0"
,
"admin"
);
driveIndId
,
compareObj
,
date
,
"0(Error)"
,
unit
,
"1"
,
"0"
,
"admin"
);
driveIndCalResult
=
driveIndCalResult
Service
.
saveOrUpdate
(
driveIndCalResult
);
driveIndCalResultService
.
saveOrUpdate
(
driveIndCalResult
);
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
DriveIndAverageAndRankMsg
driveIndAverageAndRankMsg
=
new
DriveIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
new
DriveIndAverageAndRankMsg
(
driveIndCalResult
.
getId
(),
compareId
,
driveIndId
,
compareObj
,
date
,
"0(Error)"
,
compareId
,
driveIndId
,
compareObj
,
date
,
"0(Error)"
,
...
...
src/main/java/com/keymobile/indicators/akka/actor/specific/DriveIndCalculateRegionActor.java
View file @
4b06f9d9
...
@@ -11,7 +11,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg;
...
@@ -11,7 +11,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg;
import
com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCalculateRegionMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCalculateRegionMsg
;
import
com.keymobile.indicators.model.entity.DimValue
;
import
com.keymobile.indicators.model.entity.DimValue
;
import
com.keymobile.indicators.model.entity.
DriveIndCalResult
;
import
com.keymobile.indicators.model.entity.
indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.service.hytobacco.DriveIndCalResultService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndCalResultService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndDefService
;
import
com.keymobile.indicators.service.hytobacco.DriveIndDefService
;
import
com.keymobile.indicators.service.hytobacco.IndScorecardService
;
import
com.keymobile.indicators.service.hytobacco.IndScorecardService
;
...
@@ -67,7 +67,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
...
@@ -67,7 +67,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
})
})
.
match
(
DriveIndAverageAndRankMsg
.
class
,
driveIndAverageAndRankMsg
->
{
.
match
(
DriveIndAverageAndRankMsg
.
class
,
driveIndAverageAndRankMsg
->
{
String
value
=
driveIndAverageAndRankMsg
.
getDriveIndValue
();
String
value
=
driveIndAverageAndRankMsg
.
getDriveIndValue
();
String
id
=
driveIndAverageAndRankMsg
.
getId
(
);
String
id
=
String
.
valueOf
(
driveIndAverageAndRankMsg
.
getId
()
);
String
indType
=
driveIndAverageAndRankMsg
.
getIndType
();
String
indType
=
driveIndAverageAndRankMsg
.
getIndType
();
String
markType
=
driveIndAverageAndRankMsg
.
getMarkType
();
//评分卡id
String
markType
=
driveIndAverageAndRankMsg
.
getMarkType
();
//评分卡id
valueMap
.
put
(
id
,
value
);
valueMap
.
put
(
id
,
value
);
...
@@ -78,7 +78,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
...
@@ -78,7 +78,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
//考核地区只有一个“全省”的情况下
//考核地区只有一个“全省”的情况下
if
(!
"全省"
.
equals
(
driveIndAverageAndRankMsg
.
getCompareObj
()))
{
if
(!
"全省"
.
equals
(
driveIndAverageAndRankMsg
.
getCompareObj
()))
{
//查询有没有全省的考核指标数据
//查询有没有全省的考核指标数据
DriveIndCalResult
provinceDriveIndCalResult
=
driveIndCalResultService
.
findCompareObjInfo
(
DriveIndCalResult
Def
provinceDriveIndCalResult
=
driveIndCalResultService
.
findCompareObjInfo
(
driveIndAverageAndRankMsg
.
getDriveIndId
(),
driveIndAverageAndRankMsg
.
getDate
(),
driveIndAverageAndRankMsg
.
getDriveIndId
(),
driveIndAverageAndRankMsg
.
getDate
(),
"全省"
);
"全省"
);
String
actualAverage
=
"0.0"
;
String
actualAverage
=
"0.0"
;
...
@@ -96,7 +96,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
...
@@ -96,7 +96,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
Map
<
String
,
Integer
>
rankValue
=
CalculateUtils
.
rankValue
(
valueMap
,
indType
);
Map
<
String
,
Integer
>
rankValue
=
CalculateUtils
.
rankValue
(
valueMap
,
indType
);
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
//根据id获取指标值结果
//根据id获取指标值结果
DriveIndCalResult
driveIndCalResult
=
driveIndCalResultService
.
findById
(
entry
.
getKey
());
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
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
());
...
@@ -107,7 +108,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
...
@@ -107,7 +108,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
//根据评分卡算指标分数
//根据评分卡算指标分数
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
for
(
Entry
<
String
,
Integer
>
entry
:
rankValue
.
entrySet
())
{
//根据id获取指标值结果
//根据id获取指标值结果
DriveIndCalResult
driveIndCalResult
=
driveIndCalResultService
.
findById
(
entry
.
getKey
());
DriveIndCalResultDef
driveIndCalResult
=
driveIndCalResultService
.
findById
(
Integer
.
parseInt
(
entry
.
getKey
()));
if
(
driveIndCalResult
!=
null
)
{
if
(
driveIndCalResult
!=
null
)
{
//计算分数
//计算分数
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
Map
<
String
,
String
>
scoreMap
=
indScorecardService
.
calculateIndiScore
(
...
...
src/main/java/com/keymobile/indicators/akka/message/specific/DriveIndAverageAndRankMsg.java
View file @
4b06f9d9
...
@@ -8,19 +8,19 @@ public class DriveIndAverageAndRankMsg implements Serializable{
...
@@ -8,19 +8,19 @@ public class DriveIndAverageAndRankMsg implements Serializable{
*/
*/
private
static
final
long
serialVersionUID
=
1L
;
private
static
final
long
serialVersionUID
=
1L
;
private
String
id
;
//mongodb
id
private
Integer
id
;
//
id
private
String
compareId
;
private
String
compareId
;
private
String
driveIndId
;
private
String
driveIndId
;
private
String
compareObj
;
private
String
compareObj
;
private
int
date
;
private
Integer
date
;
private
String
driveIndValue
;
private
String
driveIndValue
;
private
String
unit
;
private
String
unit
;
private
String
indType
;
private
String
indType
;
private
String
markType
;
private
String
markType
;
private
String
indFormula
;
private
String
indFormula
;
public
DriveIndAverageAndRankMsg
(
String
id
,
String
compareId
,
String
driveIndId
,
String
compareObj
,
public
DriveIndAverageAndRankMsg
(
Integer
id
,
String
compareId
,
String
driveIndId
,
String
compareObj
,
int
date
,
String
driveIndValue
,
String
unit
,
String
indType
,
String
markType
,
String
indFormula
)
{
Integer
date
,
String
driveIndValue
,
String
unit
,
String
indType
,
String
markType
,
String
indFormula
)
{
this
.
id
=
id
;
this
.
id
=
id
;
this
.
compareId
=
compareId
;
this
.
compareId
=
compareId
;
this
.
driveIndId
=
driveIndId
;
this
.
driveIndId
=
driveIndId
;
...
@@ -57,11 +57,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{
...
@@ -57,11 +57,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{
this
.
compareObj
=
compareObj
;
this
.
compareObj
=
compareObj
;
}
}
public
int
getDate
()
{
public
Integer
getDate
()
{
return
date
;
return
date
;
}
}
public
void
setDate
(
int
date
)
{
public
void
setDate
(
Integer
date
)
{
this
.
date
=
date
;
this
.
date
=
date
;
}
}
...
@@ -81,11 +81,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{
...
@@ -81,11 +81,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{
this
.
unit
=
unit
;
this
.
unit
=
unit
;
}
}
public
String
getId
()
{
public
Integer
getId
()
{
return
id
;
return
id
;
}
}
public
void
setId
(
String
id
)
{
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
this
.
id
=
id
;
}
}
...
...
src/main/java/com/keymobile/indicators/model/entity/DriveIndCalResult.java
deleted
100644 → 0
View file @
9853dffb
package
com
.
keymobile
.
indicators
.
model
.
entity
;
import
java.io.Serializable
;
import
java.util.Date
;
import
org.springframework.data.annotation.Id
;
import
org.springframework.data.mongodb.core.mapping.Document
;
import
com.keymobile.indicators.utils.DateUtils
;
import
lombok.Data
;
/**
*author:zhangkb time:2020-4-27 desc:考核指标计算结果表
*/
@Data
@Document
(
collection
=
"drive_ind_cal_result"
)
public
class
DriveIndCalResult
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1L
;
@Id
private
String
id
;
private
String
compareId
;
private
String
indId
;
private
String
compareObj
;
private
int
date
;
private
String
value
;
private
String
unit
;
private
String
type
;
//0:季度 1:年度
private
String
isRight
;
//表示考核指标的值是否计算正常得到的 0:计算有误 1:计算正常
private
String
lastUpdateTime
=
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
);
private
String
lastUpdater
;
private
String
average
;
//组内平均数
private
int
rank
;
//同组排名
private
String
score
;
//指标评分分数
private
String
improveScore
;
//改善提升得分
private
String
actualAverage
;
//实际平均数:用于省对市的操作,如果有全省的基础项数据,直接拿全省的基础项数据算考核指标做为其实际平均值
public
DriveIndCalResult
(
String
compareId
,
String
indId
,
String
compareObj
,
int
date
,
String
value
,
String
unit
,
String
type
,
String
isRight
,
String
lastUpdater
)
{
this
.
compareId
=
compareId
;
this
.
indId
=
indId
;
this
.
compareObj
=
compareObj
;
this
.
date
=
date
;
this
.
value
=
value
;
this
.
unit
=
unit
;
this
.
type
=
type
;
this
.
isRight
=
isRight
;
this
.
lastUpdater
=
lastUpdater
;
}
}
src/main/java/com/keymobile/indicators/model/mapper/indmapper/DriveIndCalResultDefMapper.java
View file @
4b06f9d9
...
@@ -15,4 +15,39 @@ public interface DriveIndCalResultDefMapper extends BaseMapper<DriveIndCalResult
...
@@ -15,4 +15,39 @@ public interface DriveIndCalResultDefMapper extends BaseMapper<DriveIndCalResult
public
List
<
DriveIndCalResultDef
>
findByIndId
(
@Param
(
"indId"
)
String
indId
);
public
List
<
DriveIndCalResultDef
>
findByIndId
(
@Param
(
"indId"
)
String
indId
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateIn
(
Map
<
String
,
Object
>
param
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateIn
(
Map
<
String
,
Object
>
param
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndCompareObj
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"compareObj"
)
String
compareObj
);
public
DriveIndCalResultDef
findByIndIdAndDateAndCompareObj
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
,
@Param
(
"compareObj"
)
String
compareObj
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDate
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateAndActualAverageIsNotNull
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateAndSort
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateAndSortAndActualAverageIsNotNull
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateAndCompareIdAndSort
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
,
@Param
(
"compareId"
)
String
compareId
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateAndCompareId
(
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
,
@Param
(
"compareId"
)
String
compareId
);
public
List
<
DriveIndCalResultDef
>
findByCompareObjAndDate
(
@Param
(
"compareObj"
)
String
compareObj
,
@Param
(
"date"
)
int
date
);
public
List
<
DriveIndCalResultDef
>
findByCompareObjAndDateAndIndIdIn
(
Map
<
String
,
Object
>
param
);
public
DriveIndCalResultDef
findByCompareIdAndCompareObjAndIndIdAndDate
(
@Param
(
"compareId"
)
String
compareId
,
@Param
(
"compareObj"
)
String
compareObj
,
@Param
(
"indId"
)
String
indId
,
@Param
(
"date"
)
int
date
);
public
List
<
DriveIndCalResultDef
>
findByIndIdAndDateAndCompareObjIn
(
Map
<
String
,
Object
>
param
);
}
}
src/main/java/com/keymobile/indicators/persistence/hyindicators/DriveIndCalResultRepository.java
deleted
100644 → 0
View file @
9853dffb
package
com
.
keymobile
.
indicators
.
persistence
.
hyindicators
;
import
java.util.List
;
import
java.util.Optional
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.data.mongodb.repository.MongoRepository
;
import
com.keymobile.indicators.model.entity.DriveIndCalResult
;
public
interface
DriveIndCalResultRepository
extends
MongoRepository
<
DriveIndCalResult
,
String
>{
public
List
<
DriveIndCalResult
>
findByIndId
(
String
indId
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDateIn
(
String
indId
,
List
<
Integer
>
dates
);
public
List
<
DriveIndCalResult
>
findByIndIdAndCompareObj
(
String
indId
,
String
compareObj
);
public
Optional
<
DriveIndCalResult
>
findByIndIdAndDateAndCompareObj
(
String
indId
,
int
date
,
String
compareObj
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDate
(
String
indId
,
int
date
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDateAndActualAverageIsNotNull
(
String
indId
,
int
date
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDate
(
String
indId
,
int
date
,
Sort
sort
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDateAndActualAverageIsNotNull
(
String
indId
,
int
date
,
Sort
sort
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDateAndCompareId
(
String
indId
,
int
date
,
String
compareId
,
Sort
sort
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDateAndCompareId
(
String
indId
,
int
date
,
String
compareId
);
public
List
<
DriveIndCalResult
>
findByCompareObjAndDate
(
String
compareObj
,
int
date
);
public
List
<
DriveIndCalResult
>
findByCompareObjAndDateAndIndIdIn
(
String
compareObj
,
int
date
,
List
<
String
>
indIds
);
public
Optional
<
DriveIndCalResult
>
findByCompareIdAndCompareObjAndIndIdAndDate
(
String
compareId
,
String
compareObj
,
String
indId
,
int
date
);
public
List
<
DriveIndCalResult
>
findByIndIdAndDateAndCompareObjIn
(
String
indId
,
int
date
,
List
<
String
>
compareObjs
);
}
src/main/java/com/keymobile/indicators/service/hytobacco/DriveIndCalResultDefService.java
deleted
100644 → 0
View file @
9853dffb
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper
;
@Service
public
class
DriveIndCalResultDefService
{
@Autowired
private
DriveIndCalResultDefMapper
driveIndCalResultDefMapper
;
public
int
saveOrUpdate
(
DriveIndCalResultDef
driveIndCalResultDef
)
{
return
driveIndCalResultDefMapper
.
insert
(
driveIndCalResultDef
);
}
public
DriveIndCalResultDef
findById
(
Integer
id
)
{
DriveIndCalResultDef
driveCalResultDef
=
new
DriveIndCalResultDef
();
driveCalResultDef
.
setId
(
id
);
return
driveIndCalResultDefMapper
.
selectOne
(
driveCalResultDef
);
}
// @Autowired
// private DriveIndCalResultService driveIndCalService;
//
// public void moveData() {
// List<DriveIndCalResult> datas = driveIndCalService.findAll();
// for(DriveIndCalResult data : datas) {
// DriveIndCalResultDef def = new DriveIndCalResultDef();
// def.setCompareId(data.getCompareId());
// def.setIndId(data.getIndId());
// def.setCompareObj(data.getCompareObj());
// def.setDate(data.getDate());
// def.setValue(data.getValue());
// def.setUnit(data.getUnit());
// def.setType(data.getType());
// def.setIsRight(data.getIsRight());
// def.setLastUpdateTime(data.getLastUpdateTime());
// def.setLastUpdater(data.getLastUpdater());
// def.setAverage(data.getAverage());
// def.setRank(data.getRank());
// def.setScore(data.getScore());
// def.setImproveScore(data.getImproveScore());
// def.setActualAverage(data.getActualAverage());
// driveIndCalResultDefMapper.insert(def);
// }
// }
}
src/main/java/com/keymobile/indicators/service/hytobacco/DriveIndCalResultService.java
View file @
4b06f9d9
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.
List
;
import
java.util.
HashMap
;
import
java.util.
Optional
;
import
java.util.
Map
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
...
@@ -11,8 +11,8 @@ import org.springframework.stereotype.Service;
...
@@ -11,8 +11,8 @@ import org.springframework.stereotype.Service;
import
com.keymobile.indicators.akka.actor.specific.DriveIndCompareObjActor
;
import
com.keymobile.indicators.akka.actor.specific.DriveIndCompareObjActor
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCompareObjMsg
;
import
com.keymobile.indicators.akka.message.specific.DriveIndCompareObjMsg
;
import
com.keymobile.indicators.model.entity.
DriveIndCalResult
;
import
com.keymobile.indicators.model.entity.
indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.
persistence.hyindicators.DriveIndCalResultRepository
;
import
com.keymobile.indicators.
model.mapper.indmapper.DriveIndCalResultDefMapper
;
import
akka.actor.ActorRef
;
import
akka.actor.ActorRef
;
import
akka.actor.ActorSystem
;
import
akka.actor.ActorSystem
;
...
@@ -23,41 +23,25 @@ public class DriveIndCalResultService {
...
@@ -23,41 +23,25 @@ public class DriveIndCalResultService {
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DriveIndCalResultService
.
class
);
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DriveIndCalResultService
.
class
);
@Autowired
@Autowired
private
DriveIndCalResult
Repository
driveIndCalResultRepo
;
private
DriveIndCalResult
DefMapper
driveIndCalResultDefMapper
;
public
DriveIndCalResult
saveOrUpdate
(
DriveIndCalResult
driveIndCalResult
)
{
public
int
saveOrUpdate
(
DriveIndCalResultDef
driveIndCalResult
)
{
return
driveIndCalResult
Repo
.
save
(
driveIndCalResult
);
return
driveIndCalResult
DefMapper
.
insert
(
driveIndCalResult
);
}
}
public
DriveIndCalResult
findById
(
String
id
)
{
public
DriveIndCalResultDef
findById
(
Integer
id
)
{
Optional
<
DriveIndCalResult
>
resultOp
=
driveIndCalResultRepo
.
findById
(
id
);
DriveIndCalResultDef
driveCalResultDef
=
new
DriveIndCalResultDef
();
if
(
resultOp
.
isPresent
())
{
driveCalResultDef
.
setId
(
id
);
return
resultOp
.
get
();
return
driveIndCalResultDefMapper
.
selectOne
(
driveCalResultDef
);
}
return
null
;
}
}
public
List
<
DriveIndCalResult
>
findAll
()
{
public
DriveIndCalResultDef
findCompareObjInfo
(
String
driveIndId
,
int
date
,
String
compareObj
)
{
return
driveIndCalResult
Repo
.
findAll
(
);
return
driveIndCalResult
DefMapper
.
findByIndIdAndDateAndCompareObj
(
driveIndId
,
date
,
compareObj
);
}
}
public
DriveIndCalResult
findCompareObjInfo
(
String
driveIndId
,
int
date
,
String
compareObj
)
{
public
DriveIndCalResultDef
findCalResultDataIsExist
(
String
compareId
,
String
compareObj
,
Optional
<
DriveIndCalResult
>
resultOp
=
driveIndCalResultRepo
.
findByIndIdAndDateAndCompareObj
(
driveIndId
,
date
,
compareObj
);
if
(
resultOp
.
isPresent
())
{
return
resultOp
.
get
();
}
return
null
;
}
public
DriveIndCalResult
findCalResultDataIsExist
(
String
compareId
,
String
compareObj
,
String
indId
,
int
date
)
{
String
indId
,
int
date
)
{
Optional
<
DriveIndCalResult
>
resultOp
=
driveIndCalResultRepo
.
return
driveIndCalResultDefMapper
.
findByCompareIdAndCompareObjAndIndIdAndDate
(
compareId
,
compareObj
,
indId
,
date
);
findByCompareIdAndCompareObjAndIndIdAndDate
(
compareId
,
compareObj
,
indId
,
date
);
if
(
resultOp
.
isPresent
())
{
return
resultOp
.
get
();
}
return
null
;
}
}
public
void
calculateComp
(
String
compareId
,
String
compareObjsString
,
String
driveIndIdsString
,
public
void
calculateComp
(
String
compareId
,
String
compareObjsString
,
String
driveIndIdsString
,
...
...
src/main/java/com/keymobile/indicators/service/hytobacco/IndScorecardService.java
View file @
4b06f9d9
...
@@ -14,17 +14,16 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -14,17 +14,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.Page
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.PageRequest
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Sort
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.google.common.collect.Maps
;
import
com.google.common.collect.Maps
;
import
com.googlecode.aviator.AviatorEvaluator
;
import
com.googlecode.aviator.AviatorEvaluator
;
import
com.keymobile.indicators.model.entity.
DriveIndCalResult
;
import
com.keymobile.indicators.model.entity.
indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.model.entity.scorecard.ImproveScoreDef
;
import
com.keymobile.indicators.model.entity.scorecard.ImproveScoreDef
;
import
com.keymobile.indicators.model.entity.scorecard.IndScorecard
;
import
com.keymobile.indicators.model.entity.scorecard.IndScorecard
;
import
com.keymobile.indicators.model.entity.scorecard.RankScoreDef
;
import
com.keymobile.indicators.model.entity.scorecard.RankScoreDef
;
import
com.keymobile.indicators.
persistence.hyindicators.DriveIndCalResultRepository
;
import
com.keymobile.indicators.
model.mapper.indmapper.DriveIndCalResultDefMapper
;
import
com.keymobile.indicators.persistence.hyindicators.IndScorecardRepository
;
import
com.keymobile.indicators.persistence.hyindicators.IndScorecardRepository
;
import
com.keymobile.indicators.utils.CalculateUtils
;
import
com.keymobile.indicators.utils.CalculateUtils
;
...
@@ -35,9 +34,9 @@ public class IndScorecardService {
...
@@ -35,9 +34,9 @@ public class IndScorecardService {
@Autowired
@Autowired
private
IndScorecardRepository
indScorecardRepo
;
private
IndScorecardRepository
indScorecardRepo
;
@Autowired
@Autowired
private
DriveIndCalResultRepository
driveIndResultRepo
;
@Autowired
private
DriveIndDefService
driveIndDefService
;
private
DriveIndDefService
driveIndDefService
;
@Autowired
private
DriveIndCalResultDefMapper
driveIndCalResultDefMapper
;
//id不为空为修改,为空为新增
//id不为空为修改,为空为新增
public
String
saveOrUpdate
(
IndScorecard
indScorecard
,
String
catalogId
,
public
String
saveOrUpdate
(
IndScorecard
indScorecard
,
String
catalogId
,
...
@@ -90,14 +89,13 @@ public class IndScorecardService {
...
@@ -90,14 +89,13 @@ public class IndScorecardService {
String
acsType
=
driveIndDef
.
getIndType
();
String
acsType
=
driveIndDef
.
getIndType
();
String
unit
=
driveIndDef
.
getIndUnit
();
String
unit
=
driveIndDef
.
getIndUnit
();
List
<
DriveIndCalResult
>
currentDriveResult
=
driveIndResultRepo
List
<
DriveIndCalResultDef
>
currentDriveResult
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareId
(
indId
,
date
,
compareId
,
.
findByIndIdAndDateAndCompareIdAndSort
(
indId
,
date
,
compareId
);
new
Sort
(
Sort
.
Direction
.
ASC
,
"rank"
));
if
(!
currentDriveResult
.
isEmpty
())
{
if
(!
currentDriveResult
.
isEmpty
())
{
//过滤考核指标结果集无效值
//过滤考核指标结果集无效值
Iterator
<
DriveIndCalResult
>
it
=
currentDriveResult
.
iterator
();
Iterator
<
DriveIndCalResult
Def
>
it
=
currentDriveResult
.
iterator
();
while
(
it
.
hasNext
()){
while
(
it
.
hasNext
()){
DriveIndCalResult
driveCalResult
=
it
.
next
();
DriveIndCalResult
Def
driveCalResult
=
it
.
next
();
if
(
"NaN"
.
equals
(
driveCalResult
.
getValue
())||
"0(Error)"
.
equals
(
driveCalResult
.
getValue
())
if
(
"NaN"
.
equals
(
driveCalResult
.
getValue
())||
"0(Error)"
.
equals
(
driveCalResult
.
getValue
())
||
"0.0000"
.
equals
(
driveCalResult
.
getValue
())||
"0"
.
equals
(
driveCalResult
.
getValue
())){
||
"0.0000"
.
equals
(
driveCalResult
.
getValue
())||
"0"
.
equals
(
driveCalResult
.
getValue
())){
it
.
remove
();
it
.
remove
();
...
@@ -105,18 +103,18 @@ public class IndScorecardService {
...
@@ -105,18 +103,18 @@ public class IndScorecardService {
}
}
int
currentDriveResultSize
=
currentDriveResult
.
size
();
int
currentDriveResultSize
=
currentDriveResult
.
size
();
//根据indId,date,compareObj获取考核结果
//根据indId,date,compareObj获取考核结果
Optional
<
DriveIndCalResult
>
currentCompareObjResult
=
driveIndResultRepo
DriveIndCalResultDef
currentCompareObjResult
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObj
(
indId
,
date
,
compareObj
);
.
findByIndIdAndDateAndCompareObj
(
indId
,
date
,
compareObj
);
if
(
currentCompareObjResult
.
isPresent
()
)
{
if
(
currentCompareObjResult
!=
null
)
{
String
average
=
currentCompareObjResult
.
get
().
get
Average
();
String
average
=
currentCompareObjResult
.
getAverage
();
//如果实际平均值存在
//如果实际平均值存在
if
(
currentCompareObjResult
.
get
().
get
ActualAverage
()!=
null
)
{
if
(
currentCompareObjResult
.
getActualAverage
()!=
null
)
{
if
(!
"0.0"
.
equals
(
currentCompareObjResult
.
get
().
get
ActualAverage
()))
{
if
(!
"0.0"
.
equals
(
currentCompareObjResult
.
getActualAverage
()))
{
average
=
currentCompareObjResult
.
get
().
get
ActualAverage
();
average
=
currentCompareObjResult
.
getActualAverage
();
}
}
}
}
String
value
=
currentCompareObjResult
.
get
().
get
Value
();
String
value
=
currentCompareObjResult
.
getValue
();
if
(!
"NaN"
.
equals
(
value
)
&&
!
"0(Error)"
.
equals
(
value
)
if
(!
"NaN"
.
equals
(
value
)
&&
!
"0(Error)"
.
equals
(
value
)
&&
!
"0.0000"
.
equals
(
value
)
&&
!
"0"
.
equals
(
value
))
{
&&
!
"0.0000"
.
equals
(
value
)
&&
!
"0"
.
equals
(
value
))
{
//综合评价
//综合评价
...
@@ -138,7 +136,7 @@ public class IndScorecardService {
...
@@ -138,7 +136,7 @@ public class IndScorecardService {
}
}
}
}
int
rank
=
currentCompareObjResult
.
get
().
get
Rank
();
//获取排位
int
rank
=
currentCompareObjResult
.
getRank
();
//获取排位
//加分项
//加分项
if
(!
scoreCard
.
getAddScoreItem
().
isEmpty
())
{
if
(!
scoreCard
.
getAddScoreItem
().
isEmpty
())
{
List
<
RankScoreDef
>
addScoreItem
=
scoreCard
.
getAddScoreItem
();
List
<
RankScoreDef
>
addScoreItem
=
scoreCard
.
getAddScoreItem
();
...
@@ -161,7 +159,7 @@ public class IndScorecardService {
...
@@ -161,7 +159,7 @@ public class IndScorecardService {
}
}
}
}
}
else
{
//公式
}
else
{
//公式
int
rank
=
currentCompareObjResult
.
get
().
get
Rank
();
//获取排位
int
rank
=
currentCompareObjResult
.
getRank
();
//获取排位
if
(
rank
==
1
)
{
//最佳指标
if
(
rank
==
1
)
{
//最佳指标
baseScoreValue
=
scoreCard
.
getBestIndScore
();
baseScoreValue
=
scoreCard
.
getBestIndScore
();
}
else
if
(
rank
==
currentDriveResultSize
)
{
//最差指标
}
else
if
(
rank
==
currentDriveResultSize
)
{
//最差指标
...
@@ -169,7 +167,7 @@ public class IndScorecardService {
...
@@ -169,7 +167,7 @@ public class IndScorecardService {
}
else
{
//其他
}
else
{
//其他
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getOtherCalFormula
()))
{
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getOtherCalFormula
()))
{
baseScoreValue
=
this
.
getValueFromFormula
(
baseScoreValue
=
this
.
getValueFromFormula
(
scoreCard
.
getOtherCalFormula
(),
currentCompareObjResult
.
get
()
,
scoreCard
.
getOtherCalFormula
(),
currentCompareObjResult
,
currentDriveResult
,
acsType
);
currentDriveResult
,
acsType
);
}
}
}
}
...
@@ -179,12 +177,12 @@ public class IndScorecardService {
...
@@ -179,12 +177,12 @@ public class IndScorecardService {
//改善提升
//改善提升
if
(
"1"
.
equals
(
scoreCard
.
getIsIncluScore
()))
{
//纳入单位得分计算
if
(
"1"
.
equals
(
scoreCard
.
getIsIncluScore
()))
{
//纳入单位得分计算
//同期
//同期
Optional
<
DriveIndCalResult
>
sameCompareObjResult
=
driveIndResultRepo
DriveIndCalResultDef
sameCompareObjResult
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObj
(
indId
,
(
date
-
100
),
compareObj
);
.
findByIndIdAndDateAndCompareObj
(
indId
,
(
date
-
100
),
compareObj
);
if
(
sameCompareObjResult
.
isPresent
()
)
{
if
(
sameCompareObjResult
!=
null
)
{
double
improveScore
=
this
.
calImproveValue
(
acsType
,
unit
,
double
improveScore
=
this
.
calImproveValue
(
acsType
,
unit
,
scoreCard
.
getImproveScoreItem
(),
currentCompareObjResult
.
get
()
,
scoreCard
.
getImproveScoreItem
(),
currentCompareObjResult
,
sameCompareObjResult
.
get
()
,
compareObjs
);
sameCompareObjResult
,
compareObjs
);
if
(
scoreCard
.
getLimitScore
()!=
0
)
{
if
(
scoreCard
.
getLimitScore
()!=
0
)
{
if
(
improveScore
>
scoreCard
.
getLimitScore
())
{
if
(
improveScore
>
scoreCard
.
getLimitScore
())
{
improveScore
=
scoreCard
.
getLimitScore
();
improveScore
=
scoreCard
.
getLimitScore
();
...
@@ -209,7 +207,7 @@ public class IndScorecardService {
...
@@ -209,7 +207,7 @@ public class IndScorecardService {
}
}
private
double
calImproveValue
(
String
acsType
,
String
unit
,
List
<
ImproveScoreDef
>
importScoreDefList
,
private
double
calImproveValue
(
String
acsType
,
String
unit
,
List
<
ImproveScoreDef
>
importScoreDefList
,
DriveIndCalResult
current
,
DriveIndCalResult
same
,
List
<
String
>
compareObjs
)
{
DriveIndCalResult
Def
current
,
DriveIndCalResultDef
same
,
List
<
String
>
compareObjs
)
{
double
sumValue
=
0
;
double
sumValue
=
0
;
for
(
ImproveScoreDef
scoreDef
:
importScoreDefList
)
{
for
(
ImproveScoreDef
scoreDef
:
importScoreDefList
)
{
// 0:同期排位比 1:单位同期比
// 0:同期排位比 1:单位同期比
...
@@ -221,11 +219,11 @@ public class IndScorecardService {
...
@@ -221,11 +219,11 @@ public class IndScorecardService {
//考虑同期分组有变的情况,把组内成原同期的指标值拿出来再进行排名
//考虑同期分组有变的情况,把组内成原同期的指标值拿出来再进行排名
Map
<
String
,
String
>
values
=
new
HashMap
<>();
Map
<
String
,
String
>
values
=
new
HashMap
<>();
for
(
String
compareObj
:
compareObjs
)
{
for
(
String
compareObj
:
compareObjs
)
{
Optional
<
DriveIndCalResult
>
sameCompareObjResult
=
driveIndResultRepo
DriveIndCalResultDef
sameCompareObjResult
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObj
(
current
.
getIndId
(),
.
findByIndIdAndDateAndCompareObj
(
current
.
getIndId
(),
(
current
.
getDate
()-
100
),
compareObj
);
(
current
.
getDate
()-
100
),
compareObj
);
if
(
sameCompareObjResult
.
isPresent
()
)
{
if
(
sameCompareObjResult
!=
null
)
{
values
.
put
(
compareObj
,
sameCompareObjResult
.
get
().
get
Value
());
values
.
put
(
compareObj
,
sameCompareObjResult
.
getValue
());
}
else
{
}
else
{
values
.
put
(
compareObj
,
"0"
);
values
.
put
(
compareObj
,
"0"
);
}
}
...
@@ -286,8 +284,8 @@ public class IndScorecardService {
...
@@ -286,8 +284,8 @@ public class IndScorecardService {
return
sumValue
;
return
sumValue
;
}
}
private
double
getValueFromFormula
(
String
formula
,
DriveIndCalResult
resultObject
,
private
double
getValueFromFormula
(
String
formula
,
DriveIndCalResult
Def
resultObject
,
List
<
DriveIndCalResult
>
currentDriveResult
,
String
acsType
)
{
List
<
DriveIndCalResult
Def
>
currentDriveResult
,
String
acsType
)
{
double
value
=
0
;
double
value
=
0
;
Map
<
String
,
Object
>
env
=
Maps
.
newHashMap
();
Map
<
String
,
Object
>
env
=
Maps
.
newHashMap
();
//解析X,MIN,MAX
//解析X,MIN,MAX
...
...
src/main/java/com/keymobile/indicators/service/hytobacco/IndiDataDefService.java
deleted
100644 → 0
View file @
9853dffb
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
import
java.util.List
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
com.keymobile.indicators.model.entity.indicators.IndicatorsData
;
import
com.keymobile.indicators.model.mapper.indmapper.IndicatorsDataMapper
;
@Service
public
class
IndiDataDefService
{
@Autowired
private
IndicatorsDataMapper
indiDataDefMapper
;
@Autowired
private
BaseIndDataService
baseIndDataService
;
public
void
moveData
()
{
List
<
IndicatorsData
>
datas
=
baseIndDataService
.
getAllIndData
();
for
(
IndicatorsData
record
:
datas
)
{
indiDataDefMapper
.
insert
(
record
);
}
}
}
src/main/java/com/keymobile/indicators/service/hytobacco/IndicatorsValueService.java
View file @
4b06f9d9
This diff is collapsed.
Click to expand it.
src/main/java/com/keymobile/indicators/service/hytobacco/ScoreRuleService.java
View file @
4b06f9d9
...
@@ -18,12 +18,12 @@ import org.springframework.data.domain.Pageable;
...
@@ -18,12 +18,12 @@ import org.springframework.data.domain.Pageable;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.googlecode.aviator.AviatorEvaluator
;
import
com.googlecode.aviator.AviatorEvaluator
;
import
com.keymobile.indicators.model.entity.
DriveIndCalResult
;
import
com.keymobile.indicators.model.entity.
indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.model.entity.objscorerule.IndTypeWeight
;
import
com.keymobile.indicators.model.entity.objscorerule.IndTypeWeight
;
import
com.keymobile.indicators.model.entity.objscorerule.ScoreRule
;
import
com.keymobile.indicators.model.entity.objscorerule.ScoreRule
;
import
com.keymobile.indicators.model.mapper.indicators.DriveIndDefMapper
;
import
com.keymobile.indicators.model.mapper.indicators.DriveIndDefMapper
;
import
com.keymobile.indicators.
persistence.hyindicators.DriveIndCalResultRepository
;
import
com.keymobile.indicators.
model.mapper.indmapper.DriveIndCalResultDefMapper
;
import
com.keymobile.indicators.persistence.hyindicators.ScoreRuleRepository
;
import
com.keymobile.indicators.persistence.hyindicators.ScoreRuleRepository
;
import
com.keymobile.indicators.utils.CalculateUtils
;
import
com.keymobile.indicators.utils.CalculateUtils
;
...
@@ -34,9 +34,9 @@ public class ScoreRuleService {
...
@@ -34,9 +34,9 @@ public class ScoreRuleService {
@Autowired
@Autowired
private
ScoreRuleRepository
scoreRuleRepo
;
private
ScoreRuleRepository
scoreRuleRepo
;
@Autowired
@Autowired
private
DriveIndCalResultRepository
driveIndCalResultRepo
;
@Autowired
private
DriveIndDefMapper
driveIndDefMapper
;
private
DriveIndDefMapper
driveIndDefMapper
;
@Autowired
private
DriveIndCalResultDefMapper
driveIndCalResultDefMapper
;
private
static
final
Pattern
P
=
Pattern
.
compile
(
"(\\[[^\\]]*\\])"
);
private
static
final
Pattern
P
=
Pattern
.
compile
(
"(\\[[^\\]]*\\])"
);
...
@@ -78,12 +78,16 @@ public class ScoreRuleService {
...
@@ -78,12 +78,16 @@ public class ScoreRuleService {
result
.
put
(
"improveValue"
,
"0.0"
);
result
.
put
(
"improveValue"
,
"0.0"
);
result
.
put
(
"date"
,
String
.
valueOf
(
date
));
result
.
put
(
"date"
,
String
.
valueOf
(
date
));
//根据日期,对标对象和考核的指标获取考核指标结果详情
//根据日期,对标对象和考核的指标获取考核指标结果详情
List
<
DriveIndCalResult
>
calResults
=
driveIndCalResultRepo
.
Map
<
String
,
Object
>
paremMap
=
new
HashMap
<>();
findByCompareObjAndDateAndIndIdIn
(
compareObj
,
date
,
indIds
);
paremMap
.
put
(
"compareObj"
,
compareObj
);
paremMap
.
put
(
"date"
,
date
);
paremMap
.
put
(
"indIds"
,
indIds
);
List
<
DriveIndCalResultDef
>
calResults
=
driveIndCalResultDefMapper
.
findByCompareObjAndDateAndIndIdIn
(
paremMap
);
List
<
String
>
values
=
new
ArrayList
<>();
List
<
String
>
values
=
new
ArrayList
<>();
List
<
String
>
improveValues
=
new
ArrayList
<>();
List
<
String
>
improveValues
=
new
ArrayList
<>();
if
(!
calResults
.
isEmpty
())
{
if
(!
calResults
.
isEmpty
())
{
for
(
DriveIndCalResult
calResult
:
calResults
)
{
for
(
DriveIndCalResult
Def
calResult
:
calResults
)
{
//根据考核指标id获取考核指标
//根据考核指标id获取考核指标
DriveIndDef
driveIndDef
=
driveIndDefMapper
.
selectByPrimaryKey
(
calResult
.
getIndId
());
DriveIndDef
driveIndDef
=
driveIndDefMapper
.
selectByPrimaryKey
(
calResult
.
getIndId
());
if
(
driveIndDef
!=
null
)
{
if
(
driveIndDef
!=
null
)
{
...
@@ -146,36 +150,36 @@ public class ScoreRuleService {
...
@@ -146,36 +150,36 @@ public class ScoreRuleService {
}
}
for
(
String
indId
:
indIdList
)
{
for
(
String
indId
:
indIdList
)
{
//根据日期,对标对象和考核的指标获取考核指标结果详情
//根据日期,对标对象和考核的指标获取考核指标结果详情
Optional
<
DriveIndCalResult
>
calresultOp
=
driveIndCalResultRepo
.
DriveIndCalResultDef
calresultOp
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObj
(
indId
,
date
,
compareObj
);
findByIndIdAndDateAndCompareObj
(
indId
,
date
,
compareObj
);
if
(
calresultOp
.
isPresent
()
)
{
if
(
calresultOp
!=
null
)
{
//得分类型:0 指标值直接参与计算
//得分类型:0 指标值直接参与计算
if
(
"0"
.
equals
(
scoreRule
.
getScoreType
()))
{
if
(
"0"
.
equals
(
scoreRule
.
getScoreType
()))
{
if
(!
"NaN"
.
equals
(
calresultOp
.
get
().
get
Value
())
&&
if
(!
"NaN"
.
equals
(
calresultOp
.
getValue
())
&&
!
"0(Error)"
.
equals
(
calresultOp
.
get
().
get
Value
()))
{
!
"0(Error)"
.
equals
(
calresultOp
.
getValue
()))
{
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
calresultOp
.
get
().
get
Value
());
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
calresultOp
.
getValue
());
}
else
{
}
else
{
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
"0.0"
);
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
"0.0"
);
}
}
}
else
if
(
"1"
.
equals
(
scoreRule
.
getScoreType
()))
{
//1 指标得分分数参与计算(综合评分和改善提升分开算)
}
else
if
(
"1"
.
equals
(
scoreRule
.
getScoreType
()))
{
//1 指标得分分数参与计算(综合评分和改善提升分开算)
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
calresultOp
.
get
().
get
Value
());
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
calresultOp
.
getValue
());
if
(!
"No"
.
equals
(
calresultOp
.
get
().
get
ImproveScore
())
&&
if
(!
"No"
.
equals
(
calresultOp
.
getImproveScore
())
&&
StringUtils
.
isNotBlank
(
calresultOp
.
get
().
get
ImproveScore
()))
{
StringUtils
.
isNotBlank
(
calresultOp
.
getImproveScore
()))
{
improveCalFormula
=
improveCalFormula
.
replace
(
"["
+
indId
+
"]"
,
improveCalFormula
=
improveCalFormula
.
replace
(
"["
+
indId
+
"]"
,
calresultOp
.
get
().
get
ImproveScore
());
calresultOp
.
getImproveScore
());
}
else
{
}
else
{
improveCalFormula
=
improveCalFormula
.
replace
(
"["
+
indId
+
"]"
,
"0.0"
);
improveCalFormula
=
improveCalFormula
.
replace
(
"["
+
indId
+
"]"
,
"0.0"
);
}
}
}
else
{
//2指标得分分数参与计算(指标分数=综合+改善)
}
else
{
//2指标得分分数参与计算(指标分数=综合+改善)
String
score
=
"0.0"
;
String
score
=
"0.0"
;
if
(!
"No"
.
equals
(
calresultOp
.
get
().
get
ImproveScore
())
&&
if
(!
"No"
.
equals
(
calresultOp
.
getImproveScore
())
&&
StringUtils
.
isNotBlank
(
calresultOp
.
get
().
get
ImproveScore
()))
{
StringUtils
.
isNotBlank
(
calresultOp
.
getImproveScore
()))
{
double
indScore
=
Double
.
parseDouble
(
calresultOp
.
get
().
get
Score
());
double
indScore
=
Double
.
parseDouble
(
calresultOp
.
getScore
());
double
improveScore
=
Double
.
parseDouble
(
calresultOp
.
get
().
get
ImproveScore
());
double
improveScore
=
Double
.
parseDouble
(
calresultOp
.
getImproveScore
());
double
sum
=
indScore
+
improveScore
;
double
sum
=
indScore
+
improveScore
;
score
=
String
.
valueOf
(
sum
);
score
=
String
.
valueOf
(
sum
);
}
else
{
}
else
{
score
=
calresultOp
.
get
().
get
Score
();
score
=
calresultOp
.
getScore
();
}
}
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
score
);
calFormula
=
calFormula
.
replace
(
"["
+
indId
+
"]"
,
score
);
}
}
...
@@ -214,7 +218,7 @@ public class ScoreRuleService {
...
@@ -214,7 +218,7 @@ public class ScoreRuleService {
result
.
put
(
"date"
,
String
.
valueOf
(
date
));
result
.
put
(
"date"
,
String
.
valueOf
(
date
));
//根据对标对象,日期查找该对标对象对标的所有指标结果
//根据对标对象,日期查找该对标对象对标的所有指标结果
List
<
DriveIndCalResult
>
calResults
=
driveIndCalResultRepo
.
List
<
DriveIndCalResult
Def
>
calResults
=
driveIndCalResultDefMapper
.
findByCompareObjAndDate
(
compareObj
,
date
);
findByCompareObjAndDate
(
compareObj
,
date
);
double
scoreValue
=
0.0
;
double
scoreValue
=
0.0
;
double
improveValue
=
0.0
;
double
improveValue
=
0.0
;
...
@@ -231,13 +235,13 @@ public class ScoreRuleService {
...
@@ -231,13 +235,13 @@ public class ScoreRuleService {
}
}
//根据指标分类计算指标平均值
//根据指标分类计算指标平均值
private
Map
<
String
,
Double
>
calIndTypeScore
(
ScoreRule
scoreRule
,
IndTypeWeight
indTypeWeight
,
List
<
DriveIndCalResult
>
calResults
)
{
private
Map
<
String
,
Double
>
calIndTypeScore
(
ScoreRule
scoreRule
,
IndTypeWeight
indTypeWeight
,
List
<
DriveIndCalResult
Def
>
calResults
)
{
Map
<
String
,
Double
>
result
=
new
HashMap
<>();
Map
<
String
,
Double
>
result
=
new
HashMap
<>();
result
.
put
(
"score"
,
0.0
);
result
.
put
(
"score"
,
0.0
);
result
.
put
(
"improve"
,
0.0
);
result
.
put
(
"improve"
,
0.0
);
List
<
String
>
values
=
new
ArrayList
<>();
List
<
String
>
values
=
new
ArrayList
<>();
List
<
String
>
improveValues
=
new
ArrayList
<>();
List
<
String
>
improveValues
=
new
ArrayList
<>();
for
(
DriveIndCalResult
calResult
:
calResults
)
{
for
(
DriveIndCalResult
Def
calResult
:
calResults
)
{
String
catalogIdPath
=
indTypeWeight
.
getCatalogIdPath
();
String
catalogIdPath
=
indTypeWeight
.
getCatalogIdPath
();
//根据考核指标id获取考核指标
//根据考核指标id获取考核指标
DriveIndDef
driveIndDef
=
driveIndDefMapper
.
selectByPrimaryKey
(
calResult
.
getIndId
());
DriveIndDef
driveIndDef
=
driveIndDefMapper
.
selectByPrimaryKey
(
calResult
.
getIndId
());
...
...
src/main/java/com/keymobile/indicators/service/hytobacco/ShortboardRuleService.java
View file @
4b06f9d9
...
@@ -14,12 +14,11 @@ import org.springframework.data.domain.PageRequest;
...
@@ -14,12 +14,11 @@ import org.springframework.data.domain.PageRequest;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
com.keymobile.indicators.model.entity.DriveIndCalResult
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef
;
import
com.keymobile.indicators.model.entity.indicators.DriveIndDef
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardDriveIndRel
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardDriveIndRel
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardItem
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardItem
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardRule
;
import
com.keymobile.indicators.model.entity.shortboard.ShortboardRule
;
import
com.keymobile.indicators.
persistence.hyindicators.DriveIndCalResultRepository
;
import
com.keymobile.indicators.
model.mapper.indmapper.DriveIndCalResultDefMapper
;
import
com.keymobile.indicators.persistence.hyindicators.ShortboardDriveIndRelRepository
;
import
com.keymobile.indicators.persistence.hyindicators.ShortboardDriveIndRelRepository
;
import
com.keymobile.indicators.persistence.hyindicators.ShortboardRuleRepository
;
import
com.keymobile.indicators.persistence.hyindicators.ShortboardRuleRepository
;
import
com.keymobile.indicators.utils.CalculateUtils
;
import
com.keymobile.indicators.utils.CalculateUtils
;
...
@@ -33,9 +32,7 @@ public class ShortboardRuleService {
...
@@ -33,9 +32,7 @@ public class ShortboardRuleService {
@Autowired
@Autowired
private
ShortboardDriveIndRelRepository
shortboardDriveIndRelRepo
;
private
ShortboardDriveIndRelRepository
shortboardDriveIndRelRepo
;
@Autowired
@Autowired
private
DriveIndCalResultRepository
driveIndCalResultRepo
;
private
DriveIndCalResultDefMapper
driveIndCalResultDefMapper
;
@Autowired
private
DriveIndDefService
driveIndDefService
;
public
String
saveOrUpdate
(
ShortboardRule
shortboardRule
,
String
catalogId
,
public
String
saveOrUpdate
(
ShortboardRule
shortboardRule
,
String
catalogId
,
String
catalogIdPath
,
String
user
)
{
String
catalogIdPath
,
String
user
)
{
...
@@ -90,13 +87,17 @@ public class ShortboardRuleService {
...
@@ -90,13 +87,17 @@ public class ShortboardRuleService {
}
}
//短板筛选规则为均值
//短板筛选规则为均值
private
List
<
DriveIndCalResult
>
selectAverageShortboard
(
ShortboardItem
shortboardItem
,
private
List
<
DriveIndCalResult
Def
>
selectAverageShortboard
(
ShortboardItem
shortboardItem
,
List
<
String
>
compareObjs
,
String
driveId
,
int
date
)
{
List
<
String
>
compareObjs
,
String
driveId
,
int
date
)
{
List
<
DriveIndCalResult
>
calResults
=
driveIndCalResultRepo
.
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
findByIndIdAndDateAndCompareObjIn
(
driveId
,
date
,
compareObjs
);
paramMap
.
put
(
"indId"
,
driveId
);
List
<
DriveIndCalResult
>
filterCalResults
=
new
ArrayList
<>();
//用于保存符合过滤条件的指标结果
paramMap
.
put
(
"date"
,
date
);
List
<
DriveIndCalResult
>
realCalResults
=
new
ArrayList
<>();
//用于保存符合过滤条件的指标结果
paramMap
.
put
(
"compareObjs"
,
compareObjs
);
for
(
DriveIndCalResult
calResult
:
calResults
)
{
List
<
DriveIndCalResultDef
>
calResults
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObjIn
(
paramMap
);
List
<
DriveIndCalResultDef
>
filterCalResults
=
new
ArrayList
<>();
//用于保存符合过滤条件的指标结果
List
<
DriveIndCalResultDef
>
realCalResults
=
new
ArrayList
<>();
//用于保存符合过滤条件的指标结果
for
(
DriveIndCalResultDef
calResult
:
calResults
)
{
//判断规则选择是大于还是小于
//判断规则选择是大于还是小于
if
(
"0"
.
equals
(
shortboardItem
.
getCalType
()))
{
//大于
if
(
"0"
.
equals
(
shortboardItem
.
getCalType
()))
{
//大于
if
(!
"NaN"
.
equals
(
calResult
.
getValue
())
&&
!
"0(Error)"
.
equals
(
calResult
.
getValue
())
if
(!
"NaN"
.
equals
(
calResult
.
getValue
())
&&
!
"0(Error)"
.
equals
(
calResult
.
getValue
())
...
@@ -133,7 +134,7 @@ public class ShortboardRuleService {
...
@@ -133,7 +134,7 @@ public class ShortboardRuleService {
}
}
}
}
//分析filterCalResults
//分析filterCalResults
for
(
DriveIndCalResult
filterCalResult
:
filterCalResults
)
{
for
(
DriveIndCalResult
Def
filterCalResult
:
filterCalResults
)
{
//判断是比较差还是百分比
//判断是比较差还是百分比
if
(
"0"
.
equals
(
shortboardItem
.
getAnalysisType
()))
{
//绝对值
if
(
"0"
.
equals
(
shortboardItem
.
getAnalysisType
()))
{
//绝对值
//判断有没有实际的平均值
//判断有没有实际的平均值
...
@@ -173,20 +174,24 @@ public class ShortboardRuleService {
...
@@ -173,20 +174,24 @@ public class ShortboardRuleService {
}
}
//短板筛选规则为最大值
//短板筛选规则为最大值
private
List
<
DriveIndCalResult
>
selectMaxShortboard
(
ShortboardItem
shortboardItem
,
private
List
<
DriveIndCalResult
Def
>
selectMaxShortboard
(
ShortboardItem
shortboardItem
,
List
<
String
>
compareObjs
,
String
driveId
,
int
date
)
throws
Exception
{
List
<
String
>
compareObjs
,
String
driveId
,
int
date
)
throws
Exception
{
List
<
DriveIndCalResult
>
calResults
=
driveIndCalResultRepo
.
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
findByIndIdAndDateAndCompareObjIn
(
driveId
,
date
,
compareObjs
);
paramMap
.
put
(
"indId"
,
driveId
);
List
<
DriveIndCalResult
>
realCalResults
=
new
ArrayList
<>();
//用于保存符合过滤条件的指标结果
paramMap
.
put
(
"date"
,
date
);
paramMap
.
put
(
"compareObjs"
,
compareObjs
);
List
<
DriveIndCalResultDef
>
calResults
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObjIn
(
paramMap
);
List
<
DriveIndCalResultDef
>
realCalResults
=
new
ArrayList
<>();
//用于保存符合过滤条件的指标结果
//获取排名第一的最大值
//获取排名第一的最大值
String
maxValue
=
null
;
String
maxValue
=
null
;
for
(
DriveIndCalResult
calResult
:
calResults
)
{
for
(
DriveIndCalResult
Def
calResult
:
calResults
)
{
if
(
calResult
.
getRank
()==
1
)
{
if
(
calResult
.
getRank
()==
1
)
{
maxValue
=
calResult
.
getValue
();
maxValue
=
calResult
.
getValue
();
}
}
}
}
if
(
maxValue
!=
null
)
{
if
(
maxValue
!=
null
)
{
for
(
DriveIndCalResult
calResult
:
calResults
)
{
for
(
DriveIndCalResult
Def
calResult
:
calResults
)
{
//判断是比较差还是百分比
//判断是比较差还是百分比
if
(
"0"
.
equals
(
shortboardItem
.
getAnalysisType
()))
{
//绝对值
if
(
"0"
.
equals
(
shortboardItem
.
getAnalysisType
()))
{
//绝对值
...
...
src/main/resources/mybatis/mapping/DriveIndCalResultDefMapper.xml
View file @
4b06f9d9
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper"
>
<mapper
namespace=
"com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper"
>
<select
id=
"findByIndId"
parameterType=
"string"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
<select
id=
"findByIndId"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
select *
from drive_ind_cal_result_def
from drive_ind_cal_result_def
where ind_id = #{indId}
where ind_id = #{indId}
...
@@ -17,4 +17,115 @@
...
@@ -17,4 +17,115 @@
#{id}
#{id}
</foreach>
</foreach>
</select>
</select>
<select
id=
"findByIndIdAndCompareObj"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
compare_obj = #{compareObj}
</select>
<select
id=
"findByIndIdAndDateAndCompareObj"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
compare_obj = #{compareObj} and
date = #{date}
</select>
<select
id=
"findByIndIdAndDate"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date}
</select>
<select
id=
"findByIndIdAndDateAndActualAverageIsNotNull"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
actual_average is not null
</select>
<select
id=
"findByIndIdAndDateAndSort"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} order by rank asc
</select>
<select
id=
"findByIndIdAndDateAndSortAndActualAverageIsNotNull"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
actual_average is not null order by rank asc
</select>
<select
id=
"findByIndIdAndDateAndCompareIdAndSort"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
compare_id = #{compareId} order by rank asc
</select>
<select
id=
"findByIndIdAndDateAndCompareId"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
compare_id = #{compareId}
</select>
<select
id=
"findByCompareObjAndDate"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
compare_obj = #{compareObj} and
date = #{date}
</select>
<select
id=
"findByCompareObjAndDateAndIndIdIn"
parameterType=
"map"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
compare_obj = #{compareObj} and
date = #{date} and
ind_id in
<foreach
item=
"id"
collection=
"indIds"
open=
"("
close=
")"
separator=
","
>
#{id}
</foreach>
</select>
<select
id=
"findByCompareIdAndCompareObjAndIndIdAndDate"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
compare_id = #{compareId} and
compare_obj = #{compareObj} and
ind_id = #{indId} and
date = #{date}
</select>
<select
id=
"findByIndIdAndDateAndCompareObjIn"
parameterType=
"map"
resultType=
"com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef"
>
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
compare_obj in
<foreach
item=
"id"
collection=
"compareObjs"
open=
"("
close=
")"
separator=
","
>
#{id}
</foreach>
</select>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment