PurchaseEnquiry.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. package com.trade.purchase.enquiry;
  2. import com.baomidou.mybatisplus.core.metadata.IPage;
  3. import com.baomidou.mybatisplus.core.toolkit.StringUtils;
  4. import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
  5. import com.trade.purchase.order.dto.OrderSubmitDto;
  6. import com.trade.purchase.order.entity.Order;
  7. import com.trade.purchase.order.entity.OrderFees;
  8. import com.trade.purchase.order.entity.OrderFiles;
  9. import com.trade.purchase.order.entity.OrderItems;
  10. import com.trade.purchase.order.enums.OrderTypeEnum;
  11. import com.trade.purchase.order.service.IOrderFeesService;
  12. import com.trade.purchase.order.service.IOrderFilesService;
  13. import com.trade.purchase.order.service.IOrderItemsService;
  14. import com.trade.purchase.order.service.IOrderService;
  15. import com.trade.purchase.order.vo.OrderVO;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import io.swagger.annotations.ApiParam;
  19. import lombok.AllArgsConstructor;
  20. import org.springblade.core.boot.ctrl.BladeController;
  21. import org.springblade.core.mp.support.Condition;
  22. import org.springblade.core.mp.support.Query;
  23. import org.springblade.core.secure.utils.AuthUtil;
  24. import org.springblade.core.tool.api.R;
  25. import org.springblade.core.tool.utils.Func;
  26. import org.springframework.web.bind.annotation.*;
  27. import javax.validation.Valid;
  28. /**
  29. * 出口采购询价 控制器
  30. *
  31. * @author BladeX
  32. * @since 2021-09-26
  33. */
  34. @RestController
  35. @AllArgsConstructor
  36. @RequestMapping("/purchase-enquiry")
  37. @Api(value = "出口采购询价", tags = "出口采购询价接口")
  38. public class PurchaseEnquiry extends BladeController {
  39. private final IOrderService orderService;
  40. private final IOrderFeesService orderFeesService;
  41. private final IOrderFilesService orderFilesService;
  42. private final IOrderItemsService orderItemsService;
  43. private final String ERROR_MSG = "缺少查询信息";
  44. /**
  45. * 详情
  46. */
  47. @GetMapping("/{id}")
  48. @ApiOperationSupport(order = 1)
  49. @ApiOperation(value = "详情", notes = "传入order")
  50. public R<OrderVO> detail(@PathVariable(value = "id") String id) {
  51. return orderService.getOrderMessage(id);
  52. }
  53. /**
  54. * 分页 出口采购询价
  55. */
  56. @GetMapping("/list")
  57. @ApiOperationSupport(order = 2)
  58. @ApiOperation(value = "查询所有", notes = "传入order")
  59. public R<IPage<Order>> list(Order order, Query query) {
  60. order.setIsDeleted(0);
  61. order.setTenantId(AuthUtil.getTenantId());
  62. order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
  63. order.setTradeType(OrderTypeEnum.EXPORT.getType());
  64. IPage<Order> pages = orderService.page(Condition.getPage(query), Condition.getQueryWrapper(order));
  65. return R.data(pages);
  66. }
  67. /**
  68. * 自定义分页 出口采购询价
  69. */
  70. @GetMapping("/page")
  71. @ApiOperationSupport(order = 3)
  72. @ApiOperation(value = "分页", notes = "传入order")
  73. public R<IPage<OrderVO>> page(OrderVO order, Query query) {
  74. order.setIsDeleted(0);
  75. order.setTenantId(AuthUtil.getTenantId());
  76. order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
  77. order.setTradeType(OrderTypeEnum.EXPORT.getType());
  78. IPage<OrderVO> pages = orderService.selectOrderPage(Condition.getPage(query), order);
  79. return R.data(pages);
  80. }
  81. /**
  82. * 新增 出口采购询价
  83. */
  84. @PostMapping("/save")
  85. @ApiOperationSupport(order = 4)
  86. @ApiOperation(value = "新增", notes = "传入order")
  87. public R<String> save(@Valid @RequestBody OrderSubmitDto submitDto) {
  88. submitDto.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
  89. submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT);
  90. return orderService.saveOrderMessage(submitDto);
  91. }
  92. /**
  93. * 修改 出口采购询价
  94. */
  95. @PostMapping("/update")
  96. @ApiOperationSupport(order = 5)
  97. @ApiOperation(value = "修改", notes = "传入order")
  98. public R<String> update(@Valid @RequestBody Order order) {
  99. if (order.getId() == null) {
  100. return R.fail(ERROR_MSG);
  101. }
  102. order.setIsDeleted(1);
  103. return R.status(orderService.updateById(order));
  104. }
  105. /**
  106. * 新增或修改 出口采购询价
  107. */
  108. @PostMapping("/submit")
  109. @ApiOperationSupport(order = 6)
  110. @ApiOperation(value = "新增或修改", notes = "传入order")
  111. public R<OrderSubmitDto> submit(@Valid @RequestBody OrderSubmitDto submitDto) {
  112. submitDto.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
  113. submitDto.setTradeTypeEnum(OrderTypeEnum.EXPORT);
  114. return orderService.savePurchase(submitDto);
  115. }
  116. /**
  117. * 采购订单表
  118. */
  119. @PostMapping("/removeByItem")
  120. @ApiOperationSupport(order = 5)
  121. @ApiOperation(value = "删除明细信息", notes = "传入order")
  122. public R<String> update(@Valid @RequestBody OrderItems order) {
  123. if (order.getId() == null) {
  124. return R.fail(500, "请选择要删除的数据");
  125. }
  126. order.setIsDeleted(1);
  127. return R.status(orderItemsService.updateById(order));
  128. }
  129. /**
  130. * 删除 出口采购询价
  131. */
  132. @PostMapping("/remove")
  133. @ApiOperationSupport(order = 8)
  134. @ApiOperation(value = "删除", notes = "传入ids")
  135. public R<String> remove(@Valid @RequestBody Order order) {
  136. if (order.getId() == null){
  137. return R.fail(500,"请选择要删除的数据");
  138. }
  139. return R.status(orderService.removeById(order));
  140. }
  141. @PostMapping("/remove-byItem")
  142. @ApiOperationSupport(order = 5)
  143. @ApiOperation(value = "删除明细信息", notes = "传入order")
  144. public R<String> removeByitem(@Valid @RequestBody OrderItems order) {
  145. if (order.getId() == null) {
  146. return R.fail(500, "请选择要删除的数据");
  147. }
  148. return R.status(orderItemsService.removeById(order));
  149. }
  150. /**
  151. * 删除费用信息
  152. */
  153. @PostMapping("/removeByFees")
  154. @ApiOperationSupport(order = 8)
  155. @ApiOperation(value = "删除费用信息", notes = "传入order")
  156. public R<String> update(@Valid @RequestBody OrderFees order) {
  157. if (order.getId() == null) {
  158. return R.fail(ERROR_MSG);
  159. }
  160. order.setIsDeleted(1);
  161. return R.status(orderFeesService.updateById(order));
  162. }
  163. /**
  164. * 删除订单文件信息
  165. *
  166. * @param order
  167. * @return
  168. */
  169. @PostMapping("/removeByFiles")
  170. @ApiOperationSupport(order = 9)
  171. @ApiOperation(value = "删除文件信息", notes = "传入order")
  172. public R<String> update(@Valid @RequestBody OrderFiles order) {
  173. if (order.getId() == null) {
  174. return R.fail(ERROR_MSG);
  175. }
  176. order.setIsDeleted(1);
  177. return R.status(orderFilesService.updateById(order));
  178. }
  179. /**
  180. * 报价单生成采购询价
  181. * @param order
  182. * @return
  183. */
  184. @PostMapping("/savePurchaseEnquiry")
  185. @ApiOperationSupport(order = 10)
  186. @ApiOperation(value = "报价单生成采购询价单", notes = "传入order的id")
  187. public R<OrderVO> savePurchaseEnquiry(@Valid @RequestBody Order order){
  188. order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
  189. order.setTradeType(OrderTypeEnum.EXPORT.getType());
  190. return orderService.savePurchaseEnquiry(order);
  191. }
  192. /**
  193. * 提交采购询价
  194. * @param order
  195. * @return
  196. */
  197. @PostMapping("/submitMessage")
  198. @ApiOperationSupport(order = 10)
  199. @ApiOperation(value = "提交采购询价", notes = "传入order的id")
  200. public R<OrderVO> submitMessage(@Valid @RequestBody Order order){
  201. if (order.getId() == null){
  202. throw new RuntimeException("请选择确认的单据");
  203. }
  204. if (StringUtils.isNotBlank(order.getOrderStatus()) && order.getOrderStatus().equals("询价确认")) {
  205. throw new RuntimeException("请勿重复提交");
  206. }
  207. order.setBillType(OrderTypeEnum.PURCHASE_ENQUIRY.getType());
  208. order.setTradeType(OrderTypeEnum.EXPORT.getType());
  209. return orderService.submit(order);
  210. }
  211. }