浏览代码

费用校验添加轨迹

haoyu 2 年之前
父节点
当前提交
00a15460d5

+ 17 - 1
sql/Online.sql

@@ -140,4 +140,20 @@ CREATE TABLE `ptl_tax_source_new_record`  (
                                               `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
                                               `create_user` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建人',
                                               PRIMARY KEY (`id`) USING BTREE
-) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '调度协议默认匹配信息记录表' ROW_FORMAT = Dynamic;
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '调度协议默认匹配信息记录表' ROW_FORMAT = Dynamic;
+
+-- 费用审核轨迹表   add by hy  2024-06-3
+DROP TABLE IF EXISTS `ins_fee_audit_history`;
+CREATE TABLE `ins_fee_audit_history`  (
+                                          `id` int(0) NOT NULL COMMENT '主键ID',
+                                          `orderno` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号',
+                                          `ins_order_no` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '保司订单号 关联ins_area_company表id',
+                                          `auditstatus` varchar(2) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '费用审核状态0未审核 1审核通过',
+                                          `audittime` datetime(0) NULL DEFAULT NULL COMMENT '审核时间',
+                                          `audituser` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '审核人',
+                                          `operator` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人',
+                                          `operatorTime` datetime(0) NULL DEFAULT NULL COMMENT '操作时间',
+                                          PRIMARY KEY (`id`) USING BTREE,
+                                          INDEX `ins_order_no`(`ins_order_no`) USING BTREE COMMENT 'ins_order_no'
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '费用审核表' ROW_FORMAT = Dynamic;
+

+ 36 - 0
src/main/java/com/ydtech/constants/enums/dict/FeeAuditAuditstatus.java

@@ -0,0 +1,36 @@
+package com.ydtech.constants.enums.dict;
+
+
+import com.ydtech.aop.request.DictEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@AllArgsConstructor
+@Getter
+@DictEnum(key = "FeeAuditAuditstatus", desc = "费用审核状态")
+public enum FeeAuditAuditstatus {
+
+    UNREVICEWED("0","未审核",1,1),
+
+    PASSED("1","已审核",2,1),
+
+    REJECT("2","驳回",3,1);
+
+    // 编号
+    private final String code;
+    //说明
+    private final String desc;
+    // 排序
+    private final Integer sort;
+    // 状态  0 启用  1 不启用
+    private final Integer status;
+
+    public static FeeAuditAuditstatus getFeeAuditAuditstatus(String code) {
+        for (FeeAuditAuditstatus feeAuditAuditstatus : FeeAuditAuditstatus.values()) {
+            if (feeAuditAuditstatus.getCode().equals(code)) {
+                return feeAuditAuditstatus;
+            }
+        }
+        return null;
+    }
+}

+ 15 - 1
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -1,10 +1,13 @@
 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.modules.base.controller.BaseController;
 import com.ydtech.modules.fee.service.FeeRuleSchemeService;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
+import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.order.entity.*;
 import com.ydtech.modules.order.entity.vo.*;
@@ -29,14 +32,16 @@ public class CarSettleController extends BaseController {
     private final InsFeeAuditService insFeeAuditService;
     private final FeeRuleSchemeService feeRuleSchemeService;
 
+    private final InsFeeAuditHistoryService insFeeAuditHistoryService;
 
 
-    public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService,FeeRuleSchemeService feeRuleSchemeService) {
+    public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService, FeeRuleSchemeService feeRuleSchemeService, InsFeeAuditHistoryService insFeeAuditHistoryService) {
 
         this.insAreaCompanyService = insAreaCompanyService;
         this.insOrdersService = insOrdersService;
         this.insFeeAuditService = insFeeAuditService;
         this.feeRuleSchemeService = feeRuleSchemeService;
+        this.insFeeAuditHistoryService = insFeeAuditHistoryService;
 
     }
 
@@ -109,4 +114,13 @@ public class CarSettleController extends BaseController {
 
     }
 
+    @GetMapping("/getFeeAuditHistory/{orderno}")
+    @ApiOperation(value = "获取费用审核轨迹")
+    public HttpResult<List<InsFeeAuditHistory>> getFeeAuditHistory(@PathVariable("orderno") String orderno) {
+        LambdaQueryWrapper<InsFeeAuditHistory> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(InsFeeAuditHistory::getOrderno, orderno);
+        wrapper.orderByAsc(InsFeeAuditHistory::getOperatorTime);
+        List<InsFeeAuditHistory> list = insFeeAuditHistoryService.list(wrapper);
+        return HttpResult.ok("success", list);
+    }
 }

+ 14 - 0
src/main/java/com/ydtech/modules/fnc/dao/InsFeeAuditHistoryMapper.java

@@ -0,0 +1,14 @@
+package com.ydtech.modules.fnc.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
+import org.apache.ibatis.annotations.Mapper;
+
+
+@Mapper
+public interface InsFeeAuditHistoryMapper extends BaseMapper<InsFeeAuditHistory> {
+
+
+
+}

+ 59 - 0
src/main/java/com/ydtech/modules/fnc/entity/InsFeeAuditHistory.java

@@ -0,0 +1,59 @@
+package com.ydtech.modules.fnc.entity;
+
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+ * 费用审核历史实体类
+ * 该类用于表示保险费用审核的历史记录,包含审核的相关信息和状态。
+ */
+@Data
+@TableName("ins_fee_audit_history")
+@ApiModel(value = "InsFeeAudithistory对象", description = "")
+public class InsFeeAuditHistory implements Serializable {
+
+    @ApiModelProperty("主键ID")
+    @TableField("id")
+    private String id;
+
+    @ApiModelProperty("订单号")
+    @TableField("orderno")
+    private String orderno;
+
+    @ApiModelProperty("保司订单号")
+    @TableField("ins_order_no")
+    private String insOrderNo;
+
+    @ApiModelProperty("保司名称")
+    @TableField("ins_company")
+    private String insCompany;
+
+    @ApiModelProperty("费用审核状态0未审核 1审核通过")
+    @TableField("auditstatus")
+    private String auditstatus;
+
+    @ApiModelProperty("审核时间")
+    @TableField("audittime")
+    private LocalDateTime audittime;
+
+    @ApiModelProperty("审核人")
+    @TableField("audituser")
+    private String audituser;
+
+    @ApiModelProperty("创建用户")
+    @TableField("operator")
+    private String operator;
+
+    @ApiModelProperty("创建时间")
+    @TableField("operator_time")
+    private LocalDateTime operatorTime;
+
+}

+ 10 - 0
src/main/java/com/ydtech/modules/fnc/service/InsFeeAuditHistoryService.java

@@ -0,0 +1,10 @@
+package com.ydtech.modules.fnc.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
+
+
+public interface InsFeeAuditHistoryService extends IService<InsFeeAuditHistory> {
+
+
+}

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

@@ -22,4 +22,9 @@ public interface InsFeeAuditService extends IService<InsFeeAudit> {
       */
      void feeAudit(String orderNo,String insOrderNo,boolean isAutoAudit);
 
+
+
+     InsFeeAudit saveInsFeeAuditAndHistory(String orderNo, String insOrderNo, boolean isAutoAudit, String auditstatus);
+
+
 }

+ 15 - 0
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditHistoryServiceImpl.java

@@ -0,0 +1,15 @@
+package com.ydtech.modules.fnc.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.fnc.dao.InsFeeAuditHistoryMapper;
+import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
+import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
+import org.springframework.stereotype.Service;
+
+
+
+@Service
+public class InsFeeAuditHistoryServiceImpl extends ServiceImpl<InsFeeAuditHistoryMapper, InsFeeAuditHistory> implements InsFeeAuditHistoryService {
+
+}

+ 63 - 16
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -2,6 +2,8 @@ package com.ydtech.modules.fnc.service.impl;
 
 import cn.dev33.satoken.stp.StpUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
 import com.ydtech.constants.enums.dict.ins.InsFeeAuditDistributionStatusEnum;
 import com.ydtech.exception.SystemException;
 import com.ydtech.modules.admin.model.SysDept;
@@ -18,7 +20,9 @@ import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
 import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
 import com.ydtech.modules.fnc.dao.InsFeeAuditMapper;
+import com.ydtech.modules.fnc.entity.InsFeeAuditHistory;
 import com.ydtech.modules.fnc.entity.InsPlyIncome;
+import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.fnc.service.InsPlyIncomeService;
@@ -41,6 +45,7 @@ import com.ydtech.utils.DateUtil;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -91,11 +96,13 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     @Autowired
     private InsPlyIncomeService insPlyIncomeService;
 
+    @Autowired
+    private InsFeeAuditHistoryService insFeeAuditHistoryService;
     @Autowired
     private PtlAgreementService ptlAgreementService;
 
 
-    public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsDeptFeeService insDeptFeeService,EsmUserReferrerService esmUserReferrerService,SysUserService sysUserService,InsCommissionService insCommissionService,InsCompanyFeeService insCompanyFeeService,InsPlyIncomeMapper insPlyIncomeMapper) {
+    public InsFeeAuditServiceImpl(FncInsAreaCompanyMapper insAreaCompanyMapper, InsOrdersMapper insOrdersMapper, InsDeptFeeService insDeptFeeService, EsmUserReferrerService esmUserReferrerService, SysUserService sysUserService, InsCommissionService insCommissionService, InsCompanyFeeService insCompanyFeeService, InsPlyIncomeMapper insPlyIncomeMapper) {
         this.insAreaCompanyMapper = insAreaCompanyMapper;
         this.insOrdersMapper = insOrdersMapper;
         this.insDeptFeeService=insDeptFeeService;
@@ -107,21 +114,9 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
     }
     @Override
     @Transactional
-    public void feeAudit(String orderNo, String insOrderNo,boolean isAutoAudit){
-        //添加审核表
-        InsFeeAudit insFeeAudit=new InsFeeAudit();
-        if(isAutoAudit){
-            insFeeAudit.setAudituser("自动审核");
-        }else{
-            insFeeAudit.setAudituser(StpUtil.getLoginId().toString());
-        }
-        //保存审核表
-        insFeeAudit.setOrderno(orderNo);
-        insFeeAudit.setInsOrderNo(insOrderNo);
-        insFeeAudit.setAuditstatus("1");
-        insFeeAudit.setAudittime(LocalDateTime.now());
-        this.save(insFeeAudit);
-
+    public void feeAudit(String orderNo, String insOrderNo, boolean isAutoAudit) {
+        //添加费用审核表及轨迹信息
+        InsFeeAudit insFeeAudit = saveInsFeeAuditAndHistory(orderNo, insOrderNo,isAutoAudit, FeeAuditAuditstatus.PASSED.getCode());
 
         InsOrders order=insOrdersMapper.selectById(orderNo);
         InsAreaCompany insAreaCompany=insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
@@ -682,4 +677,56 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         }
 
     }
+
+
+    /**
+     * 保存保险费用审核信息及审核历史。
+     *
+     * @param orderNo     订单号
+     * @param insOrderNo  保险订单号
+     * @param isAutoAudit 是否自动审核,true表示自动审核,false表示人工审核
+     * @param auditstatus 审核状态码
+     */
+    @Override
+    @Transactional
+    public InsFeeAudit saveInsFeeAuditAndHistory(String orderNo, String insOrderNo, boolean isAutoAudit, String auditstatus) {
+        //查询费用审核表
+        InsFeeAudit insFeeAudit = getOne(new LambdaQueryWrapper<InsFeeAudit>().eq(InsFeeAudit::getOrderno, orderNo));
+
+        //添加审核轨迹表
+        InsFeeAuditHistory insFeeAuditHistory = new InsFeeAuditHistory();
+        if (insFeeAudit == null) {
+            insFeeAudit = new InsFeeAudit();
+            // 填充审核人
+            if (isAutoAudit) {
+                insFeeAudit.setAudituser("自动审核");
+            } else {
+                insFeeAudit.setAudituser(StpUtil.getLoginId().toString());
+            }
+            // 设置订单号和保险订单号
+            insFeeAudit.setOrderno(orderNo);
+            insFeeAudit.setInsOrderNo(insOrderNo);
+            insFeeAudit.setAudittime(LocalDateTime.now());
+            insFeeAudit.setAuditstatus(auditstatus);
+            this.save(insFeeAudit);
+        } else {
+            //状态码为已审核且数据不为空,则更新审核状态
+            insFeeAudit.setAuditstatus(auditstatus);
+            this.update(insFeeAudit, new LambdaUpdateWrapper<InsFeeAudit>().eq(InsFeeAudit::getOrderno, orderNo));
+        }
+        //复制审核对象的属性
+        BeanUtils.copyProperties(insFeeAudit, insFeeAuditHistory);
+
+        InsAreaCompany insAreaCompany = insAreaCompanyMapper.selectById(insFeeAudit.getInsOrderNo());
+
+        // 设置操作时间和操作人及保险公司名称
+        insFeeAuditHistory.setInsCompany(insAreaCompany.getInscompany());
+        insFeeAuditHistory.setOperatorTime(LocalDateTime.now());
+        insFeeAuditHistory.setOperator(BaseController.getUser().getName());
+
+        // 保存审核轨迹
+        insFeeAuditHistoryService.save(insFeeAuditHistory);
+
+        return insFeeAudit;
+    }
 }

+ 8 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -13,6 +13,7 @@ import com.ydtech.config.DictEnumConfig;
 import com.ydtech.constants.InsuranceEnum;
 import com.ydtech.constants.enums.dict.DictionaryData;
 import com.ydtech.constants.enums.dict.DictionaryManagement;
+import com.ydtech.constants.enums.dict.FeeAuditAuditstatus;
 import com.ydtech.constants.enums.dict.InsOrderStatusEnum;
 import com.ydtech.constants.enums.dict.agreement.ProductsType;
 import com.ydtech.constants.enums.dict.insurance.NatureOfVehicleUse;
@@ -33,6 +34,7 @@ import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.fee.service.CostsCalcService;
 import com.ydtech.modules.fee.service.impl.FeeRuleSchemeServiceImpl;
 import com.ydtech.modules.fnc.entity.InsFeeAudit;
+import com.ydtech.modules.fnc.service.InsFeeAuditHistoryService;
 import com.ydtech.modules.fnc.service.InsFeeAuditService;
 import com.ydtech.modules.ins.dao.InsFileMapper;
 import com.ydtech.modules.ins.model.InsOrdersExcel;
@@ -160,6 +162,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Autowired
     private InsDrivingIntentionInsuranceService insDrivingIntentionInsuranceService;
 
+    @Autowired
+    private InsFeeAuditHistoryService insFeeAuditHistoryService;
+
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService,
                                 EsmUserReferrerService esmUserReferrerService, SysDeptService sysDeptService,
@@ -225,6 +230,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             insOrdersLambdaQueryWrapper.ne(InsOrders::getOrderstatus, InsOrderStatusEnum.ACCEPT_INSURANCE.getCode());
             insOrdersLambdaQueryWrapper.eq(InsOrders::getOrderno, insAreaCompany.getOrderno());
             update(insOrders, insOrdersLambdaQueryWrapper);
+
+            //添加审核表及轨迹信息
+            insFeeAuditService.saveInsFeeAuditAndHistory(insAreaCompany.getOrderno(), insAreaCompany.getId(), true, FeeAuditAuditstatus.UNREVICEWED.getCode());
         }
     }