瀏覽代碼

复核标准意见查看管理

[user3] 3 年之前
父節點
當前提交
bffe32edc8

+ 62 - 0
src/main/java/com/jeeplus/modules/bzshbExamine/dao/StandardOpinionDao.java

@@ -0,0 +1,62 @@
+package com.jeeplus.modules.bzshbExamine.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.bzshbExamine.entity.BzshbExaminInfo;
+import com.jeeplus.modules.bzshbExamine.entity.StandardOpinion;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+
+import java.util.List;
+
+/**
+ * @author: 徐滕
+ * @create: 2021-07-08 17:26
+ **/
+@MyBatisDao
+public interface StandardOpinionDao extends CrudDao<StandardOpinion> {
+
+    /**
+     * 查询指定人的被评论标准意见总数
+     * @param standardOpinion
+     * @return
+     */
+    Integer getStandardNumber(StandardOpinion standardOpinion);
+
+    /**
+     * 查询指定人时间区间内项目总数
+     * @param standardOpinion
+     * @return
+     */
+    Integer getProjectAllCount(StandardOpinion standardOpinion);
+
+    /**
+     * 查询指定人时间区间内被评论标准意见总数
+     * @param standardOpinion
+     * @return
+     */
+    Integer getStandardCount(StandardOpinion standardOpinion);/**
+     * 查询指定人时间区间内被评论标准意见总数 报告签发
+     * @param standardOpinion
+     * @return
+     */
+    Integer getStandardCountTwo(StandardOpinion standardOpinion);
+
+    /**
+     * 根据项目责任人查询所负责的项目
+     * @param standardOpinion
+     * @return
+     */
+    List<StandardOpinion> getProjectRecordsByMasterUser(StandardOpinion standardOpinion);
+
+    /**
+     * 根据项目责任人查询所负责的项目
+     * @param standardOpinion
+     * @return
+     */
+    Integer getProjectCountByMasterUser(StandardOpinion standardOpinion); /**
+     * 根据项目责任人查询所负责的项目 报告签发
+     * @param standardOpinion
+     * @return
+     */
+    Integer getProjectCountByMasterUserTwo(StandardOpinion standardOpinion);
+}

+ 181 - 0
src/main/java/com/jeeplus/modules/bzshbExamine/entity/StandardOpinion.java

@@ -0,0 +1,181 @@
+package com.jeeplus.modules.bzshbExamine.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.modules.sys.entity.User;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 总审标准意见查看 entity
+ */
+public class StandardOpinion extends DataEntity<StandardOpinion> {
+    private String userId;      //人员id
+    private String userName;    //人员名称
+    private Date startDate;     //开始时间
+    private Date endDate;       //结束时间
+    private String auditUserId;       //真实总审id
+    private List<User> auditUserList;   //真实总审信息
+    private List<String> auditUserIdList;   //总审id
+
+    private Integer projectAllNumber;   //项目总数量
+    private Integer standardNumber;      //复核标准总数量
+
+    private Integer projectAllCount;    //时间区间内项目总数量
+    private Integer standardCount;      //时间区间复核标准评价数量
+
+
+    private String projectId;       //项目id
+    private String projectName;     //项目名称
+    private String createName;      //项目创建人
+    private String masterName;      //项目责任人
+    private String view;
+
+    private String deductOption;    //标准复核意见
+    private String standardDetail;  //标准内容
+
+
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public Date getStartDate() {
+        return startDate;
+    }
+
+    public void setStartDate(Date startDate) {
+        this.startDate = startDate;
+    }
+
+    public Date getEndDate() {
+        return endDate;
+    }
+
+    public void setEndDate(Date endDate) {
+        this.endDate = endDate;
+    }
+
+    public String getAuditUserId() {
+        return auditUserId;
+    }
+
+    public void setAuditUserId(String auditUserId) {
+        this.auditUserId = auditUserId;
+    }
+
+    public List<User> getAuditUserList() {
+        return auditUserList;
+    }
+
+    public void setAuditUserList(List<User> auditUserList) {
+        this.auditUserList = auditUserList;
+    }
+
+    public List<String> getAuditUserIdList() {
+        return auditUserIdList;
+    }
+
+    public void setAuditUserIdList(List<String> auditUserIdList) {
+        this.auditUserIdList = auditUserIdList;
+    }
+
+    public Integer getProjectAllNumber() {
+        return projectAllNumber;
+    }
+
+    public void setProjectAllNumber(Integer projectAllNumber) {
+        this.projectAllNumber = projectAllNumber;
+    }
+
+    public Integer getStandardNumber() {
+        return standardNumber;
+    }
+
+    public void setStandardNumber(Integer standardNumber) {
+        this.standardNumber = standardNumber;
+    }
+
+    public Integer getProjectAllCount() {
+        return projectAllCount;
+    }
+
+    public void setProjectAllCount(Integer projectAllCount) {
+        this.projectAllCount = projectAllCount;
+    }
+
+    public Integer getStandardCount() {
+        return standardCount;
+    }
+
+    public void setStandardCount(Integer standardCount) {
+        this.standardCount = standardCount;
+    }
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public String getMasterName() {
+        return masterName;
+    }
+
+    public void setMasterName(String masterName) {
+        this.masterName = masterName;
+    }
+
+    public String getView() {
+        return view;
+    }
+
+    public void setView(String view) {
+        this.view = view;
+    }
+
+    public String getDeductOption() {
+        return deductOption;
+    }
+
+    public void setDeductOption(String deductOption) {
+        this.deductOption = deductOption;
+    }
+
+    public String getStandardDetail() {
+        return standardDetail;
+    }
+
+    public void setStandardDetail(String standardDetail) {
+        this.standardDetail = standardDetail;
+    }
+}

+ 145 - 0
src/main/java/com/jeeplus/modules/bzshbExamine/service/StandardOpinionAllService.java

@@ -0,0 +1,145 @@
+package com.jeeplus.modules.bzshbExamine.service;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.bzshbExamine.dao.StandardOpinionDao;
+import com.jeeplus.modules.bzshbExamine.entity.StandardOpinion;
+import com.jeeplus.modules.sys.dao.UserDao;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 总审符合标准意见查看 service
+ **/
+@Service
+@Transactional(readOnly = true)
+public class StandardOpinionAllService extends CrudService<StandardOpinionDao, StandardOpinion> {
+
+    @Autowired
+    private UserDao userDao;
+
+    @Override
+    public StandardOpinion get(String id) {
+        return super.get(id);
+    }
+
+    public Page<StandardOpinion> findPage(Page<StandardOpinion> page, StandardOpinion standardOpinion) {
+        List<String> auditUserIdList = null;
+        //判断是否选择对应总审
+        //如果选择了需要查询得总审信息
+        if(StringUtils.isNotBlank(standardOpinion.getAuditUserId())){
+            //根据选择的总审id查询对应的数据信息
+            auditUserIdList = userDao.getAuditUserListByRelevanceUserId(standardOpinion.getAuditUserId());
+        }else{
+            auditUserIdList = userDao.getAuditUserListByRelevanceUserId("");
+        }
+        //查询当前登录人对应的所有总审id
+
+        standardOpinion.setAuditUserIdList(auditUserIdList);
+        standardOpinion.setAuditUserIdList(auditUserIdList);
+        int userCount = dao.queryCount(standardOpinion);
+        page.setCount(userCount);
+        page.setCountFlag(false);
+        standardOpinion.setPage(page);
+        List<StandardOpinion> recordsList = dao.findList(standardOpinion);
+
+        //判定筛选条件中的日期是否选择,没选则添加当前年份的第一天作为筛选初始时间,当前时间作为筛选结束时间
+        if(null == standardOpinion.getStartDate()){
+            Date currYearFirst = getCurrYearFirst();
+            standardOpinion.setStartDate(currYearFirst);
+        }
+        if(null == standardOpinion.getEndDate()){
+            standardOpinion.setEndDate(new Date());
+        }
+
+        for (StandardOpinion info: recordsList) {
+            info.setAuditUserIdList(standardOpinion.getAuditUserIdList());
+            info.setStartDate(standardOpinion.getStartDate());
+            info.setEndDate(standardOpinion.getEndDate());
+            //查询指定人时间区间内项目总数
+            info.setProjectAllCount(dao.getProjectAllCount(info));
+            //查询指定人时间区间复核标准评价数量
+            Integer count=dao.getStandardCount(info);
+            //报告签发标准评价数量
+            Integer twoCount=dao.getStandardCountTwo(info);
+            if (null!=twoCount && 0!=twoCount){
+                count+=twoCount;
+            }
+            info.setStandardCount(count);
+        }
+        page.setList(recordsList);
+        return page;
+    }
+    /**
+     * 根据筛选人查询对应的项目信息
+     * @param page 分页对象
+     * @param standardOpinion
+     * @return
+     */
+    public Page<StandardOpinion> findPageByUser(Page<StandardOpinion> page, StandardOpinion standardOpinion) {
+        List<String> auditUserIdList = null;
+        //判断是否选择对应总审
+        //如果选择了需要查询得总审信息
+        if(StringUtils.isNotBlank(standardOpinion.getAuditUserId())){
+            //根据选择的总审id查询对应的数据信息
+            auditUserIdList = userDao.getAuditUserListByRelevanceUserId(standardOpinion.getAuditUserId());
+        }else{
+            auditUserIdList = userDao.getAuditUserListByRelevanceUserId("");
+        }
+        //查询当前登录人对应的所有总审id
+
+        standardOpinion.setAuditUserIdList(auditUserIdList);
+        standardOpinion.setAuditUserIdList(auditUserIdList);
+        Integer projectCount = dao.getProjectCountByMasterUser(standardOpinion);
+        Integer projectCountTwo = dao.getProjectCountByMasterUserTwo(standardOpinion);
+        if (null !=projectCountTwo && 0 != projectCountTwo){
+            projectCount+=projectCountTwo;
+        }
+        page.setCount(projectCount);
+        page.setCountFlag(false);
+        standardOpinion.setPage(page);
+        //根据筛选人查询所做过的项目信息(责任人),按创建时间进行倒叙排序
+        //复核标准
+        List<StandardOpinion> projectList = dao.getProjectRecordsByMasterUser(standardOpinion);
+        page.setList(projectList);
+        return page;
+    }
+    /**
+     * 获取当年的第一天
+     * @return
+     */
+    public static Date getCurrYearFirst(){
+        Calendar currCal= Calendar.getInstance();
+        int currentYear = currCal.get(Calendar.YEAR);
+        return getYearFirst(currentYear);
+    }
+    /**
+     * 获取某年第一天日期
+     * @param year 年份
+     * @return Date
+     */
+    public static Date getYearFirst(int year){
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        Date currYearFirst = calendar.getTime();
+        return currYearFirst;
+    }
+    /**
+     * 取小数点后两位
+     * @param value
+     * @return
+     */
+    public static Double convert(Double value){
+        long l1 = Math.round(value*100); //四舍五入
+        Double ret = l1/100.0; //注意:使用 100.0 而不是 100
+        return ret;
+    }
+}

+ 126 - 0
src/main/java/com/jeeplus/modules/bzshbExamine/service/StandardOpinionService.java

@@ -0,0 +1,126 @@
+package com.jeeplus.modules.bzshbExamine.service;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.modules.bzshbExamine.dao.BzshbExaminDao;
+import com.jeeplus.modules.bzshbExamine.dao.StandardOpinionDao;
+import com.jeeplus.modules.bzshbExamine.entity.BzshbExaminInfo;
+import com.jeeplus.modules.bzshbExamine.entity.StandardOpinion;
+import com.jeeplus.modules.sys.dao.UserDao;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 总审符合标准意见查看 service
+ **/
+@Service
+@Transactional(readOnly = true)
+public class StandardOpinionService extends CrudService<StandardOpinionDao, StandardOpinion> {
+
+    @Autowired
+    private UserDao userDao;
+
+    @Override
+    public StandardOpinion get(String id) {
+        return super.get(id);
+    }
+
+    public Page<StandardOpinion> findPage(Page<StandardOpinion> page, StandardOpinion standardOpinion) {
+        //查询当前登录人对应的所有总审id
+        List<String> auditUserIdList = userDao.getAuditUserListByRelevanceUserId(UserUtils.getUser().getId());
+        standardOpinion.setAuditUserIdList(auditUserIdList);
+        int userCount = dao.queryCount(standardOpinion);
+        page.setCount(userCount);
+        page.setCountFlag(false);
+        standardOpinion.setPage(page);
+        List<StandardOpinion> recordsList = dao.findList(standardOpinion);
+
+        //判定筛选条件中的日期是否选择,没选则添加当前年份的第一天作为筛选初始时间,当前时间作为筛选结束时间
+        if(null == standardOpinion.getStartDate()){
+            Date currYearFirst = getCurrYearFirst();
+            standardOpinion.setStartDate(currYearFirst);
+        }
+        if(null == standardOpinion.getEndDate()){
+            standardOpinion.setEndDate(new Date());
+        }
+
+        for (StandardOpinion info: recordsList) {
+            info.setAuditUserIdList(standardOpinion.getAuditUserIdList());
+            info.setStartDate(standardOpinion.getStartDate());
+            info.setEndDate(standardOpinion.getEndDate());
+            //查询指定人时间区间内项目总数
+            info.setProjectAllCount(dao.getProjectAllCount(info));
+            //查询指定人时间区间复核标准评价数量
+            Integer count=dao.getStandardCount(info);
+            //报告签发标准评价数量
+            Integer twoCount=dao.getStandardCountTwo(info);
+            if (null!=twoCount && 0!=twoCount){
+                count+=twoCount;
+            }
+            info.setStandardCount(count);
+        }
+        page.setList(recordsList);
+        return page;
+    }
+    /**
+     * 根据筛选人查询对应的项目信息
+     * @param page 分页对象
+     * @param standardOpinion
+     * @return
+     */
+    public Page<StandardOpinion> findPageByUser(Page<StandardOpinion> page, StandardOpinion standardOpinion) {
+        //查询当前登录人对应的所有总审id
+        List<String> auditUserIdList = userDao.getAuditUserListByRelevanceUserId(UserUtils.getUser().getId());
+        standardOpinion.setAuditUserIdList(auditUserIdList);
+        Integer projectCount = dao.getProjectCountByMasterUser(standardOpinion);
+        Integer projectCountTwo = dao.getProjectCountByMasterUserTwo(standardOpinion);
+        if (null !=projectCountTwo && 0 != projectCountTwo){
+            projectCount+=projectCountTwo;
+        }
+        page.setCount(projectCount);
+        page.setCountFlag(false);
+        standardOpinion.setPage(page);
+        //根据筛选人查询所做过的项目信息(责任人),按创建时间进行倒叙排序
+        //复核标准
+        List<StandardOpinion> projectList = dao.getProjectRecordsByMasterUser(standardOpinion);
+        page.setList(projectList);
+        return page;
+    }
+    /**
+     * 获取当年的第一天
+     * @return
+     */
+    public static Date getCurrYearFirst(){
+        Calendar currCal= Calendar.getInstance();
+        int currentYear = currCal.get(Calendar.YEAR);
+        return getYearFirst(currentYear);
+    }
+    /**
+     * 获取某年第一天日期
+     * @param year 年份
+     * @return Date
+     */
+    public static Date getYearFirst(int year){
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        Date currYearFirst = calendar.getTime();
+        return currYearFirst;
+    }
+    /**
+     * 取小数点后两位
+     * @param value
+     * @return
+     */
+    public static Double convert(Double value){
+        long l1 = Math.round(value*100); //四舍五入
+        Double ret = l1/100.0; //注意:使用 100.0 而不是 100
+        return ret;
+    }
+}

+ 59 - 0
src/main/java/com/jeeplus/modules/bzshbExamine/web/StandardOpinionAllController.java

@@ -0,0 +1,59 @@
+package com.jeeplus.modules.bzshbExamine.web;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.bzshbExamine.entity.StandardOpinion;
+import com.jeeplus.modules.bzshbExamine.service.StandardOpinionAllService;
+import com.jeeplus.modules.bzshbExamine.service.StandardOpinionService;
+import com.jeeplus.modules.sys.dao.UserDao;
+import com.jeeplus.modules.sys.entity.User;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 总审查看复核标准意见Controller
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/standardOpinionAll/standardOpinionAll")
+public class StandardOpinionAllController extends BaseController {
+
+    @Autowired
+    private StandardOpinionAllService service;
+    @Autowired
+    private UserDao userDao;
+
+    /**
+     * 查询列表
+     */
+    @RequiresPermissions("standardOpinionAll:standardOpinionAll:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(StandardOpinion standardOpinion, HttpServletRequest request, HttpServletResponse response, Model model) {
+        //查询真实总审信息
+        List<User> auditUserList = userDao.getAuditUserListByProjectGrade();
+        standardOpinion.setAuditUserList(auditUserList);
+        Page<StandardOpinion> page = service.findPage(new Page<StandardOpinion>(request, response), standardOpinion);
+        model.addAttribute("page", page);
+        return "modules/bzshStandardOpinion/StandardOpinionAllList";
+    }
+    /**
+     * 跳转查看页面
+     * @param standardOpinion
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = {"viewList"})
+    public String viewList(StandardOpinion standardOpinion, HttpServletRequest request, HttpServletResponse response, Model model){
+        Page<StandardOpinion> page = service.findPageByUser(new Page<StandardOpinion>(request, response), standardOpinion);
+        model.addAttribute("page", page);
+        return "modules/bzshStandardOpinion/StandardOpinionUserProjectList";
+    }
+}

+ 90 - 0
src/main/java/com/jeeplus/modules/bzshbExamine/web/StandardOpinionController.java

@@ -0,0 +1,90 @@
+package com.jeeplus.modules.bzshbExamine.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.bzshbExamine.entity.BzshbExaminInfo;
+import com.jeeplus.modules.bzshbExamine.entity.StandardOpinion;
+import com.jeeplus.modules.bzshbExamine.service.BzshbExaminService;
+import com.jeeplus.modules.bzshbExamine.service.StandardOpinionService;
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
+import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
+import com.jeeplus.modules.ruralprojectrecords.entity.SubProjectInfo;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
+import com.jeeplus.modules.ruralprojectrecords.service.SubProjectInfoService;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.UserService;
+import com.jeeplus.modules.sys.utils.DictUtils;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
+import com.jeeplus.modules.workclientinfo.service.WorkClientInfoService;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
+import com.jeeplus.modules.workreview.entity.WorkReviewAudit;
+import com.jeeplus.modules.workreview.service.WorkReviewStandardService;
+import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * 总审查看复核标准意见Controller
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/standardOpinion/standardOpinion")
+public class StandardOpinionController extends BaseController {
+
+    @Autowired
+    private StandardOpinionService service;
+
+    /**
+     * 查询列表
+     */
+    @RequiresPermissions("standardOpinion:standardOpinion:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(StandardOpinion standardOpinion, HttpServletRequest request, HttpServletResponse response, Model model) {
+        Page<StandardOpinion> page = service.findPage(new Page<StandardOpinion>(request, response), standardOpinion);
+        model.addAttribute("page", page);
+        return "modules/bzshStandardOpinion/StandardOpinionList";
+    }
+    /**
+     * 跳转查看页面
+     * @param standardOpinion
+     * @param request
+     * @param response
+     * @param model
+     * @return
+     */
+    @RequestMapping(value = {"viewList"})
+    public String viewList(StandardOpinion standardOpinion, HttpServletRequest request, HttpServletResponse response, Model model){
+        Page<StandardOpinion> page = service.findPageByUser(new Page<StandardOpinion>(request, response), standardOpinion);
+        model.addAttribute("page", page);
+        return "modules/bzshStandardOpinion/StandardOpinionUserProjectList";
+    }
+}

+ 231 - 0
src/main/resources/mappings/modules/bzshbExamin/StandardOpinionDao.xml

@@ -0,0 +1,231 @@
+<?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.jeeplus.modules.bzshbExamine.dao.StandardOpinionDao">
+
+	<select id="findList" resultType="com.jeeplus.modules.bzshbExamine.entity.StandardOpinion" >
+		select wpu.user_id as "userId", su.name as "userName",count(a.create_by) as "projectAllNumber"
+		from project_report_data a
+		left join work_project_user wpu on wpu.project_id = a.project_id
+		left join sys_user su on su.id = wpu.user_id
+		left join rural_project_records rpr on rpr.id = a.project_id
+		<where>
+			and a.del_flag = 0
+			and rpr.project_id is not null
+			and a.status = 5
+			and wpu.is_master = 1
+			<if test="auditUserIdList.size>0">
+				and a.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.audit_pass_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+			<if test="(userId != null and userId != '') or (userName != null and userName != '')">
+				AND (wpu.user_id = #{userId} or su.name like concat('%',#{userName},'%'))
+			</if>
+		</where>
+		group by wpu.user_id
+		order by a.audit_pass_date desc
+	</select>
+
+    <select id="queryCount" resultType="int" >
+        select count(1)
+		from (
+		select wpu.user_id as "userId", su.name as "userName",count(a.create_by) as "projectAllNumber"
+		from project_report_data a
+		left join work_project_user wpu on wpu.project_id = a.project_id
+		left join sys_user su on su.id = wpu.user_id
+		left join rural_project_records rpr on rpr.id = a.project_id
+		<where>
+			and rpr.project_id is not null
+			and a.status = 5
+			and wpu.is_master = 1
+			<if test="auditUserIdList.size>0">
+				and a.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.audit_pass_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+			<if test="(userId != null and userId != '') or (userName != null and userName != '')">
+				AND (wpu.user_id = #{userId} or su.name like concat('%',#{userName},'%'))
+			</if>
+		</where>
+		group by wpu.user_id) z
+    </select>
+
+	<select id="getStandardNumber" resultType="java.lang.Integer">
+		select count(1) from project_report_data a
+		left join work_project_user wpu on wpu.project_id = a.project_id
+		LEFT JOIN rural_project_records rpr ON rpr.id = a.project_id
+		<where>
+			and wpu.user_id = #{userId} and wpu.is_master = 1
+			and a.status = 5
+			and a.del_flag = 0
+			and rpr.id IS NOT NULL
+			<if test="auditUserIdList.size>0">
+				and a.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+		</where>
+	</select>
+
+	<select id="getProjectAllCount" resultType="java.lang.Integer">
+
+		select count(1) from project_report_data a
+		left join work_project_user wpu on wpu.project_id = a.project_id
+		left join rural_project_records rpr on rpr.id = a.project_id
+		<where>
+			and wpu.user_id = #{userId}
+			and rpr.project_id is not null
+			and a.del_flag = 0 and wpu.is_master = 1 and a.status = 5
+			<if test="auditUserIdList.size>0">
+				and a.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.audit_pass_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+		</where>
+	</select>
+
+	<select id="getStandardCount" resultType="java.lang.Integer">
+		select count(1) from project_report_data a
+		left join work_project_user wpu on wpu.project_id = a.project_id
+		LEFT JOIN work_review_audit wa on wa.report_id =a.id
+		<where>
+			and wpu.user_id = #{userId}
+			and a.del_flag = 0 and wpu.is_master = 1 and a.status = 5
+			and wa.type=4
+			and wa.standard_id is not null
+			<if test="auditUserIdList.size>0">
+				and a.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.audit_pass_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+		</where>
+	</select>
+	<select id="getStandardCountTwo" resultType="java.lang.Integer">
+		select count(1) from project_report_data_two a
+		left join work_project_user wpu on wpu.project_id = a.project_id
+		LEFT JOIN work_review_audit wa on wa.report_id =a.id
+		<where>
+			and wpu.user_id = #{userId}
+			and a.del_flag = 0 and wpu.is_master = 1 and a.status = 5
+			and wa.type=4
+			and wa.standard_id is not null
+			<if test="auditUserIdList.size>0">
+				and a.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.audit_pass_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+		</where>
+	</select>
+
+	<select id="getProjectRecordsByMasterUser" resultType="com.jeeplus.modules.bzshbExamine.entity.StandardOpinion">
+		SELECT
+		aa.projectId,
+		aa.projectName,
+		aa.createDate,
+		ws.standard_detail AS "standardDetail",
+		wa.deductOption AS "deductOption"
+		FROM (
+		select a.id as "projectId" ,a.project_name as "projectName",a.create_date AS "createDate",prd.id as "reportId",wpu.user_id as "user_id",prd.bzshb_user_id as "bzshb_user_id" FROM rural_project_records a
+		LEFT JOIN work_project_user wpu ON wpu.project_id = a.id
+		LEFT JOIN project_report_data prd ON prd.project_id = a.id
+		union all
+		select a.id as "projectId" ,a.project_name as "projectName",a.create_date AS "createDate",prd.id as "reportId",wpu.user_id as "user_id",prd.bzshb_user_id as "bzshb_user_id" FROM rural_project_records a
+		LEFT JOIN work_project_user wpu ON wpu.project_id = a.id
+		LEFT JOIN project_report_data_two prd ON prd.project_id = a.id
+		) aa
+		LEFT JOIN work_review_audit wa ON wa.report_id = aa.reportId
+		LEFT JOIN work_review_standard ws ON ws.id = wa.standard_id
+		<where>
+			and aa.user_id = #{userId}
+			AND wa.type = 4
+			AND wa.standard_id IS NOT NULL
+			<if test="auditUserIdList.size>0">
+				and aa.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="projectName != null and projectName != ''">
+					AND aa.projectName like concat('%',#{projectName},'%')
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND aa.createDate BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+		</where>
+		ORDER BY
+		aa.createDate DESC
+	</select>
+
+	<select id="getProjectCountByMasterUser" resultType="java.lang.Integer">
+		select count(1)
+		from rural_project_records a
+		left join work_project_user wpu on wpu.project_id = a.id
+		left join project_report_data prd on prd.project_id = a.id
+		LEFT JOIN work_review_audit wa ON wa.report_id = prd.id
+		<where>
+			and wpu.user_id = #{userId}
+			AND wa.type = 4
+			AND wa.standard_id IS NOT NULL
+			<if test="auditUserIdList.size>0">
+				and prd.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat('%',#{projectName},'%')
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.create_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+		</where>
+	</select>
+	<select id="getProjectCountByMasterUserTwo" resultType="java.lang.Integer">
+		select count(1)
+		from rural_project_records a
+		left join work_project_user wpu on wpu.project_id = a.id
+		left join project_report_data_two prd on prd.project_id = a.id
+		LEFT JOIN work_review_audit wa ON wa.report_id = prd.id
+		<where>
+			and wpu.user_id = #{userId}
+			AND wa.type = 4
+			AND wa.standard_id IS NOT NULL
+			<if test="auditUserIdList.size>0">
+				and prd.bzshb_user_id in
+				<foreach collection="auditUserIdList" item="auditUserId" separator="," open="(" close=")">
+					#{auditUserId}
+				</foreach>
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat('%',#{projectName},'%')
+			</if>
+			<if test="startDate != null and endDate != null and startDate != '' and endDate != ''">
+				AND a.create_date BETWEEN #{startDate} AND DATE_ADD(#{endDate},INTERVAL 1 DAY)
+			</if>
+		</where>
+	</select>
+
+
+
+</mapper>

+ 304 - 0
src/main/webapp/webpage/modules/bzshStandardOpinion/StandardOpinionAllList.jsp

@@ -0,0 +1,304 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<html>
+<head>
+	<title>检查列表</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#startDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+        function openDialog(title,url,width,height,target) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                skin: 'three-btns',
+                btn: ['送审', '暂存', '关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target,buttons) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    if(split.length==2){return}
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="standardOpinion" action="${ctx}/standardOpinionAll/standardOpinionAll/list" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<%--<div class="layui-item query athird">
+							<label class="layui-form-label">项目编号:</label>
+							<div class="layui-input-block with-icon">
+								<form:input path="userId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="userId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>--%>
+							<div class="layui-item query athird">
+								<label class="layui-form-label">总审:</label>
+								<div class="layui-input-block with-icon">
+									<select class="form-control layui-input" id="auditUserId" name="auditUserId">
+										<option value=""/>
+										<c:forEach items="${standardOpinion.auditUserList}" var="user" varStatus="status">
+											<option value="${user.id}" <c:if test="${standardOpinion.auditUserId eq user.id }">selected</c:if>>${user.name}</option>
+										</c:forEach>
+									</select>
+								</div>
+							</div>
+							<div class="layui-item query athird">
+								<label class="layui-form-label">责任人:</label>
+								<div class="layui-input-block with-icon">
+									<sys:inquireselectUserNotReadolnyTow id="user" name="user" value="${standardOpinion.userId}" labelName="userName" labelValue="${standardOpinion.userName}" cssStyle="background-color: #fff"
+																		 title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+								</div>
+							</div>
+
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">创建时间:</label>
+							<div class="layui-input-block">
+								<input id="startDate" name="startDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${standardOpinion.startDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+								<span class="group-sep">-</span>
+								<input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${standardOpinion.endDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+							</div>
+						</div>
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns" style="float: left">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+				{field:'index',align:'center', fixed: 'left', title: '序号',width:40}
+				,{field:'userName',align:'center', title: '项目责任人'}
+				,{field:'projectAllNumber',align:'center', title: '总项目数'}
+				,{field:'projectAllCount',align:'center', title: '当前项目数'}
+				,{field:'standardCount',align:'center', title: '当前标准评价数'}
+				,{field:'op',align:'center',title:"操作", fixed: 'right',width:100,templet:function(d){
+						////对操作进行初始化
+						var xml="";
+						xml+="<a href=\"#\" onclick=\"openDialogView('查看', '${ctx}/standardOpinion/standardOpinion/viewList?id=" + d.id + "&userId=" + d.userId + "','95%', '95%','','关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 查看</a>";
+						return xml;
+
+					}}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="bzshbExamin" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+					"index":"${index.index+1}"
+					,"id":"${bzshbExamin.id}"
+					,"userId":"${bzshbExamin.userId}"
+					,"userName":"${bzshbExamin.userName}"
+					,"startDate":"<fmt:formatDate value="${bzshbExamin.startDate}" pattern="yyyy-MM-dd"/>"
+					,"endDate":"<fmt:formatDate value="${bzshbExamin.endDate}" pattern="yyyy-MM-dd"/>"
+					,"projectAllNumber":"${bzshbExamin.projectAllNumber}"
+					,"projectAllCount":"${bzshbExamin.projectAllCount}"
+					,"standardCount":"${bzshbExamin.standardCount}"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+</body>
+</html>

+ 424 - 0
src/main/webapp/webpage/modules/bzshStandardOpinion/StandardOpinionList.jsp

@@ -0,0 +1,424 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<html>
+<head>
+	<title>查看列表</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+
+            //搜索框收放
+            $('#moresee').click(function(){
+                if($('#moresees').is(':visible'))
+                {
+                    $('#moresees').slideUp(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+                }else{
+                    $('#moresees').slideDown(0,resizeListWindow2);
+                    $('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+                }
+            });
+            laydate.render({
+                elem: '#startDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+            laydate.render({
+                elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+                event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+                type : 'date'
+, trigger: 'click'
+            });
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+
+        function openDialog(title,url,width,height,target) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                content: url,
+                skin: 'three-btns',
+                btn: ['送审', '暂存', '关闭'],
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+        function openDialogre(title,url,width,height,target,buttons) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            var split = buttons.split(",");
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                maxmin: true, //开启最大化最小化按钮
+                skin: 'three-btns',
+                content: url,
+                btn: split,
+                btn1: function(index, layero){
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(1) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }
+                },
+                btn2:function(index,layero){
+                    if(split.length==2){return}
+                    var body = top.layer.getChildFrame('body', index);
+                    var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+                    var inputForm = body.find('#inputForm');
+                    var top_iframe;
+                    if(target){
+                        top_iframe = target;//如果指定了iframe,则在改frame中跳转
+                    }else{
+                        top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+                    }
+                    inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+                    if(iframeWin.contentWindow.doSubmit(2) ){
+                        // top.layer.close(index);//关闭对话框。
+                        setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+                    }else {
+                        return false;
+                    }
+                },
+                btn3: function (index) {
+                }
+            });
+        }
+
+		//打开对话框(查看)
+		function openDialogReportView(title,url,id,width,height){
+
+
+			if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+				width='auto';
+				height='auto';
+			}else{//如果是PC端,根据用户设置的width和height显示。
+
+			}
+			$.ajax({
+				async: false,
+				url: "${ctx}/ruralProject/ruralProjectMessage/getReportExist?id="+id,
+				dataType: "json",
+				success: function (data) {
+					if(data.success){
+						top.layer.open({
+							type: 2,
+							skin: 'one-btn',
+							area: [width, height],
+							title: title,
+							maxmin: true, //开启最大化最小化按钮
+							content: url ,
+							btn: ['关闭'],
+							cancel: function(index){
+							}
+						});
+					}else{
+						top.layer.msg("该项目报告信息已删除!", {icon: 0});
+						window.location.reload();
+					}
+				}
+			});
+
+		}
+
+
+
+		function openDialogreReport(title,url,id,width,height,target,buttons) {
+
+			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+				width = 'auto';
+				height = 'auto';
+			} else {//如果是PC端,根据用户设置的width和height显示。
+
+			}
+
+			$.ajax({
+				async: false,
+				url: "${ctx}/ruralProject/ruralProjectMessage/getReportExist?id="+id,
+				dataType: "json",
+				success: function (data) {
+					if(data.success){
+						var split = buttons.split(",");
+						top.layer.open({
+							type: 2,
+							area: [width, height],
+							title: title,
+							maxmin: true, //开启最大化最小化按钮
+							skin: 'three-btns',
+							content: url,
+							btn: split,
+							btn1: function(index, layero){
+								var body = top.layer.getChildFrame('body', index);
+								var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+								var inputForm = body.find('#inputForm');
+								var top_iframe;
+								if(target){
+									top_iframe = target;//如果指定了iframe,则在改frame中跳转
+								}else{
+									top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+								}
+								inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+								if(iframeWin.contentWindow.doSubmit(1) ){
+									// top.layer.close(index);//关闭对话框。
+									setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+								}
+							},
+							btn2:function(index,layero){
+								if(split.length==2){return}
+								var body = top.layer.getChildFrame('body', index);
+								var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+								var inputForm = body.find('#inputForm');
+								var top_iframe;
+								if(target){
+									top_iframe = target;//如果指定了iframe,则在改frame中跳转
+								}else{
+									top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+								}
+								inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+								if(iframeWin.contentWindow.doSubmit(2) ){
+									// top.layer.close(index);//关闭对话框。
+									setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+								}else {
+									return false;
+								}
+							},
+							btn3: function (index) {
+							}
+						});
+					}else{
+						top.layer.msg("该项目报告信息已删除!", {icon: 0});
+						window.location.reload();
+					}
+				}
+			});
+		}
+		function blurSubmitterId(obj) {
+			var id = $("#userId").val();
+			if(undefined != obj.value && null != obj.value && '' != obj.value){
+				$.ajax({
+					url:'${ctx}/sys/user/getUserByName?name='+obj.value,
+					type:"post",
+					success:function(data){
+						var user = data.body.data;
+						if(undefined == user || null == user || '' == user){
+							$("#userId").val("");
+						}else{
+							if(data.body.data.id != id){
+								if(undefined != id && null != id && '' != id){
+									$("#userId").val("");
+								}
+							}
+						}
+					}
+				});
+			}else{
+				$("#userId").val("");
+			}
+
+		}
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="standardOpinion" action="${ctx}/standardOpinion/standardOpinion/list" method="post" class="form-inline">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<%--<div class="layui-item query athird">
+							<label class="layui-form-label">项目编号:</label>
+							<div class="layui-input-block with-icon">
+								<form:input path="userId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="userId" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>--%>
+							<div class="layui-item query athird">
+								<label class="layui-form-label">责任人:</label>
+								<div class="layui-input-block with-icon">
+									<sys:inquireselectUserNotReadolnyTow id="user" name="user" value="${standardOpinion.userId}" labelName="userName" labelValue="${standardOpinion.userName}" cssStyle="background-color: #fff"
+																		 title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+								</div>
+							</div>
+							<div class="layui-item query athird ">
+								<label class="layui-form-label">创建时间:</label>
+								<div class="layui-input-block">
+									<input id="startDate" name="startDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+										   value="<fmt:formatDate value="${standardOpinion.startDate}" pattern="yyyy-MM-dd"/>"/>
+									</input>
+									<span class="group-sep">-</span>
+									<input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+										   value="<fmt:formatDate value="${standardOpinion.endDate}" pattern="yyyy-MM-dd"/>"/>
+									</input>
+								</div>
+							</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
+								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+                {field:'index',align:'center', fixed: 'left', title: '序号',width:40}
+                ,{field:'userName',align:'center', title: '项目责任人'}
+                ,{field:'projectAllNumber',align:'center', title: '总项目数'}
+                ,{field:'projectAllCount',align:'center', title: '当前项目数'}
+                ,{field:'standardCount',align:'center', title: '当前标准评价数'}
+                ,{field:'op',align:'center',title:"操作", fixed: 'right',width:100,templet:function(d){
+                        ////对操作进行初始化
+                        var xml="";
+						xml+="<a href=\"#\" onclick=\"openDialogView('查看', '${ctx}/standardOpinion/standardOpinion/viewList?id=" + d.id + "&userId=" + d.userId + "','95%', '95%','','关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 查看</a>";
+                        return xml;
+
+                    }}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="bzshbExamin" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${bzshbExamin.id}"
+                    ,"userId":"${bzshbExamin.userId}"
+                    ,"userName":"${bzshbExamin.userName}"
+					,"startDate":"<fmt:formatDate value="${bzshbExamin.startDate}" pattern="yyyy-MM-dd"/>"
+					,"endDate":"<fmt:formatDate value="${bzshbExamin.endDate}" pattern="yyyy-MM-dd"/>"
+                    ,"projectAllNumber":"${bzshbExamin.projectAllNumber}"
+                    ,"projectAllCount":"${bzshbExamin.projectAllCount}"
+                    ,"standardCount":"${bzshbExamin.standardCount}"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+</body>
+</html>

+ 365 - 0
src/main/webapp/webpage/modules/bzshStandardOpinion/StandardOpinionUserProjectList.jsp

@@ -0,0 +1,365 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>子项目列表</title>
+	<meta name="decorator" content="default"/>
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<script type="text/javascript">
+        $(document).ready(function() {
+			//搜索框收放
+			$('#moresee').click(function(){
+				if($('#moresees').is(':visible'))
+				{
+					$('#moresees').slideUp(0,resizeListWindow2);
+					$('#moresee i').removeClass("glyphicon glyphicon-menu-up").addClass("glyphicon glyphicon-menu-down");
+				}else{
+					$('#moresees').slideDown(0,resizeListWindow2);
+					$('#moresee i').removeClass("glyphicon glyphicon-menu-down").addClass("glyphicon glyphicon-menu-up");
+				}
+			});
+			laydate.render({
+				elem: '#startDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+				event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+				type : 'date'
+				, trigger: 'click'
+			});
+			laydate.render({
+				elem: '#endDate', //目标元素。由于laydate.js封装了一个轻量级的选择器引擎,因此elem还允许你传入class、tag但必须按照这种方式 '#id .class'
+				event: 'focus', //响应事件。如果没有传入event,则按照默认的click
+				type : 'date'
+				, trigger: 'click'
+			});
+        });
+
+        function reset() {
+            $("#searchForm").resetForm();
+        }
+        function openDialog(title,url,width,height,target,formId,tableId) {
+
+            if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                width = 'auto';
+                height = 'auto';
+            } else {//如果是PC端,根据用户设置的width和height显示。
+
+            }
+
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				skin:"two-btns",
+				maxmin: false, //开启最大化最小化按钮
+				content: url ,
+				btn: ['确定','关闭'],
+				yes: function(index, layero){
+					var body = top.layer.getChildFrame('body', index);
+					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+					var inputForm = body.find('#inputForm');
+					var top_iframe;
+					if(target){
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					}else{
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					inputForm.attr("action","${ctx}/subProject/subProject/save");//表单提交成功后,从服务器返回的url在当前tab中展示
+					var $document = iframeWin.contentWindow.document;
+
+					formSubmit2($document,formId,index,tableId);
+
+				},
+				cancel: function(index){
+				}
+			});
+        }
+
+			function formSubmit2($document,inputForm,index,tableId){
+
+				var validateForm = $($document.getElementById(inputForm)).validate({
+					submitHandler: function(form){
+						loading('正在提交,请稍等...');
+						form.submit();
+					},
+					errorContainer: "#messageBox",
+					errorPlacement: function(error, element) {
+						$($document.getElementById("#messageBox")).text("输入有误,请先更正。");
+						if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+							error.appendTo(element.parent().parent());
+						} else {
+							error.insertAfter(element);
+						}
+					}
+				});
+				if(validateForm.form()){
+					$($document.getElementById(inputForm)).ajaxSubmit({
+						success:function(data) {
+							var d = data;
+							//输出提示信息
+							if(d.str.length>0){
+								parent.layer.msg(d.str,{icon:1});
+							}
+							window.location.reload();
+							//关闭当前页
+							top.layer.close(index)
+						}
+					});
+				}
+			}
+        function openDialogre(title,url,width,height,target,formId,tableId) {
+			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+				width = 'auto';
+				height = 'auto';
+			} else {//如果是PC端,根据用户设置的width和height显示。
+
+			}
+
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				skin:"two-btns",
+				maxmin: false, //开启最大化最小化按钮
+				content: url ,
+				btn: ['确定','关闭'],
+				yes: function(index, layero){
+					var body = top.layer.getChildFrame('body', index);
+					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+					var inputForm = body.find('#inputForm');
+					var top_iframe;
+					if(target){
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					}else{
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					if(iframeWin.contentWindow.doSubmit(1) ){
+						// top.layer.close(index);//关闭对话框。
+						setTimeout(function(){
+							top.layer.close(index)
+							location.reload();
+						}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+
+				},
+				cancel: function(index){
+				}
+			});
+        }
+
+		// 确认对话框
+		function subConfirmx(mess, href, closed){
+
+			top.layer.confirm(mess, {icon: 3, title:'系统提示'}, function(index){
+				//do something
+				if (typeof href == 'function') {
+					href();
+				}else{
+					$.ajax({
+						type:"post",
+						url:href,
+						dataType:"json",
+						success:function(data){
+							if(data.success) {
+								top.layer.msg(data.str, {icon: 1});
+								window.location.reload();
+							}else {
+								top.layer.msg(data.str, {icon: 0});
+							}
+						}
+					})
+				}
+				top.layer.close(index);
+			});
+			return false;
+		}
+
+		function btnImport(){
+			var parentProId = $("#parentProId").val();
+			top.layer.open({
+				type: 2,
+				area: ['25%', '50%'],
+				title: "上传文件",
+				content: "${ctx}/subProject/subProject/importFile?parentProId="+parentProId+"&projectType=${subProjectInfo.projectType}",
+				//  btn: ['确定', '关闭'],
+				yes: function (index, layero) {
+					var body = top.layer.getChildFrame('body', index);
+					var inputForm = body.find('#inputForm');
+					var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					inputForm.validate();
+					if (inputForm.valid()) {
+						loading("正在提交,请稍等...");
+						inputForm.submit();
+					} else {
+						return;
+					}
+					top.layer.close(index);//关闭对话框。
+				},
+				cancel: function (index) {
+				}
+				,end: function () {
+					location.reload();
+				}
+			});
+		}
+
+		function btnImportTable(){
+			var parentProId = $("#parentProId").val();
+			top.layer.open({
+				type: 2,
+				area: ['25%', '50%'],
+				title: "上传文件",
+				content: "${ctx}/subProject/subProject/exportTableFile?parentProId="+parentProId+"&projectType=${subProjectInfo.projectType}",
+				//  btn: ['确定', '关闭'],
+				yes: function (index, layero) {
+					var body = top.layer.getChildFrame('body', index);
+					var inputForm = body.find('#inputForm');
+					var top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					inputForm.attr("target", top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					inputForm.validate();
+					if (inputForm.valid()) {
+						loading("正在提交,请稍等...");
+						inputForm.submit();
+					} else {
+						return;
+					}
+					top.layer.close(index);//关闭对话框。
+				},
+				cancel: function (index) {
+				}
+				,end: function () {
+					location.reload();
+				}
+			});
+		}
+
+	</script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body>
+<div class="wrapper wrapper-content">
+	<sys:message content="${message}"/>
+	<div class="layui-row">
+		<div class="full-width fl">
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="standardOpinion" action="${ctx}/standardOpinion/standardOpinion/viewList?id=${standardOpinion.id}&userId=${standardOpinion.userId}" method="post" class="form-inline layui-form">
+					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
+					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
+					<div class="commonQuery lw6">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">创建时间:</label>
+							<div class="layui-input-block">
+								<input id="startDate" name="startDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${standardOpinion.startDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+								<span class="group-sep">-</span>
+								<input id="endDate" name="endDate" placeholder="结束时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${standardOpinion.endDate}" pattern="yyyy-MM-dd"/>"/>
+								</input>
+							</div>
+						</div>
+						<div class="layui-item fr">
+							<div class="input-group">
+								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
+								<div class="layui-btn-group search-spacing">
+									<button id="searchQuery" class="layui-btn layui-btn-sm  layui-bg-blue" onclick="search()">查询</button>
+									<button id="searchReset" class="layui-btn layui-btn-sm" onclick="resetSearch()">重置</button>
+								</div>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+					<div id="moresees" style="clear:both;display:none;" class="lw6">
+
+						<div style="clear:both;"></div>
+					</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<div class="layui-btn-group ">
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新">&nbsp;刷新</button>
+					</div>
+					<div style="clear: both;"></div>
+				</div>
+				<table class="oa-table layui-table" id="contentTable1"></table>
+
+				<!-- 分页代码 -->
+				<table:page page="${page}"></table:page>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script>
+    layui.use('table', function(){
+        layui.table.render({
+            limit:${ page.pageSize }
+            ,elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+                {field:'index',align:'center', title: '序号',width:70}
+                ,{field:'projectName',align:'center',width:200, title: '项目名称',templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/ruralProject/ruralProjectView/view?id=" + d.projectId +"','95%', '95%')\">" + d.projectName + "</a>";
+                    }}
+				,{field:'createDate',align:'center',width:100, title: '创建时间'}
+				,{field:'standardDetail',align:'center',width:500, title: '复核标准内容',templet:function(d){
+						return "<span title=\""+d.standardDetail+"\" onclick=\"readOpenInfo('"+d.standardDetail+"')\">"+d.standardDetail+"</span>"
+					}}
+				,{field:'deductOption',align:'center', title: '总审意见'}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="bzshbExamin" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${bzshbExamin.id}"
+                    ,"projectId":"${bzshbExamin.projectId}"
+					,"createDate":"<fmt:formatDate value="${bzshbExamin.createDate}" pattern="yyyy-MM-dd"/>"
+                    ,"projectName":"<c:out value="${bzshbExamin.projectName}" escapeXml="true"/>"
+					,"standardDetail":"${bzshbExamin.standardDetail}"
+					,"deductOption":"${bzshbExamin.deductOption}"
+				}
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+
+</script>
+</body>
+</html>