Browse Source

述职评分管理

xiaoqiao 8 tháng trước cách đây
mục cha
commit
5a7cdf31e8

+ 1 - 0
.idea/.gitignore

@@ -6,4 +6,5 @@
 # Datasource local storage ignored files
 /dataSources/
 /dataSources.local.xml
+.idea/
 /GHSCPartyBuild.iml

+ 4 - 1
lib/数据更新脚本.txt

@@ -9,4 +9,7 @@ VALUES ('67ddad23-18a3-4336-b3ca-f148ff220589', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3
 INSERT INTO CF_MENU (MENUID, APPLICATIONID, PARENTMENUID, MNUSYSTEM, MENUORDER, MENUNO, MENUNAME, MENUPROGRAM, MENUPIC, MENUDESC, ISVISIBLE, ISLEAF, ISBLANK)
 VALUES ('3c57eec8-fcb7-4cbd-a910-92633f2d8874', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '9912122b-15d2-4e93-ac5e-06e4b091ee65', null, 3, '../main/index-dsj.html#!/teams', '党员队伍', null, null, null, 1, 1, 1);
 INSERT INTO CF_MENU (MENUID, APPLICATIONID, PARENTMENUID, MNUSYSTEM, MENUORDER, MENUNO, MENUNAME, MENUPROGRAM, MENUPIC, MENUDESC, ISVISIBLE, ISLEAF, ISBLANK)
-VALUES ('e1c6f537-cc54-4f39-939a-afb65ae7086b', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '9912122b-15d2-4e93-ac5e-06e4b091ee65', null, 5, '../main/index-dsj.html#!/showDjdsj_dwdt', '党务动态', null, null, null, 1, 1, 1);
+VALUES ('e1c6f537-cc54-4f39-939a-afb65ae7086b', 'f0c4fa7f9f3c4fb6bd56aac608b7ad3f', '9912122b-15d2-4e93-ac5e-06e4b091ee65', null, 5, '../main/index-dsj.html#!/showDjdsj_dwdt', '党务动态', null, null, null, 1, 1, 1);
+
+--7.05
+update cf_menu set MENUNO='home.reportDataScore',MENUNAME='述职评议评分' where MENUID='2237844c-2194-430f-bef7-ea68469c9f33'

+ 138 - 0
src/main/java/com/ghsc/partybuild/controller/ReportDataController.java

@@ -0,0 +1,138 @@
+package com.ghsc.partybuild.controller;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ghsc.partybuild.controller.jsonmodel.RequsetData;
+import com.ghsc.partybuild.model.PtChecknamelist;
+import com.ghsc.partybuild.model.PtCheckparty;
+import com.ghsc.partybuild.service.CheckDataService;
+import com.ghsc.partybuild.service.ReportDataService;
+import com.ghsc.partybuild.service.UserService;
+import com.ghsc.partybuild.util.DateUtils;
+import com.ghsc.partybuild.util.FtpHelper;
+import com.github.pagehelper.PageInfo;
+import org.apache.commons.net.ftp.FTP;
+import org.apache.commons.net.ftp.FTPClient;
+import org.apache.tools.zip.ZipEntry;
+import org.apache.tools.zip.ZipOutputStream;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.List;
+
+@RestController
+@RequestMapping(value = "/api/reportData")
+public class ReportDataController {
+    @Resource
+    private ReportDataService reportDataService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private DateUtils dateUtils;
+    @Autowired
+    FtpHelper ftpHelper;
+
+    @ResponseBody
+    @GetMapping("/getReportdataList")
+    public RequsetData<PageInfo<HashMap<String, Object>>> getReportdataList(int pageindex, int pagesize, Integer year, String dzzdm, String reportUserName) {
+        RequsetData<PageInfo<HashMap<String, Object>>> result = new RequsetData<>();
+        result.setItem(reportDataService.getReportdataList(pageindex, pagesize, year, dzzdm, reportUserName));
+        return result;
+    }
+
+
+    @ResponseBody
+    @PostMapping("/saveReportData")
+    public RequsetData<Integer> saveReportData(@RequestBody JSONObject mJson) {
+        RequsetData<Integer> res = new RequsetData<>();
+        try {
+            Integer year = mJson.getInteger("year");
+            JSONArray userlist = mJson.getJSONArray("userlist");
+
+            String userId = userService.getLoginUser().getUserid();
+            String userName = userService.getUserInfobyId(userService.getLoginUser().getUserid()).getName();
+            int id = reportDataService.saveReportData(year, userId, userName, userlist);
+            res.setItem(id);
+            res.setMsg("保存成功!");
+        } catch (Exception ex) {
+            res.setMsg("保存失败:" + ex.getMessage());
+            res.setSuccess(false);
+        }
+        return res;
+    }
+    @ResponseBody
+    @GetMapping("/changeReportDataStatus")
+    public RequsetData<Integer> changeReportDataStatus(String reportId) {
+        RequsetData<Integer> res = new RequsetData<>();
+        res.setMsg("操作成功!");
+        String userId = userService.getLoginUser().getUserid();
+        String userName = userService.getUserInfobyId(userService.getLoginUser().getUserid()).getName();
+        res.setItem(reportDataService.changeReportDataStatus(reportId,userId, userName));
+        return res;
+    }
+    @RequestMapping("/downReportDataZip")
+    public String downReportDataZip(HttpServletResponse response,
+                                   String year,
+                                   HttpServletRequest request) {
+        ZipOutputStream out=null;
+        String fileName = String.format("%s年度述职材料.zip", year);
+        try {
+            ByteArrayOutputStream fileOStream = new ByteArrayOutputStream();
+            out = new ZipOutputStream(fileOStream);
+            out.setEncoding("gbk");
+            List<HashMap<String, Object>> dataList = reportDataService.getReportDataFleList(year);
+            FTPClient ftpClient = new FTPClient();
+            ftpHelper.connectToServer(ftpClient);
+            ftpClient.enterLocalPassiveMode();
+            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
+
+            for (HashMap<String, Object> item : dataList) {
+                //打包显示的文件名
+                String fileExt = item.get("fileurl").toString().substring(item.get("fileurl").toString().lastIndexOf(".")).toLowerCase();
+                out.putNextEntry(new ZipEntry(String.format("%s_%s(%s)%s", item.get("dzzdm").toString(), item.get("reportusername"), item.get("dzzmc"), fileExt)));
+                ftpClient.retrieveFile(item.get("fileurl").toString(), out);
+                out.flush();
+                out.closeEntry();
+            }
+            ftpHelper.closeConnect(ftpClient);
+            //所有文件写完后一定要关闭输出流,否则文件下载会不完整。
+            out.flush();
+            out.close();
+            //将zip文件写入响应
+            String name;
+            String agent = request.getHeader("USER-AGENT");
+            if (agent != null && agent.toLowerCase().indexOf("firefox") > 0) {
+                name = "=?UTF-8?B?" + (Base64.getEncoder().encodeToString(fileName.getBytes("UTF-8"))) + "?=";
+            } else {
+                name = URLEncoder.encode(fileName, "UTF-8");
+            }
+            response.setContentType("application/force-download");// 设置强制下载不打开
+            response.setContentType("multipart/form-data;charset=UTF-8");
+            response.setContentType("application/octet-stream");
+            response.addHeader("Content-Disposition", "attachment;filename=" + name);
+
+            OutputStream os = response.getOutputStream();
+            fileOStream.writeTo(os);
+            os.flush();
+        } catch (Exception e) {
+            if (out != null) {
+                try {
+                    out.close();
+                } catch (IOException ie) {
+                    ie.printStackTrace();
+                }
+            }
+            throw new RuntimeException();
+        }
+        return "";
+    }
+}

+ 13 - 0
src/main/java/com/ghsc/partybuild/mapper/cquery/ReportDataCQuery.java

@@ -0,0 +1,13 @@
+package com.ghsc.partybuild.mapper.cquery;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.HashMap;
+import java.util.List;
+
+public interface ReportDataCQuery {
+
+    List<HashMap<String,Object>> selectReportdataList(Integer year, String dzzdm, String reportUserName);
+
+    List<HashMap<String,Object>> selectReportDataFleList(@Param("year") String year);
+}

+ 18 - 0
src/main/java/com/ghsc/partybuild/service/ReportDataService.java

@@ -0,0 +1,18 @@
+package com.ghsc.partybuild.service;
+
+import com.alibaba.fastjson.JSONArray;
+import com.ghsc.partybuild.model.PtChecknamelist;
+import com.github.pagehelper.PageInfo;
+
+import java.util.HashMap;
+import java.util.List;
+
+public interface ReportDataService {
+    PageInfo<HashMap<String, Object>> getReportdataList(int pageIndex, int pageSize, Integer year, String dzzdm, String reportUserName);
+
+    int saveReportData(Integer year, String userId, String userName, JSONArray userlist);
+
+    Integer changeReportDataStatus(String reportId, String userId, String userName);
+
+    List<HashMap<String, Object>> getReportDataFleList(String year);
+}

+ 76 - 0
src/main/java/com/ghsc/partybuild/service/impl/ReportDataServiceImpl.java

@@ -0,0 +1,76 @@
+package com.ghsc.partybuild.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.ghsc.partybuild.mapper.PtReportdataMapper;
+import com.ghsc.partybuild.mapper.cquery.ReportDataCQuery;
+import com.ghsc.partybuild.model.PtChecknamelist;
+import com.ghsc.partybuild.model.PtReportdata;
+import com.ghsc.partybuild.model.PtReportdataExample;
+import com.ghsc.partybuild.service.ReportDataService;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+
+@Service("reportDataService")
+public class ReportDataServiceImpl implements ReportDataService {
+    @Autowired
+    private PtReportdataMapper reportdataMapper;
+    @Autowired
+    private ReportDataCQuery reportDataCQuery;
+
+    @Override
+    public PageInfo<HashMap<String, Object>> getReportdataList(int pageIndex, int pageSize, Integer year, String dzzdm, String reportUserName) {
+
+        PageHelper.startPage(pageIndex, pageSize);
+        List<HashMap<String, Object>> list = reportDataCQuery.selectReportdataList(year, dzzdm, reportUserName);
+
+        PageInfo<HashMap<String, Object>> result = new PageInfo(list);
+
+        return result;
+    }
+
+    @Override
+    public int saveReportData(Integer year, String userId, String userName, JSONArray userlist) {
+        for (int n = 0; n < userlist.size(); n++) {
+            JSONObject user = (JSONObject) userlist.get(n);
+            PtReportdataExample example = new PtReportdataExample();
+            example.or().andYearEqualTo(year).andReportuseridEqualTo(user.getString("userNo"));
+            PtReportdata data = reportdataMapper.selectByExample(example).stream().findFirst().orElse(null);
+            if (data == null) {
+                data = new PtReportdata();
+                data.setReportid(UUID.randomUUID().toString());
+                data.setReportuserid(user.getString("userNo"));
+                data.setReportusername(user.getString("XM"));
+                data.setYear(year);
+                data.setDzzdm(user.getString("SZDZBDM"));
+                data.setRecordstatus(0);
+                data.setCreatetime(new Date());
+                data.setCreateuserid(userId);
+                data.setCreateusername(userName);
+                reportdataMapper.insertSelective(data);
+            }
+        }
+        ;
+        return 1;
+    }
+
+    @Override
+    public Integer changeReportDataStatus(String reportId, String userId, String userName) {
+        PtReportdata record = new PtReportdata();
+        record.setReportid(reportId);
+        record.setRecordstatus(1);
+        record.setUpdatetime(new Date());
+        record.setUpdateuserid(userId);
+        record.setUpdateusername(userName);
+        return reportdataMapper.updateByPrimaryKeySelective(record);
+    }
+
+    @Override
+    public List<HashMap<String, Object>> getReportDataFleList(String year) {
+        return reportDataCQuery.selectReportDataFleList(year);
+    }
+}

+ 38 - 0
src/main/resources/mapping/CQuery/PtReportDataCQuery.xml

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ghsc.partybuild.mapper.cquery.ReportDataCQuery">
+
+    <select id="selectReportdataList" resultType="java.util.HashMap">
+        select prd.reportid, prd.dzzdm, prd.year, prd.reportuserid, prd.reportusername, prd.recordstatus,
+        prd.createtime, prd.createuserid, prd.createusername, prd.updatetime, prd.updateuserid, prd.updateusername
+        ,zz.dzzmc,file.filenames from pt_reportdata prd
+        inner join ZZ_ZZQKXX zz on prd.dzzdm = zz.DZZDM
+        left join(
+        select fl.FILEREFID, GROUP_CONCAT(FILENAME order by FILENAME SEPARATOR ', ') as filenames
+        from cf_file fl
+        group by fl.FILEREFID
+        ) file on prd.reportId =file.FILEREFID
+        <where>
+            <if test="year != null">
+                and prd.year = #{year}
+            </if>
+            <if test="dzzdm != null and dzzdm != ''">
+                and prd.dzzdm like concat('%',#{dzzdm},'%')
+            </if>
+            <if test="reportUserName != null and reportUserName != ''">
+                and prd.reportUserName =#{reportUserName}
+            </if>
+        </where>
+    </select>
+    <select id="selectReportDataFleList" resultType="java.util.HashMap" parameterType="java.lang.String">
+        select prd.reportid, prd.dzzdm, prd.year, prd.reportuserid, prd.reportusername, prd.recordstatus,
+        prd.createtime, prd.createuserid, prd.createusername, prd.updatetime, prd.updateuserid, prd.updateusername
+        ,zz.dzzmc,cf.filename,cf.fileurl
+        from pt_reportdata prd inner join ZZ_ZZQKXX zz on prd.dzzdm = zz.DZZDM
+        left join cf_file cf on prd.reportid = cf.FILEREFID
+        where prd.recordstatus=1
+        <if test="year != null and year != ''">
+            and prd.year = #{year}
+        </if>
+    </select>
+</mapper>

+ 18 - 0
src/main/resources/static/app/main/app.js

@@ -3808,6 +3808,24 @@
                     return $ocLazyLoad.load('../main/party/checkScore/list.js?' + window.sysVersion);
                 }]
             }
+        }).state("home.reportData", {
+            url: "reportData",
+            templateUrl: "../main/party/reportData/list.html?" + window.sysVersion,
+            controller: "reportDataCtrl",
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    return $ocLazyLoad.load('../main/party/reportData/list.js?' + window.sysVersion);
+                }]
+            }
+        }).state("home.reportDataScore", {
+            url: "reportDataScore",
+            templateUrl: "../main/party/reportScore/list.html?" + window.sysVersion,
+            controller: "reportDataScoreCtrl",
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                    return $ocLazyLoad.load('../main/party/reportScore/list.js?' + window.sysVersion);
+                }]
+            }
         });
 
         $bsRouterStateProvider.copyUrlState($stateProvider.getStates());

+ 3 - 3
src/main/resources/static/app/main/party/checkData/list.html

@@ -86,7 +86,7 @@
                             <button class="btn  btn-default1"
                                     ng-click="export()">导出
                             </button>
-                            <button class="btn btn-default1" role-permission-code="ztdrxx.btn.btnAdd"
+                            <button class="btn btn-default1"
                                     ng-click="add()">新增
                             </button>
                         </div>
@@ -140,13 +140,13 @@
                                 <tbody>
                                 <tr ng-repeat="it in dataList" zero-table-height>
                                     <td class="text-center">
-                                        <button role-permission-code="ztdrxx.btn.btnEdit"
+                                        <button
                                                 class="btn td-btn bg-light-green waves-effect"
                                                 ng-click="edit(it.dataid)"
                                                 title="修改">
                                             修改
                                         </button>
-                                        <button role-permission-code="ztdrxx.btn.btnDel"
+                                        <button
                                                 class="btn td-btn bg-pink waves-effect"
                                                 ng-click="delete(it.dataid)" title="删除">
                                             删除

+ 3 - 3
src/main/resources/static/app/main/party/checkNameList/list.html

@@ -138,7 +138,7 @@
                             <button class="btn  btn-default1"
                                     ng-click="export()">导出
                             </button>
-                            <button class="btn btn-default1" role-permission-code="ztdrxx.btn.btnAdd"
+                            <button class="btn btn-default1"
                                     ng-click="add()">新增
                             </button>
                         </div>
@@ -207,13 +207,13 @@
                                                 title="禁用">
                                             禁用
                                         </button>
-                                        <button role-permission-code="ztdrxx.btn.btnEdit"
+                                        <button
                                                 class="btn td-btn bg-light-green waves-effect"
                                                 ng-click="edit(it.nameid)"
                                                 title="修改">
                                             修改
                                         </button>
-                                        <button role-permission-code="ztdrxx.btn.btnDel"
+                                        <button
                                                 class="btn td-btn bg-pink waves-effect"
                                                 ng-click="delete(it.nameid)" title="删除">
                                             删除

+ 52 - 0
src/main/resources/static/app/main/party/reportData/edit.html

@@ -0,0 +1,52 @@
+<div class="modal" tabindex="-1" role="dialog">
+    <div class="modal-dialog" style="width: 900px;">
+        <div class="card">
+            <div class="header">
+                <button type="button" class="close" ng-click="$hide()">&times;</button>
+                <h4 class="modal-title">{{params.title}}</h4>
+            </div>
+            <div activate-input 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 ng-class="{ 'has-error' : this.editForm.year.$invalid &&  this.editForm.$submitted}">
+                                    <input name="year" class="form-control" ng-model="dataModel.year"
+                                           data-date-type="string" data-date-format="yyyy" type="text"
+                                           data-start-view="2" data-min-view="2" autoclose="true" bs-datepicker
+                                           ng-required="true"/>
+                                    <span ng-show="this.editForm.year.$invalid && this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>
+                                    选择成员
+                                </th>
+                                <td ng-class="{ 'has-error' : this.editForm.checkusername.$invalid &&  this.editForm.$submitted}">
+                                    <div class="input-group input-group-search"
+                                         data-dataoptions="selectUserlist"
+                                         title="选择成员" bsselectdata-pro>
+                                        <input name="checkusername" type="text" ng-model="selectUserlist.selectedLabeData"
+                                               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.checkusername.$invalid && this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+
+                    <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>

+ 158 - 0
src/main/resources/static/app/main/party/reportData/list.html

@@ -0,0 +1,158 @@
+<titlemenu></titlemenu>
+<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"
+        ></div>
+        <div class="dj-list-content">
+            <div class="card">
+                <div activate-input activate-select class="header search-header">
+                    <div fold-partytree data-isunfold="selectparams.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="selectparams.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">
+                                                <select class="form-control show-tick" ng-model="selectparams.year" ng-change="search()"
+                                                        ng-options="type.dickey as type.dicvalue for type in yearList"
+                                                        class="form-control"
+                                                        name="year">
+                                                    <option value="" selected>--全部--</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <label>姓名</label>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <input name="reportUserName" class="form-control" type="text"
+                                                       ng-model="selectparams.reportUserName"
+                                                       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>
+                                <button  class="btn btn-default1 btn-reset"
+                                        ng-click="reset()">重置
+                                </button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="search-btn" style="margin-right: 20px;">
+                        <div style="float: right">
+                            <button class="btn  btn-default1"
+                                    ng-click="generate()">生成述职名单
+                            </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 class="th-select" th-select-all datalist="dataList"></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-model="it.rowChecked" />
+                                        <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.dzzmc}}</td>
+                                    <td>{{it.reportusername}}</td>
+                                    <td class="text-center">{{it.year}}</td>
+                                    <td>{{it.recordstatus==1?"已上传":"未上传"}}</td>
+                                    <td>{{it.filenames}}</td>
+                                    <td>{{it.updateusername}}</td>
+                                    <td>{{it.updatetime|date:'yyyy-MM-dd'}}</td>
+                                </tr>
+                                <tr ng-if="pageInfo.ptotal==0">
+                                    <td colspan="9" 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>
+                                <th>操作</th>
+                                </thead>
+                                <tbody>
+                                <tr ng-repeat="it in dataList" zero-table-height>
+                                    <td class="text-center">
+                                        <button
+                                                class="btn td-btn bg-pink waves-effect"
+                                                ng-click="uploadFile(it.reportid)" title="上传">
+                                            上传
+                                        </button>
+                                    </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>

+ 222 - 0
src/main/resources/static/app/main/party/reportData/list.js

@@ -0,0 +1,222 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('reportDataCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout, $alert, $loading, $state, AuthUser, $bsfiles, $partySelect, $stateParams, $bsRouterState) {
+        $state.params = $bsRouterState.$params($scope);
+        $scope.isShow = false;
+        $scope.moreTxt = "更多";
+        $scope.pageId = "checkNameList";
+
+        //定义数据集合
+        $scope.dataList = []; //列表数据
+        $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: '',
+            dzzmc: '',
+            recordStatus: null,
+            year: null,
+            userid: AuthUser.getUser().Id,
+            onlyshow_dw: $stateParams.type == 1 ? 1 : 0,
+            reportUserName: '',
+            partyCode: '',
+            partyName: ''
+        };
+
+        $scope.pageInfo = {ptotal: 0};
+        //监视页数变化
+        $scope.$watch("selectparams.pageindex", function (newVal, oldVal) {
+            if ($scope.pageInfo.ptotal > 0) {
+                $scope.loadData();
+            }
+        });
+        //监视党组织选中变化
+        $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.selectparams.dzzdm = $scope.selectparams.selectdzzdm;
+                $scope.loadData();
+            }
+        });
+
+        //查询
+        $scope.search = function () {
+            $scope.loadData();
+        };
+        $scope.getYearsList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/dictionary/getDictionaryListByDicTypeKey',
+                params: {dicTypeKey: 'years'}
+            }).then(function (result) {
+                $scope.yearList = result.data;
+            }, function (resp) {
+
+            });
+        };
+        $scope.getYearsList();
+
+        //加载列表数据
+        $scope.loadData = function () {
+            $http
+            ({
+                method: 'get', url: '../../api/reportData/getReportdataList', params: $scope.selectparams
+            }).then(function (result) {
+                $scope.dataList = result.data.item.list;
+                $scope.pageInfo.ptotal = result.data.item.total;
+            });
+        };
+
+        var editCtrl = function ($scope, $http, $partySelect) {
+            $scope.params = editModal.params;
+            $scope.dataModel = editModal.data;
+            $scope.userlist = [];
+
+            $scope.selectUserlist = {
+                url: '../../api/partyUser/getPartyUserList',
+                title: '人员选择',
+                isMulti: true,
+                selectData: {xm: '姓名', szdzb: '所在组织架构'},
+                columns: {XM: '姓名', XBMC: '性别', JG: '籍贯', DZZMC: '所在组织架构'},
+                selectLabelKey: 'XM',
+                selectValuekey: 'RYJBXXBS',
+                selectedValueData: '',
+                selectedLabeData: '',
+                selectedJData: [],
+                selectParams: {
+                    ryzt: '2,3',
+                    dzzdm: AuthUser.getUser().DataDzzdm
+                },
+                onSelect: function (selectIds, selecteds) {
+                    $scope.userlist = selecteds;
+                }
+            };
+
+            //保存
+            $scope.save = function (isflag) {
+                if (isflag) {
+                    $loading.show();
+                    $http({
+                        method: "post",
+                        url: "../../api/reportData/saveReportData",
+                        data: {
+                            year: $scope.dataModel.year,
+                            userlist: $scope.userlist
+                        }
+                    }).then(function (result) {
+                        $loading.hide();
+                        if (result.data.success) {
+                            $scope.showMsg('成功', result.data.msg);
+                            //重新刷新列表
+                            $scope.loadData();
+                            $scope.$hide();
+                        } else {
+                            $scope.showMsg('失败', result.data.msg);
+                        }
+                    }, function (resp) {
+                        $loading.hide();
+                        $scope.showMsg('错误', '服务器错误');
+                    });
+                }
+            };
+        };
+        editCtrl.$inject = ['$scope', '$http', '$partySelect'];
+        //定义模态框
+        var editModal = $modal({
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                }]
+            },
+            scope: $scope,
+            controller: editCtrl,
+            templateUrl: '../main/party/reportData/edit.html',
+            show: false,
+            animation: 'am-fade-and-slide-top'
+        });
+
+        //新增编辑
+        $scope.generate = function () {
+            editModal.params = {
+                title: '生成述职名单'
+            };
+            editModal.data = {};
+            editModal.$promise.then(editModal.show);
+        };
+
+        $scope.uploadFile = function (reportId) {
+            $bsfiles.addFile({
+                selectdata: {FileRefID: reportId, pageindex: 1, pagesize: 10, ptotal: 0},
+                readonly: false,
+                filetype: 1,
+                typeparams: {
+                    types: ['doc', 'docx', 'xls', 'xlsx', 'pdf'],
+                    errormsg: '不允许上传的文件格式'
+                }
+            }).then(function (fid) {
+                $http({
+                    method: 'get',
+                    url: '../../api/reportData/changeReportDataStatus',
+                    params: {reportId: reportId}
+                }).then(function (result) {
+                    $scope.loadData();
+                }, function (resp) {
+                });
+            });
+        }
+        $scope.export = function () {
+            if ($scope.selectparams.year == '' || $scope.selectparams.year == null) {
+                $scope.showMsg("消息", '请选择年度');
+                return;
+            }
+            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/reportData/downReportDataZip' + params);
+        };
+
+        $scope.showMsg = function (title, content) {
+            $alert({
+                title: title + ':',
+                content: content,
+                placement: 'top',
+                type: 'info',
+                show: true,
+                duration: 3
+            });
+
+        };
+        $scope.isShowClick = function () {
+            $scope.isShow = !$scope.isShow;
+            if ($scope.moreTxt == "更多") {
+                $scope.moreTxt = "收起";
+            } else if ($scope.moreTxt == "收起") {
+                $scope.moreTxt = "更多";
+            }
+        };
+        $scope.setisunfold = function () {
+            $scope.selectparams.isunfold = !$scope.selectparams.isunfold;
+            $scope.$emit('menudatas.toggle', !$scope.selectparams.isunfold);
+        };
+        $scope.reset = function () {
+            $scope.selectparams.year = null;
+            $scope.selectparams.selectdzzmc = '';
+            $scope.selectparams.reportUserName = '';
+        }
+    });
+})(angular);

+ 83 - 0
src/main/resources/static/app/main/party/reportScore/edit.html

@@ -0,0 +1,83 @@
+<div class="modal" tabindex="-1" role="dialog">
+    <div class="modal-dialog" style="width: 900px;">
+        <div class="card">
+            <div class="header">
+                <button type="button" class="close" ng-click="$hide()">&times;</button>
+                <h4 class="modal-title">{{params.title}}</h4>
+            </div>
+            <div activate-input 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 ng-class="{ 'has-error' : this.editForm.checkusername.$invalid &&  this.editForm.$submitted}">
+                                    <div class="input-group input-group-search"
+                                         data-dataoptions="selectUserlist"
+                                         title="选择成员" bsselectdata-pro>
+                                        <input name="checkusername" type="text" ng-model="dataModel.checkusername"
+                                               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.checkusername.$invalid && this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                                <th>所在党组织</th>
+                                <td>
+                                    {{dataModel.dzzmc}}
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>年份</th>
+                                <td ng-class="{ 'has-error' : this.editForm.year.$invalid &&  this.editForm.$submitted}">
+                                    <input name="year" class="form-control" ng-model="dataModel.year"
+                                           data-date-type="string" data-date-format="yyyy" type="text"
+                                           data-start-view="2" data-min-view="2" autoclose="true" bs-datepicker
+                                           ng-required="true"/>
+                                    <span ng-show="this.editForm.year.$invalid && this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                                <th>季度</th>
+                                <td ng-class="{ 'has-error' : this.editForm.quarter.$invalid &&  this.editForm.$submitted}">
+                                    <select class="form-control show-tick" ng-model="dataModel.quarter"
+                                            ng-options="type.dickey as type.dicvalue for type in quarterList"
+                                            class="form-control"
+                                            name="quarter" ng-required="true">
+                                        <option value="" selected>--全部--</option>
+                                    </select>
+                                    <span ng-show="this.editForm.year.$invalid && this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                            </tr>
+                            <tr>
+                                <th>检查支部</th>
+                                <td colspan="3"
+                                    ng-class="{ 'has-error' : this.editForm.helpReason.$invalid &&  this.editForm.$submitted}">
+                                    <div class="input-group input-group-search"
+                                         data-dataoptions="selectPartyOption"
+                                         title="选择支部" bsselectdata-pro>
+                                        <input name="checkPartyList" type="text" ng-model="selectPartyOption.selectedLabeData"
+                                               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.checkPartyList.$invalid &&  this.editForm.$submitted"
+                                          class="error">必填.</span>
+                                </td>
+                            </tr>
+                        </table>
+                    </div>
+
+                    <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>

+ 206 - 0
src/main/resources/static/app/main/party/reportScore/list.html

@@ -0,0 +1,206 @@
+<titlemenu></titlemenu>
+<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"
+        ></div>
+        <div class="dj-list-content">
+            <div class="card">
+                <div activate-input activate-select class="header search-header">
+                    <div fold-partytree data-isunfold="selectparams.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="selectparams.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">
+                                                <select class="form-control show-tick" ng-model="selectparams.year" ng-change="search()"
+                                                        ng-options="type.dickey as type.dicvalue for type in yearList"
+                                                        class="form-control"
+                                                        name="year">
+                                                    <option value="" selected>--全部--</option>
+                                                </select>
+                                            </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">
+                                                <select class="form-control show-tick" ng-model="selectparams.quarter" ng-change="search()"
+                                                        ng-options="type.dickey as type.dicvalue for type in quarterList"
+                                                        class="form-control"
+                                                        name="quarter">
+                                                    <option value="" selected>--全部--</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                                <div class="row clearfix form-inline" ng-show="isShow">
+                                    <div class="col-lg-2 col-md-2">
+                                        <label>核查人员姓名</label>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <div class="form-group">
+                                            <div class="form-line">
+                                                <input name="checkUserName" class="form-control" type="text"
+                                                       ng-model="selectparams.checkUserName"
+                                                       placeholder=""/>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="col-lg-2 col-md-2">
+                                        <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"
+                                                     title="选择党组织" ng-click="selectParty()">
+                                                    <input name="partyname" type="text" ng-model="selectparams.partyName"
+                                                           class="form-control"
+                                                           ng-disabled="true"/>
+                                                    <span class="input-group-addon"><i class="material-icons">search</i></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">
+                                                <select class="form-control show-tick" ng-model="selectparams.recordStatus" ng-change="search()"
+                                                        ng-options="type.dickey as type.dicvalue for type in enableStatusList"
+                                                        class="form-control"
+                                                        name="recordStatus">
+                                                    <option value="" selected>--全部--</option>
+                                                </select>
+                                            </div>
+                                        </div>
+                                    </div>
+                                </div>
+                            </form>
+                        </div>
+                        <div class="search-btn" style="margin-right: 20px;">
+                            <div style="min-width: 13em">
+                                <span class="moreSpan" ng-click="isShowClick()" style='padding-right:1em;cursor:pointer;'>{{moreTxt}}<i class="material-icons" style="position: relative;top:7px;">{{isShow ? 'expand_less' : 'expand_more'}}</i></span>
+                                <button class="btn btn-default1"
+                                        ng-click="search()">查询
+                                </button>
+                                <button  class="btn btn-default1 btn-reset"
+                                        ng-click="reset()">重置
+                                </button>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="search-btn" style="margin-right: 20px;">
+                        <div style="float: right">
+                            <button class="btn btn-default1"
+                                    ng-click="add()">新增
+                            </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 class="th-select" th-select-all datalist="dataList"></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-model="it.rowChecked" />
+                                        <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.year}}</td>
+                                    <td>{{it.quarter}}</td>
+                                    <td class="text-center">{{it.checkusername}}</td>
+                                    <td>{{it.dzzmc}}</td>
+
+                                    <td>{{it.partynames}}</td>
+                                    <td class="text-center">{{it.recordstatus==1?"启用":"禁用"}}</td>
+
+                                </tr>
+                                <tr ng-if="pageInfo.ptotal==0">
+                                    <td colspan="9" 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>
+                                <th>操作</th>
+                                </thead>
+                                <tbody>
+                                <tr ng-repeat="it in dataList" zero-table-height>
+                                    <td class="text-center">
+
+                                        <button
+                                                class="btn td-btn bg-pink waves-effect"
+                                                ng-click="delete(it.nameid)" title="删除">
+                                            删除
+                                        </button>
+                                    </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>

+ 368 - 0
src/main/resources/static/app/main/party/reportScore/list.js

@@ -0,0 +1,368 @@
+(function ($app) {
+    $app.module('gtPartyApp').controller('reportDataScoreCtrl', function ($scope, $http, $modal, $ocLazyLoad, $timeout,$alert, $loading, $state, AuthUser, $partySelect,$stateParams,$bsRouterState) {
+        $state.params = $bsRouterState.$params($scope);
+        $scope.isShow = false;
+        $scope.moreTxt = "更多";
+        $scope.pageId = "checkNameList";
+
+        //定义数据集合
+        $scope.dataList = []; //列表数据
+        $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: '',
+            dzzmc: '',
+            recordStatus: null,
+            year: null,
+            quarter: null,
+            userid: AuthUser.getUser().Id,
+            onlyshow_dw: $stateParams.type == 1 ? 1 : 0,
+            checkUserName: '',
+            partyCode: '',
+            partyName: ''
+        };
+
+        $scope.pageInfo = {ptotal: 0};
+        //监视页数变化
+        $scope.$watch("selectparams.pageindex", function (newVal, oldVal) {
+            if ($scope.pageInfo.ptotal > 0) {
+                $scope.loadData();
+            }
+        });
+        //监视党组织选中变化
+        $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.selectparams.dzzdm = $scope.selectparams.selectdzzdm;
+                $scope.loadData();
+            }
+        });
+        //选择党支部begin
+        $scope.partyTreeConfig = {
+            scope: $scope,
+            selectedKey: '',
+            selectedText: '',
+            selectedData: [],
+            isMulti: false,
+            isshowxz: 0
+        };
+        $partySelect.initServer($scope.partyTreeConfig);
+        $scope.selectParty = function () {
+            $partySelect.showModal();
+        };
+        $scope.$watch("partyTreeConfig.selectedKey", function (newVal, oldVal) {
+            if (newVal) {
+                $scope.selectparams.partyCode = $scope.partyTreeConfig.selectedKey;
+                $scope.selectparams.partyName = $scope.partyTreeConfig.selectedText;
+                $scope.search();
+            }
+        }, true);
+
+        //查询
+        $scope.search = function () {
+            $scope.loadData();
+        };
+        $scope.getYearsList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/dictionary/getDictionaryListByDicTypeKey',
+                params: {dicTypeKey: 'years'}
+            }).then(function (result) {
+                $scope.yearList = result.data;
+            }, function (resp) {
+
+            });
+        };
+        $scope.getYearsList();
+
+        $scope.getQuartersList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/dictionary/getQuartersList',
+                params: {}
+            }).then(function (result) {
+                $scope.quarterList = result.data;
+            }, function (resp) {
+
+            });
+        };
+        $scope.getQuartersList();
+
+        $scope.enableStatusList=[];
+        $scope.getEnableStatusList = function () {
+            $http({
+                method: 'get',
+                url: '../../api/dictionary/getDictionaryListByDicTypeKey',
+                params: {dicTypeKey: 'EnableStatus'}
+            }).then(function (result) {
+                $scope.enableStatusList = result.data;
+            }, function (resp) {
+
+            });
+        };
+        $scope.getEnableStatusList();
+
+        //加载列表数据
+        $scope.loadData = function () {
+            $http
+            ({
+                method: 'get', url: '../../api/checkdata/getCheckNameList', params: $scope.selectparams
+            }).then(function (result) {
+                $scope.dataList = result.data.item.list;
+                $scope.pageInfo.ptotal = result.data.item.total;
+            });
+        };
+
+        var editCtrl = function ($scope, $http,$partySelect) {
+            $scope.params = editModal.params;
+            $scope.dataModel = editModal.data;
+
+            $scope.selectUserlist = {
+                url: '../../api/partyUser/getPartyUserList',
+                title: '人员选择',
+                isMulti: false,
+                selectData: {xm: '姓名', szdzb: '所在组织架构'},
+                columns: {XM: '姓名', XBMC: '性别', JG: '籍贯', DZZMC: '所在组织架构'},
+                selectLabelKey: 'XM',
+                selectValuekey: 'RYJBXXBS',
+                selectedValueData: '',
+                selectedLabeData: '',
+                selectedJData: [],
+                selectParams: {
+                    ryzt: '2,3',
+                    dzzdm: AuthUser.getUser().DataDzzdm
+                },
+                onSelect: function (value, item) {
+                    if (item) {
+                        $scope.dataModel.checkusername = item.XM;
+                        $scope.dataModel.checkuserid = item.RYBM;
+                        $scope.dataModel.dzzmc = item.DZZMC;
+                        $scope.dataModel.dzzdm = item.SZDZBDM;
+                    }
+                }
+            };
+
+            $scope.checkPartyList=[];
+            //选择人员
+            $scope.selectPartyOption = {
+                url: '../../api/party/getPartyList',
+                title: '选择支部',
+                isMulti: true,
+                selectData: {dzzmc: '党组织名称', dzzdm: '党组织编码'},
+                columns: {DZZMC: '党组织名称', DZZDM: '党组织编码', ZZLBMC: '组织类别'},
+                selectLabelKey: 'DZZMC',
+                selectValuekey: 'DZZDM',
+                selectedValueData: $scope.dataModel.partcodes,
+                selectedLabeData: $scope.dataModel.partynames,
+                selectedJData: [],
+                selectParams: {
+                    zzlbList:'400',
+                    dzzdm: $scope.dataModel.takecarepartycode || AuthUser.getUser().DataDzzdm
+                },
+                onSelect: function (value) {
+                    /*$scope.checkPartyList=[];
+                    if (selecteds && selecteds.length > 0) {
+                        selecteds.forEach(val => {
+                            if ($scope.checkPartyList.filter(it => it.partycode == val.DZZDM).length == 0) {
+                                $scope.checkPartyList.push({
+                                    partycode: val.DZZDM,
+                                    partyname: val.DZZMC,
+                                });
+                            }
+                        });
+                    }*/
+                }
+            };
+            $scope.getCheckPartyList=()=>{
+                $scope.checkPartyList=[];
+                var partcodes =$scope.selectPartyOption.selectedValueData.split(",");
+                var partynames =$scope.selectPartyOption.selectedLabeData.split(",");
+                for (var i=0;i<partcodes.length;i++){
+                    $scope.checkPartyList.push({
+                        partycode: partcodes[i],
+                        partyname:partynames[i],
+                    });
+                }
+            };
+            //保存
+            $scope.save = function (isflag) {
+                if (isflag) {
+                    $loading.show();
+                    $scope.getCheckPartyList();
+                    $http({
+                        method: "post",
+                        url: "../../api/checkdata/saveCheckNameList",
+                        data: {
+                            dataModel:$scope.dataModel,
+                            checkPartyList:$scope.checkPartyList
+                        }
+                    }).then(function (result) {
+                        $loading.hide();
+                        if (result.data.success) {
+                            $scope.showMsg('成功', result.data.msg);
+                            //重新刷新列表
+                            $scope.loadData();
+                            $scope.$hide();
+                        }
+                        else {
+                            $scope.showMsg('失败', result.data.msg);
+                        }
+                    }, function (resp) {
+                        $loading.hide();
+                        $scope.showMsg('错误', '服务器错误');
+                    });
+                }
+            };
+        };
+        editCtrl.$inject = ['$scope', '$http','$partySelect'];
+        //定义模态框
+        var editModal = $modal({
+            resolve: {
+                load: ['$ocLazyLoad', function ($ocLazyLoad) {
+                }]
+            },
+            scope: $scope,
+            controller: editCtrl,
+            templateUrl: '../main/party/checkNameList/edit.html',
+            show: false,
+            animation: 'am-fade-and-slide-top'
+        });
+
+        //新增编辑
+        $scope.add = function () {
+            editModal.params = {
+                title: '新增名单'
+            };
+            editModal.data = {};
+            editModal.$promise.then(editModal.show);
+        };
+        $scope.edit = function (id) {
+            $http.get("../../api/checkdata/getCheckName", {
+                params: {
+                    'id': id
+                }
+            }).then(function (result) {
+                if (result.data.item) {
+                    editModal.data  = result.data.item;
+                    editModal.params = {
+                        title: '修改名单'
+                    };
+                    editModal.$promise.then(editModal.show);
+                } else {
+                    $scope.showMsg('错误', result.data.msg);
+                }
+            })
+        };
+
+        $scope.delete = function (id) {
+            if (confirm("是否确定删除?")) {
+                $http({
+                    url: "../../api/checkdata/deleteCheckNameList",
+                    method: 'post',
+                    data: {nameIdList: [id]}
+                }).then(function (result) {
+                    $scope.showMsg("消息", result.data.msg);
+                    if (result.data.success) {
+                        $scope.loadData();
+                    }
+                });
+            }
+        };
+        $scope.changeStatus = function (id,status) {
+
+                $http({
+                    url: "../../api/checkdata/changeCheckNameListStatus",
+                    method: 'post',
+                    data: {nameIdList: id,recordStatus:status}
+                }).then(function (result) {
+                    $scope.showMsg("消息", result.data.msg);
+                    if (result.data.success) {
+                        $scope.loadData();
+                    }
+                });
+        };
+        $scope.disable=()=>{
+            var nameidList = $scope.dataList.filter(it => it.rowChecked == true).map(it => it.nameid);
+
+            if (nameidList.length == 0) {
+                $scope.showMsg('消息', "请选择需要禁用的数据");
+                return false;
+            }
+            $scope.changeStatus(nameidList,0);
+        }
+        $scope.enable=()=>{
+            var nameidList = $scope.dataList.filter(it => it.rowChecked == true).map(it => it.nameid);
+
+            if (nameidList.length == 0) {
+                $scope.showMsg('消息', "请选择需要启用的数据");
+                return false;
+            }
+            $scope.changeStatus(nameidList,1);
+        }
+        $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/exportZtdrxx' + params);
+            }
+        };
+
+        $scope.showMsg = function (title, content) {
+            $alert({
+                title: title + ':',
+                content: content,
+                placement: 'top',
+                type: 'info',
+                show: true,
+                duration: 3
+            });
+
+        };
+        $scope.isShowClick = function(){
+            $scope.isShow=!$scope.isShow;
+            if($scope.moreTxt == "更多")
+            {
+                $scope.moreTxt = "收起";
+            }
+            else if($scope.moreTxt == "收起")
+            {
+                $scope.moreTxt = "更多";
+            }
+        };
+        $scope.setisunfold = function () {
+            $scope.selectparams.isunfold = !$scope.selectparams.isunfold;
+            $scope.$emit('menudatas.toggle', !$scope.selectparams.isunfold);
+        };
+        $scope.reset  = function () {
+
+            $scope.selectparams.year = null;
+            $scope.selectparams.quarter = null;
+            $scope.selectparams.selectdzzmc = '';
+            $scope.selectparams.checkUserName ='';
+            $scope.selectparams.partyName = '';
+            $scope.selectparams.partyCode = '';
+            $scope.selectparams.recordStatus = null;
+         }
+    });
+})(angular);