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); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |