|
@@ -3,6 +3,7 @@ package com.jeeplus.assess.program.configuration.projectList.controller;
|
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.jeeplus.aop.demo.annotation.DemoMode;
|
|
import com.jeeplus.aop.demo.annotation.DemoMode;
|
|
|
import com.jeeplus.assess.invoice.service.FinanceInvoiceService;
|
|
import com.jeeplus.assess.invoice.service.FinanceInvoiceService;
|
|
@@ -33,10 +34,7 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
import java.io.IOException;
|
|
|
-import java.util.ArrayList;
|
|
|
|
|
-import java.util.List;
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
-import java.util.Objects;
|
|
|
|
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Api(tags ="项目列表管理")
|
|
@Api(tags ="项目列表管理")
|
|
@@ -321,12 +319,43 @@ public class ProjectListController {
|
|
|
result = projectListService.list (page,info,"1").getRecords();
|
|
result = projectListService.list (page,info,"1").getRecords();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ Iterator<ProgramProjectListInfo> iterator = result.iterator();
|
|
|
|
|
+ while (iterator.hasNext()) {
|
|
|
|
|
+ ProgramProjectListInfo listInfo = iterator.next();
|
|
|
|
|
+ if ("5".equals(listInfo.getCancellationStatus())) {
|
|
|
|
|
+ iterator.remove(); // 安全删除,不会报错
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
List<ExportFileDto> exportFileDtos = projectListService.exportList(result);
|
|
List<ExportFileDto> exportFileDtos = projectListService.exportList(result);
|
|
|
|
|
|
|
|
Page<FinanceInvoiceDTO> invoicePage = new Page<>();
|
|
Page<FinanceInvoiceDTO> invoicePage = new Page<>();
|
|
|
invoicePage.setCurrent(1);
|
|
invoicePage.setCurrent(1);
|
|
|
invoicePage.setSize(999);
|
|
invoicePage.setSize(999);
|
|
|
|
|
+ //此处应该是遍历所有项目中对应的项目id。然后批量去进行查询,再分组,最后整合填写
|
|
|
|
|
+ List<String> programIdList = new ArrayList<>();
|
|
|
for (ExportFileDto exportFileDto : exportFileDtos) {
|
|
for (ExportFileDto exportFileDto : exportFileDtos) {
|
|
|
|
|
+ programIdList.add(exportFileDto.getId());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(!programIdList.isEmpty()){
|
|
|
|
|
+ List<FinanceInvoiceDTO> financeInvoiceList = financeInvoiceService.getFinanceInvoiceByProgramId(programIdList);
|
|
|
|
|
+ //如果查出来的发票信息数量正常,则对其根据项目id进行分组,分组完再将其遍历处理存放到对应的数据中
|
|
|
|
|
+ Map<String, List<FinanceInvoiceDTO>> stringListMap = this.dataMessageDisposeByProgramId(financeInvoiceList);
|
|
|
|
|
+
|
|
|
|
|
+ for (ExportFileDto exportFileDto : exportFileDtos) {
|
|
|
|
|
+ List<FinanceInvoiceDTO> invoiceList = stringListMap.get(exportFileDto.getId());
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(invoiceList)) {
|
|
|
|
|
+ String invoiceNums = invoiceList.stream()
|
|
|
|
|
+ .map(FinanceInvoiceDTO::getNumber)
|
|
|
|
|
+ .filter(Objects::nonNull) // 💡 避免 null
|
|
|
|
|
+ .collect(Collectors.joining(","));
|
|
|
|
|
+
|
|
|
|
|
+ exportFileDto.setInvoiceNums(invoiceNums);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /*for (ExportFileDto exportFileDto : exportFileDtos) {
|
|
|
FinanceInvoiceDTO financeInvoiceDTO = new FinanceInvoiceDTO();
|
|
FinanceInvoiceDTO financeInvoiceDTO = new FinanceInvoiceDTO();
|
|
|
financeInvoiceDTO.setProgramName(exportFileDto.getName());
|
|
financeInvoiceDTO.setProgramName(exportFileDto.getName());
|
|
|
IPage<FinanceInvoiceDTO> invoiceList = financeInvoiceService.findList(invoicePage, financeInvoiceDTO);
|
|
IPage<FinanceInvoiceDTO> invoiceList = financeInvoiceService.findList(invoicePage, financeInvoiceDTO);
|
|
@@ -337,12 +366,38 @@ public class ProjectListController {
|
|
|
.collect(Collectors.joining(","));
|
|
.collect(Collectors.joining(","));
|
|
|
|
|
|
|
|
exportFileDto.setInvoiceNums(invoiceNums);
|
|
exportFileDto.setInvoiceNums(invoiceNums);
|
|
|
- }
|
|
|
|
|
|
|
+ }*/
|
|
|
|
|
|
|
|
EasyPoiUtil.exportExcel ( exportFileDtos, sheetName, sheetName, ExportFileDto.class, fileName, response );
|
|
EasyPoiUtil.exportExcel ( exportFileDtos, sheetName, sheetName, ExportFileDto.class, fileName, response );
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 分组(根据项目名称)
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param list
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ private Map<String, List<FinanceInvoiceDTO>> dataMessageDisposeByProgramId(List<FinanceInvoiceDTO> list) {
|
|
|
|
|
+ Map<String, List<FinanceInvoiceDTO>> infoMap = new HashMap<>();
|
|
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
|
|
+ // 分组
|
|
|
|
|
+ for (FinanceInvoiceDTO vo : list) {
|
|
|
|
|
+ List<FinanceInvoiceDTO> tempList = infoMap.get(vo.getProgramId());
|
|
|
|
|
+ /*如果取不到数据,那么直接new一个空的ArrayList**/
|
|
|
|
|
+ if (tempList == null) {
|
|
|
|
|
+ tempList = new ArrayList<>();
|
|
|
|
|
+ tempList.add(vo);
|
|
|
|
|
+ infoMap.put(vo.getProgramId(), tempList);
|
|
|
|
|
+ } else {
|
|
|
|
|
+ /*某个vo之前已经存放过了,则直接追加数据到原来的List里**/
|
|
|
|
|
+ tempList.add(vo);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return infoMap;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|