Browse Source

谈心谈话

lizeyu 9 months ago
parent
commit
a5d49358fa

+ 47 - 0
src/main/java/com/ghsc/partybuild/controller/partyLife/MeetingController.java

@@ -221,4 +221,51 @@ public class MeetingController {
 
         excelHelper.exportExcel(response, excelTitle + "导出.xlsx", data);
     }
+
+    @RequestMapping(value = "/exportTxth", method = RequestMethod.GET)
+    public void exportTxth(HttpServletResponse response, int partyLifeMeetingType, @RequestParam(required = false) String dzzdm, @RequestParam(required = false) String title, @RequestParam(required = false) @DateTimeFormat(pattern = dateTimeFormat) Date startDate, @RequestParam(required = false) @DateTimeFormat(pattern = dateTimeFormat) Date endDate) throws Exception {
+        /**查询数据**/
+        List<PartyLifeMeetingVo> dataList = meetingService.getList(1, 10000, partyLifeMeetingType, null, dzzdm, title, startDate,endDate).getList();
+        List<CfDictionary> typeList = dictionaryService.getDictionaryListByDicTypeKey("PartyLifeMeetingType");
+
+        ExcelHelper excelHelper = new ExcelHelper();
+        ExcelHelper.ExcelData data = excelHelper.new ExcelData();
+
+        String excelTitle = typeList.stream().filter(it->it.getDickey().equals(partyLifeMeetingType)).findFirst().get().getDicvalue();
+
+
+        //列名
+        data.setName(excelTitle);
+        List<String> titles = new ArrayList();
+        titles.add("序号");
+        titles.add("所属党组织");
+        titles.add("会议主题");
+        titles.add("会议时间");
+        titles.add("会议参加人数");
+        titles.add("会议地点");
+        titles.add("创建人");
+        titles.add("创建时间");
+
+        data.setTitles(titles);
+
+        //数据
+        List<List<Object>> rows = new ArrayList();
+        int i = 0;
+        for (PartyLifeMeetingVo item : dataList) {
+            List<Object> row = new ArrayList();
+            row.add(++i);
+            row.add(item.getPartyname());
+            row.add(item.getTitle());
+            row.add(dateUtils.dateToStrFormat(item.getMeetingdate(), "yyyy-MM-dd"));
+            row.add(item.getUsercount());
+            row.add(item.getAddress());
+            row.add(item.getCreateusername());
+            row.add(dateUtils.dateToStrFormat(item.getCreatetime(), "yyyy-MM-dd HH:mm:ss"));
+            rows.add(row);
+        }
+        data.setRows(rows);
+
+        excelHelper.exportExcel(response, excelTitle + "导出.xlsx", data);
+    }
+
 }

+ 2 - 0
src/main/java/com/ghsc/partybuild/service/impl/partyLife/MeetingServiceImpl.java

@@ -85,6 +85,7 @@ public class MeetingServiceImpl implements MeetingService {
             dbModel.setPartycode(data.getPartycode());
             dbModel.setPartylifemeetingtype(data.getPartylifemeetingtype());
             dbModel.setMeetingdate(data.getMeetingdate());
+            dbModel.setUsercount(data.getUsercount());
             dbModel.setAddress(data.getAddress());
             dbModel.setPersonnel(data.getPersonnel());
             dbModel.setResult(data.getResult());
@@ -98,6 +99,7 @@ public class MeetingServiceImpl implements MeetingService {
             dbModel.setPartycode(data.getPartycode());
             dbModel.setPartylifemeetingtype(data.getPartylifemeetingtype());
             dbModel.setMeetingdate(data.getMeetingdate());
+            dbModel.setUsercount(data.getUsercount());
             dbModel.setAddress(data.getAddress());
             dbModel.setPersonnel(data.getPersonnel());
             dbModel.setResult(data.getResult());

+ 6 - 6
src/main/resources/static/app/main/app.js

@@ -3017,15 +3017,15 @@
                     return $ocLazyLoad.load('../main/partylife/meeting/list.js?' + window.sysVersion);
                 }]
             }
-        }).state("home.pf_meetingList3", {
-            url: "pf_meetingList3",
+        }).state("home.pf_meetingTxthList", {
+            url: "pf_meetingTxthList",
             params: { "partyLifeMeetingType": 3 },
-            templateUrl: "../main/partylife/meeting/list.html?" + window.sysVersion,
-            controller: "pf_meetingListCtrl",
+            templateUrl: "../main/partylife/txth/list.html?" + window.sysVersion,
+            controller: "pf_meetingTxthListCtrl",
             resolve: {
                 load: ['$ocLazyLoad', function ($ocLazyLoad) {
-                    $ocLazyLoad.load('../main/partylife/meeting/edit.js?' + window.sysVersion);
-                    return $ocLazyLoad.load('../main/partylife/meeting/list.js?' + window.sysVersion);
+                    $ocLazyLoad.load('../main/partylife/txth/edit.js?' + window.sysVersion);
+                    return $ocLazyLoad.load('../main/partylife/txth/list.js?' + window.sysVersion);
                 }]
             }
         }).state("home.pf_meetingList4", {

+ 0 - 1
src/main/resources/static/app/main/partylife/meeting/list.js

@@ -166,6 +166,5 @@
         };
 
         $scope.loadData();
-        // $scope.getPartyLifeMeetingTypeList();
     });
 })(angular);

+ 68 - 0
src/main/resources/static/app/main/partylife/txth/edit.html

@@ -0,0 +1,68 @@
+<div class="modal" tabindex="-1" role="dialog">
+    <div class="modal-dialog" style="width: 850px;">
+        <div class="card">
+            <div class="header" dragable-header>
+                <button type="button" class="close" ng-click="$hide()">&times;</button>
+                <h4 class="modal-title">{{editParams.title}}</h4>
+            </div>
+            <div activate-input activate-select class="body">
+                <form class="form-horizontal" role="form" id="editForm"
+                      name="editForm" ng-submit="save(editForm.$valid)" novalidate>
+                    <div class="dj-formtable">
+                        <table class="dj-table">
+                            <tr>
+                                <th>所属党组织</th>
+                                <td colspan="3">
+                                    <div class="input-group input-group-search"
+                                         title="选择党组织" ng-click="selectParty()">
+                                        <input name="partyname" type="text" ng-model="dataModel.partyname"
+                                               class="form-control" ng-required="true"
+                                               ng-disabled="true"/>
+                                        <span class="input-group-addon"><i class="material-icons">search</i></span>
+                                    </div>
+                                    <span ng-show="this.editForm.partyname.$invalid &&  this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>会议主题</th>
+                                <td colspan="3" ng-class="{ 'has-error' : this.editForm.title.$invalid &&  this.editForm.$submitted}">
+                                    <input type="text" class="form-control" name="title"
+                                           ng-model="dataModel.title" ng-required="true"/>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>会议时间</th>
+                                <td ng-class="{ 'has-error' : this.editForm.meetingdate.$invalid &&  this.editForm.$submitted}">
+                                    <input name="meetingdate" class="form-control"
+                                           autocomplete="off"
+                                           autoclose="true"
+                                           data-date-format="yyyy-MM-dd" data-date-type="date"
+                                           ng-model="dataModel.meetingdate"
+                                           placeholder="" bs-datepicker ng-required="true"/>
+                                </td>
+                                <th>会议参加人数</th>
+                                <td ng-class="{ 'has-error' : this.editForm.usercount.$invalid &&  this.editForm.$submitted}">
+                                    <input type="number" class="form-control" name="usercount"
+                                           ng-model="dataModel.usercount" min="0" ng-required="true"/>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>会议地址</th>
+                                <td colspan="3" ng-class="{ 'has-error' : this.editForm.address.$invalid &&  this.editForm.$submitted}">
+                                    <input type="text" class="form-control" name="address"
+                                           ng-model="dataModel.address" ng-required="true"/>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+                    <bsfiles ng-model="reqFileModel"/>
+                    <div class="form_foot">
+                        <button type="button" class="btn btn-default" ng-click="$hide()">取消</button>
+                        <button type="submit" class="btn btn-primary" form="editForm">保存</button>
+                    </div>
+                </form>
+            </div>
+        </div>
+    </div>
+</div>

+ 87 - 0
src/main/resources/static/app/main/partylife/txth/edit.js

@@ -0,0 +1,87 @@
+var pfMeetingTxth_editCtrl = function ($scope, $http, $alert, $loading,$partySelect,AuthUser) {
+    $scope.parentLoad = pfMeetingTxth_editModal.parentLoad;
+    $scope.editParams = pfMeetingTxth_editModal.params;
+    $scope.partyLifeMeetingType = $scope.editParams.partyLifeMeetingType;
+    $scope.dataModel = {};
+    //选择党支部
+    $scope.partyConfig = {
+        scope: $scope,
+        selectedKey: '',
+        selectedText: '',
+        selectedData: [],
+        isMulti: false,
+        isshowxz: 1
+    };
+    $partySelect.initServer($scope.partyConfig);
+    $scope.$watch("partyConfig.selectedKey", function (newVal, oldVal) {
+        if (newVal) {
+            $scope.dataModel.partycode = $scope.partyConfig.selectedKey;
+            $scope.dataModel.partyname = $scope.partyConfig.selectedText;
+
+            $scope.partyConfig.selectedText = "";
+            $scope.partyConfig.selectedKey = "";
+        }
+    }, true);
+    $scope.selectParty = function () {
+        $partySelect.showModal();
+    };
+
+    $scope.reqFileModel = {
+        selectdata: {FileRefID: '', pageindex: 1, pagesize: 10, ptotal: 0},//查询参数:FileRefID为文件关联ID
+        filetype: 71,//文件类型
+        items: [],//列表数据地址
+        readonly: false,//是否只能查看
+        title: '附件',
+        addFileButton: '上传'
+    };
+
+    $scope.getData = function () {
+        $http
+        ({
+            method: 'get', url: "../../api/partylife/meeting/get",
+            params: {
+                'id': $scope.editParams.id
+            }
+        }).then(function (result) {
+            $scope.dataModel = result.data.item;
+            $scope.dataModel.partylifemeetingtype = $scope.partyLifeMeetingType;
+            $scope.reqFileModel.selectdata.FileRefID = $scope.dataModel.partylifemeetingid;
+            if(!$scope.dataModel.partycode){
+                $scope.dataModel.partycode = AuthUser.getUser().DPCode;
+                $scope.dataModel.partyname = AuthUser.getUser().DPName;
+            }
+        }, function (resp) {
+            $scope.showMsg('错误', '服务器错误:' + resp.data);
+        });
+    };
+
+    $scope.save = function (isflag) {
+        if (isflag) {
+            $loading.show();
+            $http({
+                method: "post",
+                url: "../../api/partylife/meeting/save",
+                data: $scope.dataModel
+            }).then(function (result) {
+                $loading.hide();
+                if (result.data.success) {
+                    $scope.showMsg('成功', "操作成功");
+                    //重新刷新列表
+                    $scope.parentLoad();
+                    $scope.$hide();
+                } else {
+                    $scope.showMsg('失败', result.data.msg);
+                }
+            }, function (resp) {
+                $loading.hide();
+                $scope.showMsg('错误', '服务器错误:' + resp.data);
+            });
+        }
+    };
+
+    $scope.getData();
+
+};
+
+//定义模态框
+var pfMeetingTxth_editModal;

+ 172 - 0
src/main/resources/static/app/main/partylife/txth/list.html

@@ -0,0 +1,172 @@
+<titlemenu></titlemenu>
+<div class="dj-list">
+    <div class="dj-list-body">
+        <div party-tree data-selectdzzdm="treeparams.selectdzzdm" data-selectdzzmc="treeparams.selectdzzmc"
+             data-defaultselected="treeparams.defaultselected" data-isunfold="treeparams.isunfold"></div>
+        <div class="dj-list-content">
+            <div class="card">
+                <div activate-input activate-select class="header search-header">
+                    <div fold-partytree data-isunfold="treeparams.isunfold"></div>
+                    <div class="search-param-panel">
+                        <div class="search-input">
+                            <form class="form-horizontal">
+                                <div class="row clearfix form-inline">
+                                    <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">
+                                                <div class="input-group input-group-search">
+                                                    <input name="selectdzzmc" type="text" style="min-width: 90px"
+                                                           ng-model="treeparams.selectdzzmc" class="form-control"
+                                                           ng-disabled="true"/>
+                                                    <span class="input-group-addon"
+                                                          ng-click="setisunfold()">选择</span>
+                                                </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="startDate" class="form-control fm-ct-first"
+                                                       autocomplete="off"
+                                                       autoclose="true"
+                                                       data-date-format="yyyy-MM-dd" data-date-type="string"
+                                                       ng-model="selectparams.startDate"
+                                                       ng-change="search()"
+                                                       placeholder="" bs-datepicker/>
+                                                <input name="endDate" class="form-control fm-ct-last"
+                                                       autocomplete="off"
+                                                       autoclose="true"
+                                                       data-date-format="yyyy-MM-dd" data-date-type="string"
+                                                       ng-model="selectparams.endDate"
+                                                       ng-change="search()"
+                                                       placeholder="" bs-datepicker/>
+                                            </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="name" class="form-control" type="text"
+                                                       ng-keypress="($event.which === 13)?search():0"
+                                                       ng-model="selectparams.title"
+                                                       placeholder=""/>
+
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                        <div class="search-btn" style="margin-right: 20px;">
+                            <div style="min-width: 13em">
+                                <button class="btn btn-default1"
+                                        ng-click="search()">查询
+                                </button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="search-btn" style="margin-right: 20px;">
+                        <div style="float: right">
+                            <button class="btn btn-default1"
+                                    ng-click="edit()">新增
+                            </button>
+                            <button class="btn btn-default1"
+                                    ng-click="export()">导出
+                            </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>
+                                        <input type="checkbox" id="{{pageId}}_md_checkbox_all"
+                                               class="filled-in chk-col-red" ng-checked="isAll==true"
+                                               ng-click="selectAll()"/>
+                                        <label class="checkbox_lable" style="height: 10px;"
+                                               for="{{pageId}}_md_checkbox_all"></label>
+                                    </th>
+                                    <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 class="text-center">
+                                        <input type="checkbox" id="{{pageId}}_md_checkbox_{{$index+1}}"
+                                               class="filled-in chk-col-red" ng-checked="it.checked==1"
+                                               ng-click="it.checked==1?it.checked=0:it.checked=1"/>
+                                        <label class="checkbox_lable" style="top:6px;"
+                                               for="{{pageId}}_md_checkbox_{{$index+1}}"></label>
+                                    </td>
+                                    <td scope="row" class="text-center">
+                                        {{selectparams.pagesize*(selectparams.pageindex-1)+$index+1}}
+                                    </td>
+                                    <td>{{it.partyname}}</td>
+                                    <td>{{it.title}}</td>
+                                    <td>{{it.meetingdate | date:'yyyy-MM-dd'}}</td>
+                                    <td>{{it.usercount}}</td>
+                                    <td>{{it.address}}</td>
+                                    <td>{{it.createusername}}</td>
+                                    <td>{{it.createtime | date:'yyyy-MM-dd HH:mm:ss'}}</td>
+                                </tr>
+                                <tr ng-if="dataList.length<=0">
+                                    <td colspan="15" style="text-align:center">暂无数据</td>
+                                </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                        <div class="zero-target-table-div">
+                            <table class="table table-bordered table-striped table-hover js-basic-example dataTable text-nowrap">
+                                <thead>
+                                <tr>
+                                    <th>操作</th>
+                                </tr>
+                                </thead>
+                                <tbody>
+                                <tr ng-repeat="it in dataList" zero-table-height>
+                                    <td>
+                                        <button class="btn td-btn bg-light-green waves-effect"
+                                                ng-click="edit(it.partylifemeetingid)"
+                                                title="修改">
+                                            修改
+                                        </button>
+                                        <button ng-if="!it.isProcess" class="btn td-btn bg-pink waves-effect"
+                                                ng-click="delete(it.partylifemeetingid)" title="删除">
+                                            删除
+                                        </button>
+                                    </td>
+                                </tr>
+                                <tr ng-if="pageInfo.ptotal==0">
+                                    <td colspan="1" style="text-align:center">无</td>
+                                </tr>
+                                </tbody>
+                            </table>
+                        </div>
+                    </div>
+                    <pagination data-pageindex="selectparams.pageindex" data-pagesize="selectparams.pagesize"
+                                data-ptotal="pageInfo.ptotal"></pagination>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>

+ 165 - 0
src/main/resources/static/app/main/partylife/txth/list.js

@@ -0,0 +1,165 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('pf_meetingTxthListCtrl', function ($scope, $http, $modal, $ocLazyLoad, $alert, $loading, $state, $bsRouterState, AuthUser, $timeout, $excel, $partySelect, $filter) {
+        $state.params = $bsRouterState.$params($scope);
+        $scope.loginUserId = AuthUser.getUser().Id;
+        $scope.isShow = false;
+        $scope.moreTxt = "更多";
+        $scope.title = "";
+        $scope.partyLifeMeetingType = $state.params.partyLifeMeetingType;
+        $scope.isAll = false;
+        $scope.pageId = "pf_meetingTxthList";
+
+        $scope.dataList = []; //列表数据
+        $scope.treeparams = {
+            isunfold: false,//组织结构树展开收缩
+            selectdzzdm: "",
+            selectdzzmc: "",
+            defaultselected: $state.params.dzzdm
+        };
+        $scope.selectparams = {
+            pageindex: 1,
+            pagesize: 10,
+            partyLifeMeetingType: $scope.partyLifeMeetingType,
+            dzzdm: '',
+            title: '',
+            startDate: null,
+            endDate: null
+        };
+        $scope.pageInfo = {ptotal: 0};
+
+        $scope.getPartyLifeMeetingTypeList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/dictionary/getDictionaryListByDicTypeKey',
+                params: {
+                    dicTypeKey: 'PartyLifeMeetingType'
+                }
+            }).then(function (result) {
+                $scope.title = result.data.filter(it => it.dickey == $scope.partyLifeMeetingType)[0].dicvalue;
+            });
+        };
+
+        //加载列表数据
+        $scope.loadData = function () {
+            $http
+            ({
+                method: 'get', url: '../../api/partylife/meeting/getList', params: $scope.selectparams
+            }).then(function (result) {
+                $scope.dataList = result.data.item.list;
+                $scope.pageInfo.ptotal = result.data.item.total;
+            }, function (res) {
+                $scope.showMsg('错误', '服务器错误');
+            });
+        };
+
+        $scope.search = function () {
+            $scope.loadData();
+        };
+
+        $scope.selectAll = function () {
+            $scope.isAll = !$scope.isAll;
+            angular.forEach($scope.dataList, function (item) {
+                item.checked = $scope.isAll ? 1 : 0;
+            });
+        };
+
+        //定义模态框
+        pfMeetingTxth_editCtrl.$inject = ['$scope', '$http', '$alert', '$loading','$partySelect','AuthUser'];
+        pfMeetingTxth_editModal = $modal({
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                }]
+            },
+            scope: $scope,
+            controller: pfMeetingTxth_editCtrl,
+            templateUrl: '../main/partylife/txth/edit.html',
+            show: false,
+            animation: 'am-fade-and-slide-top'
+        });
+        $scope.edit = function (id) {
+            pfMeetingTxth_editModal.params = {
+                id: id,
+                partyLifeMeetingType: $scope.partyLifeMeetingType,
+                title: (id ? "修改" : "新增") + $scope.title
+            };
+            pfMeetingTxth_editModal.parentLoad = $scope.loadData;
+            pfMeetingTxth_editModal.$promise.then(pfMeetingTxth_editModal.show);
+        };
+
+        $scope.export = 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/partylife/meeting/exportTxth' + params);
+        };
+
+        $scope.delete = function (id) {
+            var ids = [];
+            if (id)
+                ids.push(id);
+            else
+                ids = $scope.dataList.filter(it => it.checked == true).map(it => it.partylifemeetingid);
+
+            if (ids.length == 0) {
+                $scope.showMsg('消息', "请选择需要删除的数据");
+                return false;
+            }
+
+            if (confirm("确定删除?")) {
+                $loading.show();
+                $http({
+                    method: "post",
+                    url: "../../api/partylife/meeting/delete",
+                    data: {
+                        ids: JSON.stringify(ids)
+                    }
+                }).then(function (result) {
+                    $loading.hide();
+                    if (result.data.success) {
+                        $scope.showMsg('成功', result.data.msg);
+                        //重新刷新列表
+                        $scope.loadData();
+                    } else {
+                        $scope.showMsg('失败', result.data.msg);
+                    }
+                }, function (resp) {
+                    $scope.showMsg('错误', '服务器错误');
+                });
+            }
+        };
+
+        $scope.$watch("selectparams.pageindex", function (newVal, oldVal) {
+            if ($scope.pageInfo.ptotal > 0) {
+                $scope.loadData();
+            }
+        });
+        $scope.$watch("treeparams.selectdzzdm", function (newVal, oldVal) {
+            if (newVal != "") {
+                if ($scope.treeparams.defaultselected != "" && $scope.treeparams.defaultselected != null &&
+                    $scope.treeparams.defaultselected != $scope.treeparams.selectdzzdm)
+                    return;
+
+                $scope.selectparams.dzzdm = $scope.treeparams.selectdzzdm;
+
+                $scope.loadData();
+            }
+        });
+        $scope.setisunfold = function () {
+            $scope.treeparams.isunfold = !$scope.treeparams.isunfold;
+            $scope.$emit('menudatas.toggle', !$scope.treeparams.isunfold);
+        };
+        $scope.isShowClick = function () {
+            $scope.isShow = !$scope.isShow;
+            if ($scope.moreTxt == "更多") {
+                $scope.moreTxt = "收起";
+            } else if ($scope.moreTxt == "收起") {
+                $scope.moreTxt = "更多";
+            }
+        };
+
+        $scope.loadData();
+        $scope.getPartyLifeMeetingTypeList();
+    });
+})(angular);