Quellcode durchsuchen

费用校验-审核订单时 添加 调整费用比例功能

cuixinpeng vor 2 Jahren
Ursprung
Commit
6ea01769d9

+ 8 - 2
src/main/java/com/ydtech/modules/fee/service/FeeRuleSchemeService.java

@@ -1,8 +1,6 @@
 package com.ydtech.modules.fee.service;
 
 
-import com.ydtech.modules.fee.dto.FeeSchemeReqDto;
-import com.ydtech.modules.fee.dto.FeeSchemeResDto;
 import com.ydtech.modules.ins.model.vo.QuoteRespVo;
 import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import com.ydtech.modules.order.entity.vo.QueryOrderFeeResultVo;
@@ -33,4 +31,12 @@ public interface FeeRuleSchemeService {
     public QueryOrderFeeVo queryFeeOrderInfo(String companyId);
 
     public List<QueryOrderFeeResultVo> convertOrderFeeVoData(QueryOrderFeeVo orderFeeVo);
+
+    /**
+     * 比较和更新总费用比例
+     * @param insOrderNo
+     * @param jqCostsProportionStr
+     * @param syCostsProportionStr
+     */
+    void compareAndUpdateFeeOrderInfo(String insOrderNo ,String jqCostsProportionStr,String syCostsProportionStr);
 }

+ 29 - 0
src/main/java/com/ydtech/modules/fee/service/impl/FeeRuleSchemeServiceImpl.java

@@ -1291,6 +1291,35 @@ public class FeeRuleSchemeServiceImpl implements FeeRuleSchemeService {
         }
         insFeeOrderService.insertCompanyAndOrders(insFeeOrder);
     }
+    public void compareAndUpdateFeeOrderInfo( String insOrderNo,String jqCostsProportionStr,String syCostsProportionStr ){
+        InsFeeOrder insFeeOrder = insFeeOrderService.getByInsOrderNo(insOrderNo);
+        boolean updateFlag = false;
+        if(insFeeOrder.getJqPremium().doubleValue()>0 && StringUtils.isNotEmpty(jqCostsProportionStr)){
+            BigDecimal JqCostsProportion = new BigDecimal(jqCostsProportionStr);
+            //比较传入的交强总费用比例是否与原费用比例相等,不相等进行更新
+            if(JqCostsProportion.compareTo(insFeeOrder.getJqCostsProportion())!=0){
+                updateFlag = true;
+                //交强总费用比例
+                insFeeOrder.setJqCostsPremiums(JqCostsProportion);
+                //交强险总费用
+                insFeeOrder.setJqCostsPremiums(getPremium(insFeeOrder.getJqNoTaxPremium(),insFeeOrder.getJqCostsProportion()));
+            }
+        }
+        if(insFeeOrder.getSyPremium().doubleValue()>0 && StringUtils.isNotEmpty(syCostsProportionStr)){
+            BigDecimal SyCostsProportion = new BigDecimal(syCostsProportionStr);
+            //比较传入的商业总费用比例是否与原费用比例相等,不相等进行更新
+            if(SyCostsProportion.compareTo(insFeeOrder.getSyCostsProportion())!=0){
+                updateFlag = true;
+                //商业总费用比例
+                insFeeOrder.setSyCostsProportion(SyCostsProportion);
+                //商业险总费用
+                insFeeOrder.setSyCostsPremiums(getPremium(insFeeOrder.getSyNoTaxPremium(),insFeeOrder.getSyCostsProportion()));
+            }
+        }
+        if(updateFlag){
+            insFeeOrderService.updateById(insFeeOrder);
+        }
+    }
 
     private BigDecimal getPremium(BigDecimal noTaxPremium,BigDecimal costsProportion){
         BigDecimal premium = new BigDecimal(0);

+ 9 - 2
src/main/java/com/ydtech/modules/fnc/controller/CarSettleController.java

@@ -3,6 +3,7 @@ package com.ydtech.modules.fnc.controller;
 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.service.InsFeeAuditService;
 import com.ydtech.modules.order.entity.*;
@@ -26,14 +27,16 @@ public class CarSettleController extends BaseController {
     private final InsAreaCompanyService insAreaCompanyService;
 
     private final InsFeeAuditService insFeeAuditService;
+    private final FeeRuleSchemeService feeRuleSchemeService;
 
 
 
-    public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService) {
+    public CarSettleController(InsAreaCompanyService insAreaCompanyService, InsOrdersService insOrdersService, InsFeeAuditService insFeeAuditService,FeeRuleSchemeService feeRuleSchemeService) {
 
         this.insAreaCompanyService = insAreaCompanyService;
         this.insOrdersService = insOrdersService;
         this.insFeeAuditService = insFeeAuditService;
+        this.feeRuleSchemeService = feeRuleSchemeService;
 
     }
 
@@ -74,7 +77,8 @@ public class CarSettleController extends BaseController {
      */
     @PostMapping("/auditFee")
     @ApiOperation(value = "[3]费用审核")
-    public HttpResult auditFee(@RequestSingleParam(value = "orderNo") String orderNo) {
+    public HttpResult auditFee(@RequestBody @Valid AuditOrderFeeVo auditOrderFeeVo) {
+        String orderNo = auditOrderFeeVo.getOrderNo();
         //查询改订单是已审核
         List<InsFeeAudit> feeList =insFeeAuditService.query().eq("orderno",orderNo).list();
         if(feeList!=null &&feeList.size()>0){
@@ -86,6 +90,9 @@ public class CarSettleController extends BaseController {
                 .eq("orderstatus","3").list();//3已承保
         if(areaList!=null && areaList.size()>0){
             try{
+                if("1".equals(auditOrderFeeVo.getUpdateFlag())){
+                    feeRuleSchemeService.compareAndUpdateFeeOrderInfo( areaList.get(0).getId(),auditOrderFeeVo.getJqCostsProportionStr(),auditOrderFeeVo.getSyCostsProportionStr());
+                }
                 insFeeAuditService.feeAudit( orderNo, areaList.get(0).getId());
             }catch (Exception e){
                 e.printStackTrace();

+ 27 - 0
src/main/java/com/ydtech/modules/order/entity/vo/AuditOrderFeeVo.java

@@ -0,0 +1,27 @@
+package com.ydtech.modules.order.entity.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: CXP
+ * @Date: 2024/1/12 22:29
+ */
+@Data
+@ApiModel("订单审核Vo")
+public class AuditOrderFeeVo {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "交强总费用比例")
+    private String jqCostsProportionStr;
+
+    @ApiModelProperty(value = "商业总费用比例")
+    private String syCostsProportionStr;
+
+    @ApiModelProperty(value = "是否修改过 修改:1 未修改:0")
+    private String updateFlag;
+
+}