|  | @@ -38,6 +38,7 @@ import java.util.Arrays;
 | 
	
		
			
				|  |  |  import java.util.Date;
 | 
	
		
			
				|  |  |  import java.util.List;
 | 
	
		
			
				|  |  |  import java.util.Objects;
 | 
	
		
			
				|  |  | +import java.util.stream.Collectors;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  @RequestMapping("studentRepair")
 | 
	
		
			
				|  |  |  @Api(tags = "维修服务")
 | 
	
	
		
			
				|  | @@ -119,16 +120,25 @@ public class StudentRepairController extends BaseController {
 | 
	
		
			
				|  |  |              throw new BizException("没有可导出的记录");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |          for (StudentRepair row : pageList.getRows()) {
 | 
	
		
			
				|  |  | -            if (row.getGoodsJson() == null || row.getGoodsJson().equals("[]")) continue;
 | 
	
		
			
				|  |  | +            if (row.getGoodsJson() == null || row.getGoodsJson().equals("[]")) {
 | 
	
		
			
				|  |  | +                row.setAmount(row.getAmount().subtract(row.getExemptionAmount()));
 | 
	
		
			
				|  |  | +                row.setGoodsJson("");
 | 
	
		
			
				|  |  | +                continue;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              List<RepairGoodsDto> repairGoodsDtos = JSONObject.parseArray(row.getGoodsJson(), RepairGoodsDto.class);
 | 
	
		
			
				|  |  |              BigDecimal repairGoodsAmount = repairGoodsDtos.stream().map(RepairGoodsDto::getGroupPurchasePrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 | 
	
		
			
				|  |  | -            row.setRepairGoodsAmount(repairGoodsAmount);
 | 
	
		
			
				|  |  | +            BigDecimal goodsRouteAmount = (row.getAmount().add(repairGoodsAmount).subtract(row.getExemptionAmount())).multiply(repairGoodsAmount).divide(row.getAmount().add(repairGoodsAmount), 2, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +            BigDecimal repairRouteAmount = row.getAmount().add(repairGoodsAmount).subtract(row.getExemptionAmount()).subtract(goodsRouteAmount);
 | 
	
		
			
				|  |  | +            String goodiesStr = repairGoodsDtos.stream().map(RepairGoodsDto::getName).collect(Collectors.joining(","));
 | 
	
		
			
				|  |  | +            row.setGoodsJson(goodiesStr);
 | 
	
		
			
				|  |  | +            row.setRepairGoodsAmount(goodsRouteAmount);
 | 
	
		
			
				|  |  | +            row.setAmount(repairRouteAmount);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          OutputStream outputStream = response.getOutputStream();
 | 
	
		
			
				|  |  |          try {
 | 
	
		
			
				|  |  | -            String[] header = {"分部", "维修单号", "学生姓名", "学生编号", "维修技师", "维修类型", "维修单名称", "维修服务费", "商品金额", "特权减免金额", "送修日期", "完成日期", "状态"};
 | 
	
		
			
				|  |  | -            String[] body = {"organName", "transNo", "studentName", "studentId", "employeeName", "type == 0 ? '线下' : '线上'", "repairName", "amount", "repairGoodsAmount", "exemptionAmount", "createTime", "finishTime", "repairStatus == 0 ? '维修中' : '已完成'"};
 | 
	
		
			
				|  |  | +            String[] header = {"维修单号", "分部", "学生姓名", "学生编号", "维修技师", "维修类型", "维修单名称", "送修日期", "完成日期", "状态", "维修服务费", "商品价格", "销售商品"};
 | 
	
		
			
				|  |  | +            String[] body = {"transNo", "organName", "studentName", "studentId", "employeeName", "type == 0 ? '线下' : '线上'", "repairName", "createTime", "finishTime", "repairStatus == 0 ? '维修中' : '已完成'", "amount", "repairGoodsAmount", "goodsJson"};
 | 
	
		
			
				|  |  |              HSSFWorkbook workbook = POIUtil.exportExcel(header, body, pageList.getRows());
 | 
	
		
			
				|  |  |              response.setContentType("application/octet-stream");
 | 
	
		
			
				|  |  |              response.setHeader("Content-Disposition", "attachment;filename=repairList-" + DateUtil.getDate(new Date()) + ".xls");
 |