From 65763d38cf9b6b8067a293d9c99297efea0de3e3 Mon Sep 17 00:00:00 2001
From: 928255095 <928255095@qq.com>
Date: 星期二, 07 九月 2021 22:04:15 +0800
Subject: [PATCH] Merge branch 'xinghong-dev' into 'master'

---
 service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportReportFeeSMOImpl.java | 1572 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 1,514 insertions(+), 58 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportReportFeeSMOImpl.java b/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportReportFeeSMOImpl.java
old mode 100644
new mode 100755
index d7e088d..5384b2b
--- a/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportReportFeeSMOImpl.java
+++ b/service-front/src/main/java/com/java110/front/smo/assetExport/impl/ExportReportFeeSMOImpl.java
@@ -5,11 +5,14 @@
 import com.alibaba.fastjson.parser.Feature;
 import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
+import com.java110.dto.fee.FeeConfigDto;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.front.smo.assetExport.IExportReportFeeSMO;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -27,6 +30,9 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @ClassName AssetImportSmoImpl
@@ -38,11 +44,39 @@
  **/
 @Service("exportReportFeeSMOImpl")
 public class ExportReportFeeSMOImpl extends BaseComponentSMO implements IExportReportFeeSMO {
+
     private final static Logger logger = LoggerFactory.getLogger(ExportReportFeeSMOImpl.class);
+
+    //鍩�
+    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
+
+    //閿�(瀵煎嚭鏈�澶ч檺鍒舵潯鏁�)
+    public static final String EXPORT_NUMBER = "EXPORT_NUMBER";
 
     public static final String REPORT_FEE_SUMMARY = "reportFeeSummary";
     public static final String REPORT_FLOOR_UNIT_FEE_SUMMARY = "reportFloorUnitFeeSummary";
     public static final String REPORT_FEE_BREAKDOWN = "reportFeeBreakdown";
+    public static final String REPORT_FEE_DETAIL = "reportFeeDetail";
+    public static final String REPORT_OWE_FEE_DETAIL = "reportOweFeeDetail";
+    public static final String REPORT_PAY_FEE_DETAIL = "reportPayFeeDetail";
+    public static final String REPORT_YEAR_COLLECTION = "reportYearCollection";
+    public static final String REPORT_LIST_OWE_FEE = "listOweFee";
+    public static final String REPORT_REPAIR_DETAIL = "reportRepairDetail";
+    public static final String REPORT_PAY_FEE_MANAGE = "reportPayFeeManage";
+    public static final String REPORT_QUESTION_ANSWER_DETAIL = "reportQuestionAnswerDetail";
+    public static final String REPORT_PRE_PAYMENT_FEE = "reportPrePaymentFee";
+    public static final String REPORT_DEAD_LINE_FEE = "reportDeadlineFee";
+    public static final String REPORT_NO_FEE_ROOM = "reportNoFeeRoom";
+    public static final String REPORT_PURCHASE_APPLY_DETAIL = "purchaseApplyDetail";
+    public static final String REPORT_ALLOCATION_STORE_HOUSE = "allocationStorehouse";
+    public static final String REPORT_ALLOCATION_STORE_HOUSE_DETAIL = "allocationStorehouseDetail";
+    public static final String REPORT_RESOURCE_STORE_MANAGE = "resourceStoreManage";
+    public static final String REPORT_PURCHASE_APPLY_MANAGE = "purchaseApplyManage";
+    public static final String REPORT_ITEM_OUT_MANAGE = "itemOutManage";
+    public static final String ALLOCATION_USER_STORE_HOUSE_MANAGE = "allocationUserStorehouseManage";
+    public static final String RESOURCE_STORE_USE_RECORD_MANAGE = "resourceStoreUseRecordManage";
+    public static final String RESOURCE_STAFF_FEE_MANAGE = "staffFeeManage";
+    public static final String REPORT_PAY_FEE_DEPOSIT = "reportPayFeeDeposit";
 
     @Autowired
     private RestTemplate restTemplate;
@@ -56,6 +90,7 @@
         Assert.hasKeyAndValue(JSONObject.parseObject(pd.getReqData()), "pagePath", "璇锋眰涓湭鍖呭惈椤甸潰");
 
         Workbook workbook = null;  //宸ヤ綔绨�
+        String userId = "";
         //宸ヤ綔琛�
         workbook = new XSSFWorkbook();
         JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
@@ -71,9 +106,70 @@
             case REPORT_FEE_BREAKDOWN:
                 reportFeeBreakdown(pd, result, workbook);
                 break;
+            case REPORT_FEE_DETAIL:
+                reportFeeDetail(pd, result, workbook);
+                break;
+            case REPORT_OWE_FEE_DETAIL:
+                reportOweFeeDetail(pd, result, workbook);
+                break;
+            case REPORT_PAY_FEE_DETAIL:
+                reportPayFeeDetail(pd, result, workbook);
+                break;
+            case REPORT_YEAR_COLLECTION:
+                reportYearCollection(pd, result, workbook);
+                break;
+            case REPORT_LIST_OWE_FEE:
+                reportListOweFee(pd, result, workbook);
+                break;
+            case REPORT_REPAIR_DETAIL:
+                reportRepairDetail(pd, result, workbook);
+                break;
+            case REPORT_PAY_FEE_MANAGE:
+                reportPayFeeManage(pd, result, workbook);
+                break;
+            case REPORT_QUESTION_ANSWER_DETAIL:
+                reportQuestionAnswerDetail(pd, result, workbook);
+                break;
+            case REPORT_PRE_PAYMENT_FEE:
+                reportPrePaymentFee(pd, result, workbook);
+                break;
+            case REPORT_DEAD_LINE_FEE:
+                reportDeadlineFee(pd, result, workbook);
+                break;
+            case REPORT_NO_FEE_ROOM:
+                reportNoFeeRoom(pd, result, workbook);
+                break;
+            case REPORT_PURCHASE_APPLY_DETAIL:
+                purchaseApplyDetailManage(pd, result, workbook);
+                break;
+            case REPORT_ALLOCATION_STORE_HOUSE:
+                allocationStorehouse(pd, result, workbook);
+                break;
+            case REPORT_ALLOCATION_STORE_HOUSE_DETAIL:
+                allocationStorehouseDetail(pd, result, workbook);
+                break;
+            case REPORT_RESOURCE_STORE_MANAGE:
+                resourceStoreManage(pd, result, workbook);
+                break;
+            case REPORT_PURCHASE_APPLY_MANAGE:
+                purchaseApplyManage(pd, result, workbook);
+                break;
+            case REPORT_ITEM_OUT_MANAGE:
+                itemOutManage(pd, result, workbook);
+                break;
+            case ALLOCATION_USER_STORE_HOUSE_MANAGE:
+                allocationUserStorehouseManage(pd, result, workbook);
+                break;
+            case RESOURCE_STORE_USE_RECORD_MANAGE:
+                resourceStoreUseRecordManage(pd, result, workbook);
+                break;
+            case RESOURCE_STAFF_FEE_MANAGE:
+                staffFeeManage(pd, result, workbook);
+                break;
+            case REPORT_PAY_FEE_DEPOSIT:
+                reportPayFeeDeposit(pd, result, workbook);
+                break;
         }
-
-
         ByteArrayOutputStream os = new ByteArrayOutputStream();
         MultiValueMap headers = new HttpHeaders();
         headers.add("content-type", "application/octet-stream;charset=UTF-8");
@@ -97,53 +193,1414 @@
         return new ResponseEntity<Object>(context, headers, HttpStatus.OK);
     }
 
-    private void reportFeeBreakdown(IPageData pd, ComponentValidateResult result, Workbook workbook) {
-        Sheet sheet = workbook.createSheet("璐圭敤鍒嗛」琛�");
-        Row row = sheet.createRow(0);
-        row.createCell(0).setCellValue("璐圭敤缂栧彿");
-        row.createCell(1).setCellValue("璐圭敤椤�");
-        row.createCell(2).setCellValue("璐圭敤寮�濮嬫椂闂�");
-        row.createCell(3).setCellValue("搴旀敹閲戦");
-        row.createCell(4).setCellValue("瀹炴敹閲戦");
-        row.createCell(5).setCellValue("娆犺垂閲戦");
-
-
+    private void reportListOweFee(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        String configIds = reqJson.getString("configIds");
         //鏌ヨ妤兼爧淇℃伅
-        JSONArray rooms = this.getReportFeeBreakdown(pd, result);
-        JSONObject dataObj = null;
-        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
-            row = sheet.createRow(roomIndex + 1);
-            dataObj = rooms.getJSONObject(roomIndex);
+        JSONArray oweFees = this.getReportListOweFees(pd, result);
+        if (oweFees == null) {
+            return;
+        }
+        //鑾峰彇璐圭敤椤�
+        List<FeeConfigDto> feeConfigDtos = getFeeConfigs(oweFees);
+        Sheet sheet = workbook.createSheet("娆犺垂娓呭崟");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鏀惰垂瀵硅薄");
+        row.createCell(1).setCellValue("涓氫富鍚嶇О");
+        row.createCell(2).setCellValue("寮�濮嬫椂闂�");
+        row.createCell(3).setCellValue("缁撴潫鏃堕棿");
+        if (!StringUtil.isEmpty(configIds)) {
+            for (int feeConfigIndex = 0; feeConfigIndex < feeConfigDtos.size(); feeConfigIndex++) {
+                row.createCell(4 + feeConfigIndex).setCellValue(feeConfigDtos.get(feeConfigIndex).getFeeName());
+            }
+            row.createCell(4 + feeConfigDtos.size()).setCellValue("鍚堣");
+        } else {
+            row.createCell(4).setCellValue("鍚堣");
+        }
 
-            row.createCell(0).setCellValue(dataObj.getString("feeYear") + "骞�" + dataObj.getString("feeMonth") + "鏈�");
-            row.createCell(1).setCellValue(dataObj.getString("receivableAmount"));
-            row.createCell(2).setCellValue(dataObj.getString("floorNum") + "鍙锋ゼ");
-            row.createCell(3).setCellValue(dataObj.getString("unitNum") + "鍗曞厓");
-            row.createCell(4).setCellValue(dataObj.getString("receivedAmount"));
-            row.createCell(5).setCellValue(dataObj.getString("oweAmount"));
+
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < oweFees.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = oweFees.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("payerObjName"));
+            row.createCell(1).setCellValue(dataObj.getString("ownerName"));
+            row.createCell(2).setCellValue(dataObj.getString("endTime"));
+            row.createCell(3).setCellValue(dataObj.getString("deadlineTime"));
+            if (!StringUtil.isEmpty(configIds)) {
+                for (int feeConfigIndex = 0; feeConfigIndex < feeConfigDtos.size(); feeConfigIndex++) {
+                    row.createCell(4 + feeConfigIndex).setCellValue(getFeeConfigAmount(feeConfigDtos.get(feeConfigIndex), dataObj));
+                }
+                row.createCell(4 + feeConfigDtos.size()).setCellValue(getAllFeeOweAmount(feeConfigDtos, dataObj));
+            } else {
+                row.createCell(4).setCellValue(getAllFeeOweAmount(feeConfigDtos, dataObj));
+            }
 
         }
     }
 
-    private JSONArray getReportFeeBreakdown(IPageData pd, ComponentValidateResult result) {
+    /**
+     * _getAllFeeOweAmount: function (_fee) {
+     * let _feeConfigNames = $that.listOweFeeInfo.feeConfigNames;
+     * if (_feeConfigNames.length < 1) {
+     * return _fee.amountOwed;
+     * }
+     * <p>
+     * let _amountOwed = 0.0;
+     * let _items = _fee.items;
+     * _feeConfigNames.forEach(_feeItem =>{
+     * _items.forEach(_item=>{
+     * if(_feeItem.configId == _item.configId){
+     * _amountOwed += parseFloat(_item.amountOwed);
+     * }
+     * })
+     * })
+     * return _amountOwed;
+     * }
+     *
+     * @param dataObj
+     * @return
+     */
+    private double getAllFeeOweAmount(List<FeeConfigDto> feeConfigDtos, JSONObject dataObj) {
+        if (feeConfigDtos == null || feeConfigDtos.size() < 1) {
+            return dataObj.getDouble("amountOwed");
+        }
+        JSONArray items = dataObj.getJSONArray("items");
+        if (items == null || items.size() < 1) {
+            return dataObj.getDouble("amountOwed");
+        }
 
+        BigDecimal oweAmount = new BigDecimal(0);
+        for (FeeConfigDto feeConfigDto : feeConfigDtos) {
+            for (int itemIndex = 0; itemIndex < items.size(); itemIndex++) {
+                if (feeConfigDto.getConfigId().equals(items.getJSONObject(itemIndex).getString("configId"))) {
+                    oweAmount = oweAmount.add(new BigDecimal(items.getJSONObject(itemIndex).getDouble("amountOwed")));
+                }
+            }
+        }
+
+        return oweAmount.doubleValue();
+    }
+
+    private double getFeeConfigAmount(FeeConfigDto feeConfigDto, JSONObject dataObj) {
+        JSONArray items = dataObj.getJSONArray("items");
+        double oweAmount = 0;
+
+        if (items == null || items.size() < 1) {
+            return oweAmount;
+        }
+
+        for (int itemIndex = 0; itemIndex < items.size(); itemIndex++) {
+            if (feeConfigDto.getConfigId().equals(items.getJSONObject(itemIndex).getString("configId"))) {
+                oweAmount = items.getJSONObject(itemIndex).getDouble("amountOwed");
+                break;
+            }
+        }
+        return oweAmount;
+    }
+
+
+    private List<FeeConfigDto> getFeeConfigs(JSONArray oweFees) {
+        List<FeeConfigDto> feeConfigDtos = new ArrayList<>();
+        FeeConfigDto feeConfigDto = null;
+        for (int oweFeeIndex = 0; oweFeeIndex < oweFees.size(); oweFeeIndex++) {
+            JSONArray items = oweFees.getJSONObject(oweFeeIndex).getJSONArray("items");
+            for (int itemIndex = 0; itemIndex < items.size(); itemIndex++) {
+                if (existsFeeConfig(feeConfigDtos, items.getJSONObject(itemIndex))) {
+                    continue;
+                }
+                feeConfigDto = new FeeConfigDto();
+                feeConfigDto.setConfigId(items.getJSONObject(itemIndex).getString("configId"));
+                feeConfigDto.setFeeName(items.getJSONObject(itemIndex).getString("configName"));
+                feeConfigDtos.add(feeConfigDto);
+            }
+        }
+
+        return feeConfigDtos;
+    }
+
+    private boolean existsFeeConfig(List<FeeConfigDto> feeConfigDtos, JSONObject oweFee) {
+        if (feeConfigDtos.size() < 1) {
+            return false;
+        }
+        for (FeeConfigDto feeConfigDto : feeConfigDtos) {
+            if (feeConfigDto.getConfigId().equals(oweFee.getString("configId"))) {
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+
+    private void reportPayFeeDetail(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("缂磋垂鏄庣粏琛�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璁㈠崟鍙�");
+        row.createCell(1).setCellValue("鎴垮彿");
+        row.createCell(2).setCellValue("涓氫富");
+        row.createCell(3).setCellValue("璐圭敤椤�");
+        row.createCell(4).setCellValue("璐圭敤绫诲瀷");
+        row.createCell(5).setCellValue("璐圭敤鐘舵��");
+        row.createCell(6).setCellValue("鏀粯鏂瑰紡");
+        row.createCell(7).setCellValue("璐圭敤寮�濮嬫椂闂�");
+        row.createCell(8).setCellValue("璐圭敤缁撴潫鏃堕棿");
+        row.createCell(9).setCellValue("缂磋垂鏃堕棿");
+        row.createCell(10).setCellValue("搴旀敹閲戦");
+        row.createCell(11).setCellValue("瀹炴敹閲戦");
+        row.createCell(12).setCellValue("浼樻儬閲戦");
+        row.createCell(13).setCellValue("鍑忓厤閲戦");
+        row.createCell(14).setCellValue("婊炵撼閲�");
+        row.createCell(15).setCellValue("绌虹疆鎴挎墦鎶橀噾棰�");
+        row.createCell(16).setCellValue("绌虹疆鎴垮噺鍏嶉噾棰�");
+//        row.createCell(14).setCellValue("涓氫富");
+        //鏌ヨ妤兼爧淇℃伅
+        JSONArray rooms = this.getReportPayFeeDetail(pd, result);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = rooms.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("oId"));
+            row.createCell(1).setCellValue(dataObj.getString("objName"));
+            row.createCell(2).setCellValue(dataObj.getString("ownerName"));
+            row.createCell(3).setCellValue(dataObj.getString("feeName"));
+            row.createCell(4).setCellValue(dataObj.getString("feeTypeCdName"));
+            row.createCell(5).setCellValue(dataObj.getString("stateName"));
+            row.createCell(6).setCellValue(dataObj.getString("primeRate"));
+            row.createCell(7).setCellValue(dataObj.getString("startTime"));
+            row.createCell(8).setCellValue(dataObj.getString("endTime"));
+            row.createCell(9).setCellValue(dataObj.getString("createTime"));
+            row.createCell(10).setCellValue(dataObj.getDouble("receivableAmount"));
+            row.createCell(11).setCellValue(dataObj.getDouble("receivedAmount"));
+            row.createCell(12).setCellValue(dataObj.getDouble("preferentialAmount"));
+            row.createCell(13).setCellValue(dataObj.getDouble("deductionAmount"));
+            row.createCell(14).setCellValue(dataObj.getDouble("lateFee"));
+            row.createCell(15).setCellValue(dataObj.getDouble("vacantHousingDiscount"));
+            row.createCell(16).setCellValue(dataObj.getDouble("vacantHousingReduction"));
+        }
+    }
+
+    private void reportRepairDetail(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鎶ヤ慨姹囨�昏〃");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鍛樺伐ID");
+        row.createCell(1).setCellValue("鍛樺伐濮撳悕");
+        row.createCell(2).setCellValue("澶勭悊涓潯鏁�");
+        row.createCell(3).setCellValue("娲惧崟鏉℃暟");
+        row.createCell(4).setCellValue("杞崟鏉℃暟");
+        row.createCell(5).setCellValue("閫�鍗曟潯鏁�");
+        row.createCell(6).setCellValue("宸插洖璁挎潯鏁�");
+        row.createCell(7).setCellValue("宸插畬缁撴潯鏁�");
+        row.createCell(8).setCellValue("鍛樺伐璇勫垎");
+
+        //鏌ヨ鎶ヤ慨淇℃伅
+        JSONArray repairs = this.getReportRepairDetail(pd, result);
+        if (repairs == null || repairs.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < repairs.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = repairs.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("staffId"));
+            row.createCell(1).setCellValue(dataObj.getString("staffName"));
+            row.createCell(2).setCellValue(dataObj.getString("dealAmount"));
+            row.createCell(3).setCellValue(dataObj.getString("dispatchAmount"));
+            row.createCell(4).setCellValue(dataObj.getString("transferOrderAmount"));
+            row.createCell(5).setCellValue(dataObj.getString("chargebackAmount"));
+            row.createCell(6).setCellValue(dataObj.getString("returnAmount"));
+            row.createCell(7).setCellValue(dataObj.getString("statementAmount"));
+            row.createCell(8).setCellValue(dataObj.getString("score"));
+        }
+    }
+
+    private void reportPayFeeManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("缂磋垂娓呭崟");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璐圭敤绫诲瀷");
+        row.createCell(1).setCellValue("璐圭敤椤圭洰");
+        row.createCell(2).setCellValue("浠樿垂鏂�");
+        row.createCell(3).setCellValue("缂磋垂ID");
+        row.createCell(4).setCellValue("鏀粯鏂瑰紡");
+        row.createCell(5).setCellValue("浠樿垂鍛ㄦ湡(鏈�)");
+        row.createCell(6).setCellValue("搴斾粯閲戦(鍏�)");
+        row.createCell(7).setCellValue("瀹炰粯閲戦(鍏�)");
+        row.createCell(8).setCellValue("鎿嶄綔鍛樺伐");
+        row.createCell(9).setCellValue("缂磋垂鏃堕棿");
+
+        //鏌ヨ缂磋垂淇℃伅
+        JSONArray payFees = this.getReportPayFeeManage(pd, result);
+        if (payFees == null || payFees.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < payFees.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = payFees.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("feeTypeCdName"));
+            row.createCell(1).setCellValue(dataObj.getString("feeName"));
+            row.createCell(2).setCellValue(dataObj.getString("payObjName"));
+            row.createCell(3).setCellValue(dataObj.getString("detailId"));
+            row.createCell(4).setCellValue(dataObj.getString("primeRate"));
+            row.createCell(5).setCellValue(dataObj.getString("cycles"));
+            row.createCell(6).setCellValue(dataObj.getString("receivableAmount"));
+            row.createCell(7).setCellValue(dataObj.getString("receivedAmount"));
+            row.createCell(8).setCellValue(dataObj.getString("userName"));
+            row.createCell(9).setCellValue(dataObj.getString("createTime"));
+        }
+    }
+
+    private void reportQuestionAnswerDetail(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("闂嵎鏄庣粏琛�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("闂嵎浜�");
+        row.createCell(1).setCellValue("闂嵎绫诲瀷");
+        row.createCell(2).setCellValue("闂嵎鍚嶇О");
+        row.createCell(3).setCellValue("闂嵎棰樼洰");
+        row.createCell(4).setCellValue("绛旀");
+        row.createCell(5).setCellValue("鏃堕棿");
+
+        JSONArray questionAnswers = this.getReportQuestionAnswerDetail(pd, result);
+        if (questionAnswers == null || questionAnswers.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < questionAnswers.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = questionAnswers.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("userName"));
+            row.createCell(1).setCellValue(dataObj.getString("qaTypeName"));
+            row.createCell(2).setCellValue(dataObj.getString("qaName"));
+            row.createCell(3).setCellValue(dataObj.getString("qaTitle"));
+            row.createCell(4).setCellValue(dataObj.getString("qaValue"));
+            row.createCell(5).setCellValue(dataObj.getString("createTime"));
+        }
+    }
+
+    private void reportPrePaymentFee(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("棰勪氦璐规彁閱掕〃");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("搴忓彿");
+        row.createCell(1).setCellValue("璐圭敤椤�");
+        row.createCell(2).setCellValue("璐圭敤寮�濮嬫椂闂�");
+        row.createCell(3).setCellValue("璺濈璐圭敤寮�濮嬫椂闂达紙澶╋級");
+
+        JSONArray prePayFees = this.getReportPrePaymentFee(pd, result);
+        if (prePayFees == null || prePayFees.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < prePayFees.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = prePayFees.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("objName"));
+            row.createCell(1).setCellValue(dataObj.getString("feeName"));
+            row.createCell(2).setCellValue(dataObj.getString("endTime"));
+            row.createCell(3).setCellValue(dataObj.getString("oweDay"));
+        }
+    }
+
+    private void reportDeadlineFee(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("璐圭敤鍒版湡鎻愰啋琛�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("搴忓彿");
+        row.createCell(1).setCellValue("璐圭敤椤�");
+        row.createCell(2).setCellValue("璐圭敤缁撴潫鏃堕棿");
+        row.createCell(3).setCellValue("璺濈璐圭敤缁撴潫鏃堕棿锛堝ぉ锛�");
+
+        JSONArray deadlineFees = this.getReportDeadlineFee(pd, result);
+        if (deadlineFees == null || deadlineFees.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < deadlineFees.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = deadlineFees.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("objName"));
+            row.createCell(1).setCellValue(dataObj.getString("feeName"));
+            row.createCell(2).setCellValue(dataObj.getString("deadlineTime"));
+            row.createCell(3).setCellValue(dataObj.getString("oweDay"));
+        }
+    }
+
+    private void reportNoFeeRoom(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鏈敹璐规埧灞嬭〃");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("妤兼爧");
+        row.createCell(1).setCellValue("鍗曞厓");
+        row.createCell(2).setCellValue("鎴垮眿");
+        row.createCell(3).setCellValue("涓氫富鍚嶇О");
+        row.createCell(4).setCellValue("涓氫富鐢佃瘽");
+
+        JSONArray noFeeRooms = this.getReportNoFeeRoom(pd, result);
+        if (noFeeRooms == null || noFeeRooms.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < noFeeRooms.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = noFeeRooms.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("floorNum"));
+            row.createCell(1).setCellValue(dataObj.getString("unitNum"));
+            row.createCell(2).setCellValue(dataObj.getString("roomNum"));
+            row.createCell(3).setCellValue(dataObj.getString("ownerName"));
+            row.createCell(4).setCellValue(dataObj.getString("link"));
+        }
+    }
+
+    private void purchaseApplyDetailManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鍑哄叆搴撴槑缁�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鐢宠鍗曞彿");
+        row.createCell(1).setCellValue("鐢宠浜�");
+        row.createCell(2).setCellValue("浣跨敤浜�");
+        row.createCell(3).setCellValue("鍑哄叆搴撶被鍨�");
+        row.createCell(4).setCellValue("鐗╁搧绫诲瀷");
+        row.createCell(5).setCellValue("鐗╁搧鍚嶇О");
+        row.createCell(6).setCellValue("鐗╁搧瑙勬牸");
+        row.createCell(7).setCellValue("鐗╁搧渚涘簲鍟�");
+        row.createCell(8).setCellValue("鐗╁搧浠撳簱");
+        row.createCell(9).setCellValue("閲囪喘/鍑哄簱鏂瑰紡");
+        row.createCell(10).setCellValue("鐢宠鏁伴噺");
+        row.createCell(11).setCellValue("閲囪喘/鍑哄簱鏁伴噺");
+        row.createCell(12).setCellValue("閲囪喘浠锋牸");
+        row.createCell(13).setCellValue("閲囪喘鎬讳环");
+        row.createCell(14).setCellValue("鐢宠澶囨敞");
+        row.createCell(15).setCellValue("鐘舵��");
+        row.createCell(16).setCellValue("鍒涘缓鏃堕棿");
+
+        JSONArray purchaseApplyDetails = this.getPurchaseApplyDetail(pd, result);
+        if (purchaseApplyDetails == null || purchaseApplyDetails.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < purchaseApplyDetails.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = purchaseApplyDetails.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("applyOrderId"));
+            row.createCell(1).setCellValue(dataObj.getString("userName"));
+            row.createCell(2).setCellValue(dataObj.getString("endUserName"));
+            row.createCell(3).setCellValue(dataObj.getString("resOrderTypeName"));
+            row.createCell(4).setCellValue(dataObj.getString("rstName"));
+            row.createCell(5).setCellValue(dataObj.getString("resName"));
+            row.createCell(6).setCellValue(dataObj.getString("specName"));
+            row.createCell(7).setCellValue(dataObj.getString("supplierName"));
+            row.createCell(8).setCellValue(dataObj.getString("shName"));
+            row.createCell(9).setCellValue(dataObj.getString("warehousingWayName") + dataObj.getString("resOrderTypeName"));
+            row.createCell(10).setCellValue(dataObj.getString("quantity") + dataObj.getString("unitCodeName"));
+            row.createCell(11).setCellValue(dataObj.getString("purchaseQuantity") + dataObj.getString("unitCodeName"));
+            row.createCell(12).setCellValue(dataObj.getString("price"));
+            if (!StringUtil.isEmpty(dataObj.getString("resOrderType")) && dataObj.getString("resOrderType").equals("10000") &&
+                    !StringUtil.isEmpty(dataObj.getString("purchaseQuantity")) && !StringUtil.isEmpty(dataObj.getString("price"))) { //鐘舵�佹槸鍏ュ簱
+                //鑾峰彇閲囪喘鏁伴噺
+                double purchaseQuantity = Double.parseDouble(dataObj.getString("purchaseQuantity"));
+                //鑾峰彇閲囪喘鍗曚环
+                double price = Double.parseDouble(dataObj.getString("price"));
+                //鑾峰彇閲囪喘鎬讳环
+                double totalPrice = purchaseQuantity * price;
+                row.createCell(13).setCellValue(String.valueOf(totalPrice));
+            } else {
+                row.createCell(13).setCellValue("--");
+            }
+            row.createCell(14).setCellValue(dataObj.getString("remark"));
+            row.createCell(15).setCellValue(dataObj.getString("stateName"));
+            row.createCell(16).setCellValue(dataObj.getString("createTime"));
+        }
+    }
+
+    private void allocationStorehouse(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("璋冩嫧璁板綍");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鐢宠鍗曞彿");
+        row.createCell(1).setCellValue("璋冩嫧/閫�杩樻�绘暟閲�");
+        row.createCell(2).setCellValue("鐢宠浜篒D");
+        row.createCell(3).setCellValue("鐢宠浜�");
+        row.createCell(4).setCellValue("鐘舵��");
+        row.createCell(5).setCellValue("绫诲瀷");
+        row.createCell(6).setCellValue("鏃堕棿");
+
+        JSONArray allocationStorehouses = this.getAllocationStorehouse(pd, result);
+        if (allocationStorehouses == null || allocationStorehouses.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < allocationStorehouses.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = allocationStorehouses.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("applyId"));
+            row.createCell(1).setCellValue(dataObj.getString("applyCount"));
+            row.createCell(2).setCellValue(dataObj.getString("startUserId"));
+            row.createCell(3).setCellValue(dataObj.getString("startUserName"));
+            row.createCell(4).setCellValue(dataObj.getString("stateName"));
+            row.createCell(5).setCellValue(dataObj.getString("applyTypeName"));
+            row.createCell(6).setCellValue(dataObj.getString("createTime"));
+        }
+    }
+
+    private void allocationStorehouseDetail(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("璋冩嫧鏄庣粏");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璋冩嫧鐢宠ID");
+        row.createCell(1).setCellValue("鐗╁搧ID");
+        row.createCell(2).setCellValue("鐗╁搧绫诲瀷");
+        row.createCell(3).setCellValue("鐗╁搧鍚嶇О");
+        row.createCell(4).setCellValue("鐗╁搧瑙勬牸");
+        row.createCell(5).setCellValue("琚皟浠撳簱鍘熷簱瀛�");
+        row.createCell(6).setCellValue("璋冩嫧鏁伴噺");
+        row.createCell(7).setCellValue("琚皟浠撳簱");
+        row.createCell(8).setCellValue("鐩爣浠撳簱");
+        row.createCell(9).setCellValue("鐢宠浜篒D");
+        row.createCell(10).setCellValue("鐢宠浜�");
+        row.createCell(11).setCellValue("璋冩嫧璇存槑");
+        row.createCell(12).setCellValue("鐘舵��");
+        row.createCell(13).setCellValue("鏃堕棿");
+
+        JSONArray allocationStorehouses = this.getAllocationStorehouseDetail(pd, result);
+        if (allocationStorehouses == null || allocationStorehouses.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < allocationStorehouses.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = allocationStorehouses.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("applyId"));
+            row.createCell(1).setCellValue(dataObj.getString("resId"));
+            row.createCell(2).setCellValue(dataObj.getString("rstName"));
+            row.createCell(3).setCellValue(dataObj.getString("resName"));
+            row.createCell(4).setCellValue(dataObj.getString("specName"));
+            row.createCell(5).setCellValue(dataObj.getString("originalStock") + dataObj.getString("unitCodeName"));
+            row.createCell(6).setCellValue(dataObj.getString("stock") + dataObj.getString("unitCodeName"));
+            if (!StringUtil.isEmpty(dataObj.getString("applyType")) && dataObj.getString("applyType").equals("20000")) {  //杩旇繕
+                row.createCell(7).setCellValue(dataObj.getString("startUserName"));
+            } else {
+                row.createCell(7).setCellValue(dataObj.getString("shaName"));
+            }
+            row.createCell(8).setCellValue(dataObj.getString("shzName"));
+            row.createCell(9).setCellValue(dataObj.getString("startUserId"));
+            row.createCell(10).setCellValue(dataObj.getString("startUserName"));
+            row.createCell(11).setCellValue(dataObj.getString("remark"));
+            row.createCell(12).setCellValue(dataObj.getString("stateName"));
+            row.createCell(13).setCellValue(dataObj.getString("createTime"));
+        }
+    }
+
+    private void resourceStoreManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鐗╁搧淇℃伅");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鐗╁搧ID");
+        row.createCell(1).setCellValue("浠撳簱鍚嶇О");
+        row.createCell(2).setCellValue("鐗╁搧绫诲瀷");
+        row.createCell(3).setCellValue("鐗╁搧鍚嶇О");
+        row.createCell(4).setCellValue("鐗╁搧瑙勬牸");
+        row.createCell(5).setCellValue("鐗╁搧缂栫爜");
+        row.createCell(6).setCellValue("閲囪喘鍙傝�冧环鏍�");
+        row.createCell(7).setCellValue("鏀惰垂鏍囧噯");
+        row.createCell(8).setCellValue("鐗╁搧搴撳瓨");
+        row.createCell(9).setCellValue("鏈�灏忚閲�");
+        row.createCell(10).setCellValue("鏈�灏忚閲忔�绘暟");
+        row.createCell(11).setCellValue("鐗╁搧鍧囦环");
+        row.createCell(12).setCellValue("鐗╁搧鎬讳环");
+        JSONArray resourceStores = this.getResourceStore(pd, result);
+        if (resourceStores == null || resourceStores.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < resourceStores.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = resourceStores.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("resId"));
+            row.createCell(1).setCellValue(dataObj.getString("shName"));
+            row.createCell(2).setCellValue(dataObj.getString("rstName"));
+            row.createCell(3).setCellValue(dataObj.getString("resName"));
+            row.createCell(4).setCellValue(dataObj.getString("rssName"));
+            row.createCell(5).setCellValue(dataObj.getString("resCode"));
+            row.createCell(6).setCellValue(dataObj.getString("price"));
+            //鑾峰彇鏈�浣庝环
+            String outLowPrice = dataObj.getString("outLowPrice");
+            //鑾峰彇鏈�楂樹环
+            String outHighPrice = dataObj.getString("outHighPrice");
+            if (!StringUtil.isEmpty(outLowPrice) && !StringUtil.isEmpty(outHighPrice) && outLowPrice.equals(outHighPrice)) {
+                row.createCell(7).setCellValue(outLowPrice);
+            } else if (!StringUtil.isEmpty(outLowPrice) && !StringUtil.isEmpty(outHighPrice) && !outLowPrice.equals(outHighPrice)) {
+                row.createCell(7).setCellValue(dataObj.getString("outLowPrice") + "-" + dataObj.getString("outHighPrice"));
+            } else {
+                row.createCell(7).setCellValue("--");
+            }
+            row.createCell(8).setCellValue(dataObj.getString("stock") + dataObj.getString("unitCodeName"));
+            row.createCell(9).setCellValue(dataObj.getString("stock") + dataObj.getString("unitCodeName") + "=" + dataObj.getString("miniUnitStock") + dataObj.getString("miniUnitCodeName"));
+            row.createCell(10).setCellValue(dataObj.getString("miniStock") + dataObj.getString("miniUnitCodeName"));
+            row.createCell(11).setCellValue(dataObj.getString("averagePrice"));
+            if (!StringUtil.isEmpty(dataObj.getString("stock")) && !StringUtil.isEmpty(dataObj.getString("averagePrice"))) {
+                //鑾峰彇鐗╁搧搴撳瓨鏁伴噺
+                double stock = Double.parseDouble(dataObj.getString("stock"));
+                BigDecimal x1 = new BigDecimal(stock);
+                //鑾峰彇鐗╁搧鍧囦环
+                double averagePrice = Double.parseDouble(dataObj.getString("averagePrice"));
+                BigDecimal y1 = new BigDecimal(averagePrice);
+                //璁$畻鐗╁搧鎬讳环
+                BigDecimal price = x1.multiply(y1);
+                double totalPrice = price.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
+                row.createCell(12).setCellValue(String.valueOf(totalPrice));
+            } else {
+                row.createCell(12).setCellValue("0.0");
+            }
+        }
+    }
+
+    private void purchaseApplyManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("閲囪喘鐢宠");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鐢宠鍗曞彿");
+        row.createCell(1).setCellValue("鐢宠浜�");
+        row.createCell(2).setCellValue("浣跨敤浜�");
+        row.createCell(3).setCellValue("鎿嶄綔浜�");
+        row.createCell(4).setCellValue("鐗╁搧");
+        row.createCell(5).setCellValue("鐢宠鏃堕棿");
+        row.createCell(6).setCellValue("閲囪喘鏂瑰紡");
+        row.createCell(7).setCellValue("瀹℃壒鐘舵��");
+        JSONArray purchaseApplys = this.getPurchaseApply(pd, result);
+        if (purchaseApplys == null || purchaseApplys.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < purchaseApplys.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = purchaseApplys.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("applyOrderId"));
+            row.createCell(1).setCellValue(dataObj.getString("userName"));
+            row.createCell(2).setCellValue(dataObj.getString("endUserName"));
+            row.createCell(3).setCellValue(dataObj.getString("createUserName"));
+            row.createCell(4).setCellValue(dataObj.getString("resourceNames"));
+            row.createCell(5).setCellValue(dataObj.getString("createTime"));
+            //鑾峰彇鍏ュ簱鏂瑰紡
+            String warehousingWay = dataObj.getString("warehousingWay");
+            if (!StringUtil.isEmpty(warehousingWay) && warehousingWay.equals("10000")) {
+                row.createCell(6).setCellValue("鐩存帴鍏ュ簱");
+            } else {
+                row.createCell(6).setCellValue("閲囪喘鐢宠鍏ュ簱");
+            }
+            row.createCell(7).setCellValue(dataObj.getString("stateName"));
+        }
+    }
+
+    private void itemOutManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鐗╁搧棰嗙敤");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鍗曞彿");
+        row.createCell(1).setCellValue("鐗╁搧");
+        row.createCell(2).setCellValue("鐢宠浜�");
+        row.createCell(3).setCellValue("鎿嶄綔浜�");
+        row.createCell(4).setCellValue("鐢宠鏃堕棿");
+        row.createCell(5).setCellValue("鐘舵��");
+        row.createCell(6).setCellValue("棰嗙敤鏂瑰紡");
+        JSONArray itemOutManages = this.getItemOutManage(pd, result);
+        if (itemOutManages == null || itemOutManages.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < itemOutManages.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = itemOutManages.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("applyOrderId"));
+            row.createCell(1).setCellValue(dataObj.getString("resourceNames"));
+            row.createCell(2).setCellValue(dataObj.getString("userName"));
+            row.createCell(3).setCellValue(dataObj.getString("createUserName"));
+            row.createCell(4).setCellValue(dataObj.getString("createTime"));
+            row.createCell(5).setCellValue(dataObj.getString("stateName"));
+            //鑾峰彇鍑哄簱鏂瑰紡
+            String warehousingWay = dataObj.getString("warehousingWay");
+            if (!StringUtil.isEmpty(warehousingWay) && warehousingWay.equals("10000")) {
+                row.createCell(6).setCellValue("鐩存帴鍑哄簱");
+            } else if (!StringUtil.isEmpty(warehousingWay) && warehousingWay.equals("20000")) {
+                row.createCell(6).setCellValue("瀹℃牳鍑哄簱");
+            } else {
+                row.createCell(6).setCellValue("--");
+            }
+        }
+    }
+
+    private void allocationUserStorehouseManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("杞禒璁板綍");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("杞禒璁板綍缂栧彿");
+        row.createCell(1).setCellValue("鐗╁搧璧勬簮ID");
+        row.createCell(2).setCellValue("鐗╁搧绫诲瀷");
+        row.createCell(3).setCellValue("鐗╁搧鍚嶇О");
+        row.createCell(4).setCellValue("鐗╁搧瑙勬牸");
+        row.createCell(5).setCellValue("杞禒瀵硅薄ID");
+        row.createCell(6).setCellValue("杞禒瀵硅薄");
+        row.createCell(7).setCellValue("鍘熸湁搴撳瓨");
+        row.createCell(8).setCellValue("杞禒鏁伴噺");
+        row.createCell(9).setCellValue("鍒涘缓鏃堕棿");
+        row.createCell(10).setCellValue("澶囨敞");
+        JSONArray allocationUserStorehouses = this.getAllocationUserStorehouseManage(pd, result);
+        if (allocationUserStorehouses == null || allocationUserStorehouses.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < allocationUserStorehouses.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = allocationUserStorehouses.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("ausId"));
+            row.createCell(1).setCellValue(dataObj.getString("resId"));
+            row.createCell(2).setCellValue(dataObj.getString("rstName"));
+            row.createCell(3).setCellValue(dataObj.getString("resName"));
+            row.createCell(4).setCellValue(dataObj.getString("specName"));
+            row.createCell(5).setCellValue(dataObj.getString("acceptUserId"));
+            row.createCell(6).setCellValue(dataObj.getString("acceptUserName"));
+            row.createCell(7).setCellValue(dataObj.getString("stock") + dataObj.getString("unitCodeName"));
+            row.createCell(8).setCellValue(dataObj.getString("giveQuantity") + dataObj.getString("miniUnitCodeName"));
+            row.createCell(9).setCellValue(dataObj.getString("createTime"));
+            row.createCell(10).setCellValue(dataObj.getString("remark"));
+        }
+    }
+
+    private void resourceStoreUseRecordManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鐗╁搧浣跨敤璁板綍");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鐗╁搧浣跨敤璁板綍缂栧彿");
+        row.createCell(1).setCellValue("缁翠慨宸ュ崟缂栧彿");
+        row.createCell(2).setCellValue("鐗╁搧璧勬簮缂栧彿");
+        row.createCell(3).setCellValue("鐗╁搧绫诲瀷");
+        row.createCell(4).setCellValue("鐗╁搧鍚嶇О");
+        row.createCell(5).setCellValue("鐗╁搧瑙勬牸");
+        row.createCell(6).setCellValue("鐗╁搧浣跨敤鏁伴噺");
+        row.createCell(7).setCellValue("鐗╁搧浠锋牸");
+        row.createCell(8).setCellValue("浣跨敤浜篒D");
+        row.createCell(9).setCellValue("浣跨敤浜�");
+        row.createCell(10).setCellValue("鍒涘缓鏃堕棿");
+        row.createCell(11).setCellValue("澶囨敞");
+        JSONArray resourceStoreUseRecords = this.getResourceStoreUseRecordManage(pd, result);
+        if (resourceStoreUseRecords == null || resourceStoreUseRecords.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < resourceStoreUseRecords.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = resourceStoreUseRecords.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("rsurId"));
+            row.createCell(1).setCellValue(dataObj.getString("repairId"));
+            row.createCell(2).setCellValue(dataObj.getString("resId"));
+            row.createCell(3).setCellValue(dataObj.getString("rstName"));
+            row.createCell(4).setCellValue(dataObj.getString("resourceStoreName"));
+            row.createCell(5).setCellValue(dataObj.getString("specName"));
+            row.createCell(6).setCellValue(dataObj.getString("quantity") + dataObj.getString("miniUnitCodeName"));
+            row.createCell(7).setCellValue(dataObj.getString("unitPrice"));
+            row.createCell(8).setCellValue(dataObj.getString("createUserId"));
+            row.createCell(9).setCellValue(dataObj.getString("createUserName"));
+            row.createCell(10).setCellValue(dataObj.getString("createTime"));
+            row.createCell(11).setCellValue(dataObj.getString("remark"));
+        }
+    }
+
+    private void staffFeeManage(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鍛樺伐鏀惰垂");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("鍛樺伐缂栫爜");
+        row.createCell(1).setCellValue("鍛樺伐鍚嶇О");
+        row.createCell(2).setCellValue("搴旀敹閲戦");
+        row.createCell(3).setCellValue("瀹炴敹閲戦");
+        JSONArray staffFeeManages = this.getStaffFeeManage(pd, result);
+        if (staffFeeManages == null || staffFeeManages.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < staffFeeManages.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = staffFeeManages.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("userId"));
+            row.createCell(1).setCellValue(dataObj.getString("userName"));
+            row.createCell(2).setCellValue(dataObj.getString("receivableAmount"));
+            row.createCell(3).setCellValue(dataObj.getString("receivedAmount"));
+        }
+    }
+
+    //鎶奸噾鎶ヨ〃瀵煎嚭
+    private void reportPayFeeDeposit(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("鎶奸噾鎶ヨ〃");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璐圭敤ID");
+        row.createCell(1).setCellValue("鎴垮彿");
+        row.createCell(2).setCellValue("涓氫富");
+        row.createCell(3).setCellValue("璐圭敤绫诲瀷");
+        row.createCell(4).setCellValue("璐圭敤椤�");
+        row.createCell(5).setCellValue("璐圭敤寮�濮嬫椂闂�");
+        row.createCell(6).setCellValue("璐圭敤缁撴潫鏃堕棿");
+        row.createCell(7).setCellValue("鍒涘缓鏃堕棿");
+        row.createCell(8).setCellValue("浠樿垂瀵硅薄绫诲瀷");
+        row.createCell(9).setCellValue("浠樻鏂笽D");
+        row.createCell(10).setCellValue("搴旀敹閲戦");
+        row.createCell(11).setCellValue("鐘舵��");
+        row.createCell(12).setCellValue("閫�璐圭姸鎬�");
+        JSONArray reportPayFeeDeposits = this.getReportPayFeeDeposit(pd, result);
+        if (reportPayFeeDeposits == null || reportPayFeeDeposits.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < reportPayFeeDeposits.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = reportPayFeeDeposits.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("feeId"));
+            row.createCell(1).setCellValue(dataObj.getString("objName"));
+            row.createCell(2).setCellValue(dataObj.getString("ownerName"));
+            row.createCell(3).setCellValue(dataObj.getString("feeTypeCdName"));
+            row.createCell(4).setCellValue(dataObj.getString("feeName"));
+            row.createCell(5).setCellValue(dataObj.getString("startTime"));
+            row.createCell(6).setCellValue(dataObj.getString("deadlineTime"));
+            row.createCell(7).setCellValue(dataObj.getString("createTime"));
+            row.createCell(8).setCellValue(dataObj.getString("payerObjTypeName"));
+            row.createCell(9).setCellValue(dataObj.getString("payerObjId"));
+            row.createCell(10).setCellValue(dataObj.getString("additionalAmount"));
+            row.createCell(11).setCellValue(dataObj.getString("stateName"));
+            if (dataObj.getString("state").equals("2009001")) {
+                row.createCell(12).setCellValue(dataObj.getString("detailStateName"));
+            } else {
+                row.createCell(12).setCellValue("鏈即璐�");
+            }
+        }
+    }
+
+
+    private void reportYearCollection(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("璐圭敤鍙拌处");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("濮撳悕");
+        row.createCell(1).setCellValue("鎴垮彿");
+        row.createCell(2).setCellValue("鑱旂郴鐢佃瘽");
+        row.createCell(3).setCellValue("闈㈢Н");
+        row.createCell(4).setCellValue("璐圭敤鍚嶇О");
+        row.createCell(5).setCellValue("搴旀敹閲戦");
+
+        //鏌ヨ妤兼爧淇℃伅
+        JSONArray rooms = this.getReportYearCollection(pd, result);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
+        JSONArray reportFeeYearCollectionDetailDtos = rooms.getJSONObject(0).getJSONArray("reportFeeYearCollectionDetailDtos");
+
+        for (int detailIndex = 0; detailIndex < reportFeeYearCollectionDetailDtos.size(); detailIndex++) {
+            row.createCell(6 + detailIndex).setCellValue(reportFeeYearCollectionDetailDtos.getJSONObject(detailIndex).getString("collectionYear") + "骞�");
+        }
+
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = rooms.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getString("ownerName"));
+            row.createCell(1).setCellValue(dataObj.getString("objName"));
+            row.createCell(2).setCellValue(dataObj.getString("ownerLink"));
+            row.createCell(3).setCellValue(dataObj.getString("builtUpArea"));
+            row.createCell(4).setCellValue(dataObj.getString("feeName"));
+            row.createCell(5).setCellValue(dataObj.getString("receivableAmount"));
+
+            reportFeeYearCollectionDetailDtos = dataObj.getJSONArray("reportFeeYearCollectionDetailDtos");
+            for (int detailIndex = 0; detailIndex < reportFeeYearCollectionDetailDtos.size(); detailIndex++) {
+                row.createCell(6 + detailIndex).setCellValue(reportFeeYearCollectionDetailDtos.getJSONObject(detailIndex).getString("receivedAmount"));
+            }
+        }
+    }
+
+    private JSONArray getReportListOweFees(IPageData pd, ComponentValidateResult result) {
         String apiUrl = "";
         ResponseEntity<String> responseEntity = null;
-        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryFeeBreakdown?communityId=" + result.getCommunityId() + "&page=1&row=10000";
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportOweFee/queryReportAllOweFee" + mapToUrlParam(reqJson);
         responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
-
         if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
             return null;
         }
-
         JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
-
-
         if (!savedRoomInfoResults.containsKey("data")) {
             return null;
         }
+        return savedRoomInfoResults.getJSONArray("data");
+    }
 
+    private JSONArray getReportPayFeeDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryPayFeeDetail" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedRoomInfoResults.containsKey("data")) {
+            return null;
+        }
+        return savedRoomInfoResults.getJSONArray("data");
+    }
 
+    private JSONArray getReportRepairDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryRepair" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedRepairInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRepairInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedRepairInfoResults.containsKey("data")) {
+            return null;
+        }
+        return savedRepairInfoResults.getJSONArray("data");
+    }
+
+    private JSONArray getReportPayFeeManage(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 0);
+        reqJson.put("row", 10000);
+        //鑾峰彇璐圭敤绫诲瀷
+        String payObjType = reqJson.getString("payObjType");
+        if (!StringUtil.isEmpty(payObjType) && payObjType.equals("3333")) {
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/api.getPropertyPayFee" + mapToUrlParam(reqJson);
+        } else if (!StringUtil.isEmpty(payObjType) && payObjType.equals("6666")) {
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/api.getParkingSpacePayFee" + mapToUrlParam(reqJson);
+        } else {
+            apiUrl = ServiceConstant.SERVICE_API_URL + "/api/api.getListPayFee" + mapToUrlParam(reqJson);
+        }
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedPayFeeManageInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedPayFeeManageInfoResults.getJSONArray("payFees").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedPayFeeManageInfoResults.containsKey("payFees")) {
+            return null;
+        }
+        return savedPayFeeManageInfoResults.getJSONArray("payFees");
+    }
+
+    private JSONArray getReportQuestionAnswerDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportQuestionAnswer/queryUserQuestionAnswerValue" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedQuestionAnswers = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedQuestionAnswers.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedQuestionAnswers.containsKey("data")) {
+            return null;
+        }
+        return savedQuestionAnswers.getJSONArray("data");
+    }
+
+    private JSONArray getReportPrePaymentFee(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryPrePayment" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedPrePayments = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedPrePayments.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedPrePayments.containsKey("data")) {
+            return null;
+        }
+        return savedPrePayments.getJSONArray("data");
+    }
+
+    private JSONArray getReportDeadlineFee(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryDeadlineFee" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedDeadlineFees = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedDeadlineFees.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedDeadlineFees.containsKey("data")) {
+            return null;
+        }
+        return savedDeadlineFees.getJSONArray("data");
+    }
+
+    private JSONArray getReportNoFeeRoom(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryNoFeeRooms" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedNoFeeRooms = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedNoFeeRooms.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedNoFeeRooms.containsKey("data")) {
+            return null;
+        }
+        return savedNoFeeRooms.getJSONArray("data");
+    }
+
+    private JSONArray getPurchaseApplyDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/purchaseApplyDetail.listPurchaseApplyDetails" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedPurchaseApplyDetails = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedPurchaseApplyDetails.getJSONArray("purchaseApplyDetails").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedPurchaseApplyDetails.containsKey("purchaseApplyDetails")) {
+            return null;
+        }
+        return savedPurchaseApplyDetails.getJSONArray("purchaseApplyDetails");
+    }
+
+    private JSONArray getAllocationStorehouse(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("userId", pd.getUserId());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/resourceStore.listAllocationStorehouseApplys" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedAllocationStorehouses = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedAllocationStorehouses.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedAllocationStorehouses.containsKey("data")) {
+            return null;
+        }
+        return savedAllocationStorehouses.getJSONArray("data");
+    }
+
+    private JSONArray getAllocationStorehouseDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/resourceStore.listAllocationStorehouses" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedAllocationStorehouses = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedAllocationStorehouses.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedAllocationStorehouses.containsKey("data")) {
+            return null;
+        }
+        return savedAllocationStorehouses.getJSONArray("data");
+    }
+
+    private JSONArray getResourceStore(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        //鑾峰彇褰撳墠鐢ㄦ埛id
+        String userId = pd.getUserId();
+        //鑾峰彇鍟嗘埛id
+        String storeId = result.getStoreId();
+        reqJson.put("userId", userId);
+        reqJson.put("storeId", storeId);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/resourceStore.listResourceStores" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedResourceStores = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedResourceStores.getJSONArray("resourceStores").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedResourceStores.containsKey("resourceStores")) {
+            return null;
+        }
+        return savedResourceStores.getJSONArray("resourceStores");
+    }
+
+    private JSONArray getPurchaseApply(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/purchaseApply.listPurchaseApplys" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedPurchaseApplys = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedPurchaseApplys.getJSONArray("purchaseApplys").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedPurchaseApplys.containsKey("purchaseApplys")) {
+            return null;
+        }
+        return savedPurchaseApplys.getJSONArray("purchaseApplys");
+    }
+
+    private JSONArray getItemOutManage(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/purchaseApply.listPurchaseApplys" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedItemOutManages = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedItemOutManages.getJSONArray("purchaseApplys").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedItemOutManages.containsKey("purchaseApplys")) {
+            return null;
+        }
+        return savedItemOutManages.getJSONArray("purchaseApplys");
+    }
+
+    private JSONArray getAllocationUserStorehouseManage(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/resourceStore.listAllocationUserStorehouses" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedAllocationUserStorehouses = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedAllocationUserStorehouses.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedAllocationUserStorehouses.containsKey("data")) {
+            return null;
+        }
+        return savedAllocationUserStorehouses.getJSONArray("data");
+    }
+
+    private JSONArray getResourceStoreUseRecordManage(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/resourceStore.listResourceStoreUseRecords" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedResourceStoreUseRecords = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedResourceStoreUseRecords.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedResourceStoreUseRecords.containsKey("data")) {
+            return null;
+        }
+        return savedResourceStoreUseRecords.getJSONArray("data");
+    }
+
+    private JSONArray getStaffFeeManage(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 0);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/api.getStaffFee" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedStaffFeeManages = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedStaffFeeManages.getJSONArray("staffFees").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedStaffFeeManages.containsKey("staffFees")) {
+            return null;
+        }
+        return savedStaffFeeManages.getJSONArray("staffFees");
+    }
+
+    private JSONArray getReportPayFeeDeposit(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryPayFeeDeposit" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedReportPayFeeDeposits = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedReportPayFeeDeposits.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedReportPayFeeDeposits.containsKey("data")) {
+            return null;
+        }
+        return savedReportPayFeeDeposits.getJSONArray("data");
+    }
+
+    private JSONArray getReportYearCollection(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10001);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeYearCollection/queryReportFeeYear" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇瀵煎嚭闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedRoomInfoResults.containsKey("data")) {
+            return null;
+        }
+        return savedRoomInfoResults.getJSONArray("data");
+    }
+
+    private void reportOweFeeDetail(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("娆犺垂鏄庣粏琛�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璐圭敤缂栧彿");
+        row.createCell(1).setCellValue("鎴垮彿");
+        row.createCell(2).setCellValue("璐圭敤椤�");
+        row.createCell(3).setCellValue("璐圭敤寮�濮嬫椂闂�");
+        row.createCell(4).setCellValue("娆犺垂鏃堕暱锛堝ぉ锛�");
+        row.createCell(5).setCellValue("娆犺垂閲戦");
+        //鏌ヨ妤兼爧淇℃伅
+        JSONArray rooms = this.getReportOweFeeDetail(pd, result);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = rooms.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(roomIndex + 1);
+            row.createCell(1).setCellValue(dataObj.getString("objName"));
+            row.createCell(2).setCellValue(dataObj.getString("feeName"));
+            row.createCell(3).setCellValue(dataObj.getString("feeCreateTime"));
+            row.createCell(4).setCellValue(dataObj.getString("oweDay"));
+            row.createCell(5).setCellValue(dataObj.getString("oweAmount"));
+        }
+    }
+
+    private void reportFeeDetail(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("璐圭敤鏄庣粏琛�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璐圭敤缂栧彿");
+        row.createCell(1).setCellValue("鎴垮彿");
+        row.createCell(2).setCellValue("璐圭敤椤�");
+        row.createCell(3).setCellValue("璐圭敤寮�濮嬫椂闂�");
+        row.createCell(4).setCellValue("璐圭敤缁撴潫鏃堕棿");
+        row.createCell(5).setCellValue("搴旀敹閲戦");
+        row.createCell(6).setCellValue("瀹炴敹閲戦");
+        //鏌ヨ妤兼爧淇℃伅
+        JSONArray rooms = this.getReportFeeDetail(pd, result);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = rooms.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(roomIndex + 1);
+            row.createCell(1).setCellValue(dataObj.getString("objName"));
+            row.createCell(2).setCellValue(dataObj.getString("feeName"));
+            row.createCell(3).setCellValue(dataObj.getString("feeCreateTime"));
+            row.createCell(4).setCellValue(dataObj.getString("deadlineTime"));
+            row.createCell(5).setCellValue(dataObj.getString("receivableAmount"));
+            row.createCell(6).setCellValue(dataObj.getString("receivedAmount"));
+        }
+    }
+
+    private JSONArray getReportOweFeeDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryOweFeeDetail" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedRoomInfoResults.containsKey("data")) {
+            return null;
+        }
+        return savedRoomInfoResults.getJSONArray("data");
+    }
+
+    private JSONArray getReportFeeDetail(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryFeeDetail" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedRoomInfoResults.containsKey("data")) {
+            return null;
+        }
+        return savedRoomInfoResults.getJSONArray("data");
+    }
+
+    private void reportFeeBreakdown(IPageData pd, ComponentValidateResult result, Workbook workbook) {
+        Sheet sheet = workbook.createSheet("璐圭敤鍒嗛」琛�");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("璐圭敤缂栧彿");
+        row.createCell(1).setCellValue("璐圭敤绫诲瀷");
+        row.createCell(2).setCellValue("璐圭敤椤�");
+        row.createCell(3).setCellValue("璐圭敤寮�濮嬫椂闂�");
+        row.createCell(4).setCellValue("搴旀敹閲戦");
+        row.createCell(5).setCellValue("瀹炴敹閲戦");
+        row.createCell(6).setCellValue("娆犺垂閲戦");
+        //鏌ヨ妤兼爧淇℃伅
+        JSONArray rooms = this.getReportFeeBreakdown(pd, result);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
+        JSONObject dataObj = null;
+        for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = rooms.getJSONObject(roomIndex);
+            row.createCell(0).setCellValue(roomIndex + 1);
+            row.createCell(1).setCellValue(dataObj.getString("feeTypeCd"));
+            row.createCell(2).setCellValue(dataObj.getString("feeName"));
+            row.createCell(3).setCellValue(dataObj.getString("feeCreateTime"));
+            row.createCell(4).setCellValue(dataObj.getString("receivableAmount"));
+            row.createCell(5).setCellValue(dataObj.getString("receivedAmount"));
+            row.createCell(6).setCellValue(dataObj.getString("oweAmount"));
+        }
+    }
+
+    private JSONArray getReportFeeBreakdown(IPageData pd, ComponentValidateResult result) {
+        String apiUrl = "";
+        ResponseEntity<String> responseEntity = null;
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryFeeBreakdown" + mapToUrlParam(reqJson);
+        responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
+        if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
+            return null;
+        }
+        JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
+        if (!savedRoomInfoResults.containsKey("data")) {
+            return null;
+        }
         return savedRoomInfoResults.getJSONArray("data");
     }
 
@@ -156,47 +1613,46 @@
         row.createCell(3).setCellValue("搴旀敹閲戦");
         row.createCell(4).setCellValue("瀹炴敹閲戦");
         row.createCell(5).setCellValue("娆犺垂閲戦");
-
-
         //鏌ヨ妤兼爧淇℃伅
         JSONArray rooms = this.getReportFloorUnitFeeSummary(pd, result);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
         JSONObject dataObj = null;
         for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
             row = sheet.createRow(roomIndex + 1);
             dataObj = rooms.getJSONObject(roomIndex);
-
             row.createCell(0).setCellValue(dataObj.getString("feeYear") + "骞�" + dataObj.getString("feeMonth") + "鏈�");
-            row.createCell(1).setCellValue(dataObj.getString("receivableAmount"));
-            row.createCell(2).setCellValue(dataObj.getString("floorNum") + "鍙锋ゼ");
-            row.createCell(3).setCellValue(dataObj.getString("unitNum") + "鍗曞厓");
+            row.createCell(1).setCellValue(dataObj.getString("floorNum") + "鏍�");
+            row.createCell(2).setCellValue(dataObj.getString("unitNum") + "鍗曞厓");
+            row.createCell(3).setCellValue(dataObj.getString("receivableAmount"));
             row.createCell(4).setCellValue(dataObj.getString("receivedAmount"));
             row.createCell(5).setCellValue(dataObj.getString("oweAmount"));
-
         }
     }
 
     private JSONArray getReportFloorUnitFeeSummary(IPageData pd, ComponentValidateResult result) {
         String apiUrl = "";
         ResponseEntity<String> responseEntity = null;
-        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryFloorUnitFeeSummary?communityId=" + result.getCommunityId() + "&page=1&row=10000";
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryFloorUnitFeeSummary" + mapToUrlParam(reqJson);
         responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
-
         if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
             return null;
         }
-
         JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
-
-
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
         if (!savedRoomInfoResults.containsKey("data")) {
             return null;
         }
-
-
         return savedRoomInfoResults.getJSONArray("data");
-
     }
-
 
     /**
      * 鏌ヨ瀛樺湪鐨勬埧灞嬩俊鎭�
@@ -209,23 +1665,24 @@
     private JSONArray getReportFeeSummaryFee(IPageData pd, ComponentValidateResult result) {
         String apiUrl = "";
         ResponseEntity<String> responseEntity = null;
-        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryReportFeeSummary?communityId=" + result.getCommunityId() + "&page=1&row=10000";
+        JSONObject reqJson = JSONObject.parseObject(pd.getReqData());
+        reqJson.put("page", 1);
+        reqJson.put("row", 10000);
+        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/reportFeeMonthStatistics/queryReportFeeSummary" + mapToUrlParam(reqJson);
         responseEntity = this.callCenterService(restTemplate, pd, "", apiUrl, HttpMethod.GET);
-
         if (responseEntity.getStatusCode() != HttpStatus.OK) { //璺宠繃 淇濆瓨鍗曞厓淇℃伅
             return null;
         }
-
         JSONObject savedRoomInfoResults = JSONObject.parseObject(responseEntity.getBody(), Feature.OrderedField);
-
-
+        //鑾峰彇闄愬埗鏉℃暟鐨勫��
+        int number = Integer.parseInt(MappingCache.getValue(DOMAIN_COMMON, EXPORT_NUMBER));
+        if (savedRoomInfoResults.getJSONArray("data").size() > number) {
+            throw new IllegalArgumentException("瀵煎嚭鏁版嵁瓒呰繃闄愬埗鏉℃暟" + number + "鏉★紝鏃犳硶缁х画瀵煎嚭鎿嶄綔锛�");
+        }
         if (!savedRoomInfoResults.containsKey("data")) {
             return null;
         }
-
-
         return savedRoomInfoResults.getJSONArray("data");
-
     }
 
     /**
@@ -241,20 +1698,19 @@
         row.createCell(1).setCellValue("搴旀敹閲戦");
         row.createCell(2).setCellValue("瀹炴敹閲戦");
         row.createCell(3).setCellValue("娆犺垂閲戦");
-
-
         //鏌ヨ妤兼爧淇℃伅
         JSONArray rooms = this.getReportFeeSummaryFee(pd, componentValidateResult);
+        if (rooms == null || rooms.size() == 0) {
+            return;
+        }
         JSONObject dataObj = null;
         for (int roomIndex = 0; roomIndex < rooms.size(); roomIndex++) {
             row = sheet.createRow(roomIndex + 1);
             dataObj = rooms.getJSONObject(roomIndex);
-
             row.createCell(0).setCellValue(dataObj.getString("feeYear") + "骞�" + dataObj.getString("feeMonth") + "鏈�");
             row.createCell(1).setCellValue(dataObj.getString("receivableAmount"));
             row.createCell(2).setCellValue(dataObj.getString("receivedAmount"));
             row.createCell(3).setCellValue(dataObj.getString("oweAmount"));
-
         }
     }
 

--
Gitblit v1.8.0