Commit 2ff61850 by 张祺

移除mongodb代码

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