QueryHomeStatsCmd.java 2.67 KB
package com.java110.user.cmd.property;

import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Cmd;
import com.java110.core.context.ICmdDataFlowContext;
import com.java110.core.event.cmd.Cmd;
import com.java110.core.event.cmd.CmdEvent;
import com.java110.dto.inspection.InspectionTaskDto;
import com.java110.dto.repair.RepairDto;
import com.java110.intf.community.IRepairInnerServiceSMO;
import com.java110.intf.community.IInspectionTaskInnerServiceSMO;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.DateUtil;
import com.java110.vo.ResultVo;
import org.springframework.beans.factory.annotation.Autowired;

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

/**
 * 首页统计数据查询(不限制管理员权限)
 */
@Java110Cmd(serviceCode = "property.queryHomeStats")
public class QueryHomeStatsCmd extends Cmd {

    @Autowired
    private IRepairInnerServiceSMO repairInnerServiceSMOImpl;

    @Autowired
    private IInspectionTaskInnerServiceSMO inspectionTaskInnerServiceSMOImpl;

    @Override
    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        // 不限制管理员权限
    }

    @Override
    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
        List<Map> datas = new ArrayList<>();

        String startTime = DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B);
        String endTime = startTime + " 23:59:59";

        // 今日报修数
        RepairDto repairDto = new RepairDto();
        repairDto.setStartTime(startTime);
        repairDto.setEndTime(endTime);
        int repairCount = repairInnerServiceSMOImpl.queryRepairsCount(repairDto);
        Map repairInfo = new HashMap();
        repairInfo.put("name", "今日报修数");
        repairInfo.put("value", repairCount);
        datas.add(repairInfo);

        // 今日巡检数
        InspectionTaskDto inspectionTaskDto = new InspectionTaskDto();
        inspectionTaskDto.setStartTime(startTime);
        inspectionTaskDto.setEndTime(endTime);
        inspectionTaskDto.setStates(new String[]{InspectionTaskDto.STATE_DOING, InspectionTaskDto.STATE_FINISH});
        int inspectionCount = inspectionTaskInnerServiceSMOImpl.queryInspectionTasksCount(inspectionTaskDto);
        Map inspectionInfo = new HashMap();
        inspectionInfo.put("name", "今日巡检数");
        inspectionInfo.put("value", inspectionCount);
        datas.add(inspectionInfo);

        context.setResponseEntity(ResultVo.createResponseEntity(datas));
    }
}