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 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> platformGroupFinish() { List 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> platformDuration() { List 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> workEfficiency(@RequestParam Integer type) { List 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 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 platformLogList = platformLogMapper.selectList(new QueryWrapper().lambda() .orderByDesc(PlatformLog::getCreateDate) .last(" limit 7 ") ); carWorkSituationVO.setPlatformLogList(platformLogList); return ApiResponse.success(carWorkSituationVO); } @LoginNoRequired @ApiOperation("实时月台作业信息") @GetMapping("/platformWorkData") public ApiResponse> platformWorkData() { List 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); } }