فهرست منبع

党内生活统计

lizeyu 8 ماه پیش
والد
کامیت
3b76a52871

+ 53 - 1
src/main/java/com/ghsc/partybuild/controller/SHYKController.java

@@ -1,6 +1,5 @@
 package com.ghsc.partybuild.controller;
 
-import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.ghsc.partybuild.filter.exception.RespGenerstor;
@@ -1222,5 +1221,58 @@ public class SHYKController {
         return result;
     }
 
+    @ResponseBody
+    @GetMapping("/getMeetingStatisticsList")
+    public RequsetData<List<MeetingMonthTotalVo>> getMeetingStatisticsList(@RequestParam(required = false) String partyCode,
+                                                                           @RequestParam(required = false) String beginTime,
+                                                                           @RequestParam(required = false) String endTime) {
+
+        RequsetData<List<MeetingMonthTotalVo>> result = new RequsetData<>();
+        result.setItem(shykService.selectMeetingStatisticsList(partyCode, beginTime, endTime));
+        return result;
+    }
+
+    @RequestMapping(value = "/exportMeetingStatistics", method = RequestMethod.GET)
+    public void exportMeetingStatistics(HttpServletResponse response, @RequestParam(required = false) String dzzdm,
+                                        @RequestParam(required = false) String beginTime, @RequestParam(required = false) String endTime) throws Exception {
+
+        /**查询数据**/
+        List<CfDictionary> shyklxList = dictionaryService.getDictionaryListByDicTypeKey("shykType");
+        List<HashMap<String, Object>> partyList = partyService.getPartyList(1, 1000, dzzdm, null, null,null, null,null, null,null, null,null, null, null, null ,null, null, null, null, null).getList();
+        List<MeetingMonthTotalVo> meetingStatisticsList = shykService.selectMeetingStatisticsList(dzzdm, beginTime, endTime);
+
+        ExcelHelper excelHelper = new ExcelHelper();
+        ExcelHelper.ExcelData data = excelHelper.new ExcelData();
+
+        //列名
+        data.setName("党内生活统计");
+        List<String> titles = new ArrayList();
+        titles.add("序号");
+        titles.add("组织名称");
+        shyklxList.forEach(item->{
+            titles.add(item.getDicvalue());
+        });
+        data.setTitles(titles);
+
+        //数据
+        List<List<Object>> rows = new ArrayList();
+
+        int rowIndex = 1;
+        for (HashMap<String, Object> item : partyList) {
+            List<Object> row = new ArrayList();
+            row.add(rowIndex++);
+            row.add(item.get("DZZMC"));
+            shyklxList.forEach(type->{
+                MeetingMonthTotalVo meeting = meetingStatisticsList.stream().filter(x -> item.get("DZZDM").equals(x.getPartyCode()) && type.getDickey() == x.getShykType()).findFirst().orElse(null);
+                row.add(meeting == null ? 0 : meeting.getCount());
+            });
+            rows.add(row);
+        }
+        data.setRows(rows);
+
+        excelHelper.exportExcel(response, "党内生活统计.xlsx", data);
+    }
+
+
 }
 

+ 2 - 0
src/main/java/com/ghsc/partybuild/mapper/SHYKCQuery.java

@@ -216,4 +216,6 @@ public interface SHYKCQuery {
 
     List<MeetingMonthTotalVo> selectMeetingMonthTotalList(@Param("partyCode") String partyCode, @Param("year") Integer year);
 
+    List<MeetingMonthTotalVo> selectMeetingStatisticsList(@Param("partyCode") String partyCode, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
+
 }

+ 1 - 0
src/main/java/com/ghsc/partybuild/service/SHYKService.java

@@ -416,4 +416,5 @@ public interface SHYKService {
 
     List<MeetingMonthTotalVo> getMeetingMonthTotalList(String partyCode, Integer year);
 
+    List<MeetingMonthTotalVo> selectMeetingStatisticsList(String partyCode, String beginTime, String endTime);
 }

+ 5 - 0
src/main/java/com/ghsc/partybuild/service/impl/SHYKServiceImpl.java

@@ -1226,4 +1226,9 @@ public class SHYKServiceImpl implements SHYKService {
         return shykcQuery.selectMeetingMonthTotalList(partyCode,year);
     }
 
+    @Override
+    public List<MeetingMonthTotalVo> selectMeetingStatisticsList(String partyCode, String beginTime, String endTime){
+        return shykcQuery.selectMeetingStatisticsList(partyCode, beginTime, endTime);
+    }
+
 }

+ 18 - 1
src/main/resources/mapping/SHYKCQuery.xml

@@ -530,7 +530,7 @@
                m.SHYKTYPE,
                z.DZZMC as PARTYNAME ,
                m.PARTYCODE,
-               m.MEETINGADDRESS,
+               m.MEETINGADDRESS,partyList
                m.CHAIRUSER,
                m.RECORDUSER,
                m.BEGINTIME,
@@ -591,4 +591,21 @@
         group by m.partyCode,t.shyktype,year(m.BEGINTIME),month(m.BEGINTIME)
     </select>
 
+    <select id="selectMeetingStatisticsList" resultType="com.ghsc.partybuild.vo.shyk.MeetingMonthTotalVo">
+        select m.partyCode,t.shykType,count(1) as count
+        from SHYK_MEETING m
+            inner join shyk_meeting_type t on t.meetingId = m.meetingId
+        where 1=1
+        <if test="partyCode != null and partyCode != ''">
+            and m.partyCode like concat('',#{partyCode},'%')
+        </if>
+        <if test="beginTime != null and beginTime != '' ">
+            and m.beginTime <![CDATA[ >= ]]> date_format(#{beginTime},'%Y%m%d')
+        </if>
+        <if test="endTime != null and endTime != '' ">
+            and m.beginTime <![CDATA[ < ]]> date_add(date_format(#{endTime},'%Y%m%d'),interval 1 day)
+        </if>
+        group by m.partyCode,t.shyktype
+    </select>
+
 </mapper>

+ 52 - 56
src/main/resources/static/app/main/partyTwoExt/ztdrxx/summary.html

@@ -2,16 +2,9 @@
 <div class="dj-list">
     <div class="dj-list-body">
         <div party-tree data-selectdzzdm="selectparams.selectdzzdm" data-selectdzzmc="selectparams.selectdzzmc"
-             data-isshowxz="0"
-             data-parentcode="selectparams.parentcode"
-             data-parentname="selectparams.parentname"
-             data-dzzdm="selectparams.szdzzdm" data-userid="selectparams.userid"
-             data-dzzmc="selectparams.szdzzmc"
-             data-showtogglebtn="true"
-             data-onlyshowdw="selectparams.onlyshow_dw"
              data-zzfbtype="selectparams.zzfbType"
-             data-isunfold="selectparams.isunfold"
              data-defaultselected="selectparams.defaultselected"
+             data-isunfold="selectparams.isunfold"
         ></div>
         <div class="dj-list-content">
             <div class="card">
@@ -21,10 +14,10 @@
                         <div class="search-input">
                             <form class="form-horizontal">
                                 <div class="row clearfix form-inline">
-                                    <div class="col-lg-2 col-md-2 dj-label">
+                                    <div class="col-lg3 col-md-3 dj-label">
                                         <label>当前选中组织</label>
                                     </div>
-                                    <div class="col-lg-2 col-md-2">
+                                    <div class="col-lg3 col-md-3">
                                         <div class="form-group">
                                             <div class="form-line">
                                                 <div class="input-group input-group-search">
@@ -36,20 +29,33 @@
                                                 </div>
                                             </div>
                                         </div>
+                                    </div><div class="col-lg-2 col-md-2 dj-label">
+                                    <label>会议开始时间</label>
+                                </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <input name="beginTime" class="form-control" ng-change="search()"
+                                                       autocomplete="off"
+                                                       autoclose="true"
+                                                       data-date-format="yyyy-MM-dd" data-date-type="string"
+                                                       ng-model="selectparams.beginTime"
+                                                       placeholder="" bs-datepicker/>
+                                            </div>
+                                        </div>
                                     </div>
-                                    <div class="col-lg-2 col-md-2 col-sm-2 col-xs-2 dj-label">
-                                        <label>年度</label>
+                                    <div class="col-lg-2 col-md-2 dj-label">
+                                        <label>会议结束时间</label>
                                     </div>
-                                    <div class="col-lg-2 col-md-2 col-sm-2 col-xs-2">
+                                    <div class="col-lg-2 col-md-2">
                                         <div class="form-group">
                                             <div class="form-line">
-                                                <select class="form-control show-tick" ng-change="search()"
-                                                        ng-model="selectparams.year"
-                                                        ng-options="type.dickey as type.dicvalue for type in ndList"
-                                                        class="form-control"
-                                                        name="year">
-                                                    <option value="" selected>--全部--</option>
-                                                </select>
+                                                <input name="endTime" class="form-control" ng-change="search()"
+                                                       autocomplete="off"
+                                                       autoclose="true"
+                                                       data-date-format="yyyy-MM-dd" data-date-type="string"
+                                                       ng-model="selectparams.endTime"
+                                                       placeholder="" bs-datepicker/>
                                             </div>
                                         </div>
                                     </div>
@@ -58,11 +64,10 @@
                         </div>
                         <div class="search-btn" style="margin-right: 20px;">
                             <div style="min-width: 13em">
-
-                                <button  class="btn btn-default1"
+                                <button class="btn btn-default1"
                                         ng-click="search()">查询
                                 </button>
-                                <button  class="btn btn-default1 btn-reset"
+                                <button class="btn btn-default1 btn-reset"
                                         ng-click="reset()">重置
                                 </button>
                             </div>
@@ -70,44 +75,35 @@
                     </div>
                     <div class="search-btn" style="margin-right: 20px;">
                         <div style="float: right">
-                            <button class="btn  btn-default1"
-                                    ng-click="export()">导出
+                            <button class="btn btn-default1"
+                                    ng-click="exportData()">导出
                             </button>
                         </div>
                     </div>
                 </div>
                 <div class="body">
-                    <div class="zero-list-table-panel">
-                        <div class="zero-source-table-div">
-                            <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
-                                <thead>
-                                <tr>
-                                    <th>序号</th>
-                                    <th>所属党组织</th>
-                                    <th>年度</th>
-                                    <th>党员大会</th>
-                                    <th>支委会</th>
-                                    <th>党小组会</th>
-                                    <th>党课</th>
-                                    <th>主题党日</th>
-                                </tr>
-                                </thead>
-                                <tbody>
-                                <tr ng-repeat="it in dataList">
-                                    <td scope="row" class="text-center">
-                                        {{selectparams.pagesize*(selectparams.pageindex-1)+$index+1}}
-                                    </td>
-                                    <td>{{it.DZZMC}}</td>
-                                    <td class="text-center">{{it.YEAR}}</td>
-                                    <td class="text-center" url="shykList" title='{{it["党员大会"]}}' link-tag params='{"dzzdm":"{{it["PARTYCODE"]}}","beginTime" :"{{selectparams.year}}-01-01","endTime" :"{{selectparams.year}}-12-31","shykType":1}' ></td>
-                                    <td class="text-center" url="shykList" title='{{it["支委会"]}}' link-tag params='{"dzzdm":"{{it["PARTYCODE"]}}","beginTime" :"{{selectparams.year}}-01-01","endTime" :"{{selectparams.year}}-12-31","shykType":2}' ></td>
-                                    <td class="text-center" url="shykList" title='{{it["党小组会"]}}' link-tag params='{"dzzdm":"{{it["PARTYCODE"]}}","beginTime" :"{{selectparams.year}}-01-01","endTime" :"{{selectparams.year}}-12-31","shykType":3}' ></td>
-                                    <td class="text-center" url="shykList" title='{{it["党课"]}}' link-tag params='{"dzzdm":"{{it["PARTYCODE"]}}","beginTime" :"{{selectparams.year}}-01-01","endTime" :"{{selectparams.year}}-12-31","shykType":4}' ></td>
-                                    <td class="text-center" url="ztdrxx" title='{{it["主题党日"]}}' link-tag params='{"dzzdm":"{{it["PARTYCODE"]}}","beginTime" :"{{selectparams.year}}-01-01","endTime" :"{{selectparams.year}}-12-31"}' ></td>
-                                </tr>
-                                </tbody>
-                            </table>
-                        </div>
+                    <div class="table-responsive list-table-panel table-adapt">
+                        <table class="gt-table gt-table-bordered gt-table-evenodd">
+                            <thead>
+                            <tr>
+                                <th>序号</th>
+                                <th>组织名称</th>
+                                <th ng-repeat="it in shyklxList">{{it.dicvalue}}</th>
+                            </tr>
+                            </thead>
+                            <tbody>
+                            <tr ng-repeat="it in partyList" fixed-table-header>
+                                <td class="text-center" style="background-color: #fff;">{{$index + 1}}</td>
+                                <td style="background-color: #fff;">{{it.DZZMC}}</td>
+                                <td ng-repeat="type in shyklxList" class="text-center">
+                                    {{getSettingTitle(it.DZZDM, type.dickey)}}
+                                </td>
+                            </tr>
+                            <tr ng-if="dataList.length<=0" ng-repeat="it in [1]" fixed-table-header>
+                                <td colspan="9" style="text-align:center">暂无数据</td>
+                            </tr>
+                            </tbody>
+                        </table>
                     </div>
                     <pagination data-pageindex="selectparams.pageindex" data-pagesize="selectparams.pagesize"
                                 data-ptotal="pageInfo.ptotal"></pagination>

+ 69 - 112
src/main/resources/static/app/main/partyTwoExt/ztdrxx/summary.js

@@ -1,154 +1,111 @@
 (function ($app) {
-    $app.module('gtPartyApp').controller('summaryCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout,$alert, $loading, $state, AuthUser, $stateParams,$bsRouterState) {
-        $state.params = $bsRouterState.$params($scope);
-        $scope.isShow = false;
-        $scope.moreTxt = "更多";
-
+    $app.module('gtPartyApp').controller('summaryCtrl', function ($scope, $http, $modal, $ocLazyLoad, $alert, $loading, $state, $stateParams, AuthUser, $bsRouterState) {
 
         //定义数据集合
-        $scope.dataList = []; //列表数据
-        $scope.isDetail = true;
-        //初始化查询参数
+        $scope.loginUserId = AuthUser.getUser().Id;
+        $scope.partyList = []; //列表数据
+        $scope.meetingStatisticsList = [];
+        $scope.yearList = [];
+        $scope.quarterList = [];
         $scope.selectparams = {
-            isunfold: false,//组织结构树展开收缩
-            'pageindex': 1,
-            'pagesize':10,
-            'selectdzzdm': '',
-            selectdzzmc: '',
-            defaultselected: $state.params.dzzdm,
-            parentcode: AuthUser.getUser().ParentDpCode,
-            parentname: AuthUser.getUser().ParentDpName,
-            szdzzdm: AuthUser.getUser().DPCode,
-            szdzzmc: AuthUser.getUser().DPName,
-            dzzdm: '',
-            ldjtjc: '',
-            dzzmc: '',
-            xm: '',
-            zwmc: null,
-            rzfs: null,
-            userid: AuthUser.getUser().Id,
-            onlyshow_dw: $stateParams.type == 1 ? 1 : 0,
-            zzfbType: null,
-            year: $state.params.year == undefined ? new Date().getFullYear() : $state.params.year
-        };
-        $scope.resetparams = {
-            isunfold: false,//组织结构树展开收缩
-            'pageindex': 1,
-            'pagesize': 10,
-            'selectdzzdm': '',
+            selectdzzdm: '',
             selectdzzmc: '',
-            parentcode: AuthUser.getUser().ParentDpCode,
-            parentname: AuthUser.getUser().ParentDpName,
-            szdzzdm: AuthUser.getUser().DPCode,
-            szdzzmc: AuthUser.getUser().DPName,
-            dzzdm: '',
-            ldjtjc: '',
-            dzzmc: '',
-            xm: '',
-            zwmc: null,
-            rzfs: null,
-            userid: AuthUser.getUser().Id,
-            onlyshow_dw: $stateParams.type == 1 ? 1 : 0,
-            zzfbType: null
+            defaultselected: '',
+            pageindex: 1,
+            pagesize: 1000,
+            dzzdm: '',//党组织代码
+            isunfold: false,
+            beginTime: null,
+            endTime: null
         };
-        $scope.pageInfo = {ptotal: 0};
+        $scope.pageInfo = {ptotal: 0, mergetotal: 0};
+        $scope.resetparams = angular.copy($scope.selectparams);
+        $scope.shyklxList = [];
+
         //监视页数变化
         $scope.$watch("selectparams.pageindex", function (newVal, oldVal) {
             if ($scope.pageInfo.ptotal > 0) {
-                $scope.loadData();
+                $scope.getPartyList();
             }
         });
-        //监视党组织选中变化
-        $scope.$watch("selectparams.selectdzzdm", function (newVal, oldVal) {
-            if (newVal != '' && newVal != null) {
-
-                if ($scope.selectparams.defaultselected != "" && $scope.selectparams.defaultselected != null &&
-                    $scope.selectparams.defaultselected != $scope.selectparams.selectdzzdm)
-                    return;
-                $scope.selectparams.defaultselected = "";
 
+        $scope.$watch("selectparams.selectdzzdm", function (newVal, oldVal) {
+            if (newVal != "") {
                 $scope.selectparams.dzzdm = $scope.selectparams.selectdzzdm;
-                $scope.loadData();
-            }
-        });
-
-        $scope.$watch("selectparams.zzfbType", function (newVal, oldVal) {
-            if (newVal != oldVal) {
-                $scope.loadData();
+                $scope.getPartyList();
             }
         });
 
         //查询
         $scope.search = function () {
-            $scope.loadData();
+            $scope.getPartyList();
         };
 
-        //加载列表数据
-        $scope.loadData = function () {
+        $scope.getPartyList = function () {
             $http
             ({
-                method: 'get', url: '../../api/partyTowExt/getZtdrSummary', params: $scope.selectparams
+                method: 'get', url: '../../api/party/getPartyList', params: $scope.selectparams
             }).then(function (result) {
-                $scope.dataList = result.data.item.list;
-                $scope.pageInfo.ptotal = result.data.item.total;
+                $scope.partyList = result.data.item.list;
+                $scope.getTargetList();
             });
         };
-        $scope.getNdList = function () {
-            $http({
-                method: 'get',
-                url: '../../api/dictionary/getDictionaryListByDicTypeKey',
-                params: {
-                    dicTypeKey: 'years'
-                }
+
+        //加载列表数据
+        $scope.getTargetList = function () {
+            $http
+            ({
+                method: 'get', url: '../../api/shyk/getMeetingStatisticsList', params: $scope.selectparams
             }).then(function (result) {
-                $scope.ndList = result.data;
+                console.log(result.data.item)
+                $scope.meetingStatisticsList = result.data.item;
             }, function (resp) {
-
+                $scope.showMsg('错误', '服务器错误');
             });
         };
 
-        $scope.export = function () {
-            if ($scope.selectparams.dzzdm != "") {
-                var params = "?1=1";
-                for (var p in $scope.selectparams) {
-                    if ($scope.selectparams[p] !== '' && $scope.selectparams[p] !== null)
-                        params += ("&" + p + "=" + encodeURI($scope.selectparams[p]));
-                }
-                window.open('../../api/partyTowExt/exportZtdrSummary' + params);
-            }
+        $scope.getSettingTitle = function (partyCode, type) {
+            const settingVo = $scope.meetingStatisticsList.filter(e => e.shykType === type && e.partyCode === partyCode);
+            return settingVo.length > 0 ? settingVo[0].count : '0';
         };
-        //数据初始化
-        $scope.getNdList();
 
-        $scope.showMsg = function (title, content) {
-            $alert({
-                title: title + ':',
-                content: content,
-                placement: 'top',
-                type: 'info',
-                show: true,
-                duration: 3
-            });
+        $scope.isSetting = function (partyCode) {
+            return $scope.meetingStatisticsList.filter(e => e.partyCode === partyCode).length > 0;
+        };
 
+        $scope.exportData = function () {
+            var params = "?1=1";
+            for (var p in $scope.selectparams) {
+                if ($scope.selectparams[p] !== '' && $scope.selectparams[p] !== null)
+                    params += ("&" + p + "=" + encodeURI($scope.selectparams[p]));
+            }
+            window.open('../../api/shyk/exportMeetingStatistics' + params);
         };
         $scope.setisunfold = function () {
             $scope.selectparams.isunfold = !$scope.selectparams.isunfold;
             $scope.$emit('menudatas.toggle', !$scope.selectparams.isunfold);
         };
 
-        $scope.isShowClick = function(){
-            $scope.isShow=!$scope.isShow;
-            if($scope.moreTxt == "更多")
-            {
-                $scope.moreTxt = "收起";
-            }
-            else if($scope.moreTxt == "收起")
-            {
-                $scope.moreTxt = "更多";
-            }
+        $scope.getShyklxList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/dictionary/getDictionaryListByDicTypeKey',
+                params: {
+                    dicTypeKey: 'shykType'
+                }
+            }).then(function (result) {
+                $scope.shyklxList = result.data;
+            }, function (resp) {
+
+            });
+        };
+
+        $scope.getShyklxList();
+
+        $scope.reset = function () {
+            $scope.selectparams = angular.copy($scope.resetparams);
+            $scope.selectparams.dzzdm = AuthUser.getUser().dwId;//党组织代码
+            $scope.getPartyList();
         };
-        $scope.reset  = function () {
-            $scope.selectparams.year = $state.params.year == undefined ? new Date().getFullYear() : $state.params.year;
-        }
     });
 })(angular);