package com.trade.purchase.enquiry; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; 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("/purchase-enquiry") @Api(value = "出口采购询价", tags = "出口采购询价接口") public class PurchaseEnquiry 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.getOrderMessage(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.PURCHASE_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.PURCHASE_ENQUIRY.getType()); order.setTradeType(OrderTypeEnum.EXPORT.getType()); IPage pages = orderService.selectOrderPage(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.PURCHASE_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.setIsDeleted(1); return R.status(orderService.updateById(order)); } /** * 新增或修改 出口采购询价 */ @PostMapping("/submit") @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入order") public R submit(@Valid @RequestBody OrderSubmitDto submitDto) { submitDto.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType()); submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT); return orderService.savePurchase(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(@Valid @RequestBody Order order) { if (order.getId() == null){ return R.fail(500,"请选择要删除的数据"); } return R.status(orderService.removeById(order)); } @PostMapping("/remove-byItem") @ApiOperationSupport(order = 5) @ApiOperation(value = "删除明细信息", notes = "传入order") public R removeByitem(@Valid @RequestBody OrderItems order) { if (order.getId() == null) { return R.fail(500, "请选择要删除的数据"); } return R.status(orderItemsService.removeById(order)); } /** * 删除费用信息 */ @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); } order.setIsDeleted(1); return R.status(orderFeesService.updateById(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); } order.setIsDeleted(1); return R.status(orderFilesService.updateById(order)); } /** * 报价单生成采购询价 * @param order * @return */ @PostMapping("/savePurchaseEnquiry") @ApiOperationSupport(order = 10) @ApiOperation(value = "报价单生成采购询价单", notes = "传入order的id") public R savePurchaseEnquiry(@Valid @RequestBody Order order){ order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType()); order.setTradeType(OrderTypeEnum.EXPORT.getType()); return orderService.savePurchaseEnquiry(order); } /** * 提交采购询价 * @param order * @return */ @PostMapping("/submitMessage") @ApiOperationSupport(order = 10) @ApiOperation(value = "提交采购询价", notes = "传入order的id") public R submitMessage(@Valid @RequestBody Order order){ if (order.getId() == null){ throw new RuntimeException("请选择确认的单据"); } if (StringUtils.isNotBlank(order.getOrderStatus()) && order.getOrderStatus().equals("询价确认")) { throw new RuntimeException("请勿重复提交"); } order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType()); order.setTradeType(OrderTypeEnum.EXPORT.getType()); return orderService.submit(order); } }