com.eu.evaluation.server.service.impl.resultCollator.SimpleStatisticsResultCollator.java Source code

Java tutorial

Introduction

Here is the source code for com.eu.evaluation.server.service.impl.resultCollator.SimpleStatisticsResultCollator.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.eu.evaluation.server.service.impl.resultCollator;

import com.eu.evaluation.model.eva.history.EvaluateVersion;
import com.eu.evaluation.model.eva.result.SimpleStatistics;
import com.eu.evaluation.model.sys.AccessSystem;
import com.eu.evaluation.server.dao.DefaultDAO;
import com.eu.evaluation.server.dao.eva.history.ResultDAO;
import com.eu.evaluation.server.dao.eva.history.SimpleStatisticsDAO;
import com.eu.evaluation.server.dao.eva.history.UnPassedEvaluatedDataDAO;
import com.eu.evaluation.server.dao.sys.AccessSystemDAO;
import com.eu.evaluation.server.service.ResultCollator;
import java.text.MessageFormat;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.stereotype.Component;

/**
 * ???????
 *
 * @author dell
 */
@Component
public class SimpleStatisticsResultCollator implements ResultCollator {

    @Autowired
    private DefaultDAO defaultDAO;

    @Autowired
    private SimpleStatisticsDAO simpleStatisticsDAO;

    @Autowired
    private AccessSystemDAO accessSystemDAO;

    @Autowired
    private UnPassedEvaluatedDataDAO unPassedEvaluatedDataDAO;

    @Autowired
    private ResultDAO resultDAO;

    public void collate(EvaluateVersion ev) {

        List<AccessSystem> systems = accessSystemDAO.findByEvaluateVersion(ev.getId());
        for (AccessSystem system : systems) {
            //?SimpleStatistics
            simpleStatisticsDAO.delete(ev, system);

            //?ResultSimpleStatistics??????
            List<SimpleStatistics> statisticses = resultDAO.groupToSimpleStatistics(ev, system);

            //???????
            List<SimpleStatistics> list = unPassedEvaluatedDataDAO.countToSimpleStatistics(ev, system);

            //SimpleStatistics??????
            for (SimpleStatistics simpleStatistics : statisticses) {
                //??
                String jpql = "select count(*) from {0} t where t.evaluateVersion.id = :evid and t.position = :position";
                jpql = MessageFormat.format(jpql, new Object[] { simpleStatistics.getInstanceClass() });
                MapSqlParameterSource params = new MapSqlParameterSource();
                params.addValue("evid", ev.getId());
                params.addValue("position", system.getCode());
                Long total = defaultDAO.executeCount(jpql, params);
                simpleStatistics.setTotal(total);

                //?
                for (SimpleStatistics ss : list) {
                    if (ss.getInstanceType() == simpleStatistics.getInstanceType()
                            && ss.getEvaluateTypeEnum() == simpleStatistics.getEvaluateTypeEnum()) {
                        simpleStatistics.setFailCount(ss.getFailCount());
                        break;
                    }
                }

                //?
                simpleStatistics.setSuccessCount(simpleStatistics.getTotal() - simpleStatistics.getFailCount());

                //?
                simpleStatistics.setEvaluateVersion(ev);
                simpleStatistics.setPosition(system.getCode());
            }

            this.simpleStatisticsDAO.save(statisticses);

        }

    }

}