wuxw
2020-02-03 663362f91ec4e9eb06553a8c4f18ee717ebf3ff7
加入费用汇总表
6个文件已添加
291 ■■■■■ 已修改文件
ReportComponent/src/main/java/com/java110/report/components/fee/FeeSummaryComponent.java 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ReportComponent/src/main/java/com/java110/report/smo/fee/IListFeeSummarySMO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ReportComponent/src/main/java/com/java110/report/smo/fee/impl/ListFeeSummarySMOImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ReportComponent/src/main/resources/components/feePackage/feeSummary/feeSummary.html 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ReportComponent/src/main/resources/components/feePackage/feeSummary/feeSummary.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ReportComponent/src/main/resources/views/feeSummaryFlow.html 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ReportComponent/src/main/java/com/java110/report/components/fee/FeeSummaryComponent.java
New file
@@ -0,0 +1,43 @@
package com.java110.report.components.fee;
import com.java110.core.context.IPageData;
import com.java110.report.smo.fee.IListPayFeeSMO;
import com.java110.report.smo.feeType.IFeeTypeSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
 * 应用组件管理类
 * <p>
 * add by wuxw
 * <p>
 * 2019-06-29
 */
@Component("feeSummary")
public class FeeSummaryComponent {
    @Autowired
    private IListPayFeeSMO listPayFeeSMOImpl;
    /**
     * 查询应用列表
     *
     * @param pd 页面数据封装
     * @return 返回 ResponseEntity 对象
     */
    public ResponseEntity<String> list(IPageData pd) {
        return listPayFeeSMOImpl.list(pd);
    }
    public IListPayFeeSMO getListPayFeeSMOImpl() {
        return listPayFeeSMOImpl;
    }
    public void setListPayFeeSMOImpl(IListPayFeeSMO listPayFeeSMOImpl) {
        this.listPayFeeSMOImpl = listPayFeeSMOImpl;
    }
}
ReportComponent/src/main/java/com/java110/report/smo/fee/IListFeeSummarySMO.java
New file
@@ -0,0 +1,8 @@
package com.java110.report.smo.fee;
import com.java110.core.context.IPageData;
import org.springframework.http.ResponseEntity;
public interface IListFeeSummarySMO {
    public ResponseEntity<String> list(IPageData pd);
}
ReportComponent/src/main/java/com/java110/report/smo/fee/impl/ListFeeSummarySMOImpl.java
New file
@@ -0,0 +1,76 @@
package com.java110.report.smo.fee.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.entity.component.ComponentValidateResult;
import com.java110.report.smo.fee.IListFeeSummarySMO;
import com.java110.utils.constant.PrivilegeCodeConstant;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.exception.SMOException;
import com.java110.utils.util.Assert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
 * 查询app服务类
 */
@Service("listFeeSummarySMOImpl")
public class ListFeeSummarySMOImpl extends AbstractComponentSMO implements IListFeeSummarySMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    public ResponseEntity<String> list(IPageData pd) throws SMOException {
        return businessProcess(pd);
    }
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        super.validatePageInfo(pd);
        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区信息");
        Assert.hasKeyAndValue(paramIn, "feeSummaryType", "未包含小区信息");
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        int page = paramIn.getInteger("page");
        int row = paramIn.getInteger("row");
        paramIn.put("page", (page - 1) * row);
        paramIn.put("row", page * row);
        if("1001".equals(paramIn.getString("feeSummaryType"))){//日
            paramIn.put("formatStr","%Y-%m-%d");
        }else if("1101".equals(paramIn.getString("feeSummaryType"))){
            paramIn.put("formatStr","%Y-%m");
        }else{
            paramIn.put("formatStr","%Y");
        }
        String apiUrl = "";
        apiUrl = ServiceConstant.SERVICE_API_URL + "/api/api.queryFeeSummary" + mapToUrlParam(paramIn);
        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, "",
                apiUrl,
                HttpMethod.GET);
        return responseEntity;
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
ReportComponent/src/main/resources/components/feePackage/feeSummary/feeSummary.html
New file
@@ -0,0 +1,62 @@
<div id="component" class="wrapper wrapper-content animated fadeInRight ecommerce">
    <div class="row">
        <div class="col-lg-12">
            <div class="ibox">
                <div class="ibox-title">
                    <h5>缴费汇总表</h5>
                    <div class="ibox-tools" style="top:10px;">
                        <div class="btn-group" role="group" aria-label="Basic example">
                            <button type="button"
                                    class="btn btn-light btn-sm"
                                    v-bind:class="{'btn-primary': feeSummaryInfo.feeSummaryType == 1001}"
                                    v-on:click="_switchFeeSummaryType(1001)"
                            >日</button>
                            <button type="button"
                                    class="btn btn-light btn-sm"
                                    v-bind:class="{'btn-primary': feeSummaryInfo.feeSummaryType == 1101}"
                                    v-on:click="_switchFeeSummaryType(1101)"
                            >月</button>
                            <button type="button"
                                    class="btn btn-light btn-sm"
                                    v-bind:class="{'btn-primary': feeSummaryInfo.feeSummaryType == 1111}"
                                    v-on:click="_switchFeeSummaryType(1111)"
                            >年</button>
                        </div>
                    </div>
                </div>
                <div class="ibox-content">
                    <table class="footable table table-stripped toggle-arrow-tiny"
                           data-page-size="15"
                    >
                        <thead>
                        <tr>
                            <th class="text-center">时间</th>
                            <th class="text-center">费用项ID</th>
                            <th class="text-center">费用项名称</th>
                            <th class="text-center">金额</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr v-for="fee in feeSummaryInfo.fees">
                            <td class="text-center">{{fee.createTime}}</td>
                            <td class="text-center">{{fee.configId}}</td>
                            <td class="text-center">{{fee.feeName}}</td>
                            <td class="text-center">{{fee.money}}</td>
                        </tr>
                        </tbody>
                        <tfoot>
                        <tr>
                            <td colspan="7">
                                <ul class="pagination float-right"></ul>
                            </td>
                        </tr>
                        </tfoot>
                    </table>
                    <!-- 分页 -->
                    <vc:create name="pagination"></vc:create>
                </div>
            </div>
        </div>
    </div>
</div>
ReportComponent/src/main/resources/components/feePackage/feeSummary/feeSummary.js
New file
@@ -0,0 +1,64 @@
/**
 入驻小区
 **/
(function (vc) {
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 30;
    vc.extends({
        data: {
            feeSummaryInfo: {
                fees: [],
                feeSummaryType:'1001',
                total: 0,
                records: 1,
                moreCondition: false,
                name: '',
            }
        },
        _initMethod: function () {
            vc.component._listFees(DEFAULT_PAGE, DEFAULT_ROWS);
        },
        _initEvent: function () {
            vc.on('pagination', 'page_event', function (_currentPage) {
                vc.component._listFeeSummarys(_currentPage, DEFAULT_ROWS);
            });
        },
        methods: {
            _listFeeSummarys: function (_page, _rows) {
                var param = {
                    params: {
                        page: _page,
                        row:_rows,
                        feeSummaryType:vc.component.feeSummaryInfo.feeSummaryType,
                        communityId:vc.getCurrentCommunity().communityId
                    }
                };
                //发送get请求
                vc.http.get('feeSummary',
                    'list',
                    param,
                    function (json, res) {
                        var _feeSummaryInfo = JSON.parse(json);
                        vc.component.feeSummaryInfo.total = _feeSummaryInfo.total;
                        vc.component.feeSummaryInfo.records = parseInt(_feeSummaryInfo.total/_rows +1);
                        vc.component.feeSummaryInfo.fees = _feeSummaryInfo.fees;
                        vc.emit('pagination', 'init', {
                            total: vc.component.feeSummaryInfo.records,
                            currentPage: _page
                        });
                    }, function (errInfo, error) {
                        console.log('请求失败处理');
                    }
                );
            },
            _exportExcel:function () {
            },
            _switchFeeSummaryType:function(_feeSummaryType){
                vc.component.feeSummaryInfo.feeSummaryType = _feeSummaryType;
                vc.component._listFeeSummarys(DEFAULT_PAGE,DEFAULT_ROWS);
            }
        }
    });
})(window.vc);
ReportComponent/src/main/resources/views/feeSummaryFlow.html
New file
@@ -0,0 +1,38 @@
<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:vc="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>费用汇总表|java110</title>
    <vc:create name="commonTop"></vc:create>
    <link href="/css/jquery.step.css" rel="stylesheet"/>
    <script src="/js/jquery.step.min.js" ></script>
</head>
<body>
<vc:create name="bodyTop"></vc:create>
<div id="wrapper">
    <vc:create name="menu"></vc:create>
    <div id="page-wrapper" class="gray-bg dashbard-1">
        <div class="row border-bottom">
            <vc:create name="nav"></vc:create>
        </div>
        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
            <vc:create name="breadcrumb"></vc:create>
        </div>
        <!-- id="component" -->
        <div class="wrapper wrapper-content animated fadeInRight">
            <vc:create name="feeSummary"></vc:create>
        </div>
        <vc:create name="copyright"></vc:create>
    </div>
</div>
<vc:create name="commonBottom"></vc:create>
</body>
</html>