Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

jiakai 1 viikko sitten
vanhempi
commit
7d3a96d696

+ 3 - 2
commons/src/main/java/com/jzg/commons/entity/dto/PtlAgreementCostAdd.java

@@ -9,6 +9,7 @@ import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
 
@@ -31,12 +32,12 @@ public class PtlAgreementCostAdd {
     @Schema(description = "生效时间")
     @NotNull(message = "生效时间不能为空")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date effectiveTime;
+    private LocalDateTime effectiveTime;
 
     @Schema(description = "失效时间")
     @NotNull(message = "失效时间不能为空")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private Date failureTime;
+    private LocalDateTime failureTime;
 
     @Schema(description = "审核方式0-自动审核;1-手动审核")
     @NotBlank(message = "审核方式不能为空")

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

@@ -2194,10 +2194,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             o.setFirstDistributionRatio(BigDecimal.ZERO);
             return null;
         }
+        BigDecimal commissionRatio1 = setting.getCommissionRatioLevel1().divide(new BigDecimal(100)).setScale(5, RoundingMode.DOWN);
         o.setFirstDistributorId(referrer.getReferrerId());
-        BigDecimal fee5 = totalPremium.multiply(setting.getCommissionRatioLevel1()).setScale(5, RoundingMode.DOWN);
-        o.setFirstDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel1()).setScale(2, RoundingMode.DOWN));
-        o.setFirstDistributionRatio(setting.getCommissionRatioLevel1());
+        BigDecimal fee5 = totalPremium.multiply(commissionRatio1.setScale(5, RoundingMode.DOWN));
+        o.setFirstDistributionFee(totalPremium.multiply(commissionRatio1.setScale(2, RoundingMode.DOWN)));
+        o.setFirstDistributionRatio(commissionRatio1);
         Map<String, Object> map = new HashMap<>();
         map.put("id", referrer.getReferrerId());
         map.put("diffAmount", fee5.subtract(o.getFirstDistributionFee()));
@@ -2214,10 +2215,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             o.setSecondDistributionRatio(BigDecimal.ZERO);
             return null;
         }
+        BigDecimal commissionRatio2 = setting.getCommissionRatioLevel2().divide(new BigDecimal(100)).setScale(5, RoundingMode.DOWN);
         o.setSecondDistributorId(referrer.getReferrerId());
-        BigDecimal fee5 = totalPremium.multiply(setting.getCommissionRatioLevel2()).setScale(5, RoundingMode.DOWN);
-        o.setSecondDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel2()).setScale(2, RoundingMode.DOWN));
-        o.setSecondDistributionRatio(setting.getCommissionRatioLevel2());
+        BigDecimal fee5 = totalPremium.multiply(commissionRatio2).setScale(5, RoundingMode.DOWN);
+        o.setSecondDistributionFee(totalPremium.multiply(commissionRatio2).setScale(2, RoundingMode.DOWN));
+        o.setSecondDistributionRatio(commissionRatio2);
         Map<String, Object> map = new HashMap<>();
         map.put("id", referrer.getReferrerId());
         map.put("diffAmount", fee5.subtract(o.getSecondDistributionFee()));
@@ -2234,10 +2236,11 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             o.setThirdDistributionRatio(BigDecimal.ZERO);
             return BigDecimal.ZERO;
         }
+        BigDecimal commissionRatio3 = setting.getCommissionRatioLevel3().divide(new BigDecimal(100)).setScale(5, RoundingMode.DOWN);
         o.setThirdDistributorId(referrer.getReferrerId());
-        BigDecimal fee5 = totalPremium.multiply(setting.getCommissionRatioLevel3()).setScale(5, RoundingMode.DOWN);
-        o.setThirdDistributionFee(totalPremium.multiply(setting.getCommissionRatioLevel3()).setScale(2, RoundingMode.DOWN));
-        o.setThirdDistributionRatio(setting.getCommissionRatioLevel3());
+        BigDecimal fee5 = totalPremium.multiply(commissionRatio3).setScale(5, RoundingMode.DOWN);
+        o.setThirdDistributionFee(totalPremium.multiply(commissionRatio3).setScale(2, RoundingMode.DOWN));
+        o.setThirdDistributionRatio(commissionRatio3);
         return fee5.subtract(o.getThirdDistributionFee());
     }
 

+ 8 - 29
tenant/insurance/quotation-zhongan/src/main/java/com/jzg/quotation/zhongan/crawler/build/ZhongAnCrawlerQuoteResultsVoBuild.java

@@ -119,37 +119,16 @@ public class ZhongAnCrawlerQuoteResultsVoBuild {
         QuoteResultsVo.ScoreVo scoreVo = new QuoteResultsVo.ScoreVo();
         scoreVo.setJqAdjustRate(dataDTO.getCompelDiscount());
         scoreVo.setSyAdjustRate(dataDTO.getBusinessDiscount());
-        String forceRenewalFlag = dataDTO.getForceRenewalFlag();
-        String bizRenewalFlag = dataDTO.getBizRenewalFlag();
-        if (forceRenewalFlag == null) {
+        Integer renewalFlag = dataDTO.getInsureFlag();
+        if (renewalFlag != null && renewalFlag == 2) {
+            scoreVo.setJqRenewal(String.valueOf(RenewalEnum.Renewal.getCode()));
+            scoreVo.setSyRenewal(String.valueOf(RenewalEnum.Renewal.getCode()));
+        } else if (renewalFlag != null && renewalFlag == 3) {
             scoreVo.setJqRenewal(String.valueOf(RenewalEnum.Transfer.getCode()));
-        } else {
-            switch (forceRenewalFlag) {
-                case "PA":
-                    scoreVo.setJqRenewal(String.valueOf(RenewalEnum.Transfer.getCode()));
-                    break;
-                case "ZA":
-                    scoreVo.setJqRenewal(String.valueOf(RenewalEnum.Renewal.getCode()));
-                    break;
-                default:
-                    scoreVo.setJqRenewal(String.valueOf(RenewalEnum.New.getCode()));
-                    break;
-            }
-        }
-        if (bizRenewalFlag == null) {
             scoreVo.setSyRenewal(String.valueOf(RenewalEnum.Transfer.getCode()));
-        } else {
-            switch (bizRenewalFlag) {
-                case "PA":
-                    scoreVo.setSyRenewal(String.valueOf(RenewalEnum.Transfer.getCode()));
-                    break;
-                case "ZA":
-                    scoreVo.setSyRenewal(String.valueOf(RenewalEnum.Renewal.getCode()));
-                    break;
-                default:
-                    scoreVo.setSyRenewal(String.valueOf(RenewalEnum.New.getCode()));
-                    break;
-            }
+        } else if (renewalFlag != null && renewalFlag == 1) {
+            scoreVo.setJqRenewal(String.valueOf(RenewalEnum.New.getCode()));
+            scoreVo.setSyRenewal(String.valueOf(RenewalEnum.New.getCode()));
         }
         JSONArray scoreJson = new JSONArray();
         scoreJson.add(new JSONObject()

+ 3 - 3
tenant/insurance/quotation-zhongan/src/main/java/com/jzg/quotation/zhongan/crawler/entity/request/ZhongAnCrawlerQuoteRequest.java

@@ -132,13 +132,13 @@ public class ZhongAnCrawlerQuoteRequest{
                 nonAutoInfoDtos.add(nonAutoInfoDto);
             });
             boolean hasKpNhjcb = nonAutoInfoDtos.stream()
-                    .anyMatch(dto -> "kp_nhjcb_v1".equals(dto.getProductCode()));
+                    .anyMatch(dto -> "kp_nhjcb_v2".equals(dto.getProductCode()));
             if (!hasKpNhjcb) {
-                NonAutoInfoDto jtywxV24 = new NonAutoInfoDto("kp_nhjcb_v1", "0", null);
+                NonAutoInfoDto jtywxV24 = new NonAutoInfoDto("kp_nhjcb_v2", "0", null);
                 nonAutoInfoDtos.add(jtywxV24);
             }
         } else {
-            NonAutoInfoDto jtywxV24 = new NonAutoInfoDto("kp_nhjcb_v1", "0", null);
+            NonAutoInfoDto jtywxV24 = new NonAutoInfoDto("kp_nhjcb_v2", "0", null);
             NonAutoInfoDto wjsGabV6 = new NonAutoInfoDto("wjs_gab_v10", "0", null);
             NonAutoInfoDto wjs_cwyjtywx_v1 = new NonAutoInfoDto("wjs_cwyjtywx_v1", "0", null);
             NonAutoInfoDto kp_czwyjcx_v1 = new NonAutoInfoDto("kp_czwyjcx_v1", "0", null);

+ 23 - 30
tenant/organization/src/main/java/com/jzg/organization/component/BuildDescUtils.java

@@ -40,22 +40,15 @@ public class BuildDescUtils {
             } else if ("radio".equals(attrType)) {
                 desc.append(radioIdentifying(ptlAgreementUndwrtRulesAttr, link)).append(";\t\t");
             } else if ("checkbox".equals(attrType) || "select".equals(attrType)) {
-                if(link.getMinArray() != null && link.getMinArray().length > 0){
-                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含");
-                    for (int k=0 ; k<link.getMinArray().length; k++){
-                        PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = null;
-                        for (PtlAgreementUndwrtRulesDictLabal x : link.getDictLabal()) {
-                            if (Arrays.asList(link.getMinArray()).contains(x.getCode())) {
-                                ptlAgreementUndwrtRulesDictLabal = x;
-                                link.getMinArray()[k] = null;
-                                break;
-                            }
-                        }
-                        desc.append(null != ptlAgreementUndwrtRulesDictLabal ? ptlAgreementUndwrtRulesDictLabal.getName() : "").append(",");
-                    }
-                    // 条件描述后补充一个分号
-                    desc.append(",");
-                }else {
+                if (link.getMinArray() != null && link.getMinArray().length > 0) {
+                    // minArray 转 Set,避免循环内反复创建 List 做 contains 查找
+                    Set<String> minCodes = Arrays.stream(link.getMinArray()).collect(Collectors.toSet());
+                    String names = Optional.ofNullable(link.getDictLabal()).orElse(Collections.emptyList()).stream()
+                            .filter(labal -> minCodes.contains(labal.getCode()))
+                            .map(PtlAgreementUndwrtRulesDictLabal::getName)
+                            .collect(Collectors.joining(","));
+                    desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(names).append(";\t\t");
+                } else {
                     desc.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("包含").append(link.getMin()).append(";\t\t");
                 }
             } else if ("inputTag".equals(attrType)) {
@@ -148,29 +141,29 @@ public class BuildDescUtils {
         return ptlAgreementUndwrtRulesAttr.getAttrName() + "为" + ptlAgreementUndwrtRulesDictLabal.getName();
     }
 
-    public static String selectIdentifying(PtlAgreementUndwrtRulesAttr ptlAgreementUndwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink ptlAgreementProductCostsAttrLink) {
+    public static String selectIdentifying(PtlAgreementUndwrtRulesAttr undwrtRulesAttr, PtlAgreementUndwrtRulesAttrLink link) {
         StringBuilder returnMsg = new StringBuilder();
-        returnMsg.append(ptlAgreementUndwrtRulesAttr.getAttrName()).append("为");
         // 兼容 min 逗号分隔存储,保证 minArray 有值
-        if (ptlAgreementProductCostsAttrLink.getMinArray() == null) {
-            String minStr = ptlAgreementProductCostsAttrLink.getMin();
+        if (link.getMinArray() == null) {
+            String minStr = link.getMin();
             if (minStr != null && !minStr.isEmpty()) {
-                ptlAgreementProductCostsAttrLink.setMinArray(minStr.split(","));
+                link.setMinArray(minStr.split(","));
             }
         }
 
         // 优先取 link 上的字典标签列表(JSONArray -> List),为空时回退到属性自带字典
-        List<PtlAgreementUndwrtRulesDictLabal> dictLabalList = getDictLabalList(ptlAgreementUndwrtRulesAttr, ptlAgreementProductCostsAttrLink);
+        List<PtlAgreementUndwrtRulesDictLabal> dictLabalList = getDictLabalList(undwrtRulesAttr, link);
 
         // 用字典标签的 code 匹配 minArray 中的每一项
-        if (ptlAgreementProductCostsAttrLink.getMinArray() != null) {
-            for (String item : ptlAgreementProductCostsAttrLink.getMinArray()) {
-                PtlAgreementUndwrtRulesDictLabal ptlAgreementUndwrtRulesDictLabal = dictLabalList.stream()
-                        .filter(x -> x.getCode() != null && x.getCode().equals(item)).findAny().orElse(null);
-                if (ptlAgreementUndwrtRulesDictLabal != null) {
-                    returnMsg.append(ptlAgreementUndwrtRulesDictLabal.getName()).append(",");
-                }
-            }
+        if (link.getMinArray() != null && link.getMinArray().length > 0) {
+            // minArray 转 Set,避免循环内反复创建 List 做 contains 查找
+            Set<String> minCodes = Arrays.stream(link.getMinArray()).collect(Collectors.toSet());
+            String names = Optional.ofNullable(dictLabalList).orElse(Collections.emptyList()).stream()
+                    .filter(labal -> minCodes.contains(labal.getCode()))
+                    .map(PtlAgreementUndwrtRulesDictLabal::getName)
+                    .collect(Collectors.joining(","));
+            returnMsg.append(undwrtRulesAttr.getAttrName()).append("包含").append(names).append(",");
+
         }
         return returnMsg.toString();
     }

+ 18 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -1533,6 +1533,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
            }
            // 关联用户角色
            saveRole(userByUserId);
+            // 合伙人添加业务员    app内也要新增一条数据
+           saveUserApp(userByUserId, userByUserId.getSystemCode());
            return HttpResult.ok("添加业务员成功");
        }catch (Exception e){
            log.error("添加业务员异常",e);
@@ -1540,6 +1542,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
        }
     }
 
+    private void saveUserApp(SysUserJzgInfo userByUserId, String systemCode) {
+        boolean exists = sysUserJzgAppMapper.exists(new LambdaQueryWrapper<>(SysUserJzgApp.class).eq(SysUserJzgApp::getUserId, userByUserId.getUserId()));
+        if (!exists){
+            SysUserJzgApp sysUserJzgApp = BeanUtil.copyProperties(userByUserId, SysUserJzgApp.class);
+            sysUserJzgApp.setId(IdGenerate.nextId());
+            sysUserJzgApp.setSystemCode(systemCode);
+            sysUserJzgAppMapper.insert(sysUserJzgApp);
+        }
+    }
+
     @Override
     public HttpResult<SysUserJzgInfo> getUserInfoUserId(String userId) {
         return HttpResult.ok(sysUserJzgInfoMapper.getUserJzgInfoByUserId(userId));
@@ -1569,6 +1581,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     public void addPartner(SysUserVo sysUserVo){
         String referrerId = sysUserVo.getReferrerId();
+        if (StringUtils.isEmpty(referrerId)){
+            throw new SystemException("推荐人不能为空");
+        }
         SysUser sysUser = baseMapper.getUserByMobile(sysUserVo.getMobile());
         if (sysUserVo.isCodeInvitation()){
             SysUserJzgInfo userJzgInfo = sysUserJzgInfoMapper.selectByUserIdInfo(sysUserVo.getReferrerId());
@@ -1613,6 +1628,9 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             }
             sysUserVo.setUserId(sysUserJzgInfo.getId());
         }
+        if (sysUserVo.getGrade() > 3){
+            saveUserApp(sysUserJzgInfo, baseController.getSystemCode());
+        }
         partnerAddsSalespersonIdentity(sysUserJzgInfo.getId(),"3");
         if ((!Objects.isNull(sysUserVo.getGrade()) && 4 == sysUserVo.getGrade())){
             SysOrganizationAdd organizationAdd = new SysOrganizationAdd();

+ 1 - 0
tenant/organization/src/main/resources/mapper/PtlAgreementCostMapper.xml

@@ -205,6 +205,7 @@
             t.is_delete = 0
             AND t.id IN (${costId})
         </where>
+        order by t.create_time desc
     </select>