InsAreaCompanyController.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.ydtech.modules.order.controller;
  2. import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
  3. import com.ydtech.core.page.HttpResult;
  4. import com.ydtech.exception.SystemException;
  5. import com.ydtech.modules.admin.model.SysUser;
  6. import com.ydtech.modules.base.controller.BaseController;
  7. import com.ydtech.modules.order.entity.InsAreaCompany;
  8. import com.ydtech.modules.order.entity.InsOrdersTrack;
  9. import com.ydtech.modules.order.service.InsAreaCompanyService;
  10. import com.ydtech.modules.order.service.InsOrderQrCodeService;
  11. import com.ydtech.modules.order.service.InsOrdersTrackService;
  12. import com.ydtech.modules.order.service.InsuranceCompanyPolymerizationService;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import lombok.RequiredArgsConstructor;
  16. import lombok.extern.slf4j.Slf4j;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.util.List;
  20. @RestController
  21. @RequestMapping("/subOrder")
  22. @Api(tags = "子订单")
  23. @Slf4j
  24. @RequiredArgsConstructor
  25. public class InsAreaCompanyController {
  26. private final InsAreaCompanyService insAreaCompanyService;
  27. private final InsOrdersTrackService insOrdersTrackService;
  28. private final InsOrderQrCodeService insOrderQrCodeService;
  29. private final InsuranceCompanyPolymerizationService insuranceCompanyPolymerizationService;
  30. @GetMapping("/statusInquiry/{subOrderNo}")
  31. @ApiOperation("状态查询")
  32. public HttpResult<String> statusInquiry(@PathVariable String subOrderNo) {
  33. InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
  34. return HttpResult.ok(insAreaCompany.getOrderstatus());
  35. }
  36. @GetMapping("/close/{subOrderNo}")
  37. @ApiOperation("关闭订单")
  38. public HttpResult<String> close(@PathVariable String subOrderNo) {
  39. InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
  40. if (InsOrderStatusEnum.ACCEPT_INSURANCE.getCode().equals(insAreaCompany.getOrderstatus())) {
  41. throw new SystemException("已承保订单不允许关闭");
  42. }
  43. insAreaCompany.setDelFlag("0");
  44. insAreaCompanyService.updateById(insAreaCompany);
  45. return HttpResult.ok();
  46. }
  47. @GetMapping("/cancelUnderwriting/{subOrderNo}")
  48. @ApiOperation("取消核保")
  49. public HttpResult<String> cancelUnderwriting(@PathVariable String subOrderNo) {
  50. InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
  51. if (InsOrderStatusEnum.WAIT_PAY.getCode().equals(insAreaCompany.getOrderstatus())) {
  52. insAreaCompany.setOrderstatus(InsOrderStatusEnum.QUOTE_ING.getCode());
  53. insAreaCompanyService.updateById(insAreaCompany);
  54. // 撤销二维码
  55. insOrderQrCodeService.updateQrCode(insAreaCompany.getId(), 0);
  56. return HttpResult.ok();
  57. }
  58. throw new SystemException("只有[已核保待缴费]状态下允许取消核保");
  59. }
  60. @GetMapping("/statusRestored/{subOrderNo}")
  61. @ApiOperation("恢复核保状态")
  62. @Transactional
  63. public HttpResult<String> statusRestored(@PathVariable String subOrderNo) {
  64. InsAreaCompany insAreaCompany = insAreaCompanyService.getByIdIsExist(subOrderNo);
  65. if (InsOrderStatusEnum.QUOTE_ING.getCode().equals(insAreaCompany.getOrderstatus())) {
  66. SysUser user = BaseController.getUser();
  67. List<InsOrdersTrack> list = insOrdersTrackService.lambdaQuery().eq(InsOrdersTrack::getOrderStatus, InsOrderStatusEnum.WAIT_PAY.getCode()).list();
  68. if (!list.isEmpty()) {
  69. insAreaCompany.setOrderstatus(InsOrderStatusEnum.WAIT_PAY.getCode());
  70. InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insAreaCompany, user.getId(), user.getName());
  71. insAreaCompanyService.updateById(insAreaCompany);
  72. insOrdersTrackService.save(insOrdersTrack);
  73. insuranceCompanyPolymerizationService.cancelOrder(insAreaCompany);
  74. return HttpResult.ok();
  75. }
  76. throw new SystemException("此订单未到达已核保待缴费,无法跟新状态");
  77. }
  78. throw new SystemException("订单状态无法恢复");
  79. }
  80. }