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

私有应收 手续费开票界面搜索项,保险公司只能搜总公司,搜支公司搜不到数据

lipf 1 месяц назад
Родитель
Сommit
b11e3a050b

+ 5 - 0
commons/src/main/java/com/jzg/commons/entity/finance/po/InsPlyIncome.java

@@ -82,6 +82,11 @@ public class InsPlyIncome extends BaseModel {
     @ExcelProperty("保司名称")
     @ExcelProperty("保司名称")
     private String companyName;
     private String companyName;
 
 
+    @Schema(description = "保司名称")
+    @TableField(exist = false)
+    @ExcelProperty("保司名称")
+    private String partnerCompanyName;
+
     @Schema(description = "协议Id")
     @Schema(description = "协议Id")
     @ExcelProperty("协议Id")
     @ExcelProperty("协议Id")
     @ExcelIgnore
     @ExcelIgnore

+ 36 - 3
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -463,6 +463,31 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     }
                     }
                     return true;
                     return true;
                 };
                 };
+                // 保险公司
+                Predicate<InsPlyIncome> companySubIdPredicate = insPlyIncome -> {
+                    if(!names.contains(IncomeDataVO.SearchVO.companyId)){
+                        return true;
+                    }
+                    IncomeDataVO.SearchVO searchVO = searchVOMap.get(IncomeDataVO.SearchVO.companyId);
+                    String type = searchVO.getType();
+                    String search = searchVO.getSearch();
+                    if("为空".equals(type)|| "不为空".equals(type)){
+                        return true;
+                    }
+                    // 如果填写的查询条件,不完善,则该条件不进行过滤
+                    if(StrUtil.isEmpty(search)){
+                        return true;
+                    }
+                    if("等于".equalsIgnoreCase(type) || "包含".equalsIgnoreCase(type)){
+                        List<String> companyIds = Arrays.asList(search.split(","));
+                        return companyIds.contains(insPlyIncome.getPartnerCompanyId());
+                    }
+                    if("不等于".equalsIgnoreCase(type) || "不包含".equalsIgnoreCase(type)){
+                        List<String> companyIds = Arrays.asList(search.split(","));
+                        return !companyIds.contains(insPlyIncome.getPartnerCompanyId());
+                    }
+                    return true;
+                };
                 // 签单时间
                 // 签单时间
                 Predicate<InsPlyIncome> signDatePredicate = insPlyIncome -> {
                 Predicate<InsPlyIncome> signDatePredicate = insPlyIncome -> {
                     LocalDateTime signingTime = insPlyIncome.getSigningTime();
                     LocalDateTime signingTime = insPlyIncome.getSigningTime();
@@ -657,14 +682,14 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     return true;
                     return true;
                 };
                 };
 
 
-
+                // add by lipf ,保险公司查询的时候,同时支持公司和子公司的查询 2026年7月29日10:30:05
                 if("and".equalsIgnoreCase(incomeDataVO.getLogicJudge())){
                 if("and".equalsIgnoreCase(incomeDataVO.getLogicJudge())){
-                    Predicate<InsPlyIncome> and = companyIdPredicate.and(signDatePredicate).
+                    Predicate<InsPlyIncome> and = companyIdPredicate.or(companySubIdPredicate).and(signDatePredicate).
                             and(ptlAgreementPredicate).and(orderTypePredicate).and(signYearPredicate).and(licenseNoPredicate)
                             and(ptlAgreementPredicate).and(orderTypePredicate).and(signYearPredicate).and(licenseNoPredicate)
                             .and(contactPredicate).and(jqPolicyNoPredicate).and(syPolicyNoPredicate);
                             .and(contactPredicate).and(jqPolicyNoPredicate).and(syPolicyNoPredicate);
                     filterIncomes = incomes.stream().filter(and).toList();
                     filterIncomes = incomes.stream().filter(and).toList();
                 }else if ("or".equalsIgnoreCase(incomeDataVO.getLogicJudge())){
                 }else if ("or".equalsIgnoreCase(incomeDataVO.getLogicJudge())){
-                    Predicate<InsPlyIncome> or = companyIdPredicate.or(signDatePredicate).
+                    Predicate<InsPlyIncome> or = companyIdPredicate.or(companySubIdPredicate).or(signDatePredicate).
                             or(ptlAgreementPredicate).or(orderTypePredicate).or(signYearPredicate).or(licenseNoPredicate)
                             or(ptlAgreementPredicate).or(orderTypePredicate).or(signYearPredicate).or(licenseNoPredicate)
                             .or(contactPredicate).or(jqPolicyNoPredicate).or(syPolicyNoPredicate);
                             .or(contactPredicate).or(jqPolicyNoPredicate).or(syPolicyNoPredicate);
                     filterIncomes = incomes.stream().filter(or).toList();
                     filterIncomes = incomes.stream().filter(or).toList();
@@ -1332,7 +1357,15 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     return invoiceType.equals(action.getInvoiceType());
                     return invoiceType.equals(action.getInvoiceType());
                 }).collect(Collectors.toMap(InsPlyIncomeInvoiceLink::getIncomeId, InsPlyIncomeInvoiceLink::getInvoiceId, (oleItem, newItem) -> oleItem));
                 }).collect(Collectors.toMap(InsPlyIncomeInvoiceLink::getIncomeId, InsPlyIncomeInvoiceLink::getInvoiceId, (oleItem, newItem) -> oleItem));
         Map<String, String> typeAttrMaps = sysUserJzgInfoSalesmanService.queryYwyTypeAttrMap();
         Map<String, String> typeAttrMaps = sysUserJzgInfoSalesmanService.queryYwyTypeAttrMap();
+
+        Map<String, String> allCompanyHierarchyPaths = esmInsCompanyClient.getAllCompanyHierarchyPaths();
+
         records.forEach(insPlyIncome -> {
         records.forEach(insPlyIncome -> {
+            if(StrUtil.isNotEmpty(insPlyIncome.getPartnerCompanyId())){
+                insPlyIncome.setPartnerCompanyName(allCompanyHierarchyPaths.getOrDefault(insPlyIncome.getPartnerCompanyId(),insPlyIncome.getPartnerCompanyId()));
+            }
+
+
             if("0".equals(insPlyIncome.getSettlementStatus())){
             if("0".equals(insPlyIncome.getSettlementStatus())){
                 insPlyIncome.setSettlementStatusName("未结算");
                 insPlyIncome.setSettlementStatusName("未结算");
             }else if("1".equals(insPlyIncome.getSettlementStatus())){
             }else if("1".equals(insPlyIncome.getSettlementStatus())){

+ 2 - 0
tenant/organization/src/main/resources/mapper/ReceivableMapper.xml

@@ -273,6 +273,7 @@
         iop.jy_policy_no, -- 非车险保单号
         iop.jy_policy_no, -- 非车险保单号
         io.company_name,
         io.company_name,
         io.company_id,
         io.company_id,
+        pa.partner_company_id,
         ipi.create_time,
         ipi.create_time,
         ipi.create_by,
         ipi.create_by,
         ipi.update_time,
         ipi.update_time,
@@ -287,6 +288,7 @@
         LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510' AND ior2.is_delete = 0
         LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510' AND ior2.is_delete = 0
         LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no AND iop.is_delete = 0
         LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no AND iop.is_delete = 0
         LEFT JOIN esm_ins_company eic on ipi.company_id = eic.id AND eic.is_delete = 0
         LEFT JOIN esm_ins_company eic on ipi.company_id = eic.id AND eic.is_delete = 0
+        left join ptl_agreement pa on pa.id = io.agreement_id
         where
         where
             ipi.is_delete  = 0
             ipi.is_delete  = 0
     </sql>
     </sql>