|  | @@ -63,6 +63,7 @@ import com.ruoyi.warehouseBusiness.service.impl.BillnoSerialServiceImpl;
 | 
	
		
			
				|  |  |  import org.apache.commons.compress.utils.Lists;
 | 
	
		
			
				|  |  |  import org.apache.poi.hssf.usermodel.*;
 | 
	
		
			
				|  |  |  import org.apache.poi.ss.util.CellRangeAddress;
 | 
	
		
			
				|  |  | +import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  |  import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  |  import org.springframework.transaction.annotation.Transactional;
 | 
	
	
		
			
				|  | @@ -74,6 +75,7 @@ import java.io.OutputStream;
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  |  import java.util.*;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /**
 | 
	
		
			
				|  |  |   * 财务数据主Service业务层处理
 | 
	
	
		
			
				|  | @@ -2011,10 +2013,27 @@ public class TFeeServiceImpl implements ITFeeService {
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          feeDTO.setFeesId(ccf.getfId());
 | 
	
		
			
				|  |  |          List<FeeVO> feeVOList = tFeeMapper.selectFinancialLedgerDetails(feeDTO);
 | 
	
		
			
				|  |  | -        feeVOList.forEach(vo -> {
 | 
	
		
			
				|  |  | -            WarehouseTypeEnum storageType = WarehouseTypeEnum.fromTypeAndBusinessType(vo.getfBilltype(), "storageType");
 | 
	
		
			
				|  |  | -            vo.setfBilltype(storageType.getName());
 | 
	
		
			
				|  |  | -        });
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(feeVOList)) {
 | 
	
		
			
				|  |  | +            List<FeeVO> voList = new ArrayList<>();
 | 
	
		
			
				|  |  | +            Map<Long, List<FeeVO>> map = feeVOList.stream().collect(Collectors.groupingBy(FeeVO::getFSrcpid));
 | 
	
		
			
				|  |  | +            map.forEach((key, value) -> {
 | 
	
		
			
				|  |  | +                FeeVO vo = new FeeVO();
 | 
	
		
			
				|  |  | +                FeeVO feeVO = value.stream().findFirst().orElseThrow(() ->
 | 
	
		
			
				|  |  | +                        new WarehouseException("获取费用异常"));
 | 
	
		
			
				|  |  | +                BeanUtils.copyProperties(feeVO, vo);
 | 
	
		
			
				|  |  | +                // 仓储费
 | 
	
		
			
				|  |  | +                BigDecimal storageFee = value.stream().map(FeeVO::getStorageFee).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
 | 
	
		
			
				|  |  | +                // 其他费用
 | 
	
		
			
				|  |  | +                BigDecimal otherFee = value.stream().map(FeeVO::getOtherFee).reduce(BigDecimal::add).orElse(BigDecimal.ZERO);
 | 
	
		
			
				|  |  | +                WarehouseTypeEnum storageType = WarehouseTypeEnum.fromTypeAndBusinessType(vo.getfBilltype(), "storageType");
 | 
	
		
			
				|  |  | +                vo.setfBilltype(storageType.getName());
 | 
	
		
			
				|  |  | +                vo.setStorageFee(storageFee);
 | 
	
		
			
				|  |  | +                vo.setOtherFee(otherFee);
 | 
	
		
			
				|  |  | +                voList.add(vo);
 | 
	
		
			
				|  |  | +            });
 | 
	
		
			
				|  |  | +            return AjaxResult.success(voList);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |          return AjaxResult.success(feeVOList);
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |