Просмотр исходного кода

调整费用比例的时候,将ins_fee_order中的数据也进行调整

lipf 3 месяцев назад
Родитель
Сommit
cc51531255

+ 33 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/BatchModifyVo.java

@@ -5,6 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.List;
 import java.util.List;
 
 
@@ -56,4 +57,36 @@ public class BatchModifyVo {
     @Schema(description = "修改标识 1-手续费 2-跟单费 3-驾意险 4-所有都改")
     @Schema(description = "修改标识 1-手续费 2-跟单费 3-驾意险 4-所有都改")
     private String updateFlag;
     private String updateFlag;
 
 
+    /**
+     * 所有的比例都转换为百分比,除以100.
+     */
+    public void divide100() {
+
+        // 定义除数 100,保留两位小数即可,后续计算会根据业务需要自行处理精度
+        BigDecimal divisor = new BigDecimal("100");
+        // 交强手续费比例
+        if (this.jqSuperviseCostsProportion != null) {
+            this.jqSuperviseCostsProportion = this.jqSuperviseCostsProportion.divide(divisor,5, RoundingMode.HALF_EVEN);
+        }
+        // 商业手续费比例
+        if (this.sySuperviseCostsProportion != null) {
+            this.sySuperviseCostsProportion = this.sySuperviseCostsProportion.divide(divisor, 5,RoundingMode.HALF_EVEN);
+        }
+        // 驾意手续费比例
+        if (this.jySuperviseCostsProportion != null) {
+            this.jySuperviseCostsProportion = this.jySuperviseCostsProportion.divide(divisor, 5,RoundingMode.HALF_EVEN);
+        }
+        // 交强跟单费比例
+        if (this.jqOtherCostsProportion != null) {
+            this.jqOtherCostsProportion = this.jqOtherCostsProportion.divide(divisor, 5, RoundingMode.HALF_EVEN);
+        }
+        // 商业跟单费比例
+        if (this.syOtherCostsProportion != null) {
+            this.syOtherCostsProportion = this.syOtherCostsProportion.divide(divisor, 5, RoundingMode.HALF_EVEN);
+        }
+        // 驾意跟单费比例
+        if (this.jyOtherCostsProportion != null) {
+            this.jyOtherCostsProportion = this.jyOtherCostsProportion.divide(divisor, 5,RoundingMode.HALF_EVEN);
+        }
+    }
 }
 }

+ 0 - 1
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -23,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
 
 
 import java.util.List;
 import java.util.List;
-import java.util.Objects;
 
 
 @Tag(name="订单审核接口")
 @Tag(name="订单审核接口")
 @RestController
 @RestController

+ 6 - 6
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -823,12 +823,12 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         String systemCode = baseController.getSystemCode();
         String systemCode = baseController.getSystemCode();
         String userName = baseController.getUserName();
         String userName = baseController.getUserName();
         log.info("保存调整后的费用:systemCode=[{}], userName=[{}],param=[{}]", systemCode, userName, JSONUtil.toJsonStr(param));
         log.info("保存调整后的费用:systemCode=[{}], userName=[{}],param=[{}]", systemCode, userName, JSONUtil.toJsonStr(param));
-        // add by lipf, 2026年6月22日10:15:51 已经审核通过的订单不能在让调整费用,否则会造成费用不一致。 会影响很多地方
-        String orderNo = param.getOrderNo();
-        HttpResult<String> validateRes = this.validateOrderCheck(orderNo);
-        if(validateRes.isFail()){
-            return validateRes;
-        }
+        // add by lipf, 2026年6月22日10:15:51 已经审核通过的订单不能在让调整费用,否则会造成费用不一致。 会影响很多地方. 实际业务场景存在审核通过后,调整费用的情况
+//        String orderNo = param.getOrderNo();
+//        HttpResult<String> validateRes = this.validateOrderCheck(orderNo);
+//        if(validateRes.isFail()){
+//            return validateRes;
+//        }
         try {
         try {
             feeOrdersService.calcCosts(param);
             feeOrdersService.calcCosts(param);
         } catch (ReflectiveOperationException e) {
         } catch (ReflectiveOperationException e) {

+ 80 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -1691,6 +1691,12 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 log.info("根据订单号[{}]没有找到车险订单信息和订单的费用信息",orderNo);
                 log.info("根据订单号[{}]没有找到车险订单信息和订单的费用信息",orderNo);
                 continue;
                 continue;
             }
             }
+            // add by lipf, 进行费用的修改
+            if(this.rationIsNotNull(batchModifyVo)){
+                log.info("费用比例不为空,同步调整费用。batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
+                PtlAgreementCostRatioVo param = this.calRatio(insFeeOrders,batchModifyVo);
+                insFeeAuditService.saveCostInfo(param);
+            }
             log.info("车险订单[{}]对应的订单明细是[{}]", orderNo, JSONUtil.toJsonStr(oldInsOrders));
             log.info("车险订单[{}]对应的订单明细是[{}]", orderNo, JSONUtil.toJsonStr(oldInsOrders));
             if(batchModifyVo.getSigningTime() != null){
             if(batchModifyVo.getSigningTime() != null){
                 baseMapper.update(null, new LambdaUpdateWrapper<InsOrders>()
                 baseMapper.update(null, new LambdaUpdateWrapper<InsOrders>()
@@ -1716,4 +1722,78 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         log.info(msg);
         log.info(msg);
         return HttpResult.ok(msg);
         return HttpResult.ok(msg);
     }
     }
+
+    /**
+     * 结合原有的费用比例,计算更新后的费用比例
+     *
+     * @param insFeeOrders 订单的费用信息
+     * @param batchModifyVo 批量修改的费用比例
+     *
+     * @author lipf
+     * @date 2026/6/23 16:35
+     */
+    private PtlAgreementCostRatioVo calRatio(InsFeeOrders insFeeOrders, BatchModifyVo batchModifyVo) {
+        log.info("batchModifyVo.转换百分比之前的数据=【{}】", JSONUtil.toJsonStr(batchModifyVo));
+
+        batchModifyVo.divide100();
+
+        PtlAgreementCostRatioVo vo = new PtlAgreementCostRatioVo();
+        vo.setOrderNo(insFeeOrders.getOrderNo());
+
+        // 加投费比例
+        vo.setJqAdditionalRatio(insFeeOrders.getJqAdditionalRatio());
+        vo.setSyAdditionalRatio(insFeeOrders.getSyAdditionalRatio());
+        vo.setJyAdditionalRatio(insFeeOrders.getJyAdditionalRatio());
+
+        // 手续费比例
+        vo.setJqCommissionRatio(batchModifyVo.getJqSuperviseCostsProportion() != null ? batchModifyVo.getJqSuperviseCostsProportion(): insFeeOrders.getJqCommissionRatio());
+        vo.setSyCommissionRatio(batchModifyVo.getSySuperviseCostsProportion() != null ? batchModifyVo.getSySuperviseCostsProportion(): insFeeOrders.getSyCommissionRatio());
+        vo.setJyCommissionRatio(batchModifyVo.getJySuperviseCostsProportion() != null ? batchModifyVo.getJySuperviseCostsProportion(): insFeeOrders.getJyCommissionRatio());
+
+        // 跟单费比例
+        vo.setJqFollowRatio(batchModifyVo.getJqOtherCostsProportion() != null ? batchModifyVo.getJqOtherCostsProportion(): insFeeOrders.getJqFollowRatio());
+        vo.setSyFollowRatio(batchModifyVo.getSyOtherCostsProportion() != null ? batchModifyVo.getSyOtherCostsProportion(): insFeeOrders.getSyFollowRatio());
+        vo.setJyFollowRatio(batchModifyVo.getJyOtherCostsProportion() != null ? batchModifyVo.getJyOtherCostsProportion(): insFeeOrders.getJyFollowRatio());
+
+        // 入口比例
+        vo.setJqInletRatio(BigDecimalUtil.add(vo.getJqCommissionRatio(), vo.getJqFollowRatio()));
+        vo.setSyInletRatio(BigDecimalUtil.add(vo.getSyCommissionRatio(), vo.getSyFollowRatio()));
+        vo.setJyInletRatio(BigDecimalUtil.add(vo.getJyCommissionRatio(), vo.getJyFollowRatio()));
+
+        // 出口比例
+        vo.setJqExportRatio(insFeeOrders.getJqExportRatio());
+        vo.setSyExportRatio(insFeeOrders.getSyExportRatio());
+        vo.setJyExportRatio(insFeeOrders.getJyExportRatio());
+
+        // 留点比例
+        vo.setJqKeepPointRatio(BigDecimalUtil.subtract(BigDecimalUtil.add(vo.getJqInletRatio(), vo.getJqAdditionalRatio()),vo.getJqExportRatio()));
+        vo.setSyKeepPointRatio(BigDecimalUtil.subtract(BigDecimalUtil.add(vo.getSyInletRatio(), vo.getSyAdditionalRatio()),vo.getSyExportRatio()));
+        vo.setJyKeepPointRatio(BigDecimalUtil.subtract(BigDecimalUtil.add(vo.getJyInletRatio(), vo.getJyAdditionalRatio()),vo.getJyExportRatio()));
+
+        // 出口留点比例
+        vo.setJqExportKeepPointRatio(insFeeOrders.getJqExportKeepPointRatio());
+        vo.setSyExportKeepPointRatio(insFeeOrders.getSyExportKeepPointRatio());
+        vo.setJyExportKeepPointRatio(insFeeOrders.getJyExportKeepPointRatio());
+        log.info("调整前的比例:fee=[{}]", JSONUtil.toJsonStr(insFeeOrders));
+        log.info("调整后的比例信息:vo=[{}]", JSONUtil.toJsonStr(vo));
+        return vo;
+    }
+
+    /**
+     * 存在是否不为空的费用比例
+     *      所有费用比例都为空,返回false, 有任意一个不为空,返回true
+     *
+     * @author lipf
+     * @date 2026/6/23 16:34
+     */
+    private boolean rationIsNotNull(BatchModifyVo vo) {
+        boolean hasSuperviseOrOtherCosts = vo.getJqSuperviseCostsProportion() != null
+                || vo.getSySuperviseCostsProportion() != null
+                || vo.getJySuperviseCostsProportion() != null
+                || vo.getJqOtherCostsProportion() != null
+                || vo.getSyOtherCostsProportion() != null
+                || vo.getJyOtherCostsProportion() != null;
+        log.info("hasSuperviseOrOtherCosts=[{}]",hasSuperviseOrOtherCosts);
+        return hasSuperviseOrOtherCosts;
+    }
 }
 }

+ 1 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -2392,6 +2392,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
 
 
         // 更新关联订单
         // 更新关联订单
         batchModifyVo.setOrderNos(orderNos);
         batchModifyVo.setOrderNos(orderNos);
+        log.info("batchModifyVo=[{}]", JSONUtil.toJsonStr(batchModifyVo));
         HttpResult<String> updateOrdersRes = insFeeOrdersClient.updateOrdersBatch(batchModifyVo);
         HttpResult<String> updateOrdersRes = insFeeOrdersClient.updateOrdersBatch(batchModifyVo);
         log.info("更新车险订单的结果:updateOrdersRes=[{}]", JSONUtil.toJsonStr(updateOrdersRes));
         log.info("更新车险订单的结果:updateOrdersRes=[{}]", JSONUtil.toJsonStr(updateOrdersRes));
         return true;
         return true;

+ 2 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysDistributionSettingServiceImpl.java

@@ -136,6 +136,8 @@ public class SysDistributionSettingServiceImpl extends ServiceImpl<SysDistributi
 
 
     @Override
     @Override
     public Page<SysDistributionListVo> distributorList(Page page, SysDistributionListVo sysDistributionListVo) {
     public Page<SysDistributionListVo> distributorList(Page page, SysDistributionListVo sysDistributionListVo) {
+        String systemCode = baseController.getSystemCode();
+        log.info("查询分销员信息:systemCode=[{}],sysDistributionListVo=[{}]",systemCode,JSONUtil.toJsonStr(sysDistributionListVo));
         Page<SysDistributionListVo> pageResult = sysDistributionSettingMapper.distributorList(page,sysDistributionListVo);
         Page<SysDistributionListVo> pageResult = sysDistributionSettingMapper.distributorList(page,sysDistributionListVo);
         pageResult.getRecords().forEach(item->{
         pageResult.getRecords().forEach(item->{
             // 初始化保费
             // 初始化保费