|
@@ -482,22 +482,65 @@ public class ExpenseSheetServiceImpl extends ServiceImpl<ExpenseSheetMapper, Exp
|
|
|
if (!StringUtils.isEmpty(startDate) && !StringUtils.isEmpty(endDate)) {
|
|
|
queryWrapper.between("create_date", startDate, endDate);
|
|
|
}
|
|
|
- IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
|
|
|
- queryWrapper);
|
|
|
- List<ExpenseSheet> records = listIPager.getRecords();
|
|
|
- List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
|
|
|
- records.forEach(re->{
|
|
|
- Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
|
|
|
- if(first.isPresent()){
|
|
|
- re.setExpenseMainTypeName(first.get().getName());
|
|
|
+ if (sheet.getProjectId()!=null){
|
|
|
+ QueryWrapper<ExpenseItem> q = new QueryWrapper<ExpenseItem>();
|
|
|
+ Integer projectId = sheet.getProjectId();
|
|
|
+ q.eq("project_id",projectId);
|
|
|
+ List<ExpenseItem> expenseItems = expenseItemMapper.selectList(q);
|
|
|
+ if (expenseItems.size()==0){
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("records", new ArrayList<ExpenseSheet>());
|
|
|
+ map.put("total", 0);
|
|
|
+ httpRespMsg.data = map;
|
|
|
+ return httpRespMsg;
|
|
|
+ }else {
|
|
|
+ List<Integer> expenseIds = expenseItems.stream().map(ExpenseItem::getExpenseId).collect(Collectors.toList());
|
|
|
+ queryWrapper.in("id",expenseIds);
|
|
|
+ IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
|
|
|
+ queryWrapper);
|
|
|
+ List<ExpenseSheet> records = listIPager.getRecords();
|
|
|
+
|
|
|
+ List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
|
|
|
+ records.forEach(re->{
|
|
|
+ Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ re.setExpenseMainTypeName(first.get().getName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (records.size()>0){
|
|
|
+ records.forEach(r->{
|
|
|
+ List<ExpenseItem> items = expenseItems.stream()
|
|
|
+ .filter(e -> e.getExpenseId().equals(r.getId())&&e.getProjectId().equals(projectId)).collect(Collectors.toList());
|
|
|
+ double amount = items.stream().mapToDouble(ExpenseItem::getAmount).sum();
|
|
|
+ r.setTotalAmount(amount);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ Long total = listIPager.getTotal();
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("records", records);
|
|
|
+ map.put("total", total);
|
|
|
+ httpRespMsg.data = map;
|
|
|
+ return httpRespMsg;
|
|
|
}
|
|
|
- });
|
|
|
- Long total = listIPager.getTotal();
|
|
|
- Map<String, Object> map = new HashMap<>();
|
|
|
- map.put("records", records);
|
|
|
- map.put("total", total);
|
|
|
- httpRespMsg.data = map;
|
|
|
- return httpRespMsg;
|
|
|
+ }else {
|
|
|
+ IPage<ExpenseSheet> listIPager = expenseSheetMapper.selectPage(new Page<>(pageIndex, pageSize),
|
|
|
+ queryWrapper);
|
|
|
+ List<ExpenseSheet> records = listIPager.getRecords();
|
|
|
+
|
|
|
+ List<ExpenseMainType> expenseMainTypes = expenseMainTypeService.list(new QueryWrapper<ExpenseMainType>().eq("company_id", sheet.getCompanyId()).or().eq("is_system",1));
|
|
|
+ records.forEach(re->{
|
|
|
+ Optional<ExpenseMainType> first = expenseMainTypes.stream().filter(et -> et.getId().equals(re.getType())).findFirst();
|
|
|
+ if(first.isPresent()){
|
|
|
+ re.setExpenseMainTypeName(first.get().getName());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Long total = listIPager.getTotal();
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("records", records);
|
|
|
+ map.put("total", total);
|
|
|
+ httpRespMsg.data = map;
|
|
|
+ return httpRespMsg;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|