SalesOrderController.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. package jnpf.controller;
  2. import io.swagger.v3.oas.annotations.Operation;
  3. import io.swagger.v3.oas.annotations.Parameter;
  4. import io.swagger.v3.oas.annotations.Parameters;
  5. import io.swagger.v3.oas.annotations.tags.Tag;
  6. import jnpf.base.ActionResult;
  7. import jnpf.base.controller.SuperController;
  8. import jnpf.constant.MsgCode;
  9. import jnpf.entity.SalesOrderEntity;
  10. import jnpf.entity.SalesOrderEntryEntity;
  11. import jnpf.exception.WorkFlowException;
  12. import jnpf.model.salesorder.SalesOrderEntryEntityInfoModel;
  13. import jnpf.model.salesorder.SalesOrderForm;
  14. import jnpf.model.salesorder.SalesOrderInfoVO;
  15. import jnpf.service.SalesOrderService;
  16. import jnpf.util.GeneraterSwapUtil;
  17. import jnpf.util.JsonUtil;
  18. import jnpf.util.StringUtil;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.web.bind.annotation.*;
  21. import java.util.List;
  22. /**
  23. * 销售订单
  24. *
  25. * @author JNPF开发平台组
  26. * @version V3.1.0
  27. * @copyright 引迈信息技术有限公司
  28. * @date 2019年9月29日 上午9:18
  29. */
  30. @Tag(name = "销售订单", description = "SalesOrder")
  31. @RestController
  32. @RequestMapping("/api/extend/Form/SalesOrder")
  33. public class SalesOrderController extends SuperController<SalesOrderService, SalesOrderEntity> {
  34. @Autowired
  35. private SalesOrderService salesOrderService;
  36. @Autowired
  37. private GeneraterSwapUtil generaterSwapUtil;
  38. /**
  39. * 获取销售订单信息
  40. *
  41. * @param id 主键值
  42. * @return
  43. */
  44. @Operation(summary = "获取销售订单信息")
  45. @GetMapping("/{id}")
  46. @Parameters({
  47. @Parameter(name = "id", description = "主键", required = true),
  48. })
  49. public ActionResult info(@PathVariable("id") String id) {
  50. SalesOrderEntity entity = salesOrderService.getInfo(id);
  51. List<SalesOrderEntryEntity> entityList = salesOrderService.getSalesEntryList(id);
  52. SalesOrderInfoVO vo = JsonUtil.getJsonToBean(entity, SalesOrderInfoVO.class);
  53. if (vo != null) {
  54. vo.setEntryList(JsonUtil.getJsonToList(entityList, SalesOrderEntryEntityInfoModel.class));
  55. }
  56. return ActionResult.success(vo);
  57. }
  58. /**
  59. * 新建销售订单
  60. *
  61. * @param salesOrderForm 表单对象
  62. * @return
  63. * @throws WorkFlowException
  64. */
  65. @Operation(summary = "新建销售订单")
  66. @PostMapping("/{id}")
  67. @Parameters({
  68. @Parameter(name = "id", description = "主键", required = true),
  69. @Parameter(name = "salesOrderForm", description = "销售模型", required = true),
  70. })
  71. public ActionResult create(@RequestBody SalesOrderForm salesOrderForm, @PathVariable("id") String id) throws WorkFlowException {
  72. SalesOrderEntity sales = JsonUtil.getJsonToBean(salesOrderForm, SalesOrderEntity.class);
  73. List<SalesOrderEntryEntity> salesEntryList = JsonUtil.getJsonToList(salesOrderForm.getEntryList(), SalesOrderEntryEntity.class);
  74. salesOrderService.submit(id, sales, salesEntryList, salesOrderForm);
  75. return ActionResult.success(MsgCode.SU006.get());
  76. }
  77. /**
  78. * 修改销售订单
  79. *
  80. * @param salesOrderForm 表单对象
  81. * @param id 主键
  82. * @return
  83. * @throws WorkFlowException
  84. */
  85. @Operation(summary = "修改销售订单")
  86. @PutMapping("/{id}")
  87. @Parameters({
  88. @Parameter(name = "id", description = "主键", required = true),
  89. @Parameter(name = "salesOrderForm", description = "销售模型", required = true),
  90. })
  91. public ActionResult update(@RequestBody SalesOrderForm salesOrderForm, @PathVariable("id") String id) throws WorkFlowException {
  92. SalesOrderEntity sales = JsonUtil.getJsonToBean(salesOrderForm, SalesOrderEntity.class);
  93. sales.setId(id);
  94. List<SalesOrderEntryEntity> salesEntryList = JsonUtil.getJsonToList(salesOrderForm.getEntryList(), SalesOrderEntryEntity.class);
  95. salesOrderService.submit(id, sales, salesEntryList, salesOrderForm);
  96. return ActionResult.success(MsgCode.SU006.get());
  97. }
  98. /**
  99. * 删除销售订单信息
  100. *
  101. * @param id 主键
  102. */
  103. @Operation(summary = "删除销售订单信息")
  104. @DeleteMapping("/{id}")
  105. @Parameters({
  106. @Parameter(name = "id", description = "主键", required = true),
  107. })
  108. public ActionResult delete(@PathVariable("id") String id, @RequestParam(name = "forceDel", defaultValue = "false") Boolean forceDel) {
  109. SalesOrderEntity entity = salesOrderService.getInfo(id);
  110. if (null != entity) {
  111. if (!forceDel) {
  112. String errMsg = generaterSwapUtil.deleteFlowTask(entity.getId());
  113. if (StringUtil.isNotBlank(errMsg)) {
  114. throw new RuntimeException(errMsg);
  115. }
  116. }
  117. salesOrderService.delete(entity);
  118. return ActionResult.success(MsgCode.SU003.get());
  119. }
  120. return ActionResult.fail(MsgCode.FA003.get());
  121. }
  122. }