diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java index 3eef7c166..0bd9cd4cd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxBillAllServiceImpl.java @@ -1,6 +1,5 @@ package com.iformall.service.impl; -import com.alibaba.fastjson.JSONObject; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.iformall.common.ErrorCode; @@ -17,7 +16,6 @@ import com.iformall.service.*; import com.iformall.utils.Constant; import com.iformall.utils.DateUtils; import org.apache.commons.io.FileUtils; -import org.apache.commons.lang3.StringUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; @@ -31,8 +29,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.math.BigDecimal; -import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @author gongbiao @@ -209,8 +207,10 @@ public class WxBillAllServiceImpl implements WxBillAllService { //设置查询参数-当前月 wxBillAll.setMonth(month); //查询 - List> billList = wxBillAllMapper.list(wxBillAll); - + //List> billList = wxBillAllMapper.list(wxBillAll); + Map>> billMapList = wxBillAllMapper.list(wxBillAll).parallelStream().collect(Collectors.groupingBy(x -> { + return x.get("merchantId"); + })); XSSFWorkbook workbook; String filepath = Constant.fileDirectory; File savefile = new File(filepath); @@ -223,54 +223,68 @@ public class WxBillAllServiceImpl implements WxBillAllService { try { File file = new File(filepath); workbook = new XSSFWorkbook(); - XSSFSheet sheet = workbook.createSheet("账单"); - Row row = sheet.createRow(0); - Cell shopNumberCell = row.createCell(0); - Cell merchantNameCell = row.createCell(1); - Cell billNameCell = row.createCell(2); - Cell needPayCell = row.createCell(3); - Cell receivePayCell = row.createCell(4); - Cell oweCell = row.createCell(5); - Cell receiveDateCell = row.createCell(6); - Cell expiredDayCell = row.createCell(7); - Cell statusCell = row.createCell(8); - - shopNumberCell.setCellValue("商铺号"); - merchantNameCell.setCellValue("商户名称"); - billNameCell.setCellValue("费用类型"); - needPayCell.setCellValue("实际应收金额(元)"); - receivePayCell.setCellValue("实收金额(元)"); - oweCell.setCellValue("欠缴金额(元)"); - receiveDateCell.setCellValue("缴款截止日期"); - expiredDayCell.setCellValue("过期时间"); - statusCell.setCellValue("账单状态"); - - for (int i = 0,size=billList.size(); i < size; i++) { - row = sheet.createRow(i + 1); - shopNumberCell = row.createCell(0); - merchantNameCell = row.createCell(1); - billNameCell = row.createCell(2); - needPayCell = row.createCell(3); - receivePayCell = row.createCell(4); - oweCell = row.createCell(5); - receiveDateCell = row.createCell(6); - expiredDayCell = row.createCell(7); - statusCell = row.createCell(8); - Map billMap = billList.get(i); - logger.info(billMap.toString()); - shopNumberCell.setCellValue(billMap.get("shopNumber").toString()); - merchantNameCell.setCellValue(billMap.get("merchantName").toString()); - billNameCell.setCellValue(billMap.get("name").toString()); - BigDecimal needPay = new BigDecimal(billMap.get("needPay").toString()).divide(new BigDecimal(100)); - needPayCell.setCellValue(needPay.toString()); - BigDecimal receivePay = new BigDecimal(billMap.get("receivePay").toString()).divide(new BigDecimal(100)); - receivePayCell.setCellValue(receivePay.toString()); - BigDecimal owe = new BigDecimal(billMap.get("owe").toString()).divide(new BigDecimal(100)); - oweCell.setCellValue(owe.toString()); - String receiveDate = DateUtils.date2String((Date) billMap.get("receiveDate"), "yyyy-MM-dd"); - receiveDateCell.setCellValue(receiveDate); - expiredDayCell.setCellValue(billMap.get("expiredDay").toString()); - statusCell.setCellValue(EnumBillDailyStatus.getEnum((Integer) billMap.get("status")).getMessage()); + int count=1; + Set>>> entries = billMapList.entrySet(); + for(Map.Entry>> entry:entries){ + List> billList = entry.getValue(); + Map billInfo = billList.get(0); + String merchantName = billInfo.get("merchantName").toString(); + XSSFSheet sheet = workbook.createSheet(merchantName+"-"+count++); + Row row = sheet.createRow(0); + Cell shopNumberCell = row.createCell(0); + Cell merchantNameCell = row.createCell(1); + Cell billNameCell = row.createCell(2); + Cell needPayCell = row.createCell(3); + Cell receivePayCell = row.createCell(4); + Cell oweCell = row.createCell(5); + Cell receiveDateCell = row.createCell(6); + Cell expiredDayCell = row.createCell(7); + Cell statusCell = row.createCell(8); + + shopNumberCell.setCellValue("商铺号"); + merchantNameCell.setCellValue("商户名称"); + billNameCell.setCellValue("费用类型"); + needPayCell.setCellValue("实际应收金额(元)"); + receivePayCell.setCellValue("实收金额(元)"); + oweCell.setCellValue("欠缴金额(元)"); + receiveDateCell.setCellValue("缴款截止日期"); + expiredDayCell.setCellValue("过期时间"); + statusCell.setCellValue("账单状态"); + + for (int i = 0,size=billList.size(); i < size; i++) { + row = sheet.createRow(i + 1); + shopNumberCell = row.createCell(0); + merchantNameCell = row.createCell(1); + billNameCell = row.createCell(2); + needPayCell = row.createCell(3); + receivePayCell = row.createCell(4); + oweCell = row.createCell(5); + receiveDateCell = row.createCell(6); + expiredDayCell = row.createCell(7); + statusCell = row.createCell(8); + Map billMap = billList.get(i); + logger.info(billMap.toString()); + shopNumberCell.setCellValue(billMap.get("shopNumber").toString()); + merchantNameCell.setCellValue(billMap.get("merchantName").toString()); + billNameCell.setCellValue(billMap.get("name").toString()); + BigDecimal needPay = new BigDecimal(billMap.get("needPay").toString()).divide(new BigDecimal(100)); + needPayCell.setCellValue(needPay.toString()); + BigDecimal receivePay = new BigDecimal(billMap.get("receivePay").toString()).divide(new BigDecimal(100)); + receivePayCell.setCellValue(receivePay.toString()); + BigDecimal owe = new BigDecimal(billMap.get("owe").toString()).divide(new BigDecimal(100)); + oweCell.setCellValue(owe.toString()); + String receiveDate = DateUtils.date2String((Date) billMap.get("receiveDate"), "yyyy-MM-dd"); + receiveDateCell.setCellValue(receiveDate); + expiredDayCell.setCellValue(billMap.get("expiredDay").toString()); + statusCell.setCellValue(EnumBillDailyStatus.getEnum((Integer) billMap.get("status")).getMessage()); + } + row = sheet.createRow(billList.size()+1); + Cell managerInfoCell = row.createCell(0); + Cell managerCell = row.createCell(1); + Cell managerPhoneCell = row.createCell(2); + managerInfoCell.setCellValue("负责人信息:"); + managerCell.setCellValue(billInfo.get("manager")==null?"":billInfo.get("manager").toString()); + managerPhoneCell.setCellValue(billInfo.get("managerPhone")==null?"":billInfo.get("managerPhone").toString()); } diff --git a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml index a347f731d..e05eb80e5 100644 --- a/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxBillAllMapper.xml @@ -5,7 +5,7 @@