| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- package com.ydtech.modules.order.controller;
- import cn.keking.anti_reptile.annotation.AntiReptile;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.ydtech.aop.request.RequestSingleParam;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.po.SysUserIsDial;
- import com.ydtech.modules.admin.service.SysUserIsDialService;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.ins.model.InsOrdersExcelVo;
- import com.ydtech.modules.inv.utils.EasyExcelUtils;
- import com.ydtech.modules.order.components.InsOrdersComponents;
- import com.ydtech.modules.order.constants.OrderLinkTypeConstants;
- import com.ydtech.modules.order.entity.*;
- import com.ydtech.modules.order.entity.dto.InquiryDetalsQueryDto;
- import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
- import com.ydtech.modules.order.entity.vo.*;
- import com.ydtech.modules.order.service.*;
- 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.beans.factory.annotation.Value;
- import org.springframework.util.ObjectUtils;
- import org.springframework.validation.annotation.Validated;
- import org.springframework.web.bind.annotation.*;
- import javax.validation.Valid;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- 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;
- private final SysUserIsDialService sysUserIsDialService;
- private final BatchOrderService batchOrderService;
- private final InsAreaCompanyPositionService insAreaCompanyPositionService;
- @Value("${upload.file.path}")
- private String uploadPath;
- @Value("${upload.file.url}")
- private String uploadUrl;
- public InsOrdersController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService,
- InsOrdersComponents insOrdersComponents, InsAccidentalDrivingService insAccidentalDrivingService,
- SysUserIsDialService sysUserIsDialService, BatchOrderService batchOrderService,
- InsAreaCompanyPositionService insAreaCompanyPositionService) {
- this.insAreaCompanyService = insAreaCompanyService;
- this.insOrdersService = insOrdersService;
- this.insOrdersComponents = insOrdersComponents;
- this.insAccidentalDrivingService = insAccidentalDrivingService;
- this.sysUserIsDialService = sysUserIsDialService;
- this.batchOrderService = batchOrderService;
- this.insAreaCompanyPositionService = insAreaCompanyPositionService;
- }
- @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) {
- SysUser user = getUser();
- InsOrders insOrders = this.insOrdersService.generateOrder(user, 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{
- //前台传的部门不对赋值null
- orderQueryVo.setDeptId(null);
- 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: 批量更新子订单的险种信息
- */
- @GetMapping("/updateBatchPruductById")
- @ApiOperation(value = "批量更新子订单的险种信息")
- public HttpResult updateBatchPruductById( String subOrderId) {
- return this.insAreaCompanyService.updateBatchPruductById(subOrderId);
- }
- @GetMapping("/getMobileByOrderNo")
- @ApiOperation(value = "通过订单号查询手机号码")
- public HttpResult getMobileByOrderNo(String orderNo,String type){
- JSONObject result = new JSONObject();
- String phone = insOrdersService.getMobileByOrderNo(orderNo,type);
- result.put("phone",phone);
- SysUserIsDial sysUserIsDial = sysUserIsDialService.getByUserId(getUserId());
- if(sysUserIsDial != null) {
- if (sysUserIsDial.getIsDial().equals("1")) {
- result.put("username",sysUserIsDial.getDialUserName());
- result.put("password",sysUserIsDial.getDialPassWord());
- }
- }
- return HttpResult.ok(result);
- }
- /**
- * 获取快到期的保单
- * @return
- */
- @PostMapping("/getExpirationInsure")
- @ApiOperation(value = "获取快到期的保单")
- public HttpResult getExpirationInsure(@RequestBody OrderExpirationQueryVo orderExpirationQueryVo){
- Page page = buildPageRequest(orderExpirationQueryVo.getPageDto());
- orderExpirationQueryVo.setUserid(getUserId());
- return HttpResult.ok(insOrdersService.getExpirationInsure(page,orderExpirationQueryVo));
- }
- /**
- * 获取快到期的保单的数量
- * @return
- */
- @PostMapping("/getExpirationInsureCount")
- @ApiOperation(value = "获取快到期的保单数量")
- public HttpResult getExpirationInsureCount(@RequestBody OrderExpirationQueryVo orderExpirationQueryVo){
- orderExpirationQueryVo.setUserid(getUserId());
- return HttpResult.ok(insOrdersService.getExpirationInsureCount(orderExpirationQueryVo));
- }
- /**
- * 批单操作
- * @param batchOrderVo
- * @return
- */
- @PostMapping("/batchOrder")
- @ApiOperation(value = "批单")
- public HttpResult batchOrder(@RequestBody BatchOrderVo batchOrderVo){
- boolean result = batchOrderService.batchOrder(batchOrderVo);
- if(result){
- return HttpResult.ok("批单修改成功,等待审核");
- }else{
- return HttpResult.error("批单修改失败");
- }
- }
- /**
- * 获取批单信息
- * @param subOrderNo
- * @return
- */
- @GetMapping("/getBatchOrder")
- @ApiOperation(value = "获取批单信息")
- public HttpResult getBatchOrder(String subOrderNo){
- BatchOrder batchOrderBySubOrderNo = batchOrderService.getBatchOrderBySubOrderNo(subOrderNo);
- if(batchOrderBySubOrderNo != null){
- return HttpResult.ok(batchOrderBySubOrderNo);
- }else{
- return HttpResult.error("获取批单失败");
- }
- }
- @PostMapping("/getBatchOrderList")
- @ApiOperation(value = "获取批单列表")
- public HttpResult getBatchOrderList(@RequestBody BatchOrderQueryVo batchOrderQueryVo){
- Page page = buildPageRequest(batchOrderQueryVo.getPageDto());
- if(batchOrderQueryVo.getIsAudit() == null){
- batchOrderQueryVo.setIsAudit(0);
- }
- return HttpResult.ok(batchOrderService.getBatchOrderList(page,batchOrderQueryVo));
- }
- @PostMapping("/getBtachOrderRejectList")
- @ApiOperation(value = "获取批单驳回列表")
- public HttpResult getBatchOrderRejectList(@RequestBody BatchOrderQueryVo batchOrderQueryVo){
- Page page = buildPageRequest(batchOrderQueryVo.getPageDto());
- batchOrderQueryVo.setUserId(getUserId());
- if(batchOrderQueryVo.getIsAudit() == null){
- batchOrderQueryVo.setIsAudit(2);
- }
- return HttpResult.ok(batchOrderService.getBatchOrderRejectList(page,batchOrderQueryVo));
- }
- @PostMapping("/auditBatchOrder")
- @ApiOperation(value = "批单审核")
- public HttpResult auditBatchOrder(@RequestBody BatchOrderAuditVo batchOrderAuditVo){
- boolean result = batchOrderService.auditBatchOrder(batchOrderAuditVo);
- if(result){
- return HttpResult.ok("批单审核成功");
- }else{
- return HttpResult.error("批单审核失败");
- }
- }
- @PostMapping("/savePosition")
- @ApiOperation(value = "保存位置信息")
- public HttpResult savePosition(@RequestBody InsAreaCompanyPosition insAreaCompanyPosition){
- return HttpResult.ok(insAreaCompanyPositionService.save(insAreaCompanyPosition));
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/24 18:07
- * @Description: 通过子订单ids获取比价信息
- */
- @PostMapping("/getInquiryDetalsBySubOrderNos")
- @ApiOperation(value = "通过子订单ids获取比价信息")
- public HttpResult<InquiryDetalsVo> getInquiryDetalsBySubOrderNos(@RequestBody InquiryDetalsQueryDto inquiryDetalsDto){
- return HttpResult.ok(insOrdersService.getInquiryDetalsBySubOrderIds(inquiryDetalsDto));
- }
- @PostMapping("/queryHxOrdersCount")
- @ApiOperation(value = "查询后线人员代课录单次数")
- public HttpResult<IPage<QueryHxOrdersCountVo>> queryHxOrdersCount(@RequestBody QueryHxOrdersCountVo queryHxOrdersCountVo){
- IPage<QueryHxOrdersCountVo> result = insOrdersService.queryHxOrdersCount(queryHxOrdersCountVo);
- return HttpResult.ok("success", result);
- }
- @PostMapping("/exportHxOrdersCount")
- @ApiOperation(value = "导出后线人员代课录单次数")
- public HttpResult exportHxOrdersCount(@RequestBody QueryHxOrdersCountVo queryHxOrdersCountVo) throws IOException {
- List<QueryHxOrdersCountExcel> result = insOrdersService.exportHxOrdersCount(queryHxOrdersCountVo);
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- Files.createDirectories(path);
- }
- String fileName = EasyExcelUtils.downExcel(uploadPath, "后线人员代课录单统计报表", QueryHxOrdersCountExcel.class, result);
- return HttpResult.ok("",uploadUrl + "excel/" + fileName);
- }
- }
|