package com.doumee.cloud.board; 
 | 
  
 | 
import com.alibaba.fastjson.JSONObject; 
 | 
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 
 | 
import com.doumee.api.BaseController; 
 | 
import com.doumee.config.annotation.LoginNoRequired; 
 | 
import com.doumee.core.exception.BusinessException; 
 | 
import com.doumee.core.model.ApiResponse; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.core.utils.DateUtil; 
 | 
import com.doumee.dao.business.PlatformLogMapper; 
 | 
import com.doumee.dao.business.model.Platform; 
 | 
import com.doumee.dao.business.model.PlatformJob; 
 | 
import com.doumee.dao.business.model.PlatformLog; 
 | 
import com.doumee.dao.openapi.request.HkBaseTokenRequest; 
 | 
import com.doumee.dao.system.join.NoticesJoinMapper; 
 | 
import com.doumee.dao.web.response.platformReport.*; 
 | 
import com.doumee.service.business.PlatformJobService; 
 | 
import com.doumee.service.business.PlatformLogService; 
 | 
import io.swagger.annotations.*; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
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.util.*; 
 | 
  
 | 
/** 
 | 
 * Created by IntelliJ IDEA. 
 | 
 * 
 | 
 * @Author : Rk 
 | 
 * @create 2024/10/28 13:42 
 | 
 */ 
 | 
  
 | 
@Api(tags = "场内调度看板") 
 | 
@RestController 
 | 
@Slf4j 
 | 
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/board/api/onSitDispatch") 
 | 
public class OnSitDispatchController extends BaseController { 
 | 
  
 | 
    @Autowired 
 | 
    private PlatformLogMapper platformLogMapper; 
 | 
  
 | 
  
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("中心数据") 
 | 
    @GetMapping("/centerData") 
 | 
    public ApiResponse<OnSitDispatchBoardVO> centerData() { 
 | 
        OnSitDispatchBoardVO data = new OnSitDispatchBoardVO(); 
 | 
        data.setPlatformTotal(100); 
 | 
        data.setFreePlatform(8); 
 | 
        data.setReservationCar(97); 
 | 
        data.setWorkingCar(56); 
 | 
        data.setLineUpCar(35); 
 | 
        return ApiResponse.success(data); 
 | 
    } 
 | 
  
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("今日月台完成订单统计") 
 | 
    @GetMapping("/platformGroupFinish") 
 | 
    public ApiResponse<List<PlatformGroupFinishVO>> platformGroupFinish() { 
 | 
        List<PlatformGroupFinishVO> platformGroupFinishVOList = new ArrayList<>(); 
 | 
        Random random = new Random(); 
 | 
        for (int i = 0; i < 3; i++) { 
 | 
            PlatformGroupFinishVO platformGroupFinishVO = new PlatformGroupFinishVO(); 
 | 
            platformGroupFinishVO.setPlatformGroupName(i+"_月台组名称"); 
 | 
            platformGroupFinishVO.setPlatformId(i); 
 | 
            platformGroupFinishVO.setFinishData(300+random.nextInt(100)); 
 | 
            platformGroupFinishVOList.add(platformGroupFinishVO); 
 | 
        } 
 | 
        return ApiResponse.success(platformGroupFinishVOList); 
 | 
    } 
 | 
  
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("今日月台工作时长趋势") 
 | 
    @GetMapping("/platformDuration") 
 | 
    public ApiResponse<List<PlatformDurationVO>> platformDuration() { 
 | 
        List<PlatformDurationVO> platformDurationList = new ArrayList<>(); 
 | 
        Random random = new Random(); 
 | 
        for (int i = 0; i < 3; i++) { 
 | 
            PlatformDurationVO platformDurationVO = new PlatformDurationVO(); 
 | 
            platformDurationVO.setPlatformName(i+"_月台名称"); 
 | 
            platformDurationVO.setPlatformId(i); 
 | 
            platformDurationVO.setWorkTotalTime(100+random.nextInt(100)); 
 | 
            platformDurationVO.setOpenTotalTime(200+random.nextInt(100)); 
 | 
            platformDurationList.add(platformDurationVO); 
 | 
        } 
 | 
        return ApiResponse.success(platformDurationList); 
 | 
    } 
 | 
  
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("今日月台工作时长趋势") 
 | 
    @GetMapping("/workEfficiency") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "type", value = "查询类型:0=入库;1=出库", required = true), 
 | 
    }) 
 | 
    public ApiResponse<List<WorkEfficiencyVO>> workEfficiency(@RequestParam Integer type) { 
 | 
        List<WorkEfficiencyVO> workEfficiencyVOList = new ArrayList<>(); 
 | 
        Random random = new Random(); 
 | 
        Integer totalWorkNum = 0; 
 | 
        for (int i = 8; i <= 20; i++) { 
 | 
            if(i%2==0){ 
 | 
                WorkEfficiencyVO workEfficiencyVO = new WorkEfficiencyVO(); 
 | 
                workEfficiencyVO.setWorkNum(200+random.nextInt(100)); 
 | 
                totalWorkNum = totalWorkNum + workEfficiencyVO.getWorkNum(); 
 | 
                workEfficiencyVO.setTotalWorkNum(totalWorkNum); 
 | 
                workEfficiencyVO.setWorkTime(StringUtils.leftPad(i+"",2,"0") +":00"); 
 | 
                workEfficiencyVOList.add(workEfficiencyVO); 
 | 
            } 
 | 
        } 
 | 
        return ApiResponse.success(workEfficiencyVOList); 
 | 
    } 
 | 
  
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("今日车辆作业情况") 
 | 
    @GetMapping("/carWorkSituation") 
 | 
    public ApiResponse<CarWorkSituationVO> carWorkSituation() { 
 | 
  
 | 
        Random random = new Random(); 
 | 
        CarWorkSituationVO carWorkSituationVO = new CarWorkSituationVO(); 
 | 
        carWorkSituationVO.setCallNum(200+random.nextInt(100)); 
 | 
        carWorkSituationVO.setFinishNum(100+random.nextInt(100)); 
 | 
        carWorkSituationVO.setCallNum(100+random.nextInt(100)); 
 | 
        carWorkSituationVO.setWorkingNum(100+random.nextInt(100)); 
 | 
        carWorkSituationVO.setFinishNum(100+random.nextInt(100)); 
 | 
        carWorkSituationVO.setInNum(100+random.nextInt(100)); 
 | 
        List<PlatformLog> platformLogList = platformLogMapper.selectList(new QueryWrapper<PlatformLog>().lambda() 
 | 
                .orderByDesc(PlatformLog::getCreateDate) 
 | 
                .last(" limit 7 ") 
 | 
        ); 
 | 
        carWorkSituationVO.setPlatformLogList(platformLogList); 
 | 
        return ApiResponse.success(carWorkSituationVO); 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
    @LoginNoRequired 
 | 
    @ApiOperation("实时月台作业信息") 
 | 
    @GetMapping("/platformWorkData") 
 | 
    public ApiResponse<List<PlatformWorkDataVO>> platformWorkData() { 
 | 
        List<PlatformWorkDataVO> platformWorkDataVOList = new ArrayList<>(); 
 | 
        Random random = new Random(); 
 | 
        for (int i = 0; i < 3; i++) { 
 | 
            PlatformWorkDataVO platformDurationVO = new PlatformWorkDataVO(); 
 | 
            platformDurationVO.setPlatformName(i+"_月台名称"); 
 | 
            platformDurationVO.setCarNo("皖A8" + random.nextInt(9) + random.nextInt(9) + random.nextInt(9) + random.nextInt(9)); 
 | 
            platformDurationVO.setWorkType(random.nextInt(1)); 
 | 
            platformDurationVO.setWorkNum(100+random.nextInt(100)); 
 | 
            platformDurationVO.setFinishTime(Long.valueOf(System.currentTimeMillis()/1000 + 200+random.nextInt(100))); 
 | 
            platformDurationVO.setStatus(random.nextInt(2)); 
 | 
            platformWorkDataVOList.add(platformDurationVO); 
 | 
        } 
 | 
        return ApiResponse.success(platformWorkDataVOList); 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
} 
 |