Explorar o código

Merge branch 'master' into wrq_dev

wangrq hai 2 meses
pai
achega
4745202a0d
Modificáronse 13 ficheiros con 186 adicións e 47 borrados
  1. 14 0
      commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java
  2. 1 1
      commons/src/main/java/com/jzg/commons/entity/quote/vo/orders/InsOrdersAdd.java
  3. 42 0
      commons/src/main/java/com/jzg/commons/entity/vo/InsFeeOrdersVo.java
  4. 78 38
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java
  5. 1 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersPolicyService.java
  6. 5 0
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersPolicyServiceImpl.java
  7. 35 3
      tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java
  8. 1 1
      tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/build/TaiShanCrawlerQuoteRequestVoBuild.java
  9. 1 1
      tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanCrawlerRequestComponent.java
  10. 5 0
      tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanDuplicateInsuranceComponents.java
  11. 1 1
      tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/service/impl/TaiShanCrawlerQuoteProcessServiceImpl.java
  12. 1 0
      tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java
  13. 1 2
      tenant/organization/src/main/resources/mapper/InsFeeFollowOrderMapper.xml

+ 14 - 0
commons/src/main/java/com/jzg/commons/entity/po/InsFeeOrders.java

@@ -180,6 +180,8 @@ public class InsFeeOrders {
     @Schema(description = "驾意出口费用")
     private BigDecimal jyExportPremium;
 
+    @Schema(description = "出口费用5截2位的差额")
+    private BigDecimal totalExportDiffAmount;
     /**
      * 新增出口留点比例
      */
@@ -222,6 +224,10 @@ public class InsFeeOrders {
     @Schema(description = "一级分销员id")
     private String firstDistributorId;
 
+    @Schema(description = "一级分销员")
+    @TableField(exist = false)
+    private String firstDistributorName;
+
     @Schema(description = "一级分销比例")
     private BigDecimal firstDistributionRatio;
 
@@ -231,6 +237,10 @@ public class InsFeeOrders {
     @Schema(description = "二级分销员id")
     private String secondDistributorId;
 
+    @Schema(description = "二级分销员")
+    @TableField(exist = false)
+    private String secondDistributorName;
+
     @Schema(description = "二级分销比例")
     private BigDecimal secondDistributionRatio;
 
@@ -240,6 +250,10 @@ public class InsFeeOrders {
     @Schema(description = "三级分销员id")
     private String thirdDistributorId;
 
+    @Schema(description = "三级分销员")
+    @TableField(exist = false)
+    private String thirdDistributorName;
+
     @Schema(description = "三级分销比例")
     private BigDecimal thirdDistributionRatio;
 

+ 1 - 1
commons/src/main/java/com/jzg/commons/entity/quote/vo/orders/InsOrdersAdd.java

@@ -5,9 +5,9 @@ import com.jzg.commons.entity.dto.InsTaskImagesAdd;
 import com.jzg.commons.entity.orders.po.InsOrders;
 import com.jzg.commons.entity.orders.po.InsOrdersExternalFee;
 import com.jzg.commons.entity.orders.po.InsOrdersExternalPolicy;
+import com.jzg.commons.entity.quote.vo.QuoteVo;
 import com.jzg.commons.entity.vo.InsFeeOrdersVo;
 import com.jzg.commons.entity.vo.InsOrdersOtherInfoVo;
-import com.jzg.commons.entity.quote.vo.QuoteVo;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 42 - 0
commons/src/main/java/com/jzg/commons/entity/vo/InsFeeOrdersVo.java

@@ -136,6 +136,9 @@ public class InsFeeOrdersVo {
     @Schema(description = "驾意出口费用")
     private String jyExportPremium;
 
+    @Schema(description = "出口费用5截2位的差额")
+    private BigDecimal totalExportDiffAmount;
+
     @Schema(description = "交强险出口留点费用")
     private String jqExportKeepPointPremium;
 
@@ -145,6 +148,33 @@ public class InsFeeOrdersVo {
     @Schema(description = "驾意险出口留点费用")
     private String jyExportKeepPointPremium;
 
+    @Schema(description = "一级分销费")
+    private String firstDistributionPremium;
+
+    @Schema(description = "二级分销费")
+    private String secondDistributionPremium;
+
+    @Schema(description = "三级分销费")
+    private String thirdDistributionPremium;
+
+    @Schema(description = "一级分销比例")
+    private BigDecimal firstDistributionRatio;
+
+    @Schema(description = "二级分销比例")
+    private BigDecimal secondDistributionRatio;
+
+    @Schema(description = "三级分销比例")
+    private BigDecimal thirdDistributionRatio;
+
+    @Schema(description = "一级分销员")
+    private String firstDistributionMember;
+
+    @Schema(description = "二级分销员")
+    private String secondDistributionMember;
+
+    @Schema(description = "三级分销员")
+    private String thirdDistributionMember;
+
     @Schema(description = "权益相关:可用金额<可用金额=出口费用➖出口人留点费用>")
     private BigDecimal availableAmount;
 
@@ -204,6 +234,18 @@ public class InsFeeOrdersVo {
         this.syExportKeepPointPremium = insFeeOrders.getSyExportKeepPointPremium() != null ? insFeeOrders.getSyExportKeepPointPremium().toString() : "0.00";
         this.jyExportKeepPointPremium = insFeeOrders.getJyExportKeepPointPremium() != null ? insFeeOrders.getJyExportKeepPointPremium().toString() : "0.00";
 
+        this.firstDistributionPremium = insFeeOrders.getFirstDistributionFee() != null ? insFeeOrders.getFirstDistributionFee().toString() : "0.00";
+        this.secondDistributionPremium = insFeeOrders.getSecondDistributionFee() != null ? insFeeOrders.getSecondDistributionFee().toString() : "0.00";
+        this.thirdDistributionPremium = insFeeOrders.getThirdDistributionFee() != null ? insFeeOrders.getThirdDistributionFee().toString() : "0.00";
+
+        this.firstDistributionRatio = insFeeOrders.getFirstDistributionRatio() != null ? insFeeOrders.getFirstDistributionRatio() : BigDecimal.ZERO;
+        this.secondDistributionRatio = insFeeOrders.getSecondDistributionRatio() != null ? insFeeOrders.getSecondDistributionRatio() : BigDecimal.ZERO;
+        this.thirdDistributionRatio = insFeeOrders.getThirdDistributionRatio() != null ? insFeeOrders.getThirdDistributionRatio() : BigDecimal.ZERO;
+
+        this.firstDistributionMember = insFeeOrders.getFirstDistributorName() != null ? insFeeOrders.getFirstDistributorName() : "";
+        this.secondDistributionMember = insFeeOrders.getSecondDistributorName() != null ? insFeeOrders.getSecondDistributorName() : "";
+        this.thirdDistributionMember = insFeeOrders.getThirdDistributorName() != null ? insFeeOrders.getThirdDistributorName() : "";
+
         this.availableAmount = insFeeOrders.getAvailableAmount() != null ? insFeeOrders.getAvailableAmount() : BigDecimal.ZERO;
         this.remainingAmount = insFeeOrders.getRemainingAmount() != null ? insFeeOrders.getRemainingAmount() : BigDecimal.ZERO;
         this.usedAmount = insFeeOrders.getUsedAmount() != null ? insFeeOrders.getUsedAmount() : BigDecimal.ZERO;

+ 78 - 38
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/aop/aspect/QuoteVerificationAspect.java

@@ -251,6 +251,7 @@ public class QuoteVerificationAspect {
             BigDecimal jqInlet = BigDecimalUtil.divide(jqCostType.getInlet(), new BigDecimal(100));
             if (BigDecimalUtil.subtract(jqEntranceFeeRatio, jqInlet).compareTo(BigDecimal.ZERO) > 0) {
                 jqEntranceFeeRatio = jqInlet;
+                agreementInfoVo.getAgreement().setJqEntranceFeeRatio(jqEntranceFeeRatio);
             }
         }
 
@@ -259,6 +260,7 @@ public class QuoteVerificationAspect {
             BigDecimal syInlet = BigDecimalUtil.divide(syCostType.getInlet(), new BigDecimal(100));
             if (BigDecimalUtil.subtract(syEntranceFeeRatio, syInlet).compareTo(BigDecimal.ZERO) > 0) {
                 syEntranceFeeRatio = syInlet;
+                agreementInfoVo.getAgreement().setSyEntranceFeeRatio(syEntranceFeeRatio);
             }
         }
 
@@ -266,6 +268,7 @@ public class QuoteVerificationAspect {
             BigDecimal jyInlet = BigDecimalUtil.divide(jyCostType.getInlet(), new BigDecimal(100));
             if (BigDecimalUtil.subtract(jyEntranceFeeRatio, jyInlet).compareTo(BigDecimal.ZERO) > 0) {
                 jyEntranceFeeRatio = jyInlet;
+                agreementInfoVo.getAgreement().setJyEntranceFeeRatio(jyEntranceFeeRatio);
             }
         }
 
@@ -302,12 +305,12 @@ public class QuoteVerificationAspect {
                 InsFeeOrders::setJyCommissionPremium, InsFeeOrders::setJyFollowPremium, InsFeeOrders::setJyAdditionalPremium,
                 InsFeeOrders::setJyKeepPointRatio,InsFeeOrders::setJyKeepPointPremium);
 
-        // 7. 计算分销费用
-        calculateDistributionFee(insOrdersCosts,insFeeOrders, insOrders);
+        // 7. 计算分销费用  返回分销的差值
+        BigDecimal distributionDiff = calculateDistributionFee(insOrdersCosts,insFeeOrders, insOrders);
 
         // 8. 计算总应收、总应付、保存费用比例 入库
         saveRatio(insFeeOrders, agreementInfoVo, jqCostType, syCostType, jyCostType);
-        calculateTotalPremium(insFeeOrders);
+        calculateTotalPremium(insFeeOrders, distributionDiff);
 
 
 
@@ -434,7 +437,7 @@ public class QuoteVerificationAspect {
     /**
      * 计算总应收和总应付金额
      */
-    private void calculateTotalPremium(InsFeeOrders insFeeOrders) {
+    private void calculateTotalPremium(InsFeeOrders insFeeOrders, BigDecimal distributionDiff) {
         // 总应收 = 交强险应收 + 商业险应收 + 驾意险应收
         BigDecimal totalReceivable = insFeeOrders.getJqReceivablePremium()
                 .add(insFeeOrders.getSyReceivablePremium())
@@ -451,27 +454,38 @@ public class QuoteVerificationAspect {
         insFeeOrders.setTotalPayablePremium(totalPayable);
 
         // 计算出口费用 = (出口比列 * 保费)- 分销费
-        BigDecimal firstDistributionFee = insFeeOrders.getFirstDistributionFee();
-        BigDecimal secondDistributionFee = insFeeOrders.getSecondDistributionFee();
-        BigDecimal thirdDistributionFee = insFeeOrders.getThirdDistributionFee();
-        BigDecimal jqExportPremium = insFeeOrders.getJqExportRatio().multiply(insFeeOrders.getJqPremium()).setScale(2,RoundingMode.DOWN);
-        if (jqExportPremium.compareTo(BigDecimal.ZERO) > 0) {
-            jqExportPremium = jqExportPremium.subtract(firstDistributionFee).subtract(secondDistributionFee).subtract(thirdDistributionFee);
-        }
+//        BigDecimal firstDistributionFee = insFeeOrders.getFirstDistributionFee();
+//        BigDecimal secondDistributionFee = insFeeOrders.getSecondDistributionFee();
+//        BigDecimal thirdDistributionFee = insFeeOrders.getThirdDistributionFee();
+        BigDecimal jqExportPremiumOrigin = insFeeOrders.getJqExportRatio().multiply(insFeeOrders.getJqPremium());
+        BigDecimal jqExportPremium = jqExportPremiumOrigin.setScale(2,RoundingMode.DOWN);
+//        if (jqExportPremium.compareTo(BigDecimal.ZERO) > 0) {
+//            jqExportPremium = jqExportPremium.subtract(firstDistributionFee).subtract(secondDistributionFee).subtract(thirdDistributionFee);
+//        }
         insFeeOrders.setJqExportPremium(jqExportPremium);
 
-        BigDecimal syExportPremium = insFeeOrders.getSyExportRatio().multiply(insFeeOrders.getSyPremium()).setScale(2, RoundingMode.DOWN);
-        if (syExportPremium.compareTo(BigDecimal.ZERO) > 0) {
-            syExportPremium = syExportPremium.subtract(firstDistributionFee).subtract(secondDistributionFee).subtract(thirdDistributionFee);
-        }
+        BigDecimal syExportPremiumOrigin = insFeeOrders.getSyExportRatio().multiply(insFeeOrders.getSyPremium());
+        BigDecimal syExportPremium = syExportPremiumOrigin.setScale(2, RoundingMode.DOWN);
+//        if (syExportPremium.compareTo(BigDecimal.ZERO) > 0) {
+//            syExportPremium = syExportPremium.subtract(firstDistributionFee).subtract(secondDistributionFee).subtract(thirdDistributionFee);
+//        }
         insFeeOrders.setSyExportPremium(syExportPremium);
-
-        BigDecimal jyExportPremium = insFeeOrders.getJyExportRatio().multiply(insFeeOrders.getJyPremium()).setScale(2, RoundingMode.DOWN);;
-        if (jyExportPremium.compareTo(BigDecimal.ZERO) > 0) {
-            jyExportPremium = jyExportPremium.subtract(firstDistributionFee).subtract(secondDistributionFee).subtract(thirdDistributionFee);
-        }
+        BigDecimal jyExportPremiumOrigin = insFeeOrders.getJyExportRatio().multiply(insFeeOrders.getJyPremium());
+        BigDecimal jyExportPremium = jyExportPremiumOrigin.setScale(2, RoundingMode.DOWN);
+//        if (jyExportPremium.compareTo(BigDecimal.ZERO) > 0) {
+//            jyExportPremium = jyExportPremium.subtract(firstDistributionFee).subtract(secondDistributionFee).subtract(thirdDistributionFee);
+//        }
         insFeeOrders.setJyExportPremium(jyExportPremium);
 
+        // add by lipf, 2026年6月27日15:45:20 计算总的出口金额由5位调整为2位时,截断的所有金额
+        List<BigDecimal> diffs = new ArrayList<>();
+        diffs.add(BigDecimalUtil.subtract(jqExportPremiumOrigin,jqExportPremium));
+        diffs.add(BigDecimalUtil.subtract(syExportPremiumOrigin,syExportPremium));
+        diffs.add(BigDecimalUtil.subtract(jyExportPremiumOrigin,jyExportPremium));
+        // 分销差值
+        diffs.add(distributionDiff);
+        insFeeOrders.setTotalExportDiffAmount(BigDecimalUtil.add(diffs));
+
         // 计算出口留点费用
         BigDecimal jqExportKeepRatioPremium = insFeeOrders.getJqExportKeepPointRatio().multiply(insFeeOrders.getJqPremium());
         insFeeOrders.setJqExportKeepPointPremium(jqExportKeepRatioPremium);
@@ -596,7 +610,7 @@ public class QuoteVerificationAspect {
     /**
      * 计算分销费
      */
-    private void calculateDistributionFee(InsOrdersCosts insOrdersCosts, InsFeeOrders insFeeOrders,InsOrders insOrders){
+    private BigDecimal calculateDistributionFee(InsOrdersCosts insOrdersCosts, InsFeeOrders insFeeOrders,InsOrders insOrders){
         // 总保费
         BigDecimal totalPremium = insOrdersCosts.getSumPremium();
         // 获取当前租户信息
@@ -613,35 +627,47 @@ public class QuoteVerificationAspect {
             if (sysDept.getData() != null && sysDept.getData().getIsDistribution().equals("1")) {
                 // 获取租户分销设置为几级分销
                 String level = sysDistributionSetting.getDistributionMode();
+                BigDecimal diffAmount = BigDecimal.ZERO;
                 switch (level) {
                     case "1":
-                        calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
+                        Map<String,Object> map = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
+                        if(Objects.nonNull(map)){
+                            diffAmount = new BigDecimal(map.get("diffAmount").toString());
+                        }
                         break;
                     case "2":
-                        String firstDistributorId = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
-                        if (firstDistributorId != null) {
-                            calculateLevel2Distribution(insFeeOrders, totalPremium, firstDistributorId, sysDistributionSetting);
+
+                        Map<String,Object> firstDistributor = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
+                        if (firstDistributor != null) {
+                            Map<String,Object> level2map = calculateLevel2Distribution(insFeeOrders, totalPremium, firstDistributor.get("id").toString(), sysDistributionSetting);
+                            if(Objects.nonNull(level2map)){
+                                diffAmount = new BigDecimal(level2map.get("diffAmount").toString());
+                            }
+                            diffAmount = diffAmount.add(new BigDecimal(firstDistributor.get("diffAmount").toString()));
                         }
                         break;
                     case "3":
-                        String level1Id = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getId(), sysDistributionSetting);
-                        if (level1Id != null) {
-                            String level2Id = calculateLevel2Distribution(insFeeOrders, totalPremium, level1Id, sysDistributionSetting);
-                            if (level2Id != null) {
-                                calculateLevel3Distribution(insFeeOrders, totalPremium, level2Id, sysDistributionSetting);
+                        Map<String,Object> level1 = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getId(), sysDistributionSetting);
+                        if (level1 != null) {
+                            Map<String,Object> level2 = calculateLevel2Distribution(insFeeOrders, totalPremium, level1.get("id").toString(), sysDistributionSetting);
+                            if (level2 != null) {
+                                diffAmount = calculateLevel3Distribution(insFeeOrders, totalPremium, level2.get("id").toString(), sysDistributionSetting);
                             }
+                            diffAmount = diffAmount.add(new BigDecimal(level2.get("diffAmount").toString())).add(new BigDecimal(level1.get("diffAmount").toString()));
                         }
                         break;
                 }
+                return diffAmount;
             }
         }
+        return BigDecimal.ZERO;
     }
 
     /**
      * 计算一级分销费
      * @return 一级分销员ID,若不存在则返回null
      */
-    private String calculateLevel1Distribution(InsFeeOrders insFeeOrders, BigDecimal totalPremium,
+    private Map<String,Object> calculateLevel1Distribution(InsFeeOrders insFeeOrders, BigDecimal totalPremium,
                                                String userId, SysDistributionSetting setting) {
         HttpResult<EsmUserReferrer> referrerResult = orgClient.getReferrer(userId);
         if (referrerResult.getData() != null) {
@@ -650,9 +676,14 @@ public class QuoteVerificationAspect {
             if (referrerInfoResult.getData() != null && "1".equals(referrerInfoResult.getData().getIsDistribution())) {
                 String distributorId = referrer.getReferrerId();
                 insFeeOrders.setFirstDistributorId(distributorId);
-                insFeeOrders.setFirstDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel1()));
+                BigDecimal fee_5 = (totalPremium.multiply(setting.getCommissionRatioLevel1()).setScale(5,RoundingMode.DOWN));
+                insFeeOrders.setFirstDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel1()).setScale(2,RoundingMode.DOWN));
                 insFeeOrders.setFirstDistributionRatio(setting.getCommissionRatioLevel1());
-                return distributorId;
+                BigDecimal diffAmount = fee_5.subtract(insFeeOrders.getFirstDistributionFee());
+                Map map = new HashMap();
+                map.put("id",distributorId);
+                map.put("diffAmount",diffAmount);
+                return map;
             } else {
                 insFeeOrders.setFirstDistributionFee(BigDecimal.ZERO);
                 insFeeOrders.setFirstDistributionRatio(BigDecimal.ZERO);
@@ -665,7 +696,7 @@ public class QuoteVerificationAspect {
      * 计算二级分销费
      * @return 二级分销员ID,若不存在则返回null
      */
-    private String calculateLevel2Distribution(InsFeeOrders insFeeOrders, BigDecimal totalPremium,
+    private Map<String,Object> calculateLevel2Distribution(InsFeeOrders insFeeOrders, BigDecimal totalPremium,
                                                String upperDistributorId, SysDistributionSetting setting) {
         HttpResult<EsmUserReferrer> referrerResult = orgClient.getReferrer(upperDistributorId);
         if (referrerResult.getData() != null) {
@@ -674,9 +705,14 @@ public class QuoteVerificationAspect {
             if (referrerInfoResult.getData() != null && "1".equals(referrerInfoResult.getData().getIsDistribution())) {
                 String distributorId = referrer.getReferrerId();
                 insFeeOrders.setSecondDistributorId(distributorId);
-                insFeeOrders.setSecondDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel2()));
+                BigDecimal fee_5 = (totalPremium.multiply(setting.getCommissionRatioLevel2()).setScale(5,RoundingMode.DOWN));
+                insFeeOrders.setSecondDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel2()).setScale(2,RoundingMode.DOWN));
                 insFeeOrders.setSecondDistributionRatio(setting.getCommissionRatioLevel2());
-                return distributorId;
+                BigDecimal diffAmount = fee_5.subtract(insFeeOrders.getSecondDistributionFee());
+                Map map = new HashMap();
+                map.put("id",distributorId);
+                map.put("diffAmount",diffAmount);
+                return map;
             } else {
                 insFeeOrders.setSecondDistributionFee(BigDecimal.ZERO);
                 insFeeOrders.setSecondDistributionRatio(BigDecimal.ZERO);
@@ -688,7 +724,7 @@ public class QuoteVerificationAspect {
     /**
      * 计算三级分销费
      */
-    private void calculateLevel3Distribution(InsFeeOrders insFeeOrders, BigDecimal totalPremium,
+    private BigDecimal calculateLevel3Distribution(InsFeeOrders insFeeOrders, BigDecimal totalPremium,
                                              String upperDistributorId, SysDistributionSetting setting) {
         HttpResult<EsmUserReferrer> referrerResult = orgClient.getReferrer(upperDistributorId);
         if (referrerResult.getData() != null) {
@@ -697,13 +733,17 @@ public class QuoteVerificationAspect {
             if (referrerInfoResult.getData() != null
                     && "1".equals(referrerInfoResult.getData().getIsDistribution())) {
                 insFeeOrders.setThirdDistributorId(referrer.getReferrerId());
-                insFeeOrders.setThirdDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel3()));
+                BigDecimal fee_5 = (totalPremium.multiply(setting.getCommissionRatioLevel3()).setScale(5,RoundingMode.DOWN));
+                insFeeOrders.setThirdDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel3()).setScale(2,RoundingMode.DOWN));
                 insFeeOrders.setThirdDistributionRatio(setting.getCommissionRatioLevel3());
+                BigDecimal diffAmount = fee_5.subtract(insFeeOrders.getThirdDistributionFee());
+                return diffAmount;
             } else {
                 insFeeOrders.setThirdDistributionFee(BigDecimal.ZERO);
                 insFeeOrders.setThirdDistributionRatio(BigDecimal.ZERO);
             }
         }
+        return BigDecimal.ZERO;
     }
 
     @Before("@annotation(com.jzg.quotation.summary.aop.QuoteVerification)")

+ 1 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/InsOrdersPolicyService.java

@@ -7,4 +7,5 @@ import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 public interface InsOrdersPolicyService extends IService<InsOrdersPolicy> {
     void createPolicy(InsOrders insOrders);
 
+    void updateByOrderNo(InsOrdersPolicy ordersExternalPolicy);
 }

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

@@ -21,4 +21,9 @@ public class InsOrdersPolicyServiceImpl extends ServiceImpl<InsOrdersPolicyMappe
         insOrdersPolicy.setOrderNo(insOrders.getId());
         this.save(insOrdersPolicy);
     }
+
+    @Override
+    public void updateByOrderNo(InsOrdersPolicy ordersExternalPolicy) {
+        this.updateById(ordersExternalPolicy);
+    }
 }

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

@@ -268,8 +268,15 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             }
 
             InsOrdersExternalPolicy ordersExternalPolicy = ordersAdd.getInsOrdersExternalPolicy();
-            ordersExternalPolicy.setOrderNo(String.valueOf(quoteNo));
+            ordersExternalPolicy.setOrderNo(quoteNo);
             policyService.save(ordersExternalPolicy);
+            InsOrdersPolicy ordersPolicy = new InsOrdersPolicy();
+            ordersPolicy.setOrderNo(String.valueOf(quoteNo));
+            ordersPolicy.setJyApplyNo(ordersExternalPolicy.getJqSign());
+            ordersPolicy.setJqPolicyNo(ordersExternalPolicy.getJqPolicy());
+            ordersPolicy.setSyPolicyNo(ordersExternalPolicy.getSyPolicy());
+            ordersPolicy.setJyPolicyNo(ordersExternalPolicy.getNoPolicy());
+            insOrdersPolicyService.updateByOrderNo(ordersPolicy);
 
             // 发送订单状态变更消息
             this.orderStatusMessage(insOrders,
@@ -520,8 +527,20 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 费用信息
         InsFeeOrders insFeeOrders = insFeeOrdersMapper.selectOne(new LambdaQueryWrapper<InsFeeOrders>()
                 .eq(InsFeeOrders::getOrderNo, insOrdersVo.getInsOrders().getId()));
-        // 比例信息
+        // 比例信息 分销员信息
         if (insFeeOrders != null) {
+            HttpResult<SysUserJzgInfo> firstDistributor = orgClient.getUserInfoById(insFeeOrders.getFirstDistributorId());
+            HttpResult<SysUserJzgInfo> secondDistributor = orgClient.getUserInfoById(insFeeOrders.getSecondDistributorId());
+            HttpResult<SysUserJzgInfo> thirdDistributor = orgClient.getUserInfoById(insFeeOrders.getThirdDistributorId());
+            if (firstDistributor.getData() != null) {
+                insFeeOrders.setFirstDistributorName(firstDistributor.getData().getName());
+            }
+            if (secondDistributor.getData() != null) {
+                insFeeOrders.setSecondDistributorName(secondDistributor.getData().getName());
+            }
+            if (thirdDistributor.getData() != null) {
+                insFeeOrders.setThirdDistributorName(thirdDistributor.getData().getName());
+            }
             insOrdersVo.setCostRatio(new PtlAgreementCostRatioVo(insFeeOrders));
             insOrdersVo.setFeeOrdersVo(new InsFeeOrdersVo(insFeeOrders));
         }
@@ -1356,8 +1375,21 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         // 费用信息
         InsFeeOrders insFeeOrders = insFeeOrdersMapper.selectOne(new LambdaQueryWrapper<InsFeeOrders>()
                 .eq(InsFeeOrders::getOrderNo, ordersNo));
-        // 比例信息
+
+        // 比例信息 分销员信息
         if (insFeeOrders != null) {
+            HttpResult<SysUserJzgInfo> firstDistributor = orgClient.getUserInfoById(insFeeOrders.getFirstDistributorId());
+            HttpResult<SysUserJzgInfo> secondDistributor = orgClient.getUserInfoById(insFeeOrders.getSecondDistributorId());
+            HttpResult<SysUserJzgInfo> thirdDistributor = orgClient.getUserInfoById(insFeeOrders.getThirdDistributorId());
+            if (firstDistributor.getData() != null) {
+                insFeeOrders.setFirstDistributorName(firstDistributor.getData().getName());
+            }
+            if (secondDistributor.getData() != null) {
+                insFeeOrders.setSecondDistributorName(secondDistributor.getData().getName());
+            }
+            if (thirdDistributor.getData() != null) {
+                insFeeOrders.setThirdDistributorName(thirdDistributor.getData().getName());
+            }
             resultVo.setCostRatio(new PtlAgreementCostRatioVo(insFeeOrders));
             resultVo.setInsFeeOrders(new InsFeeOrdersVo(insFeeOrders));
         }

+ 1 - 1
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/build/TaiShanCrawlerQuoteRequestVoBuild.java

@@ -130,7 +130,7 @@ public class TaiShanCrawlerQuoteRequestVoBuild {
         proposalInfo.setOperateDate(DateUtil.formatDate(new Date(), "yyyy-MM-dd HH:mm:ss"));
         proposalInfo.setLoginCompany(parameters.getComCode());
         String energyTypeCode = quoteVo.getCarInfoVo().getEnergyTypeCode();
-        if(energyTypeCode.equals("0")){
+        if("0".equals(energyTypeCode)){
             proposalInfo.setCombinedProductCode("1369");
         }else{
             proposalInfo.setCombinedProductCode("1373");

+ 1 - 1
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanCrawlerRequestComponent.java

@@ -340,7 +340,7 @@ public class TaiShanCrawlerRequestComponent {
      * @return TaiShanCrawlerOrderQueryResponse
      */
     public TaiShanCrawlerOrderQueryResponse queryOrderStatus(TaiShanCrawlerOrderQueryRequest request, HttpHeaders headers) {
-        TaiShanCrawlerOrderQueryResponse response = post(RequestUrl.UPLOAD_IMAGE, request, TaiShanCrawlerOrderQueryResponse.class, headers);
+        TaiShanCrawlerOrderQueryResponse response = post(RequestUrl.QUERY_ORDER_STATUS, request, TaiShanCrawlerOrderQueryResponse.class, headers);
         return response;
     }
 

+ 5 - 0
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/component/TaiShanDuplicateInsuranceComponents.java

@@ -35,6 +35,11 @@ public class TaiShanDuplicateInsuranceComponents extends ResponseMessageAbstract
     private TaiShanCrawlerRequestComponent taiShanCrawlerRequestComponent;
 
     protected static final Map<Integer, String> dateFormatMap = new HashMap<>();
+    static {
+        dateFormatMap.put(12, "yyyyMMddHHmm");
+        dateFormatMap.put(14, "yyyyMMddHHmmss");
+        dateFormatMap.put(8, "yyyyMMdd");
+    }
 
     public static final String THE_JQ_FIRST_REGEX = "日期 (\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2})";
     public static final String THE_SY_FIRST_REGEX = "日期:(\\d{12})";

+ 1 - 1
tenant/insurance/quotation-taishan/src/main/java/com/jzg/quotation/taishan/crawler/service/impl/TaiShanCrawlerQuoteProcessServiceImpl.java

@@ -169,7 +169,7 @@ public class TaiShanCrawlerQuoteProcessServiceImpl implements TaiShanCrawlerQuot
             throw new RuntimeException("外部发送验证码失败:响应为空");
         }
 
-        if (externalResponse.getCode() == null || !externalResponse.getCode().equals("200")) {
+        if (externalResponse.getCode() == null || !externalResponse.getCode().equals(200)) {
             String message = externalResponse.getMessage() != null ? externalResponse.getMessage() : "未知错误";
             log.warn("外部发送验证码接口调用失败,错误信息:{}", message);
             throw new RuntimeException("外部发送验证码失败:" + message);

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

@@ -598,6 +598,7 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
         for (FollowCompanyFeeVO followCompanyFeeVo : followCompanyFeeVos) {
             followCompanyFeeVo.setCompanyName(null != data.get(followCompanyFeeVo.getPartnerCompanyId()) ? data.get(followCompanyFeeVo.getPartnerCompanyId()).getName() : "");
             followCompanyFeeVo.setTotalUnSettlementAmount(followCompanyFeeVo.getTotalInvoiced().subtract(followCompanyFeeVo.getTotalSettlementAmount()));
+            followCompanyFeeVo.setTotalUnInvoiced(followCompanyFeeVo.getTotalReceivable().subtract(followCompanyFeeVo.getTotalInvoiced()));
         }
         return followCompanyFeeVos;
     }

+ 1 - 2
tenant/organization/src/main/resources/mapper/InsFeeFollowOrderMapper.xml

@@ -49,9 +49,8 @@
         SELECT
         ffo.partner_company_id AS partnerCompanyId,
         SUM(COALESCE(ffo.invoiced, 0.00)) AS totalInvoiced,
-        SUM(COALESCE(ffo.uninvoiced, 0.00)) AS totalUnInvoiced,
         SUM(COALESCE(sett.actual_received_amount, 0.00)) AS totalSettlementAmount,
-        SUM(COALESCE(ffo.reconciliation_amount, 0.00)) AS totalReceivable
+        MAX(COALESCE(ffo.reconciliation_amount, 0.00)) AS totalReceivable
         FROM ins_fee_follow_order ffo
         -- 跟单订单关联发票中间表
         INNER JOIN ins_ply_follow_invoice_link link