| @@ -39,6 +39,8 @@ public interface ExperimentInsDao { | |||||
| */ | */ | ||||
| long count(@Param("experimentIns") ExperimentIns experimentIns); | long count(@Param("experimentIns") ExperimentIns experimentIns); | ||||
| long countTorE(@Param("experimentId") Integer experimentId, @Param("isTrain") Boolean isTrain); | |||||
| /* | /* | ||||
| 统计实验实例总数 | 统计实验实例总数 | ||||
| @@ -100,7 +102,6 @@ public interface ExperimentInsDao { | |||||
| List<ExperimentIns> getLatestInsList(); | List<ExperimentIns> getLatestInsList(); | ||||
| List<ExperimentIns> queryByExperiment(@Param("experimentIns") ExperimentIns experimentIns); | List<ExperimentIns> queryByExperiment(@Param("experimentIns") ExperimentIns experimentIns); | ||||
| List<ExperimentIns> queryByExperimentId(Integer id); | List<ExperimentIns> queryByExperimentId(Integer id); | ||||
| @@ -157,10 +157,20 @@ public class AimServiceImpl implements AimService { | |||||
| PageRequest pageRequest = PageRequest.of(page, size); | PageRequest pageRequest = PageRequest.of(page, size); | ||||
| ExperimentIns query = new ExperimentIns(); | ExperimentIns query = new ExperimentIns(); | ||||
| query.setExperimentId(experimentId); | query.setExperimentId(experimentId); | ||||
| long count = experimentInsDao.count(query); | |||||
| long count = experimentInsDao.countTorE(experimentId, isTrain); | |||||
| List<ExperimentIns> experimentInsList = experimentInsDao.queryAllByLimit(query, pageRequest); | List<ExperimentIns> experimentInsList = experimentInsDao.queryAllByLimit(query, pageRequest); | ||||
| List<ExperimentIns> collect = experimentInsList.stream().filter(ins -> { | |||||
| Map<String, Object> metricRecord = JacksonUtil.parseJSONStr2Map(ins.getMetricRecord()); | |||||
| if (isTrain) { | |||||
| return metricRecord.get("train") != null; | |||||
| } else { | |||||
| return metricRecord.get("evaluate") != null; | |||||
| } | |||||
| }).collect(Collectors.toList()); | |||||
| List<InsMetricInfoVo> aimRunInfoList = new ArrayList<>(); | List<InsMetricInfoVo> aimRunInfoList = new ArrayList<>(); | ||||
| for (ExperimentIns experimentIns : experimentInsList) { | |||||
| for (ExperimentIns experimentIns : collect) { | |||||
| InsMetricInfoVo aimRunInfo = new InsMetricInfoVo(); | InsMetricInfoVo aimRunInfo = new InsMetricInfoVo(); | ||||
| aimRunInfo.setExperimentInsId(experimentIns.getId()); | aimRunInfo.setExperimentInsId(experimentIns.getId()); | ||||
| aimRunInfo.setStartTime(experimentIns.getCreateTime()); | aimRunInfo.setStartTime(experimentIns.getCreateTime()); | ||||
| @@ -250,6 +250,19 @@ | |||||
| where experiment_id = #{id} and state = 1 | where experiment_id = #{id} and state = 1 | ||||
| </select> | </select> | ||||
| <select id="countTorE" resultType="java.lang.Long"> | |||||
| select count(1) | |||||
| from experiment_ins | |||||
| where state = 1 | |||||
| and experiment_id = #{experimentId} | |||||
| <if test="isTrain"> | |||||
| and not JSON_CONTAINS(metric_record, 'null', '$.train') | |||||
| </if> | |||||
| <if test="! isTrain"> | |||||
| and not JSON_CONTAINS(metric_record, 'null', '$.evaluate') | |||||
| </if> | |||||
| </select> | |||||
| <!--新增所有列--> | <!--新增所有列--> | ||||
| <insert id="insert" keyProperty="id" useGeneratedKeys="true"> | <insert id="insert" keyProperty="id" useGeneratedKeys="true"> | ||||
| insert into experiment_ins(experiment_id,argo_ins_name,argo_ins_ns,status,nodes_status,nodes_result,nodes_logs,global_param,metric_record,metric_value,start_time,finish_time,create_by,create_time,update_by,update_time,state) | insert into experiment_ins(experiment_id,argo_ins_name,argo_ins_ns,status,nodes_status,nodes_result,nodes_logs,global_param,metric_record,metric_value,start_time,finish_time,create_by,create_time,update_by,update_time,state) | ||||