Commit 4b06f9d9 by zhangkb

把mongodb基础项数据表和考核指标结果表转移到mysql库中

parent 9853dffb
...@@ -18,7 +18,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg; ...@@ -18,7 +18,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg;
import com.keymobile.indicators.akka.message.IndGetValueMsg; import com.keymobile.indicators.akka.message.IndGetValueMsg;
import com.keymobile.indicators.akka.message.IndValueMsg; import com.keymobile.indicators.akka.message.IndValueMsg;
import com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg; import com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef; import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService; import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefService; import com.keymobile.indicators.service.hytobacco.DriveIndDefService;
...@@ -148,16 +148,16 @@ public class DriveIndCalculateActor extends AbstractActor{ ...@@ -148,16 +148,16 @@ public class DriveIndCalculateActor extends AbstractActor{
new BigDecimal(Double.valueOf(driveIndValue))); new BigDecimal(Double.valueOf(driveIndValue)));
} }
//判断结果表中是否已存在该结果数据,存在则覆盖 //判断结果表中是否已存在该结果数据,存在则覆盖
DriveIndCalResult driveIndCalResult = driveIndCalResultService. DriveIndCalResultDef driveIndCalResult = driveIndCalResultService.
findCalResultDataIsExist(compareId, compareObj, driveIndId, date); findCalResultDataIsExist(compareId, compareObj, driveIndId, date);
if(driveIndCalResult==null) { if(driveIndCalResult==null) {
driveIndCalResult = new DriveIndCalResult(compareId, driveIndCalResult = new DriveIndCalResultDef(compareId,
driveIndId,compareObj,date,driveIndValue,unit,"1","1","admin"); driveIndId,compareObj,date,driveIndValue,unit,"1","1","admin");
}else { }else {
driveIndCalResult.setValue(driveIndValue); driveIndCalResult.setValue(driveIndValue);
} }
//保存进考核指标结果表中 //保存进考核指标结果表中
driveIndCalResult = driveIndCalResultService.saveOrUpdate(driveIndCalResult); driveIndCalResultService.saveOrUpdate(driveIndCalResult);
//返回指标值回去算平均值和排名 //返回指标值回去算平均值和排名
DriveIndAverageAndRankMsg driveIndAverageAndRankMsg = DriveIndAverageAndRankMsg driveIndAverageAndRankMsg =
...@@ -166,9 +166,9 @@ public class DriveIndCalculateActor extends AbstractActor{ ...@@ -166,9 +166,9 @@ public class DriveIndCalculateActor extends AbstractActor{
unit,indType,markType,averageDriveIndFormula); unit,indType,markType,averageDriveIndFormula);
driveIndCalculateRegionActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender()); driveIndCalculateRegionActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender());
} catch (Exception e) { } catch (Exception e) {
DriveIndCalResult driveIndCalResult = new DriveIndCalResult(compareId, DriveIndCalResultDef driveIndCalResult = new DriveIndCalResultDef(compareId,
driveIndId,compareObj,date,"0(Error)",unit,"1","0","admin"); driveIndId,compareObj,date,"0(Error)",unit,"1","0","admin");
driveIndCalResult = driveIndCalResultService.saveOrUpdate(driveIndCalResult); driveIndCalResultService.saveOrUpdate(driveIndCalResult);
DriveIndAverageAndRankMsg driveIndAverageAndRankMsg = DriveIndAverageAndRankMsg driveIndAverageAndRankMsg =
new DriveIndAverageAndRankMsg(driveIndCalResult.getId(), new DriveIndAverageAndRankMsg(driveIndCalResult.getId(),
compareId,driveIndId,compareObj,date,"0(Error)", compareId,driveIndId,compareObj,date,"0(Error)",
......
...@@ -11,7 +11,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg; ...@@ -11,7 +11,7 @@ import com.keymobile.indicators.akka.message.DriveIndCalculateMsg;
import com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg; import com.keymobile.indicators.akka.message.specific.DriveIndAverageAndRankMsg;
import com.keymobile.indicators.akka.message.specific.DriveIndCalculateRegionMsg; import com.keymobile.indicators.akka.message.specific.DriveIndCalculateRegionMsg;
import com.keymobile.indicators.model.entity.DimValue; import com.keymobile.indicators.model.entity.DimValue;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService; import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefService; import com.keymobile.indicators.service.hytobacco.DriveIndDefService;
import com.keymobile.indicators.service.hytobacco.IndScorecardService; import com.keymobile.indicators.service.hytobacco.IndScorecardService;
...@@ -67,7 +67,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{ ...@@ -67,7 +67,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
}) })
.match(DriveIndAverageAndRankMsg.class,driveIndAverageAndRankMsg -> { .match(DriveIndAverageAndRankMsg.class,driveIndAverageAndRankMsg -> {
String value = driveIndAverageAndRankMsg.getDriveIndValue(); String value = driveIndAverageAndRankMsg.getDriveIndValue();
String id = driveIndAverageAndRankMsg.getId(); String id = String.valueOf(driveIndAverageAndRankMsg.getId());
String indType = driveIndAverageAndRankMsg.getIndType(); String indType = driveIndAverageAndRankMsg.getIndType();
String markType = driveIndAverageAndRankMsg.getMarkType();//评分卡id String markType = driveIndAverageAndRankMsg.getMarkType();//评分卡id
valueMap.put(id, value); valueMap.put(id, value);
...@@ -78,7 +78,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{ ...@@ -78,7 +78,7 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
//考核地区只有一个“全省”的情况下 //考核地区只有一个“全省”的情况下
if(!"全省".equals(driveIndAverageAndRankMsg.getCompareObj())) { if(!"全省".equals(driveIndAverageAndRankMsg.getCompareObj())) {
//查询有没有全省的考核指标数据 //查询有没有全省的考核指标数据
DriveIndCalResult provinceDriveIndCalResult = driveIndCalResultService.findCompareObjInfo( DriveIndCalResultDef provinceDriveIndCalResult = driveIndCalResultService.findCompareObjInfo(
driveIndAverageAndRankMsg.getDriveIndId(), driveIndAverageAndRankMsg.getDate(), driveIndAverageAndRankMsg.getDriveIndId(), driveIndAverageAndRankMsg.getDate(),
"全省"); "全省");
String actualAverage = "0.0"; String actualAverage = "0.0";
...@@ -96,7 +96,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{ ...@@ -96,7 +96,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
Map<String,Integer> rankValue = CalculateUtils.rankValue(valueMap, indType); Map<String,Integer> rankValue = CalculateUtils.rankValue(valueMap, indType);
for(Entry<String,Integer> entry : rankValue.entrySet()) { for(Entry<String,Integer> entry : rankValue.entrySet()) {
//根据id获取指标值结果 //根据id获取指标值结果
DriveIndCalResult driveIndCalResult = driveIndCalResultService.findById(entry.getKey()); DriveIndCalResultDef driveIndCalResult = driveIndCalResultService.
findById(Integer.parseInt(entry.getKey()));
if(driveIndCalResult!=null) { if(driveIndCalResult!=null) {
driveIndCalResult.setAverage(average); driveIndCalResult.setAverage(average);
driveIndCalResult.setRank(entry.getValue()); driveIndCalResult.setRank(entry.getValue());
...@@ -107,7 +108,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{ ...@@ -107,7 +108,8 @@ public class DriveIndCalculateRegionActor extends AbstractActor{
//根据评分卡算指标分数 //根据评分卡算指标分数
for(Entry<String,Integer> entry : rankValue.entrySet()) { for(Entry<String,Integer> entry : rankValue.entrySet()) {
//根据id获取指标值结果 //根据id获取指标值结果
DriveIndCalResult driveIndCalResult = driveIndCalResultService.findById(entry.getKey()); DriveIndCalResultDef driveIndCalResult = driveIndCalResultService.
findById(Integer.parseInt(entry.getKey()));
if(driveIndCalResult!=null) { if(driveIndCalResult!=null) {
//计算分数 //计算分数
Map<String,String> scoreMap = indScorecardService.calculateIndiScore( Map<String,String> scoreMap = indScorecardService.calculateIndiScore(
......
...@@ -8,19 +8,19 @@ public class DriveIndAverageAndRankMsg implements Serializable{ ...@@ -8,19 +8,19 @@ public class DriveIndAverageAndRankMsg implements Serializable{
*/ */
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private String id;//mongodb id private Integer id;//id
private String compareId; private String compareId;
private String driveIndId; private String driveIndId;
private String compareObj; private String compareObj;
private int date; private Integer date;
private String driveIndValue; private String driveIndValue;
private String unit; private String unit;
private String indType; private String indType;
private String markType; private String markType;
private String indFormula; private String indFormula;
public DriveIndAverageAndRankMsg(String id,String compareId,String driveIndId,String compareObj, public DriveIndAverageAndRankMsg(Integer id,String compareId,String driveIndId,String compareObj,
int date,String driveIndValue,String unit,String indType,String markType,String indFormula) { Integer date,String driveIndValue,String unit,String indType,String markType,String indFormula) {
this.id = id; this.id = id;
this.compareId = compareId; this.compareId = compareId;
this.driveIndId = driveIndId; this.driveIndId = driveIndId;
...@@ -57,11 +57,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{ ...@@ -57,11 +57,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{
this.compareObj = compareObj; this.compareObj = compareObj;
} }
public int getDate() { public Integer getDate() {
return date; return date;
} }
public void setDate(int date) { public void setDate(Integer date) {
this.date = date; this.date = date;
} }
...@@ -81,11 +81,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{ ...@@ -81,11 +81,11 @@ public class DriveIndAverageAndRankMsg implements Serializable{
this.unit = unit; this.unit = unit;
} }
public String getId() { public Integer getId() {
return id; return id;
} }
public void setId(String id) { public void setId(Integer id) {
this.id = id; this.id = id;
} }
......
package com.keymobile.indicators.model.entity;
import java.io.Serializable;
import java.util.Date;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import com.keymobile.indicators.utils.DateUtils;
import lombok.Data;
/**
*author:zhangkb time:2020-4-27 desc:考核指标计算结果表
*/
@Data
@Document(collection="drive_ind_cal_result")
public class DriveIndCalResult implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
private String id;
private String compareId;
private String indId;
private String compareObj;
private int date;
private String value;
private String unit;
private String type;//0:季度 1:年度
private String isRight;//表示考核指标的值是否计算正常得到的 0:计算有误 1:计算正常
private String lastUpdateTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
private String lastUpdater;
private String average;//组内平均数
private int rank;//同组排名
private String score;//指标评分分数
private String improveScore;//改善提升得分
private String actualAverage;//实际平均数:用于省对市的操作,如果有全省的基础项数据,直接拿全省的基础项数据算考核指标做为其实际平均值
public DriveIndCalResult(String compareId,String indId,String compareObj,int date,String value,
String unit,String type,String isRight,String lastUpdater) {
this.compareId = compareId;
this.indId = indId;
this.compareObj = compareObj;
this.date = date;
this.value = value;
this.unit = unit;
this.type = type;
this.isRight = isRight;
this.lastUpdater = lastUpdater;
}
}
...@@ -15,4 +15,39 @@ public interface DriveIndCalResultDefMapper extends BaseMapper<DriveIndCalResult ...@@ -15,4 +15,39 @@ public interface DriveIndCalResultDefMapper extends BaseMapper<DriveIndCalResult
public List<DriveIndCalResultDef> findByIndId(@Param("indId") String indId); public List<DriveIndCalResultDef> findByIndId(@Param("indId") String indId);
public List<DriveIndCalResultDef> findByIndIdAndDateIn(Map<String,Object> param); public List<DriveIndCalResultDef> findByIndIdAndDateIn(Map<String,Object> param);
public List<DriveIndCalResultDef> findByIndIdAndCompareObj(@Param("indId") String indId,
@Param("compareObj") String compareObj);
public DriveIndCalResultDef findByIndIdAndDateAndCompareObj(@Param("indId") String indId,
@Param("date") int date,@Param("compareObj") String compareObj);
public List<DriveIndCalResultDef> findByIndIdAndDate(@Param("indId") String indId,
@Param("date") int date);
public List<DriveIndCalResultDef> findByIndIdAndDateAndActualAverageIsNotNull(
@Param("indId") String indId,@Param("date") int date);
public List<DriveIndCalResultDef> findByIndIdAndDateAndSort(@Param("indId") String indId,
@Param("date") int date);
public List<DriveIndCalResultDef> findByIndIdAndDateAndSortAndActualAverageIsNotNull(
@Param("indId") String indId,@Param("date") int date);
public List<DriveIndCalResultDef> findByIndIdAndDateAndCompareIdAndSort(@Param("indId") String indId,
@Param("date") int date,@Param("compareId") String compareId);
public List<DriveIndCalResultDef> findByIndIdAndDateAndCompareId(@Param("indId") String indId,
@Param("date") int date,@Param("compareId") String compareId);
public List<DriveIndCalResultDef> findByCompareObjAndDate(@Param("compareObj") String compareObj,
@Param("date") int date);
public List<DriveIndCalResultDef> findByCompareObjAndDateAndIndIdIn(Map<String,Object> param);
public DriveIndCalResultDef findByCompareIdAndCompareObjAndIndIdAndDate(
@Param("compareId") String compareId,@Param("compareObj") String compareObj,
@Param("indId") String indId,@Param("date") int date);
public List<DriveIndCalResultDef> findByIndIdAndDateAndCompareObjIn(Map<String,Object> param);
} }
package com.keymobile.indicators.persistence.hyindicators;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.repository.MongoRepository;
import com.keymobile.indicators.model.entity.DriveIndCalResult;
public interface DriveIndCalResultRepository extends MongoRepository<DriveIndCalResult,String>{
public List<DriveIndCalResult> findByIndId(String indId);
public List<DriveIndCalResult> findByIndIdAndDateIn(String indId,List<Integer> dates);
public List<DriveIndCalResult> findByIndIdAndCompareObj(String indId,String compareObj);
public Optional<DriveIndCalResult> findByIndIdAndDateAndCompareObj(String indId,int date,String compareObj);
public List<DriveIndCalResult> findByIndIdAndDate(String indId,int date);
public List<DriveIndCalResult> findByIndIdAndDateAndActualAverageIsNotNull(String indId,int date);
public List<DriveIndCalResult> findByIndIdAndDate(String indId,int date,Sort sort);
public List<DriveIndCalResult> findByIndIdAndDateAndActualAverageIsNotNull(String indId,int date,Sort sort);
public List<DriveIndCalResult> findByIndIdAndDateAndCompareId(String indId,int date,String compareId,Sort sort);
public List<DriveIndCalResult> findByIndIdAndDateAndCompareId(String indId,int date,String compareId);
public List<DriveIndCalResult> findByCompareObjAndDate(String compareObj,int date);
public List<DriveIndCalResult> findByCompareObjAndDateAndIndIdIn(String compareObj,int date,List<String> indIds);
public Optional<DriveIndCalResult> findByCompareIdAndCompareObjAndIndIdAndDate(String compareId,String compareObj,String indId,int date);
public List<DriveIndCalResult> findByIndIdAndDateAndCompareObjIn(String indId,int date,List<String> compareObjs);
}
package com.keymobile.indicators.service.hytobacco;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper;
@Service
public class DriveIndCalResultDefService {
@Autowired
private DriveIndCalResultDefMapper driveIndCalResultDefMapper;
public int saveOrUpdate(DriveIndCalResultDef driveIndCalResultDef) {
return driveIndCalResultDefMapper.insert(driveIndCalResultDef);
}
public DriveIndCalResultDef findById(Integer id) {
DriveIndCalResultDef driveCalResultDef = new DriveIndCalResultDef();
driveCalResultDef.setId(id);
return driveIndCalResultDefMapper.selectOne(driveCalResultDef);
}
// @Autowired
// private DriveIndCalResultService driveIndCalService;
//
// public void moveData() {
// List<DriveIndCalResult> datas = driveIndCalService.findAll();
// for(DriveIndCalResult data : datas) {
// DriveIndCalResultDef def = new DriveIndCalResultDef();
// def.setCompareId(data.getCompareId());
// def.setIndId(data.getIndId());
// def.setCompareObj(data.getCompareObj());
// def.setDate(data.getDate());
// def.setValue(data.getValue());
// def.setUnit(data.getUnit());
// def.setType(data.getType());
// def.setIsRight(data.getIsRight());
// def.setLastUpdateTime(data.getLastUpdateTime());
// def.setLastUpdater(data.getLastUpdater());
// def.setAverage(data.getAverage());
// def.setRank(data.getRank());
// def.setScore(data.getScore());
// def.setImproveScore(data.getImproveScore());
// def.setActualAverage(data.getActualAverage());
// driveIndCalResultDefMapper.insert(def);
// }
// }
}
package com.keymobile.indicators.service.hytobacco; package com.keymobile.indicators.service.hytobacco;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.HashMap;
import java.util.Optional; import java.util.Map;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -11,8 +11,8 @@ import org.springframework.stereotype.Service; ...@@ -11,8 +11,8 @@ import org.springframework.stereotype.Service;
import com.keymobile.indicators.akka.actor.specific.DriveIndCompareObjActor; import com.keymobile.indicators.akka.actor.specific.DriveIndCompareObjActor;
import com.keymobile.indicators.akka.message.specific.DriveIndCompareObjMsg; import com.keymobile.indicators.akka.message.specific.DriveIndCompareObjMsg;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.persistence.hyindicators.DriveIndCalResultRepository; import com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper;
import akka.actor.ActorRef; import akka.actor.ActorRef;
import akka.actor.ActorSystem; import akka.actor.ActorSystem;
...@@ -23,41 +23,25 @@ public class DriveIndCalResultService { ...@@ -23,41 +23,25 @@ public class DriveIndCalResultService {
private Logger logger = LoggerFactory.getLogger(DriveIndCalResultService.class); private Logger logger = LoggerFactory.getLogger(DriveIndCalResultService.class);
@Autowired @Autowired
private DriveIndCalResultRepository driveIndCalResultRepo; private DriveIndCalResultDefMapper driveIndCalResultDefMapper;
public DriveIndCalResult saveOrUpdate(DriveIndCalResult driveIndCalResult) { public int saveOrUpdate(DriveIndCalResultDef driveIndCalResult) {
return driveIndCalResultRepo.save(driveIndCalResult); return driveIndCalResultDefMapper.insert(driveIndCalResult);
} }
public DriveIndCalResult findById(String id) { public DriveIndCalResultDef findById(Integer id) {
Optional<DriveIndCalResult> resultOp = driveIndCalResultRepo.findById(id); DriveIndCalResultDef driveCalResultDef = new DriveIndCalResultDef();
if(resultOp.isPresent()) { driveCalResultDef.setId(id);
return resultOp.get(); return driveIndCalResultDefMapper.selectOne(driveCalResultDef);
}
return null;
} }
public List<DriveIndCalResult> findAll(){ public DriveIndCalResultDef findCompareObjInfo(String driveIndId,int date,String compareObj) {
return driveIndCalResultRepo.findAll(); return driveIndCalResultDefMapper.findByIndIdAndDateAndCompareObj(driveIndId,date,compareObj);
} }
public DriveIndCalResult findCompareObjInfo(String driveIndId,int date,String compareObj) { public DriveIndCalResultDef findCalResultDataIsExist(String compareId,String compareObj,
Optional<DriveIndCalResult> resultOp = driveIndCalResultRepo.findByIndIdAndDateAndCompareObj(
driveIndId, date, compareObj);
if(resultOp.isPresent()) {
return resultOp.get();
}
return null;
}
public DriveIndCalResult findCalResultDataIsExist(String compareId,String compareObj,
String indId,int date) { String indId,int date) {
Optional<DriveIndCalResult> resultOp = driveIndCalResultRepo. return driveIndCalResultDefMapper.findByCompareIdAndCompareObjAndIndIdAndDate(compareId, compareObj, indId, date);
findByCompareIdAndCompareObjAndIndIdAndDate(compareId, compareObj, indId, date);
if(resultOp.isPresent()) {
return resultOp.get();
}
return null;
} }
public void calculateComp(String compareId,String compareObjsString,String driveIndIdsString, public void calculateComp(String compareId,String compareObjsString,String driveIndIdsString,
......
...@@ -14,17 +14,16 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -14,17 +14,16 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef; import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.model.entity.scorecard.ImproveScoreDef; import com.keymobile.indicators.model.entity.scorecard.ImproveScoreDef;
import com.keymobile.indicators.model.entity.scorecard.IndScorecard; import com.keymobile.indicators.model.entity.scorecard.IndScorecard;
import com.keymobile.indicators.model.entity.scorecard.RankScoreDef; import com.keymobile.indicators.model.entity.scorecard.RankScoreDef;
import com.keymobile.indicators.persistence.hyindicators.DriveIndCalResultRepository; import com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper;
import com.keymobile.indicators.persistence.hyindicators.IndScorecardRepository; import com.keymobile.indicators.persistence.hyindicators.IndScorecardRepository;
import com.keymobile.indicators.utils.CalculateUtils; import com.keymobile.indicators.utils.CalculateUtils;
...@@ -35,9 +34,9 @@ public class IndScorecardService { ...@@ -35,9 +34,9 @@ public class IndScorecardService {
@Autowired @Autowired
private IndScorecardRepository indScorecardRepo; private IndScorecardRepository indScorecardRepo;
@Autowired @Autowired
private DriveIndCalResultRepository driveIndResultRepo;
@Autowired
private DriveIndDefService driveIndDefService; private DriveIndDefService driveIndDefService;
@Autowired
private DriveIndCalResultDefMapper driveIndCalResultDefMapper;
//id不为空为修改,为空为新增 //id不为空为修改,为空为新增
public String saveOrUpdate(IndScorecard indScorecard,String catalogId, public String saveOrUpdate(IndScorecard indScorecard,String catalogId,
...@@ -90,14 +89,13 @@ public class IndScorecardService { ...@@ -90,14 +89,13 @@ public class IndScorecardService {
String acsType = driveIndDef.getIndType(); String acsType = driveIndDef.getIndType();
String unit = driveIndDef.getIndUnit(); String unit = driveIndDef.getIndUnit();
List<DriveIndCalResult> currentDriveResult = driveIndResultRepo List<DriveIndCalResultDef> currentDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareId(indId, date,compareId, .findByIndIdAndDateAndCompareIdAndSort(indId, date,compareId);
new Sort(Sort.Direction.ASC, "rank"));
if(!currentDriveResult.isEmpty()) { if(!currentDriveResult.isEmpty()) {
//过滤考核指标结果集无效值 //过滤考核指标结果集无效值
Iterator<DriveIndCalResult> it=currentDriveResult.iterator(); Iterator<DriveIndCalResultDef> it=currentDriveResult.iterator();
while(it.hasNext()){ while(it.hasNext()){
DriveIndCalResult driveCalResult = it.next(); DriveIndCalResultDef driveCalResult = it.next();
if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue()) if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue())
||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){ ||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){
it.remove(); it.remove();
...@@ -105,18 +103,18 @@ public class IndScorecardService { ...@@ -105,18 +103,18 @@ public class IndScorecardService {
} }
int currentDriveResultSize = currentDriveResult.size(); int currentDriveResultSize = currentDriveResult.size();
//根据indId,date,compareObj获取考核结果 //根据indId,date,compareObj获取考核结果
Optional<DriveIndCalResult> currentCompareObjResult = driveIndResultRepo DriveIndCalResultDef currentCompareObjResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, date, compareObj); .findByIndIdAndDateAndCompareObj(indId, date, compareObj);
if(currentCompareObjResult.isPresent()) { if(currentCompareObjResult!=null) {
String average = currentCompareObjResult.get().getAverage(); String average = currentCompareObjResult.getAverage();
//如果实际平均值存在 //如果实际平均值存在
if(currentCompareObjResult.get().getActualAverage()!=null) { if(currentCompareObjResult.getActualAverage()!=null) {
if(!"0.0".equals(currentCompareObjResult.get().getActualAverage())) { if(!"0.0".equals(currentCompareObjResult.getActualAverage())) {
average = currentCompareObjResult.get().getActualAverage(); average = currentCompareObjResult.getActualAverage();
} }
} }
String value = currentCompareObjResult.get().getValue(); String value = currentCompareObjResult.getValue();
if(!"NaN".equals(value) && !"0(Error)".equals(value) if(!"NaN".equals(value) && !"0(Error)".equals(value)
&& !"0.0000".equals(value) && !"0".equals(value)) { && !"0.0000".equals(value) && !"0".equals(value)) {
//综合评价 //综合评价
...@@ -138,7 +136,7 @@ public class IndScorecardService { ...@@ -138,7 +136,7 @@ public class IndScorecardService {
} }
} }
int rank = currentCompareObjResult.get().getRank();//获取排位 int rank = currentCompareObjResult.getRank();//获取排位
//加分项 //加分项
if(!scoreCard.getAddScoreItem().isEmpty()) { if(!scoreCard.getAddScoreItem().isEmpty()) {
List<RankScoreDef> addScoreItem = scoreCard.getAddScoreItem(); List<RankScoreDef> addScoreItem = scoreCard.getAddScoreItem();
...@@ -161,7 +159,7 @@ public class IndScorecardService { ...@@ -161,7 +159,7 @@ public class IndScorecardService {
} }
} }
}else {//公式 }else {//公式
int rank = currentCompareObjResult.get().getRank();//获取排位 int rank = currentCompareObjResult.getRank();//获取排位
if(rank==1) {//最佳指标 if(rank==1) {//最佳指标
baseScoreValue = scoreCard.getBestIndScore(); baseScoreValue = scoreCard.getBestIndScore();
}else if(rank==currentDriveResultSize) {//最差指标 }else if(rank==currentDriveResultSize) {//最差指标
...@@ -169,7 +167,7 @@ public class IndScorecardService { ...@@ -169,7 +167,7 @@ public class IndScorecardService {
}else {//其他 }else {//其他
if(StringUtils.isNotBlank(scoreCard.getOtherCalFormula())) { if(StringUtils.isNotBlank(scoreCard.getOtherCalFormula())) {
baseScoreValue = this.getValueFromFormula( baseScoreValue = this.getValueFromFormula(
scoreCard.getOtherCalFormula(), currentCompareObjResult.get(), scoreCard.getOtherCalFormula(), currentCompareObjResult,
currentDriveResult,acsType); currentDriveResult,acsType);
} }
} }
...@@ -179,12 +177,12 @@ public class IndScorecardService { ...@@ -179,12 +177,12 @@ public class IndScorecardService {
//改善提升 //改善提升
if("1".equals(scoreCard.getIsIncluScore())) {//纳入单位得分计算 if("1".equals(scoreCard.getIsIncluScore())) {//纳入单位得分计算
//同期 //同期
Optional<DriveIndCalResult> sameCompareObjResult = driveIndResultRepo DriveIndCalResultDef sameCompareObjResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, (date-100), compareObj); .findByIndIdAndDateAndCompareObj(indId, (date-100), compareObj);
if(sameCompareObjResult.isPresent()) { if(sameCompareObjResult!=null) {
double improveScore = this.calImproveValue(acsType, unit, double improveScore = this.calImproveValue(acsType, unit,
scoreCard.getImproveScoreItem(), currentCompareObjResult.get(), scoreCard.getImproveScoreItem(), currentCompareObjResult,
sameCompareObjResult.get(),compareObjs); sameCompareObjResult,compareObjs);
if(scoreCard.getLimitScore()!=0) { if(scoreCard.getLimitScore()!=0) {
if(improveScore>scoreCard.getLimitScore()) { if(improveScore>scoreCard.getLimitScore()) {
improveScore = scoreCard.getLimitScore(); improveScore = scoreCard.getLimitScore();
...@@ -209,7 +207,7 @@ public class IndScorecardService { ...@@ -209,7 +207,7 @@ public class IndScorecardService {
} }
private double calImproveValue(String acsType,String unit,List<ImproveScoreDef> importScoreDefList, private double calImproveValue(String acsType,String unit,List<ImproveScoreDef> importScoreDefList,
DriveIndCalResult current,DriveIndCalResult same,List<String> compareObjs) { DriveIndCalResultDef current,DriveIndCalResultDef same,List<String> compareObjs) {
double sumValue = 0; double sumValue = 0;
for(ImproveScoreDef scoreDef : importScoreDefList) { for(ImproveScoreDef scoreDef : importScoreDefList) {
// 0:同期排位比 1:单位同期比 // 0:同期排位比 1:单位同期比
...@@ -221,11 +219,11 @@ public class IndScorecardService { ...@@ -221,11 +219,11 @@ public class IndScorecardService {
//考虑同期分组有变的情况,把组内成原同期的指标值拿出来再进行排名 //考虑同期分组有变的情况,把组内成原同期的指标值拿出来再进行排名
Map<String,String> values = new HashMap<>(); Map<String,String> values = new HashMap<>();
for(String compareObj : compareObjs) { for(String compareObj : compareObjs) {
Optional<DriveIndCalResult> sameCompareObjResult = driveIndResultRepo DriveIndCalResultDef sameCompareObjResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(current.getIndId(), .findByIndIdAndDateAndCompareObj(current.getIndId(),
(current.getDate()-100), compareObj); (current.getDate()-100), compareObj);
if(sameCompareObjResult.isPresent()) { if(sameCompareObjResult!=null) {
values.put(compareObj, sameCompareObjResult.get().getValue()); values.put(compareObj, sameCompareObjResult.getValue());
}else { }else {
values.put(compareObj, "0"); values.put(compareObj, "0");
} }
...@@ -286,8 +284,8 @@ public class IndScorecardService { ...@@ -286,8 +284,8 @@ public class IndScorecardService {
return sumValue; return sumValue;
} }
private double getValueFromFormula(String formula,DriveIndCalResult resultObject, private double getValueFromFormula(String formula,DriveIndCalResultDef resultObject,
List<DriveIndCalResult> currentDriveResult,String acsType) { List<DriveIndCalResultDef> currentDriveResult,String acsType) {
double value = 0; double value = 0;
Map<String, Object> env = Maps.newHashMap(); Map<String, Object> env = Maps.newHashMap();
//解析X,MIN,MAX //解析X,MIN,MAX
......
package com.keymobile.indicators.service.hytobacco;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.keymobile.indicators.model.entity.indicators.IndicatorsData;
import com.keymobile.indicators.model.mapper.indmapper.IndicatorsDataMapper;
@Service
public class IndiDataDefService {
@Autowired
private IndicatorsDataMapper indiDataDefMapper;
@Autowired
private BaseIndDataService baseIndDataService;
public void moveData() {
List<IndicatorsData> datas = baseIndDataService.getAllIndData();
for(IndicatorsData record : datas) {
indiDataDefMapper.insert(record);
}
}
}
...@@ -10,7 +10,6 @@ import java.util.Iterator; ...@@ -10,7 +10,6 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import java.util.Optional;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CellStyle;
...@@ -22,28 +21,27 @@ import org.slf4j.Logger; ...@@ -22,28 +21,27 @@ 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.data.domain.Sort;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.keymobile.indicators.model.entity.DimValue; import com.keymobile.indicators.model.entity.DimValue;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef; import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.model.entity.indicators.IndicatorsData; import com.keymobile.indicators.model.entity.indicators.IndicatorsData;
import com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper;
import com.keymobile.indicators.model.mapper.indmapper.IndicatorsDataMapper; import com.keymobile.indicators.model.mapper.indmapper.IndicatorsDataMapper;
import com.keymobile.indicators.persistence.hyindicators.DriveIndCalResultRepository;
import com.keymobile.indicators.utils.CalculateUtils; import com.keymobile.indicators.utils.CalculateUtils;
@Service @Service
public class IndicatorsValueService { public class IndicatorsValueService {
private Logger logger = LoggerFactory.getLogger(IndicatorsValueService.class); private Logger logger = LoggerFactory.getLogger(IndicatorsValueService.class);
@Autowired
private DriveIndCalResultRepository driveIndResultRepo;
@Autowired @Autowired
private DriveIndDefService driveIndDefService; private DriveIndDefService driveIndDefService;
@Autowired @Autowired
private IndicatorsDataMapper indicatorsDataMapper; private IndicatorsDataMapper indicatorsDataMapper;
@Autowired
private DriveIndCalResultDefMapper driveIndCalResultDefMapper;
@Value("${mongodb.database}") @Value("${mongodb.database}")
private String database; private String database;
...@@ -79,12 +77,12 @@ public class IndicatorsValueService { ...@@ -79,12 +77,12 @@ public class IndicatorsValueService {
List<String> improveValue = new ArrayList<>(); List<String> improveValue = new ArrayList<>();
for(String indId : indIds) { for(String indId : indIds) {
//获取本期值 //获取本期值
Optional<DriveIndCalResult> driveIndCalResult = driveIndResultRepo DriveIndCalResultDef driveIndCalResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, date, compareObj); .findByIndIdAndDateAndCompareObj(indId, date, compareObj);
if(driveIndCalResult.isPresent()) { if(driveIndCalResult!=null) {
scoreValue.add(driveIndCalResult.get().getScore()); scoreValue.add(driveIndCalResult.getScore());
if(!"No".equals(driveIndCalResult.get().getImproveScore())) {//改善提升如果是纳入单位得分计算的 if(!"No".equals(driveIndCalResult.getImproveScore())) {//改善提升如果是纳入单位得分计算的
improveValue.add(driveIndCalResult.get().getImproveScore()); improveValue.add(driveIndCalResult.getImproveScore());
} }
}else { }else {
scoreValue.add("0"); scoreValue.add("0");
...@@ -185,23 +183,23 @@ public class IndicatorsValueService { ...@@ -185,23 +183,23 @@ public class IndicatorsValueService {
for(String compareObj : compareObjs) { for(String compareObj : compareObjs) {
Map<String,String> dataMap = new HashMap<>(); Map<String,String> dataMap = new HashMap<>();
//获取本期值 //获取本期值
Optional<DriveIndCalResult> driveIndCalResult = driveIndResultRepo DriveIndCalResultDef driveIndCalResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, date, compareObj); .findByIndIdAndDateAndCompareObj(indId, date, compareObj);
//获取同期值 //获取同期值
Optional<DriveIndCalResult> sameDriveIndCalResult = driveIndResultRepo DriveIndCalResultDef sameDriveIndCalResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, (date-100), compareObj); .findByIndIdAndDateAndCompareObj(indId, (date-100), compareObj);
if(sameDriveIndCalResult.isPresent()) {//存在 if(sameDriveIndCalResult!=null) {//存在
valueMap.put(compareObj, sameDriveIndCalResult.get().getValue()); valueMap.put(compareObj, sameDriveIndCalResult.getValue());
}else { }else {
valueMap.put(compareObj, "0"); valueMap.put(compareObj, "0");
} }
dataMap.put("currentValue",driveIndCalResult.get().getValue()); dataMap.put("currentValue",driveIndCalResult.getValue());
dataMap.put("currentRank", String.valueOf(driveIndCalResult.get().getRank())); dataMap.put("currentRank", String.valueOf(driveIndCalResult.getRank()));
dataMap.put("sameValue", sameDriveIndCalResult.get().getValue()); dataMap.put("sameValue", sameDriveIndCalResult.getValue());
String calGowth = CalculateUtils.calGowth(deiveIndDef.getIndUnit(), String calGowth = CalculateUtils.calGowth(deiveIndDef.getIndUnit(),
driveIndCalResult.get().getValue(), sameDriveIndCalResult.get().getValue(), "1"); driveIndCalResult.getValue(), sameDriveIndCalResult.getValue(), "1");
dataMap.put("calGowth", calGowth); dataMap.put("calGowth", calGowth);
gowthMap.put(compareObj, calGowth); gowthMap.put(compareObj, calGowth);
...@@ -332,13 +330,13 @@ public class IndicatorsValueService { ...@@ -332,13 +330,13 @@ public class IndicatorsValueService {
rowMap.put("SC0041", "31:23");rowMap.put("SC0042", "31:25");rowMap.put("SC0043", "31:27"); rowMap.put("SC0041", "31:23");rowMap.put("SC0042", "31:25");rowMap.put("SC0043", "31:27");
for(String indId : indIds) { for(String indId : indIds) {
List<DriveIndCalResult> currentDriveResult = driveIndResultRepo List<DriveIndCalResultDef> currentDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDate(indId, date,new Sort(Sort.Direction.ASC, "rank")); .findByIndIdAndDateAndSort(indId, date);
String rowAndCellInfo = rowMap.get(indId); String rowAndCellInfo = rowMap.get(indId);
String[] rowAndCell = rowAndCellInfo.split(":"); String[] rowAndCell = rowAndCellInfo.split(":");
int rowNum = Integer.valueOf(rowAndCell[0])+1; int rowNum = Integer.valueOf(rowAndCell[0])+1;
int cellNum = Integer.valueOf(rowAndCell[1]); int cellNum = Integer.valueOf(rowAndCell[1]);
for(DriveIndCalResult result : currentDriveResult) { for(DriveIndCalResultDef result : currentDriveResult) {
XSSFRow row = excelSheet.getRow(rowNum); XSSFRow row = excelSheet.getRow(rowNum);
row.getCell(cellNum).setCellValue(result.getCompareObj()); row.getCell(cellNum).setCellValue(result.getCompareObj());
row.getCell(cellNum+1).setCellValue(result.getValue()+"("+result.getRank()+")"); row.getCell(cellNum+1).setCellValue(result.getValue()+"("+result.getRank()+")");
...@@ -383,12 +381,12 @@ public class IndicatorsValueService { ...@@ -383,12 +381,12 @@ public class IndicatorsValueService {
String sameValue = ""; String sameValue = "";
String rate = ""; String rate = "";
//本期 //本期
List<DriveIndCalResult> currentDriveResult = driveIndResultRepo List<DriveIndCalResultDef> currentDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndActualAverageIsNotNull(indId, 201912); .findByIndIdAndDateAndActualAverageIsNotNull(indId, 201912);
if(!currentDriveResult.isEmpty()) { if(!currentDriveResult.isEmpty()) {
if("1".equals(type)) { if("1".equals(type)) {
List<String> values = new ArrayList<>(); List<String> values = new ArrayList<>();
for(DriveIndCalResult result : currentDriveResult) { for(DriveIndCalResultDef result : currentDriveResult) {
values.add(result.getValue()); values.add(result.getValue());
} }
currentValue = CalculateUtils.averageValue(values,0); currentValue = CalculateUtils.averageValue(values,0);
...@@ -400,12 +398,12 @@ public class IndicatorsValueService { ...@@ -400,12 +398,12 @@ public class IndicatorsValueService {
} }
} }
//同期 //同期
List<DriveIndCalResult> sameDriveResult = driveIndResultRepo List<DriveIndCalResultDef> sameDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndActualAverageIsNotNull(indId, 201812); .findByIndIdAndDateAndActualAverageIsNotNull(indId, 201812);
if(!sameDriveResult.isEmpty()) { if(!sameDriveResult.isEmpty()) {
if("1".equals(type)) { if("1".equals(type)) {
List<String> values = new ArrayList<>(); List<String> values = new ArrayList<>();
for(DriveIndCalResult result : sameDriveResult) { for(DriveIndCalResultDef result : sameDriveResult) {
values.add(result.getValue()); values.add(result.getValue());
} }
sameValue = CalculateUtils.averageValue(values,0); sameValue = CalculateUtils.averageValue(values,0);
...@@ -477,8 +475,12 @@ public class IndicatorsValueService { ...@@ -477,8 +475,12 @@ public class IndicatorsValueService {
} }
//根据考核指标id获取本期和同期的指标值 //根据考核指标id获取本期和同期的指标值
for(String indId : indIds) { for(String indId : indIds) {
List<DriveIndCalResult> driveResult = driveIndResultRepo.findByIndIdAndDateIn(indId, dateList); Map<String,Object> paramMap = new HashMap<>();
for(DriveIndCalResult result : driveResult) { paramMap.put("indId", indId);
paramMap.put("dates", dateList);
List<DriveIndCalResultDef> driveResult = driveIndCalResultDefMapper.
findByIndIdAndDateIn(paramMap);
for(DriveIndCalResultDef result : driveResult) {
String region = result.getCompareObj(); String region = result.getCompareObj();
if(rowMap.get(region)!=null) { if(rowMap.get(region)!=null) {
XSSFRow row = excelSheet.getRow(rowMap.get(region)); XSSFRow row = excelSheet.getRow(rowMap.get(region));
...@@ -525,8 +527,8 @@ public class IndicatorsValueService { ...@@ -525,8 +527,8 @@ public class IndicatorsValueService {
} }
//根据考核指标id获取本期和同期的指标值 //根据考核指标id获取本期和同期的指标值
for(String indId : indIds) { for(String indId : indIds) {
List<DriveIndCalResult> driveResult = driveIndResultRepo.findByIndId(indId); List<DriveIndCalResultDef> driveResult = driveIndCalResultDefMapper.findByIndId(indId);
for(DriveIndCalResult result : driveResult) { for(DriveIndCalResultDef result : driveResult) {
String region = result.getCompareObj(); String region = result.getCompareObj();
if(rowMap.get(region)!=null) { if(rowMap.get(region)!=null) {
XSSFRow row = excelSheet.getRow(rowMap.get(region)); XSSFRow row = excelSheet.getRow(rowMap.get(region));
...@@ -544,9 +546,9 @@ public class IndicatorsValueService { ...@@ -544,9 +546,9 @@ public class IndicatorsValueService {
String currentValue = ""; String currentValue = "";
String sameValue = ""; String sameValue = "";
//算增幅 //算增幅
List<DriveIndCalResult> gowthValues = driveIndResultRepo List<DriveIndCalResultDef> gowthValues = driveIndCalResultDefMapper
.findByIndIdAndCompareObj(indId, region); .findByIndIdAndCompareObj(indId, region);
for(DriveIndCalResult gowth : gowthValues) { for(DriveIndCalResultDef gowth : gowthValues) {
if(gowth.getDate()==201912) { if(gowth.getDate()==201912) {
currentValue = gowth.getValue(); currentValue = gowth.getValue();
}else { }else {
...@@ -594,15 +596,15 @@ public class IndicatorsValueService { ...@@ -594,15 +596,15 @@ public class IndicatorsValueService {
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fs); XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fs);
XSSFSheet excelSheet = xssfWorkbook.getSheet("Sheet1"); XSSFSheet excelSheet = xssfWorkbook.getSheet("Sheet1");
for(String indId:indIds) { for(String indId:indIds) {
List<DriveIndCalResult> driveResult = new ArrayList<>(); List<DriveIndCalResultDef> driveResult = new ArrayList<>();
//根据考核指标id和日期获取指标值结果 //根据考核指标id和日期获取指标值结果
if(StringUtils.isNotBlank(compareId)) { if(StringUtils.isNotBlank(compareId)) {
driveResult = driveIndResultRepo.findByIndIdAndDateAndCompareId(indId, date, compareId); driveResult = driveIndCalResultDefMapper.findByIndIdAndDateAndCompareId(indId, date, compareId);
}else { }else {
driveResult = driveIndResultRepo.findByIndIdAndDate(indId, date); driveResult = driveIndCalResultDefMapper.findByIndIdAndDate(indId, date);
} }
int i = 0; int i = 0;
for(DriveIndCalResult result:driveResult) { for(DriveIndCalResultDef result:driveResult) {
int rowNum = rowMap.get(indId); int rowNum = rowMap.get(indId);
XSSFRow xssfRow = excelSheet.getRow(rowNum); XSSFRow xssfRow = excelSheet.getRow(rowNum);
//填全市平均 //填全市平均
...@@ -677,13 +679,13 @@ public class IndicatorsValueService { ...@@ -677,13 +679,13 @@ public class IndicatorsValueService {
Map<String,Integer> result = new HashMap<>(); Map<String,Integer> result = new HashMap<>();
result.put(compareObj, 0); result.put(compareObj, 0);
//获取本期考核指标值结果 //获取本期考核指标值结果
Optional<DriveIndCalResult> currentResult = driveIndResultRepo DriveIndCalResultDef currentResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, date, compareObj); .findByIndIdAndDateAndCompareObj(indId, date, compareObj);
Optional<DriveIndCalResult> sameResult = driveIndResultRepo DriveIndCalResultDef sameResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareObj(indId, (date-100), compareObj); .findByIndIdAndDateAndCompareObj(indId, (date-100), compareObj);
//获取同期考核指标值结果 //获取同期考核指标值结果
if(currentResult.isPresent() && sameResult.isPresent()) { if(currentResult!=null && sameResult!=null) {
result.put(compareObj, (sameResult.get().getRank()-currentResult.get().getRank())); result.put(compareObj, (sameResult.getRank()-currentResult.getRank()));
} }
return result; return result;
} }
...@@ -691,27 +693,25 @@ public class IndicatorsValueService { ...@@ -691,27 +693,25 @@ public class IndicatorsValueService {
private Map<String,Object> getIndicatorInfo(String indId,int date,int orderNum,String type,String compareId){ private Map<String,Object> getIndicatorInfo(String indId,int date,int orderNum,String type,String compareId){
Map<String,Object> result = new HashMap<>(); Map<String,Object> result = new HashMap<>();
//本期考核结果 //本期考核结果
List<DriveIndCalResult> currentDriveResult = new ArrayList<>(); List<DriveIndCalResultDef> currentDriveResult = new ArrayList<>();
if(StringUtils.isNotBlank(compareId)) { if(StringUtils.isNotBlank(compareId)) {
currentDriveResult = driveIndResultRepo currentDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareId(indId, date, compareId, .findByIndIdAndDateAndCompareIdAndSort(indId, date, compareId);
new Sort(Sort.Direction.ASC, "rank"));
}else { }else {
currentDriveResult = driveIndResultRepo currentDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndActualAverageIsNotNull(indId, date, .findByIndIdAndDateAndSortAndActualAverageIsNotNull(indId, date);
new Sort(Sort.Direction.ASC, "rank"));
} }
//去除无效值 //去除无效值
Iterator<DriveIndCalResult> it=currentDriveResult.iterator(); Iterator<DriveIndCalResultDef> it=currentDriveResult.iterator();
while(it.hasNext()){ while(it.hasNext()){
DriveIndCalResult driveCalResult = it.next(); DriveIndCalResultDef driveCalResult = it.next();
if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue()) if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue())
||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){ ||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){
it.remove(); it.remove();
} }
} }
//同期考核结果 //同期考核结果
List<DriveIndCalResult> sameDriveResult = new ArrayList<>(); List<DriveIndCalResultDef> sameDriveResult = new ArrayList<>();
if(StringUtils.isNotBlank(compareId)) { if(StringUtils.isNotBlank(compareId)) {
if("SCC003".equals(compareId)) { if("SCC003".equals(compareId)) {
compareId = "SCC004"; compareId = "SCC004";
...@@ -719,17 +719,16 @@ public class IndicatorsValueService { ...@@ -719,17 +719,16 @@ public class IndicatorsValueService {
if("SCC005".equals(compareId)) { if("SCC005".equals(compareId)) {
compareId = "SCC006"; compareId = "SCC006";
} }
sameDriveResult = driveIndResultRepo sameDriveResult = driveIndCalResultDefMapper
.findByIndIdAndDateAndCompareId(indId, (date-100), .findByIndIdAndDateAndCompareIdAndSort(indId, (date-100),compareId);
compareId,new Sort(Sort.Direction.ASC, "rank"));
}else { }else {
sameDriveResult = driveIndResultRepo.findByIndIdAndDateAndActualAverageIsNotNull(indId, date, sameDriveResult = driveIndCalResultDefMapper.findByIndIdAndDateAndSortAndActualAverageIsNotNull(
new Sort(Sort.Direction.ASC, "rank")); indId, date);
} }
//去除无效值 //去除无效值
Iterator<DriveIndCalResult> sit=sameDriveResult.iterator(); Iterator<DriveIndCalResultDef> sit=sameDriveResult.iterator();
while(sit.hasNext()){ while(sit.hasNext()){
DriveIndCalResult driveCalResult = sit.next(); DriveIndCalResultDef driveCalResult = sit.next();
if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue()) if("NaN".equals(driveCalResult.getValue())||"0(Error)".equals(driveCalResult.getValue())
||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){ ||"0.0000".equals(driveCalResult.getValue())||"0".equals(driveCalResult.getValue())){
sit.remove(); sit.remove();
...@@ -744,7 +743,7 @@ public class IndicatorsValueService { ...@@ -744,7 +743,7 @@ public class IndicatorsValueService {
result.put("bestUnitsValue", currentDriveResult.get(0).getValue()); result.put("bestUnitsValue", currentDriveResult.get(0).getValue());
int currentMoreAverageNum = 0; int currentMoreAverageNum = 0;
int sameMoreAverageNum = 0; int sameMoreAverageNum = 0;
for(DriveIndCalResult driveCalResult:currentDriveResult) { for(DriveIndCalResultDef driveCalResult:currentDriveResult) {
if(!"0.0".equals(driveCalResult.getActualAverage())) { if(!"0.0".equals(driveCalResult.getActualAverage())) {
if(Double.valueOf(driveCalResult.getValue())>Double.valueOf(driveCalResult.getActualAverage())) { if(Double.valueOf(driveCalResult.getValue())>Double.valueOf(driveCalResult.getActualAverage())) {
currentMoreAverageNum +=1; currentMoreAverageNum +=1;
...@@ -755,7 +754,7 @@ public class IndicatorsValueService { ...@@ -755,7 +754,7 @@ public class IndicatorsValueService {
} }
} }
} }
for(DriveIndCalResult driveCalResult:sameDriveResult) { for(DriveIndCalResultDef driveCalResult:sameDriveResult) {
if(!"0.0".equals(driveCalResult.getActualAverage())) { if(!"0.0".equals(driveCalResult.getActualAverage())) {
if(Double.valueOf(driveCalResult.getValue())>Double.valueOf(driveCalResult.getActualAverage())) { if(Double.valueOf(driveCalResult.getValue())>Double.valueOf(driveCalResult.getActualAverage())) {
sameMoreAverageNum +=1; sameMoreAverageNum +=1;
...@@ -771,7 +770,7 @@ public class IndicatorsValueService { ...@@ -771,7 +770,7 @@ public class IndicatorsValueService {
String topUnits = ""; String topUnits = "";
String bottomUnits = ""; String bottomUnits = "";
if(currentDriveResult.size()<orderNum) { if(currentDriveResult.size()<orderNum) {
for(DriveIndCalResult driveCalResult:currentDriveResult) { for(DriveIndCalResultDef driveCalResult:currentDriveResult) {
topUnits += driveCalResult.getCompareObj()+";"; topUnits += driveCalResult.getCompareObj()+";";
} }
for(int i=(currentDriveResult.size()-1);i>=0;i--) { for(int i=(currentDriveResult.size()-1);i>=0;i--) {
......
...@@ -18,12 +18,12 @@ import org.springframework.data.domain.Pageable; ...@@ -18,12 +18,12 @@ import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.googlecode.aviator.AviatorEvaluator; import com.googlecode.aviator.AviatorEvaluator;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef; import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.model.entity.objscorerule.IndTypeWeight; import com.keymobile.indicators.model.entity.objscorerule.IndTypeWeight;
import com.keymobile.indicators.model.entity.objscorerule.ScoreRule; import com.keymobile.indicators.model.entity.objscorerule.ScoreRule;
import com.keymobile.indicators.model.mapper.indicators.DriveIndDefMapper; import com.keymobile.indicators.model.mapper.indicators.DriveIndDefMapper;
import com.keymobile.indicators.persistence.hyindicators.DriveIndCalResultRepository; import com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper;
import com.keymobile.indicators.persistence.hyindicators.ScoreRuleRepository; import com.keymobile.indicators.persistence.hyindicators.ScoreRuleRepository;
import com.keymobile.indicators.utils.CalculateUtils; import com.keymobile.indicators.utils.CalculateUtils;
...@@ -34,9 +34,9 @@ public class ScoreRuleService { ...@@ -34,9 +34,9 @@ public class ScoreRuleService {
@Autowired @Autowired
private ScoreRuleRepository scoreRuleRepo; private ScoreRuleRepository scoreRuleRepo;
@Autowired @Autowired
private DriveIndCalResultRepository driveIndCalResultRepo;
@Autowired
private DriveIndDefMapper driveIndDefMapper; private DriveIndDefMapper driveIndDefMapper;
@Autowired
private DriveIndCalResultDefMapper driveIndCalResultDefMapper;
private static final Pattern P = Pattern.compile("(\\[[^\\]]*\\])"); private static final Pattern P = Pattern.compile("(\\[[^\\]]*\\])");
...@@ -78,12 +78,16 @@ public class ScoreRuleService { ...@@ -78,12 +78,16 @@ public class ScoreRuleService {
result.put("improveValue", "0.0"); result.put("improveValue", "0.0");
result.put("date",String.valueOf(date)); result.put("date",String.valueOf(date));
//根据日期,对标对象和考核的指标获取考核指标结果详情 //根据日期,对标对象和考核的指标获取考核指标结果详情
List<DriveIndCalResult> calResults = driveIndCalResultRepo. Map<String,Object> paremMap = new HashMap<>();
findByCompareObjAndDateAndIndIdIn(compareObj, date, indIds); paremMap.put("compareObj", compareObj);
paremMap.put("date", date);
paremMap.put("indIds", indIds);
List<DriveIndCalResultDef> calResults = driveIndCalResultDefMapper.
findByCompareObjAndDateAndIndIdIn(paremMap);
List<String> values = new ArrayList<>(); List<String> values = new ArrayList<>();
List<String> improveValues = new ArrayList<>(); List<String> improveValues = new ArrayList<>();
if(!calResults.isEmpty()) { if(!calResults.isEmpty()) {
for(DriveIndCalResult calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
//根据考核指标id获取考核指标 //根据考核指标id获取考核指标
DriveIndDef driveIndDef = driveIndDefMapper.selectByPrimaryKey(calResult.getIndId()); DriveIndDef driveIndDef = driveIndDefMapper.selectByPrimaryKey(calResult.getIndId());
if(driveIndDef!=null) { if(driveIndDef!=null) {
...@@ -146,36 +150,36 @@ public class ScoreRuleService { ...@@ -146,36 +150,36 @@ public class ScoreRuleService {
} }
for(String indId : indIdList) { for(String indId : indIdList) {
//根据日期,对标对象和考核的指标获取考核指标结果详情 //根据日期,对标对象和考核的指标获取考核指标结果详情
Optional<DriveIndCalResult> calresultOp = driveIndCalResultRepo. DriveIndCalResultDef calresultOp = driveIndCalResultDefMapper.
findByIndIdAndDateAndCompareObj(indId, date, compareObj); findByIndIdAndDateAndCompareObj(indId, date, compareObj);
if(calresultOp.isPresent()) { if(calresultOp!=null) {
//得分类型:0 指标值直接参与计算 //得分类型:0 指标值直接参与计算
if("0".equals(scoreRule.getScoreType())) { if("0".equals(scoreRule.getScoreType())) {
if(!"NaN".equals(calresultOp.get().getValue()) && if(!"NaN".equals(calresultOp.getValue()) &&
!"0(Error)".equals(calresultOp.get().getValue())) { !"0(Error)".equals(calresultOp.getValue())) {
calFormula = calFormula.replace("["+indId+"]", calresultOp.get().getValue()); calFormula = calFormula.replace("["+indId+"]", calresultOp.getValue());
}else { }else {
calFormula = calFormula.replace("["+indId+"]", "0.0"); calFormula = calFormula.replace("["+indId+"]", "0.0");
} }
}else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算) }else if("1".equals(scoreRule.getScoreType())) {//1 指标得分分数参与计算(综合评分和改善提升分开算)
calFormula = calFormula.replace("["+indId+"]", calresultOp.get().getValue()); calFormula = calFormula.replace("["+indId+"]", calresultOp.getValue());
if(!"No".equals(calresultOp.get().getImproveScore()) && if(!"No".equals(calresultOp.getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.get().getImproveScore())) { StringUtils.isNotBlank(calresultOp.getImproveScore())) {
improveCalFormula = improveCalFormula.replace("["+indId+"]", improveCalFormula = improveCalFormula.replace("["+indId+"]",
calresultOp.get().getImproveScore()); calresultOp.getImproveScore());
}else { }else {
improveCalFormula = improveCalFormula.replace("["+indId+"]","0.0"); improveCalFormula = improveCalFormula.replace("["+indId+"]","0.0");
} }
}else {//2指标得分分数参与计算(指标分数=综合+改善) }else {//2指标得分分数参与计算(指标分数=综合+改善)
String score = "0.0"; String score = "0.0";
if(!"No".equals(calresultOp.get().getImproveScore()) && if(!"No".equals(calresultOp.getImproveScore()) &&
StringUtils.isNotBlank(calresultOp.get().getImproveScore())) { StringUtils.isNotBlank(calresultOp.getImproveScore())) {
double indScore = Double.parseDouble(calresultOp.get().getScore()); double indScore = Double.parseDouble(calresultOp.getScore());
double improveScore = Double.parseDouble(calresultOp.get().getImproveScore()); double improveScore = Double.parseDouble(calresultOp.getImproveScore());
double sum = indScore+improveScore; double sum = indScore+improveScore;
score = String.valueOf(sum); score = String.valueOf(sum);
}else { }else {
score = calresultOp.get().getScore(); score = calresultOp.getScore();
} }
calFormula = calFormula.replace("["+indId+"]", score); calFormula = calFormula.replace("["+indId+"]", score);
} }
...@@ -214,7 +218,7 @@ public class ScoreRuleService { ...@@ -214,7 +218,7 @@ public class ScoreRuleService {
result.put("date",String.valueOf(date)); result.put("date",String.valueOf(date));
//根据对标对象,日期查找该对标对象对标的所有指标结果 //根据对标对象,日期查找该对标对象对标的所有指标结果
List<DriveIndCalResult> calResults = driveIndCalResultRepo. List<DriveIndCalResultDef> calResults = driveIndCalResultDefMapper.
findByCompareObjAndDate(compareObj, date); findByCompareObjAndDate(compareObj, date);
double scoreValue = 0.0; double scoreValue = 0.0;
double improveValue = 0.0; double improveValue = 0.0;
...@@ -231,13 +235,13 @@ public class ScoreRuleService { ...@@ -231,13 +235,13 @@ public class ScoreRuleService {
} }
//根据指标分类计算指标平均值 //根据指标分类计算指标平均值
private Map<String,Double> calIndTypeScore(ScoreRule scoreRule,IndTypeWeight indTypeWeight,List<DriveIndCalResult> calResults) { private Map<String,Double> calIndTypeScore(ScoreRule scoreRule,IndTypeWeight indTypeWeight,List<DriveIndCalResultDef> calResults) {
Map<String,Double> result = new HashMap<>(); Map<String,Double> result = new HashMap<>();
result.put("score", 0.0); result.put("score", 0.0);
result.put("improve", 0.0); result.put("improve", 0.0);
List<String> values = new ArrayList<>(); List<String> values = new ArrayList<>();
List<String> improveValues = new ArrayList<>(); List<String> improveValues = new ArrayList<>();
for(DriveIndCalResult calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
String catalogIdPath = indTypeWeight.getCatalogIdPath(); String catalogIdPath = indTypeWeight.getCatalogIdPath();
//根据考核指标id获取考核指标 //根据考核指标id获取考核指标
DriveIndDef driveIndDef = driveIndDefMapper.selectByPrimaryKey(calResult.getIndId()); DriveIndDef driveIndDef = driveIndDefMapper.selectByPrimaryKey(calResult.getIndId());
......
...@@ -14,12 +14,11 @@ import org.springframework.data.domain.PageRequest; ...@@ -14,12 +14,11 @@ import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.keymobile.indicators.model.entity.DriveIndCalResult; import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.model.entity.shortboard.ShortboardDriveIndRel; import com.keymobile.indicators.model.entity.shortboard.ShortboardDriveIndRel;
import com.keymobile.indicators.model.entity.shortboard.ShortboardItem; import com.keymobile.indicators.model.entity.shortboard.ShortboardItem;
import com.keymobile.indicators.model.entity.shortboard.ShortboardRule; import com.keymobile.indicators.model.entity.shortboard.ShortboardRule;
import com.keymobile.indicators.persistence.hyindicators.DriveIndCalResultRepository; import com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper;
import com.keymobile.indicators.persistence.hyindicators.ShortboardDriveIndRelRepository; import com.keymobile.indicators.persistence.hyindicators.ShortboardDriveIndRelRepository;
import com.keymobile.indicators.persistence.hyindicators.ShortboardRuleRepository; import com.keymobile.indicators.persistence.hyindicators.ShortboardRuleRepository;
import com.keymobile.indicators.utils.CalculateUtils; import com.keymobile.indicators.utils.CalculateUtils;
...@@ -33,9 +32,7 @@ public class ShortboardRuleService { ...@@ -33,9 +32,7 @@ public class ShortboardRuleService {
@Autowired @Autowired
private ShortboardDriveIndRelRepository shortboardDriveIndRelRepo; private ShortboardDriveIndRelRepository shortboardDriveIndRelRepo;
@Autowired @Autowired
private DriveIndCalResultRepository driveIndCalResultRepo; private DriveIndCalResultDefMapper driveIndCalResultDefMapper;
@Autowired
private DriveIndDefService driveIndDefService;
public String saveOrUpdate(ShortboardRule shortboardRule,String catalogId, public String saveOrUpdate(ShortboardRule shortboardRule,String catalogId,
String catalogIdPath,String user) { String catalogIdPath,String user) {
...@@ -90,13 +87,17 @@ public class ShortboardRuleService { ...@@ -90,13 +87,17 @@ public class ShortboardRuleService {
} }
//短板筛选规则为均值 //短板筛选规则为均值
private List<DriveIndCalResult> selectAverageShortboard(ShortboardItem shortboardItem, private List<DriveIndCalResultDef> selectAverageShortboard(ShortboardItem shortboardItem,
List<String> compareObjs,String driveId,int date) { List<String> compareObjs,String driveId,int date) {
List<DriveIndCalResult> calResults = driveIndCalResultRepo. Map<String,Object> paramMap = new HashMap<>();
findByIndIdAndDateAndCompareObjIn(driveId, date, compareObjs); paramMap.put("indId", driveId);
List<DriveIndCalResult> filterCalResults = new ArrayList<>();//用于保存符合过滤条件的指标结果 paramMap.put("date", date);
List<DriveIndCalResult> realCalResults = new ArrayList<>();//用于保存符合过滤条件的指标结果 paramMap.put("compareObjs", compareObjs);
for(DriveIndCalResult calResult : calResults) { List<DriveIndCalResultDef> calResults = driveIndCalResultDefMapper.
findByIndIdAndDateAndCompareObjIn(paramMap);
List<DriveIndCalResultDef> filterCalResults = new ArrayList<>();//用于保存符合过滤条件的指标结果
List<DriveIndCalResultDef> realCalResults = new ArrayList<>();//用于保存符合过滤条件的指标结果
for(DriveIndCalResultDef calResult : calResults) {
//判断规则选择是大于还是小于 //判断规则选择是大于还是小于
if("0".equals(shortboardItem.getCalType())) {//大于 if("0".equals(shortboardItem.getCalType())) {//大于
if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue()) if(!"NaN".equals(calResult.getValue()) && !"0(Error)".equals(calResult.getValue())
...@@ -133,7 +134,7 @@ public class ShortboardRuleService { ...@@ -133,7 +134,7 @@ public class ShortboardRuleService {
} }
} }
//分析filterCalResults //分析filterCalResults
for(DriveIndCalResult filterCalResult : filterCalResults) { for(DriveIndCalResultDef filterCalResult : filterCalResults) {
//判断是比较差还是百分比 //判断是比较差还是百分比
if("0".equals(shortboardItem.getAnalysisType())) {//绝对值 if("0".equals(shortboardItem.getAnalysisType())) {//绝对值
//判断有没有实际的平均值 //判断有没有实际的平均值
...@@ -173,20 +174,24 @@ public class ShortboardRuleService { ...@@ -173,20 +174,24 @@ public class ShortboardRuleService {
} }
//短板筛选规则为最大值 //短板筛选规则为最大值
private List<DriveIndCalResult> selectMaxShortboard(ShortboardItem shortboardItem, private List<DriveIndCalResultDef> selectMaxShortboard(ShortboardItem shortboardItem,
List<String> compareObjs,String driveId,int date) throws Exception{ List<String> compareObjs,String driveId,int date) throws Exception{
List<DriveIndCalResult> calResults = driveIndCalResultRepo. Map<String,Object> paramMap = new HashMap<>();
findByIndIdAndDateAndCompareObjIn(driveId, date, compareObjs); paramMap.put("indId", driveId);
List<DriveIndCalResult> realCalResults = new ArrayList<>();//用于保存符合过滤条件的指标结果 paramMap.put("date", date);
paramMap.put("compareObjs", compareObjs);
List<DriveIndCalResultDef> calResults = driveIndCalResultDefMapper.
findByIndIdAndDateAndCompareObjIn(paramMap);
List<DriveIndCalResultDef> realCalResults = new ArrayList<>();//用于保存符合过滤条件的指标结果
//获取排名第一的最大值 //获取排名第一的最大值
String maxValue = null; String maxValue = null;
for(DriveIndCalResult calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
if(calResult.getRank()==1) { if(calResult.getRank()==1) {
maxValue = calResult.getValue(); maxValue = calResult.getValue();
} }
} }
if(maxValue!=null) { if(maxValue!=null) {
for(DriveIndCalResult calResult : calResults) { for(DriveIndCalResultDef calResult : calResults) {
//判断是比较差还是百分比 //判断是比较差还是百分比
if("0".equals(shortboardItem.getAnalysisType())) {//绝对值 if("0".equals(shortboardItem.getAnalysisType())) {//绝对值
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper"> <mapper namespace="com.keymobile.indicators.model.mapper.indmapper.DriveIndCalResultDefMapper">
<select id="findByIndId" parameterType="string" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" > <select id="findByIndId" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select * select *
from drive_ind_cal_result_def from drive_ind_cal_result_def
where ind_id = #{indId} where ind_id = #{indId}
...@@ -17,4 +17,115 @@ ...@@ -17,4 +17,115 @@
#{id} #{id}
</foreach> </foreach>
</select> </select>
<select id="findByIndIdAndCompareObj" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
compare_obj = #{compareObj}
</select>
<select id="findByIndIdAndDateAndCompareObj" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
compare_obj = #{compareObj} and
date = #{date}
</select>
<select id="findByIndIdAndDate" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date}
</select>
<select id="findByIndIdAndDateAndActualAverageIsNotNull" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
actual_average is not null
</select>
<select id="findByIndIdAndDateAndSort" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} order by rank asc
</select>
<select id="findByIndIdAndDateAndSortAndActualAverageIsNotNull" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
actual_average is not null order by rank asc
</select>
<select id="findByIndIdAndDateAndCompareIdAndSort" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
compare_id = #{compareId} order by rank asc
</select>
<select id="findByIndIdAndDateAndCompareId" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
compare_id = #{compareId}
</select>
<select id="findByCompareObjAndDate" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
compare_obj = #{compareObj} and
date = #{date}
</select>
<select id="findByCompareObjAndDateAndIndIdIn" parameterType="map" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
compare_obj = #{compareObj} and
date = #{date} and
ind_id in
<foreach item="id" collection="indIds" open="(" close=")" separator=",">
#{id}
</foreach>
</select>
<select id="findByCompareIdAndCompareObjAndIndIdAndDate" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
compare_id = #{compareId} and
compare_obj = #{compareObj} and
ind_id = #{indId} and
date = #{date}
</select>
<select id="findByIndIdAndDateAndCompareObjIn" parameterType="map" resultType="com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef" >
select *
from drive_ind_cal_result_def
where
ind_id = #{indId} and
date = #{date} and
compare_obj in
<foreach item="id" collection="compareObjs" open="(" close=")" separator=",">
#{id}
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
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