| @@ -844,7 +844,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| } | |||
| wordDocTableVo.setParams(rowsParams); | |||
| wordDocTableVo.setTableIndex(0); | |||
| wordDocTableVo.setRowIndex(1); | |||
| wordDocTableVo.setRowIndex(2); | |||
| String templatePath = "contract-word-template/settle.docx"; | |||
| String filepath = fmUploadDir; | |||
| @@ -12,8 +12,6 @@ import com.iformall.service.ExcelService; | |||
| import com.iformall.service.WxBillSettleService; | |||
| import com.iformall.service.WxFlowService; | |||
| import com.iformall.utils.DateUtils; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.checkerframework.checker.units.qual.A; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.stereotype.Service; | |||
| import org.springframework.transaction.annotation.Transactional; | |||
| @@ -3,14 +3,10 @@ package com.iformall.utils; | |||
| import cn.afterturn.easypoi.word.WordExportUtil; | |||
| import com.iformall.domain.vo.WordDocTableVo; | |||
| import org.apache.commons.io.FileUtils; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.apache.poi.xwpf.usermodel.*; | |||
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.util.Assert; | |||
| import org.springframework.util.CollectionUtils; | |||
| import javax.servlet.http.HttpServletRequest; | |||
| import javax.servlet.http.HttpServletResponse; | |||
| import java.io.File; | |||
| @@ -99,59 +95,54 @@ public class WordUtil { | |||
| public static void insertValueToTable(XWPFDocument xwpfDocument, WordDocTableVo wordDocTableVo) throws Exception { | |||
| List<XWPFTable> tableList = xwpfDocument.getTables(); | |||
| XWPFTable table = tableList.get(wordDocTableVo.getTableIndex()); | |||
| List<XWPFTableRow> rows = table.getRows(); | |||
| int rowIndex = wordDocTableVo.getRowIndex(); | |||
| XWPFTableRow tmpRow = rows.get(rowIndex); | |||
| addOrRemoveRow(table,wordDocTableVo.getParams().size(),wordDocTableVo.getRowIndex()); | |||
| int row = wordDocTableVo.getRowIndex(); | |||
| for (List<String> stringList : wordDocTableVo.getParams()) { | |||
| table.addRow(tmpRow,rowIndex); | |||
| rowIndex++; | |||
| //替换新行内容 | |||
| XWPFTableRow tableRow = rows.get(rowIndex); | |||
| row++; | |||
| for (int i = 0; i < stringList.size(); i++) { | |||
| tableRow.getTableCells().get(i).setText(stringList.get(i)); | |||
| table.getRow(row).getCell(i).setText(stringList.get(i)); | |||
| } | |||
| } | |||
| tmpRow.getTableCells().get(0).setText("aaaa"); | |||
| // //模板的那一行 | |||
| // XWPFTableRow tmpRow = rows.get(2); | |||
| // List<XWPFTableCell> tmpCells = null; | |||
| // List<XWPFTableCell> cells2 = null; | |||
| // XWPFTableCell tmpCell = null; | |||
| // tmpCells = tmpRow.getTableCells(); | |||
| // | |||
| // String cellText = null; | |||
| // String cellTextKey = null; | |||
| // Map<String,Object> totalMap = null; | |||
| // for (int i = 0, len = params.size(); i < len; i++) { | |||
| // Map<String,String> map = params.get(i); | |||
| // // 创建新的一行 | |||
| // XWPFTableRow row = table.createRow(); | |||
| // // 获取模板的行高 设置为新一行的行高 | |||
| // row.setHeight(tmpRow.getHeight()); | |||
| // cells = row.a(); | |||
| // for (int k = 0, klen = tmpCells.size(); k < klen; k++) { | |||
| // tmpCell = tmpCells.get(k); | |||
| // XWPFTableCell cell = cells.get(k); | |||
| // cellText = tmpCell.getText(); | |||
| // if (StringUtils.isNotBlank(cellText)) { | |||
| // //转换为mapkey对应的字段 | |||
| // cellTextKey = cellText.replace("$", "").replace("{", "").replace("}", ""); | |||
| // if (map.containsKey(cellTextKey)) { | |||
| // // 填充内容 并且复制模板行的属性 | |||
| // setCellText(tmpCell,cell,map.get(cellTextKey)); | |||
| // } | |||
| // } | |||
| // } | |||
| // | |||
| // } | |||
| // // 删除模版行 | |||
| // table.removeRow(2); | |||
| table.removeRow(wordDocTableVo.getRowIndex()); | |||
| } | |||
| /* | |||
| * @param table 对应表格 | |||
| * @param add 增加或删除行数 if add>0 增加行 add<0 删除行 | |||
| * @param fromRow 添加开始行位置(fromRow-1是模版行) | |||
| */ | |||
| public static void addOrRemoveRow(XWPFTable table, int add,int fromRow) { | |||
| XWPFTableRow row = table.getRow(fromRow-1); | |||
| if(add>0) { | |||
| while(add>0) { | |||
| copyPro(row,table.insertNewTableRow(fromRow)); | |||
| add--; | |||
| } | |||
| }else { | |||
| while(add<0) { | |||
| table.removeRow(fromRow-1); | |||
| add++; | |||
| } | |||
| } | |||
| } | |||
| public static void copyPro(XWPFTableRow sourceRow,XWPFTableRow targetRow) { | |||
| //复制行属性 | |||
| targetRow.getCtRow().setTrPr(sourceRow.getCtRow().getTrPr()); | |||
| List<XWPFTableCell> cellList = sourceRow.getTableCells(); | |||
| if(null==cellList) { | |||
| return ; | |||
| } | |||
| //添加列、复制列以及列中段落属性 | |||
| XWPFTableCell targetCell = null; | |||
| for(XWPFTableCell sourceCell:cellList) { | |||
| targetCell = targetRow.addNewTableCell(); | |||
| //列属性 | |||
| targetCell.getCTTc().setTcPr(sourceCell.getCTTc().getTcPr()); | |||
| //段落属性 | |||
| targetCell.getParagraphs().get(0).getCTP().setPPr(sourceCell.getParagraphs().get(0).getCTP().getPPr()); | |||
| } | |||
| } | |||
| } | |||
| @@ -56,24 +56,24 @@ | |||
| shopInfo,bill.comments,bill.price_detail,updatetime,bill.freeze | |||
| from ( | |||
| select id,merchant_id,shop_id,tenant_id,'租金' name,1 bill_type_value,'租金' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, | |||
| endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,'' | |||
| price_detail,updatetime,freeze | |||
| from wx_bill_rent where tenant_id=#{tenantId} and is_preview = 0 | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,'租赁押金' name,2 bill_type_value,'租赁押金' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, | |||
| endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime,freeze from wx_bill_rent_deposit where | |||
| tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,'物业费' name,3 bill_type_value,'物业费' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, | |||
| endtime,rent_shop_type,case when shop_info is null then '[]' else shop_info end shop_info,comments,'' | |||
| price_detail,updatetime,freeze | |||
| from wx_bill_property where tenant_id=#{tenantId} and is_preview = 0 | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,'物业押金' name,4 bill_type_value,'物业押金' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' | |||
| bill_type,need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime, | |||
| endtime,rent_shop_type,shop_info,NULL comments,'' price_detail,updatetime,freeze from wx_bill_property_deposit where | |||
| tenant_id=#{tenantId} | |||
| union all | |||
| @@ -85,13 +85,13 @@ | |||
| from wx_bill_daily where tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,name,7 bill_type_value,concat('其他费用-',name) as bill_type,0 as | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime, | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime, | |||
| rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime,freeze | |||
| from wx_bill_other where tenant_id=#{tenantId} | |||
| union all | |||
| select id,merchant_id,shop_id,tenant_id,comments as name,8 bill_type_value,concat('其他押金-',comments) as | |||
| bill_type,0 as | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,'' starttime,'' endtime, | |||
| need_pay,receive_pay,pay,owe,receive_date,pay_date,expired_day,status,starttime,endtime, | |||
| rent_shop_type,'[]' shop_info,comments,'' price_detail,updatetime,freeze | |||
| from wx_bill_other_deposit where tenant_id=#{tenantId} | |||
| ) bill | |||