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

修改bug:
私有应收,相同的车辆信息出现一次就行,不管几次结算,出现一条即可

jiakai 3 месяцев назад
Родитель
Сommit
aee38ae9d5

+ 29 - 27
tenant/organization/src/main/java/com/jzg/organization/service/impl/ReceivableServiceImpl.java

@@ -4413,36 +4413,38 @@ public class ReceivableServiceImpl extends ServiceImpl<ReceivableMapper, InsPlyI
             exportSuperviseSettlementDetailExcelDtos = baseMapper.getSuperviseSettlementDetailExcelDtos(page, settlementQueryVo);
         }
         if (CollUtil.isNotEmpty(exportSuperviseSettlementDetailExcelDtos.getRecords())){
-            // 根据invoiceId关联查询ins_ply_income_invoice_settlement表
-            LambdaQueryWrapper<InsPlyIncomeInvoiceSettlement> insPlyIncomeInvoiceSettlementLambdaQueryWrapper = new LambdaQueryWrapper<>();
-            insPlyIncomeInvoiceSettlementLambdaQueryWrapper.in(InsPlyIncomeInvoiceSettlement::getInvoiceId, exportSuperviseSettlementDetailExcelDtos.getRecords().stream().map(ExportSuperviseSettlementDetailExcelDto::getInvoiceId).toList());
-            insPlyIncomeInvoiceSettlementLambdaQueryWrapper.eq(InsPlyIncomeInvoiceSettlement::getIsDelete, 0);
-            if (StrUtil.isNotBlank(settlementQueryVo.getSettlementPerson())){
-                // 结算人
-                insPlyIncomeInvoiceSettlementLambdaQueryWrapper.eq(InsPlyIncomeInvoiceSettlement::getCreateBy, settlementQueryVo.getSettlementPerson());
-            }
-            if (StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeStart()) && StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeEnd())) {
-                // 结算时间
-                insPlyIncomeInvoiceSettlementLambdaQueryWrapper.between(StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeStart()) && StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeEnd()),
-                        InsPlyIncomeInvoiceSettlement::getCreateTime, settlementQueryVo.getSettlementTimeStart(), settlementQueryVo.getSettlementTimeEnd());
-            }
-            List<InsPlyIncomeInvoiceSettlement> insPlyIncomeInvoiceSettlements = insPlyIncomeInvoiceSettlementMapper.selectList(insPlyIncomeInvoiceSettlementLambdaQueryWrapper);
-            // 如果结算记录不为空,且结算人、结算时间不为空,则根据结算记录的invoiceId过滤列表
             Map<String, InsPlyIncomeInvoiceSettlement> settlementMap = new HashMap<>();
-            if (CollUtil.isNotEmpty(insPlyIncomeInvoiceSettlements)){
-                if (StrUtil.isNotBlank(settlementQueryVo.getSettlementPerson()) || (StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeStart()) && StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeEnd()))) {
-                    List<String> invoiceList = insPlyIncomeInvoiceSettlements.stream().map(InsPlyIncomeInvoiceSettlement::getInvoiceId).toList();
-                    // filter:lambda 返回 true 的元素留下,false 的剔除
-                    exportSuperviseSettlementDetailExcelDtos.setRecords(exportSuperviseSettlementDetailExcelDtos.getRecords().stream().filter(detail -> invoiceList.contains(detail.getInvoiceId())).toList());
+            if (!(settlementQueryVo.getInvoiceTypes().contains("5") && settlementQueryVo.getInvoiceTypes().contains("6"))) {
+                // 根据invoiceId关联查询ins_ply_income_invoice_settlement表
+                LambdaQueryWrapper<InsPlyIncomeInvoiceSettlement> insPlyIncomeInvoiceSettlementLambdaQueryWrapper = new LambdaQueryWrapper<>();
+                insPlyIncomeInvoiceSettlementLambdaQueryWrapper.in(InsPlyIncomeInvoiceSettlement::getInvoiceId, exportSuperviseSettlementDetailExcelDtos.getRecords().stream().map(ExportSuperviseSettlementDetailExcelDto::getInvoiceId).toList());
+                insPlyIncomeInvoiceSettlementLambdaQueryWrapper.eq(InsPlyIncomeInvoiceSettlement::getIsDelete, 0);
+                if (StrUtil.isNotBlank(settlementQueryVo.getSettlementPerson())) {
+                    // 结算人
+                    insPlyIncomeInvoiceSettlementLambdaQueryWrapper.eq(InsPlyIncomeInvoiceSettlement::getCreateBy, settlementQueryVo.getSettlementPerson());
                 }
+                if (StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeStart()) && StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeEnd())) {
+                    // 结算时间
+                    insPlyIncomeInvoiceSettlementLambdaQueryWrapper.between(StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeStart()) && StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeEnd()),
+                            InsPlyIncomeInvoiceSettlement::getCreateTime, settlementQueryVo.getSettlementTimeStart(), settlementQueryVo.getSettlementTimeEnd());
+                }
+                List<InsPlyIncomeInvoiceSettlement> insPlyIncomeInvoiceSettlements = insPlyIncomeInvoiceSettlementMapper.selectList(insPlyIncomeInvoiceSettlementLambdaQueryWrapper);
+                // 如果结算记录不为空,且结算人、结算时间不为空,则根据结算记录的invoiceId过滤列表
+                if (CollUtil.isNotEmpty(insPlyIncomeInvoiceSettlements)) {
+                    if (StrUtil.isNotBlank(settlementQueryVo.getSettlementPerson()) || (StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeStart()) && StrUtil.isNotBlank(settlementQueryVo.getSettlementTimeEnd()))) {
+                        List<String> invoiceList = insPlyIncomeInvoiceSettlements.stream().map(InsPlyIncomeInvoiceSettlement::getInvoiceId).toList();
+                        // filter:lambda 返回 true 的元素留下,false 的剔除
+                        exportSuperviseSettlementDetailExcelDtos.setRecords(exportSuperviseSettlementDetailExcelDtos.getRecords().stream().filter(detail -> invoiceList.contains(detail.getInvoiceId())).toList());
+                    }
 
-                // 冲突时保留旧值(第一条)
-                settlementMap = insPlyIncomeInvoiceSettlements.stream()
-                        .collect(Collectors.toMap(
-                                InsPlyIncomeInvoiceSettlement::getInvoiceId,
-                                Function.identity(),
-                                (oldVal, newVal) -> oldVal
-                        ));
+                    // 冲突时保留旧值(第一条)
+                    settlementMap = insPlyIncomeInvoiceSettlements.stream()
+                            .collect(Collectors.toMap(
+                                    InsPlyIncomeInvoiceSettlement::getInvoiceId,
+                                    Function.identity(),
+                                    (oldVal, newVal) -> oldVal
+                            ));
+                }
             }
 
             final Map<String, InsPlyIncomeInvoiceSettlement> finalSettlementMap = settlementMap;