package com.trade.purchase.enquiry; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.trade.purchase.order.dto.OrderSubmitDto; import com.trade.purchase.order.entity.Order; import com.trade.purchase.order.entity.OrderFees; import com.trade.purchase.order.entity.OrderFiles; import com.trade.purchase.order.entity.OrderItems; import com.trade.purchase.order.enums.OrderTypeEnum; import com.trade.purchase.order.service.IOrderFeesService; import com.trade.purchase.order.service.IOrderFilesService; import com.trade.purchase.order.service.IOrderItemsService; import com.trade.purchase.order.service.IOrderService; import com.trade.purchase.order.vo.OrderVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; /** * 出口船务询价 控制器 * * @author BladeX * @since 2021-09-26 */ @RestController @AllArgsConstructor @RequestMapping("/shipping-enquiry") @Api(value = "出口船务询价", tags = "出口船务询价接口") public class ShippingEnquiry extends BladeController { private final IOrderService orderService; private final IOrderFeesService orderFeesService; private final IOrderFilesService orderFilesService; private final IOrderItemsService orderItemsService; private final String ERROR_MSG = "缺少查询信息"; /** * 详情 */ @GetMapping("/{id}") @ApiOperationSupport(order = 1) @ApiOperation(value = "详情", notes = "传入order") public R detail(@PathVariable(value = "id") String id) { return orderService.getShippingMessage(id); } /** * 分页 出口采购询价 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "查询所有", notes = "传入order") public R> list(Order order, Query query) { order.setIsDeleted(0); order.setTenantId(AuthUtil.getTenantId()); order.setBillType(OrderTypeEnum.ENQUIRY.getType()); order.setTradeType(OrderTypeEnum.EXPORT.getType()); IPage pages = orderService.page(Condition.getPage(query), Condition.getQueryWrapper(order)); return R.data(pages); } /** * 自定义分页 出口采购询价 */ @GetMapping("/page") @ApiOperationSupport(order = 3) @ApiOperation(value = "分页", notes = "传入order") public R> page(OrderVO order, Query query) { order.setIsDeleted(0); order.setTenantId(AuthUtil.getTenantId()); order.setBillType(OrderTypeEnum.ENQUIRY.getType()); order.setTradeType(OrderTypeEnum.EXPORT.getType()); IPage pages = orderService.shippingEnquiry(Condition.getPage(query), order); return R.data(pages); } /** * 新增 出口采购询价 */ @PostMapping("/save") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入order") public R save(@Valid @RequestBody OrderSubmitDto submitDto) { submitDto.setBillType(OrderTypeEnum.ENQUIRY.getType()); submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT); return orderService.saveOrderMessage(submitDto); } /** * 修改 出口采购询价 */ @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入order") public R update(@Valid @RequestBody Order order) { if (order.getId() == null) { return R.fail(ERROR_MSG); } Order orderMessage = orderService.getById(order.getId()); if (orderMessage != null && !orderMessage.getIfShipping().equals("无")){ return R.fail(500,"已提交船务询价,请勿重复提交"); } order.setIfShipping("已提交"); return R.status(orderService.saveOrUpdate(order)); } /** * 新增或修改 出口采购询价 */ @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入order") public R submit(@Valid @RequestBody OrderSubmitDto submitDto) { submitDto.setBillType(OrderTypeEnum.ENQUIRY.getType()); submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT); return orderService.saveShippingMessage(submitDto); } /** * 采购订单表 */ @PostMapping("/removeByItem") @ApiOperationSupport(order = 5) @ApiOperation(value = "删除明细信息", notes = "传入order") public R update(@Valid @RequestBody OrderItems order) { if (order.getId() == null) { return R.fail(500, "请选择要删除的数据"); } order.setIsDeleted(1); return R.status(orderItemsService.updateById(order)); } /** * 删除 出口采购询价 */ @PostMapping("/remove") @ApiOperationSupport(order = 8) @ApiOperation(value = "删除", notes = "传入ids") public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) { return R.status(orderService.removeByIds(Func.toLongList(ids))); } /** * 删除费用信息 */ @PostMapping("/removeByFees") @ApiOperationSupport(order = 8) @ApiOperation(value = "删除费用信息", notes = "传入order") public R update(@Valid @RequestBody OrderFees order) { if (order.getId() == null) { return R.fail(ERROR_MSG); } return R.status(orderFeesService.removeById(order)); } /** * 删除订单文件信息 * * @param order * @return */ @PostMapping("/removeByFiles") @ApiOperationSupport(order = 9) @ApiOperation(value = "删除文件信息", notes = "传入order") public R update(@Valid @RequestBody OrderFiles order) { if (order.getId() == null) { return R.fail(ERROR_MSG); } return R.status(orderFilesService.removeById(order)); } }