OrderController.java 4.88 KB
package com.order.erp.controller;

import com.order.erp.common.annotation.AnonymousAccess;
import com.order.erp.common.constant.ServerResult;
import com.order.erp.common.excel4j.exceptions.Excel4JException;
import com.order.erp.common.exception.BusinessException;
import com.order.erp.domain.vo.order.*;
import com.order.erp.mapper.order.OrderBaseInfoMapper;
import com.order.erp.service.order.OrderBaseInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Objects;

/**
 * 订单基础信息表(OrderBaseInfo)表控制层
 *
 * @author makejava
 * @since 2023-09-08 15:26:43
 */
@Api(tags = "订单管理")
@RestController
@RequestMapping("/order/erp/order")
public class OrderController {
    /**
     * 服务对象
     */
    @Resource
    private OrderBaseInfoService orderBaseInfoService;

    @Resource
    private OrderBaseInfoMapper orderBaseInfoMapper;

    /**
     * 分页查询
     *
     * @param orderBaseInfoQueryVO 查询条件
     * @return 查询结果
     */
    @PostMapping("/list_by_page")
    @ApiOperation("分页查询")
    @AnonymousAccess
    public ServerResult listByPage(@RequestBody @Validated OrderBaseInfoQueryVO orderBaseInfoQueryVO) {
        return orderBaseInfoService.listByPage(orderBaseInfoQueryVO);
    }

    /**
     * 导出订单
     *
     * @param orderBaseInfoQueryVO 查询条件
     * @return 查询结果
     */
    @PostMapping(value = "/export")
    @ApiOperation("导出订单")
    @AnonymousAccess
    public void export(HttpServletResponse response, @RequestBody @Validated OrderBaseInfoQueryVO orderBaseInfoQueryVO) throws IOException, Excel4JException {
        orderBaseInfoService.export(response, orderBaseInfoQueryVO);
    }

    /**
     * 通过主键查询单条数据
     *
     * @param orderBaseInfoQueryVO 查询条件
     * @return 单条数据
     */
    @PostMapping("/query_by_id")
    public ServerResult queryById(@RequestBody OrderBaseInfoQueryVO orderBaseInfoQueryVO) {
        return orderBaseInfoService.queryById(orderBaseInfoQueryVO);
    }

    /**
     * 新增数据
     *
     * @param orderAddVO 数据VO
     * @return 新增结果
     */
    @PostMapping("/add")
    @ApiOperation("新增数据")
    @AnonymousAccess
    public ServerResult add(@RequestBody OrderAddVO orderAddVO) {
        return orderBaseInfoService.add(orderAddVO);
    }

    /**
     * 字段解锁申请
     *
     * @param fieldVO 查询条件
     * @return 查询结果
     */
    @PostMapping("/field_unlock_apply")
    @ApiOperation("字段解锁申请")
    @AnonymousAccess
    public ServerResult fieldUnlockApply(@RequestBody @Validated OrderUnlockFieldApplyVO fieldVO) {
        return orderBaseInfoService.fieldUnlockApply(fieldVO);
    }


    /**
     * 编辑数据
     *
     * @param updateVO 数据VO
     * @return 编辑结果
     */
    @ApiOperation("编辑数据")
    @PostMapping("/edit")
    public ServerResult edit(@RequestBody OrderUpdateVO updateVO) {
        return orderBaseInfoService.edit(updateVO);
    }

    /**
     * 删除数据
     *
     * @param orderBaseInfoQueryVO 查询条件
     * @return 删除是否成功
     */
    @ApiOperation("删除数据")
    @PostMapping("/delete_by_id")
    public ServerResult deleteById(@RequestBody OrderBaseInfoQueryVO orderBaseInfoQueryVO) {
        return orderBaseInfoService.deleteById(orderBaseInfoQueryVO);
    }

    /**
     * @param dto
     * @return ServerResult
     * @Description: 查询项目号或者内部编号
     * @Author wmr
     * @CreateTime 2023/12/21 14:50
     */
    @ApiOperation("查询项目号或者内部编号")
    @PostMapping("/queryProjectNoAndInnerNo")
    public ServerResult queryProjectNoAndInnerNo(@RequestBody QueryProjectNoAndInnerNoDto dto) {
        if (Objects.isNull(dto.getProjectNo()) && Objects.isNull(dto.getInnerNo())) {
            throw new BusinessException("请传入项目号或内部编号");
        }
        return ServerResult.success(orderBaseInfoMapper.queryProjectNoAndInnerNoDto(dto.getInnerNo() == null ? Boolean.TRUE : Boolean.FALSE, dto));
    }

    /**
     * 校验是否重复
     *
     * @param orderBaseInfoQueryVO 查询条件
     * @return 查询结果
     */
    @PostMapping("/check")
    @ApiOperation("校验是否重复")
    @AnonymousAccess
    public ServerResult check(@RequestBody OrderBaseInfoQueryVO orderBaseInfoQueryVO) {
        return orderBaseInfoService.check(orderBaseInfoQueryVO);
    }
}