Pārlūkot izejas kodu

修改bug:
bug表1124,私有应收 手续费结算报表-保险公司,结算时间筛选项提示接口异常
bug表1123,私有应收 手续费车险应收开票,搜索项增加签单月份

jiakai 1 mēnesi atpakaļ
vecāks
revīzija
9dcb0d8256

+ 1 - 0
commons/src/main/java/com/jzg/commons/entity/finance/vo/IncomeDataVO.java

@@ -64,6 +64,7 @@ public class IncomeDataVO implements Serializable {
         public static final String ptlAgreement = "ptlAgreement";
         public static final String orderType = "orderType";
         public static final String signYear = "signYear";
+        public static final String signMonth = "signMonth";
         public static final String licenseNo = "licenseNo";
         public static final String jqPolicyNo = "jqPolicyNo";
         public static final String syPolicyNo = "syPolicyNo";

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

@@ -622,6 +622,31 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                     return true;
                 };
 
+                // 签单月份
+                Predicate<InsPlyIncome> signMonthPredicate = insPlyIncome ->{
+                    if(!names.contains(IncomeDataVO.SearchVO.signMonth)){
+                        return true;
+                    }
+                    IncomeDataVO.SearchVO searchVO = searchVOMap.get(IncomeDataVO.SearchVO.signMonth);
+                    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> signMonths = Arrays.asList(search.split(","));
+                        return signMonths.contains(insPlyIncome.getSignMonth());
+                    }
+                    if("不等于".equalsIgnoreCase(type) || "不包含".equalsIgnoreCase(type)){
+                        List<String> signMonths = Arrays.asList(search.split(","));
+                        return !signMonths.contains(insPlyIncome.getSignMonth());
+                    }
+                    return true;
+                };
+
                 // 车牌号 licenseNo
                 Predicate<InsPlyIncome> licenseNoPredicate = insPlyIncome -> {
                     if(!names.contains(IncomeDataVO.SearchVO.licenseNo)){
@@ -727,12 +752,12 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                 if("and".equalsIgnoreCase(incomeDataVO.getLogicJudge())){
                     Predicate<InsPlyIncome> and = companyIdPredicate.or(companySubIdPredicate).and(signDatePredicate).
                             and(ptlAgreementPredicate).and(orderTypePredicate).and(signYearPredicate).and(licenseNoPredicate)
-                            .and(contactPredicate).and(jqPolicyNoPredicate).and(syPolicyNoPredicate).and(jyPolicyNoPredicate);
+                            .and(contactPredicate).and(jqPolicyNoPredicate).and(syPolicyNoPredicate).and(jyPolicyNoPredicate).and(signMonthPredicate);
                     filterIncomes = incomes.stream().filter(and).toList();
                 }else if ("or".equalsIgnoreCase(incomeDataVO.getLogicJudge())){
                     Predicate<InsPlyIncome> or = companyIdPredicate.or(companySubIdPredicate).or(signDatePredicate).
                             or(ptlAgreementPredicate).or(orderTypePredicate).or(signYearPredicate).or(licenseNoPredicate)
-                            .or(contactPredicate).or(jqPolicyNoPredicate).or(syPolicyNoPredicate).or(jyPolicyNoPredicate);
+                            .or(contactPredicate).or(jqPolicyNoPredicate).or(syPolicyNoPredicate).or(jyPolicyNoPredicate).or(signMonthPredicate);
                     filterIncomes = incomes.stream().filter(or).toList();
                 }
             }
@@ -6199,8 +6224,18 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
                              Function<CompanySuperviseSettlementReportDto, String> getter) {
         return list.stream()
                 .map(getter)
+                // 自定义安全转换,失败返回null
+                .map(val -> {
+                    if (!StrUtil.isNotBlank(val)) {
+                        return null;
+                    }
+                    try {
+                        return new BigDecimal(val.trim());
+                    } catch (NumberFormatException e) {
+                        return null;
+                    }
+                })
                 .filter(Objects::nonNull)
-                .map(BigDecimal::new)
                 .reduce(BigDecimal.ZERO, BigDecimal::add)
                 .toString();
     }

+ 15 - 15
tenant/organization/src/main/java/com/jzg/organization/utils/IncomeInvoiceLinkUtil.java

@@ -145,7 +145,6 @@ public class IncomeInvoiceLinkUtil {
             InsPlyIncomeInvoiceMapper incomeInvoiceMapper,
             InsPlyIncomeInvoiceSettlementMapper invoiceSettlementMapper
     ) {
-
         String status = queryVo.getStatus();
         String invoiceStartTime = queryVo.getInvoiceStartTime();
         String invoiceEndTime = queryVo.getInvoiceEndTime();
@@ -167,7 +166,7 @@ public class IncomeInvoiceLinkUtil {
                 .toList();
 
         LambdaQueryWrapper<InsPlyIncomeInvoiceLink> linkWrapper = new LambdaQueryWrapper<>();
-        linkWrapper.in(InsPlyIncomeInvoiceLink::getIncomeId, incomeIds);
+        linkWrapper.in(CollUtil.isNotEmpty(incomeIds), InsPlyIncomeInvoiceLink::getIncomeId, incomeIds);
         List<InsPlyIncomeInvoiceLink> linkList = incomeInvoiceLinkMapper.selectList(linkWrapper);
         if (CollUtil.isEmpty(linkList)) {
             return new ArrayList<>(0);
@@ -182,20 +181,20 @@ public class IncomeInvoiceLinkUtil {
 
         // 查询发票
         LambdaQueryWrapper<InsPlyIncomeInvoice> invoiceWrapper = new LambdaQueryWrapper<>();
-        invoiceWrapper.in(InsPlyIncomeInvoice::getId, linkInvoiceIds);
-        if (StrUtil.isNotBlank(status)) {
-            invoiceWrapper.eq(InsPlyIncomeInvoice::getStatus, status);
-        }
+        invoiceWrapper.in(CollUtil.isNotEmpty(linkInvoiceIds), InsPlyIncomeInvoice::getId, linkInvoiceIds);
+        invoiceWrapper.eq(StrUtil.isNotBlank(status), InsPlyIncomeInvoice::getStatus, status);
+
         boolean invoiceTimeCond = StrUtil.isNotBlank(invoiceStartTime) && StrUtil.isNotBlank(invoiceEndTime);
-        if (invoiceTimeCond) {
-            invoiceWrapper.between(InsPlyIncomeInvoice::getInvoiceTime,
-                    toStartDateTime(invoiceStartTime),
-                    toEndDateTime(invoiceEndTime));
-        }
-        invoiceWrapper.eq(InsPlyIncomeInvoice::getInvoiceType, queryVo.getInvoiceType());
+        invoiceWrapper.between(invoiceTimeCond, InsPlyIncomeInvoice::getInvoiceTime,
+                toStartDateTime(invoiceStartTime),
+                toEndDateTime(invoiceEndTime));
+
+        invoiceWrapper.eq(StrUtil.isNotBlank(queryVo.getInvoiceType()),
+                InsPlyIncomeInvoice::getInvoiceType, queryVo.getInvoiceType());
+
         List<InsPlyIncomeInvoice> invoiceList = incomeInvoiceMapper.selectList(invoiceWrapper);
 
-        if ((StrUtil.isNotBlank(status) || invoiceTimeCond) && CollUtil.isEmpty(invoiceList)) {
+        if (CollUtil.isEmpty(invoiceList)) {
             return new ArrayList<>(0);
         }
 
@@ -207,8 +206,8 @@ public class IncomeInvoiceLinkUtil {
                     .collect(Collectors.toSet());
 
             LambdaQueryWrapper<InsPlyIncomeInvoiceSettlement> settleWrapper = new LambdaQueryWrapper<>();
-            settleWrapper.in(InsPlyIncomeInvoiceSettlement::getInvoiceId, invoiceIdSet);
-            settleWrapper.between(InsPlyIncomeInvoiceSettlement::getCreateTime,
+            settleWrapper.in(CollUtil.isNotEmpty(invoiceIdSet), InsPlyIncomeInvoiceSettlement::getInvoiceId, invoiceIdSet);
+            settleWrapper.between(true, InsPlyIncomeInvoiceSettlement::getCreateTime,
                     toStartDateTime(settleStartTime),
                     toEndDateTime(settleEndTime));
 
@@ -247,6 +246,7 @@ public class IncomeInvoiceLinkUtil {
     }
 
 
+
     /**
      * 结算状态内存过滤(无接口,函数式getter)
      * 0-已开票未结清 1-已结清 2-未开票

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

@@ -210,6 +210,7 @@
         io.signing_time,
         date(io.signing_time ) as sign_date,
         year(io.signing_time) as sign_year,
+        DATE_FORMAT(io.signing_time,'%Y-%m') AS sign_month,
         ipi.id,
         io.id as 'orderNo',
         eic.name_simple as companyName,