Newer
Older
zq-big-sreen / src / main / java / com / casic / service / impl / OperationalStatusBuilder.java
chaizhuang on 19 Oct 2022 2 KB 没有改变
package com.casic.service.impl;

import com.casic.dao.cms.CmsDataMapper;
import org.springframework.stereotype.Component;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Component
public class OperationalStatusBuilder {

    private final DecimalFormat df = new DecimalFormat("0.00%");
    private final CmsDataMapper cmsDataMapper;

    public OperationalStatusBuilder(CmsDataMapper cmsDataMapper) {
        this.cmsDataMapper = cmsDataMapper;
    }

    public List<Map<String, String>> OperationalStatusProvider(String beginTime, String endTime) {
        List<Map<String, String>> operaStatusList  = getWorkOrder(beginTime,endTime);
        operaStatusList.add(getTask(beginTime,endTime));
        operaStatusList.add(getEvent(beginTime,endTime));
        return operaStatusList;
    }

    private Map<String, String> getTask(String beginTime, String endTime) {
        Integer initTask = cmsDataMapper.getTotalTask(beginTime,endTime);
        Map<String, String> taskMap = new HashMap<>();
        taskMap.put("type", "运维任务");
        taskMap.put("count", String.valueOf(initTask));
        return taskMap;
    }

    private List<Map<String, String>> getWorkOrder(String beginTime, String endTime) {
        List<Map<String, String>> operaStatusList = new ArrayList<>();
        Integer initTask = cmsDataMapper.getTotalWorkOrder(beginTime,endTime);
        Map<String, String> workPageMap = new HashMap<>();
        workPageMap.put("type", "运维工单");
        workPageMap.put("count", String.valueOf(initTask));
        Integer completeTask = cmsDataMapper.getCompleteWorkOrder(beginTime,endTime);
        Map<String, String> completeMap = new HashMap<>();
        completeMap.put("type", "运维完结");
        completeMap.put("count", df.format(Double.valueOf(completeTask) / initTask));
        operaStatusList.add(completeMap);
        operaStatusList.add(workPageMap);
        return operaStatusList;
    }

    private Map<String, String> getEvent(String beginTime, String endTime) {
        Integer initTask = cmsDataMapper.getTotalEvent(beginTime,endTime);
        Map<String, String> eventMap = new HashMap<>();
        eventMap.put("type", "运维事件");
        eventMap.put("count", String.valueOf(initTask));
        return eventMap;
    }

}