rk
4 天以前 568e38a95cb6fb20fe16b53d17f610aefc6f744f
server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/web/PdaPlatformController.java
@@ -1,29 +1,25 @@
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.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.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.shiro.authz.annotation.RequiresPermissions;
import org.apache.commons.lang3.StringUtils;
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;
/**
@@ -38,7 +34,7 @@
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/pdaPlatform")
@Slf4j
@LoginNoRequired
//@LoginNoRequired
public class PdaPlatformController extends BaseController {
@@ -54,85 +50,155 @@
    @Autowired
    private PlatformService platformService;
    @Autowired
    private PlatformWmsJobService platformWmsJobService;
    @Autowired
    private WmsService wmsService;
    @ApiOperation("获取月台组信息")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "queryType", dataType = "Integer", value = "0=全部月台;1=启用月台 2=配置显示月台", required = false)
    })
    @GetMapping("/getPlatformGroupList")
    public ApiResponse<List<PlatformGroup>>  getPlatformGroupList (@RequestParam Integer queryType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformGroupService.getAllPlatformGroup(queryType,getLoginUser(token)));
    @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("更新月台配置信息")
    @PostMapping("/updUserPlatformConfig")
    public ApiResponse  updUserPlatformConfig (@RequestBody List<Integer> ids, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
    @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")
    public ApiResponse<PageData<PlatformJob>> platformLineUpPage (@RequestBody PageWrap<PlatformJob> pageWrap) {
        return ApiResponse.success(platformJobService.findPage(pageWrap));
    @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));
        platformJobService.platformInPark(jobOperateDTO);
        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.platformInPark(jobOperateDTO);
        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));
        platformJobService.platformInPark(jobOperateDTO);
        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.platformInPark(jobOperateDTO);
        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));
        platformJobService.platformInPark(jobOperateDTO);
        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));
        platformJobService.platformInPark(jobOperateDTO);
        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));
    }
}