Bläddra i källkod

费用管理中的发票导出 添加进账进账时间

y 2 år sedan
förälder
incheckning
1a0279bbea

+ 38 - 12
src/main/java/com/ydtech/modules/inv/service/impl/InvAccountIncoiceServiceImpl.java

@@ -314,21 +314,28 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
     @Override
     public String excel(InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
         LambdaQueryWrapper<InvAccountIncoice> lambdaQuery = new LambdaQueryWrapper<>();
-        lambdaQuery
-                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getBiller()), InvAccountIncoice::getBiller, invAccountIncoiceQueryVo.getBiller())
-                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
-                        invAccountIncoiceQueryVo.getInvoiceBy())
-                .eq(InvAccountIncoice::getDelFlag, "0")
-                .eq(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceType()), InvAccountIncoice::getInvoiceType,
-                        invAccountIncoiceQueryVo.getInvoiceType())
-                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getOtherUnit()), InvAccountIncoice::getOtherUnit, invAccountIncoiceQueryVo.getOtherUnit());
+        List<InvAccountIncoice> invAccountIncoices = new ArrayList<>();
 
+        /**
+         * 如果有开票时间范围,查询开票记录表
+         */
+        if (invAccountIncoiceQueryVo.getApplyTimeStart() != null && invAccountIncoiceQueryVo.getApplyTimeEnd() != null) {
+            LambdaQueryWrapper<InvAccountOperate> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+            lambdaQueryWrapper.ge(InvAccountOperate::getCreateTime, invAccountIncoiceQueryVo.getApplyTimeStart());
+            lambdaQueryWrapper.le(InvAccountOperate::getCreateTime, invAccountIncoiceQueryVo.getApplyTimeEnd());
+            lambdaQueryWrapper.isNotNull(InvAccountOperate::getInvoiceId);
+            List<InvAccountOperate> list = invAccountOperateService.list(lambdaQueryWrapper);
+            List<String> collect = list.stream().map(InvAccountOperate::getInvoiceId).collect(Collectors.toList());
+            //将开票id集合放入查询中
+            if (!collect.isEmpty()) {
+                lambdaQuery.in(InvAccountIncoice::getInvoiceId, collect);
+                invAccountIncoices = selectExcel(lambdaQuery, invAccountIncoiceQueryVo);
+            }
 
-        if (!ObjectUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceTimeStart()) && !ObjectUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceTimeEnd())) {
-            lambdaQuery.ge(InvAccountIncoice::getInvoiceTime, invAccountIncoiceQueryVo.getInvoiceTimeStart().toString());
-            lambdaQuery.le(InvAccountIncoice::getInvoiceTime, invAccountIncoiceQueryVo.getInvoiceTimeEnd().toString());
+        } else {
+            invAccountIncoices = selectExcel(lambdaQuery, invAccountIncoiceQueryVo);
         }
-        List<InvAccountIncoice> invAccountIncoices = invAccountIncoiceMapper.selectList(lambdaQuery);
+
 
         //解决时间格式报错问题
         invAccountIncoices.forEach(invAccountIncoice -> {
@@ -437,5 +444,24 @@ public class InvAccountIncoiceServiceImpl extends ServiceImpl<InvAccountIncoiceM
         return invAccountIncoiceResult;
     }
 
+    private List<InvAccountIncoice> selectExcel(LambdaQueryWrapper<InvAccountIncoice> lambdaQuery, InvAccountIncoiceQueryVo invAccountIncoiceQueryVo) {
+        lambdaQuery
+                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getBiller()), InvAccountIncoice::getBiller, invAccountIncoiceQueryVo.getBiller())
+                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceBy()), InvAccountIncoice::getInvoiceBy,
+                        invAccountIncoiceQueryVo.getInvoiceBy())
+                .eq(InvAccountIncoice::getDelFlag, "0")
+                .eq(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceType()), InvAccountIncoice::getInvoiceType,
+                        invAccountIncoiceQueryVo.getInvoiceType())
+                .like(!StringUtils.isEmpty(invAccountIncoiceQueryVo.getOtherUnit()), InvAccountIncoice::getOtherUnit, invAccountIncoiceQueryVo.getOtherUnit());
+
+
+        if (!ObjectUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceTimeStart()) && !ObjectUtils.isEmpty(invAccountIncoiceQueryVo.getInvoiceTimeEnd())) {
+            lambdaQuery.ge(InvAccountIncoice::getInvoiceTime, invAccountIncoiceQueryVo.getInvoiceTimeStart().toString());
+            lambdaQuery.le(InvAccountIncoice::getInvoiceTime, invAccountIncoiceQueryVo.getInvoiceTimeEnd().toString());
+        }
+
+        return invAccountIncoiceMapper.selectList(lambdaQuery);
+    }
+
 }