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.service.business.third.model.ApiResponse; 
 | 
import com.doumee.service.business.third.model.PageData; 
 | 
import com.doumee.service.business.third.model.PageWrap; 
 | 
import com.doumee.core.utils.Constants; 
 | 
import com.doumee.dao.business.model.*; 
 | 
import com.doumee.dao.web.reqeust.*; 
 | 
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.ApiOperation; 
 | 
import lombok.extern.slf4j.Slf4j; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
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<List<PlatformGroup>>  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<PlatformWorkVO>  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<Integer> 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<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { 
 | 
        return ApiResponse.success(platformJobService.platformCallList(pageWrap)); 
 | 
    } 
 | 
  
 | 
  
 | 
    @ApiOperation("叫号列表") 
 | 
    @PostMapping("/platformCallList") 
 | 
    @CloudRequiredPermission("business:platform:query") 
 | 
    public ApiResponse<PageData<PlatformJob>> platformCallList (@RequestBody PageWrap<PlatformJob> 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("/restoreWork") 
 | 
    @CloudRequiredPermission("business:platform:update") 
 | 
    public ApiResponse restoreWork (@RequestBody JobOperateDTO jobOperateDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) { 
 | 
        jobOperateDTO.setLoginUserInfo(getLoginUser(token)); 
 | 
        PlatformJob platformJob = platformJobService.restoreWork(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<PlatformWmsJob> wmsJobDetail(@RequestParam Integer id) { 
 | 
        return ApiResponse.success(platformWmsJobService.findByDetailId(id)); 
 | 
    } 
 | 
  
 | 
  
 | 
} 
 |