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
55255eb6
Commit
55255eb6
authored
Aug 09, 2022
by
dengwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
指标积分个性化修改
parent
ae99835d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
307 additions
and
47 deletions
+307
-47
IndScorecard.java
...obile/indicators/model/entity/scorecard/IndScorecard.java
+13
-2
UploadFile.java
...mobile/indicators/model/entity/uploadfile/UploadFile.java
+1
-0
IndScorecardService.java
...ile/indicators/service/hytobacco/IndScorecardService.java
+256
-41
UploadFileService.java
...bile/indicators/service/uploadfile/UploadFileService.java
+37
-4
No files found.
src/main/java/com/keymobile/indicators/model/entity/scorecard/IndScorecard.java
View file @
55255eb6
...
@@ -28,6 +28,7 @@ public class IndScorecard {
...
@@ -28,6 +28,7 @@ public class IndScorecard {
private
Double
compLimitScore
;
private
Double
compLimitScore
;
private
String
scoreType
;
//综合评分类型 0:定义 1:公式
private
String
scoreType
;
//综合评分类型 0:定义 1:公式
private
String
improveScoreType
;
//改善提升类型(新增字段2022-03-31) 0:普通 1:公式
//定义综合评价
//定义综合评价
private
Double
indBaseScore
;
//基础分
private
Double
indBaseScore
;
//基础分
private
Double
moreAverage
;
//大于组内平均分加分
private
Double
moreAverage
;
//大于组内平均分加分
...
@@ -61,12 +62,22 @@ public class IndScorecard {
...
@@ -61,12 +62,22 @@ public class IndScorecard {
private
Double
improveBaseScore
;
//改善提升基础分,新增改善提升基础分-hzc 2020 12 29
private
Double
improveBaseScore
;
//改善提升基础分,新增改善提升基础分-hzc 2020 12 29
private
String
sectionFormula
;
//区间公式表达式
private
String
sectionFormula
;
//区间公式表达式
private
Double
compLimitFloorScore
;
//综合评价下限
private
Double
compLimitFloorScore
;
//综合评价下限
private
Double
limitFloorScore
;
//改善提升下限
private
Double
limitFloorScore
;
//改善提升下限
private
Double
improveLimitScore
;
// 改善提升积分上限(新增字段2022-03-31)
private
Double
improveLimitFloorScore
;
// 改善提升积分下限(新增字段2022-03-31)
private
String
improveFormulaInfo
;
//(新增字段2022-03-31)
private
String
improveOtherCalFormula
;
// 改善提升公式积分公式(新增字段2022-03-31)
private
Double
improveBestScore
;
// 改善提升同比值最佳积分(新增字段2022-03-31)
private
Double
improveWorstScore
;
// 改善提升同比值最差积分(新增字段2022-03-31)
}
}
src/main/java/com/keymobile/indicators/model/entity/uploadfile/UploadFile.java
View file @
55255eb6
...
@@ -23,4 +23,5 @@ public class UploadFile {
...
@@ -23,4 +23,5 @@ public class UploadFile {
private
String
uploadUser
;
//上传用户名
private
String
uploadUser
;
//上传用户名
private
String
uploadDate
;
//上传时间
private
String
uploadDate
;
//上传时间
private
String
code
;
//机构编码
private
String
code
;
//机构编码
private
String
orgName
;
//机构名称
}
}
src/main/java/com/keymobile/indicators/service/hytobacco/IndScorecardService.java
View file @
55255eb6
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
package
com
.
keymobile
.
indicators
.
service
.
hytobacco
;
import
java.math.BigDecimal
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
...
@@ -181,7 +177,6 @@ public class IndScorecardService {
...
@@ -181,7 +177,6 @@ public class IndScorecardService {
DriveIndCalResultDef
currentCompareObjResult
=
driveIndCalResultDefMapper
DriveIndCalResultDef
currentCompareObjResult
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObjAndCompareCatalog
(
indId
,
date
,
.
findByIndIdAndDateAndCompareObjAndCompareCatalog
(
indId
,
date
,
compareObj
,
code
,
compareCatalog
,
dateMark
);
compareObj
,
code
,
compareCatalog
,
dateMark
);
if
(
currentCompareObjResult
!=
null
)
{
if
(
currentCompareObjResult
!=
null
)
{
String
average
=
currentCompareObjResult
.
getAverage
();
String
average
=
currentCompareObjResult
.
getAverage
();
//如果实际平均值存在
//如果实际平均值存在
...
@@ -290,7 +285,14 @@ public class IndScorecardService {
...
@@ -290,7 +285,14 @@ public class IndScorecardService {
sectionScores
,
acsType
);
sectionScores
,
acsType
);
}
}
}
}
else
if
(
"3"
.
equals
(
scoreCard
.
getScoreType
())){
// 排名强制区间表达式计算
// 计算(排名/组内单位数*100)
double
x
=
new
Double
(
currentCompareObjResult
.
getRank
())
/
currentDriveResult
.
size
()
*
100
;
// 解析区间表达式,计算基本分
baseScoreValue
=
this
.
getBaseScoreByExpression
(
x
,
scoreCard
);
// 解析排名加减分JSON,计算基本分
baseScoreValue
=
baseScoreValue
+
this
.
getBonusByJson
(
currentCompareObjResult
,
scoreCard
,
currentDriveResult
);
}
//判断是否有设置综合评分分数上限,有的话判断上限分和实际分
//判断是否有设置综合评分分数上限,有的话判断上限分和实际分
if
(
scoreCard
.
getCompLimitScore
()!=
null
)
{
if
(
scoreCard
.
getCompLimitScore
()!=
null
)
{
if
(
baseScoreValue
>
scoreCard
.
getCompLimitScore
())
{
if
(
baseScoreValue
>
scoreCard
.
getCompLimitScore
())
{
...
@@ -307,44 +309,87 @@ public class IndScorecardService {
...
@@ -307,44 +309,87 @@ public class IndScorecardService {
}
}
//改善提升
//改善提升
if
(
"1"
.
equals
(
scoreCard
.
getIsIncluScore
()))
{
//纳入单位得分计算
if
(
"1"
.
equals
(
scoreCard
.
getIsIncluScore
()))
{
//纳入单位得分计算
//同期
if
(
StringUtils
.
equals
(
"0"
,
scoreCard
.
getImproveScoreType
())){
//改用添加对标单元目录做为过滤条件
// 改善提升普通积分
DriveIndCalResultDef
sameCompareObjResult
=
driveIndCalResultDefMapper
//同期
.
findByIndIdAndDateAndCompareObjAndCompareCatalog
(
indId
,
(
date
-
100
),
//改用添加对标单元目录做为过滤条件
compareObj
,
code
,
compareCatalog
,
dateMark
);
DriveIndCalResultDef
sameCompareObjResult
=
driveIndCalResultDefMapper
if
(
sameCompareObjResult
!=
null
)
{
.
findByIndIdAndDateAndCompareObjAndCompareCatalog
(
indId
,
(
date
-
100
),
List
<
ImproveScoreDef
>
importScoreDefList
=
new
ArrayList
<>();
compareObj
,
code
,
compareCatalog
,
dateMark
);
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getImproveScoreItemJson
()))
{
if
(
sameCompareObjResult
!=
null
)
{
importScoreDefList
=
gson
.
List
<
ImproveScoreDef
>
importScoreDefList
=
new
ArrayList
<>();
fromJson
(
scoreCard
.
getImproveScoreItemJson
(),
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getImproveScoreItemJson
()))
{
new
TypeToken
<
List
<
ImproveScoreDef
>>(){}.
getType
());
importScoreDefList
=
gson
.
}
fromJson
(
scoreCard
.
getImproveScoreItemJson
(),
double
improveScore
=
this
.
calImproveValue
(
acsType
,
unit
,
new
TypeToken
<
List
<
ImproveScoreDef
>>(){}.
getType
());
importScoreDefList
,
currentCompareObjResult
,
}
sameCompareObjResult
,
compareObjs
,
double
improveScore
=
this
.
calImproveValue
(
acsType
,
unit
,
driveIndDef
.
getGrowCalType
(),
code
);
importScoreDefList
,
currentCompareObjResult
,
//新增基础分 hzc
sameCompareObjResult
,
compareObjs
,
Double
improveBaseScore
=
scoreCard
.
getImproveBaseScore
();
driveIndDef
.
getGrowCalType
(),
code
);
if
(
improveBaseScore
!=
null
&&
improveBaseScore
!=
0
){
//新增基础分 hzc
improveScore
+=
improveBaseScore
;
Double
improveBaseScore
=
scoreCard
.
getImproveBaseScore
();
if
(
improveBaseScore
!=
null
&&
improveBaseScore
!=
0
){
improveScore
+=
improveBaseScore
;
}
//改善上限
if
(
scoreCard
.
getLimitScore
()!=
null
)
{
if
(
improveScore
>
scoreCard
.
getLimitScore
())
{
improveScore
=
scoreCard
.
getLimitScore
();
}
}
//改善下限
if
(
scoreCard
.
getLimitFloorScore
()!=
null
&&
scoreCard
.
getLimitFloorScore
()!=
0
){
if
(
improveScore
<
scoreCard
.
getLimitFloorScore
())
{
improveScore
=
scoreCard
.
getLimitFloorScore
();
}
}
indImproveScoreValue
=
String
.
format
(
"%.8f"
,
new
BigDecimal
(
improveScore
));
result
.
put
(
"improveScore"
,
indImproveScoreValue
);
}
else
{
//没有同期值
result
.
put
(
"improveScore"
,
"No"
);
//表示不纳入单位得分计算标识
}
}
//改善上限
}
else
if
(
StringUtils
.
equals
(
"1"
,
scoreCard
.
getImproveScoreType
())){
if
(
scoreCard
.
getLimitScore
()!=
null
)
{
// 改善提升公式积分
if
(
improveScore
>
scoreCard
.
getLimitScore
())
{
// 获取本组的同期考核指标结果
improveScore
=
scoreCard
.
getLimitScore
();
List
<
DriveIndCalResultDef
>
sameDriveResult
=
new
ArrayList
<>();
// 判断本期成员与同期成员是否一致,可能存在换组的情况
if
(
compareObjs
.
isEmpty
()){
sameDriveResult
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareIdAndSort
(
indId
,
(
date
-
100
),
compareId
,
code
,
dateMark
);
}
else
{
for
(
String
obj
:
compareObjs
){
DriveIndCalResultDef
indCalResultDef
=
driveIndCalResultDefMapper
.
findByIndIdAndDateAndCompareObjAndCompareCatalog
(
currentCompareObjResult
.
getIndId
(),
(
currentCompareObjResult
.
getDate
()-
100
),
obj
,
code
,
currentCompareObjResult
.
getCompareCatalog
(),
currentCompareObjResult
.
getDateMark
());
if
(
indCalResultDef
!=
null
){
sameDriveResult
.
add
(
indCalResultDef
);
}
}
}
}
}
//改善下限
if
(!
sameDriveResult
.
isEmpty
()){
if
(
scoreCard
.
getLimitFloorScore
()!=
null
&&
scoreCard
.
getLimitFloorScore
()!=
0
){
// 增幅计算类型 0:本期-同期 1:(本期-同期)/同期*100
if
(
improveScore
<
scoreCard
.
getLimitFloorScore
())
{
String
growCalType
=
driveIndDef
.
getGrowCalType
();
improveScore
=
scoreCard
.
getLimitFloorScore
();
// 获取改善提升积分
double
improveScore
=
this
.
getImproveScore
(
currentDriveResult
,
sameDriveResult
,
currentCompareObjResult
,
scoreCard
,
growCalType
,
acsType
);
// 改善提升积分上限
if
(
scoreCard
.
getImproveLimitScore
()
!=
null
&&
scoreCard
.
getImproveLimitScore
()
!=
0
){
if
(
improveScore
>
scoreCard
.
getImproveLimitScore
()){
improveScore
=
scoreCard
.
getImproveLimitScore
();
}
}
}
// 改善提升积分下限
if
(
scoreCard
.
getImproveLimitFloorScore
()
!=
null
&&
scoreCard
.
getImproveLimitFloorScore
()
!=
0
){
if
(
improveScore
<
scoreCard
.
getImproveLimitFloorScore
()){
improveScore
=
scoreCard
.
getImproveLimitFloorScore
();
}
}
indImproveScoreValue
=
String
.
format
(
"%.8f"
,
new
BigDecimal
(
improveScore
));
result
.
put
(
"improveScore"
,
indImproveScoreValue
);
}
else
{
//没有同期值
result
.
put
(
"improveScore"
,
"No"
);
//表示不纳入单位得分计算标识
}
}
indImproveScoreValue
=
String
.
format
(
"%.8f"
,
new
BigDecimal
(
improveScore
));
result
.
put
(
"improveScore"
,
indImproveScoreValue
);
}
else
{
//没有同期值
result
.
put
(
"improveScore"
,
"No"
);
//表示不纳入单位得分计算标识
}
}
}
else
{
}
else
{
result
.
put
(
"improveScore"
,
"No"
);
//表示不纳入单位得分计算标识
result
.
put
(
"improveScore"
,
"No"
);
//表示不纳入单位得分计算标识
...
@@ -368,7 +413,177 @@ public class IndScorecardService {
...
@@ -368,7 +413,177 @@ public class IndScorecardService {
return
result
;
return
result
;
}
}
private
List
<
DriveIndCalResultDef
>
getSectionFonmulaValues
(
List
<
DriveIndCalResultDef
>
currentDriveResult
,
IndScorecard
scoreCard
)
{
/**
* 获取改善提升积分
* @param currentDriveResult
* @param sameDriveResult
* @param currentCompareObjResult
* @param scoreCard
* @param growCalType
* @return
*/
private
double
getImproveScore
(
List
<
DriveIndCalResultDef
>
currentDriveResult
,
List
<
DriveIndCalResultDef
>
sameDriveResult
,
DriveIndCalResultDef
currentCompareObjResult
,
IndScorecard
scoreCard
,
String
growCalType
,
String
acsType
)
{
double
improveScore
=
0.0
;
Map
<
String
,
String
>
current
=
new
HashMap
<>();
Map
<
String
,
String
>
same
=
new
HashMap
<>();
// 同比值集合
Map
<
String
,
String
>
valueMap
=
new
HashMap
<>();
// 同比值平均值
double
avg
;
double
sum
=
0.0
;
currentDriveResult
.
forEach
(
e
->
{
if
(
StringUtils
.
isNotBlank
(
e
.
getValue
())){
current
.
put
(
e
.
getCompareObj
(),
e
.
getValue
());
}
else
{
current
.
put
(
e
.
getCompareObj
(),
"0"
);
}
});
sameDriveResult
.
forEach
(
e
->
{
if
(
StringUtils
.
isNotBlank
(
e
.
getValue
())){
same
.
put
(
e
.
getCompareObj
(),
e
.
getValue
());
}
else
{
same
.
put
(
e
.
getCompareObj
(),
"0"
);
}
});
//增幅计算类型 0:本期-同期 1:(本期-同期)/同期*100
for
(
String
s
:
current
.
keySet
()){
// 计算同期比
String
rate
=
CalculateUtils
.
calGowth
(
current
.
get
(
s
),
same
.
get
(
s
),
growCalType
);
double
improveValue
=
0
;
if
(
StringUtils
.
isNotBlank
(
rate
))
{
improveValue
=
Double
.
parseDouble
(
rate
);
}
valueMap
.
put
(
s
,
String
.
valueOf
(
improveValue
));
sum
+=
improveValue
;
}
avg
=
(
sum
*
1.0
)
/
(
current
.
size
()
*
1.0
);
// 排名
Map
<
String
,
Integer
>
rankValue
=
CalculateUtils
.
rankValue
(
valueMap
,
"0"
);
// 排序
Map
<
String
,
Integer
>
sortValue
=
CalculateUtils
.
sortByValueAsc
(
rankValue
);
String
compareObj
=
currentCompareObjResult
.
getCompareObj
();
currentCompareObjResult
.
setRank
(
sortValue
.
get
(
compareObj
));
currentCompareObjResult
.
setCompareObj
(
compareObj
);
currentCompareObjResult
.
setValue
(
valueMap
.
get
(
compareObj
));
currentCompareObjResult
.
setAverage
(
String
.
format
(
"%.8f"
,
new
BigDecimal
(
avg
)));
List
<
DriveIndCalResultDef
>
list
=
new
ArrayList
<>();
for
(
String
sort
:
sortValue
.
keySet
()){
DriveIndCalResultDef
def
=
new
DriveIndCalResultDef
();
def
.
setCompareObj
(
sort
);
def
.
setRank
(
sortValue
.
get
(
sort
));
def
.
setValue
(
valueMap
.
get
(
sort
));
def
.
setAverage
(
String
.
format
(
"%.8f"
,
new
BigDecimal
(
avg
)));
list
.
add
(
def
);
}
int
rank
=
currentCompareObjResult
.
getRank
();
if
(
rank
==
1
&&
scoreCard
.
getBestIndScore
()!=
null
)
{
// 同比值最佳积分
if
(
checkMaxEqMin
(
list
,
acsType
)){
improveScore
=
0
;
}
else
{
improveScore
=
scoreCard
.
getBestIndScore
();
}
}
else
if
(
rank
==
list
.
size
()
&&
scoreCard
.
getWorstIndScore
()!=
null
)
{
// 同比值最差积分
if
(
checkMaxEqMin
(
list
,
acsType
)){
improveScore
=
0
;
}
else
{
improveScore
=
scoreCard
.
getWorstIndScore
();
}
}
else
{
// 公式
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getImproveOtherCalFormula
()))
{
improveScore
=
this
.
getValueFromFormula
(
scoreCard
.
getImproveOtherCalFormula
(),
currentCompareObjResult
,
list
,
acsType
);
}
}
return
improveScore
;
}
/**
* 根据排名加减分规则获取额外分数
* @param currentCompareObjResult
* @param scoreCard
* @param currentDriveResult
* @return
*/
private
double
getBonusByJson
(
DriveIndCalResultDef
currentCompareObjResult
,
IndScorecard
scoreCard
,
List
<
DriveIndCalResultDef
>
currentDriveResult
)
{
Double
value
=
0.0
;
Gson
gson
=
new
Gson
();
int
rank
=
currentCompareObjResult
.
getRank
();
//加分项
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getAddScoreItemJson
()))
{
List
<
RankScoreDef
>
addScoreItem
=
gson
.
fromJson
(
scoreCard
.
getAddScoreItemJson
(),
new
TypeToken
<
List
<
RankScoreDef
>>(){}.
getType
());
for
(
RankScoreDef
scoreDef
:
addScoreItem
)
{
if
(
scoreDef
.
getRank
()
==
rank
)
{
value
+=
scoreDef
.
getScore
();
break
;
}
}
}
//减分项
if
(
StringUtils
.
isNotBlank
(
scoreCard
.
getMinusScoreItemJson
()))
{
List
<
RankScoreDef
>
minusScoreItem
=
gson
.
fromJson
(
scoreCard
.
getMinusScoreItemJson
(),
new
TypeToken
<
List
<
RankScoreDef
>>(){}.
getType
());
rank
=
currentDriveResult
.
size
()-
rank
+
1
;
for
(
RankScoreDef
scoreDef
:
minusScoreItem
)
{
if
(
scoreDef
.
getRank
()==
rank
)
{
value
-=
scoreDef
.
getScore
();
break
;
}
}
}
return
value
;
}
/**
* 根据排名强制区间表达式获取基本分
* @param x
* @param scoreCard
* @return
*/
private
double
getBaseScoreByExpression
(
double
x
,
IndScorecard
scoreCard
)
{
double
value
=
0.0
;
String
[]
sections
=
scoreCard
.
getSectionFormula
().
split
(
","
);
double
start
;
boolean
startEq
;
double
end
;
boolean
endEq
;
for
(
String
section
:
sections
){
String
[]
sec
=
section
.
split
(
":"
);
if
(
StringUtils
.
isBlank
(
sec
[
0
])&&
StringUtils
.
isBlank
(
sec
[
3
])){
//范围边界都是空
log
.
info
(
"范围边界不可全为空!!!"
);
continue
;
}
if
(
StringUtils
.
isBlank
(
sec
[
0
])){
start
=
Double
.
MIN_VALUE
;
}
else
{
start
=
Double
.
parseDouble
(
sec
[
0
]);
}
startEq
=
"1"
.
equals
(
sec
[
1
]);
if
(
StringUtils
.
isBlank
(
sec
[
3
])){
end
=
Double
.
MAX_VALUE
;
}
else
{
end
=
Double
.
parseDouble
(
sec
[
3
]);
}
endEq
=
"1"
.
equals
(
sec
[
2
]);
//先假设全是闭区间
if
(
x
>=
start
&&
x
<=
end
)
{
if
(!
startEq
&&
x
==
start
)
{
//是开区间,而且值就等于边界值跳过
continue
;
}
if
(!
endEq
&&
x
==
end
)
{
//是开区间,而且值就等于边界值跳过
continue
;
}
//符合区间范围
value
=
StringUtils
.
isNotBlank
(
sec
[
4
])
?
Double
.
parseDouble
(
sec
[
4
])
:
0.0
;
break
;
}
}
return
value
;
}
private
List
<
DriveIndCalResultDef
>
getSectionFonmulaValues
(
List
<
DriveIndCalResultDef
>
currentDriveResult
,
IndScorecard
scoreCard
)
{
List
<
DriveIndCalResultDef
>
values
=
new
ArrayList
<>();
List
<
DriveIndCalResultDef
>
values
=
new
ArrayList
<>();
Map
<
String
,
String
>
rankMapTmp
=
new
HashMap
<>();
Map
<
String
,
String
>
rankMapTmp
=
new
HashMap
<>();
double
sum
=
0
;
double
sum
=
0
;
...
...
src/main/java/com/keymobile/indicators/service/uploadfile/UploadFileService.java
View file @
55255eb6
package
com
.
keymobile
.
indicators
.
service
.
uploadfile
;
package
com
.
keymobile
.
indicators
.
service
.
uploadfile
;
import
java.io.InputStream
;
import
java.io.InputStream
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
com.alibaba.fastjson.JSONObject
;
import
com.keymobile.indicators.service.SystemAuthService
;
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
;
...
@@ -27,6 +26,8 @@ public class UploadFileService {
...
@@ -27,6 +26,8 @@ public class UploadFileService {
@Autowired
@Autowired
private
UploadFileMapper
uploadFileMapper
;
private
UploadFileMapper
uploadFileMapper
;
@Autowired
private
SystemAuthService
systemAuthService
;
@Value
(
"${uploadfile.path}"
)
@Value
(
"${uploadfile.path}"
)
private
String
uploadFilePath
;
private
String
uploadFilePath
;
...
@@ -34,6 +35,7 @@ public class UploadFileService {
...
@@ -34,6 +35,7 @@ public class UploadFileService {
//上传文件
//上传文件
public
void
uploadFile
(
InputStream
in
,
String
fileName
,
String
fileType
,
public
void
uploadFile
(
InputStream
in
,
String
fileName
,
String
fileType
,
String
user
,
String
code
)
throws
Exception
{
String
user
,
String
code
)
throws
Exception
{
fileName
=
this
.
filterFilename
(
fileName
);
//先保存文件详情到数据库中
//先保存文件详情到数据库中
UploadFile
uploadFile
=
new
UploadFile
();
UploadFile
uploadFile
=
new
UploadFile
();
if
(
StringUtils
.
isNotBlank
(
fileType
))
{
if
(
StringUtils
.
isNotBlank
(
fileType
))
{
...
@@ -46,6 +48,12 @@ public class UploadFileService {
...
@@ -46,6 +48,12 @@ public class UploadFileService {
uploadFile
.
setUploadUser
(
user
);
uploadFile
.
setUploadUser
(
user
);
uploadFile
.
setUploadDate
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
uploadFile
.
setUploadDate
(
DateUtils
.
formatDate
(
new
Date
(),
"yyyy-MM-dd HH:mm:ss"
));
uploadFile
.
setCode
(
code
);
uploadFile
.
setCode
(
code
);
List
<
String
>
codes
=
new
ArrayList
<>();
codes
.
add
(
code
);
List
<
JSONObject
>
jsonObjects
=
systemAuthService
.
getByNos
(
codes
);
for
(
JSONObject
object
:
jsonObjects
){
uploadFile
.
setOrgName
(
object
.
getString
(
"name"
));
}
//保存
//保存
uploadFileMapper
.
insert
(
uploadFile
);
uploadFileMapper
.
insert
(
uploadFile
);
//设置上传文件路径
//设置上传文件路径
...
@@ -81,6 +89,9 @@ public class UploadFileService {
...
@@ -81,6 +89,9 @@ public class UploadFileService {
int
page
,
int
rows
)
throws
Exception
{
int
page
,
int
rows
)
throws
Exception
{
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
paramMap
=
new
HashMap
<>();
if
(
code
.
length
()>
2
){
code
=
code
.
substring
(
0
,
code
.
length
()-
2
);
}
paramMap
.
put
(
"code"
,
code
+
"%"
);
paramMap
.
put
(
"code"
,
code
+
"%"
);
if
(
StringUtils
.
isBlank
(
keyword
))
{
if
(
StringUtils
.
isBlank
(
keyword
))
{
paramMap
.
put
(
"keyword"
,
null
);
paramMap
.
put
(
"keyword"
,
null
);
...
@@ -105,4 +116,26 @@ public class UploadFileService {
...
@@ -105,4 +116,26 @@ public class UploadFileService {
public
void
deleteUploadFile
(
List
<
Integer
>
ids
)
{
public
void
deleteUploadFile
(
List
<
Integer
>
ids
)
{
uploadFileMapper
.
deleteByIdIn
(
ids
);
uploadFileMapper
.
deleteByIdIn
(
ids
);
}
}
/**
* 过滤文件名称
* @param filename
* @return
*/
private
String
filterFilename
(
String
filename
)
{
String
newFileName
;
// 看是否unix带路径格式
int
unixSep
=
filename
.
lastIndexOf
(
'/'
);
// 看是否win带路径格式
int
winSep
=
filename
.
lastIndexOf
(
'\\'
);
// 检查分隔符长度 winSep == -1 && unixSep == -1 则filename不带路径格式
int
pos
=
(
winSep
>
unixSep
?
winSep
:
unixSep
);
if
(
pos
!=
-
1
)
{
// 只获取分隔符后文件名
filename
=
filename
.
substring
(
pos
+
1
);
}
newFileName
=
filename
;
return
newFileName
;
}
}
}
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