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
2ff61850
Commit
2ff61850
authored
Apr 17, 2020
by
张祺
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
移除mongodb代码
parent
a66fa4e1
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1445 additions
and
1452 deletions
+1445
-1452
DeriveIndicatorsCtrl.java
...obile/indicators/api/indicators/DeriveIndicatorsCtrl.java
+70
-70
IndicatorsCtrl.java
...m/keymobile/indicators/api/indicators/IndicatorsCtrl.java
+119
-119
MongoDBConfig.java
...ain/java/com/keymobile/indicators/conf/MongoDBConfig.java
+63
-63
DeriveIndicators.java
...ymobile/indicators/model/indicators/DeriveIndicators.java
+119
-119
IndicatorsDef.java
.../keymobile/indicators/model/indicators/IndicatorsDef.java
+127
-127
IndicatorsDim.java
.../keymobile/indicators/model/indicators/IndicatorsDim.java
+119
-119
DeriveIndicatorsRepository.java
...rs/persistence/indicators/DeriveIndicatorsRepository.java
+15
-15
IndicatorsDefRepository.java
...ators/persistence/indicators/IndicatorsDefRepository.java
+13
-13
IndicatorsDimRepository.java
...ators/persistence/indicators/IndicatorsDimRepository.java
+18
-18
DeriveIndicatorsService.java
...ndicators/service/indicators/DeriveIndicatorsService.java
+231
-231
IndicatorsExcelService.java
...indicators/service/indicators/IndicatorsExcelService.java
+152
-152
IndicatorsService.java
...bile/indicators/service/indicators/IndicatorsService.java
+399
-399
application-test.yml
src/main/resources/application-test.yml
+0
-7
No files found.
src/main/java/com/keymobile/indicators/api/indicators/DeriveIndicatorsCtrl.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
api
.
indicators
;
//
package com.keymobile.indicators.api.indicators;
//
import
java.util.List
;
//
import java.util.List;
import
java.util.Map
;
//
import java.util.Map;
//
import
org.springframework.beans.factory.annotation.Autowired
;
//
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.PostMapping
;
//
import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
//
import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
//
import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
//
import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
//
import org.springframework.web.bind.annotation.RestController;
//
import
com.keymobile.indicators.model.indicators.DeriveIndicators
;
//
import com.keymobile.indicators.model.indicators.DeriveIndicators;
import
com.keymobile.indicators.service.indicators.DeriveIndicatorsService
;
//
import com.keymobile.indicators.service.indicators.DeriveIndicatorsService;
//
import
io.swagger.annotations.ApiOperation
;
//
import io.swagger.annotations.ApiOperation;
//
@RestController
//
@RestController
@RequestMapping
(
value
=
"/deriveIndicatorsCtrl"
)
//
@RequestMapping(value = "/deriveIndicatorsCtrl")
public
class
DeriveIndicatorsCtrl
{
//
public class DeriveIndicatorsCtrl {
//
@Autowired
//
@Autowired
private
DeriveIndicatorsService
derIndecatorsService
;
//
private DeriveIndicatorsService derIndecatorsService;
//
@ApiOperation
(
value
=
"新增/修改衍生指标"
,
notes
=
"新增/修改衍生指标"
)
//
@ApiOperation(value = "新增/修改衍生指标", notes = "新增/修改衍生指标")
@PostMapping
(
value
=
"/saveOrUpdateDerIndi"
)
//
@PostMapping(value = "/saveOrUpdateDerIndi")
public
String
saveOrUpdateDerIndicators
(
@RequestParam
String
operator
,
//
public String saveOrUpdateDerIndicators(@RequestParam String operator,
@RequestBody
DeriveIndicators
derIndicators
)
throws
Exception
{
//
@RequestBody DeriveIndicators derIndicators) throws Exception{
return
derIndecatorsService
.
saveOrUpdate
(
derIndicators
,
operator
);
//
return derIndecatorsService.saveOrUpdate(derIndicators, operator);
}
//
}
//
@ApiOperation
(
value
=
"删除衍生指标"
,
notes
=
"删除衍生指标"
)
//
@ApiOperation(value = "删除衍生指标", notes = "删除衍生指标")
@PostMapping
(
value
=
"/deleteDerIndicators"
)
//
@PostMapping(value = "/deleteDerIndicators")
public
void
deleteDerIndicators
(
@RequestParam
String
derIndiId
)
throws
Exception
{
//
public void deleteDerIndicators(@RequestParam String derIndiId) throws Exception{
derIndecatorsService
.
delete
(
derIndiId
);
//
derIndecatorsService.delete(derIndiId);
}
//
}
//
@ApiOperation
(
value
=
"获取衍生指标列表"
,
notes
=
"获取衍生指标列表"
)
//
@ApiOperation(value = "获取衍生指标列表", notes = "获取衍生指标列表")
@PostMapping
(
value
=
"/getDerIndicatorsList"
)
//
@PostMapping(value = "/getDerIndicatorsList")
public
List
<
DeriveIndicators
>
getDerIndicatorsList
(
@RequestParam
(
required
=
false
)
String
keyword
)
throws
Exception
{
//
public List<DeriveIndicators> getDerIndicatorsList(@RequestParam(required=false) String keyword)throws Exception{
return
derIndecatorsService
.
getDerIndicatorsList
(
keyword
);
//
return derIndecatorsService.getDerIndicatorsList(keyword);
}
//
}
//
@ApiOperation
(
value
=
"获取衍生指标详情"
,
notes
=
"获取衍生指标详情"
)
//
@ApiOperation(value = "获取衍生指标详情", notes = "获取衍生指标详情")
@PostMapping
(
value
=
"/getDerIndicatorsDetial"
)
//
@PostMapping(value = "/getDerIndicatorsDetial")
public
DeriveIndicators
getDerIndicatorsDetail
(
@RequestParam
String
id
)
throws
Exception
{
//
public DeriveIndicators getDerIndicatorsDetail(@RequestParam String id) throws Exception{
return
derIndecatorsService
.
getDerIndicatorsDetail
(
id
);
//
return derIndecatorsService.getDerIndicatorsDetail(id);
}
//
}
//
@ApiOperation
(
value
=
"获取衍生指标关联的原生指标共同的维度"
,
notes
=
"获取衍生指标关联的原生指标共同的维度"
)
//
@ApiOperation(value = "获取衍生指标关联的原生指标共同的维度", notes = "获取衍生指标关联的原生指标共同的维度")
@PostMapping
(
value
=
"/getSameDim"
)
//
@PostMapping(value = "/getSameDim")
public
List
<
String
>
getSameDim
(
@RequestParam
String
indiDefIdString
)
throws
Exception
{
//
public List<String> getSameDim(@RequestParam String indiDefIdString) throws Exception{
return
derIndecatorsService
.
getSameDim
(
indiDefIdString
);
//
return derIndecatorsService.getSameDim(indiDefIdString);
}
//
}
//
@ApiOperation
(
value
=
"计算衍生指标的值"
,
notes
=
"计算衍生指标的值"
)
//
@ApiOperation(value = "计算衍生指标的值", notes = "计算衍生指标的值")
@PostMapping
(
value
=
"/calculate"
)
//
@PostMapping(value = "/calculate")
public
double
calculateDeriveIndicators
(
@RequestParam
String
derIndiId
,
//
public double calculateDeriveIndicators(@RequestParam String derIndiId,
@RequestBody
Map
<
String
,
Object
>
dimValues
)
throws
Exception
{
//
@RequestBody Map<String,Object> dimValues) throws Exception{
return
derIndecatorsService
.
calculateDeriveIndicators
(
derIndiId
,
dimValues
);
//
return derIndecatorsService.calculateDeriveIndicators(derIndiId, dimValues);
}
//
}
//
@ApiOperation
(
value
=
"对标单元获取指标报表"
,
notes
=
"对标单元获取指标报表"
)
//
@ApiOperation(value = "对标单元获取指标报表", notes = "对标单元获取指标报表")
@PostMapping
(
value
=
"/getIndicatorsReport"
)
//
@PostMapping(value = "/getIndicatorsReport")
public
Map
<
String
,
Object
>
getIndicatorsReport
(
@RequestParam
String
StandardUnitId
,
//
public Map<String,Object> getIndicatorsReport(@RequestParam String StandardUnitId,
@RequestParam
String
compareIndiIds
,
//
@RequestParam String compareIndiIds,
@RequestBody
List
<
String
>
compareDims
,
@RequestParam
String
year
)
throws
Exception
{
//
@RequestBody List<String> compareDims,@RequestParam String year)throws Exception{
return
derIndecatorsService
.
getIndicatorsReport
(
StandardUnitId
,
compareIndiIds
,
compareDims
,
year
);
//
return derIndecatorsService.getIndicatorsReport(StandardUnitId, compareIndiIds, compareDims, year);
}
//
}
}
//
}
src/main/java/com/keymobile/indicators/api/indicators/IndicatorsCtrl.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
api
.
indicators
;
//
package com.keymobile.indicators.api.indicators;
//
import
java.io.InputStream
;
//
import java.io.InputStream;
import
java.util.List
;
//
import java.util.List;
import
java.util.Map
;
//
import java.util.Map;
//
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
//
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import
org.springframework.beans.factory.annotation.Autowired
;
//
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.web.bind.annotation.PostMapping
;
//
import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestBody
;
//
import org.springframework.web.bind.annotation.RequestBody;
import
org.springframework.web.bind.annotation.RequestMapping
;
//
import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RequestParam
;
//
import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
//
import org.springframework.web.bind.annotation.RestController;
import
org.springframework.web.multipart.MultipartFile
;
//
import org.springframework.web.multipart.MultipartFile;
//
import
com.keymobile.indicators.model.indicators.IndicatorsDef
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDef;
import
com.keymobile.indicators.model.indicators.IndicatorsDim
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDim;
import
com.keymobile.indicators.service.indicators.IndicatorsService
;
//
import com.keymobile.indicators.service.indicators.IndicatorsService;
//
import
io.swagger.annotations.ApiOperation
;
//
import io.swagger.annotations.ApiOperation;
//
@RestController
//
@RestController
@RequestMapping
(
value
=
"/indicatorsCtrl"
)
//
@RequestMapping(value = "/indicatorsCtrl")
public
class
IndicatorsCtrl
{
//
public class IndicatorsCtrl {
//
@Autowired
//
@Autowired
private
IndicatorsService
indicatorsService
;
//
private IndicatorsService indicatorsService;
//
@ApiOperation
(
value
=
"新增/修改指标"
,
notes
=
"新增/修改指标"
)
//
@ApiOperation(value = "新增/修改指标", notes = "新增/修改指标")
@PostMapping
(
value
=
"/saveOrUpdateIndiDef"
)
//
@PostMapping(value = "/saveOrUpdateIndiDef")
public
String
saveOrUpdateIndicators
(
//
public String saveOrUpdateIndicators(
@RequestBody
IndicatorsDef
indiDef
,
//
@RequestBody IndicatorsDef indiDef,
@RequestParam
String
operator
)
throws
Exception
{
//
@RequestParam String operator)throws Exception{
return
indicatorsService
.
saveOrUpdateIndiDef
(
indiDef
,
operator
);
//
return indicatorsService.saveOrUpdateIndiDef(indiDef,operator);
}
//
}
//
@ApiOperation
(
value
=
"新增/修改维度(isUpdate:false(新增) true(修改))"
,
notes
=
"新增/修改维度"
)
//
@ApiOperation(value = "新增/修改维度(isUpdate:false(新增) true(修改))", notes = "新增/修改维度")
@PostMapping
(
value
=
"/saveOrUpdateIndiDim"
)
//
@PostMapping(value = "/saveOrUpdateIndiDim")
public
String
saveOrUpdateDim
(
@RequestBody
List
<
IndicatorsDim
>
indiDims
,
//
public String saveOrUpdateDim(@RequestBody List<IndicatorsDim> indiDims,
@RequestParam
String
indiDefId
,
//
@RequestParam String indiDefId,
@RequestParam
String
operator
,
// @RequestParam String operator,
@RequestParam
String
isUpdate
)
throws
Exception
{
//
@RequestParam String isUpdate) throws Exception{
return
indicatorsService
.
saveOrUpdateDim
(
indiDefId
,
indiDims
,
operator
,
isUpdate
);
//
return indicatorsService.saveOrUpdateDim(indiDefId, indiDims, operator, isUpdate);
}
//
}
//
@ApiOperation
(
value
=
"判断原生指标能否修改 true:能 false:不能"
,
notes
=
"判断原生指标能否修改 true:能 false:不能"
)
//
@ApiOperation(value = "判断原生指标能否修改 true:能 false:不能", notes = "判断原生指标能否修改 true:能 false:不能")
@PostMapping
(
value
=
"/canBeUpdate"
)
//
@PostMapping(value = "/canBeUpdate")
public
boolean
canBeUpdate
(
@RequestParam
String
indicatorsId
)
throws
Exception
{
//
public boolean canBeUpdate(@RequestParam String indicatorsId) throws Exception{
return
indicatorsService
.
canBeUpdate
(
indicatorsId
);
//
return indicatorsService.canBeUpdate(indicatorsId);
}
//
}
//
@ApiOperation
(
value
=
"删除指标"
,
notes
=
"删除指标"
)
//
@ApiOperation(value = "删除指标", notes = "删除指标")
@PostMapping
(
value
=
"/deleteIndicators"
)
//
@PostMapping(value = "/deleteIndicators")
public
String
delete
(
@RequestParam
String
indicatorsId
)
throws
Exception
{
//
public String delete(@RequestParam String indicatorsId)throws Exception{
return
indicatorsService
.
delete
(
indicatorsId
);
//
return indicatorsService.delete(indicatorsId);
}
//
}
//
@ApiOperation
(
value
=
"获取指标列表"
,
notes
=
"获取指标列表"
)
//
@ApiOperation(value = "获取指标列表", notes = "获取指标列表")
@PostMapping
(
value
=
"/getIndiDefList"
)
//
@PostMapping(value = "/getIndiDefList")
public
List
<
IndicatorsDef
>
getIndiDefList
(
@RequestParam
(
required
=
false
)
String
keyword
)
throws
Exception
{
//
public List<IndicatorsDef> getIndiDefList(@RequestParam(required=false) String keyword)throws Exception{
return
indicatorsService
.
getIndicatorsDefList
(
keyword
);
//
return indicatorsService.getIndicatorsDefList(keyword);
}
//
}
//
@ApiOperation
(
value
=
"获取指标详情"
,
notes
=
"获取指标详情"
)
//
@ApiOperation(value = "获取指标详情", notes = "获取指标详情")
@PostMapping
(
value
=
"/getIndiDefDetail"
)
//
@PostMapping(value = "/getIndiDefDetail")
public
Map
<
String
,
Object
>
getIndiDefDetail
(
@RequestParam
String
indiDefId
)
throws
Exception
{
//
public Map<String,Object> getIndiDefDetail(@RequestParam String indiDefId)throws Exception{
return
indicatorsService
.
getIndicatorsDefDetail
(
indiDefId
);
//
return indicatorsService.getIndicatorsDefDetail(indiDefId);
}
//
}
//
@ApiOperation
(
value
=
"获取上传文件表头"
,
notes
=
"获取上传文件表头"
)
//
@ApiOperation(value = "获取上传文件表头", notes = "获取上传文件表头")
@PostMapping
(
value
=
"/getUploadExcelHead"
)
//
@PostMapping(value = "/getUploadExcelHead")
public
List
<
Map
<
String
,
Object
>>
getUploadExcelHead
(
//
public List<Map<String,Object>> getUploadExcelHead(
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
Exception
{
//
@RequestParam("file") MultipartFile file)throws Exception{
try
(
InputStream
is
=
file
.
getInputStream
()){
//
try (InputStream is = file.getInputStream()){
XSSFWorkbook
xssfWorkbook
=
new
XSSFWorkbook
(
is
);
//
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
return
indicatorsService
.
getUploadExcelHead
(
xssfWorkbook
);
//
return indicatorsService.getUploadExcelHead(xssfWorkbook);
}
//
}
}
//
}
//
@ApiOperation
(
value
=
"判断上传文件表头和指标映射字段是否符合"
,
notes
=
"判断上传文件表头和指标映射字段是否符合"
)
//
@ApiOperation(value = "判断上传文件表头和指标映射字段是否符合", notes = "判断上传文件表头和指标映射字段是否符合")
@PostMapping
(
value
=
"/isCorrespondence"
)
//
@PostMapping(value = "/isCorrespondence")
public
String
isCorrespondence
(
@RequestParam
String
indiDefId
,
//
public String isCorrespondence(@RequestParam String indiDefId,
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
Exception
{
//
@RequestParam("file") MultipartFile file)throws Exception{
try
(
InputStream
is
=
file
.
getInputStream
()){
//
try (InputStream is = file.getInputStream()){
XSSFWorkbook
xssfWorkbook
=
new
XSSFWorkbook
(
is
);
//
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
return
indicatorsService
.
isCorrespondence
(
indiDefId
,
xssfWorkbook
);
//
return indicatorsService.isCorrespondence(indiDefId, xssfWorkbook);
}
//
}
}
//
}
//
@ApiOperation
(
value
=
"上传解析指标数据"
,
notes
=
"上传解析指标数据"
)
//
@ApiOperation(value = "上传解析指标数据", notes = "上传解析指标数据")
@PostMapping
(
value
=
"/importIndiData"
)
//
@PostMapping(value = "/importIndiData")
public
String
importIndicatorsData
(
@RequestParam
String
indiDefId
,
//
public String importIndicatorsData(@RequestParam String indiDefId,
@RequestParam
(
"file"
)
MultipartFile
file
)
throws
Exception
{
//
@RequestParam("file") MultipartFile file)throws Exception{
try
(
InputStream
is
=
file
.
getInputStream
()){
//
try (InputStream is = file.getInputStream()){
XSSFWorkbook
xssfWorkbook
=
new
XSSFWorkbook
(
is
);
//
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(is);
return
indicatorsService
.
importIndicatorsData
(
indiDefId
,
xssfWorkbook
);
//
return indicatorsService.importIndicatorsData(indiDefId, xssfWorkbook);
}
//
}
}
//
}
//
@ApiOperation
(
value
=
"查询指标值"
,
notes
=
"查询指标值"
)
//
@ApiOperation(value = "查询指标值", notes = "查询指标值")
@PostMapping
(
value
=
"/queryIndiValue"
)
//
@PostMapping(value = "/queryIndiValue")
public
Map
<
String
,
Object
>
queryIndicatorsValue
(
@RequestParam
String
indiDefId
,
//
public Map<String,Object> queryIndicatorsValue(@RequestParam String indiDefId,
@RequestBody
Map
<
String
,
Object
>
dimValue
)
throws
Exception
{
//
@RequestBody Map<String,Object> dimValue)throws Exception{
return
indicatorsService
.
queryIndicatorsValue
(
indiDefId
,
dimValue
,
false
);
//
return indicatorsService.queryIndicatorsValue(indiDefId, dimValue,false);
}
//
}
//
@ApiOperation
(
value
=
"获取未审批指标值"
,
notes
=
"获取未审批指标值"
)
//
@ApiOperation(value = "获取未审批指标值", notes = "获取未审批指标值")
@PostMapping
(
value
=
"/getUnApplyIndiValue"
)
//
@PostMapping(value = "/getUnApplyIndiValue")
public
Map
<
String
,
Object
>
getUnApplyIndiValue
()
throws
Exception
{
//
public Map<String,Object> getUnApplyIndiValue() throws Exception{
return
indicatorsService
.
getUnApplyIndiValueList
();
//
return indicatorsService.getUnApplyIndiValueList();
}
//
}
//
@ApiOperation
(
value
=
"审批指标值"
,
notes
=
"审批指标值"
)
//
@ApiOperation(value = "审批指标值", notes = "审批指标值")
@PostMapping
(
value
=
"/applyIndiValue"
)
//
@PostMapping(value = "/applyIndiValue")
public
void
applyIndicatorsValue
(
@RequestBody
List
<
String
>
indiValueId
)
throws
Exception
{
//
public void applyIndicatorsValue(@RequestBody List<String> indiValueId) throws Exception{
indicatorsService
.
applyIndicatorsValue
(
indiValueId
);
//
indicatorsService.applyIndicatorsValue(indiValueId);
}
//
}
//
}
//
}
src/main/java/com/keymobile/indicators/conf/MongoDBConfig.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
conf
;
//
package com.keymobile.indicators.conf;
import
org.springframework.beans.factory.annotation.Value
;
//
import org.springframework.beans.factory.annotation.Value;
import
org.springframework.context.annotation.Bean
;
//
import org.springframework.context.annotation.Bean;
import
org.springframework.context.annotation.Configuration
;
//
import org.springframework.context.annotation.Configuration;
import
org.springframework.data.mongodb.MongoDbFactory
;
//
import org.springframework.data.mongodb.MongoDbFactory;
import
org.springframework.data.mongodb.config.AbstractMongoConfiguration
;
//
import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
import
org.springframework.data.mongodb.core.SimpleMongoDbFactory
;
//
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import
org.springframework.data.mongodb.gridfs.GridFsTemplate
;
//
import org.springframework.data.mongodb.gridfs.GridFsTemplate;
//
import
com.mongodb.MongoClient
;
//
import com.mongodb.MongoClient;
import
com.mongodb.MongoClientOptions
;
//
import com.mongodb.MongoClientOptions;
import
com.mongodb.MongoClientURI
;
//
import com.mongodb.MongoClientURI;
import
com.mongodb.client.MongoDatabase
;
//
import com.mongodb.client.MongoDatabase;
import
com.mongodb.client.gridfs.GridFSBucket
;
//
import com.mongodb.client.gridfs.GridFSBucket;
import
com.mongodb.client.gridfs.GridFSBuckets
;
//
import com.mongodb.client.gridfs.GridFSBuckets;
//
@Configuration
//
@Configuration
public
class
MongoDBConfig
extends
AbstractMongoConfiguration
{
//
public class MongoDBConfig extends AbstractMongoConfiguration {
//
@Value
(
"${mongodb.uri}"
)
//
@Value("${mongodb.uri}")
private
String
host
;
//
private String host;
@Value
(
"${mongodb.database}"
)
//
@Value("${mongodb.database}")
private
String
database
;
//
private String database;
@Value
(
"${mongodb.username}"
)
//
@Value("${mongodb.username}")
private
String
user
;
//
private String user;
@Value
(
"${mongodb.password}"
)
//
@Value("${mongodb.password}")
private
String
pswd
;
//
private String pswd;
@Value
(
"${mongodb.maxConnectionIdleTime}"
)
//
@Value("${mongodb.maxConnectionIdleTime}")
private
Integer
maxConnectionIdleTime
=
60000
;
//
private Integer maxConnectionIdleTime = 60000;
//
@Override
//
@Override
protected
String
getDatabaseName
()
{
//
protected String getDatabaseName() {
return
database
;
//
return database;
}
//
}
//
//
@Bean
//
@Bean
public
MongoDbFactory
mongoDbFactory
()
{
//
public MongoDbFactory mongoDbFactory() {
return
new
SimpleMongoDbFactory
(
this
.
mongoClient
(),
this
.
getDatabaseName
());
//
return new SimpleMongoDbFactory(this.mongoClient(), this.getDatabaseName());
}
//
}
//
@Bean
//
@Bean
public
GridFsTemplate
gridFsTemplate
()
throws
Exception
{
//
public GridFsTemplate gridFsTemplate() throws Exception {
return
new
GridFsTemplate
(
mongoDbFactory
(),
mappingMongoConverter
());
//
return new GridFsTemplate(mongoDbFactory(), mappingMongoConverter());
}
//
}
//
@Bean
//
@Bean
public
GridFSBucket
getGridFSBuckets
()
{
//
public GridFSBucket getGridFSBuckets() {
MongoDatabase
db
=
mongoDbFactory
().
getDb
();
//
MongoDatabase db = mongoDbFactory().getDb();
return
GridFSBuckets
.
create
(
db
);
//
return GridFSBuckets.create(db);
}
//
}
//
//
@Override
//
@Override
public
MongoClient
mongoClient
()
{
//
public MongoClient mongoClient() {
String
uri
=
String
.
format
(
"mongodb://%s:%s@%s/%s"
,
user
,
pswd
,
host
,
database
);
//
String uri = String.format("mongodb://%s:%s@%s/%s", user, pswd, host, database);
MongoClientOptions
.
Builder
builder
=
new
MongoClientOptions
.
Builder
();
//
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder
.
maxConnectionIdleTime
(
maxConnectionIdleTime
);
//
builder.maxConnectionIdleTime(maxConnectionIdleTime);
MongoClientURI
clientURI
=
new
MongoClientURI
(
uri
,
builder
);
//
MongoClientURI clientURI = new MongoClientURI(uri, builder);
return
new
MongoClient
(
clientURI
);
//
return new MongoClient(clientURI);
}
//
}
//
}
//
}
src/main/java/com/keymobile/indicators/model/indicators/DeriveIndicators.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
model
.
indicators
;
//
package com.keymobile.indicators.model.indicators;
//
import
java.io.Serializable
;
//
import java.io.Serializable;
import
java.util.Date
;
//
import java.util.Date;
//
import
org.springframework.data.annotation.Id
;
//
import org.springframework.data.annotation.Id;
import
org.springframework.data.mongodb.core.mapping.Document
;
//
import org.springframework.data.mongodb.core.mapping.Document;
//
import
com.fasterxml.jackson.annotation.JsonFormat
;
//
import com.fasterxml.jackson.annotation.JsonFormat;
//
/**
/
//
**
* 衍生指标
//
* 衍生指标
*/
//
*/
@Document
(
collection
=
"indi_derive"
)
//
@Document(collection="indi_derive")
public
class
DeriveIndicators
implements
Serializable
{
//
public class DeriveIndicators implements Serializable{
/**
//
/**
*
// *
*/
//
*/
private
static
final
long
serialVersionUID
=
1L
;
//
private static final long serialVersionUID = 1L;
//
@Id
//
@Id
private
String
id
;
//
private String id;
private
String
derName
;
//
private String derName;
private
String
derCnName
;
//
private String derCnName;
private
String
derUnit
;
//计算单位
//
private String derUnit;//计算单位
private
String
derFormula
;
//
private String derFormula;
private
String
indiDefIds
;
//
private String indiDefIds;
private
String
dimNames
;
//
private String dimNames;
private
String
derFormulaDesc
;
//公式中文描述
//
private String derFormulaDesc;//公式中文描述
//
private
String
status
;
//
private String status;
//
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private
Date
createTime
;
//
private Date createTime;
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private
Date
updateTime
;
//
private Date updateTime;
//
private
String
creator
;
//
private String creator;
private
String
updator
;
//
private String updator;
//
public
String
getId
()
{
//
public String getId() {
return
id
;
//
return id;
}
//
}
public
void
setId
(
String
id
)
{
//
public void setId(String id) {
this
.
id
=
id
;
//
this.id = id;
}
//
}
public
String
getDerName
()
{
//
public String getDerName() {
return
derName
;
//
return derName;
}
//
}
public
void
setDerName
(
String
derName
)
{
//
public void setDerName(String derName) {
this
.
derName
=
derName
;
//
this.derName = derName;
}
//
}
public
String
getDerCnName
()
{
//
public String getDerCnName() {
return
derCnName
;
//
return derCnName;
}
//
}
public
void
setDerCnName
(
String
derCnName
)
{
//
public void setDerCnName(String derCnName) {
this
.
derCnName
=
derCnName
;
//
this.derCnName = derCnName;
}
//
}
public
String
getDerUnit
()
{
//
public String getDerUnit() {
return
derUnit
;
//
return derUnit;
}
//
}
public
void
setDerUnit
(
String
derUnit
)
{
//
public void setDerUnit(String derUnit) {
this
.
derUnit
=
derUnit
;
//
this.derUnit = derUnit;
}
//
}
public
String
getDerFormula
()
{
//
public String getDerFormula() {
return
derFormula
;
//
return derFormula;
}
//
}
public
void
setDerFormula
(
String
derFormula
)
{
//
public void setDerFormula(String derFormula) {
this
.
derFormula
=
derFormula
;
//
this.derFormula = derFormula;
}
//
}
public
String
getIndiDefIds
()
{
//
public String getIndiDefIds() {
return
indiDefIds
;
//
return indiDefIds;
}
//
}
public
void
setIndiDefIds
(
String
indiDefIds
)
{
//
public void setIndiDefIds(String indiDefIds) {
this
.
indiDefIds
=
indiDefIds
;
//
this.indiDefIds = indiDefIds;
}
//
}
public
String
getDimNames
()
{
//
public String getDimNames() {
return
dimNames
;
//
return dimNames;
}
//
}
public
void
setDimNames
(
String
dimNames
)
{
//
public void setDimNames(String dimNames) {
this
.
dimNames
=
dimNames
;
//
this.dimNames = dimNames;
}
//
}
public
String
getDerFormulaDesc
()
{
//
public String getDerFormulaDesc() {
return
derFormulaDesc
;
//
return derFormulaDesc;
}
//
}
public
void
setDerFormulaDesc
(
String
derFormulaDesc
)
{
//
public void setDerFormulaDesc(String derFormulaDesc) {
this
.
derFormulaDesc
=
derFormulaDesc
;
//
this.derFormulaDesc = derFormulaDesc;
}
//
}
public
String
getStatus
()
{
//
public String getStatus() {
return
status
;
//
return status;
}
//
}
public
void
setStatus
(
String
status
)
{
//
public void setStatus(String status) {
this
.
status
=
status
;
//
this.status = status;
}
//
}
public
Date
getCreateTime
()
{
//
public Date getCreateTime() {
return
createTime
;
//
return createTime;
}
//
}
public
void
setCreateTime
(
Date
createTime
)
{
//
public void setCreateTime(Date createTime) {
this
.
createTime
=
createTime
;
//
this.createTime = createTime;
}
//
}
public
Date
getUpdateTime
()
{
//
public Date getUpdateTime() {
return
updateTime
;
//
return updateTime;
}
//
}
public
void
setUpdateTime
(
Date
updateTime
)
{
//
public void setUpdateTime(Date updateTime) {
this
.
updateTime
=
updateTime
;
//
this.updateTime = updateTime;
}
//
}
public
String
getCreator
()
{
//
public String getCreator() {
return
creator
;
//
return creator;
}
//
}
public
void
setCreator
(
String
creator
)
{
//
public void setCreator(String creator) {
this
.
creator
=
creator
;
//
this.creator = creator;
}
//
}
public
String
getUpdator
()
{
//
public String getUpdator() {
return
updator
;
//
return updator;
}
//
}
public
void
setUpdator
(
String
updator
)
{
//
public void setUpdator(String updator) {
this
.
updator
=
updator
;
//
this.updator = updator;
}
//
}
}
//
}
src/main/java/com/keymobile/indicators/model/indicators/IndicatorsDef.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
model
.
indicators
;
//
package com.keymobile.indicators.model.indicators;
//
import
java.io.Serializable
;
//
import java.io.Serializable;
import
java.util.Date
;
//
import java.util.Date;
//
import
org.springframework.data.annotation.Id
;
//
import org.springframework.data.annotation.Id;
import
org.springframework.data.mongodb.core.mapping.Document
;
//
import org.springframework.data.mongodb.core.mapping.Document;
//
import
com.fasterxml.jackson.annotation.JsonFormat
;
//
import com.fasterxml.jackson.annotation.JsonFormat;
//
/**
/
//
**
* 指标定义表
//
* 指标定义表
*/
//
*/
@Document
(
collection
=
"indi_def"
)
//
@Document(collection="indi_def")
public
class
IndicatorsDef
implements
Serializable
{
//
public class IndicatorsDef implements Serializable{
/**
//
/**
*
// *
*/
//
*/
private
static
final
long
serialVersionUID
=
1L
;
//
private static final long serialVersionUID = 1L;
//
@Id
//
@Id
private
String
id
;
//
private String id;
private
String
indiName
;
//
private String indiName;
private
String
indiCnName
;
//
private String indiCnName;
private
int
valueMapping
=
-
1
;
//
private int valueMapping = -1;
private
String
valueMappingName
;
//
private String valueMappingName;
private
String
indiUnit
;
//
private String indiUnit;
private
String
dataType
;
//
private String dataType;
private
String
status
;
//
private String status;
//
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private
Date
createTime
;
//
private Date createTime;
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private
Date
updateTime
;
//
private Date updateTime;
//
private
String
creator
;
//
private String creator;
private
String
updator
;
//
private String updator;
//
//添加基础指标编号和公式属性
//
//添加基础指标编号和公式属性
private
String
indiCode
;
//
private String indiCode;
private
String
indiFormula
;
//
private String indiFormula;
//
public
String
getId
()
{
//
public String getId() {
return
id
;
//
return id;
}
//
}
public
void
setId
(
String
id
)
{
//
public void setId(String id) {
this
.
id
=
id
;
//
this.id = id;
}
//
}
public
String
getIndiName
()
{
//
public String getIndiName() {
return
indiName
;
//
return indiName;
}
//
}
public
void
setIndiName
(
String
indiName
)
{
//
public void setIndiName(String indiName) {
this
.
indiName
=
indiName
;
//
this.indiName = indiName;
}
//
}
public
String
getIndiCnName
()
{
//
public String getIndiCnName() {
return
indiCnName
;
//
return indiCnName;
}
//
}
public
void
setIndiCnName
(
String
indiCnName
)
{
//
public void setIndiCnName(String indiCnName) {
this
.
indiCnName
=
indiCnName
;
//
this.indiCnName = indiCnName;
}
//
}
public
int
getValueMapping
()
{
//
public int getValueMapping() {
return
valueMapping
;
//
return valueMapping;
}
//
}
public
void
setValueMapping
(
int
valueMapping
)
{
//
public void setValueMapping(int valueMapping) {
this
.
valueMapping
=
valueMapping
;
//
this.valueMapping = valueMapping;
}
//
}
public
String
getValueMappingName
()
{
//
public String getValueMappingName() {
return
valueMappingName
;
//
return valueMappingName;
}
//
}
public
void
setValueMappingName
(
String
valueMappingName
)
{
//
public void setValueMappingName(String valueMappingName) {
this
.
valueMappingName
=
valueMappingName
;
//
this.valueMappingName = valueMappingName;
}
//
}
public
String
getIndiUnit
()
{
//
public String getIndiUnit() {
return
indiUnit
;
//
return indiUnit;
}
//
}
public
void
setIndiUnit
(
String
indiUnit
)
{
//
public void setIndiUnit(String indiUnit) {
this
.
indiUnit
=
indiUnit
;
//
this.indiUnit = indiUnit;
}
//
}
public
String
getDataType
()
{
//
public String getDataType() {
return
dataType
;
//
return dataType;
}
//
}
public
void
setDataType
(
String
dataType
)
{
//
public void setDataType(String dataType) {
this
.
dataType
=
dataType
;
//
this.dataType = dataType;
}
//
}
public
String
getStatus
()
{
//
public String getStatus() {
return
status
;
//
return status;
}
//
}
public
void
setStatus
(
String
status
)
{
//
public void setStatus(String status) {
this
.
status
=
status
;
//
this.status = status;
}
//
}
public
Date
getCreateTime
()
{
//
public Date getCreateTime() {
return
createTime
;
//
return createTime;
}
//
}
public
void
setCreateTime
(
Date
createTime
)
{
//
public void setCreateTime(Date createTime) {
this
.
createTime
=
createTime
;
//
this.createTime = createTime;
}
//
}
public
Date
getUpdateTime
()
{
//
public Date getUpdateTime() {
return
updateTime
;
//
return updateTime;
}
//
}
public
void
setUpdateTime
(
Date
updateTime
)
{
//
public void setUpdateTime(Date updateTime) {
this
.
updateTime
=
updateTime
;
//
this.updateTime = updateTime;
}
//
}
public
String
getCreator
()
{
//
public String getCreator() {
return
creator
;
//
return creator;
}
//
}
public
void
setCreator
(
String
creator
)
{
//
public void setCreator(String creator) {
this
.
creator
=
creator
;
//
this.creator = creator;
}
//
}
public
String
getUpdator
()
{
//
public String getUpdator() {
return
updator
;
//
return updator;
}
//
}
public
void
setUpdator
(
String
updator
)
{
//
public void setUpdator(String updator) {
this
.
updator
=
updator
;
//
this.updator = updator;
}
//
}
public
String
getIndiCode
()
{
//
public String getIndiCode() {
return
indiCode
;
//
return indiCode;
}
//
}
public
void
setIndiCode
(
String
indiCode
)
{
//
public void setIndiCode(String indiCode) {
this
.
indiCode
=
indiCode
;
//
this.indiCode = indiCode;
}
//
}
public
String
getIndiFormula
()
{
//
public String getIndiFormula() {
return
indiFormula
;
//
return indiFormula;
}
//
}
public
void
setIndiFormula
(
String
indiFormula
)
{
//
public void setIndiFormula(String indiFormula) {
this
.
indiFormula
=
indiFormula
;
//
this.indiFormula = indiFormula;
}
//
}
}
//
}
src/main/java/com/keymobile/indicators/model/indicators/IndicatorsDim.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
model
.
indicators
;
//
package com.keymobile.indicators.model.indicators;
//
import
java.io.Serializable
;
//
import java.io.Serializable;
import
java.util.Date
;
//
import java.util.Date;
//
import
org.springframework.data.annotation.Id
;
//
import org.springframework.data.annotation.Id;
import
org.springframework.data.mongodb.core.mapping.Document
;
//
import org.springframework.data.mongodb.core.mapping.Document;
//
import
com.fasterxml.jackson.annotation.JsonFormat
;
//
import com.fasterxml.jackson.annotation.JsonFormat;
//
/**
/
//
**
* 指标维度表
//
* 指标维度表
*/
//
*/
@Document
(
collection
=
"indi_dim"
)
//
@Document(collection="indi_dim")
public
class
IndicatorsDim
implements
Serializable
{
//
public class IndicatorsDim implements Serializable{
/**
//
/**
*
// *
*/
//
*/
private
static
final
long
serialVersionUID
=
1L
;
//
private static final long serialVersionUID = 1L;
//
@Id
//
@Id
private
String
id
;
//
private String id;
private
String
dimName
;
//
private String dimName;
private
String
dimCnName
;
//
private String dimCnName;
private
String
dimType
;
//
private String dimType;
private
int
dimMapping
=
-
1
;
//
private int dimMapping = -1;
private
String
dimMappingName
;
//
private String dimMappingName;
private
String
dataType
;
//
private String dataType;
private
int
sort
;
//
private int sort;
private
String
indiDefId
;
//
private String indiDefId;
//
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private
Date
createTime
;
//
private Date createTime;
@JsonFormat
(
timezone
=
"GMT+8"
,
pattern
=
"yyyy-MM-dd HH:mm:ss"
)
//
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private
Date
updateTime
;
//
private Date updateTime;
//
private
String
creator
;
//
private String creator;
private
String
updator
;
//
private String updator;
public
String
getId
()
{
//
public String getId() {
return
id
;
//
return id;
}
//
}
public
void
setId
(
String
id
)
{
//
public void setId(String id) {
this
.
id
=
id
;
//
this.id = id;
}
//
}
public
String
getDimName
()
{
//
public String getDimName() {
return
dimName
;
//
return dimName;
}
//
}
public
void
setDimName
(
String
dimName
)
{
//
public void setDimName(String dimName) {
this
.
dimName
=
dimName
;
//
this.dimName = dimName;
}
//
}
public
String
getDimCnName
()
{
//
public String getDimCnName() {
return
dimCnName
;
//
return dimCnName;
}
//
}
public
void
setDimCnName
(
String
dimCnName
)
{
//
public void setDimCnName(String dimCnName) {
this
.
dimCnName
=
dimCnName
;
//
this.dimCnName = dimCnName;
}
//
}
public
String
getDimType
()
{
//
public String getDimType() {
return
dimType
;
//
return dimType;
}
//
}
public
void
setDimType
(
String
dimType
)
{
//
public void setDimType(String dimType) {
this
.
dimType
=
dimType
;
//
this.dimType = dimType;
}
//
}
public
int
getDimMapping
()
{
//
public int getDimMapping() {
return
dimMapping
;
//
return dimMapping;
}
//
}
public
void
setDimMapping
(
int
dimMapping
)
{
//
public void setDimMapping(int dimMapping) {
this
.
dimMapping
=
dimMapping
;
//
this.dimMapping = dimMapping;
}
//
}
public
String
getDimMappingName
()
{
//
public String getDimMappingName() {
return
dimMappingName
;
//
return dimMappingName;
}
//
}
public
void
setDimMappingName
(
String
dimMappingName
)
{
//
public void setDimMappingName(String dimMappingName) {
this
.
dimMappingName
=
dimMappingName
;
//
this.dimMappingName = dimMappingName;
}
//
}
public
String
getDataType
()
{
//
public String getDataType() {
return
dataType
;
//
return dataType;
}
//
}
public
void
setDataType
(
String
dataType
)
{
//
public void setDataType(String dataType) {
this
.
dataType
=
dataType
;
//
this.dataType = dataType;
}
//
}
public
int
getSort
()
{
//
public int getSort() {
return
sort
;
//
return sort;
}
//
}
public
void
setSort
(
int
sort
)
{
//
public void setSort(int sort) {
this
.
sort
=
sort
;
//
this.sort = sort;
}
//
}
public
String
getIndiDefId
()
{
//
public String getIndiDefId() {
return
indiDefId
;
//
return indiDefId;
}
//
}
public
void
setIndiDefId
(
String
indiDefId
)
{
//
public void setIndiDefId(String indiDefId) {
this
.
indiDefId
=
indiDefId
;
//
this.indiDefId = indiDefId;
}
//
}
public
Date
getCreateTime
()
{
//
public Date getCreateTime() {
return
createTime
;
//
return createTime;
}
//
}
public
void
setCreateTime
(
Date
createTime
)
{
//
public void setCreateTime(Date createTime) {
this
.
createTime
=
createTime
;
//
this.createTime = createTime;
}
//
}
public
Date
getUpdateTime
()
{
//
public Date getUpdateTime() {
return
updateTime
;
//
return updateTime;
}
//
}
public
void
setUpdateTime
(
Date
updateTime
)
{
//
public void setUpdateTime(Date updateTime) {
this
.
updateTime
=
updateTime
;
//
this.updateTime = updateTime;
}
//
}
public
String
getCreator
()
{
//
public String getCreator() {
return
creator
;
//
return creator;
}
//
}
public
void
setCreator
(
String
creator
)
{
//
public void setCreator(String creator) {
this
.
creator
=
creator
;
//
this.creator = creator;
}
//
}
public
String
getUpdator
()
{
//
public String getUpdator() {
return
updator
;
//
return updator;
}
//
}
public
void
setUpdator
(
String
updator
)
{
//
public void setUpdator(String updator) {
this
.
updator
=
updator
;
//
this.updator = updator;
}
//
}
//
//
}
//
}
src/main/java/com/keymobile/indicators/persistence/indicators/DeriveIndicatorsRepository.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
persistence
.
indicators
;
//
package com.keymobile.indicators.persistence.indicators;
//
import
java.util.List
;
//
import java.util.List;
//
import
org.springframework.data.mongodb.repository.MongoRepository
;
//
import org.springframework.data.mongodb.repository.MongoRepository;
//
import
com.keymobile.indicators.model.indicators.DeriveIndicators
;
//
import com.keymobile.indicators.model.indicators.DeriveIndicators;
//
public
interface
DeriveIndicatorsRepository
extends
MongoRepository
<
DeriveIndicators
,
String
>{
//
public interface DeriveIndicatorsRepository extends MongoRepository<DeriveIndicators,String>{
//
//判断原生指标是否关联了衍生指标
//
//判断原生指标是否关联了衍生指标
public
List
<
DeriveIndicators
>
findByIndiDefIdsLike
(
String
indiDefId
);
//
public List<DeriveIndicators> findByIndiDefIdsLike(String indiDefId);
//
public
List
<
DeriveIndicators
>
findByDerNameLikeOrDerCnNameLike
(
String
name
,
String
cnName
);
//
public List<DeriveIndicators> findByDerNameLikeOrDerCnNameLike(String name,String cnName);
}
//
}
src/main/java/com/keymobile/indicators/persistence/indicators/IndicatorsDefRepository.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
persistence
.
indicators
;
//
package com.keymobile.indicators.persistence.indicators;
//
import
java.util.List
;
//
import java.util.List;
//
import
org.springframework.data.mongodb.repository.MongoRepository
;
//
import org.springframework.data.mongodb.repository.MongoRepository;
//
import
com.keymobile.indicators.model.indicators.IndicatorsDef
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDef;
//
public
interface
IndicatorsDefRepository
extends
MongoRepository
<
IndicatorsDef
,
String
>{
//
public interface IndicatorsDefRepository extends MongoRepository<IndicatorsDef,String>{
public
List
<
IndicatorsDef
>
findByStatus
(
String
status
);
//
public List<IndicatorsDef> findByStatus(String status);
//
public
List
<
IndicatorsDef
>
findByIndiNameLikeOrIndiCnNameLikeAndStatus
(
String
name
,
String
cnName
,
String
status
);
//
public List<IndicatorsDef> findByIndiNameLikeOrIndiCnNameLikeAndStatus(String name,String cnName,String status);
}
//
}
src/main/java/com/keymobile/indicators/persistence/indicators/IndicatorsDimRepository.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
persistence
.
indicators
;
//
package com.keymobile.indicators.persistence.indicators;
//
import
java.util.List
;
//
import java.util.List;
import
java.util.Optional
;
//
import java.util.Optional;
//
import
org.springframework.data.mongodb.repository.MongoRepository
;
//
import org.springframework.data.mongodb.repository.MongoRepository;
//
import
com.keymobile.indicators.model.indicators.IndicatorsDim
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDim;
//
public
interface
IndicatorsDimRepository
extends
MongoRepository
<
IndicatorsDim
,
String
>{
//
public interface IndicatorsDimRepository extends MongoRepository<IndicatorsDim,String>{
public
void
deleteByIndiDefId
(
String
indiDefId
);
//
public void deleteByIndiDefId(String indiDefId);
//
public
List
<
IndicatorsDim
>
findByIndiDefId
(
String
indiDefId
);
//
public List<IndicatorsDim> findByIndiDefId(String indiDefId);
//
public
Optional
<
IndicatorsDim
>
findByIndiDefIdAndDimMappingName
(
String
indiDefId
,
String
dimMappindName
);
//
public Optional<IndicatorsDim> findByIndiDefIdAndDimMappingName(String indiDefId,String dimMappindName);
//
public
Optional
<
IndicatorsDim
>
findByIndiDefIdAndDimCnName
(
String
indiDefId
,
String
dimCnName
);
//
public Optional<IndicatorsDim> findByIndiDefIdAndDimCnName(String indiDefId,String dimCnName);
}
//
}
src/main/java/com/keymobile/indicators/service/indicators/DeriveIndicatorsService.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
service
.
indicators
;
//
package com.keymobile.indicators.service.indicators;
//
import
java.util.ArrayList
;
//
import java.util.ArrayList;
import
java.util.Date
;
//
import java.util.Date;
import
java.util.HashMap
;
//
import java.util.HashMap;
import
java.util.List
;
//
import java.util.List;
import
java.util.Map
;
//
import java.util.Map;
import
java.util.Optional
;
//
import java.util.Optional;
//
import
org.apache.commons.lang.StringUtils
;
//
import org.apache.commons.lang.StringUtils;
import
org.mariuszgromada.math.mxparser.Expression
;
//
import org.mariuszgromada.math.mxparser.Expression;
import
org.slf4j.Logger
;
//
import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
//
import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
//
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
//
import org.springframework.stereotype.Service;
//
import
com.keymobile.indicators.model.indicators.DeriveIndicators
;
//
import com.keymobile.indicators.model.indicators.DeriveIndicators;
import
com.keymobile.indicators.model.indicators.IndicatorsDef
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDef;
import
com.keymobile.indicators.model.indicators.IndicatorsDim
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDim;
import
com.keymobile.indicators.persistence.indicators.DeriveIndicatorsRepository
;
//
import com.keymobile.indicators.persistence.indicators.DeriveIndicatorsRepository;
import
com.keymobile.indicators.persistence.indicators.IndicatorsDefRepository
;
//
import com.keymobile.indicators.persistence.indicators.IndicatorsDefRepository;
import
com.keymobile.indicators.persistence.indicators.IndicatorsDimRepository
;
//
import com.keymobile.indicators.persistence.indicators.IndicatorsDimRepository;
//
@Service
//
@Service
public
class
DeriveIndicatorsService
{
//
public class DeriveIndicatorsService {
private
Logger
logger
=
LoggerFactory
.
getLogger
(
DeriveIndicatorsService
.
class
);
//
private Logger logger = LoggerFactory.getLogger(DeriveIndicatorsService.class);
//
@Autowired
//
@Autowired
private
DeriveIndicatorsRepository
derIndicatorsRepo
;
//
private DeriveIndicatorsRepository derIndicatorsRepo;
@Autowired
//
@Autowired
private
IndicatorsDimRepository
indicatorsDimRepo
;
//
private IndicatorsDimRepository indicatorsDimRepo;
@Autowired
//
@Autowired
private
IndicatorsService
indicatorsService
;
//
private IndicatorsService indicatorsService;
@Autowired
//
@Autowired
private
IndicatorsDefRepository
indicatorsDefRepo
;
//
private IndicatorsDefRepository indicatorsDefRepo;
//
//新增/修改衍生指标
//
//新增/修改衍生指标
public
String
saveOrUpdate
(
DeriveIndicators
derIndicators
,
String
operator
)
throws
Exception
{
//
public String saveOrUpdate(DeriveIndicators derIndicators,String operator)throws Exception {
//新增
//
//新增
if
(
StringUtils
.
isBlank
(
derIndicators
.
getId
()))
{
//
if(StringUtils.isBlank(derIndicators.getId())) {
derIndicators
.
setCreateTime
(
new
Date
());
//
derIndicators.setCreateTime(new Date());
derIndicators
.
setCreator
(
operator
);
//
derIndicators.setCreator(operator);
derIndicators
.
setUpdateTime
(
new
Date
());
//
derIndicators.setUpdateTime(new Date());
derIndicators
.
setUpdator
(
operator
);
//
derIndicators.setUpdator(operator);
}
else
{
//
}else {
derIndicators
.
setUpdateTime
(
new
Date
());
//
derIndicators.setUpdateTime(new Date());
derIndicators
.
setUpdator
(
operator
);
//
derIndicators.setUpdator(operator);
}
//
}
derIndicators
.
setStatus
(
"0"
);
//
derIndicators.setStatus("0");
if
(
StringUtils
.
isBlank
(
derIndicators
.
getDimNames
()))
{
//
if(StringUtils.isBlank(derIndicators.getDimNames())) {
derIndicators
.
setDimNames
(
"地区;年份"
);
//
derIndicators.setDimNames("地区;年份");
}
//
}
derIndicatorsRepo
.
save
(
derIndicators
);
//
derIndicatorsRepo.save(derIndicators);
return
derIndicators
.
getId
();
//
return derIndicators.getId();
}
//
}
//
//删除衍生指标
//
//删除衍生指标
public
void
delete
(
String
id
)
throws
Exception
{
//
public void delete(String id) throws Exception{
derIndicatorsRepo
.
deleteById
(
id
);
//
derIndicatorsRepo.deleteById(id);
}
//
}
//
//获取衍生列表
//
//获取衍生列表
public
List
<
DeriveIndicators
>
getDerIndicatorsList
(
String
keyword
)
throws
Exception
{
//
public List<DeriveIndicators> getDerIndicatorsList(String keyword)throws Exception{
if
(
StringUtils
.
isBlank
(
keyword
))
{
//
if(StringUtils.isBlank(keyword)) {
return
derIndicatorsRepo
.
findAll
();
//
return derIndicatorsRepo.findAll();
}
//
}
return
derIndicatorsRepo
.
findByDerNameLikeOrDerCnNameLike
(
keyword
,
keyword
);
//
return derIndicatorsRepo.findByDerNameLikeOrDerCnNameLike(keyword, keyword);
}
//
}
//
//获取衍生指标详情
//
//获取衍生指标详情
public
DeriveIndicators
getDerIndicatorsDetail
(
String
id
)
throws
Exception
{
//
public DeriveIndicators getDerIndicatorsDetail(String id) throws Exception{
Optional
<
DeriveIndicators
>
deriveIndi
=
derIndicatorsRepo
.
findById
(
id
);
//
Optional<DeriveIndicators> deriveIndi = derIndicatorsRepo.findById(id);
if
(
deriveIndi
.
isPresent
())
{
//
if(deriveIndi.isPresent()) {
return
deriveIndi
.
get
();
//
return deriveIndi.get();
}
//
}
return
null
;
//
return null;
}
//
}
//
//根据衍生指标关联的原生指标获取共同的维度
//
//根据衍生指标关联的原生指标获取共同的维度
public
List
<
String
>
getSameDim
(
String
indiDefIdString
)
throws
Exception
{
//
public List<String> getSameDim(String indiDefIdString) throws Exception{
if
(
indiDefIdString
.
endsWith
(
";"
))
{
//
if(indiDefIdString.endsWith(";")) {
indiDefIdString
=
indiDefIdString
.
substring
(
0
,
indiDefIdString
.
length
()-
1
);
//
indiDefIdString = indiDefIdString.substring(0, indiDefIdString.length()-1);
}
//
}
String
[]
indiDefIds
=
indiDefIdString
.
split
(
";"
);
//
String[] indiDefIds = indiDefIdString.split(";");
List
<
String
>
retainList
=
new
ArrayList
<>();
//
List<String> retainList = new ArrayList<>();
for
(
int
i
=
0
;
i
<
indiDefIds
.
length
;
i
++)
{
//
for(int i=0;i<indiDefIds.length;i++) {
//根据原生指标定义id获取维度名称
//
//根据原生指标定义id获取维度名称
List
<
String
>
dimNameList
=
this
.
getIndiDefDimNames
(
indiDefIds
[
i
]);
//
List<String> dimNameList = this.getIndiDefDimNames(indiDefIds[i]);
if
(
i
==
0
)
{
//
if(i==0) {
if
(
dimNameList
.
isEmpty
())
{
//
if(dimNameList.isEmpty()) {
break
;
//
break;
}
else
{
//
}else {
retainList
.
addAll
(
dimNameList
);
//
retainList.addAll(dimNameList);
continue
;
//
continue;
}
//
}
}
//
}
retainList
.
retainAll
(
dimNameList
);
//
retainList.retainAll(dimNameList);
if
(
retainList
.
isEmpty
())
{
//
if(retainList.isEmpty()) {
break
;
//
break;
}
//
}
}
//
}
return
retainList
;
//
return retainList;
}
//
}
//
//计算衍生指标值
//
//计算衍生指标值
public
double
calculateDeriveIndicators
(
String
derIndiId
,
Map
<
String
,
Object
>
dimValues
)
throws
Exception
{
//
public double calculateDeriveIndicators(String derIndiId,Map<String,Object> dimValues) throws Exception{
//根据衍生指标id获取衍生指标
//
//根据衍生指标id获取衍生指标
Optional
<
DeriveIndicators
>
derIndicators
=
derIndicatorsRepo
.
findById
(
derIndiId
);
//
Optional<DeriveIndicators> derIndicators = derIndicatorsRepo.findById(derIndiId);
//获取衍生指标计算公式
//
//获取衍生指标计算公式
String
derFormula
=
derIndicators
.
get
().
getDerFormula
();
//
String derFormula = derIndicators.get().getDerFormula();
logger
.
info
(
"未替换公式:"
+
derFormula
);
//
logger.info("未替换公式:"+derFormula);
//
//获取衍生指标关联的原生指标id
//
//获取衍生指标关联的原生指标id
String
indiDefIdsString
=
derIndicators
.
get
().
getIndiDefIds
();
//
String indiDefIdsString = derIndicators.get().getIndiDefIds();
if
(
indiDefIdsString
.
endsWith
(
";"
))
{
//
if(indiDefIdsString.endsWith(";")) {
indiDefIdsString
=
indiDefIdsString
.
substring
(
0
,
indiDefIdsString
.
length
()-
1
);
//
indiDefIdsString = indiDefIdsString.substring(0, indiDefIdsString.length()-1);
}
//
}
String
[]
indiDefIds
=
indiDefIdsString
.
split
(
";"
);
//
String[] indiDefIds = indiDefIdsString.split(";");
for
(
String
indiDefId
:
indiDefIds
)
{
//
for(String indiDefId : indiDefIds) {
Map
<
String
,
Object
>
resultMap
=
indicatorsService
.
queryIndicatorsValue
(
indiDefId
,
dimValues
,
true
);
//
Map<String,Object> resultMap = indicatorsService.queryIndicatorsValue(indiDefId, dimValues, true);
Object
count
=
resultMap
.
get
(
"count"
);
//
Object count = resultMap.get("count");
//替换公式中的原生指标id为对应的值
//
//替换公式中的原生指标id为对应的值
derFormula
=
derFormula
.
replace
(
indiDefId
,
count
.
toString
());
//
derFormula = derFormula.replace(indiDefId, count.toString());
}
//
}
logger
.
info
(
"替换后的公式:"
+
derFormula
);
//
logger.info("替换后的公式:"+derFormula);
//
Expression
e
=
new
Expression
(
derFormula
);
//
Expression e = new Expression(derFormula);
//
double
result
=
(
double
)
Math
.
round
((
e
.
calculate
())
*
100
)
/
100
;
//
double result = (double) Math.round((e.calculate()) * 100) / 100;
return
result
;
//
return result;
}
//
}
//
public
Map
<
String
,
Object
>
getIndicatorsReport
(
String
StandardUnitId
,
//
public Map<String,Object> getIndicatorsReport(String StandardUnitId,
String
compareIndiIds
,
List
<
String
>
compareDims
,
String
year
)
throws
Exception
{
//
String compareIndiIds,List<String> compareDims,String year) throws Exception{
Map
<
String
,
Object
>
reportMap
=
new
HashMap
<>();
//
Map<String,Object> reportMap = new HashMap<>();
reportMap
.
put
(
"StandardUnitId"
,
StandardUnitId
);
//
reportMap.put("StandardUnitId", StandardUnitId);
//
//拆分年份维度
//
//拆分年份维度
String
[]
yearDim
=
year
.
split
(
":"
);
//
String[] yearDim = year.split(":");
//
if
(
compareIndiIds
.
endsWith
(
";"
))
{
//
if(compareIndiIds.endsWith(";")) {
compareIndiIds
=
compareIndiIds
.
substring
(
0
,
compareIndiIds
.
length
()-
1
);
//
compareIndiIds = compareIndiIds.substring(0, compareIndiIds.length()-1);
}
//
}
String
[]
compareIndiId
=
compareIndiIds
.
split
(
";"
);
//
String[] compareIndiId = compareIndiIds.split(";");
//
List
<
Map
<
String
,
Object
>>
indiReportList
=
new
ArrayList
<>();
//
List<Map<String,Object>> indiReportList = new ArrayList<>();
for
(
String
indiId
:
compareIndiId
)
{
//
for(String indiId : compareIndiId) {
Map
<
String
,
Object
>
indiReport
=
new
HashMap
<>();
//
Map<String,Object> indiReport = new HashMap<>();
String
[]
inId
=
indiId
.
split
(
":"
);
//
String[] inId = indiId.split(":");
//如果是原生指标
//
//如果是原生指标
if
(
"0"
.
equals
(
inId
[
1
]))
{
//
if("0".equals(inId[1])) {
//根据原生指标id获取原生指标详情
//
//根据原生指标id获取原生指标详情
Optional
<
IndicatorsDef
>
indiDef
=
indicatorsDefRepo
.
findById
(
inId
[
0
]);
//
Optional<IndicatorsDef> indiDef = indicatorsDefRepo.findById(inId[0]);
indiReport
.
put
(
"indicatorsName"
,
indiDef
.
get
().
getIndiCnName
());
//
indiReport.put("indicatorsName", indiDef.get().getIndiCnName());
//
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
//
List<Map<String,Object>> resultList = new ArrayList<>();
//
String
unit
=
indiDef
.
get
().
getIndiUnit
();
//
String unit = indiDef.get().getIndiUnit();
for
(
String
compareDim
:
compareDims
)
{
//
for(String compareDim : compareDims) {
if
(
compareDim
.
endsWith
(
";"
))
{
//
if(compareDim.endsWith(";")) {
compareDim
=
compareDim
.
substring
(
0
,
compareDim
.
length
()-
1
);
//
compareDim = compareDim.substring(0, compareDim.length()-1);
}
//
}
String
[]
compDim
=
compareDim
.
split
(
":"
);
//
String[] compDim = compareDim.split(":");
String
dimCnName
=
compDim
[
0
];
//
String dimCnName = compDim[0];
String
[]
dimValues
=
compDim
[
1
].
split
(
";"
);
//
String[] dimValues = compDim[1].split(";");
for
(
String
dimValue
:
dimValues
)
{
//
for(String dimValue : dimValues) {
Map
<
String
,
Object
>
queryMap
=
new
HashMap
<>();
//
Map<String,Object> queryMap = new HashMap<>();
queryMap
.
put
(
dimCnName
,
dimValue
);
//
queryMap.put(dimCnName, dimValue);
queryMap
.
put
(
yearDim
[
0
],
yearDim
[
1
]);
//
queryMap.put(yearDim[0],yearDim[1]);
//
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
//
Map<String,Object> resultMap = new HashMap<>();
resultMap
.
put
(
"dimValue"
,
dimValue
);
//
resultMap.put("dimValue", dimValue);
resultMap
.
put
(
"unit"
,
unit
);
//
resultMap.put("unit", unit);
Map
<
String
,
Object
>
result
=
indicatorsService
.
queryIndicatorsValue
(
//
Map<String,Object> result = indicatorsService.queryIndicatorsValue(
inId
[
0
],
queryMap
,
true
);
//
inId[0], queryMap, true);
resultMap
.
put
(
"result"
,
result
.
get
(
"count"
));
//
resultMap.put("result", result.get("count"));
//
resultList
.
add
(
resultMap
);
//
resultList.add(resultMap);
}
//
}
}
//
}
indiReport
.
put
(
"resultList"
,
resultList
);
//
indiReport.put("resultList", resultList);
//
indiReportList
.
add
(
indiReport
);
//
indiReportList.add(indiReport);
}
else
{
//
}else {
//根据衍生指标id获取衍生指标详情
//
//根据衍生指标id获取衍生指标详情
Optional
<
DeriveIndicators
>
derIndicators
=
derIndicatorsRepo
.
findById
(
inId
[
0
]);
//
Optional<DeriveIndicators> derIndicators = derIndicatorsRepo.findById(inId[0]);
indiReport
.
put
(
"indicatorsName"
,
derIndicators
.
get
().
getDerCnName
());
//
indiReport.put("indicatorsName", derIndicators.get().getDerCnName());
//
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
//
List<Map<String,Object>> resultList = new ArrayList<>();
//
//获取单位
//
//获取单位
String
unit
=
derIndicators
.
get
().
getDerUnit
();
//
String unit = derIndicators.get().getDerUnit();
for
(
String
compareDim
:
compareDims
)
{
//
for(String compareDim : compareDims) {
if
(
compareDim
.
endsWith
(
";"
))
{
//
if(compareDim.endsWith(";")) {
compareDim
=
compareDim
.
substring
(
0
,
compareDim
.
length
()-
1
);
//
compareDim = compareDim.substring(0, compareDim.length()-1);
}
//
}
String
[]
compDim
=
compareDim
.
split
(
":"
);
//
String[] compDim = compareDim.split(":");
String
dimCnName
=
compDim
[
0
];
//
String dimCnName = compDim[0];
String
[]
dimValues
=
compDim
[
1
].
split
(
";"
);
//
String[] dimValues = compDim[1].split(";");
for
(
String
dimValue
:
dimValues
)
{
//
for(String dimValue : dimValues) {
Map
<
String
,
Object
>
queryMap
=
new
HashMap
<>();
//
Map<String,Object> queryMap = new HashMap<>();
queryMap
.
put
(
dimCnName
,
dimValue
);
//
queryMap.put(dimCnName, dimValue);
queryMap
.
put
(
yearDim
[
0
],
yearDim
[
1
]);
//
queryMap.put(yearDim[0],yearDim[1]);
//
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
//
Map<String,Object> resultMap = new HashMap<>();
resultMap
.
put
(
"dimValue"
,
dimValue
);
//
resultMap.put("dimValue", dimValue);
resultMap
.
put
(
"unit"
,
unit
);
//
resultMap.put("unit", unit);
double
result
=
this
.
calculateDeriveIndicators
(
inId
[
0
],
queryMap
);
//
double result = this.calculateDeriveIndicators(inId[0], queryMap);
resultMap
.
put
(
"result"
,
result
);
//
resultMap.put("result", result);
//
resultList
.
add
(
resultMap
);
//
resultList.add(resultMap);
}
//
}
}
//
}
indiReport
.
put
(
"resultList"
,
resultList
);
//
indiReport.put("resultList", resultList);
//
indiReportList
.
add
(
indiReport
);
//
indiReportList.add(indiReport);
}
//
}
}
//
}
reportMap
.
put
(
"report"
,
indiReportList
);
//
reportMap.put("report", indiReportList);
return
reportMap
;
//
return reportMap;
}
//
}
//
private
List
<
String
>
getIndiDefDimNames
(
String
indiDefId
){
//
private List<String> getIndiDefDimNames(String indiDefId){
List
<
String
>
result
=
new
ArrayList
<>();
//
List<String> result = new ArrayList<>();
List
<
IndicatorsDim
>
dims
=
indicatorsDimRepo
.
findByIndiDefId
(
indiDefId
);
//
List<IndicatorsDim> dims = indicatorsDimRepo.findByIndiDefId(indiDefId);
for
(
IndicatorsDim
dim
:
dims
)
{
//
for(IndicatorsDim dim : dims) {
result
.
add
(
dim
.
getDimMappingName
());
//
result.add(dim.getDimMappingName());
}
//
}
return
result
;
//
return result;
}
//
}
}
//
}
src/main/java/com/keymobile/indicators/service/indicators/IndicatorsExcelService.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
service
.
indicators
;
//
package com.keymobile.indicators.service.indicators;
//
import
java.text.DecimalFormat
;
//
import java.text.DecimalFormat;
import
java.text.SimpleDateFormat
;
//
import java.text.SimpleDateFormat;
import
java.util.ArrayList
;
//
import java.util.ArrayList;
import
java.util.HashMap
;
//
import java.util.HashMap;
import
java.util.List
;
//
import java.util.List;
import
java.util.Map
;
//
import java.util.Map;
//
import
org.apache.commons.lang.StringUtils
;
//
import org.apache.commons.lang.StringUtils;
import
org.apache.poi.hssf.usermodel.HSSFDateUtil
;
//
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import
org.apache.poi.xssf.usermodel.XSSFRow
;
//
import org.apache.poi.xssf.usermodel.XSSFRow;
import
org.apache.poi.xssf.usermodel.XSSFSheet
;
//
import org.apache.poi.xssf.usermodel.XSSFSheet;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
//
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import
org.slf4j.Logger
;
//
import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
//
import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
//
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
//
import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
//
import org.springframework.stereotype.Service;
//
import
com.keymobile.indicators.conf.MongoDBConfig
;
//
import com.keymobile.indicators.conf.MongoDBConfig;
import
com.keymobile.indicators.model.indicators.IndicatorsDef
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDef;
import
com.keymobile.indicators.model.indicators.IndicatorsDim
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDim;
import
com.mongodb.BasicDBObject
;
//
import com.mongodb.BasicDBObject;
import
com.mongodb.DB
;
//
import com.mongodb.DB;
import
com.mongodb.DBCollection
;
//
import com.mongodb.DBCollection;
import
com.mongodb.DBObject
;
//
import com.mongodb.DBObject;
import
com.mongodb.MongoClient
;
//
import com.mongodb.MongoClient;
//
@Service
//
@Service
public
class
IndicatorsExcelService
{
//
public class IndicatorsExcelService {
//
private
Logger
logger
=
LoggerFactory
.
getLogger
(
IndicatorsExcelService
.
class
);
//
private Logger logger = LoggerFactory.getLogger(IndicatorsExcelService.class);
@Autowired
//
@Autowired
private
MongoDBConfig
mongoDbConfig
;
//
private MongoDBConfig mongoDbConfig;
//
@Value
(
"${mongodb.database}"
)
//
@Value("${mongodb.database}")
private
String
database
;
//
private String database;
//
//获取上传文件的excel头
//
//获取上传文件的excel头
public
Map
<
String
,
Object
>
getUploadExcelHead
(
XSSFWorkbook
xssfWorkbook
)
throws
Exception
{
//
public Map<String,Object> getUploadExcelHead(XSSFWorkbook xssfWorkbook)throws Exception{
int
startDataRow
=
0
;
//开始读excel数据的行号
//
int startDataRow = 0;//开始读excel数据的行号
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
//
Map<String,Object> result = new HashMap<>();
List
<
Map
<
String
,
Object
>>
cellDetailList
=
new
ArrayList
<>();
//
List<Map<String,Object>> cellDetailList = new ArrayList<>();
List
<
String
>
cellList
=
new
ArrayList
<>();
//
List<String> cellList = new ArrayList<>();
result
.
put
(
"cellDetailList"
,
cellDetailList
);
//
result.put("cellDetailList", cellDetailList);
result
.
put
(
"cellList"
,
cellList
);
//
result.put("cellList", cellList);
for
(
XSSFSheet
excelSheet
:
xssfWorkbook
)
{
//
for(XSSFSheet excelSheet : xssfWorkbook) {
XSSFRow
xssfRow
=
excelSheet
.
getRow
(
startDataRow
);
//
XSSFRow xssfRow = excelSheet.getRow(startDataRow);
int
i
=
0
;
//
int i = 0;
while
(
StringUtils
.
isNotBlank
(
this
.
getCellValue
(
i
,
xssfRow
)))
{
//
while(StringUtils.isNotBlank(this.getCellValue(i,xssfRow))) {
Map
<
String
,
Object
>
excelHead
=
new
HashMap
<>();
//
Map<String,Object> excelHead = new HashMap<>();
excelHead
.
put
(
"name"
,
this
.
getCellValue
(
i
,
xssfRow
));
//
excelHead.put("name", this.getCellValue(i,xssfRow));
excelHead
.
put
(
"index"
,
i
);
//
excelHead.put("index", i);
cellDetailList
.
add
(
excelHead
);
//
cellDetailList.add(excelHead);
cellList
.
add
(
this
.
getCellValue
(
i
,
xssfRow
));
//
cellList.add(this.getCellValue(i,xssfRow));
i
++;
//
i++;
}
//
}
break
;
//
break;
}
//
}
result
.
put
(
"cellDetailList"
,
cellDetailList
);
//
result.put("cellDetailList", cellDetailList);
result
.
put
(
"cellList"
,
cellList
);
//
result.put("cellList", cellList);
return
result
;
//
return result;
}
//
}
//
public
String
importIndicatorsData
(
IndicatorsDef
indiDef
,
List
<
IndicatorsDim
>
dimList
,
//
public String importIndicatorsData(IndicatorsDef indiDef,List<IndicatorsDim> dimList,
XSSFWorkbook
xssfWorkbook
)
throws
Exception
{
//
XSSFWorkbook xssfWorkbook)throws Exception{
StringBuilder
message
=
new
StringBuilder
(
""
);
//
StringBuilder message = new StringBuilder("");
List
<
DBObject
>
datas
=
new
ArrayList
<>();
//
List<DBObject> datas = new ArrayList<>();
//excel读取
//
//excel读取
int
startDataRow
=
1
;
//开始读excel数据的行号
//
int startDataRow = 1;//开始读excel数据的行号
for
(
XSSFSheet
excelSheet
:
xssfWorkbook
)
{
//
for(XSSFSheet excelSheet : xssfWorkbook) {
//抽取工作表内容
//
//抽取工作表内容
for
(
int
rowNum
=
startDataRow
;
rowNum
<=
excelSheet
.
getLastRowNum
();
rowNum
++)
{
//
for (int rowNum = startDataRow; rowNum <= excelSheet.getLastRowNum(); rowNum++) {
/*创建DBObject对象,通过该对象来向集合中添加记录 */
//
/*创建DBObject对象,通过该对象来向集合中添加记录 */
DBObject
doc
=
new
BasicDBObject
();
//
DBObject doc = new BasicDBObject();
doc
.
put
(
"inId"
,
indiDef
.
getId
());
//
doc.put("inId", indiDef.getId());
//
XSSFRow
xssfRow
=
excelSheet
.
getRow
(
rowNum
);
//
XSSFRow xssfRow = excelSheet.getRow(rowNum);
//
//获取值映射列index
//
//获取值映射列index
int
indiValueMapping
=
indiDef
.
getValueMapping
();
//
int indiValueMapping = indiDef.getValueMapping();
String
indiValue
=
getCellValue
(
indiValueMapping
,
xssfRow
);
//指标值
//
String indiValue = getCellValue(indiValueMapping,xssfRow);//指标值
if
(
StringUtils
.
isBlank
(
indiValue
))
{
//
if(StringUtils.isBlank(indiValue)) {
break
;
//
break;
}
//
}
doc
.
put
(
"value"
,
indiValue
);
//
doc.put("value", indiValue);
doc
.
put
(
"status"
,
"1"
);
//未生效(待审批)
//
doc.put("status", "1");//未生效(待审批)
for
(
IndicatorsDim
dim
:
dimList
)
{
//
for(IndicatorsDim dim : dimList) {
//获取映射名
//
//获取映射名
String
dimName
=
dim
.
getDimName
();
//
String dimName = dim.getDimName();
//获取映射index
//
//获取映射index
int
indiDimMapping
=
dim
.
getDimMapping
();
//
int indiDimMapping = dim.getDimMapping();
String
dimValue
=
getCellValue
(
indiDimMapping
,
xssfRow
);
//维度值
//
String dimValue = getCellValue(indiDimMapping,xssfRow);//维度值
doc
.
put
(
dimName
,
dimValue
);
//
doc.put(dimName,dimValue);
}
//
}
datas
.
add
(
doc
);
//
datas.add(doc);
}
//
}
}
//
}
if
(!
datas
.
isEmpty
())
{
//
if(!datas.isEmpty()) {
this
.
addIndicatorData
(
datas
);
//
this.addIndicatorData(datas);
}
//
}
return
message
.
toString
();
//
return message.toString();
}
//
}
//
//
//
//
//
private
void
addIndicatorData
(
List
<
DBObject
>
datas
)
throws
Exception
{
//
private void addIndicatorData(List<DBObject> datas) throws Exception{
MongoClient
client
=
mongoDbConfig
.
mongoClient
();
//
MongoClient client = mongoDbConfig.mongoClient();
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
DB
dataBase
=
client
.
getDB
(
database
);
//
DB dataBase = client.getDB(database);
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
DBCollection
collection
=
dataBase
.
getCollection
(
"indi_data"
);
//
DBCollection collection = dataBase.getCollection("indi_data");
//
collection
.
insert
(
datas
);
//
collection.insert(datas);
//
client
.
close
();
//
client.close();
}
//
}
//
//获取列值
//
//获取列值
private
String
getCellValue
(
int
cellIndex
,
XSSFRow
xssfRow
)
{
//
private String getCellValue(int cellIndex,XSSFRow xssfRow) {
String
cellValue
=
""
;
//
String cellValue = "";
try
{
//
try {
//如果是字符串列
//
//如果是字符串列
cellValue
=
xssfRow
.
getCell
(
cellIndex
)
==
null
?
// cellValue = xssfRow.getCell(cellIndex) == null ?
""
:
xssfRow
.
getCell
(
cellIndex
).
getStringCellValue
();
//
"" : xssfRow.getCell(cellIndex).getStringCellValue();
}
catch
(
Exception
e
)
{
//
} catch (Exception e) {
try
{
//
try {
if
(
HSSFDateUtil
.
isCellDateFormatted
(
xssfRow
.
getCell
(
cellIndex
)))
{
//
if(HSSFDateUtil.isCellDateFormatted(xssfRow.getCell(cellIndex))) {
//如果是日期
//
//如果是日期
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"yyyy/MM/dd"
);
//
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
cellValue
=
sdf
.
format
(
xssfRow
.
getCell
(
cellIndex
).
getDateCellValue
());
// 日期
//
cellValue = sdf.format(xssfRow.getCell(cellIndex).getDateCellValue());// 日期
}
else
{
//
}else {
//如果是数据列
//
//如果是数据列
DecimalFormat
decimalFormat
=
new
DecimalFormat
(
"###################.###########"
);
//
DecimalFormat decimalFormat = new DecimalFormat("###################.###########");
cellValue
=
xssfRow
.
getCell
(
cellIndex
)
==
null
?
// cellValue = xssfRow.getCell(cellIndex) == null ?
""
:
String
.
valueOf
(
decimalFormat
.
format
(
xssfRow
.
getCell
(
cellIndex
).
getNumericCellValue
()));
//
"" : String.valueOf(decimalFormat.format(xssfRow.getCell(cellIndex).getNumericCellValue()));
}
//
}
}
catch
(
Exception
e2
)
{
//
} catch (Exception e2) {
try
{
//
try {
cellValue
=
xssfRow
.
getCell
(
cellIndex
)
==
null
?
// cellValue = xssfRow.getCell(cellIndex) == null ?
""
:
xssfRow
.
getCell
(
cellIndex
).
getCellFormula
();
//
"" : xssfRow.getCell(cellIndex).getCellFormula();
}
catch
(
Exception
e3
)
{
//
} catch (Exception e3) {
cellValue
=
xssfRow
.
getCell
(
cellIndex
)
==
null
?
// cellValue = xssfRow.getCell(cellIndex) == null ?
""
:
String
.
valueOf
(
xssfRow
.
getCell
(
cellIndex
).
getBooleanCellValue
());
//
"" : String.valueOf(xssfRow.getCell(cellIndex).getBooleanCellValue());
}
//
}
}
//
}
}
//
}
return
cellValue
;
//
return cellValue;
}
//
}
}
//
}
src/main/java/com/keymobile/indicators/service/indicators/IndicatorsService.java
View file @
2ff61850
package
com
.
keymobile
.
indicators
.
service
.
indicators
;
//
package com.keymobile.indicators.service.indicators;
//
import
java.util.ArrayList
;
//
import java.util.ArrayList;
import
java.util.Date
;
//
import java.util.Date;
import
java.util.HashMap
;
//
import java.util.HashMap;
import
java.util.Iterator
;
//
import java.util.Iterator;
import
java.util.List
;
//
import java.util.List;
import
java.util.Map
;
//
import java.util.Map;
import
java.util.Optional
;
//
import java.util.Optional;
//
import
org.apache.commons.lang.StringUtils
;
//
import org.apache.commons.lang.StringUtils;
import
org.apache.poi.xssf.usermodel.XSSFWorkbook
;
//
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import
org.bson.types.ObjectId
;
//
import org.bson.types.ObjectId;
import
org.slf4j.Logger
;
//
import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
//
import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
//
import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.beans.factory.annotation.Value
;
//
import org.springframework.beans.factory.annotation.Value;
import
org.springframework.stereotype.Service
;
//
import org.springframework.stereotype.Service;
//
import
com.keymobile.indicators.conf.MongoDBConfig
;
//
import com.keymobile.indicators.conf.MongoDBConfig;
import
com.keymobile.indicators.model.indicators.DeriveIndicators
;
//
import com.keymobile.indicators.model.indicators.DeriveIndicators;
import
com.keymobile.indicators.model.indicators.IndicatorsDef
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDef;
import
com.keymobile.indicators.model.indicators.IndicatorsDim
;
//
import com.keymobile.indicators.model.indicators.IndicatorsDim;
import
com.keymobile.indicators.persistence.indicators.DeriveIndicatorsRepository
;
//
import com.keymobile.indicators.persistence.indicators.DeriveIndicatorsRepository;
import
com.keymobile.indicators.persistence.indicators.IndicatorsDefRepository
;
//
import com.keymobile.indicators.persistence.indicators.IndicatorsDefRepository;
import
com.keymobile.indicators.persistence.indicators.IndicatorsDimRepository
;
//
import com.keymobile.indicators.persistence.indicators.IndicatorsDimRepository;
import
com.mongodb.BasicDBObject
;
//
import com.mongodb.BasicDBObject;
import
com.mongodb.DB
;
//
import com.mongodb.DB;
import
com.mongodb.DBCollection
;
//
import com.mongodb.DBCollection;
import
com.mongodb.DBCursor
;
//
import com.mongodb.DBCursor;
import
com.mongodb.DBObject
;
//
import com.mongodb.DBObject;
import
com.mongodb.MongoClient
;
//
import com.mongodb.MongoClient;
//
@Service
//
@Service
public
class
IndicatorsService
{
//
public class IndicatorsService {
//
private
Logger
logger
=
LoggerFactory
.
getLogger
(
IndicatorsService
.
class
);
//
private Logger logger = LoggerFactory.getLogger(IndicatorsService.class);
//
@Value
(
"${mongodb.database}"
)
//
@Value("${mongodb.database}")
private
String
database
;
//
private String database;
//
@Autowired
//
@Autowired
private
MongoDBConfig
mongoDbConfig
;
//
private MongoDBConfig mongoDbConfig;
@Autowired
//
@Autowired
private
IndicatorsDefRepository
indicatorsDefRepo
;
//
private IndicatorsDefRepository indicatorsDefRepo;
@Autowired
//
@Autowired
private
IndicatorsDimRepository
indicatorsDimRepo
;
//
private IndicatorsDimRepository indicatorsDimRepo;
@Autowired
//
@Autowired
private
IndicatorsExcelService
indiExcelService
;
//
private IndicatorsExcelService indiExcelService;
@Autowired
//
@Autowired
private
DeriveIndicatorsRepository
derIndicatorsRepo
;
//
private DeriveIndicatorsRepository derIndicatorsRepo;
//
//保存或者修改维度
//
//保存或者修改维度
public
String
saveOrUpdateDim
(
String
indiDefId
,
List
<
IndicatorsDim
>
indiDims
,
// public String saveOrUpdateDim(String indiDefId,List<IndicatorsDim> indiDims,
String
operator
,
String
isUpdate
)
throws
Exception
{
//
String operator, String isUpdate) throws Exception{
Date
time
=
new
Date
();
//
Date time = new Date();
StringBuilder
message
=
new
StringBuilder
(
""
);
//
StringBuilder message = new StringBuilder("");
//新增
//
//新增
if
(
"false"
.
equals
(
isUpdate
))
{
//
if("false".equals(isUpdate)) {
//保存指标维度
//
//保存指标维度
for
(
int
i
=
0
;
i
<
indiDims
.
size
();
i
++)
{
//
for(int i=0;i<indiDims.size();i++) {
indiDims
.
get
(
i
).
setCreateTime
(
time
);
//
indiDims.get(i).setCreateTime(time);
indiDims
.
get
(
i
).
setCreator
(
operator
);
//
indiDims.get(i).setCreator(operator);
indiDims
.
get
(
i
).
setUpdateTime
(
time
);
//
indiDims.get(i).setUpdateTime(time);
indiDims
.
get
(
i
).
setUpdator
(
operator
);
//
indiDims.get(i).setUpdator(operator);
indiDims
.
get
(
i
).
setDimName
(
"dim"
+
i
);
//
indiDims.get(i).setDimName("dim"+i);
indiDims
.
get
(
i
).
setSort
(
i
);
//
indiDims.get(i).setSort(i);
indiDims
.
get
(
i
).
setIndiDefId
(
indiDefId
);
//
indiDims.get(i).setIndiDefId(indiDefId);
}
//
}
if
(!
indiDims
.
isEmpty
())
{
//
if(!indiDims.isEmpty()) {
indicatorsDimRepo
.
saveAll
(
indiDims
);
//
indicatorsDimRepo.saveAll(indiDims);
}
//
}
}
else
{
//
}else {
//TODO:考虑维度被删除或者添加新的维度情况
//
//TODO:考虑维度被删除或者添加新的维度情况
Iterator
<
IndicatorsDim
>
it
=
indiDims
.
iterator
();
//
Iterator<IndicatorsDim> it=indiDims.iterator();
while
(
it
.
hasNext
())
{
//
while(it.hasNext()) {
IndicatorsDim
updateDim
=
it
.
next
();
//
IndicatorsDim updateDim = it.next();
//如果是新增维度
//
//如果是新增维度
if
(
StringUtils
.
isBlank
(
updateDim
.
getId
()))
{
//
if(StringUtils.isBlank(updateDim.getId())) {
//判断是否同名
//
//判断是否同名
Optional
<
IndicatorsDim
>
hasSameDim
=
indicatorsDimRepo
.
findByIndiDefIdAndDimCnName
(
//
Optional<IndicatorsDim> hasSameDim = indicatorsDimRepo.findByIndiDefIdAndDimCnName(
indiDefId
,
updateDim
.
getDimCnName
());
//
indiDefId, updateDim.getDimCnName());
if
(
hasSameDim
.
isPresent
())
{
//
if(hasSameDim.isPresent()) {
message
.
append
(
"该指标存在同名维度:"
+
updateDim
.
getDimCnName
());
//
message.append("该指标存在同名维度:"+updateDim.getDimCnName());
it
.
remove
();
//
it.remove();
continue
;
//
continue;
}
//
}
//
//获取基础指标关联代的维度
//
//获取基础指标关联代的维度
List
<
IndicatorsDim
>
dbIndiDims
=
indicatorsDimRepo
.
findByIndiDefId
(
indiDefId
);
//
List<IndicatorsDim> dbIndiDims = indicatorsDimRepo.findByIndiDefId(indiDefId);
//
updateDim
.
setDimName
(
"dim"
+
dbIndiDims
.
size
());
//
updateDim.setDimName("dim"+dbIndiDims.size());
updateDim
.
setSort
(
dbIndiDims
.
size
());
//
updateDim.setSort(dbIndiDims.size());
updateDim
.
setCreateTime
(
time
);
//
updateDim.setCreateTime(time);
updateDim
.
setCreator
(
operator
);
//
updateDim.setCreator(operator);
updateDim
.
setUpdateTime
(
time
);
//
updateDim.setUpdateTime(time);
updateDim
.
setUpdator
(
operator
);
//
updateDim.setUpdator(operator);
}
else
{
//
}else {
Optional
<
IndicatorsDim
>
dbIndiDim
=
indicatorsDimRepo
.
findById
(
updateDim
.
getId
());
//
Optional<IndicatorsDim> dbIndiDim = indicatorsDimRepo.findById(updateDim.getId());
if
(!
dbIndiDim
.
isPresent
())
{
//
if(!dbIndiDim.isPresent()) {
logger
.
info
(
"not exist the dimension where id:"
+
updateDim
.
getId
());
//
logger.info("not exist the dimension where id:"+updateDim.getId());
message
.
append
(
"不存在id:"
+
updateDim
.
getId
()+
" 的维度;"
);
//
message.append("不存在id:"+updateDim.getId()+" 的维度;");
it
.
remove
();
//
it.remove();
}
else
{
//
}else {
updateDim
.
setUpdateTime
(
time
);
//
updateDim.setUpdateTime(time);
updateDim
.
setUpdator
(
operator
);
//
updateDim.setUpdator(operator);
if
(
dbIndiDim
.
get
().
getDimMapping
()!=-
1
)
{
//
if(dbIndiDim.get().getDimMapping()!=-1) {
updateDim
.
setDimMapping
(
dbIndiDim
.
get
().
getDimMapping
());
//
updateDim.setDimMapping(dbIndiDim.get().getDimMapping());
}
//
}
}
//
}
}
//
}
updateDim
.
setIndiDefId
(
indiDefId
);
//
updateDim.setIndiDefId(indiDefId);
}
//
}
if
(!
indiDims
.
isEmpty
())
{
//
if(!indiDims.isEmpty()) {
indicatorsDimRepo
.
saveAll
(
indiDims
);
//
indicatorsDimRepo.saveAll(indiDims);
}
//
}
}
//
}
return
message
.
toString
();
//
return message.toString();
}
//
}
//
//判断原生指标能否被修改
//
//判断原生指标能否被修改
public
boolean
canBeUpdate
(
String
indiDefId
)
throws
Exception
{
//
public boolean canBeUpdate(String indiDefId) throws Exception{
boolean
canUpdate
=
true
;
//
boolean canUpdate = true;
//
MongoClient
client
=
mongoDbConfig
.
mongoClient
();
//
MongoClient client = mongoDbConfig.mongoClient();
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
DB
dataBase
=
client
.
getDB
(
database
);
//
DB dataBase = client.getDB(database);
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
DBCollection
collection
=
dataBase
.
getCollection
(
"indi_data"
);
//
DBCollection collection = dataBase.getCollection("indi_data");
//
DBObject
query
=
new
BasicDBObject
();
//
DBObject query = new BasicDBObject();
query
.
put
(
"inId"
,
indiDefId
);
//
query.put("inId", indiDefId);
try
(
DBCursor
cursor
=
collection
.
find
(
query
))
{
//
try (DBCursor cursor = collection.find(query)) {
while
(
cursor
.
hasNext
())
{
//
while (cursor.hasNext()) {
canUpdate
=
false
;
//
canUpdate = false;
break
;
//
break;
}
//
}
}
//
}
client
.
close
();
//
client.close();
return
canUpdate
;
//
return canUpdate;
}
//
}
//
//保存或者修改指标定义
//
//保存或者修改指标定义
public
String
saveOrUpdateIndiDef
(
IndicatorsDef
indiDef
,
String
operator
)
throws
Exception
{
//
public String saveOrUpdateIndiDef(IndicatorsDef indiDef,String operator)throws Exception{
Date
time
=
new
Date
();
//
Date time = new Date();
//新增
//
//新增
if
(
StringUtils
.
isBlank
(
indiDef
.
getId
()))
{
//
if(StringUtils.isBlank(indiDef.getId())) {
//保存指标定义
//
//保存指标定义
indiDef
.
setCreateTime
(
time
);
//
indiDef.setCreateTime(time);
indiDef
.
setCreator
(
operator
);
//
indiDef.setCreator(operator);
indiDef
.
setUpdateTime
(
time
);
//
indiDef.setUpdateTime(time);
indiDef
.
setUpdator
(
operator
);
//
indiDef.setUpdator(operator);
indiDef
.
setStatus
(
"0"
);
//
indiDef.setStatus("0");
indiDef
=
indicatorsDefRepo
.
save
(
indiDef
);
//
indiDef = indicatorsDefRepo.save(indiDef);
}
else
{
//
}else {
//暂时不修改指标和维度的映射
//
//暂时不修改指标和维度的映射
indiDef
.
setUpdateTime
(
time
);
//
indiDef.setUpdateTime(time);
indiDef
.
setUpdator
(
operator
);
//
indiDef.setUpdator(operator);
//根据指标定义id获取指标定义详情
//
//根据指标定义id获取指标定义详情
Optional
<
IndicatorsDef
>
dbIndiDef
=
indicatorsDefRepo
.
findById
(
indiDef
.
getId
());
//
Optional<IndicatorsDef> dbIndiDef = indicatorsDefRepo.findById(indiDef.getId());
if
(
dbIndiDef
.
isPresent
())
{
//
if(dbIndiDef.isPresent()) {
if
(
dbIndiDef
.
get
().
getValueMapping
()!=-
1
)
{
//
if(dbIndiDef.get().getValueMapping()!=-1) {
indiDef
.
setValueMapping
(
dbIndiDef
.
get
().
getValueMapping
());
//
indiDef.setValueMapping(dbIndiDef.get().getValueMapping());
}
//
}
indiDef
=
indicatorsDefRepo
.
save
(
indiDef
);
//
indiDef = indicatorsDefRepo.save(indiDef);
}
else
{
//
}else {
return
"not exist the indicators where id:"
+
indiDef
.
getId
();
//
return "not exist the indicators where id:"+indiDef.getId();
}
//
}
}
//
}
return
indiDef
.
getId
();
//
return indiDef.getId();
}
//
}
//
//删除指标
//
//删除指标
public
String
delete
(
String
indicatorsId
)
throws
Exception
{
//
public String delete(String indicatorsId)throws Exception {
//判断原生指标是否关联了衍生指标
//
//判断原生指标是否关联了衍生指标
List
<
DeriveIndicators
>
deriveIndiList
=
derIndicatorsRepo
.
findByIndiDefIdsLike
(
indicatorsId
);
//
List<DeriveIndicators> deriveIndiList = derIndicatorsRepo.findByIndiDefIdsLike(indicatorsId);
if
(!
deriveIndiList
.
isEmpty
())
{
//
if(!deriveIndiList.isEmpty()) {
return
"该指标已经关联衍生指标,无法删除"
;
//
return "该指标已经关联衍生指标,无法删除";
}
//
}
//删除指标定义
//
//删除指标定义
indicatorsDefRepo
.
deleteById
(
indicatorsId
);
//
indicatorsDefRepo.deleteById(indicatorsId);
//删除维度
//
//删除维度
indicatorsDimRepo
.
deleteByIndiDefId
(
indicatorsId
);
//
indicatorsDimRepo.deleteByIndiDefId(indicatorsId);
//
//删除对应的指标数据
//
//删除对应的指标数据
MongoClient
client
=
mongoDbConfig
.
mongoClient
();
//
MongoClient client = mongoDbConfig.mongoClient();
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
DB
dataBase
=
client
.
getDB
(
database
);
//
DB dataBase = client.getDB(database);
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
DBCollection
collection
=
dataBase
.
getCollection
(
"indi_data"
);
//
DBCollection collection = dataBase.getCollection("indi_data");
//
DBObject
removeCon
=
new
BasicDBObject
();
//
DBObject removeCon = new BasicDBObject();
removeCon
.
put
(
"inId"
,
indicatorsId
);
//
removeCon.put("inId", indicatorsId);
//
collection
.
remove
(
removeCon
);
//
collection.remove(removeCon);
//
return
"删除成功"
;
//
return "删除成功";
}
//
}
//
//获取指标列表
//
//获取指标列表
public
List
<
IndicatorsDef
>
getIndicatorsDefList
(
String
keyword
)
throws
Exception
{
//
public List<IndicatorsDef> getIndicatorsDefList(String keyword)throws Exception{
if
(
StringUtils
.
isBlank
(
keyword
)){
//
if(StringUtils.isBlank(keyword)){
return
indicatorsDefRepo
.
findByStatus
(
"0"
);
//
return indicatorsDefRepo.findByStatus("0");
}
else
{
//
}else {
return
indicatorsDefRepo
.
findByIndiNameLikeOrIndiCnNameLikeAndStatus
(
keyword
,
keyword
,
"0"
);
//
return indicatorsDefRepo.findByIndiNameLikeOrIndiCnNameLikeAndStatus(keyword, keyword,"0");
}
//
}
}
//
}
//
//获取指标详情
//
//获取指标详情
public
Map
<
String
,
Object
>
getIndicatorsDefDetail
(
String
indiDefId
)
throws
Exception
{
//
public Map<String,Object> getIndicatorsDefDetail(String indiDefId)throws Exception{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
//
Map<String,Object> result = new HashMap<>();
result
.
put
(
"def"
,
""
);
//
result.put("def", "");
result
.
put
(
"dimList"
,
new
ArrayList
<>());
//
result.put("dimList", new ArrayList<>());
//根据指标定义id获取指标定义详情
//
//根据指标定义id获取指标定义详情
Optional
<
IndicatorsDef
>
dbIndiDef
=
indicatorsDefRepo
.
findById
(
indiDefId
);
//
Optional<IndicatorsDef> dbIndiDef = indicatorsDefRepo.findById(indiDefId);
if
(
dbIndiDef
.
isPresent
())
{
//
if(dbIndiDef.isPresent()) {
result
.
put
(
"def"
,
dbIndiDef
.
get
());
//
result.put("def", dbIndiDef.get());
//根据定义id获取维度
//
//根据定义id获取维度
List
<
IndicatorsDim
>
dimList
=
indicatorsDimRepo
.
findByIndiDefId
(
indiDefId
);
//
List<IndicatorsDim> dimList = indicatorsDimRepo.findByIndiDefId(indiDefId);
if
(!
dimList
.
isEmpty
())
{
//
if(!dimList.isEmpty()) {
result
.
put
(
"dimList"
,
dimList
);
//
result.put("dimList",dimList);
}
//
}
return
result
;
//
return result;
}
//
}
logger
.
info
(
"not exist indicatorsDef where id:"
+
indiDefId
);
//
logger.info("not exist indicatorsDef where id:"+indiDefId);
return
null
;
//
return null;
}
//
}
//
//根据上传excel获取表头数据
//
//根据上传excel获取表头数据
@SuppressWarnings
(
"unchecked"
)
//
@SuppressWarnings("unchecked")
public
List
<
Map
<
String
,
Object
>>
getUploadExcelHead
(
XSSFWorkbook
xssfWorkbook
)
throws
Exception
{
//
public List<Map<String,Object>> getUploadExcelHead(XSSFWorkbook xssfWorkbook)throws Exception{
return
(
List
<
Map
<
String
,
Object
>>)
indiExcelService
.
getUploadExcelHead
(
xssfWorkbook
).
get
(
"cellDetailList"
);
//
return (List<Map<String,Object>>)indiExcelService.getUploadExcelHead(xssfWorkbook).get("cellDetailList");
}
//
}
//
//根据上传的excel文件和指标id判断该指标是否对应这个上传文件
//
//根据上传的excel文件和指标id判断该指标是否对应这个上传文件
@SuppressWarnings
(
"unchecked"
)
//
@SuppressWarnings("unchecked")
public
String
isCorrespondence
(
String
indiDefId
,
XSSFWorkbook
xssfWorkbook
)
throws
Exception
{
//
public String isCorrespondence(String indiDefId,XSSFWorkbook xssfWorkbook)throws Exception {
StringBuilder
message
=
new
StringBuilder
();
//
StringBuilder message = new StringBuilder();
//
//获取excel表头list
//
//获取excel表头list
List
<
String
>
excelHead
=
(
List
<
String
>)
indiExcelService
.
getUploadExcelHead
(
xssfWorkbook
)
//
List<String> excelHead = (List<String>)indiExcelService.getUploadExcelHead(xssfWorkbook)
.
get
(
"cellList"
);
//
.get("cellList");
//
//查询指标对应的值映射名
//
//查询指标对应的值映射名
Optional
<
IndicatorsDef
>
dbIndiDef
=
indicatorsDefRepo
.
findById
(
indiDefId
);
//
Optional<IndicatorsDef> dbIndiDef = indicatorsDefRepo.findById(indiDefId);
if
(
dbIndiDef
.
isPresent
())
{
//
if(dbIndiDef.isPresent()) {
String
valueNameMapping
=
dbIndiDef
.
get
().
getValueMappingName
();
//
String valueNameMapping = dbIndiDef.get().getValueMappingName();
if
(
StringUtils
.
isBlank
(
valueNameMapping
))
{
//
if(StringUtils.isBlank(valueNameMapping)) {
message
.
append
(
"指标:"
+
dbIndiDef
.
get
().
getIndiName
()+
" 没有配置值映射;"
);
//
message.append("指标:"+dbIndiDef.get().getIndiName()+" 没有配置值映射;");
}
else
{
//
}else {
if
(!
excelHead
.
contains
(
valueNameMapping
))
{
//
if(!excelHead.contains(valueNameMapping)) {
message
.
append
(
"上传文件指标值映射名称:"
+
valueNameMapping
+
" 在excel不存在;"
);
//
message.append("上传文件指标值映射名称:"+valueNameMapping+" 在excel不存在;");
}
//
}
}
//
}
//根据指标定义id获取指标维度
//
//根据指标定义id获取指标维度
List
<
IndicatorsDim
>
dimList
=
indicatorsDimRepo
.
findByIndiDefId
(
indiDefId
);
//
List<IndicatorsDim> dimList = indicatorsDimRepo.findByIndiDefId(indiDefId);
for
(
IndicatorsDim
dim
:
dimList
)
{
//
for(IndicatorsDim dim : dimList) {
if
(
StringUtils
.
isBlank
(
dim
.
getDimMappingName
()))
{
//
if(StringUtils.isBlank(dim.getDimMappingName())) {
message
.
append
(
"指标:"
+
dbIndiDef
.
get
().
getIndiName
()+
" 的维度:"
+
//
message.append("指标:"+dbIndiDef.get().getIndiName()+" 的维度:"+
dim
.
getDimCnName
()+
" 没有配置维度映射;"
);
//
dim.getDimCnName()+" 没有配置维度映射;");
}
else
{
//
}else {
if
(!
excelHead
.
contains
(
dim
.
getDimMappingName
()))
{
//
if(!excelHead.contains(dim.getDimMappingName())) {
message
.
append
(
"上传文件指标维度映射名称:"
+
dim
.
getDimMappingName
()+
" 在excel不存在;"
);
//
message.append("上传文件指标维度映射名称:"+dim.getDimMappingName()+" 在excel不存在;");
}
//
}
}
//
}
}
//
}
}
else
{
//
}else {
message
.
append
(
"不存在id:"
+
indiDefId
+
" 的指标定义;"
);
//
message.append("不存在id:"+indiDefId+" 的指标定义;");
}
//
}
if
(
StringUtils
.
isBlank
(
message
.
toString
()))
{
//
if(StringUtils.isBlank(message.toString())) {
message
.
append
(
"true"
);
//
message.append("true");
}
//
}
return
message
.
toString
();
//
return message.toString();
}
//
}
//
//导入指标值
//
//导入指标值
public
String
importIndicatorsData
(
String
indiDefId
,
XSSFWorkbook
xssfWorkbook
)
throws
Exception
{
//
public String importIndicatorsData(String indiDefId,XSSFWorkbook xssfWorkbook)throws Exception {
//判断上传文件和指标映射字段是否符合
//
//判断上传文件和指标映射字段是否符合
String
message
=
this
.
isCorrespondence
(
indiDefId
,
xssfWorkbook
);
//
String message = this.isCorrespondence(indiDefId, xssfWorkbook);
if
(
"true"
.
equals
(
message
))
{
//
if("true".equals(message)) {
Optional
<
IndicatorsDef
>
indiDef
=
indicatorsDefRepo
.
findById
(
indiDefId
);
//
Optional<IndicatorsDef> indiDef = indicatorsDefRepo.findById(indiDefId);
if
(
indiDef
.
isPresent
())
{
//
if(indiDef.isPresent()) {
List
<
IndicatorsDim
>
dimList
=
indicatorsDimRepo
.
findByIndiDefId
(
indiDefId
);
//
List<IndicatorsDim> dimList = indicatorsDimRepo.findByIndiDefId(indiDefId);
return
indiExcelService
.
importIndicatorsData
(
indiDef
.
get
(),
dimList
,
xssfWorkbook
);
//
return indiExcelService.importIndicatorsData(indiDef.get(), dimList, xssfWorkbook);
}
//
}
}
//
}
return
message
;
//
return message;
}
//
}
//
//根据指标定义id和维度值查询指标值
//
//根据指标定义id和维度值查询指标值
public
Map
<
String
,
Object
>
queryIndicatorsValue
(
String
indiDefId
,
//
public Map<String,Object> queryIndicatorsValue(String indiDefId,
Map
<
String
,
Object
>
dimValue
,
boolean
isDimCnName
)
throws
Exception
{
//
Map<String,Object> dimValue, boolean isDimCnName)throws Exception {
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
//
Map<String,Object> result = new HashMap<>();
List
<
DBObject
>
resultList
=
new
ArrayList
<>();
//
List<DBObject> resultList = new ArrayList<>();
result
.
put
(
"count"
,
0
);
//
result.put("count", 0);
result
.
put
(
"resultList"
,
resultList
);
//
result.put("resultList", resultList);
//
MongoClient
client
=
mongoDbConfig
.
mongoClient
();
//
MongoClient client = mongoDbConfig.mongoClient();
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
DB
dataBase
=
client
.
getDB
(
database
);
//
DB dataBase = client.getDB(database);
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
DBCollection
collection
=
dataBase
.
getCollection
(
"indi_data"
);
//
DBCollection collection = dataBase.getCollection("indi_data");
//
DBObject
query
=
new
BasicDBObject
();
//
DBObject query = new BasicDBObject();
query
.
put
(
"inId"
,
indiDefId
);
//
query.put("inId", indiDefId);
//query.put("status", "0");//有效值
//
//query.put("status", "0");//有效值
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
dimValue
.
entrySet
())
{
//
for(Map.Entry<String, Object> entry : dimValue.entrySet()) {
//如果map中是key是中文名
//
//如果map中是key是中文名
if
(
isDimCnName
)
{
//
if(isDimCnName) {
Optional
<
IndicatorsDim
>
dimOp
=
indicatorsDimRepo
//
Optional<IndicatorsDim> dimOp = indicatorsDimRepo
.
findByIndiDefIdAndDimMappingName
(
indiDefId
,
entry
.
getKey
());
//
.findByIndiDefIdAndDimMappingName(indiDefId, entry.getKey());
query
.
put
(
dimOp
.
get
().
getDimName
(),
entry
.
getValue
());
//
query.put(dimOp.get().getDimName(),entry.getValue());
}
else
{
//
}else {
query
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
//
query.put(entry.getKey(),entry.getValue());
}
//
}
}
//
}
//
int
valueCount
=
0
;
//
int valueCount = 0;
try
(
DBCursor
cursor
=
collection
.
find
(
query
))
{
//
try (DBCursor cursor = collection.find(query)) {
while
(
cursor
.
hasNext
())
{
//
while (cursor.hasNext()) {
DBObject
dbo
=
cursor
.
next
();
//
DBObject dbo = cursor.next();
resultList
.
add
(
dbo
);
//
resultList.add(dbo);
valueCount
+=
Integer
.
parseInt
(
dbo
.
get
(
"value"
).
toString
());
//
valueCount += Integer.parseInt(dbo.get("value").toString());
}
//
}
}
//
}
client
.
close
();
//
client.close();
result
.
put
(
"count"
,
valueCount
);
//
result.put("count", valueCount);
result
.
put
(
"resultList"
,
resultList
);
//
result.put("resultList", resultList);
return
result
;
//
return result;
}
//
}
//
//审批指标值
//
//审批指标值
public
void
applyIndicatorsValue
(
List
<
String
>
indiValueId
)
throws
Exception
{
//
public void applyIndicatorsValue(List<String> indiValueId) throws Exception{
MongoClient
client
=
mongoDbConfig
.
mongoClient
();
//
MongoClient client = mongoDbConfig.mongoClient();
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
DB
dataBase
=
client
.
getDB
(
database
);
//
DB dataBase = client.getDB(database);
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
DBCollection
collection
=
dataBase
.
getCollection
(
"indi_data"
);
//
DBCollection collection = dataBase.getCollection("indi_data");
//
DBObject
query
=
new
BasicDBObject
();
//
DBObject query = new BasicDBObject();
for
(
String
id
:
indiValueId
)
{
//
for(String id : indiValueId) {
query
.
put
(
"_id"
,
new
ObjectId
(
id
));
//
query.put("_id", new ObjectId(id));
DBObject
queryResult
=
collection
.
findOne
(
query
);
//
DBObject queryResult = collection.findOne(query);
//
queryResult
.
put
(
"status"
,
"0"
);
//
queryResult.put("status", "0");
collection
.
findAndModify
(
query
,
queryResult
);
//
collection.findAndModify(query, queryResult);
}
//
}
client
.
close
();
//
client.close();
}
//
}
//
//获取未审批的指标值
//
//获取未审批的指标值
@SuppressWarnings
(
"unchecked"
)
//
@SuppressWarnings("unchecked")
public
Map
<
String
,
Object
>
getUnApplyIndiValueList
()
throws
Exception
{
//
public Map<String,Object> getUnApplyIndiValueList() throws Exception{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
//
Map<String,Object> result = new HashMap<>();
MongoClient
client
=
mongoDbConfig
.
mongoClient
();
//
MongoClient client = mongoDbConfig.mongoClient();
//
List
<
Map
<
String
,
Object
>>
resultList
=
new
ArrayList
<>();
//
List<Map<String,Object>> resultList = new ArrayList<>();
result
.
put
(
"total"
,
0
);
//
result.put("total", 0);
result
.
put
(
"resultList"
,
resultList
);
//
result.put("resultList", resultList);
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
//
/* 新建数据库实例,有则使用已有的数据库,没有则准别新建 */
DB
dataBase
=
client
.
getDB
(
database
);
//
DB dataBase = client.getDB(database);
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
//
/* 新建集合命名为user_info,如果该集合存在,则使用。否则新建 */
DBCollection
collection
=
dataBase
.
getCollection
(
"indi_data"
);
//
DBCollection collection = dataBase.getCollection("indi_data");
DBObject
query
=
new
BasicDBObject
();
//
DBObject query = new BasicDBObject();
query
.
put
(
"status"
,
"1"
);
//
query.put("status", "1");
List
<
String
>
distinctIndiDefIds
=
collection
.
distinct
(
"inId"
,
query
);
//
List<String> distinctIndiDefIds = collection.distinct("inId",query);
for
(
String
indiDefId
:
distinctIndiDefIds
)
{
//
for(String indiDefId : distinctIndiDefIds) {
Map
<
String
,
Object
>
unApplyIndiValueMap
=
new
HashMap
<>();
//
Map<String,Object> unApplyIndiValueMap = new HashMap<>();
//根据原始指标id获取原始指标详细信息
//
//根据原始指标id获取原始指标详细信息
Map
<
String
,
Object
>
indiDefDetail
=
this
.
getIndicatorsDefDetail
(
indiDefId
);
//
Map<String,Object> indiDefDetail = this.getIndicatorsDefDetail(indiDefId);
List
<
DBObject
>
unApplyValueList
=
new
ArrayList
<>();
//
List<DBObject> unApplyValueList = new ArrayList<>();
//
DBObject
unApplyQuery
=
new
BasicDBObject
();
//
DBObject unApplyQuery = new BasicDBObject();
unApplyQuery
.
put
(
"status"
,
"1"
);
//
unApplyQuery.put("status", "1");
unApplyQuery
.
put
(
"inId"
,
indiDefId
);
//
unApplyQuery.put("inId", indiDefId);
try
(
DBCursor
cursor
=
collection
.
find
(
unApplyQuery
))
{
//
try (DBCursor cursor = collection.find(unApplyQuery)) {
while
(
cursor
.
hasNext
())
{
//
while (cursor.hasNext()) {
DBObject
dbo
=
cursor
.
next
();
//
DBObject dbo = cursor.next();
ObjectId
_id
=
(
ObjectId
)
dbo
.
get
(
"_id"
);
//
ObjectId _id = (ObjectId) dbo.get("_id");
dbo
.
put
(
"_id"
,
_id
.
toHexString
());
//
dbo.put("_id", _id.toHexString());
unApplyValueList
.
add
(
dbo
);
//
unApplyValueList.add(dbo);
}
//
}
}
//
}
unApplyIndiValueMap
.
put
(
"indiDef"
,
indiDefDetail
);
//
unApplyIndiValueMap.put("indiDef",indiDefDetail);
unApplyIndiValueMap
.
put
(
"unApplyList"
,
unApplyValueList
);
//
unApplyIndiValueMap.put("unApplyList",unApplyValueList);
resultList
.
add
(
unApplyIndiValueMap
);
//
resultList.add(unApplyIndiValueMap);
}
//
}
client
.
close
();
//
client.close();
result
.
put
(
"total"
,
resultList
.
size
());
//
result.put("total", resultList.size());
result
.
put
(
"resultList"
,
resultList
);
//
result.put("resultList", resultList);
return
result
;
//
return result;
}
//
}
}
//
}
src/main/resources/application-test.yml
View file @
2ff61850
mongodb
:
uri
:
139.198.127.54:9017
database
:
dev0
username
:
root
password
:
dataPlatform
maxConnectionIdleTime
:
600000
spring
:
spring
:
application
:
application
:
name
:
indicators
name
:
indicators
...
...
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