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

评估项目作废报告号重新使用调整及发票列表金额及导出调整

sangwenwei пре 9 месеци
родитељ
комит
7c536b6a17

+ 15 - 1
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/invoice/service/FinanceInvoiceService.java

@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
@@ -692,7 +693,20 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
     public List<FinanceInvoiceDTO> getExceedFinance() {
         //查询开票时间为空的,或者是否开票为否的  开票时间距今超过1个月的开票数据
         List<FinanceInvoiceDTO> list=financeInvoiceMapper.getExceedFinance();
-        return list;
+        //将红字发票及红字发票关联的发票进行剔除
+        ArrayList<String> redReveId = new ArrayList<>();
+        for (FinanceInvoiceDTO financeInvoiceDTO : list) {
+            if (ObjectUtils.isNotEmpty(financeInvoiceDTO.getRedInvoiceFlag()) && "1".equals(financeInvoiceDTO.getRedInvoiceFlag())){
+                redReveId.add(financeInvoiceDTO.getId());
+                redReveId.add(financeInvoiceDTO.getRedInvoiceRelevancyId());
+            }
+        }
+        //将redReveId中存放的id从list中进行去除
+        List<FinanceInvoiceDTO> filteredList = list.stream()
+                .filter(dto -> !redReveId.contains(dto.getId()))
+                .collect(Collectors.toList());
+
+        return filteredList;
     }
 
     /**

+ 2 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/ProgramReportNoMapper.java

@@ -26,6 +26,8 @@ public interface ProgramReportNoMapper extends BaseMapper<ProgramReportNo> {
     List<ProgramReportNo> getByProgramId(@Param("id") String id);
     @InterceptorIgnore(tenantLine = "true")
     List<ProgramReportNo> getCancelledProject();
+    @InterceptorIgnore(tenantLine = "true")
+    List<ProgramReportNo> selectByNo(@Param("reportNo") String reportNo);
 }
 
 

+ 5 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/xml/ProgramReportNoMapper.xml

@@ -50,4 +50,9 @@
         left join program_cancellation pc on rn.program_id = pc.project_id and pc.del_flag = 0
         where pc.status = '5' and rn.del_flag = '0'
     </select>
+
+    <select id="selectByNo"
+            resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramReportNo">
+        select * from program_report_no where report_no = #{reportNo} and del_flag = 0
+    </select>
 </mapper>

+ 1 - 0
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/mapper/xml/ProjectListMapper.xml

@@ -499,6 +499,7 @@
     <select id="getById" resultType="com.jeeplus.assess.program.configuration.projectList.domain.ProgramProjectListInfo">
         SELECT
            a.id,
+           a.create_by_id as createBy,
            b.name AS create_by_id,
            a.create_time,
            a.update_by_id,

+ 140 - 126
jeeplus-modules/jeeplus-assess/src/main/java/com/jeeplus/assess/program/configuration/projectList/service/ProjectListService.java

@@ -185,7 +185,8 @@ public class ProjectListService {
 //                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
 //                    }
 //                }
-                reportNo = this.generateReportNo(info.getReportType());
+                info.setCreateBy(userDTO.getId());
+                reportNo = this.generateReportNo(info);
                 ProgramReportNo programReportNo = new ProgramReportNo();
                 programReportNo.setProgramId(id);
                 programReportNo.setReportNo(reportNo);
@@ -411,16 +412,19 @@ public class ProjectListService {
 //                                    reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
 //                                }
                                 //生成报告号
-                                reportNo = this.generateReportNo(projectListInfo.getReportType());
-                                ProgramReportNo programReportNo = new ProgramReportNo();
-                                programReportNo.setProgramId(projectListInfo.getId());
-                                programReportNo.setReportNo(reportNo);
-                                programReportNoMapper.insert(programReportNo);
-                                //根据报告号去报告号作废表中查询数据,并进行逻辑删除
-                                ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(reportNo);
-                                if (ObjectUtil.isNotEmpty(byReportNo)){
-                                    reportCancellationMapper.deleteById(byReportNo.getId());
+                                if (StringUtils.isBlank(projectListInfo.getReportNo())){
+                                    reportNo = this.generateReportNo(projectListInfo);
+                                    ProgramReportNo programReportNo = new ProgramReportNo();
+                                    programReportNo.setProgramId(projectListInfo.getId());
+                                    programReportNo.setReportNo(reportNo);
+                                    programReportNoMapper.insert(programReportNo);
+                                    //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+                                    ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(reportNo);
+                                    if (ObjectUtil.isNotEmpty(byReportNo)){
+                                        reportCancellationMapper.deleteById(byReportNo.getId());
+                                    }
                                 }
+
                             }
                         }
                     }
@@ -474,31 +478,13 @@ public class ProjectListService {
         LocalDate currentDate = LocalDate.now();
         // 获取当前年份
         String currentYear = String.valueOf(currentDate.getYear());
-        if (("true").equals(dto.getGenerateReportNumber())) {
+        if (("false").equals(dto.getGenerateReportNumber()) && userDTO.getId().equals(dto.getProjectManager())) {
+            ProgramProjectListInfo programProjectListInfo = projectListMapper.selectById(dto.getId());
             ProgramReportNo programReportNo = programReportNoMapper.selectByProgramId(info.getId());
             if (null == programReportNo) {
                 if(StringUtils.isNotBlank(info.getReportType())){
-//                    //用于查询报告号时不同的报告类型
-//                    String type = "";
-//                    if (info.getReportType().equals("1")) {
-//                        //先从报告号作废表中查询当年是否还有未被使用的报告号
-//                        type = "报字";
-//                        ProgramReportCancellation infos = reportCancellationMapper.getInfos(type,currentYear);
-//                        if (ObjectUtil.isNotEmpty(infos)) {
-//                            reportNo = infos.getReportNo();
-//                        } else {
-//                            reportNo = SpringUtil.getBean(IWorkAttachmentApi.class).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE, currentToken);
-//                        }
-//                    }else if (info.getReportType().equals("2")) {
-//                        type = "咨字";
-//                        ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
-//                        if (ObjectUtil.isNotEmpty(infos)){
-//                            reportNo = infos.getReportNo();
-//                        }else {
-//                            reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
-//                        }
-//                    }
-                    reportNo = this.generateReportNo(info.getReportType());
+                    info.setCreateBy(programProjectListInfo.getCreateById());
+                    reportNo = this.generateReportNo(info);
                     programReportNo = new ProgramReportNo();
                     programReportNo.setProgramId(info.getId());
                     programReportNo.setReportNo(reportNo);
@@ -509,49 +495,50 @@ public class ProjectListService {
                         reportCancellationMapper.deleteById(byReportNo.getId());
                     }
                 }
-            }else {
-                //判断该报告中的报告号是否被使用
-                ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(programReportNo.getReportNo());
-                if (ObjectUtil.isNotEmpty(byReportNo)){
-                    if (1 == byReportNo.getDelFlag()){
-                        //如果该报告号已经被使用,则重新生成新的报告号
-                        if (("true").equals(info.getGenerateReportNumber())) {
-                            if(StringUtils.isNotBlank(info.getReportType())){
-                                //用于查询报告号时不同的报告类型
-                                String type = "";
-                                if (info.getReportType().equals("1")){
-                                    //先从报告号作废表中查询当年是否还有未被使用的报告号
-                                    type = "报字";
-                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
-                                    if (ObjectUtil.isNotEmpty(infos)){
-                                        reportNo = infos.getReportNo();
-                                    }else {
-                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
-                                    }
-                                } else if (info.getReportType().equals("2")) {
-                                    type = "咨字";
-                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
-                                    if (ObjectUtil.isNotEmpty(infos)){
-                                        reportNo = infos.getReportNo();
-                                    }else {
-                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
-                                    }
-                                }
-                                ProgramReportNo programReportNo1 = programReportNoMapper.selectByProgramId(info.getId());
-                                ProgramReportNo programReport = new ProgramReportNo();
-                                programReport.setId(programReportNo1.getId());
-                                programReport.setReportNo(reportNo);
-                                programReportNoMapper.updateById(programReport);
-                                //根据报告号去报告号作废表中查询数据,并进行逻辑删除
-                                ProgramReportCancellation byReportNo1 = reportCancellationMapper.getByReportNo(reportNo);
-                                if (ObjectUtil.isNotEmpty(byReportNo1)){
-                                    reportCancellationMapper.deleteById(byReportNo1.getId());
-                                }
-                            }
-                        }
-                    }
-                }
             }
+//            else {
+//                //判断该报告中的报告号是否被使用
+//                ProgramReportCancellation byReportNo = reportCancellationMapper.getByReportNo(programReportNo.getReportNo());
+//                if (ObjectUtil.isNotEmpty(byReportNo)){
+//                    if (1 == byReportNo.getDelFlag()){
+//                        //如果该报告号已经被使用,则重新生成新的报告号
+//                        if (("true").equals(info.getGenerateReportNumber())) {
+//                            if(StringUtils.isNotBlank(info.getReportType())){
+//                                //用于查询报告号时不同的报告类型
+//                                String type = "";
+//                                if (info.getReportType().equals("1")){
+//                                    //先从报告号作废表中查询当年是否还有未被使用的报告号
+//                                    type = "报字";
+//                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
+//                                    if (ObjectUtil.isNotEmpty(infos)){
+//                                        reportNo = infos.getReportNo();
+//                                    }else {
+//                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
+//                                    }
+//                                } else if (info.getReportType().equals("2")) {
+//                                    type = "咨字";
+//                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
+//                                    if (ObjectUtil.isNotEmpty(infos)){
+//                                        reportNo = infos.getReportNo();
+//                                    }else {
+//                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+//                                    }
+//                                }
+//                                ProgramReportNo programReportNo1 = programReportNoMapper.selectByProgramId(info.getId());
+//                                ProgramReportNo programReport = new ProgramReportNo();
+//                                programReport.setId(programReportNo1.getId());
+//                                programReport.setReportNo(reportNo);
+//                                programReportNoMapper.updateById(programReport);
+//                                //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+//                                ProgramReportCancellation byReportNo1 = reportCancellationMapper.getByReportNo(reportNo);
+//                                if (ObjectUtil.isNotEmpty(byReportNo1)){
+//                                    reportCancellationMapper.deleteById(byReportNo1.getId());
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//            }
 
         }
         // 修改联系人信息(先删除原有数据,再保存)
@@ -859,9 +846,11 @@ public class ProjectListService {
                 reportCancellationMapper.deleteByCanId(reportNo.getId());
             }
                 if (StringUtils.isNotBlank(listInfo.getReportNo())){
+                    String number = listInfo.getReportNo().substring(7,11);
                     ProgramReportCancellation programReportCancellation = new ProgramReportCancellation();
                     programReportCancellation.setInFlag("1");
                     programReportCancellation.setReportNo(listInfo.getReportNo());
+                    programReportCancellation.setNumber(number);
                     programReportCancellation.setId(UUID.randomUUID().toString().replace("-",""));
                     reportCancellationMapper.insert(programReportCancellation);
                 }
@@ -2173,59 +2162,84 @@ public class ProjectListService {
         String currentToken = TokenProvider.getCurrentToken();
         programCancellationMapper.updateStatusById(dto.getCancellId(),dto.getCancellationStatus());
         UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
-        //根据id查询项目
+        //项目作废表中根据id查询项目
         ProgramCancellation programCancellation = programCancellationMapper.selectById(dto.getCancellId());
         if (ObjectUtil.isNotEmpty(programCancellation)){
+            //查询项目信息
             ProgramProjectListInfo listInfo = projectListMapper.getById(programCancellation.getProjectId());
-            if (ObjectUtil.isNotEmpty(listInfo) && "true".equals(listInfo.getGenerateReportNumber())){
-                //根据报告号去报告号作废表中是否有该报告号
-                ProgramReportCancellation programReportCancellation=reportCancellationMapper.getByReportNo(listInfo.getReportNo());
-                if (ObjectUtil.isNotEmpty(programReportCancellation)){
-                    if (0==programReportCancellation.getDelFlag()){
-                        ProgramReportCancellation cancellation = new ProgramReportCancellation();
-                        cancellation.setId(programReportCancellation.getId());
-                        cancellation.setDelFlag(1);
-                        reportCancellationMapper.updateInfoById(cancellation);
-                    }else {
-                        //如果该报告号已经被使用,则重新生成新的报告号
-                        String reportNo = "";
-                        if (("true").equals(listInfo.getGenerateReportNumber())) {
-                            if(StringUtils.isNotBlank(listInfo.getReportType())){
-//                                //用于查询报告号时不同的报告类型
-//                                String type = "";
-//                                if (listInfo.getReportType().equals("1")){
-//                                    //先从报告号作废表中查询当年是否还有未被使用的报告号
-//                                    type = "报字";
-//                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
-//                                    if (ObjectUtil.isNotEmpty(infos)){
-//                                        reportNo = infos.getReportNo();
-//                                    }else {
-//                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
-//                                    }
-//                                } else if (listInfo.getReportType().equals("2")) {
-//                                    type = "咨字";
-//                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
-//                                    if (ObjectUtil.isNotEmpty(infos)){
-//                                        reportNo = infos.getReportNo();
-//                                    }else {
-//                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
-//                                    }
-//                                }
-                                reportNo = this.generateReportNo(listInfo.getReportType());
-                                ProgramReportNo programReportNo = programReportNoMapper.selectByProgramId(listInfo.getId());
-                                ProgramReportNo programReport = new ProgramReportNo();
-                                programReport.setId(programReportNo.getId());
-                                programReport.setReportNo(reportNo);
-                                programReportNoMapper.updateById(programReport);
-                                //根据报告号去报告号作废表中查询数据,并进行逻辑删除
-                                ProgramReportCancellation byReportNo1 = reportCancellationMapper.getByReportNo(reportNo);
-                                if (ObjectUtil.isNotEmpty(byReportNo1)){
-                                    reportCancellationMapper.deleteById(byReportNo1.getId());
-                                }
-                            }
-                        }
+            //查询报告号使用数量
+            ProgramReportNo programReportNo1 = programReportNoMapper.selectByProgramId(programCancellation.getProjectId());
+            List<ProgramReportNo> reportNoList=programReportNoMapper.selectByNo(programReportNo1.getReportNo());
+            if (CollectionUtils.isNotEmpty(reportNoList)){
+                //根据查询出的报告号数量判断当前报告号是否已经被使用过
+                if (reportNoList.size()>1){
+                    String reportNo = "";
+                    reportNo = this.generateReportNo(listInfo);
+                    ProgramReportNo programReportNo = programReportNoMapper.selectByProgramId(listInfo.getId());
+                    ProgramReportNo programReport = new ProgramReportNo();
+                    programReport.setId(programReportNo.getId());
+                    programReport.setReportNo(reportNo);
+                    programReportNoMapper.updateById(programReport);
+                    //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+                    ProgramReportCancellation byReportNo1 = reportCancellationMapper.getByReportNo(reportNo);
+                    if (ObjectUtil.isNotEmpty(byReportNo1)){
+                        reportCancellationMapper.deleteById(byReportNo1.getId());
+                    }
+                }else {
+                    //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+                    ProgramReportCancellation byReportNo1 = reportCancellationMapper.getByReportNo(programReportNo1.getReportNo());
+                    if (ObjectUtil.isNotEmpty(byReportNo1)){
+                        reportCancellationMapper.deleteById(byReportNo1.getId());
                     }
                 }
+                //根据报告号去报告号作废表中是否有该报告号
+//                ProgramReportCancellation programReportCancellation=reportCancellationMapper.getByReportNo(listInfo.getReportNo());
+//                if (ObjectUtil.isNotEmpty(programReportCancellation)){
+//                    if (0==programReportCancellation.getDelFlag()){
+//                        ProgramReportCancellation cancellation = new ProgramReportCancellation();
+//                        cancellation.setId(programReportCancellation.getId());
+//                        cancellation.setDelFlag(1);
+//                        reportCancellationMapper.updateInfoById(cancellation);
+//                    }else {
+//                        //如果该报告号已经被使用,则重新生成新的报告号
+//                        String reportNo = "";
+//                        if (("true").equals(listInfo.getGenerateReportNumber())) {
+//                            if(StringUtils.isNotBlank(listInfo.getReportType())){
+////                                //用于查询报告号时不同的报告类型
+////                                String type = "";
+////                                if (listInfo.getReportType().equals("1")){
+////                                    //先从报告号作废表中查询当年是否还有未被使用的报告号
+////                                    type = "报字";
+////                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
+////                                    if (ObjectUtil.isNotEmpty(infos)){
+////                                        reportNo = infos.getReportNo();
+////                                    }else {
+////                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
+////                                    }
+////                                } else if (listInfo.getReportType().equals("2")) {
+////                                    type = "咨字";
+////                                    ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
+////                                    if (ObjectUtil.isNotEmpty(infos)){
+////                                        reportNo = infos.getReportNo();
+////                                    }else {
+////                                        reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE_,currentToken);
+////                                    }
+////                                }
+//                                reportNo = this.generateReportNo(listInfo.getReportType());
+//                                ProgramReportNo programReportNo = programReportNoMapper.selectByProgramId(listInfo.getId());
+//                                ProgramReportNo programReport = new ProgramReportNo();
+//                                programReport.setId(programReportNo.getId());
+//                                programReport.setReportNo(reportNo);
+//                                programReportNoMapper.updateById(programReport);
+//                                //根据报告号去报告号作废表中查询数据,并进行逻辑删除
+//                                ProgramReportCancellation byReportNo1 = reportCancellationMapper.getByReportNo(reportNo);
+//                                if (ObjectUtil.isNotEmpty(byReportNo1)){
+//                                    reportCancellationMapper.deleteById(byReportNo1.getId());
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
             }
         }
 
@@ -2321,9 +2335,9 @@ public class ProjectListService {
     /**
      * 用于生成报告号
      */
-    private String generateReportNo(String reportType) throws Exception {
+    private String generateReportNo(ProgramProjectListInfo listInfo) throws Exception {
         String currentToken = TokenProvider.getCurrentToken();
-        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
+        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getById(listInfo.getCreateBy());
 
         String reportNo="";
         // 获取当前日期
@@ -2332,7 +2346,7 @@ public class ProjectListService {
         String currentYear = String.valueOf(currentDate.getYear());
         //用于查询报告号时不同的报告类型
         String type = "";
-        if (reportType.equals("1")){
+        if (listInfo.getReportType().equals("1")){
             //先从报告号作废表中查询当年是否还有未被使用的报告号
             type = "报字";
             ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
@@ -2341,7 +2355,7 @@ public class ProjectListService {
             }else {
                 reportNo = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), ProgramReportNoDto.BIZ_CODE,currentToken);
             }
-        } else if (reportType.equals("2")) {
+        } else if (listInfo.getReportType().equals("2")) {
             type = "咨字";
             ProgramReportCancellation infos=reportCancellationMapper.getInfos(type,currentYear);
             if (ObjectUtil.isNotEmpty(infos)){

+ 3 - 3
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/controller/CwFinanceInvoiceController.java

@@ -381,7 +381,7 @@ public class CwFinanceInvoiceController {
             result = cwFinanceInvoiceService.findList (page,cwFinanceInvoiceDTO,"export").getRecords();
         }
         //对导出数据进行处理
-        List<CwFinanceInvoiceDTO> resultList = cwFinanceInvoiceService.disposeExportList(result);
+//        List<CwFinanceInvoiceDTO> resultList = cwFinanceInvoiceService.disposeExportList(result);
 
 
         //获取字典数据
@@ -400,7 +400,7 @@ public class CwFinanceInvoiceController {
         String invoiceStatusDatas = SpringUtil.getBean ( IDictApi.class ).getDictListMapByDict ("invoice_status");
         Map<String,Object> invoiceStatusValueDTOs = JSON.parseObject(invoiceStatusDatas, new TypeReference<Map<String,Object>>() {});
 
-        for (CwFinanceInvoiceDTO info : resultList) {
+        for (CwFinanceInvoiceDTO info : result) {
             if(StringUtils.isNotBlank(info.getReportType())){
                 for (String key : cwWorkClientReportTypeValueDTOs.keySet()) {
                     if(info.getReportType().equals(key)){
@@ -492,7 +492,7 @@ public class CwFinanceInvoiceController {
             }
 
         }
-        EasyPoiUtil.exportExcel ( resultList, sheetName,  sheetName, CwFinanceInvoiceDTO.class, fileName, response );
+        EasyPoiUtil.exportExcel ( result, sheetName,  sheetName, CwFinanceInvoiceDTO.class, fileName, response );
 
     }
 

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/xml/CwFinanceInvoiceMapper.xml

@@ -327,7 +327,7 @@
         END
         ) AS reportNos,
         cfid.number as "number",
-        cfid.account as "accountDetail",
+        ifnull(cfid.account,"0") as "accountDetail",
         a.program_id,
         pr.is_pre_invoice as isPreInvoice,
         a.type as 'recordType'

+ 20 - 2
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/CwFinanceInvoiceService.java

@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
@@ -112,6 +113,10 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         AtomicInteger checkNum = new AtomicInteger();
         if (ObjectUtil.isNotEmpty(cwFinanceInvoiceDTO)) {
+            //状态查询
+            if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getStatus())){
+                queryWrapper.eq("fi.status",cwFinanceInvoiceDTO.getStatus());
+            }
             // 发票号查询
             if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getNumber())) {
                 List<CwFinanceInvoiceDetail> cwFinanceInvoiceDetails = cwFinanceInvoiceDetailMapper.selectList(new LambdaQueryWrapper<CwFinanceInvoiceDetail>().like(CwFinanceInvoiceDetail::getNumber, cwFinanceInvoiceDTO.getNumber()));
@@ -553,7 +558,7 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
     public CwFinanceInvoiceDTO queryById(String id) {
 
         CwFinanceInvoiceDTO cwFinanceInvoiceDTO = cwFinanceInvoiceMapper.queryById(id);
-        if(ObjectUtil.isNotEmpty(cwFinanceInvoiceDTO) && 1 == cwFinanceInvoiceDTO.getRedInvoiceFlag()){
+        if(ObjectUtil.isNotEmpty(cwFinanceInvoiceDTO) && ObjectUtil.isNotEmpty(cwFinanceInvoiceDTO.getRedInvoiceFlag()) && 1 == cwFinanceInvoiceDTO.getRedInvoiceFlag()){
             //此处为红冲数据 需要获取发票号
             CwFinanceInvoiceDTO redCwFinanceInvoiceDTO = cwFinanceInvoiceMapper.queryById(cwFinanceInvoiceDTO.getRedInvoiceRelevancyId());
             String invoiceNumberStr = cwFinanceInvoiceMapper.getInvoiceNumberStr(redCwFinanceInvoiceDTO.getId());
@@ -1136,6 +1141,19 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
 
         //查询开票时间为空的,或者是否开票为否的  开票时间距今超过1个月的开票数据
         List<CwFinanceInvoiceDTO> list=cwFinanceInvoiceMapper.getExceedCwFinance();
-        return list;
+        //将红字发票及红字发票关联的发票进行剔除
+        ArrayList<String> redReveId = new ArrayList<>();
+        for (CwFinanceInvoiceDTO cwFinanceInvoiceDTO : list) {
+            if (ObjectUtils.isNotEmpty(cwFinanceInvoiceDTO.getRedInvoiceFlag()) && 1 == cwFinanceInvoiceDTO.getRedInvoiceFlag()){
+                redReveId.add(cwFinanceInvoiceDTO.getId());
+                redReveId.add(cwFinanceInvoiceDTO.getRedInvoiceRelevancyId());
+            }
+        }
+        //将redReveId中存放的id从list中进行去除
+        List<CwFinanceInvoiceDTO> filteredList = list.stream()
+                .filter(dto -> !redReveId.contains(dto.getId()))
+                .collect(Collectors.toList());
+
+        return filteredList;
     }
 }