DomTransController.java 9.0 KB
package com.tianbo.analysis.controller;
import com.github.pagehelper.PageInfo;
import com.tianbo.analysis.annotation.UserPermissionCheck;
import com.tianbo.analysis.dao.DOMTRANSITMapper;
import com.tianbo.analysis.model.DOMTRANSIT;
import com.tianbo.analysis.model.ResultJson;
import com.tianbo.analysis.service.DomTransitService;
import com.tianbo.analysis.service.ValidateAudit;
import com.tianbo.analysis.service.ValidateUpdate;
import com.tianbo.util.Date.DateUtil;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.LinkedHashMap;
import java.util.List;

/**
 * 国内转运接口
 */
@RestController
@RequestMapping("/trans/")
public class DomTransController {

    @Autowired
    DomTransitService domTransitService;

    @Resource
    DOMTRANSITMapper domtransitMapper;

    @ApiOperation(value = "添加转运申请")
    @PostMapping("dom")
    @UserPermissionCheck
    public ResultJson add(@RequestBody DOMTRANSIT domtransit,@CookieValue("username") String username,@CookieValue("userid") String userid){
        domtransit.setUserName(username);
        return domTransitService.insertSelective(domtransit)>0  ? new  ResultJson("200","添加成功") :new ResultJson("400","添加失败");
    }

    @ApiOperation(value = "删除转运申请")
    @DeleteMapping("dom")
    @UserPermissionCheck
    public ResultJson del(@RequestBody DOMTRANSIT domtransit,@CookieValue("username") String username,@CookieValue("userid") String userid){
        return domTransitService.deleteByPrimaryKey(domtransit.getId())>0  ? new  ResultJson("200","删除成功") :new ResultJson("400","删除失败");
    }

    @ApiOperation(value = "删除转运申请,非RESFUL支持IIS",notes = "id必须传")
    @PostMapping("domDel")
    @UserPermissionCheck
    public ResultJson delDom(@RequestBody DOMTRANSIT domtransit,@CookieValue("username") String username,@CookieValue("userid") String userid){
        return domTransitService.deleteByPrimaryKey(domtransit.getId())>0  ? new  ResultJson("200","删除成功") :new ResultJson("400","删除失败");
    }

    @ApiOperation(value = "修改转运申请",notes = "id必须传")
    @PutMapping("dom")
    @UserPermissionCheck
    public ResultJson update(@Validated(ValidateUpdate.class) @RequestBody DOMTRANSIT domtransit,@CookieValue("username") String username,@CookieValue("userid") String userid){
        return domTransitService.updateByPrimaryKeySelective(domtransit)>0  ? new  ResultJson("200","修改成功") :new ResultJson("400","修改失败");
    }

    @ApiOperation(value = "修改转运申请非RESFUL,IIS不支持",notes = "id必须传")
    @PostMapping("domUpdate")
    @UserPermissionCheck
    public ResultJson updateDom(@Validated(ValidateUpdate.class) @RequestBody DOMTRANSIT domtransit,@CookieValue("username") String username,@CookieValue("userid") String userid){
        return domTransitService.updateByPrimaryKeySelective(domtransit)>0  ? new  ResultJson("200","修改成功") :new ResultJson("400","修改失败");
    }


    @ApiOperation(value = "转运申请查询搜索",notes = "awba转运前主单,awbh转运前分单,flightDate,flightNo转运前航班信息")
    @GetMapping("dom")
    @UserPermissionCheck
    public ResultJson<PageInfo<DOMTRANSIT>> select(@RequestParam(value = "pageNum",required = false,defaultValue = "1")
                                         int pageNum,
                                       @RequestParam(value = "pageSize",required = false,defaultValue = "10")
                                         int pageSize,
                                       @RequestParam(value = "originMasterwaybill",required = false) String awba,
                                       @RequestParam(value = "originHousewaybill",required = false) String awbh,
                                       @RequestParam(value = "originFlightdate",required = false) String flightDate,
                                       @RequestParam(value = "originFlightdateEnd",required = false) String originFlightdateEnd,
                                       @RequestParam(value = "originFlightno",required = false) String flightNo,
                                       @RequestParam(value = "transType",required = false) String transType,
                                       @RequestParam(value = "agentName",required = false) String agentName,
                                       @CookieValue("username") String username,
                                       @CookieValue("userid") String userid){
        DOMTRANSIT domtransit = new DOMTRANSIT();
        domtransit.setOriginMasterwaybill(awba);
        domtransit.setOriginHousewaybill(awbh);
        domtransit.setOriginFlightno(flightNo);
        domtransit.setTransitType(transType);
        domtransit.setAgentName(agentName);

        //todo:权限校验,有管理权限的 显示全部数据
        if (!"admin".equals(username)){
            domtransit.setUserName(username);
        }
        if(StringUtils.isNotEmpty(flightDate) && StringUtils.isNotEmpty(originFlightdateEnd)){
            domtransit.setOriginFlightdate(DateUtil.parseDate(flightDate,"yyyy-MM-dd"));
            domtransit.setOriginFlightdateEnd(DateUtil.parseDate(originFlightdateEnd,"yyyy-MM-dd"));
        }
        return new ResultJson<PageInfo<DOMTRANSIT>>("200","success",domTransitService.selectList(domtransit,pageNum,pageSize));
    }

    @ApiOperation(value = "审核接口",notes = "中转审核,id及状态必填")
    @PostMapping("audit")
    @UserPermissionCheck
    public ResultJson audit(@Validated(ValidateAudit.class) @RequestBody DOMTRANSIT domtransit,
                            @CookieValue("username") String username,
                            @CookieValue("userid") String userid){
        domtransit.setApproverAccount(username);
        int i = domTransitService.updateByAudit(domtransit);
        return i >0 ?new ResultJson("200", "审核通过"):new ResultJson("403", "审核失败");
    }


    @ApiOperation(value = "今日转运统计接口",notes = "开始日期为今日,结束日期为今日加一")
    @GetMapping("analysisTodayWeight")
    public ResultJson analysisTodayWeight( @RequestParam(value = "startDate") String startDate,
                                           @RequestParam(value = "endDate") String endDate){
        List<LinkedHashMap>  result = domtransitMapper.analysisTodayWeight(startDate,endDate);

        return new ResultJson("200","success",result);
    }

    @ApiOperation(value = "excel导出数据",notes = "awba转运前主单,awbh转运前分单,flightDate,flightNo转运前航班信息")
    @GetMapping("excelDom")
    @UserPermissionCheck
    public ResultJson<List<DomTransController>> excelDom(@RequestParam(value = "pageNum",required = false,defaultValue = "1")
                                                           int pageNum,
                                                   @RequestParam(value = "pageSize",required = false,defaultValue = "10")
                                                           int pageSize,
                                                   @RequestParam(value = "originMasterwaybill",required = false) String awba,
                                                   @RequestParam(value = "originHousewaybill",required = false) String awbh,
                                                   @RequestParam(value = "originFlightdate",required = false) String flightDate,
                                                   @RequestParam(value = "originFlightdateEnd",required = false) String originFlightdateEnd,
                                                   @RequestParam(value = "originFlightno",required = false) String flightNo,
                                                   @RequestParam(value = "transType",required = false) String transType,
                                                   @RequestParam(value = "agentName",required = false) String agentName,
                                                   @CookieValue("username") String username,
                                                   @CookieValue("userid") String userid){
        DOMTRANSIT domtransit = new DOMTRANSIT();
        domtransit.setOriginMasterwaybill(awba);
        domtransit.setOriginHousewaybill(awbh);
        domtransit.setOriginFlightno(flightNo);
        domtransit.setTransitType(transType);
        domtransit.setAgentName(agentName);

        //todo:权限校验,有管理权限的 显示全部数据
        if (!"admin".equals(username)){
            domtransit.setUserName(username);
        }
        if(StringUtils.isNotEmpty(flightDate) && StringUtils.isNotEmpty(originFlightdateEnd)){
            domtransit.setOriginFlightdate(DateUtil.parseDate(flightDate,"yyyy-MM-dd"));
            domtransit.setOriginFlightdateEnd(DateUtil.parseDate(originFlightdateEnd,"yyyy-MM-dd"));
        }
        return new ResultJson("200","success", domTransitService.excelDom(domtransit));
    }
}