ExternalOrderController.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. package com.ydtech.modules.order.controller;
  2. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  3. import com.ydtech.constants.enums.InsuranceRisk;
  4. import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
  5. import com.ydtech.constants.enums.dict.agreement.ProductsType;
  6. import com.ydtech.core.page.HttpResult;
  7. import com.ydtech.exception.SystemException;
  8. import com.ydtech.modules.base.controller.BaseController;
  9. import com.ydtech.modules.fee.service.FeeRuleSchemeNewService;
  10. import com.ydtech.modules.fnc.entity.InsFeeAudit;
  11. import com.ydtech.modules.fnc.service.InsFeeAuditService;
  12. import com.ydtech.modules.ins.model.vo.QuoteRespVo;
  13. import com.ydtech.modules.order.components.InsOrdersComponents;
  14. import com.ydtech.modules.order.entity.vo.*;
  15. import com.ydtech.modules.order.service.InsAreaCompanyExternalPolicyService;
  16. import com.ydtech.modules.order.service.InsAreaCompanyService;
  17. import com.ydtech.modules.order.service.InsTaskImagesService;
  18. import com.ydtech.modules.protocol.entity.po.PtlAgreement;
  19. import com.ydtech.modules.protocol.service.PtlAgreementService;
  20. import com.ydtech.modules.protocols.entity.po.PtlAgreementProductCostsNew;
  21. import com.ydtech.modules.protocols.service.PtlAgreementProductCostsNewService;
  22. import io.swagger.annotations.Api;
  23. import io.swagger.annotations.ApiOperation;
  24. import lombok.RequiredArgsConstructor;
  25. import org.apache.commons.lang3.StringUtils;
  26. import org.springframework.beans.factory.annotation.Autowired;
  27. import org.springframework.web.bind.annotation.*;
  28. import java.util.Objects;
  29. import static com.ydtech.modules.base.model.vo.PageVo.buildPageRequest;
  30. @Api(tags = "外部订单 api")
  31. @RestController
  32. @RequestMapping("/api/externalOrder")
  33. @RequiredArgsConstructor
  34. public class ExternalOrderController {
  35. @Autowired
  36. private InsAreaCompanyService insAreaCompanyService;
  37. @Autowired
  38. private InsOrdersComponents insOrdersComponents;
  39. @Autowired
  40. private InsAreaCompanyExternalPolicyService insAreaCompanyExternalPolicyService;
  41. @Autowired
  42. private InsTaskImagesService insTaskImagesService;
  43. @Autowired
  44. private InsFeeAuditService insFeeAuditService;
  45. @Autowired
  46. private PtlAgreementService ptlAgreementService;
  47. @Autowired
  48. private PtlAgreementProductCostsNewService ptlAgreementProductCostsNewService;
  49. @Autowired
  50. private FeeRuleSchemeNewService feeRuleSchemeNewService;
  51. @PostMapping("/saveSubOrder")
  52. @ApiOperation("保存子订单")
  53. public HttpResult<QuoteRespVo> saveSubOrder(@RequestBody BaseQuoteVo<AccidentalDrivingVo> quoteVo) {
  54. BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo(), quoteVo.getAgreementId(),quoteVo.getKinds());
  55. boolean result = this.insAreaCompanyService.saveSubOrder(quoteInfo, quoteVo);
  56. String successMsg="";
  57. String errorMsg ="";
  58. if(quoteVo.getStageFlag()==1){
  59. successMsg="添加订单成功";
  60. errorMsg="添加订单失败";
  61. }else {
  62. successMsg="暂存订单成功";
  63. errorMsg="暂存订单失败";
  64. }
  65. return result ? HttpResult.ok(successMsg) : HttpResult.error(errorMsg);
  66. }
  67. @PostMapping("/updateExternalOrder")
  68. @ApiOperation("更新外部订单")
  69. public HttpResult<Object> updateSubOrder(@RequestBody InsOrdersEditingVo insOrdersEditingVo){
  70. // BaseQuoteInfoVo quoteInfo = this.insOrdersComponents.getQuoteInfo(quoteVo.getOrderNo(), quoteVo.getAgreementId());
  71. if(insOrdersEditingVo.getOrderExternalStatus()==1){
  72. InsFeeAudit feeAuditByInsOrderNo = insFeeAuditService.getFeeAuditByInsOrderNo(insOrdersEditingVo.getInsAreaCompanyList().get(0).getId());
  73. if(feeAuditByInsOrderNo.getAuditstatus().equals(FeeAuditAuditstatus.UNREVICEWED.getCode()))
  74. {
  75. throw new SystemException("请勿重复修改");
  76. }
  77. }
  78. boolean result = this.insAreaCompanyService.updateOrderAndSubOrder(insOrdersEditingVo);
  79. String successMsg="";
  80. String errorMsg ="";
  81. if(insOrdersEditingVo.getStageFlag()==1){
  82. successMsg="订单修改成功,重新提交审核!";
  83. errorMsg="订单修改失败";
  84. }else {
  85. successMsg="暂存订单成功";
  86. errorMsg="暂存订单失败";
  87. }
  88. return result ? HttpResult.ok(successMsg) : HttpResult.error(errorMsg);
  89. }
  90. /**
  91. * 获取证件信息
  92. * @param quoteNo 报价号
  93. * @return
  94. */
  95. @PostMapping("/getCertificateInfo")
  96. @ApiOperation("获取证件信息")
  97. public HttpResult getCertificateInfo(String quoteNo){
  98. return insTaskImagesService.findByQuoteNo(quoteNo);
  99. }
  100. @GetMapping("/getPolicyPrint")
  101. @ApiOperation("获取保单信息")
  102. public HttpResult getPolicyPrint(@RequestParam String subOrderNo) {
  103. return HttpResult.ok(this.insAreaCompanyExternalPolicyService.getPolicyByCompanyId(subOrderNo));
  104. }
  105. /**
  106. * 驳回分页列表
  107. */
  108. @PostMapping("/rejectPage")
  109. @ApiOperation("驳回分页列表")
  110. public HttpResult<Object> getRejectPage(@RequestBody RejectPageQueryVo rejectPageQueryVo){
  111. Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
  112. return HttpResult.ok(insAreaCompanyService.getRejectOrder(page, BaseController.getUser().getId(),rejectPageQueryVo));
  113. }
  114. /**
  115. * 暂存分页列表
  116. */
  117. @PostMapping("/stagePage")
  118. @ApiOperation("暂存分页列表")
  119. public HttpResult<Object> getStagePage(@RequestBody RejectPageQueryVo rejectPageQueryVo){
  120. Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
  121. return HttpResult.ok(insAreaCompanyService.getStageOrder(page, BaseController.getUser().getId(),rejectPageQueryVo));
  122. }
  123. /**
  124. * 外部审核通过分页列表
  125. */
  126. @PostMapping("/orderCheckPage")
  127. @ApiOperation("外部审核通过分页列表")
  128. public HttpResult<Object> orderCheckPage(@RequestBody RejectPageQueryVo rejectPageQueryVo){
  129. Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
  130. return HttpResult.ok(insAreaCompanyService.orderCheckPage(page, BaseController.getUser().getId(),rejectPageQueryVo));
  131. }
  132. /**
  133. * @version
  134. * @author: hxl
  135. * @Date: 2024/9/18 11:17
  136. * @Description:外部駁回刪除
  137. */
  138. @GetMapping("/orderDelete")
  139. @ApiOperation("外部駁回刪除")
  140. public HttpResult<Object> orderDelete(String id){
  141. if(StringUtils.isBlank(id)){
  142. throw new SystemException("订单号不能为空!!");
  143. }
  144. try{
  145. insAreaCompanyService.updateDeleteFalg(id);
  146. }catch(Exception e){
  147. return HttpResult.ok("操作失败");
  148. }
  149. return HttpResult.ok("操作成功");
  150. }
  151. /**
  152. * 驳回分页列表
  153. */
  154. @PostMapping("/getAllRejectOrders")
  155. @ApiOperation("驳回分页列表")
  156. public HttpResult<Object> getAllRejectOrders(@RequestBody RejectPageQueryVo rejectPageQueryVo){
  157. Page page = buildPageRequest(rejectPageQueryVo.getPageDto());
  158. return HttpResult.ok(insAreaCompanyService.getAllRejectOrders(page, rejectPageQueryVo));
  159. }
  160. /**
  161. * 查询外部订单费用
  162. */
  163. @PostMapping("/externalOrderFee")
  164. @ApiOperation("外部订单费用")
  165. public HttpResult<Object> externalOrderFee(@RequestBody ExternalOrderFeeVo externalOrderFeeVo){
  166. //校验是否是外部订单的非现询协议
  167. PtlAgreement ptlAgreement = ptlAgreementService.getById(externalOrderFeeVo.getAgreementId());
  168. ProductsType productsType = InsuranceRisk.determineInsuranceInformation(externalOrderFeeVo.getKinds(), externalOrderFeeVo.getRisks());
  169. externalOrderFeeVo.setProductCode(productsType.getCode());
  170. PtlAgreementProductCostsNew noInquiryNowFee = ptlAgreementProductCostsNewService.getNoInquiryNowFee(externalOrderFeeVo.getAgreementId(), externalOrderFeeVo.getProductCode());
  171. if(Objects.isNull(noInquiryNowFee)){
  172. throw new SystemException("不存在该协议");
  173. }
  174. externalOrderFeeVo.blank();
  175. ExternalOrderFeeVo resultExternalOrderFeeVo = feeRuleSchemeNewService.calcCostsExternalExportData(ptlAgreement, noInquiryNowFee, externalOrderFeeVo);
  176. return HttpResult.ok(resultExternalOrderFeeVo);
  177. }
  178. }