IndexController.java 3.78 KB
package com.order.erp.controller;

import com.order.erp.common.constant.ServerResult;
import com.order.erp.domain.OrderStatusEnum;
import com.order.erp.domain.vo.IndexDataVO;
import com.order.erp.service.order.OrderBaseInfoService;
import com.order.erp.service.order.OrderCompletionReportService;
import com.order.erp.service.order.OrderInspectionStageService;
import com.order.erp.service.order.OrderProfitAnalysisService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;

/**
 * @author zhongnanhuang
 * @version 1.0
 * @project order-erp
 * @description 首页
 * @date 2023/10/23 16:44:55
 */
@Api(tags = "首页")
@RestController
@RequestMapping("/order/erp/index")
public class IndexController {

    @Resource
    OrderBaseInfoService orderBaseInfoService;

    @Resource
    OrderInspectionStageService orderInspectionStageService;

    @Resource
    OrderProfitAnalysisService orderProfitAnalysisService;

    @Resource
    OrderCompletionReportService orderCompletionReportService;

    @GetMapping("/data")
    @ApiOperation("首页统计数据")
    public ServerResult getData(){
        //订单总完成数
        long orderTotalFinished = orderBaseInfoService.countByOrderStatus(OrderStatusEnum.ORDER_FINISH.getStatus());
        //订单当月完成数
        long orderRecentMonthFinished = orderBaseInfoService.countRecentMonthByOrderStatus(OrderStatusEnum.ORDER_FINISH.getStatus());


        //跟单和质检中
        long inspecting  = orderInspectionStageService.countByOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus());
        long recentMonthInspecting  = orderInspectionStageService.countRecentMonthByOrderStatus(OrderStatusEnum.INSPECT_ING.getStatus());

        //利润分析表待审核
        long orderProfitWaitAudit = orderProfitAnalysisService.countByOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus());
        long orderRecentWeekProfitWaitAudit = orderProfitAnalysisService.countRecentWeekByOrderStatus(OrderStatusEnum.PROFIT_WAIT_AUDIT.getStatus());

        //项目报告书待审核
        long orderReport = orderCompletionReportService.countByOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus());
        long orderYearReport = orderCompletionReportService.countYearByOrderStatus(OrderStatusEnum.REPORT_WAIT_AUDIT.getStatus());

        //总订单数
        long orderCount = orderBaseInfoService.countAll();
        //近一年订单数
        long orderRecentYearCount = orderBaseInfoService.countRecentYear();

        IndexDataVO indexDataVo = new IndexDataVO();
        indexDataVo.setOrderFinishedCount(orderTotalFinished);
        indexDataVo.setOrderRecentMonthFinishedCount(orderRecentMonthFinished);
        indexDataVo.setOrderInspectingCount(inspecting);
        indexDataVo.setOrderRecentMonthInspectingCount(recentMonthInspecting);
        indexDataVo.setOrderProfitWaitAuditCount(orderProfitWaitAudit);
        indexDataVo.setOrderRecentWeekProfitWaitAuditCount(orderRecentWeekProfitWaitAudit);
        indexDataVo.setOrderReportWaitAuditCount(orderReport);
        indexDataVo.setOrderReportRecentYearWaitAuditCount(orderYearReport);
        indexDataVo.setOrderCount(orderCount);
        indexDataVo.setOrderRecentYearCount(orderRecentYearCount);

        return ServerResult.success(indexDataVo);
    }

    @GetMapping("/chartData")
    @ApiOperation("首页订单趋势")
    public ServerResult getChartData(){
        //订单趋势数据
        List<Map<String,Integer>> chartData = orderBaseInfoService.countDaysOrder();
        return ServerResult.success(chartData);
    }
}