Преглед изворни кода

平台协议导入应收时提示信息完善

新增保单号一致性的校验
lipf пре 1 месец
родитељ
комит
1411f72889

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/importimcome/ImportContentExt.java

@@ -3,6 +3,7 @@ package com.jzg.commons.entity.finance.vo.importimcome;
 
 import cn.hutool.core.util.StrUtil;
 import com.jzg.commons.entity.finance.po.InsPlyIncome;
+import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -33,6 +34,9 @@ public class ImportContentExt extends ExcelContent4Platform {
     @Schema(description = "应收订单")
     private InsPlyIncome insPlyIncome;
 
+    @Schema(description = "车险订单信息")
+    private InsOrdersPolicy insOrdersPolicy;
+
     //  20 表示平台协议  11表示车险手续费 12 表示非车险手续费
     @Schema(description = "类型")
     private String type;

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

@@ -30,6 +30,7 @@ import com.jzg.commons.entity.finance.po.*;
 import com.jzg.commons.entity.finance.vo.*;
 import com.jzg.commons.entity.finance.vo.importimcome.*;
 import com.jzg.commons.entity.orders.po.InsOrderAdjust;
+import com.jzg.commons.entity.orders.po.InsOrdersPolicy;
 import com.jzg.commons.entity.po.EsmInsCompany;
 import com.jzg.commons.entity.po.InsFeeOrders;
 import com.jzg.commons.entity.po.PtlAgreement;
@@ -2637,14 +2638,73 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 errrMsg.append("该批数据的保险机构为空. ");
             }
         }
+        errrMsg.append(this.validatePolicy(datas));
+        errrMsg.append(this.validateProportion(datas));
+        return errrMsg.toString();
+    }
 
-
+    /**
+     * 校验保单号是否一致
+     *
+     * @author lipf
+     * @date 2026/8/20 10:35
+     */
+    private String validatePolicy(List<ImportContentExt> datas) {
+        StringBuilder errrMsg = new StringBuilder();
+        for (ImportContentExt data : datas) {
+            boolean all = false;
+            boolean jq = false;
+            boolean sy = false;
+            boolean jy = false;
+            InsOrdersPolicy insOrdersPolicy = data.getInsOrdersPolicy();
+            if(insOrdersPolicy == null){
+                continue;
+            }
+            if(!Objects.equals(insOrdersPolicy.getJqPolicyNo(), data.getJqPolicyNo())){
+                all = true;
+                jq = true;
+            }
+            if(!Objects.equals(insOrdersPolicy.getSyPolicyNo(), data.getSyPolicyNo())){
+                all = true;
+                sy = true;
+            }
+            if(!Objects.equals(insOrdersPolicy.getJyPolicyNo(), data.getJyPolicyNo())){
+                all = true;
+                jy = true;
+            }
+            if(all){
+                errrMsg.append("车牌号为[").append(data.getLicenseNo()).append("]的保单号不一致: ");
+                if(jq){
+                    errrMsg.append("交强险保单号不一致. 应收数据的交强险保单号是[").append(insOrdersPolicy.getJqPolicyNo()).append("].excel维护的交强险保单号是[").append(data.getJqPolicyNo()).append("].");
+                }
+                if(sy){
+                    errrMsg.append("商业险保单号不一致. 应收数据的商业险保单号是[").append(insOrdersPolicy.getSyPolicyNo()).append("].excel维护的商业险保单号是[").append(data.getSyPolicyNo()).append("].");
+                }
+                if(jy){
+                    errrMsg.append("驾意险保单号不一致. 应收数据的驾意险保单号是[").append(insOrdersPolicy.getJyPolicyNo()).append("].excel维护的驾意险保单号是[").append(data.getJyPolicyNo()).append("].");
+                }
+            }
+        }
+        return errrMsg.toString();
+    }
+    /**
+     * 校验应收比例
+     *
+     *
+     * @author lipf
+     * @date 2026/8/20 10:27
+     */
+    private static String validateProportion(List<ImportContentExt> datas) {
+        StringBuilder errrMsg = new StringBuilder();
         for (ImportContentExt data : datas) {
             boolean all = false;
             boolean jq = false;
             boolean sy = false;
             boolean jy = false;
             InsPlyIncome insPlyIncome = data.getInsPlyIncome();
+            if(insPlyIncome == null){
+                continue;
+            }
             String jqadd = BigDecimalUtil.add(insPlyIncome.getJqSuperviseCostsProportion(), insPlyIncome.getJqOtherCostsProportion());
             BigDecimal jqsubtract = BigDecimalUtil.subtract(new BigDecimal(jqadd), new BigDecimal(data.getJqInletRatio()));
             if(BigDecimal.ZERO.compareTo(jqsubtract) != 0){

+ 3 - 0
tenant/organization/src/main/java/com/jzg/organization/service/impl/importincome/ImportIncomeServiceImpl.java

@@ -123,6 +123,7 @@ public class ImportIncomeServiceImpl implements ImportIncomeService {
                 queryWrapper.eq(InsOrdersPolicy::getJqPolicyNo,excelContent.getJqPolicyNo());
                 List<InsOrdersPolicy> insOrdersPolicies = insOrdersPolicyMapper.selectList(queryWrapper);
                 if(CollUtil.isNotEmpty(insOrdersPolicies)){
+                    ext.setInsOrdersPolicy(insOrdersPolicies.get(0));
                     orderNO  = insOrdersPolicies.get(0).getOrderNo();
                 }
             }
@@ -131,6 +132,7 @@ public class ImportIncomeServiceImpl implements ImportIncomeService {
                 queryWrapper.eq(InsOrdersPolicy::getSyPolicyNo,excelContent.getSyPolicyNo());
                 List<InsOrdersPolicy> insOrdersPolicies = insOrdersPolicyMapper.selectList(queryWrapper);
                 if(CollUtil.isNotEmpty(insOrdersPolicies)){
+                    ext.setInsOrdersPolicy(insOrdersPolicies.get(0));
                     orderNO  = insOrdersPolicies.get(0).getOrderNo();
                 }
             }
@@ -139,6 +141,7 @@ public class ImportIncomeServiceImpl implements ImportIncomeService {
                 queryWrapper.eq(InsOrdersPolicy::getJyPolicyNo,excelContent.getJyPolicyNo());
                 List<InsOrdersPolicy> insOrdersPolicies = insOrdersPolicyMapper.selectList(queryWrapper);
                 if(CollUtil.isNotEmpty(insOrdersPolicies)){
+                    ext.setInsOrdersPolicy(insOrdersPolicies.get(0));
                     orderNO  = insOrdersPolicies.get(0).getOrderNo();
                 }
             }