From c27bd6651e69cdee684a0b85338512de02a56350 Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期二, 10 八月 2021 08:20:50 +0800
Subject: [PATCH] 1、新增押金报表2、优化欠费催缴单细节3、新增数据库备份定时任务
---
service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportFeeManualCollectionSMOImpl.java | 137 +++++++++++++++++++++++++++++++++++----------
1 files changed, 106 insertions(+), 31 deletions(-)
diff --git a/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportFeeManualCollectionSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportFeeManualCollectionSMOImpl.java
old mode 100644
new mode 100755
index c47943f..5735f16
--- a/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportFeeManualCollectionSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportFeeManualCollectionSMOImpl.java
@@ -10,10 +10,12 @@
import com.java110.front.smo.assetExport.IExportFeeManualCollectionSMO;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.util.Assert;
+import com.java110.utils.util.Base64Convert;
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.Money2ChineseUtil;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
+import org.apache.poi.xssf.usermodel.XSSFClientAnchor;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -139,10 +141,12 @@
* @param workbook
*/
private void getRoomOweFees(IPageData pd, ComponentValidateResult result, Workbook workbook) {
-
+ Sheet sheet = workbook.createSheet("鍌即鍗�");
+ Drawing patriarch = sheet.createDrawingPatriarch();
String apiUrl = "";
ResponseEntity<String> responseEntity = null;
- apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feeApi/listAllRoomOweFees?communityId=" + result.getCommunityId();
+ JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+ apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feeApi/listAllRoomOweFees" + mapToUrlParam(reqJson);
responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
@@ -163,31 +167,57 @@
return;
}
- Sheet sheet = workbook.createSheet("鍌即鍗�");
+ //鏌ヨ鍌即鍗曚簩缁寸爜
+ JSONObject feePrint = null;
+ apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feePrintSpec/queryFeePrintSpec?page=1&row=1&specCd=1010&communityId=" + result.getCommunityId();
+ responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+ if (responseEntity.getStatusCode() == HttpStatus.OK) {
+ JSONObject feePrintResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+ if (feePrintResults.containsKey("data")) {
+ JSONArray feePrints = feePrintResults.getJSONArray("data");
+ if (feePrints != null && feePrints.size() > 0) {
+ feePrint = feePrints.getJSONObject(0);
+ }
+ }
+
+ }
+
+
int line = 0;
double totalPageHeight = 0;
for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
- Map info = generatorRoomOweFee(sheet, workbook, rooms.getJSONObject(roomIndex), line, totalPageHeight);
+ Map<String, Object> info = generatorRoomOweFee(sheet, workbook, rooms.getJSONObject(roomIndex), line, totalPageHeight, patriarch, feePrint);
line = Integer.parseInt(info.get("line").toString()) + 1;
totalPageHeight = Double.parseDouble(info.get("totalPageHeight").toString());
}
}
- private Map<String, Object> generatorRoomOweFee(Sheet sheet, Workbook workbook, JSONObject room, int line, double totalPageHeight) {
+ private Map<String, Object> generatorRoomOweFee(Sheet sheet, Workbook workbook, JSONObject room, int line, double totalPageHeight, Drawing patriarch, JSONObject feePrint) {
JSONArray fees = room.getJSONArray("fees");
+ String[] feePrintRemarks = null;
+ if (feePrint != null) {
+ feePrintRemarks = feePrint.getString("content").toLowerCase().replace("</br>", "").split("\n");
+ } else {
+ feePrintRemarks = new String[]{""};
+ }
+ int defaultRowHeight = 280;
//璁$畻褰撳墠鍗曞瓙鐨勯珮搴�
- int titleHeight = 200 * 5;
- int subTitleHeight = 200 * 5;
- int totalHeight = titleHeight + subTitleHeight + 256 * 5 + fees.size() * 256;
- double A4_lengthways_pageSize = 256 * 54;
+ int titleHeight = defaultRowHeight * 3;
+ int subTitleHeight = defaultRowHeight * 5;
+ int totalHeight = titleHeight + subTitleHeight + defaultRowHeight * 3 + fees.size() * defaultRowHeight;
+ //澶囨敞锛屽姞涓婃墦鍗伴厤缃唴瀹�
+ if (feePrintRemarks != null && feePrintRemarks.length > 0) {
+ totalHeight += (feePrintRemarks.length * defaultRowHeight);
+ }
+ double A4_lengthways_pageSize = defaultRowHeight * 57;//15960
//褰撳墠椤� 宸茬粡鍗犵敤鐨勯珮搴�
double curPageHeight = totalPageHeight % A4_lengthways_pageSize;
//褰撳墠椤电┖闂查珮搴�
double freePageHeight = A4_lengthways_pageSize - curPageHeight;
if (freePageHeight < totalHeight && curPageHeight != 0) {
- line += Math.ceil(freePageHeight / 256);
- totalPageHeight += Math.ceil(freePageHeight / 256);
+ line += Math.ceil(freePageHeight / defaultRowHeight);
+ totalPageHeight += freePageHeight;
}
totalPageHeight += totalHeight;
@@ -213,11 +243,16 @@
// 鏍囬
Row row = sheet.createRow(0 + line);
Cell cell0 = row.createCell(0);
- cell0.setCellValue("缂磋垂閫氱煡鍗�");
+ //cell0.setCellValue("缂磋垂閫氱煡鍗晅otalHeight:" + totalHeight + "-totalPageHeight:" + totalPageHeight + "-curPageHeight:" + curPageHeight + "-freePageHeight:" + freePageHeight + "-line:" + line);
+ if (feePrint != null) {
+ cell0.setCellValue(feePrint.getString("printName") + "缂磋垂閫氱煡鍗�");
+ } else {
+ cell0.setCellValue("缂磋垂閫氱煡鍗�");
+ }
//鏍囬璁剧疆瀛椾綋
Font font = workbook.createFont();
font.setFontName("榛戜綋");
- font.setFontHeightInPoints((short) 28);
+ font.setFontHeightInPoints((short) 26);
CellStyle titleCellStyle = workbook.createCellStyle();
titleCellStyle.setFont(font);
titleCellStyle.setAlignment(HorizontalAlignment.CENTER);
@@ -229,35 +264,63 @@
sheet.addMergedRegion(region);
- //绗竴琛�
+ //瀛愭爣棰�
+ if (feePrint != null) {
+ XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, (short) 0, 1 + line, (short) 1, 1 + line + 1);
+ anchor.setAnchorType(ClientAnchor.AnchorType.MOVE_AND_RESIZE);//璁剧疆鍥剧墖闅忓崟鍏冪Щ鍔ㄨ皟鏁村ぇ灏�
+ try {
+ String qrImg = feePrint.getString("qrImg").replace("data:image/webp;base64,", "")
+ .replace("data:image/png;base64,", "")
+ .replace("data:image/jpeg;base64,", "");
+ patriarch.createPicture(anchor, workbook.addPicture(Base64Convert.base64ToByte(qrImg), XSSFWorkbook.PICTURE_TYPE_JPEG));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ CellStyle subTitleCellStyle = workbook.createCellStyle();
+ subTitleCellStyle.setAlignment(HorizontalAlignment.CENTER);
+ subTitleCellStyle.setVerticalAlignment(VerticalAlignment.BOTTOM);
row = sheet.createRow(1 + line);
- row.createCell(0).setCellValue("鏀惰垂浜岀淮鐮�");
- row.createCell(1).setCellValue("鎴垮彿锛�" + room.getString("floorNum")
+ Cell cell1 = row.createCell(1);
+ if (fees != null && fees.size() > 0) {
+ cell1.setCellValue("涓氫富锛�" + fees.getJSONObject(0).getString("ownerName"));
+ } else {
+ cell1.setCellValue("涓氫富锛氭棤");
+ }
+ cell1.setCellStyle(subTitleCellStyle);
+
+ Cell cell2 = row.createCell(2);
+ cell2.setCellValue("鎴垮彿锛�" + room.getString("floorNum")
+ "-" + room.getString("unitNum")
+ "-" + room.getString("roomNum"));
+ cell2.setCellStyle(subTitleCellStyle);
- row.createCell(2).setCellValue("");
row.createCell(3).setCellValue("");
row.createCell(4).setCellValue("");
- row.createCell(5).setCellValue(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
- row.setHeight((short) (subTitleHeight));
+ Cell cell5 = row.createCell(5);
+ cell5.setCellValue(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_B));
+ cell5.setCellStyle(subTitleCellStyle);
CellStyle rowCellStyle = workbook.createCellStyle();
rowCellStyle.setVerticalAlignment(VerticalAlignment.BOTTOM);
row.setRowStyle(rowCellStyle);
//璁剧疆琛ㄥご涔嬩笂
- region = new CellRangeAddress(1 + line, 1 + line, 1, 2);
+ region = new CellRangeAddress(1 + line, 1 + line, 2, 3);
sheet.addMergedRegion(region);
+ region = new CellRangeAddress(1 + line, 1 + line, 5, 6);
+ sheet.addMergedRegion(region);
+ //瀛愭爣棰橀珮搴�
+ row.setHeight((short) (subTitleHeight));
row = sheet.createRow(2 + line);
cell0 = row.createCell(0);
cell0.setCellValue("鏀惰垂鍚嶇О");
cell0.setCellStyle(cellStyle);
- Cell cell1 = row.createCell(1);
+ cell1 = row.createCell(1);
cell1.setCellValue("鏀惰垂鏍囧噯");
cell1.setCellStyle(cellStyle);
- Cell cell2 = row.createCell(2);
+ cell2 = row.createCell(2);
cell2.setCellValue("鏁伴噺/闈㈢Н");
cell2.setCellStyle(cellStyle);
Cell cell3 = row.createCell(3);
@@ -266,12 +329,13 @@
Cell cell4 = row.createCell(4);
cell4.setCellValue("搴旂即閲戦锛堝厓锛�");
cell4.setCellStyle(cellStyle);
- Cell cell5 = row.createCell(5);
+ cell5 = row.createCell(5);
cell5.setCellValue("杩濈害閲戯紙鍏冿級");
cell5.setCellStyle(cellStyle);
Cell cell6 = row.createCell(6);
cell6.setCellValue("澶囨敞");
cell6.setCellStyle(cellStyle);
+ row.setHeight((short) (defaultRowHeight));
BigDecimal totalPrice = new BigDecimal(0);
@@ -293,7 +357,11 @@
cell2.setCellValue(room.getString("builtUpArea"));
cell2.setCellStyle(cellStyle);
cell3 = row.createCell(3);
- cell3.setCellValue(startTime + "鑷�" + endTime);
+ if (feeObj.containsKey("curDegrees")) {
+ cell3.setCellValue(startTime + "鑷�" + endTime + " " + feeObj.getString("preDegrees") + "鑷�" + feeObj.getString("curDegrees"));
+ } else {
+ cell3.setCellValue(startTime + "鑷�" + endTime);
+ }
cell3.setCellStyle(cellStyle);
cell4 = row.createCell(4);
cell4.setCellValue(feeObj.getString("feePrice"));
@@ -304,6 +372,7 @@
cell6 = row.createCell(6);
cell6.setCellValue("");
cell6.setCellStyle(cellStyle);
+ row.setHeight((short) (defaultRowHeight));
totalPrice = totalPrice.add(new BigDecimal(feeObj.getString("feePrice")));
}
@@ -330,19 +399,25 @@
cell6 = row.createCell(6);
cell6.setCellValue("");
cell6.setCellStyle(cellStyle);
+ row.setHeight((short) (defaultRowHeight));
+
//鍚堣 鍚堝苟
region = new CellRangeAddress(line + fees.size() + 3, line + fees.size() + 3, 1, 3);
sheet.addMergedRegion(region);
-
- row = sheet.createRow(line + fees.size() + 4);
- row.createCell(0).setCellValue("1銆佽鏀跺埌閫氱煡鍗�5鏃ュ唴鍒扮墿涓氬鎴栧井淇℃敮浠�");
- row = sheet.createRow(line + fees.size() + 5);
- row.createCell(0).setCellValue("2銆侀�炬湡鏈即锛屽皢鎸夎瀹氭敹鍙栬繚绾﹂噾锛屼細缁欐偍鐓ф垚涓嶅繀瑕佺殑鎹熷け");
-
+ if (feePrintRemarks != null && feePrintRemarks.length > 0) {
+ for (int remarkIndex = 0; remarkIndex < feePrintRemarks.length; remarkIndex++) {
+ row = sheet.createRow(line + fees.size() + 4 + remarkIndex);
+ row.createCell(0).setCellValue(feePrintRemarks[remarkIndex]);
+ row.setHeight((short) (defaultRowHeight));
+ }
+ }
+ row = sheet.createRow(line + fees.size() + 4 + feePrintRemarks.length);
+ row.createCell(0).setCellValue("");
+ row.setHeight((short) (defaultRowHeight));
Map info = new HashMap();
- info.put("line", line + fees.size() + 6);
+ info.put("line", line + fees.size() + 4 + feePrintRemarks.length);
info.put("totalPageHeight", totalPageHeight);
return info;
}
--
Gitblit v1.8.0