package com.doumee.cloud.web; import com.doumee.api.BaseController; import com.doumee.config.annotation.CloudRequiredPermission; import com.doumee.config.annotation.LoginNoRequired; import com.doumee.core.annotation.trace.Trace; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.*; import com.doumee.dao.web.reqeust.*; import com.doumee.dao.web.response.DriverHomeVO; import com.doumee.dao.web.response.LineUpVO; import com.doumee.dao.web.response.PlatformWorkVO; import com.doumee.service.business.*; import com.doumee.service.business.third.WmsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/12/28 14:31 */ @Api(tags = "【公众号】PDA月台业务") @Trace(exclude = true) @RestController @RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/pdaPlatform") @Slf4j @LoginNoRequired public class PdaPlatformController extends BaseController { @Autowired private PlatformJobService platformJobService; @Autowired private PlatformGroupService platformGroupService; @Autowired private PlatformShowParamService platformShowParamService; @Autowired private PlatformService platformService; @Autowired private PlatformWmsJobService platformWmsJobService; @Autowired private WmsService wmsService; @ApiOperation("获取月台组信息") @PostMapping("/getPlatformGroupList") @CloudRequiredPermission("business:platform:query") public ApiResponse> getPlatformGroupList (@RequestBody PlatformDataDTO platformDataDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(platformGroupService.getAllPlatformGroup(platformDataDTO,getLoginUser(token))); } @ApiOperation("获取月台任务信息") @GetMapping("/getPlatformWorkData") @CloudRequiredPermission("business:platform:query") public ApiResponse getPlatformWorkData (@RequestParam Integer platformId, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ return ApiResponse.success(platformJobService.getPlatformWorkVOById(platformId)); } @ApiOperation("更新月台配置信息") @GetMapping("/updUserPlatformConfig") @CloudRequiredPermission("business:platform:update") public ApiResponse updUserPlatformConfig (@RequestParam List ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ platformShowParamService.updUserConfig(ids,getLoginUser(token)); return ApiResponse.success("操作成功"); } @ApiOperation("修改禁启用状态") @PostMapping("/updPlatformStatus") @CloudRequiredPermission("business:platform:update") public ApiResponse updPlatformStatus (@RequestBody Platform platform, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){ platform.setLoginUserInfo(getLoginUser(token)); platformService.updateStatusById(platform); return ApiResponse.success("操作成功"); } @ApiOperation("车辆排队情况") @PostMapping("/platformLineUpPage") @CloudRequiredPermission("business:platform:query") public ApiResponse> platformLineUpPage (@RequestBody PageWrap pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(platformJobService.platformCallList(pageWrap)); } @ApiOperation("叫号列表") @PostMapping("/platformCallList") @CloudRequiredPermission("business:platform:query") public ApiResponse> platformCallList (@RequestBody PageWrap pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(platformJobService.platformCallList(pageWrap)); } @ApiOperation("叫号入园") @PostMapping("/platformInPark") @CloudRequiredPermission("business:platform:update") public ApiResponse platformInPark (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); PlatformJob platformJob = platformJobService.platformInPark(jobOperateDTO); platformJobService.sendInPark(platformJob); return ApiResponse.success("操作成功"); } @ApiOperation("月台叫号") @PostMapping("/platformCallNumber") @CloudRequiredPermission("business:platform:update") public ApiResponse platformCallNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); PlatformJob oldPlatformJob = platformJobService.findById(jobOperateDTO.getJobId()); PlatformJob platformJob = platformJobService.platformCallNumber(jobOperateDTO); if(Constants.equalsInteger(oldPlatformJob.getStatus(),Constants.PlatformJobStatus.WAIT_CALL.getKey())){ platformJobService.sendInPark(platformJob); } if(!Constants.equalsInteger(platformJob.getType(),Constants.FOUR) && StringUtils.isNotBlank(platformJob.getBillCode())){ //通知WMS绑定月台信息 wmsService.orderPlatformBind(platformJob); } return ApiResponse.success("操作成功"); } @ApiOperation("转移月台") @PostMapping("/platformMove") @CloudRequiredPermission("business:platform:update") public ApiResponse platformMove (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); platformJobService.platformMove(jobOperateDTO); return ApiResponse.success("操作成功"); } @ApiOperation("月台过号") @PostMapping("/platformOverNumber") @CloudRequiredPermission("business:platform:update") public ApiResponse platformOverNumber (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); PlatformJob platformJob = platformJobService.platformOverNumber(jobOperateDTO); platformJobService.cancelInPark(platformJob); return ApiResponse.success("操作成功"); } @ApiOperation("异常挂起") @PostMapping("/platformErr") @CloudRequiredPermission("business:platform:update") public ApiResponse platformErr (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); platformJobService.platformErr(jobOperateDTO); return ApiResponse.success("操作成功"); } @ApiOperation("手动开始作业") @PostMapping("/beginWork") @CloudRequiredPermission("business:platform:update") public ApiResponse beginWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); PlatformJob platformJob = platformJobService.beginWork(jobOperateDTO); platformJobService.cancelInPark(platformJob); return ApiResponse.success("操作成功"); } @ApiOperation("完成作业") @PostMapping("/finishWork") @CloudRequiredPermission("business:platform:update") public ApiResponse finishWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { jobOperateDTO.setLoginUserInfo(getLoginUser(token)); PlatformJob platformJob = platformJobService.finishWork(jobOperateDTO); //下发离园权限 platformJobService.sendInPark(platformJob); return ApiResponse.success("操作成功"); } @ApiOperation("WMS运输单详情") @GetMapping("/wmsJobDetail") @CloudRequiredPermission("business:platform:query") public ApiResponse wmsJobDetail(@RequestParam Integer id) { return ApiResponse.success(platformWmsJobService.findByDetailId(id)); } }