| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282 |
- package com.ydtech.modules.order.controller;
- import cn.keking.anti_reptile.annotation.AntiReptile;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.ydtech.aop.request.RequestSingleParam;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.ins.model.InsOrdersExcelVo;
- import com.ydtech.modules.order.components.InsOrdersComponents;
- import com.ydtech.modules.order.constants.OrderLinkTypeConstants;
- import com.ydtech.modules.order.entity.BasePageResult;
- import com.ydtech.modules.order.entity.InsAccidentalDriving;
- import com.ydtech.modules.order.entity.InsAreaCompany;
- import com.ydtech.modules.order.entity.InsOrders;
- import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
- import com.ydtech.modules.order.entity.vo.*;
- import com.ydtech.modules.order.service.InsAccidentalDrivingService;
- import com.ydtech.modules.order.service.InsAreaCompanyService;
- import com.ydtech.modules.order.service.InsOrdersService;
- import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
- import com.ydtech.utils.StringUtils;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.springframework.beans.BeanUtils;
- import org.springframework.util.ObjectUtils;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- import java.util.List;
- import java.util.stream.Collectors;
- @Api(tags = "订单")
- @RequestMapping("/insurance/order")
- @RestController
- public class InsOrdersController extends BaseController {
- private final InsOrdersService insOrdersService;
- private final InsAreaCompanyService insAreaCompanyService;
- private final InsOrdersComponents insOrdersComponents;
- private final InsAccidentalDrivingService insAccidentalDrivingService;
- public InsOrdersController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService,
- InsOrdersComponents insOrdersComponents, InsAccidentalDrivingService insAccidentalDrivingService) {
- this.insAreaCompanyService = insAreaCompanyService;
- this.insOrdersService = insOrdersService;
- this.insOrdersComponents = insOrdersComponents;
- this.insAccidentalDrivingService = insAccidentalDrivingService;
- }
- @GetMapping("/getAgreementInsCompany")
- @ApiOperation(value = "获取协议报价保险公司")
- public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany(@RequestParam(required = false) String deptId) {
- if (StringUtils.isEmpty(deptId)) {
- deptId = getDeptId();
- }
- String userId = getUserId();
- return this.insOrdersService.getAgreementInsCompany(deptId, userId);
- }
- @PostMapping("/generateOrder")
- @ApiOperation(value = "生成订单")
- public HttpResult<InsOrders> generateOrder(@Validated @RequestBody BaseQuoteInfoVo quoteInfoVo) {
- String userId = getUserId();
- InsOrders insOrders = this.insOrdersService.generateOrder(userId, quoteInfoVo);
- return HttpResult.ok("success", insOrders);
- }
- @PostMapping("/getByOrderNo")
- @ApiOperation(value = "通过订单ID查询订单信息")
- public HttpResult<BaseQuoteInfoVo> getByOrderNo(@RequestSingleParam(value = "orderNo") String orderNo) {
- BaseQuoteInfoVo quoteInfo = insOrdersComponents.getQuoteInfo(orderNo);
- return HttpResult.ok("success", quoteInfo);
- }
- @PostMapping("/revise")
- @ApiOperation(value = "查询订单和子订单")
- public HttpResult<InsOrdersEditingVo> revise(@RequestSingleParam(value = "orderNo") String orderNo) {
- InsOrdersEditingVo insOrders = this.insOrdersService.revise(orderNo);
- return HttpResult.ok("success", insOrders);
- }
- @PostMapping("/queryPageOrder")
- @ApiOperation(value = "[1]分页查询订单接口")
- public HttpResult<BasePageResult<InsOrders>> queryPageOrder(@RequestBody @Valid OrderQueryVo orderQueryVo) {
- BasePageResult<InsOrders> quoteResult = this.insOrdersService.newQueryPageOrder(orderQueryVo);
- return HttpResult.ok("success", quoteResult);
- }
- @PostMapping("/orderExportExcel")
- @ApiOperation(value = "订单导出excel接口")
- public HttpResult<String> orderExportExcel(@RequestBody InsOrdersExcelVo insOrdersExcelVo) {
- return this.insOrdersService.orderExportExcel(insOrdersExcelVo);
- }
- @PostMapping("/querySuborder")
- @ApiOperation(value = "[2]通过订单号查询子订单")
- public HttpResult<List<InsAreaCompanyQueryDto>> querySuborder(@RequestSingleParam(value = "orderNo") String orderNo) {
- List<InsAreaCompanyQueryDto> quoteResult = this.insOrdersService.querySuborder(orderNo);
- return HttpResult.ok("success", quoteResult);
- }
- @PostMapping("/queryInsAreaCompany")
- @ApiOperation(value = "通过主订单ID查询子订单")
- public HttpResult<List<InsAreaCompany>> queryInsAreaCompany(@RequestSingleParam(value = "orderNo") String orderNo) {
- this.insOrdersService.existOrder(orderNo);
- List<InsAreaCompany> insAreaCompanies = this.insAreaCompanyService.lambdaQuery().eq(InsAreaCompany::getOrderno, orderNo).list();
- return HttpResult.ok("success", insAreaCompanies);
- }
- @PostMapping("/queryQuoteHistory")
- @ApiOperation(value = "查询报价历史")
- public HttpResult<List<InsAreaCompanyHistoryVo>> queryQuoteHistory(@RequestBody QuoteHistoryVo quoteHistoryVo) {
- InsOrders insOrders = this.insOrdersService.existOrder(quoteHistoryVo.getOrderNo());
- LambdaQueryWrapper<InsAreaCompany> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(!ObjectUtils.isEmpty(quoteHistoryVo.getOrderNo()), InsAreaCompany::getOrderno, quoteHistoryVo.getOrderNo()).eq(!ObjectUtils.isEmpty(quoteHistoryVo.getOrderStatus()), InsAreaCompany::getOrderstatus, quoteHistoryVo.getOrderStatus()).orderByDesc(InsAreaCompany::getCreatetime);
- List<InsAreaCompany> insAreaCompanies = this.insAreaCompanyService.getBaseMapper().selectList(wrapper);
- List<InsAreaCompanyHistoryVo> collect = insAreaCompanies.stream().map(a -> {
- InsAreaCompanyHistoryVo insAreaCompanyHistoryVo = new InsAreaCompanyHistoryVo();
- BeanUtils.copyProperties(a, insAreaCompanyHistoryVo);
- insAreaCompanyHistoryVo.setLicenseno(insOrders.getLicenseno());
- insAreaCompanyHistoryVo.setUserName(insOrders.getUsername());
- insAreaCompanyHistoryVo.setUserId(insOrders.getUserid());
- return insAreaCompanyHistoryVo;
- }).collect(Collectors.toList());
- return HttpResult.ok("success", collect);
- }
- @PostMapping("/getByCompanyId")
- @ApiOperation(value = "通过子订单查询订单信息")
- public HttpResult<OrderVo> getByCompanyId(@RequestSingleParam(value = "companyId") String companyId) {
- String userId = getUserId();
- return this.insOrdersService.getByCompanyId(companyId, userId);
- }
- @PostMapping("/getAccidentalDriving")
- @ApiOperation(value = "获取驾意险")
- public HttpResult<List<InsAccidentalDriving>> getAccidentalDriving(@RequestBody @Valid AccidentalDrivingQueryVo accidentalDrivingVo) {
- LambdaQueryWrapper<InsAccidentalDriving> wrapper = new LambdaQueryWrapper<>();
- wrapper.eq(InsAccidentalDriving::getCompanyCode, accidentalDrivingVo.getCompanyCode()).and(i -> i.eq(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum()).or(j -> j.le(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum()).ge(InsAccidentalDriving::getSeatNumMax, accidentalDrivingVo.getSeatNum())));
- List<InsAccidentalDriving> insAccidentalDrivings = insAccidentalDrivingService.list(wrapper);
- if (insAccidentalDrivings.isEmpty()) {
- throw new SystemException("查询结果为空");
- }
- return HttpResult.ok(insAccidentalDrivings);
- }
- @PostMapping("/verifyOrders")
- @ApiOperation(value = "验证近期是否出过单")
- public HttpResult<InsOrders> verifyOrders(@RequestBody VerifyOrdersVo verifyOrdersVo) {
- return insOrdersService.verifyOrders(verifyOrdersVo);
- }
- @PostMapping("/getPolicyInsuranceReport")
- @ApiOperation(value = "分页获取保单清单数据")
- public HttpResult<BasePageResult<PolicyInsuranceReportResVo>> getPolicyInsuranceReport(@RequestBody PolicyInsuranceReportReqVo policyInsuranceReportReqVo) {
- String userId = getUserId();
- BasePageResult<PolicyInsuranceReportResVo> quoteResult = insOrdersService.getPolicyInsuranceReport(policyInsuranceReportReqVo,
- userId);
- return HttpResult.ok("success", quoteResult);
- }
- @PostMapping("/exportPolicyInsuranceReport")
- @ApiOperation(value = "导出保单清单数据")
- public HttpResult<String> exportPolicyInsuranceReport(@RequestBody PolicyInsuranceReportReqVo policyInsuranceReportReqVo) {
- String userId = getUserId();
- return insOrdersService.exportPolicyInsuranceReport(policyInsuranceReportReqVo, userId);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/4/17 15:32
- * @Description: 添加待客录单查询订单接口
- */
- @PostMapping("/queryPageHospitalityOrder")
- @ApiOperation(value = "通过用户id和订单状态查询待客录单接口+分页")
- public HttpResult<BasePageResult<InsOrders>> queryPageHospitalityOrder(@RequestBody OrderQueryVo orderQueryVo) {
- if(orderQueryVo.getUserId()==null || "".equals(orderQueryVo.getUserId())){
- return HttpResult.error("待客录单人员id不能为空");
- }
- try{
- BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageHospitalityOrder(orderQueryVo);
- return HttpResult.ok("success", quoteResult);
- }catch (Exception e){
- return HttpResult.error("查询失败"+e.getMessage());
- }
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/4/17 15:32
- * @Description: 通过用户id和订单状态查询关联渠道的订单数据+分页
- */
- @AntiReptile
- @PostMapping("/queryPageHospitalityByChannel")
- @ApiOperation(value = "通过用户id和订单状态查询关联渠道的订单数据+分页")
- public HttpResult<Object> queryPageHospitalityByChannel(@RequestBody OrderQueryVo orderQueryVo) {
- if(orderQueryVo.getUserId()==null || "".equals(orderQueryVo.getUserId())){
- return HttpResult.error("待客录单人员id不能为空");
- }
- try{
- BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo, OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_1.getCode());
- return HttpResult.ok("success", quoteResult);
- }catch (Exception e){
- return HttpResult.error("查询失败"+e.getMessage());
- }
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/4/17 15:32
- * @Description: 通过用户id和订单状态查询关联代理人的订单数据+分页
- */
- @AntiReptile
- @PostMapping("/queryPageHospitalityLinkagent")
- @ApiOperation(value = "通过用户id和订单状态查询关联代理人的订单数据+分页")
- public HttpResult<Object> queryPageHospitalityLinkagent(@RequestBody OrderQueryVo orderQueryVo) {
- if(orderQueryVo.getUserId()==null || "".equals(orderQueryVo.getUserId())){
- return HttpResult.error("待客录单人员id不能为空");
- }
- try{
- BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo,OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_2.getCode());
- return HttpResult.ok("success", quoteResult);
- }catch (Exception e){
- return HttpResult.error("查询失败"+e.getMessage());
- }
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/4/17 15:32
- * @Description: 通过用户id和订单状态查询关联保险公司的订单数据+分页
- */
- @AntiReptile
- @PostMapping("/queryPageHospitalityByInsuranceCompany")
- @ApiOperation(value = "通过用户id和订单状态查询关联保险公司的订单数据+分页")
- public HttpResult<Object> queryPageHospitalityByInsuranceCompany(@RequestBody OrderQueryVo orderQueryVo) {
- if(orderQueryVo.getUserId()==null || "".equals(orderQueryVo.getUserId())){
- return HttpResult.error("待客录单人员id不能为空");
- }
- //if(orderQueryVo.getOrderStatus()==null || "".equals(orderQueryVo.getOrderStatus())){
- // return HttpResult.error("订单状态不能为空");
- // }
- try{
- BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrderByLinkType(orderQueryVo,OrderLinkTypeConstants.ORDER_LINK_TYPE_CONSTANTS_3.getCode());
- return HttpResult.ok("success", quoteResult);
- }catch (Exception e){
- return HttpResult.error("查询失败"+e.getMessage());
- }
- }
- @PostMapping("/getTaskByCompanyId")
- @ApiOperation(value = "通过子订单查询订单信息(任务管理)")
- public HttpResult<OrderVo> getTaskByCompanyId(@RequestSingleParam(value = "companyId") String companyId) {
- String userId = getUserId();
- return this.insOrdersService.getTaskByCompanyId(companyId, userId);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/5/13 8:41
- * @Description: 批量更新子订单的险种信息
- */
- @PostMapping("/updateBatchPruductById")
- @ApiOperation(value = "updateBatchPruductById")
- public HttpResult updateBatchPruductById() {
- return this.insAreaCompanyService.updateBatchPruductById();
- }
- }
|