Commit 56d360c0 by 张祺

Merge branch 'hy-tobacco' of http://132.232.112.242:7090/zhangkb/indicators into hy-tobacco

parents 41d65e17 8d43a2b2
...@@ -5,11 +5,16 @@ import java.util.Arrays; ...@@ -5,11 +5,16 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.keymobile.indicators.akka.message.indicators.AfterExeConfirmMsg;
import com.keymobile.indicators.akka.message.indicators.CompareUnitCalMsg; import com.keymobile.indicators.akka.message.indicators.CompareUnitCalMsg;
import com.keymobile.indicators.akka.message.indicators.DriveIndIdCalMsg; import com.keymobile.indicators.akka.message.indicators.DriveIndIdCalMsg;
import com.keymobile.indicators.akka.message.indicators.FirstExeConfirmMsg; import com.keymobile.indicators.akka.message.indicators.FirstExeConfirmMsg;
import com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog;
import com.keymobile.indicators.model.entity.indicators.CompareUnitDef; import com.keymobile.indicators.model.entity.indicators.CompareUnitDef;
import com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService;
import com.keymobile.indicators.service.hytobacco.ScoreRuleService; import com.keymobile.indicators.service.hytobacco.ScoreRuleService;
import com.keymobile.indicators.utils.SpringUtil; import com.keymobile.indicators.utils.SpringUtil;
...@@ -18,9 +23,12 @@ import akka.actor.ActorRef; ...@@ -18,9 +23,12 @@ import akka.actor.ActorRef;
import akka.actor.Props; import akka.actor.Props;
public class CompareUnitCalActor extends AbstractActor{ public class CompareUnitCalActor extends AbstractActor{
private Logger logger = LoggerFactory.getLogger(CompareUnitCalActor.class);
private ScoreRuleService scoreRuleServer = SpringUtil.getBean(ScoreRuleService.class); private ScoreRuleService scoreRuleServer = SpringUtil.getBean(ScoreRuleService.class);
private CompareUnitCalLogService compareUnitCalLogService = SpringUtil.getBean(CompareUnitCalLogService.class);
private int numberOfConfirm = 0;//定义返回确认消息的子actor private int numberOfConfirm = 0;//定义返回确认消息的子actor
private int indIdSize = 0;//对标指标个数 private int indIdSize = 0;//对标指标个数
...@@ -59,6 +67,13 @@ public class CompareUnitCalActor extends AbstractActor{ ...@@ -59,6 +67,13 @@ public class CompareUnitCalActor extends AbstractActor{
firstExe = compareUnitDef.getFirstExe(); firstExe = compareUnitDef.getFirstExe();
averageObj = compareUnitDef.getAverageObj(); averageObj = compareUnitDef.getAverageObj();
objScoreRuleId = compareUnitDef.getObjScoreRuleId(); objScoreRuleId = compareUnitDef.getObjScoreRuleId();
//新增运行日志记录
CompareUnitCalLog compCalLog = new CompareUnitCalLog(compareId,date,
System.currentTimeMillis()+"","0");
//保存
Integer compCalLogId = compareUnitCalLogService.saveOrUndate(compCalLog);
//获取对标对象 //获取对标对象
String compareObjsString = compareUnitDef.getCompareObjs(); String compareObjsString = compareUnitDef.getCompareObjs();
//获取对标指标 //获取对标指标
...@@ -73,7 +88,7 @@ public class CompareUnitCalActor extends AbstractActor{ ...@@ -73,7 +88,7 @@ public class CompareUnitCalActor extends AbstractActor{
for(String indId : indIdsList) { for(String indId : indIdsList) {
DriveIndIdCalMsg driveIndIdCalMsg = new DriveIndIdCalMsg( DriveIndIdCalMsg driveIndIdCalMsg = new DriveIndIdCalMsg(
compareUnitDef.getCompareId(),indId,compareObjsList,compareUnitDef.getDate(), compareUnitDef.getCompareId(),indId,compareObjsList,compareUnitDef.getDate(),
firstExe,averageObj); firstExe,averageObj,compCalLogId);
//start akka //start akka
ActorRef driveIndIdCalActor = this.getContext() ActorRef driveIndIdCalActor = this.getContext()
.actorOf(Props.create(DriveIndIdCalActor.class, .actorOf(Props.create(DriveIndIdCalActor.class,
...@@ -84,8 +99,18 @@ public class CompareUnitCalActor extends AbstractActor{ ...@@ -84,8 +99,18 @@ public class CompareUnitCalActor extends AbstractActor{
}) })
.match(FirstExeConfirmMsg.class, firstExeConfirmMsg -> { .match(FirstExeConfirmMsg.class, firstExeConfirmMsg -> {
if (++numberOfConfirm >= indIdSize) {//子actor全部返回 if (++numberOfConfirm >= indIdSize) {//子actor全部返回
Integer compCalLogId = firstExeConfirmMsg.getCompCalLogId();
CompareUnitCalLog compCalLog = null;
if(compCalLogId!=null) {
compCalLog = compareUnitCalLogService.findById(compCalLogId);
}
//如果是先执行且没有平均分参考对象 //如果是先执行且没有平均分参考对象
if("1".equals(firstExe) && StringUtils.isBlank(averageObj)) { if("1".equals(firstExe) && StringUtils.isBlank(averageObj)) {
if(compCalLog!=null) {
compCalLog.setEndTime(System.currentTimeMillis()+"");
compCalLog.setRunStatus("1");
compareUnitCalLogService.saveOrUndate(compCalLog);
}
//发送确认信息给父actor //发送确认信息给父actor
FirstExeConfirmMsg confirmMsg = new FirstExeConfirmMsg(1,""); FirstExeConfirmMsg confirmMsg = new FirstExeConfirmMsg(1,"");
startCompareUnitCalActor.tell(confirmMsg, ActorRef.noSender()); startCompareUnitCalActor.tell(confirmMsg, ActorRef.noSender());
...@@ -95,6 +120,15 @@ public class CompareUnitCalActor extends AbstractActor{ ...@@ -95,6 +120,15 @@ public class CompareUnitCalActor extends AbstractActor{
scoreRuleServer.calObjScore(compareId, indIdsList, compareObjsList, scoreRuleServer.calObjScore(compareId, indIdsList, compareObjsList,
date, objScoreRuleId); date, objScoreRuleId);
} }
//记录日志
if(compCalLog!=null) {
compCalLog.setEndTime(System.currentTimeMillis()+"");
compCalLog.setRunStatus("1");
compareUnitCalLogService.saveOrUndate(compCalLog);
}
//发送后执行的确认消息给父actor
AfterExeConfirmMsg afterConfirmMsg = new AfterExeConfirmMsg(1,"");
startCompareUnitCalActor.tell(afterConfirmMsg, ActorRef.noSender());
} }
} }
}) })
......
...@@ -7,6 +7,8 @@ import java.util.Map; ...@@ -7,6 +7,8 @@ import java.util.Map;
import java.util.Map.Entry; import java.util.Map.Entry;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.keymobile.indicators.akka.message.indicators.CalIndAverageAndRankMsg; import com.keymobile.indicators.akka.message.indicators.CalIndAverageAndRankMsg;
import com.keymobile.indicators.akka.message.indicators.DriveIndIdCalMsg; import com.keymobile.indicators.akka.message.indicators.DriveIndIdCalMsg;
...@@ -25,6 +27,7 @@ import akka.actor.ActorRef; ...@@ -25,6 +27,7 @@ import akka.actor.ActorRef;
import akka.actor.Props; import akka.actor.Props;
public class DriveIndIdCalActor extends AbstractActor{ public class DriveIndIdCalActor extends AbstractActor{
private Logger logger = LoggerFactory.getLogger(DriveIndIdCalActor.class);
private DriveIndCalResultService driveIndCalResultService = SpringUtil.getBean(DriveIndCalResultService.class); private DriveIndCalResultService driveIndCalResultService = SpringUtil.getBean(DriveIndCalResultService.class);
...@@ -65,6 +68,9 @@ public class DriveIndIdCalActor extends AbstractActor{ ...@@ -65,6 +68,9 @@ public class DriveIndIdCalActor extends AbstractActor{
firstExe = driveIndIdCalMsg.getFirstExe(); firstExe = driveIndIdCalMsg.getFirstExe();
averageObj = driveIndIdCalMsg.getAverageObj(); averageObj = driveIndIdCalMsg.getAverageObj();
compareObjSize = compareObjs.size(); compareObjSize = compareObjs.size();
//日志记录id
Integer compCalLogId = driveIndIdCalMsg.getCompCalLogId();
for(String compareObj : compareObjs) { for(String compareObj : compareObjs) {
List<DimValue> dimValueList = new ArrayList<>(); List<DimValue> dimValueList = new ArrayList<>();
DimValue dimCompareObj = new DimValue("dim1",compareObj,"varchar"); DimValue dimCompareObj = new DimValue("dim1",compareObj,"varchar");
...@@ -73,7 +79,7 @@ public class DriveIndIdCalActor extends AbstractActor{ ...@@ -73,7 +79,7 @@ public class DriveIndIdCalActor extends AbstractActor{
dimValueList.add(dimDateObj); dimValueList.add(dimDateObj);
DriveIndIdObjCalMsg driveIndIdObjCalMsg = new DriveIndIdObjCalMsg(compareId, DriveIndIdObjCalMsg driveIndIdObjCalMsg = new DriveIndIdObjCalMsg(compareId,
indId,compareObj,date,dimValueList); indId,compareObj,date,dimValueList,compCalLogId);
ActorRef driveIndIdObjCalActor = this.getContext() ActorRef driveIndIdObjCalActor = this.getContext()
.actorOf(Props.create(DriveIndIdObjCalActor.class, .actorOf(Props.create(DriveIndIdObjCalActor.class,
()->new DriveIndIdObjCalActor(getSelf()))); ()->new DriveIndIdObjCalActor(getSelf())));
...@@ -85,6 +91,7 @@ public class DriveIndIdCalActor extends AbstractActor{ ...@@ -85,6 +91,7 @@ public class DriveIndIdCalActor extends AbstractActor{
String id = String.valueOf(calIndAverageAndRankMsg.getId()); String id = String.valueOf(calIndAverageAndRankMsg.getId());
String indType = calIndAverageAndRankMsg.getIndType();//指标类型:正向 反向 String indType = calIndAverageAndRankMsg.getIndType();//指标类型:正向 反向
Integer scoreCardId = calIndAverageAndRankMsg.getScoreCardId();//评分卡id Integer scoreCardId = calIndAverageAndRankMsg.getScoreCardId();//评分卡id
Integer compCalLogId = calIndAverageAndRankMsg.getCompCalLogId();//记录日志id
if(!"-1".equals(id)) { if(!"-1".equals(id)) {
valueMap.put(id, value); valueMap.put(id, value);
compareObjs.add(calIndAverageAndRankMsg.getCompareObj()); compareObjs.add(calIndAverageAndRankMsg.getCompareObj());
...@@ -94,7 +101,7 @@ public class DriveIndIdCalActor extends AbstractActor{ ...@@ -94,7 +101,7 @@ public class DriveIndIdCalActor extends AbstractActor{
//如果是先执行且没有平均分参考对象的,则不进行平均分和排名计算 //如果是先执行且没有平均分参考对象的,则不进行平均分和排名计算
if("1".equals(firstExe) && StringUtils.isBlank(averageObj)) { if("1".equals(firstExe) && StringUtils.isBlank(averageObj)) {
//发送确认信息给父actor //发送确认信息给父actor
FirstExeConfirmMsg firstExeConfirmMsg = new FirstExeConfirmMsg(1,""); FirstExeConfirmMsg firstExeConfirmMsg = new FirstExeConfirmMsg(1,"",compCalLogId);
compareUnitCalActor.tell(firstExeConfirmMsg, ActorRef.noSender()); compareUnitCalActor.tell(firstExeConfirmMsg, ActorRef.noSender());
}else { }else {
DriveIndCalResultDef provinceDriveIndCalResult = null; DriveIndCalResultDef provinceDriveIndCalResult = null;
...@@ -143,12 +150,12 @@ public class DriveIndIdCalActor extends AbstractActor{ ...@@ -143,12 +150,12 @@ public class DriveIndIdCalActor extends AbstractActor{
} }
} }
//发送确认信息给父actor //发送确认信息给父actor
FirstExeConfirmMsg firstExeConfirmMsg = new FirstExeConfirmMsg(1,""); FirstExeConfirmMsg firstExeConfirmMsg = new FirstExeConfirmMsg(1,"",compCalLogId);
compareUnitCalActor.tell(firstExeConfirmMsg, ActorRef.noSender()); compareUnitCalActor.tell(firstExeConfirmMsg, ActorRef.noSender());
} }
}else { }else {
//发送确认信息给父actor //发送确认信息给父actor
FirstExeConfirmMsg firstExeConfirmMsg = new FirstExeConfirmMsg(0,""); FirstExeConfirmMsg firstExeConfirmMsg = new FirstExeConfirmMsg(0,"",compCalLogId);
compareUnitCalActor.tell(firstExeConfirmMsg, ActorRef.noSender()); compareUnitCalActor.tell(firstExeConfirmMsg, ActorRef.noSender());
} }
} }
......
...@@ -18,8 +18,10 @@ import com.keymobile.indicators.akka.message.indicators.BaseIndValueMsg; ...@@ -18,8 +18,10 @@ import com.keymobile.indicators.akka.message.indicators.BaseIndValueMsg;
import com.keymobile.indicators.akka.message.indicators.CalIndAverageAndRankMsg; import com.keymobile.indicators.akka.message.indicators.CalIndAverageAndRankMsg;
import com.keymobile.indicators.akka.message.indicators.DriveIndIdObjCalMsg; import com.keymobile.indicators.akka.message.indicators.DriveIndIdObjCalMsg;
import com.keymobile.indicators.akka.message.indicators.GetBaseIndValueMsg; import com.keymobile.indicators.akka.message.indicators.GetBaseIndValueMsg;
import com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog;
import com.keymobile.indicators.model.entity.indicators.DriveIndCalResultDef; 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.CompareUnitCalLogService;
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.utils.SpringUtil; import com.keymobile.indicators.utils.SpringUtil;
...@@ -35,6 +37,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -35,6 +37,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{
private DriveIndCalResultService driveIndCalResultService = SpringUtil.getBean(DriveIndCalResultService.class); private DriveIndCalResultService driveIndCalResultService = SpringUtil.getBean(DriveIndCalResultService.class);
private CompareUnitCalLogService compareUnitCalLogService = SpringUtil.getBean(CompareUnitCalLogService.class);
private String compareId ; private String compareId ;
private String compareObj; private String compareObj;
...@@ -62,6 +66,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -62,6 +66,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{
//定义线程安全的收集反馈确认消息list //定义线程安全的收集反馈确认消息list
private List<Integer> confirmList = new CopyOnWriteArrayList<>(); private List<Integer> confirmList = new CopyOnWriteArrayList<>();
private Integer compCalLogId = null;
private final ActorRef driveIndIdCalActor;//定义父actor private final ActorRef driveIndIdCalActor;//定义父actor
static public Props props(ActorRef driveIndIdCalActor) { static public Props props(ActorRef driveIndIdCalActor) {
...@@ -80,6 +86,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -80,6 +86,8 @@ public class DriveIndIdObjCalActor extends AbstractActor{
compareObj = driveIndIdObjCalMsg.getCompareObj(); compareObj = driveIndIdObjCalMsg.getCompareObj();
date = driveIndIdObjCalMsg.getDate(); date = driveIndIdObjCalMsg.getDate();
driveIndId = driveIndIdObjCalMsg.getIndId(); driveIndId = driveIndIdObjCalMsg.getIndId();
//日志记录id
compCalLogId = driveIndIdObjCalMsg.getCompCalLogId();
List<String> indIdList = new ArrayList<>();//定义存储从考核指标公式解析出来的基础指标id List<String> indIdList = new ArrayList<>();//定义存储从考核指标公式解析出来的基础指标id
...@@ -111,7 +119,23 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -111,7 +119,23 @@ public class DriveIndIdObjCalActor extends AbstractActor{
} }
}) })
.match(BaseIndValueMsg.class,baseIndValueMsg->{ .match(BaseIndValueMsg.class,baseIndValueMsg->{
//根据日志记录id获取日志
CompareUnitCalLog compCalLog = null;
if(compCalLogId!=null) {
compCalLog = compareUnitCalLogService.findById(compCalLogId);
}
if(baseIndValueMsg.getIsFinish()==0) { if(baseIndValueMsg.getIsFinish()==0) {
//日志填充
if(compCalLog!=null) {
String logInfo = compCalLog.getLogInfo();
if(StringUtils.isNotBlank(logInfo)) {
logInfo+=baseIndValueMsg.getConfirmMessage()+"</n>";
compCalLog.setLogInfo(logInfo);
}else {
compCalLog.setLogInfo(baseIndValueMsg.getConfirmMessage()+"</n>");
}
}
logger.info(baseIndValueMsg.getConfirmMessage()); logger.info(baseIndValueMsg.getConfirmMessage());
}else { }else {
String indValue = baseIndValueMsg.getValue(); String indValue = baseIndValueMsg.getValue();
...@@ -125,7 +149,21 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -125,7 +149,21 @@ public class DriveIndIdObjCalActor extends AbstractActor{
env.put(baseIndValueMsg.getIndId(), Double.valueOf(indValue)); env.put(baseIndValueMsg.getIndId(), Double.valueOf(indValue));
}catch(Exception e) { }catch(Exception e) {
e.printStackTrace(); e.printStackTrace();
logger.error(driveIndFormula+";"+env); logger.error("driveIndId:"+driveIndId+";"+
"formula:"+driveIndFormula+";"+
"errorValue:"+indValue+";"+"paramEnv:"+env);
//日志记录
String logInfo = compCalLog.getLogInfo();
if(StringUtils.isNotBlank(logInfo)) {
logInfo+="替换公式值出错:driveIndId:"+driveIndId+";"+
"formula:"+driveIndFormula+";"+
"errorValue:"+indValue+";"+"paramEnv:"+env+"</n>";
compCalLog.setLogInfo(logInfo);
}else {
compCalLog.setLogInfo("替换公式值出错:driveIndId:"+driveIndId+";"+
"formula:"+driveIndFormula+";"+
"errorValue:"+indValue+";"+"paramEnv:"+env+"</n>");
}
} }
confirmList.add(baseIndValueMsg.getIsFinish()); confirmList.add(baseIndValueMsg.getIsFinish());
if (++numberOfConfirm >= indIdSize) {//子actor全部返回 if (++numberOfConfirm >= indIdSize) {//子actor全部返回
...@@ -155,7 +193,7 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -155,7 +193,7 @@ public class DriveIndIdObjCalActor extends AbstractActor{
CalIndAverageAndRankMsg driveIndAverageAndRankMsg = CalIndAverageAndRankMsg driveIndAverageAndRankMsg =
new CalIndAverageAndRankMsg(driveIndCalResult.getId(), new CalIndAverageAndRankMsg(driveIndCalResult.getId(),
compareId,driveIndId,compareObj,date,driveIndValue, compareId,driveIndId,compareObj,date,driveIndValue,
unit,indType,scoreCardId,averageDriveIndFormula); unit,indType,scoreCardId,averageDriveIndFormula,compCalLogId);
driveIndIdCalActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender()); driveIndIdCalActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender());
} catch (Exception e) { } catch (Exception e) {
//判断结果表中是否已存在该结果数据,存在则覆盖 //判断结果表中是否已存在该结果数据,存在则覆盖
...@@ -169,23 +207,40 @@ public class DriveIndIdObjCalActor extends AbstractActor{ ...@@ -169,23 +207,40 @@ public class DriveIndIdObjCalActor extends AbstractActor{
driveIndCalResult.setValue("NaN"); driveIndCalResult.setValue("NaN");
} }
driveIndCalResultService.saveOrUpdate(driveIndCalResult); driveIndCalResultService.saveOrUpdate(driveIndCalResult);
logger.error("driveIndId:"+driveIndId+";"+
"paramEnv:"+env+";formula:"+driveIndFormula);
//日志记录
String logInfo = compCalLog.getLogInfo();
if(StringUtils.isNotBlank(logInfo)) {
logInfo+="计算考核指标出错:driveIndId:"+driveIndId+";"+
"paramEnv:"+env+";formula:"+driveIndFormula+"</n>";
compCalLog.setLogInfo(logInfo);
}else {
compCalLog.setLogInfo("计算考核指标出错:driveIndId:"+driveIndId+";"+
"paramEnv:"+env+";formula:"+driveIndFormula+"</n>");
}
CalIndAverageAndRankMsg driveIndAverageAndRankMsg = CalIndAverageAndRankMsg driveIndAverageAndRankMsg =
new CalIndAverageAndRankMsg(driveIndCalResult.getId(), new CalIndAverageAndRankMsg(driveIndCalResult.getId(),
compareId,driveIndId,compareObj,date,"NaN", compareId,driveIndId,compareObj,date,"NaN",
unit,indType,scoreCardId,averageDriveIndFormula); unit,indType,scoreCardId,averageDriveIndFormula,compCalLogId);
driveIndIdCalActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender()); driveIndIdCalActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender());
logger.error("env:"+env+";formula:"+driveIndFormula);
} }
}else { }else {
//返回考核指标因为考核指标公式中的数据项不存在而导致的计算错误标识 //返回考核指标因为考核指标公式中的数据项不存在而导致的计算错误标识
CalIndAverageAndRankMsg driveIndAverageAndRankMsg = CalIndAverageAndRankMsg driveIndAverageAndRankMsg =
new CalIndAverageAndRankMsg(-1, new CalIndAverageAndRankMsg(-1,
compareId,driveIndId,compareObj,date,"NaN", compareId,driveIndId,compareObj,date,"NaN",
unit,indType,scoreCardId,averageDriveIndFormula); unit,indType,scoreCardId,averageDriveIndFormula,compCalLogId);
driveIndIdCalActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender()); driveIndIdCalActor.tell(driveIndAverageAndRankMsg,ActorRef.noSender());
} }
} }
} }
//保存日志
if(compCalLog!=null) {
compareUnitCalLogService.saveOrUndate(compCalLog);
}
}) })
.build(); .build();
} }
......
...@@ -3,9 +3,14 @@ package com.keymobile.indicators.akka.actor.indicators; ...@@ -3,9 +3,14 @@ package com.keymobile.indicators.akka.actor.indicators;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.keymobile.indicators.akka.message.indicators.AfterExeConfirmMsg;
import com.keymobile.indicators.akka.message.indicators.CompareUnitCalMsg; import com.keymobile.indicators.akka.message.indicators.CompareUnitCalMsg;
import com.keymobile.indicators.akka.message.indicators.FirstExeConfirmMsg; import com.keymobile.indicators.akka.message.indicators.FirstExeConfirmMsg;
import com.keymobile.indicators.akka.message.indicators.StartCompareUnitCalMsg; import com.keymobile.indicators.akka.message.indicators.StartCompareUnitCalMsg;
import com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog;
import com.keymobile.indicators.model.entity.indicators.CompareUnitDef; import com.keymobile.indicators.model.entity.indicators.CompareUnitDef;
import akka.actor.AbstractActor; import akka.actor.AbstractActor;
...@@ -13,6 +18,7 @@ import akka.actor.ActorRef; ...@@ -13,6 +18,7 @@ import akka.actor.ActorRef;
import akka.actor.Props; import akka.actor.Props;
public class StartCompareUnitCalActor extends AbstractActor{ public class StartCompareUnitCalActor extends AbstractActor{
private Logger logger = LoggerFactory.getLogger(StartCompareUnitCalActor.class);
private List<CompareUnitDef> firstExeList = new ArrayList<>();//先执行对标单元list private List<CompareUnitDef> firstExeList = new ArrayList<>();//先执行对标单元list
...@@ -22,6 +28,10 @@ public class StartCompareUnitCalActor extends AbstractActor{ ...@@ -22,6 +28,10 @@ public class StartCompareUnitCalActor extends AbstractActor{
private int firstExeUnitSize = 0;//需要先执行对标单元个数 private int firstExeUnitSize = 0;//需要先执行对标单元个数
private int numberOfAfterConfirm = 0;//定义后执行返回确认消息的子actor
private int afterExeUnitSize = 0;//后执行的对标单元个数
@Override @Override
public Receive createReceive() { public Receive createReceive() {
return receiveBuilder() return receiveBuilder()
...@@ -35,8 +45,9 @@ public class StartCompareUnitCalActor extends AbstractActor{ ...@@ -35,8 +45,9 @@ public class StartCompareUnitCalActor extends AbstractActor{
afterExeList.add(unitDef); afterExeList.add(unitDef);
} }
} }
firstExeUnitSize = firstExeList.size();
afterExeUnitSize = afterExeList.size();
if(!firstExeList.isEmpty()) { if(!firstExeList.isEmpty()) {
firstExeUnitSize = firstExeList.size();
for(CompareUnitDef unitDef : firstExeList) { for(CompareUnitDef unitDef : firstExeList) {
CompareUnitCalMsg compareUnitCalMsg = new CompareUnitCalMsg(unitDef); CompareUnitCalMsg compareUnitCalMsg = new CompareUnitCalMsg(unitDef);
ActorRef compareUnitCalActor = this.getContext() ActorRef compareUnitCalActor = this.getContext()
...@@ -53,6 +64,8 @@ public class StartCompareUnitCalActor extends AbstractActor{ ...@@ -53,6 +64,8 @@ public class StartCompareUnitCalActor extends AbstractActor{
()->new CompareUnitCalActor(getSelf()))); ()->new CompareUnitCalActor(getSelf())));
compareUnitCalActor.tell(compareUnitCalMsg, getSelf()); compareUnitCalActor.tell(compareUnitCalMsg, getSelf());
} }
}else {
logger.info("对标单元计算完成");
} }
} }
}) })
...@@ -67,9 +80,17 @@ public class StartCompareUnitCalActor extends AbstractActor{ ...@@ -67,9 +80,17 @@ public class StartCompareUnitCalActor extends AbstractActor{
()->new CompareUnitCalActor(getSelf()))); ()->new CompareUnitCalActor(getSelf())));
compareUnitCalActor.tell(compareUnitCalMsg, getSelf()); compareUnitCalActor.tell(compareUnitCalMsg, getSelf());
} }
logger.info("进行后执行对标单元计算....");
}else {
logger.info("对标单元计算完成");
} }
} }
}) })
.match(AfterExeConfirmMsg.class, afterExeConfirmMsg -> {
if (++numberOfAfterConfirm >= afterExeUnitSize) {//全部后执行的子actor全部返回
logger.info("对标单元计算完成");
}
})
.build(); .build();
} }
} }
package com.keymobile.indicators.akka.message.indicators;
import java.io.Serializable;
public class AfterExeConfirmMsg implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
//是否完成标识:1.完成 0.未完成
private Integer isFinish;
//日志报告
private String confirmMessage;
//日志记录id
private Integer compCalLogId;
public AfterExeConfirmMsg(Integer isFinish,String confirmMessage) {
this.isFinish = isFinish;
this.confirmMessage = confirmMessage;
}
public AfterExeConfirmMsg(Integer isFinish,String confirmMessage,Integer compCalLogId) {
this.isFinish = isFinish;
this.confirmMessage = confirmMessage;
this.compCalLogId = compCalLogId;
}
public Integer getIsFinish() {
return isFinish;
}
public void setIsFinish(Integer isFinish) {
this.isFinish = isFinish;
}
public String getConfirmMessage() {
return confirmMessage;
}
public void setConfirmMessage(String confirmMessage) {
this.confirmMessage = confirmMessage;
}
public Integer getCompCalLogId() {
return compCalLogId;
}
public void setCompCalLogId(Integer compCalLogId) {
this.compCalLogId = compCalLogId;
}
}
...@@ -18,9 +18,11 @@ public class CalIndAverageAndRankMsg implements Serializable{ ...@@ -18,9 +18,11 @@ public class CalIndAverageAndRankMsg implements Serializable{
private String indType; private String indType;
private Integer scoreCardId; private Integer scoreCardId;
private String indFormula; private String indFormula;
private Integer compCalLogId;
public CalIndAverageAndRankMsg(Integer id,String compareId,String driveIndId,String compareObj, public CalIndAverageAndRankMsg(Integer id,String compareId,String driveIndId,String compareObj,
Integer date,String driveIndValue,String unit,String indType,Integer scoreCardId,String indFormula) { Integer date,String driveIndValue,String unit,String indType,Integer scoreCardId,
String indFormula,Integer compCalLogId) {
this.id = id; this.id = id;
this.compareId = compareId; this.compareId = compareId;
this.driveIndId = driveIndId; this.driveIndId = driveIndId;
...@@ -31,6 +33,7 @@ public class CalIndAverageAndRankMsg implements Serializable{ ...@@ -31,6 +33,7 @@ public class CalIndAverageAndRankMsg implements Serializable{
this.indType = indType; this.indType = indType;
this.scoreCardId = scoreCardId; this.scoreCardId = scoreCardId;
this.indFormula = indFormula; this.indFormula = indFormula;
this.compCalLogId = compCalLogId;
} }
public Integer getId() { public Integer getId() {
...@@ -93,4 +96,12 @@ public class CalIndAverageAndRankMsg implements Serializable{ ...@@ -93,4 +96,12 @@ public class CalIndAverageAndRankMsg implements Serializable{
public void setIndFormula(String indFormula) { public void setIndFormula(String indFormula) {
this.indFormula = indFormula; this.indFormula = indFormula;
} }
public Integer getCompCalLogId() {
return compCalLogId;
}
public void setCompCalLogId(Integer compCalLogId) {
this.compCalLogId = compCalLogId;
}
} }
...@@ -16,15 +16,17 @@ public class DriveIndIdCalMsg implements Serializable{ ...@@ -16,15 +16,17 @@ public class DriveIndIdCalMsg implements Serializable{
private Integer date; private Integer date;
private String firstExe; private String firstExe;
private String averageObj;//平均分参考对象 private String averageObj;//平均分参考对象
private Integer compCalLogId;//运行日志记录id
public DriveIndIdCalMsg(String compareId,String indId,List<String> compareObj,Integer date, public DriveIndIdCalMsg(String compareId,String indId,List<String> compareObj,Integer date,
String firstExe,String averageObj) { String firstExe,String averageObj,Integer compCalLogId) {
this.compareId = compareId; this.compareId = compareId;
this.indId = indId; this.indId = indId;
this.compareObj.addAll(compareObj); this.compareObj.addAll(compareObj);
this.date = date; this.date = date;
this.firstExe = firstExe; this.firstExe = firstExe;
this.averageObj = averageObj; this.averageObj = averageObj;
this.compCalLogId = compCalLogId;
} }
public String getCompareId() { public String getCompareId() {
...@@ -64,4 +66,12 @@ public class DriveIndIdCalMsg implements Serializable{ ...@@ -64,4 +66,12 @@ public class DriveIndIdCalMsg implements Serializable{
public void setFirstExe(String firstExe) { public void setFirstExe(String firstExe) {
this.firstExe = firstExe; this.firstExe = firstExe;
} }
public Integer getCompCalLogId() {
return compCalLogId;
}
public void setCompCalLogId(Integer compCalLogId) {
this.compCalLogId = compCalLogId;
}
} }
...@@ -17,14 +17,16 @@ public class DriveIndIdObjCalMsg implements Serializable{ ...@@ -17,14 +17,16 @@ public class DriveIndIdObjCalMsg implements Serializable{
private String compareObj; private String compareObj;
private Integer date; private Integer date;
private List<DimValue> dimValues = new ArrayList<>();//维度值list private List<DimValue> dimValues = new ArrayList<>();//维度值list
private Integer compCalLogId;//运行日志记录id
public DriveIndIdObjCalMsg(String compareId,String indId,String compareObj, public DriveIndIdObjCalMsg(String compareId,String indId,String compareObj,
Integer date,List<DimValue> dimValues) { Integer date,List<DimValue> dimValues,Integer compCalLogId) {
this.compareId = compareId; this.compareId = compareId;
this.indId = indId; this.indId = indId;
this.compareObj = compareObj; this.compareObj = compareObj;
this.date = date; this.date = date;
this.dimValues.addAll(dimValues); this.dimValues.addAll(dimValues);
this.compCalLogId = compCalLogId;
} }
public String getCompareId() { public String getCompareId() {
...@@ -57,4 +59,12 @@ public class DriveIndIdObjCalMsg implements Serializable{ ...@@ -57,4 +59,12 @@ public class DriveIndIdObjCalMsg implements Serializable{
public void setDimValues(List<DimValue> dimValues) { public void setDimValues(List<DimValue> dimValues) {
this.dimValues.addAll(dimValues); this.dimValues.addAll(dimValues);
} }
public Integer getCompCalLogId() {
return compCalLogId;
}
public void setCompCalLogId(Integer compCalLogId) {
this.compCalLogId = compCalLogId;
}
} }
...@@ -12,12 +12,20 @@ public class FirstExeConfirmMsg implements Serializable{ ...@@ -12,12 +12,20 @@ public class FirstExeConfirmMsg implements Serializable{
private Integer isFinish; private Integer isFinish;
//日志报告 //日志报告
private String confirmMessage; private String confirmMessage;
//日志记录id
private Integer compCalLogId;
public FirstExeConfirmMsg(Integer isFinish,String confirmMessage) { public FirstExeConfirmMsg(Integer isFinish,String confirmMessage) {
this.isFinish = isFinish; this.isFinish = isFinish;
this.confirmMessage = confirmMessage; this.confirmMessage = confirmMessage;
} }
public FirstExeConfirmMsg(Integer isFinish,String confirmMessage,Integer compCalLogId) {
this.isFinish = isFinish;
this.confirmMessage = confirmMessage;
this.compCalLogId = compCalLogId;
}
public Integer getIsFinish() { public Integer getIsFinish() {
return isFinish; return isFinish;
} }
...@@ -30,4 +38,12 @@ public class FirstExeConfirmMsg implements Serializable{ ...@@ -30,4 +38,12 @@ public class FirstExeConfirmMsg implements Serializable{
public void setConfirmMessage(String confirmMessage) { public void setConfirmMessage(String confirmMessage) {
this.confirmMessage = confirmMessage; this.confirmMessage = confirmMessage;
} }
public Integer getCompCalLogId() {
return compCalLogId;
}
public void setCompCalLogId(Integer compCalLogId) {
this.compCalLogId = compCalLogId;
}
} }
package com.keymobile.indicators.api.hytobacco;
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.entity.indicators.CompareUnitDef;
import com.keymobile.indicators.service.hytobacco.CompareUnitCalLogService;
import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api(tags={"规则管理-对标单元指标计算接口"})
@RestController
@RequestMapping(value = "/driveIndCal")
public class DriveIndCalResultCtrl {
@Autowired
private DriveIndCalResultService driveIndCalResultService;
@Autowired
private CompareUnitCalLogService compUnitCalLogService;
@ApiOperation(value = "对标计算", notes = "对标计算")
@PostMapping(value = "/calculateComp")
public void calculateComp(@RequestParam String compareId,@RequestParam String compareObjsString,
@RequestParam String driveIndIdsString,@RequestParam int date) {
driveIndCalResultService.calculateComp(compareId, compareObjsString, driveIndIdsString, date);
}
@ApiOperation(value = "对标单元综合计算", notes = "对标单元综合计算")
@PostMapping(value = "/compareUnitListCal")
public void compareUnitListCal(@RequestBody List<CompareUnitDef> compareUnitList) {
driveIndCalResultService.compareUnitListCal(compareUnitList);
}
@ApiOperation(value = "根据对标单元id分页获取日志详情", notes = "根据对标单元id分页获取日志详情")
@PostMapping(value = "/findPageByCompareId")
public Map<String,Object> findPageByCompareId(@RequestParam String compareId,
@RequestParam(defaultValue = "0") int page,@RequestParam(defaultValue = "10") int rows){
return compUnitCalLogService.findPageByCompareId(compareId, page, rows);
}
}
...@@ -17,7 +17,7 @@ import com.keymobile.indicators.service.hytobacco.IndCatalogService; ...@@ -17,7 +17,7 @@ import com.keymobile.indicators.service.hytobacco.IndCatalogService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"指标目录定义接口"}) @Api(tags={"规则管理-指标目录定义接口"})
@RestController @RestController
@RequestMapping(value = "/indCatalog") @RequestMapping(value = "/indCatalog")
public class IndCatalogCtrl { public class IndCatalogCtrl {
......
...@@ -18,7 +18,7 @@ import com.keymobile.indicators.service.hytobacco.ScorecardCatalogService; ...@@ -18,7 +18,7 @@ import com.keymobile.indicators.service.hytobacco.ScorecardCatalogService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"评分卡CRUD"}) @Api(tags={"规则管理-指标积分规则CRUD"})
@RestController @RestController
@RequestMapping(value = "/indScorecard") @RequestMapping(value = "/indScorecard")
public class IndScorecardCtrl { public class IndScorecardCtrl {
......
...@@ -11,16 +11,14 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -11,16 +11,14 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.keymobile.indicators.model.entity.indicators.BaseIndDef; import com.keymobile.indicators.model.entity.indicators.BaseIndDef;
import com.keymobile.indicators.model.entity.indicators.CompareUnitDef;
import com.keymobile.indicators.model.entity.indicators.DriveIndDef; import com.keymobile.indicators.model.entity.indicators.DriveIndDef;
import com.keymobile.indicators.service.hytobacco.BaseIndDefService; import com.keymobile.indicators.service.hytobacco.BaseIndDefService;
import com.keymobile.indicators.service.hytobacco.DriveIndCalResultService;
import com.keymobile.indicators.service.hytobacco.DriveIndDefService; import com.keymobile.indicators.service.hytobacco.DriveIndDefService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"指标定义接口"}) @Api(tags={"规则管理-指标定义接口"})
@RestController @RestController
@RequestMapping(value = "/indDef") @RequestMapping(value = "/indDef")
public class IndicatorsDefCtrl { public class IndicatorsDefCtrl {
...@@ -29,8 +27,6 @@ public class IndicatorsDefCtrl { ...@@ -29,8 +27,6 @@ public class IndicatorsDefCtrl {
private BaseIndDefService baseIndDefService; private BaseIndDefService baseIndDefService;
@Autowired @Autowired
private DriveIndDefService driveIndDefService; private DriveIndDefService driveIndDefService;
@Autowired
private DriveIndCalResultService driveIndCalResultService;
@ApiOperation(value = "获取基础指标最大id", notes = "获取基础指标最大id") @ApiOperation(value = "获取基础指标最大id", notes = "获取基础指标最大id")
@PostMapping(value = "/getBaseIndMaxId") @PostMapping(value = "/getBaseIndMaxId")
...@@ -119,17 +115,4 @@ public class IndicatorsDefCtrl { ...@@ -119,17 +115,4 @@ public class IndicatorsDefCtrl {
@RequestParam(defaultValue = "0") int page,@RequestParam(defaultValue = "10") int rows) throws Exception{ @RequestParam(defaultValue = "0") int page,@RequestParam(defaultValue = "10") int rows) throws Exception{
return driveIndDefService.getByPageAndKeyword(catalogId, keyword, page, rows); return driveIndDefService.getByPageAndKeyword(catalogId, keyword, page, rows);
} }
@ApiOperation(value = "对标计算", notes = "对标计算")
@PostMapping(value = "/calculateComp")
public void calculateComp(@RequestParam String compareId,@RequestParam String compareObjsString,
@RequestParam String driveIndIdsString,@RequestParam int date) {
driveIndCalResultService.calculateComp(compareId, compareObjsString, driveIndIdsString, date);
}
@ApiOperation(value = "对标单元综合计算", notes = "对标单元综合计算")
@PostMapping(value = "/compareUnitListCal")
public void compareUnitListCal(@RequestBody List<CompareUnitDef> compareUnitList) {
driveIndCalResultService.compareUnitListCal(compareUnitList);
}
} }
...@@ -13,7 +13,7 @@ import com.keymobile.indicators.service.hytobacco.IndicatorsRelService; ...@@ -13,7 +13,7 @@ import com.keymobile.indicators.service.hytobacco.IndicatorsRelService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"指标关系接口"}) @Api(tags={"规则管理-指标关系接口"})
@RestController @RestController
@RequestMapping(value = "/indRel") @RequestMapping(value = "/indRel")
public class IndicatorsRelCtrl { public class IndicatorsRelCtrl {
......
...@@ -14,7 +14,7 @@ import com.keymobile.indicators.service.hytobacco.IndicatorsValueService; ...@@ -14,7 +14,7 @@ import com.keymobile.indicators.service.hytobacco.IndicatorsValueService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"指标值录入接口"}) @Api(tags={"规则管理-指标值录入接口"})
@RestController @RestController
@RequestMapping(value = "/indicatorsValue") @RequestMapping(value = "/indicatorsValue")
public class IndicatorsValueCtrl { public class IndicatorsValueCtrl {
......
...@@ -18,7 +18,7 @@ import com.keymobile.indicators.service.hytobacco.ScoreRuleService; ...@@ -18,7 +18,7 @@ import com.keymobile.indicators.service.hytobacco.ScoreRuleService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"单位评分规则CRUD"}) @Api(tags={"规则管理-单位评分规则CRUD"})
@RestController @RestController
@RequestMapping(value = "/objScoreRule") @RequestMapping(value = "/objScoreRule")
public class ObjScoreRuleCtrl { public class ObjScoreRuleCtrl {
......
...@@ -18,7 +18,7 @@ import com.keymobile.indicators.service.hytobacco.ShortboardRuleService; ...@@ -18,7 +18,7 @@ import com.keymobile.indicators.service.hytobacco.ShortboardRuleService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"短板筛选规则CRUD"}) @Api(tags={"规则管理-短板筛选规则CRUD"})
@RestController @RestController
@RequestMapping(value = "/shortboardRule") @RequestMapping(value = "/shortboardRule")
public class ShortboardRuleCtrl { public class ShortboardRuleCtrl {
......
...@@ -19,7 +19,7 @@ import com.keymobile.indicators.service.hytobacco.ShortboardUnitService; ...@@ -19,7 +19,7 @@ import com.keymobile.indicators.service.hytobacco.ShortboardUnitService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@Api(tags={"短板筛选单元CRUD"}) @Api(tags={"规则管理-短板筛选单元CRUD"})
@RestController @RestController
@RequestMapping(value = "/shortboardUnit") @RequestMapping(value = "/shortboardUnit")
public class ShortboardUnitCtrl { public class ShortboardUnitCtrl {
......
package com.keymobile.indicators.model.entity.indicators;
import java.util.Date;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import com.keymobile.indicators.utils.DateUtils;
import lombok.Data;
/**
* author:zhangkb time:2020-6-29 desc:对标单元计算日志表
*/
@Data
@Table(name="compare_unit_cal_log")
public class CompareUnitCalLog {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String compareId;
private Integer date;
private String creater;
private String createTime = DateUtils.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss");
private String logInfo;
private String startTime;
private String endTime;
private String runStatus;//0:运行中 1:运行完成
public CompareUnitCalLog(String compareId,Integer date,String startTime,String runStatus) {
this.compareId = compareId;
this.date = date;
this.startTime = startTime;
this.runStatus = runStatus;
}
}
package com.keymobile.indicators.model.mapper.indmapper;
import java.util.List;
import java.util.Map;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog;
import tk.mybatis.mapper.common.BaseMapper;
@Mapper
public interface CompareUnitCalLogMapper extends BaseMapper<CompareUnitCalLog>{
public List<CompareUnitCalLog> findByCompareId(Map<String,Object> param);
public int countByCompareId(@Param("compareId") String compareId);
}
package com.keymobile.indicators.service.hytobacco;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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.entity.indicators.CompareUnitCalLog;
import com.keymobile.indicators.model.mapper.indmapper.CompareUnitCalLogMapper;
@Service
public class CompareUnitCalLogService {
private Logger logger = LoggerFactory.getLogger(CompareUnitCalLogService.class);
@Autowired
private CompareUnitCalLogMapper compareUnitCalLogMapper;
public Integer saveOrUndate(CompareUnitCalLog compareUnitCalLog) {
if(compareUnitCalLog.getId()==null) {
compareUnitCalLogMapper.insert(compareUnitCalLog);
}else {
compareUnitCalLogMapper.updateByPrimaryKey(compareUnitCalLog);
}
return compareUnitCalLog.getId();
}
public CompareUnitCalLog findById(Integer id) {
return compareUnitCalLogMapper.selectByPrimaryKey(id);
}
//分页根据对标单元id获取对应运行日志
public Map<String,Object> findPageByCompareId(String compareId,int page,int rows){
Map<String,Object> paramMap = new HashMap<>();
Map<String,Object> resultMap = new HashMap<>();
//计算总数
int count = compareUnitCalLogMapper.countByCompareId(compareId);
//计算start
int start = page*rows;
paramMap.put("compareId", compareId);
paramMap.put("start", start);
paramMap.put("end", rows);
List<CompareUnitCalLog> datas = compareUnitCalLogMapper.findByCompareId(paramMap);
resultMap.put("resultList", datas);
resultMap.put("total", count);
return resultMap;
}
}
<?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">
<mapper namespace="com.keymobile.indicators.model.mapper.indmapper.CompareUnitCalLogMapper">
<select id="findByCompareId" parameterType="map" resultType="com.keymobile.indicators.model.entity.indicators.CompareUnitCalLog" >
select *
from compare_unit_cal_log
where compare_id=#{compareId}
order by create_time desc
limit #{start},#{end}
</select>
<select id="countByCompareId" parameterType="java.lang.String" resultType="java.lang.Integer">
select count(1)
from compare_unit_cal_log
where compare_id=#{compareId}
</select>
</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