Ver código fonte

Merge remote-tracking branch 'origin/master'

wanghao 2 semanas atrás
pai
commit
2934b29236

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

@@ -784,17 +784,14 @@ public class QuoteVerificationAspect {
                 String level = sysDistributionSetting.getDistributionMode();
                 BigDecimal diffAmount = BigDecimal.ZERO;
 
-                // 标识是否需要继续计算下一级
-                boolean continueNextLevel = true;
-
                 switch (level) {
-                    case "1":
+                    case "1" -> {
                         Map<String, Object> level1Result = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
                         if (Objects.nonNull(level1Result)) {
                             diffAmount = diffAmount.add(new BigDecimal(level1Result.get("diffAmount").toString()));
                         }
-                        break;
-                    case "2":
+                    }
+                    case "2" -> {
                         // 计算一级分销
                         Map<String, Object> firstDistributor = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
                         if (firstDistributor != null) {
@@ -809,8 +806,8 @@ public class QuoteVerificationAspect {
                             }
                             // 如果一级是团队长,二级分销费用已经在calculateLevel1Distribution中设置为0
                         }
-                        break;
-                    case "3":
+                    }
+                    case "3" -> {
                         // 计算一级分销
                         Map<String, Object> level1 = calculateLevel1Distribution(insFeeOrders, totalPremium, currentUser.getId(), sysDistributionSetting);
                         if (level1 != null) {
@@ -831,7 +828,7 @@ public class QuoteVerificationAspect {
                                 }
                             }
                         }
-                        break;
+                    }
                 }
                 return diffAmount;
             }

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

@@ -2185,63 +2185,99 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     }
 
     private Map<String, Object> calcDistLevel1(InsFeeOrders o, BigDecimal totalPremium, String userId, SysDistributionSetting setting) {
-        HttpResult<EsmUserReferrer> ref = orgClient.getReferrer(userId);
-        if (ref == null || ref.getData() == null) return null;
-        EsmUserReferrer referrer = ref.getData();
-        HttpResult<SysUserJzgInfo> info = orgClient.getUserInfo(referrer.getReferrerId());
-        if (info == null || info.getData() == null || !"1".equals(info.getData().getIsDistribution())) {
-            o.setFirstDistributionFee(BigDecimal.ZERO);
-            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(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()));
-        return map;
+        HttpResult<EsmUserReferrer> referrerResult = orgClient.getReferrer(userId);
+        if (referrerResult.getData() != null) {
+            EsmUserReferrer referrer = referrerResult.getData();
+            HttpResult<SysUserJzgInfo> referrerInfoResult = orgClient.getUserInfo(referrer.getReferrerId());
+            if (referrerInfoResult.getData() != null && "1".equals(referrerInfoResult.getData().getIsDistribution())) {
+                String distributorId = referrer.getReferrerId();
+
+                BigDecimal commissionRatio1 = setting.getCommissionRatioLevel1().divide(new BigDecimal(100)).setScale(5, RoundingMode.DOWN);
+                o.setFirstDistributorId(distributorId);
+                BigDecimal fee_5 = (totalPremium.multiply(commissionRatio1).setScale(5, RoundingMode.DOWN));
+                o.setFirstDistributionFee(totalPremium.multiply(commissionRatio1).setScale(2, RoundingMode.DOWN));
+                o.setFirstDistributionRatio(commissionRatio1.multiply(new BigDecimal(100)));
+                BigDecimal diffAmount = fee_5.subtract(o.getFirstDistributionFee());
+
+                // 如果一级分销是团队长,清空后续分销费用(二级、三级)
+                if (isTeamLeader(distributorId)) {
+                    o.setSecondDistributionFee(BigDecimal.ZERO);
+                    o.setSecondDistributionRatio(BigDecimal.ZERO);
+                    o.setThirdDistributionFee(BigDecimal.ZERO);
+                    o.setThirdDistributionRatio(BigDecimal.ZERO);
+                    // 清空后续分销人ID
+                    o.setSecondDistributorId(null);
+                    o.setThirdDistributorId(null);
+                }
+
+                Map<String, Object> map = new HashMap<>();
+                map.put("id", distributorId);
+                map.put("diffAmount", diffAmount);
+                return map;
+            } else {
+                o.setFirstDistributionFee(BigDecimal.ZERO);
+                o.setFirstDistributionRatio(BigDecimal.ZERO);
+            }
+        }
+        return null;
     }
 
     private Map<String, Object> calcDistLevel2(InsFeeOrders o, BigDecimal totalPremium, String upperId, SysDistributionSetting setting) {
-        HttpResult<EsmUserReferrer> ref = orgClient.getReferrer(upperId);
-        if (ref == null || ref.getData() == null) return null;
-        EsmUserReferrer referrer = ref.getData();
-        HttpResult<SysUserJzgInfo> info = orgClient.getUserInfo(referrer.getReferrerId());
-        if (info == null || info.getData() == null || !"1".equals(info.getData().getIsDistribution())) {
-            o.setSecondDistributionFee(BigDecimal.ZERO);
-            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(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()));
-        return map;
+        HttpResult<EsmUserReferrer> referrerResult = orgClient.getReferrer(upperId);
+        if (referrerResult.getData() != null) {
+            EsmUserReferrer referrer = referrerResult.getData();
+            HttpResult<SysUserJzgInfo> referrerInfoResult = orgClient.getUserInfo(referrer.getReferrerId());
+            if (referrerInfoResult.getData() != null && "1".equals(referrerInfoResult.getData().getIsDistribution())) {
+                String distributorId = referrer.getReferrerId();
+
+                BigDecimal commissionRatio2 = setting.getCommissionRatioLevel2().divide(new BigDecimal(100)).setScale(5, RoundingMode.DOWN);
+                o.setSecondDistributorId(distributorId);
+                BigDecimal fee_5 = (totalPremium.multiply(commissionRatio2).setScale(5, RoundingMode.DOWN));
+                o.setSecondDistributionFee(totalPremium.multiply(commissionRatio2).setScale(2, RoundingMode.DOWN));
+                o.setSecondDistributionRatio(commissionRatio2.multiply(new BigDecimal(100)));
+                BigDecimal diffAmount = fee_5.subtract(o.getSecondDistributionFee());
+
+                // 如果二级分销是团队长,清空后续分销费用(三级)
+                if (isTeamLeader(distributorId)) {
+                    o.setThirdDistributionFee(BigDecimal.ZERO);
+                    o.setThirdDistributionRatio(BigDecimal.ZERO);
+                    o.setThirdDistributorId(null);
+                }
+
+                Map<String, Object> map = new HashMap<>();
+                map.put("id", distributorId);
+                map.put("diffAmount", diffAmount);
+                return map;
+            } else {
+                o.setSecondDistributionFee(BigDecimal.ZERO);
+                o.setSecondDistributionRatio(BigDecimal.ZERO);
+            }
+        }
+        return null;
     }
 
     private BigDecimal calcDistLevel3(InsFeeOrders o, BigDecimal totalPremium, String upperId, SysDistributionSetting setting) {
-        HttpResult<EsmUserReferrer> ref = orgClient.getReferrer(upperId);
-        if (ref == null || ref.getData() == null) return BigDecimal.ZERO;
-        EsmUserReferrer referrer = ref.getData();
-        HttpResult<SysUserJzgInfo> info = orgClient.getUserInfo(referrer.getReferrerId());
-        if (info == null || info.getData() == null || !"1".equals(info.getData().getIsDistribution())) {
-            o.setThirdDistributionFee(BigDecimal.ZERO);
-            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(commissionRatio3).setScale(5, RoundingMode.DOWN);
-        o.setThirdDistributionFee(totalPremium.multiply(commissionRatio3).setScale(2, RoundingMode.DOWN));
-        o.setThirdDistributionRatio(commissionRatio3);
-        return fee5.subtract(o.getThirdDistributionFee());
+        HttpResult<EsmUserReferrer> referrerResult = orgClient.getReferrer(upperId);
+        if (referrerResult.getData() != null) {
+            EsmUserReferrer referrer = referrerResult.getData();
+            HttpResult<SysUserJzgInfo> referrerInfoResult = orgClient.getUserInfo(referrer.getReferrerId());
+            if (referrerInfoResult.getData() != null && "1".equals(referrerInfoResult.getData().getIsDistribution())) {
+                String distributorId = referrer.getReferrerId();
+                o.setThirdDistributorId(distributorId);
+                BigDecimal commissionRatio3 = setting.getCommissionRatioLevel3().divide(new BigDecimal(100)).setScale(5, RoundingMode.DOWN);
+                BigDecimal fee_5 = (totalPremium.multiply(commissionRatio3).setScale(5, RoundingMode.DOWN));
+                o.setThirdDistributionFee(totalPremium.multiply(commissionRatio3).setScale(2, RoundingMode.DOWN));
+                o.setThirdDistributionRatio(commissionRatio3.multiply(new BigDecimal(100)));
+                BigDecimal diffAmount = fee_5.subtract(o.getThirdDistributionFee());
+
+                // 三级分销如果是团队长,无需清空后续(已经是最后一级)
+                return diffAmount;
+            } else {
+                o.setThirdDistributionFee(BigDecimal.ZERO);
+                o.setThirdDistributionRatio(BigDecimal.ZERO);
+            }
+        }
+        return BigDecimal.ZERO;
     }
 
     // ===== 费用计算辅助方法 =====
@@ -2471,59 +2507,99 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
      * 区别:userId 取自当前登录用户 baseController.getUserId(),而非订单。
      *
      * @param totalPremium 总保费
-     * @param feeOrders    费用订单对象(用于设置分销字段)
+     * @param insFeeOrders    费用订单对象(用于设置分销字段)
      * @param mobile       业务员手机号
      * @return 分销精度差值(scale=5 - scale=2)
      */
-    private BigDecimal calcDistributionFee(BigDecimal totalPremium, InsFeeOrders feeOrders, String mobile) {
-
-        HttpResult<SysUserJzgInfo> userResult = orgClient.getUserInfoByMobile(mobile);
-        if (userResult == null || userResult.getData() == null) {
-            return BigDecimal.ZERO;
-        }
-        String userId = userResult.getData().getUserId();
+    private BigDecimal calcDistributionFee(BigDecimal totalPremium, InsFeeOrders insFeeOrders, String mobile) {
+        // 获取当前租户信息
+        HttpResult<SysUserJzgInfo> sysUserJzgInfoResult = orgClient.getUserInfoByMobile(mobile);
+        SysUserJzgInfo currentUser = sysUserJzgInfoResult.getData();
 
         // 获取租户分销设置
-        HttpResult<SysDistributionSetting> settingResult = orgClient.getSettingBySystemCode();
-        if (settingResult == null || settingResult.getData() == null) {
-            return BigDecimal.ZERO;
-        }
-        SysDistributionSetting sysDistributionSetting = settingResult.getData();
-        // 判断业务员所属机构是否开启分销
-        String deptId = userResult.getData().getDeptId();
-        HttpResult<SysDeptVo> deptResult = orgClient.deptGet(deptId);
-        if (deptResult == null || deptResult.getData() == null || !"1".equals(deptResult.getData().getIsDistribution())) {
-            return BigDecimal.ZERO;
-        }
-        String level = sysDistributionSetting.getDistributionMode();
-        BigDecimal diffAmount = BigDecimal.ZERO;
-        switch (level) {
-            case "1":
-                Map<String, Object> lv1 = calcDistLevel1(feeOrders, totalPremium, userId, sysDistributionSetting);
-                if (lv1 != null) diffAmount = new BigDecimal(lv1.get("diffAmount").toString());
-                break;
-            case "2":
-                Map<String, Object> first = calcDistLevel1(feeOrders, totalPremium, userId, sysDistributionSetting);
-                if (first != null) {
-                    Map<String, Object> second = calcDistLevel2(feeOrders, totalPremium, first.get("id").toString(), sysDistributionSetting);
-                    if (second != null) diffAmount = new BigDecimal(second.get("diffAmount").toString());
-                    diffAmount = diffAmount.add(new BigDecimal(first.get("diffAmount").toString()));
-                }
-                break;
-            case "3":
-                Map<String, Object> l1 = calcDistLevel1(feeOrders, totalPremium, userId, sysDistributionSetting);
-                if (l1 != null) {
-                    Map<String, Object> l2 = calcDistLevel2(feeOrders, totalPremium, l1.get("id").toString(), sysDistributionSetting);
-                    if (l2 != null) {
-                        BigDecimal l3Diff = calcDistLevel3(feeOrders, totalPremium, l2.get("id").toString(), sysDistributionSetting);
-                        diffAmount = diffAmount.add(l3Diff);
-                        diffAmount = diffAmount.add(new BigDecimal(l2.get("diffAmount").toString()));
-                    }
-                    diffAmount = diffAmount.add(new BigDecimal(l1.get("diffAmount").toString()));
+        HttpResult<SysDistributionSetting> setting = orgClient.getSettingBySystemCode();
+        SysDistributionSetting sysDistributionSetting = setting.getData();
+
+        if (sysDistributionSetting != null) {
+            // 判断业务员所属机构是否被排除
+            String deptId = sysUserJzgInfoResult.getData().getDeptId();
+            HttpResult<SysDeptVo> sysDept = orgClient.deptGet(deptId);
+
+            if (sysDept.getData() != null && sysDept.getData().getIsDistribution().equals("1")) {
+                String level = sysDistributionSetting.getDistributionMode();
+                BigDecimal diffAmount = BigDecimal.ZERO;
+
+                switch (level) {
+                    case "1":
+                        Map<String, Object> level1Result = calcDistLevel1(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
+                        if (Objects.nonNull(level1Result)) {
+                            diffAmount = diffAmount.add(new BigDecimal(level1Result.get("diffAmount").toString()));
+                        }
+                        break;
+
+                    case "2":
+                        // 计算一级分销
+                        Map<String, Object> firstDistributor = calcDistLevel1(insFeeOrders, totalPremium, currentUser.getUserId(), sysDistributionSetting);
+                        if (firstDistributor != null) {
+                            diffAmount = diffAmount.add(new BigDecimal(firstDistributor.get("diffAmount").toString()));
+
+                            // 判断一级分销用户是否为团队长,如果不是则继续计算二级
+                            if (!isTeamLeader(firstDistributor.get("id").toString())) {
+                                Map<String, Object> level2Result = calcDistLevel2(insFeeOrders, totalPremium, firstDistributor.get("id").toString(), sysDistributionSetting);
+                                if (Objects.nonNull(level2Result)) {
+                                    diffAmount = diffAmount.add(new BigDecimal(level2Result.get("diffAmount").toString()));
+                                }
+                            }
+                            // 如果一级是团队长,二级分销费用已经在calculateLevel1Distribution中设置为0
+                        }
+                        break;
+
+                    case "3":
+                        // 计算一级分销
+                        Map<String, Object> level1 = calcDistLevel1(insFeeOrders, totalPremium, currentUser.getId(), sysDistributionSetting);
+                        if (level1 != null) {
+                            diffAmount = diffAmount.add(new BigDecimal(level1.get("diffAmount").toString()));
+
+                            // 判断一级分销用户是否为团队长
+                            if (!isTeamLeader(level1.get("id").toString())) {
+                                // 计算二级分销
+                                Map<String, Object> level2 = calcDistLevel2(insFeeOrders, totalPremium, level1.get("id").toString(), sysDistributionSetting);
+                                if (level2 != null) {
+                                    diffAmount = diffAmount.add(new BigDecimal(level2.get("diffAmount").toString()));
+
+                                    // 判断二级分销用户是否为团队长
+                                    if (!isTeamLeader(level2.get("id").toString())) {
+                                        // 计算三级分销
+                                        BigDecimal level3Diff = calcDistLevel3(insFeeOrders, totalPremium, level2.get("id").toString(), sysDistributionSetting);
+                                        diffAmount = diffAmount.add(level3Diff);
+                                    }
+                                    // 如果二级是团队长,三级分销费用已经在calculateLevel2Distribution中设置为0
+                                }
+                            }
+                            // 如果一级是团队长,二级和三级分销费用已经在calculateLevel1Distribution中设置为0
+                        }
+                        break;
                 }
-                break;
+                return diffAmount;
+            }
+        }
+        return BigDecimal.ZERO;
+    }
+
+    /**
+     * 判断用户是否为团队长
+     */
+    /**
+     * 判断用户是否为团队长
+     */
+    private boolean isTeamLeader(String userId) {
+        try {
+            HttpResult<List<SysOrganization>> organizations = orgClient.queryOrganizationByManagerId(userId);
+            return organizations.getData() != null && !organizations.getData().isEmpty();
+        } catch (Exception e) {
+            // 异常处理,默认不是团队长
+            return false;
         }
-        return diffAmount;
     }
 
     /**

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

@@ -454,8 +454,8 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
                     if("0".equals(action.getIncomeAndExpense())){
                         // 保费收入
                         stepList.add(new ChangeLogDetail("费用审核通过",action.getCreateTime(),true, null));
-                        stepList.add(new ChangeLogDetail());
-                        stepList.add(new ChangeLogDetail());
+//                        stepList.add(new ChangeLogDetail());
+//                        stepList.add(new ChangeLogDetail());
                     }
                 }else if("2".equals(action.getStatus())){
                     stepList.add(new ChangeLogDetail("提交提现申请",action.getCreateTime(),true, null));

+ 6 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserJzgInfoBankCardServiceImpl.java

@@ -122,7 +122,12 @@ public class SysUserJzgInfoBankCardServiceImpl extends ServiceImpl<SysUserJzgInf
             for (int i = 0; i < size; i++) {
                 SysUserJzgInfoBankCardRecord action = sysUserJzgInfoBankCardRecordList.get(i);
                 // 只有最后一条记录按实际状态设置,前面的记录默认展示为成功
-                boolean show = i < size - 1 || action.getStatus().equals("1");
+                Boolean show = i < size - 1 ||  action.getStatus().equals("1");
+                if("添加新卡".equals(action.getDescription()) && "0".equals(sysUserJzgInfoBankCardDto.getAuditStatus())){
+                    // 待审核的时候,显示为空。 不展示对/错
+                    show = null;
+                }
+
                 changeLogDetailList.add(new ChangeLogDetail(action.getDescription(), action.getCreateTime(), show, action.getRemark(), action.getBankCardId(), action.getId()));
             }
             sysUserJzgInfoBankCardDto.setSysUserJzgInfoBankCardRecordList(changeLogDetailList);

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

@@ -938,20 +938,21 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public HttpResult addBankCard(SysUserJzgInfoBankCardVo sysUserJzgInfoBankCardVo) {
-        SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(sysUserJzgInfoBankCardVo.getUserJzgInfoId());
+    public HttpResult addBankCard(SysUserJzgInfoBankCardVo param) {
+        log.info("添加银行卡信息:param=[{}]", JSONUtil.toJsonStr(param));
+        SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoService.getById(param.getUserJzgInfoId());
         if (sysUserJzgInfo == null) {
             throw new SystemException("该业务员不存在");
         }
-        if (sysUserJzgInfoBankCardVo.getBankCardNumber() == null) {
-            HttpResult.error("银行卡号不能为空");
+        if (param.getBankCardNumber() == null) {
+            return HttpResult.error("银行卡号不能为空");
         }
-        String fileId = IdGenerate.nextId();
-        if (sysUserJzgInfoBankCardVo.getAttachment() != null) {
+        String id = IdGenerate.nextId();
+        if (param.getAttachment() != null) {
             SysUploadFiles sysUploadFiles = sysUploadFilesMapper.selectOne
-                    (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, sysUserJzgInfoBankCardVo.getAttachment()));
-            SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(sysUserJzgInfoBankCardVo.getAttachment(), sysUserJzgInfoBankCardVo.getUserJzgInfoId(), sysUploadFiles.getFileName());
-            sysUserJzgInfoFile.setId(fileId);
+                    (new LambdaQueryWrapper<SysUploadFiles>().eq(SysUploadFiles::getId, param.getAttachment()));
+            SysUserJzgInfoFile sysUserJzgInfoFile = new SysUserJzgInfoFile(param.getAttachment(), param.getUserJzgInfoId(), sysUploadFiles.getFileName());
+            sysUserJzgInfoFile.setId(id);
             sysUserJzgInfoFile.setFileUrl(MinioUtils.getPresignedObjectUrl("jzg", sysUploadFiles.getFileName()));
             sysUserJzgInfoFile.setFileType("bankcard");
             sysUserJzgInfoFileService.save(sysUserJzgInfoFile);
@@ -965,24 +966,26 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         // 提交卡号为驳回状态 重新提交
         SysUserJzgInfoBankCard rejectBankCard = sysUserJzgInfoBankCardService
                 .getOne(new LambdaQueryWrapper<SysUserJzgInfoBankCard>()
-                        .eq(SysUserJzgInfoBankCard::getBankCardNumber, sysUserJzgInfoBankCardVo.getBankCardNumber())
+                        .eq(SysUserJzgInfoBankCard::getBankCardNumber, param.getBankCardNumber())
                         .eq(SysUserJzgInfoBankCard::getUserInfoId, sysUserJzgInfo.getId())
                         .eq(SysUserJzgInfoBankCard::getSystemCode, systemCode)
                         .eq(SysUserJzgInfoBankCard::getAuditStatus, 2));
         // 重新提交需要再多加一条数据,不能修改原来那条数据的状态,原来那条数据不能动
         if (rejectBankCard != null) {
             SysUserJzgInfoBankCard sysUserJzgInfoBankCard = BeanUtil.copyProperties(rejectBankCard, SysUserJzgInfoBankCard.class);
-
             sysUserJzgInfoBankCard.setId(IdGenerate.nextId());
-            sysUserJzgInfoBankCard.setFileId(fileId);
+            sysUserJzgInfoBankCard.setFileId(id);
             sysUserJzgInfoBankCard.setAuditStatus(0);
             sysUserJzgInfoBankCard.setSystemCode(systemCode);
+            // 解决重新提交的时候,新持卡人姓名没生效的问题 add by lipf 2026年9月1日10:13:25
+            sysUserJzgInfoBankCard.setCardHolderMobile(param.getCardHolderMobile());
+            sysUserJzgInfoBankCard.setCardHolderName(param.getCardHolderName());
             // 审核时间、审核人要设置为空
             sysUserJzgInfoBankCard.setRemark(null);
             sysUserJzgInfoBankCard.setAuditBy(null);
             sysUserJzgInfoBankCard.setAuditTime(null);
             // 设置为默认卡
-            if (sysUserJzgInfoBankCardVo.isDefault()) {
+            if (param.isDefault()) {
                 sysUserJzgInfoBankCardService.lambdaUpdate()
                         .eq(SysUserJzgInfoBankCard::getUserInfoId, sysUserJzgInfo.getId())
                         .setSql("is_default = 0")
@@ -995,23 +998,23 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             // 添加重新提交记录
             SysUserJzgInfoBankCardRecord record = new SysUserJzgInfoBankCardRecord(rejectBankCard.getId(), "驳回后重新提交");
             record.setStatus("0");
-            record.setBankCardId(sysUserJzgInfoBankCardVo.getBankCardNumber());
+            record.setBankCardId(param.getBankCardNumber());
             sysUserJzgInfoBankCardRecordService.save(record);
 
             return HttpResult.ok("重新提交银行卡成功,等待审核");
         }
         SysUserJzgInfoBankCard verifyBankCard = sysUserJzgInfoBankCardService
-                .getOne(new LambdaQueryWrapper<SysUserJzgInfoBankCard>().eq(SysUserJzgInfoBankCard::getBankCardNumber, sysUserJzgInfoBankCardVo.getBankCardNumber())
+                .getOne(new LambdaQueryWrapper<SysUserJzgInfoBankCard>().eq(SysUserJzgInfoBankCard::getBankCardNumber, param.getBankCardNumber())
                         .eq(SysUserJzgInfoBankCard::getSystemCode, systemCode));
         if (verifyBankCard != null) {
             return HttpResult.error("该租户下银行卡已存在");
         }
         SysUserJzgInfoBankCard sysUserJzgInfoBankCard = new SysUserJzgInfoBankCard();
-        BeanUtils.copyProperties(sysUserJzgInfoBankCardVo, sysUserJzgInfoBankCard);
-        sysUserJzgInfoBankCard.setFileId(fileId);
+        BeanUtils.copyProperties(param, sysUserJzgInfoBankCard);
+        sysUserJzgInfoBankCard.setFileId(id);
         sysUserJzgInfoBankCard.setUserInfoId(sysUserJzgInfo.getId());
         sysUserJzgInfoBankCard.setSystemCode(systemCode);
-        if (sysUserJzgInfoBankCardVo.isDefault()) {
+        if (param.isDefault()) {
             sysUserJzgInfoBankCardService.lambdaUpdate()
                     .eq(SysUserJzgInfoBankCard::getUserInfoId, sysUserJzgInfo.getUserId())
                     .setSql("is_default = 0")