Pārlūkot izejas kodu

Merge branch 'feeaudit' into test

# Conflicts:
#	src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java
guoweisong 2 gadi atpakaļ
vecāks
revīzija
dd81ab9548

+ 116 - 0
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -0,0 +1,116 @@
+package com.ydtech.modules.fnc.controller;
+
+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.fee.service.FeeRuleSchemeService;
+import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.service.InsFeeAuditService;
+import com.ydtech.modules.order.components.InsOrdersComponents;
+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 io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+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.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Api(tags = "财务-车险结算")
+@RequestMapping("/fnc/carSettle")
+@RestController
+public class CarSettleController extends BaseController {
+
+    private final InsOrdersService insOrdersService;
+
+    private final InsAreaCompanyService insAreaCompanyService;
+
+    private final InsFeeAuditService insFeeAuditService;
+
+    public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService) {
+        this.insAreaCompanyService = insAreaCompanyService;
+        this.insOrdersService = insOrdersService;
+        this.insFeeAuditService = insFeeAuditService;
+    }
+
+    /**
+     * 根据费用审核状态查询订单 auditStatus
+     * @param orderQueryVo
+     * @return
+     */
+    @PostMapping("/queryPageOrder")
+    @ApiOperation(value = "[1]分页查询订单接口")
+    public HttpResult<BasePageResult<InsOrders>> queryPageOrder(@RequestBody @Valid OrderQueryVo orderQueryVo) {
+        orderQueryVo.setOrderStatus("3");//3已承保
+        BasePageResult<InsOrders> quoteResult = this.insOrdersService.queryPageOrder(orderQueryVo);
+        return HttpResult.ok("success", quoteResult);
+    }
+    /**
+     * 根据订单号查询费用明细
+     * @param orderNo
+     * @return
+     */
+    @PostMapping("/feeDetail")
+    @ApiOperation(value = "[2]根据订单号查询费用明细")
+    public HttpResult<OrderVo> queryFeeDetail(@RequestSingleParam(value = "orderNo") @Valid String orderNo) {
+        //查询已承保的子订单号
+        List<InsAreaCompany> areaList =insAreaCompanyService.query()
+                .eq(StringUtils.isNotEmpty(orderNo),"orderno",orderNo)
+                .eq("orderstatus","3").list();//3已承保
+        if(areaList!=null && areaList.size()>0){
+            return insOrdersService.getByCompanyId(areaList.get(0).getInsOrderNo());
+        }else{
+            return HttpResult.error("订单号有误-未承保");
+        }
+    }
+    /**
+     * 费用审核
+     * @param
+     * @return
+     */
+    @PostMapping("/auditFee")
+    @ApiOperation(value = "[3]费用审核")
+    public HttpResult auditFee(@RequestSingleParam(value = "orderNo") String orderNo) {
+        //查询改订单是已审核
+        List<InsFeeAudit> feeList =insFeeAuditService.query().eq("orderno",orderNo).list();
+        if(feeList!=null &&feeList.size()>0){
+            return HttpResult.error("该订单已审核");
+        }
+        //查询已承保的子订单号
+        List<InsAreaCompany> areaList =insAreaCompanyService.query()
+                .eq(StringUtils.isNotEmpty(orderNo),"orderno",orderNo)
+                .eq("orderstatus","3").list();//3已承保
+        if(areaList!=null && areaList.size()>0){
+            InsFeeAudit insFeeAudit=new InsFeeAudit();
+            insFeeAudit.setOrderno(orderNo);
+            insFeeAudit.setInsOrderNo(areaList.get(0).getInsOrderNo());
+            insFeeAudit.setAuditstatus("1");
+            insFeeAudit.setAudittime(LocalDateTime.now());
+            insFeeAudit.setAudituser(getUserId());
+            insFeeAuditService.save(insFeeAudit);
+            return HttpResult.ok();
+        }else{
+            return HttpResult.error("订单号有误-未承保");
+        }
+
+    }
+}

+ 20 - 0
src/main/java/com/ydtech/modules/fnc/dao/InsFeeAuditMapper.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.fnc.dao;
+
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author gws
+ * @since 2023-11-22
+ */
+@Mapper
+public interface InsFeeAuditMapper extends BaseMapper<InsFeeAudit> {
+
+
+
+}

+ 47 - 0
src/main/java/com/ydtech/modules/fnc/entity/InsFeeAudit.java

@@ -0,0 +1,47 @@
+package com.ydtech.modules.fnc.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author gws
+ * @since 2023-11-22
+ */
+@Data
+@TableName("ins_fee_audit")
+@ApiModel(value = "InsFeeAudit对象", description = "")
+public class InsFeeAudit implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("订单号")
+    @TableField("orderno")
+    private String orderno;
+
+    @ApiModelProperty("保司订单号")
+    @TableField("ins_order_no")
+    private String insOrderNo;
+
+    @ApiModelProperty("费用审核状态0未审核 1审核通过")
+    @TableField("auditstatus")
+    private String auditstatus;
+
+    @ApiModelProperty("审核时间")
+    @TableField("audittime")
+    private LocalDateTime audittime;
+
+    @ApiModelProperty("审核人")
+    @TableField("audituser")
+    private String audituser;
+}

+ 16 - 0
src/main/java/com/ydtech/modules/fnc/service/InsFeeAuditService.java

@@ -0,0 +1,16 @@
+package com.ydtech.modules.fnc.service;
+
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author gws
+ * @since 2023-11-22
+ */
+public interface InsFeeAuditService extends IService<InsFeeAudit> {
+
+}

+ 20 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ydtech.modules.fnc.service.impl;
+
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.dao.InsFeeAuditMapper;
+import com.ydtech.modules.fnc.service.InsFeeAuditService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author gws
+ * @since 2023-11-22
+ */
+@Service
+public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFeeAudit> implements InsFeeAuditService {
+
+}

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java

@@ -40,6 +40,9 @@ public class OrderQueryVo {
     @ApiModelProperty("保险公司编号")
     private String companyId;
 
+    @ApiModelProperty("费用审核状态0未审核 1审核通过")
+    private String auditStatus;
+
     @ApiModelProperty(value = "开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startDate;

+ 4 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderVo.java

@@ -331,6 +331,10 @@ public class OrderVo implements Serializable {
      * 扩展字段
      */
     private Object ExtendInfo;
+    /**
+     * 费用审核状态
+     */
+    private String feeStatus;
 
     /**
      * 费用信息

+ 23 - 2
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -19,6 +19,8 @@ import com.ydtech.modules.admin.service.SysUserService;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.ins.model.vo.CarInfoVo;
 import com.ydtech.modules.ins.model.ya.CarModelDTO;
 import com.ydtech.modules.ins.model.ya.ExtendInfoDto;
@@ -74,6 +76,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final InsAreaCompanyService insAreaCompanyService;
 
+    private final InsFeeAuditService insFeeAuditService;
+
     private final PtlAgreementService ptlAgreementService;
 
     private final FeeRuleSchemeServiceImpl feeRuleSchemeService;
@@ -83,7 +87,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                                 SysDeptService sysDeptService, StringRedisTemplate redisTemplate,
                                 @Lazy InsAreaCompanyService insAreaCompanyService,
                                 PtlAgreementService ptlAgreementService,
-                                @Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService) {
+                                @Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService,
+                                InsFeeAuditService insFeeAuditService) {
+
         this.orderComponents = orderComponents;
         this.sysUserService = sysUserService;
         this.sysUserRoleService = sysUserRoleService;
@@ -93,6 +99,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         this.insAreaCompanyService = insAreaCompanyService;
         this.ptlAgreementService = ptlAgreementService;
         this.feeRuleSchemeService = feeRuleSchemeService;
+        this.insFeeAuditService = insFeeAuditService;
     }
 
     @Override
@@ -237,7 +244,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                     list.stream().map(InsAreaCompany::getOrderno).distinct().collect(Collectors.toList());
             wrapper.in(InsOrders::getOrderno, collect);
         }
-
+        if (StringUtils.isNotEmpty(orderQueryVo.getAuditStatus())) {
+            List<InsFeeAudit> list = insFeeAuditService.query()
+                    .select("DISTINCT orderno")
+                    .eq("auditstatus", orderQueryVo.getAuditStatus())
+                    .list();
+            List<String> collect = list.stream().map(InsFeeAudit::getOrderno).distinct().collect(Collectors.toList());
+            wrapper.in(InsOrders::getOrderno, collect);
+        }
         Page<InsOrders> insOrdersPage = page(page, wrapper);
         return new BasePageResult<>(orderQueryVo.getPageNum(), page.getSize(), insOrdersPage.getTotal(),
                 page.getPages(), insOrdersPage.getRecords());
@@ -278,11 +292,18 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (!orderFeeVoList.isEmpty()) {
             orderAndAreaCompany.setOrderFeeResult(orderFeeVoList);
         }
+        //查询费用审核状态
+        List<InsFeeAudit> feeAuditList =insFeeAuditService.query().eq("ins_order_no",companyId).list();
+        if(feeAuditList!=null && feeAuditList.size()>0){
+            orderAndAreaCompany.setFeeStatus(feeAuditList.get(0).getAuditstatus());
+        }
         //add 解决返回null页面错误  lig 2023-09-14
         if (null == orderAndAreaCompany.getExtendInfo()) orderAndAreaCompany.setExtendInfo("");
         if (null == orderAndAreaCompany.getCrossInsurance())
             orderAndAreaCompany.setCrossInsurance(JSON.parseArray("[]"));
         if (null == orderAndAreaCompany.getKindinfo()) orderAndAreaCompany.setKindinfo(JSON.parseArray("[]"));
+        if (null == orderAndAreaCompany.getFeeStatus()) orderAndAreaCompany.setFeeStatus("0");
+
         return HttpResult.ok("success", orderAndAreaCompany);
     }
 

+ 14 - 0
src/main/resources/mapper/modules/fnc/InsFeeAuditMapper.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ydtech.modules.fnc.dao.InsFeeAuditMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.fnc.entity.InsFeeAudit">
+        <result column="orderno" property="orderno" />
+        <result column="ins_order_no" property="insOrderNo" />
+        <result column="auditstatus" property="auditstatus" />
+        <result column="audittime" property="audittime" />
+        <result column="audituser" property="audituser" />
+    </resultMap>
+
+</mapper>