liukangdong
2024-10-31 aecdc1b56b52895b7374ae97249465da2bcefe0b
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/PlatformJobRunController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,184 @@
package com.doumee.cloud.board;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.core.annotation.excel.ExcelColumn;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.PlatformJobMapper;
import com.doumee.dao.business.join.PlatformJobJoinMapper;
import com.doumee.dao.business.model.Platform;
import com.doumee.dao.business.model.PlatformBooks;
import com.doumee.dao.business.model.PlatformJob;
import com.doumee.dao.business.model.PlatformWmsJob;
import com.doumee.dao.web.response.platformReport.*;
import com.doumee.service.business.PlatformJobService;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import io.swagger.annotations.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/10/28 13:42
 */
@Api(tags = "园区物流运行调度看板")
@RestController
@Slf4j
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/platformJobRun")
public class PlatformJobRunController extends BaseController {
    @Autowired
    private PlatformJobJoinMapper platformJobJoinMapper;
    @LoginNoRequired
    @ApiOperation("中心数据")
    @GetMapping("/centerData")
    public ApiResponse<PlatformJobRunBoardVO> centerData() {
        PlatformJobRunBoardVO data = new PlatformJobRunBoardVO();
        Random random = new Random();
        data.setMonthOutTotal(BigDecimal.valueOf(random.nextInt(100)).multiply(new BigDecimal(10000)));
        data.setMonthOutTotalOnYear(BigDecimal.valueOf(random.nextInt(10)));
        data.setMonthOutTimes(random.nextInt(1000));
        data.setYearOutTotal(data.getMonthOutTotal().multiply(new BigDecimal(11)));
        data.setYearOutTotalOnYear(BigDecimal.valueOf(random.nextInt(10)));
        data.setYearOutTimes(random.nextInt(1000) * 11);
        data.setTodayInRata(new BigDecimal(random.nextInt(100)));
        data.setMonthInRata(data.getTodayInRata().multiply(new BigDecimal(30)));
        data.setTodayOutRata(new BigDecimal(random.nextInt(100)));
        data.setMonthOutRata(data.getTodayOutRata().multiply(new BigDecimal(30)));
        data.setStockMax(new BigDecimal(random.nextInt(1000)));
        data.setStockTotal(new BigDecimal(data.getStockMax().intValue()));
        return ApiResponse.success(data);
    }
    @LoginNoRequired
    @ApiOperation("运输任务分析")
    @GetMapping("/transportMeasure")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "queryType", value = "查询类型:0=周;1=月;2=年;", required = true),
    })
    public ApiResponse<List<TransportMeasureVO>> transportMeasure(@RequestParam Integer queryType) {
        List<TransportMeasureVO> list = new ArrayList<>();
        Random random = new Random();
        List<String> dayList = DateUtil.getBeforDays(new Date(),7);
        if(Constants.equalsInteger(queryType,Constants.ONE)){
            dayList = DateUtil.getBeforDays(new Date(),30);
        }else if(Constants.equalsInteger(queryType,Constants.TWO)){
            dayList = DateUtil.getBeforMonth(new Date(),12);
        }
        for (String str:dayList) {
            TransportMeasureVO data = new TransportMeasureVO();
            data.setPlanDate(str);
            data.setPlanTimes(random.nextInt(200));
            data.setPlanTaskNum(new BigDecimal(random.nextInt(1000)));
            data.setFinishTaskNum(new BigDecimal(data.getPlanTaskNum().intValue()));
            list.add(data);
        }
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("当日运输任务")
    @GetMapping("/platformJobList")
    public ApiResponse<List<PlatformJob>> platformJobList() {
        List<PlatformJob> list =  platformJobJoinMapper.selectJoinList(PlatformJob.class,
                new MPJLambdaWrapper<PlatformJob>()
                        .selectAll(PlatformJob.class)
                        .selectAs(PlatformBooks::getId,PlatformJob::getBookId)
                        .selectAs(Platform::getName,PlatformJob::getPlatformName)
                        .selectAs(Platform::getWorkRate,PlatformJob::getWorkRate)
                        .selectAs(PlatformWmsJob::getCarrierName,PlatformJob::getCarrierName)
                        .selectAs(PlatformWmsJob::getRepertotyAddress,PlatformJob::getRepertotyAddress)
                        .leftJoin(Platform.class,Platform::getId,PlatformJob::getPlatformId)
                        .leftJoin(PlatformWmsJob.class,PlatformWmsJob::getCarryBillCode,PlatformJob::getBillCode)
                        .leftJoin(PlatformBooks.class,PlatformBooks::getJobId,PlatformJob::getId)
                        .eq(PlatformJob::getIsdeleted,Constants.ZERO)
                        .in(PlatformJob::getStatus
                                ,Constants.PlatformJobStatus.WAIT_CALL.getKey()
                                ,Constants.PlatformJobStatus.CALLED.getKey()
                                ,Constants.PlatformJobStatus.IN_WAIT.getKey()
                                ,Constants.PlatformJobStatus.WORKING.getKey()
                                ,Constants.PlatformJobStatus.TRANSFERING.getKey()
                                ,Constants.PlatformJobStatus.EXCEPTION.getKey()
                                ,Constants.PlatformJobStatus.DONE.getKey()
                        )
                        .orderByDesc(PlatformJob::getSignNum)
                        .last(" limit 20 ")
        );
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("出入库任务量")
    @GetMapping("/jobData")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "queryType", value = "查询类型:0=出库;1=入库;", required = true),
    })
    public ApiResponse<JobDataVO> jobData(@RequestParam Integer queryType) {
        Random random = new Random();
        JobDataVO jobDataVO = new JobDataVO();
        jobDataVO.setPlanTaskNum(BigDecimal.valueOf(random.nextInt(1000)));
        jobDataVO.setFinishTaskNum(BigDecimal.valueOf(jobDataVO.getPlanTaskNum().intValue()));
        return ApiResponse.success(jobDataVO);
    }
    @LoginNoRequired
    @ApiOperation("今日入库量统计")
    @GetMapping("/totalInList")
    public ApiResponse<List<GeneralVO>> totalInList() {
        List<GeneralVO> list = new ArrayList<>();
        for (int i = 1; i < 4; i++) {
            Random random = new Random();
            GeneralVO data = new GeneralVO();
            data.setName("厂区名称_"+i);
            data.setNum(BigDecimal.valueOf(random.nextInt(1000)));
            list.add(data);
        }
        return ApiResponse.success(list);
    }
    @LoginNoRequired
    @ApiOperation("库存情况")
    @GetMapping("/stockList")
    public ApiResponse<List<GeneralVO>> stockList() {
        List<GeneralVO> list = new ArrayList<>();
        for (int i = 1; i < 10; i++) {
            Random random = new Random();
            GeneralVO data = new GeneralVO();
            data.setName("名称"+i);
            data.setNum(BigDecimal.valueOf(random.nextInt(1000)));
            list.add(data);
        }
        return ApiResponse.success(list);
    }
}