Forráskód Böngészése

咨询、造价项目报表功能

user5 4 éve
szülő
commit
a82457dfeb

+ 30 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectReportDao.java

@@ -0,0 +1,30 @@
+package com.jeeplus.modules.ruralprojectrecords.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractReportInfo;
+
+import java.util.List;
+
+/**
+ * @author: 大猫
+ * @create: 2020-11-06 09:19
+ **/
+@MyBatisDao
+public interface RuralProjectReportDao extends CrudDao<RuralProjectReportInfo> {
+
+    /**
+     * 获取项目年份信息
+     * @param ruralProjectReportInfo
+     * @return
+     */
+    List<String> getYear(RuralProjectReportInfo ruralProjectReportInfo);
+
+    /**
+     * 获取项目月份信息
+     * @param ruralProjectReportInfo
+     * @return
+     */
+    List<String> getMonth(RuralProjectReportInfo ruralProjectReportInfo);
+}

+ 165 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectReportInfo.java

@@ -0,0 +1,165 @@
+package com.jeeplus.modules.ruralprojectrecords.entity;
+
+import com.jeeplus.common.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+
+import java.util.Date;
+
+/**
+ * @author: 大猫
+ * @create: 2020-11-05 14:35
+ **/
+public class RuralProjectReportInfo extends DataEntity<RuralProjectReportInfo>  {
+    private static final long serialVersionUID = 1L;
+
+    private String year;            //年份
+    private String month;           //月份
+    private String clientName;      //委托单位名称
+    private String projectName;     //项目名称
+    private String projectId;       //项目编号
+    private String reportNum;       //项目报告号
+    private String filesNum;        //案卷号
+    private String areaName;        //项目所在地
+    private Double reviewFee;       //送审金额(元)
+    private Double approvalFee;     //审定金额(元)
+    private Double verifyFee;       //核增核减额(元)
+    private Double verifyRate;      //核增核减率(%)
+    private String principalUser;   //项目负责人
+    private String officeName;      //所属部门
+
+    private String projectType;   //类型
+
+    @ExcelField(title="年份", align=2, sort=2)
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
+
+    @ExcelField(title="月份", align=2, sort=3)
+    public String getMonth() {
+        return month;
+    }
+
+    public void setMonth(String month) {
+        this.month = month;
+    }
+
+    @ExcelField(title="委托单位", align=2, sort=4)
+    public String getClientName() {
+        return clientName;
+    }
+
+    public void setClientName(String clientName) {
+        this.clientName = clientName;
+    }
+
+    @ExcelField(title="项目名称", align=2, sort=5)
+    public String getProjectName() {
+        return projectName;
+    }
+
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    @ExcelField(title="项目编号", align=2, sort=6)
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    @ExcelField(title="报告号", align=2, sort=7)
+    public String getReportNum() {
+        return reportNum;
+    }
+
+    public void setReportNum(String reportNum) {
+        this.reportNum = reportNum;
+    }
+
+    @ExcelField(title="案卷号", align=2, sort=8)
+    public String getFilesNum() {
+        return filesNum;
+    }
+
+    public void setFilesNum(String filesNum) {
+        this.filesNum = filesNum;
+    }
+
+    @ExcelField(title="项目所在地", align=2, sort=9)
+    public String getAreaName() {
+        return areaName;
+    }
+
+    public void setAreaName(String areaName) {
+        this.areaName = areaName;
+    }
+
+    @ExcelField(title="送审金额(元)", align=2, sort=10)
+    public Double getReviewFee() {
+        return reviewFee;
+    }
+
+    public void setReviewFee(Double reviewFee) {
+        this.reviewFee = reviewFee;
+    }
+
+    @ExcelField(title="审定金额(元)", align=2, sort=11)
+    public Double getApprovalFee() {
+        return approvalFee;
+    }
+
+    public void setApprovalFee(Double approvalFee) {
+        this.approvalFee = approvalFee;
+    }
+
+    @ExcelField(title="核增核减额(元)", align=2, sort=12)
+    public Double getVerifyFee() {
+        return verifyFee;
+    }
+
+    public void setVerifyFee(Double verifyFee) {
+        this.verifyFee = verifyFee;
+    }
+
+    @ExcelField(title="核增核减率(%)", align=2, sort=13)
+    public Double getVerifyRate() {
+        return verifyRate;
+    }
+
+    public void setVerifyRate(Double verifyRate) {
+        this.verifyRate = verifyRate;
+    }
+
+    @ExcelField(title="项目负责人", align=2, sort=14)
+    public String getPrincipalUser() {
+        return principalUser;
+    }
+
+    public void setPrincipalUser(String principalUser) {
+        this.principalUser = principalUser;
+    }
+
+    @ExcelField(title="所属部门", align=2, sort=15)
+    public String getOfficeName() {
+        return officeName;
+    }
+
+    public void setOfficeName(String officeName) {
+        this.officeName = officeName;
+    }
+
+    public String getProjectType() {
+        return projectType;
+    }
+
+    public void setProjectType(String projectType) {
+        this.projectType = projectType;
+    }
+}

+ 60 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectReportService.java

@@ -0,0 +1,60 @@
+package com.jeeplus.modules.ruralprojectrecords.service;
+
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectReportDao;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+/**
+ * @author: 大猫
+ * @create: 2020-11-06 09:19
+ **/
+@Service
+@Transactional(readOnly = true)
+public class RuralProjectReportService extends CrudService<RuralProjectReportDao, RuralProjectReportInfo> {
+
+    public Page<RuralProjectReportInfo> findPage(Page<RuralProjectReportInfo> page, RuralProjectReportInfo ruralProjectReportInfo) {
+        //设置数据权限
+        if(!UserUtils.getUser().isAdmin()) {
+            String dataScopeSql = null;
+            //判断查询为工程咨询信息
+            if("1".equals(ruralProjectReportInfo.getProjectType())){
+                dataScopeSql = dataScopeFilterOR(ruralProjectReportInfo.getCurrentUser(), "o", "u", "s", MenuStatusEnum.OVERALL_WORK_RECORDS.getValue());
+            } else if("2".equals(ruralProjectReportInfo.getProjectType())){//判断查询为造价审核信息
+                dataScopeSql = dataScopeFilterOR(ruralProjectReportInfo.getCurrentUser(), "o", "u", "s", MenuStatusEnum.OVERALL_COST_WORK_RECORDS.getValue());
+            }
+            ruralProjectReportInfo.getSqlMap().put("dsf", dataScopeSql);
+        }
+        int count = dao.queryCount(ruralProjectReportInfo);
+        page.setCount(count);
+        page.setCountFlag(false);
+        ruralProjectReportInfo.setPage(page);
+        List<RuralProjectReportInfo> list = super.findList(ruralProjectReportInfo);
+        page.setList(list);
+        return page;
+    }
+
+    /**
+     * 获取项目年份信息
+     * @param ruralProjectReportInfo
+     * @return
+     */
+    public List<String> getYear(RuralProjectReportInfo ruralProjectReportInfo){
+        return dao.getYear(ruralProjectReportInfo);
+    }
+
+    /**
+     * 获取项目月份信息
+     * @param ruralProjectReportInfo
+     * @return
+     */
+    public List<String> getMonth(RuralProjectReportInfo ruralProjectReportInfo){
+        return dao.getMonth(ruralProjectReportInfo);
+    }
+}

+ 77 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectReportController.java

@@ -0,0 +1,77 @@
+package com.jeeplus.modules.ruralprojectrecords.web;
+
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectReportService;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractReportInfo;
+import com.jeeplus.modules.workcontractinfo.service.WorkContractReportService;
+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.RequestMethod;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 造价项目报表
+ * @author: 大猫
+ * @create: 2020-11-06 08:54
+ **/
+@Controller
+@RequestMapping(value = "${adminPath}/ruralCostProjectReport/ruralCostProjectReport")
+public class RuralCostProjectReportController extends BaseController {
+    @Autowired
+    private RuralProjectReportService ruralProjectReportService;
+
+    /**
+     * 项目管理列表页面
+     */
+    @RequiresPermissions("ruralCostProjectReport:ruralCostProjectReport:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(RuralProjectReportInfo ruralProjectReportInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
+        //添加查询类型(造价工程)
+        ruralProjectReportInfo.setProjectType("2");
+        Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response), ruralProjectReportInfo);
+        //获取合同年份信息
+        List<String> yearList = ruralProjectReportService.getYear(ruralProjectReportInfo);
+        //获取合同月份信息
+        List<String> monthList = ruralProjectReportService.getMonth(ruralProjectReportInfo);
+        model.addAttribute("yearList", yearList);
+        model.addAttribute("monthList", monthList);
+        model.addAttribute("page", page);
+        model.addAttribute("yearValue", ruralProjectReportInfo.getYear());
+        model.addAttribute("monthValue", ruralProjectReportInfo.getMonth());
+        return "modules/ruralprojectrecords/ruralProjectReport/cost/ruralCostProjectReportList";
+    }
+
+    /**
+     * 导出excel文件
+     */
+    @RequestMapping(value = "export", method = RequestMethod.POST)
+    public String exportFile(RuralProjectReportInfo ruralProjectReportInfo, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            //添加查询类型(造价工程)
+            ruralProjectReportInfo.setProjectType("2");
+            String fileName = "年度工程造价项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            User user = UserUtils.getUser();
+            ruralProjectReportInfo.setCurrentUser(user);
+            Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response, -1), ruralProjectReportInfo);
+            new ExportExcel("年度工程造价项目一览表", RuralProjectReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导出年度工程造价项目一览表记录失败!失败信息:" + e.getMessage());
+        }
+        return "redirect:" + Global.getAdminPath() + "/ruralCostProjectReport/ruralCostProjectReport/?repage";
+    }
+}

+ 75 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectReportController.java

@@ -0,0 +1,75 @@
+package com.jeeplus.modules.ruralprojectrecords.web;
+
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.persistence.Page;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectReportService;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.utils.UserUtils;
+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.RequestMethod;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 咨询项目报表
+ * @author: 大猫
+ * @create: 2020-11-06 08:54
+ **/
+@Controller
+@RequestMapping(value = "${adminPath}/ruralProjectReport/ruralProjectReport")
+public class RuralProjectReportController extends BaseController {
+    @Autowired
+    private RuralProjectReportService ruralProjectReportService;
+
+    /**
+     * 项目列表页面
+     */
+    @RequiresPermissions("ruralProjectReport:ruralProjectReport:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(RuralProjectReportInfo ruralProjectReportInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
+        //添加查询类型(工程咨询)
+        ruralProjectReportInfo.setProjectType("1");
+        Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response), ruralProjectReportInfo);
+        //获取合同年份信息
+        List<String> yearList = ruralProjectReportService.getYear(ruralProjectReportInfo);
+        //获取合同月份信息
+        List<String> monthList = ruralProjectReportService.getMonth(ruralProjectReportInfo);
+        model.addAttribute("yearList", yearList);
+        model.addAttribute("monthList", monthList);
+        model.addAttribute("page", page);
+        model.addAttribute("yearValue", ruralProjectReportInfo.getYear());
+        model.addAttribute("monthValue", ruralProjectReportInfo.getMonth());
+        return "modules/ruralprojectrecords/ruralProjectReport/ruralProjectReportList";
+    }
+
+    /**
+     * 导出excel文件
+     */
+    @RequestMapping(value = "export", method = RequestMethod.POST)
+    public String exportFile(RuralProjectReportInfo ruralProjectReportInfo, HttpServletRequest request, HttpServletResponse response, RedirectAttributes redirectAttributes) {
+        try {
+            //添加查询类型(工程咨询)
+            ruralProjectReportInfo.setProjectType("1");
+            String fileName = "年度工程咨询项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            User user = UserUtils.getUser();
+            ruralProjectReportInfo.setCurrentUser(user);
+            Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response, -1), ruralProjectReportInfo);
+            new ExportExcel("年度工程咨询项目一览表", RuralProjectReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
+            return null;
+        } catch (Exception e) {
+            addMessage(redirectAttributes, "导出年度工程咨询项目一览表记录失败!失败信息:" + e.getMessage());
+        }
+        return "redirect:" + Global.getAdminPath() + "/ruralProjectReport/ruralProjectReport/?repage";
+    }
+}

+ 1 - 3
src/main/java/com/jeeplus/modules/workcontractinfo/web/WorkContractReportController.java

@@ -5,12 +5,9 @@ import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.web.BaseController;
-import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
-import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractReportInfo;
-import com.jeeplus.modules.workcontractinfo.service.WorkContractInfoService;
 import com.jeeplus.modules.workcontractinfo.service.WorkContractReportService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +22,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 /**
+ * 合同报表
  * @author: 大猫
  * @create: 2020-11-05 14:28
  **/

+ 128 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectReportDao.xml

@@ -0,0 +1,128 @@
+<?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.ruralprojectrecords.dao.RuralProjectReportDao">
+    
+	<sql id="ruralProjectInfoColumns">
+		a.id AS "id",
+		year(a.create_date) as "year",
+		month(a.create_date) as "month",
+		a.create_by AS "createBy.id",
+		(select name from sys_user user where user.id=a.create_by) AS "createBy.name",
+		(select name from sys_user user where user.id=a.create_by) AS "principalUser",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.remarks AS "remarks",
+
+		a.project_name AS "projectName",
+		a.project_id AS "projectId",
+		prd.number AS "reportNum",
+		prd.review_fee AS "reviewFee",
+		prd.approval_fee AS "approvalFee",
+		prd.verify_fee AS "verifyFee",
+		prd.verify_rate AS "verifyFate",
+		prr.file_num AS "filesNum",
+		client.name AS "clientName",
+		o.name as "officeName",
+		area.name AS "areaName"
+	</sql>
+	
+	<sql id="ruralProjectInfoJoins">
+		left join work_contract_info wci on a.contract_id = wci.id
+		left join work_client_info client on client.id = wci.client_id
+		left join project_report_data prd on prd.project_id = a.id
+		left join rural_project_report_record prr on prr.report_id = prd.id
+		left join sys_user u on u.id = a.create_by
+		left join sys_office o on o.id = a.office_id
+		LEFT JOIN sys_area area ON area.id = a.area_id
+        LEFT JOIN work_project_user w1 on a.id = w1.project_id
+	</sql>
+
+
+	<select id="get" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo" >
+		SELECT
+			<include refid="ruralProjectInfoColumns"/>
+		FROM rural_project_records a
+		<include refid="ruralProjectInfoJoins"/>
+		WHERE a.id = #{id}
+	</select>
+
+	<select id="getYear" resultType="java.lang.String">
+		SELECT
+			distinct(year(a.create_date)) as "year"
+		FROM rural_project_records a
+		<include refid="ruralProjectInfoJoins"/>
+		<where>
+			a.del_flag = 0 and project_type = #{projectType} and a.status = 5
+			AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
+		</where>
+	</select>
+
+	<select id="getMonth" resultType="java.lang.String">
+		SELECT
+			distinct(month(a.create_date)) as "month"
+		FROM rural_project_records a
+		<include refid="ruralProjectInfoJoins"/>
+		<where>
+			a.del_flag = 0 and project_type = #{projectType} and a.status = 5
+			AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
+		</where>
+	</select>
+
+	<select id="findList" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo" >
+		SELECT
+			<include refid="ruralProjectInfoColumns"/>
+		FROM rural_project_records a
+		<include refid="ruralProjectInfoJoins"/>
+		<where>
+			a.del_flag = 0 and project_type = #{projectType} and a.status = 5
+			<if test="year != null and year != ''">
+				AND YEAR(a.create_date) = #{year}
+			</if>
+			<if test="month != null and month != ''">
+				AND month(a.create_date) = #{month}
+			</if>
+			<if test="clientName != null and clientName != ''">
+				AND client.name LIKE concat('%',#{clientName},'%')
+			</if>
+			AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.create_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+
+	<select id="queryCount" resultType="int" >
+		SELECT count(1)
+		FROM rural_project_records a
+		<include refid="ruralProjectInfoJoins"/>
+		<where>
+			a.del_flag = 0 and project_type = #{projectType} and a.status = 5
+			<if test="year != null and year != ''">
+				AND YEAR(a.create_date) = #{year}
+			</if>
+			<if test="month != null and month != ''">
+				AND month(a.create_date) = #{month}
+			</if>
+			<if test="clientName != null and clientName != ''">
+				AND client.name LIKE concat('%',#{clientName},'%')
+			</if>
+			AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.create_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 212 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/cost/ruralCostProjectReportList.jsp

@@ -0,0 +1,212 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>咨询项目一览表</title>
+	<meta name="decorator" content="default"/>
+	<style>
+		.op-btn.op-btn-invalid{
+			background:#f0ad4e ;
+		}
+	</style>
+	<%@include file="/webpage/include/treetable.jsp" %>
+	<script type="text/javascript">
+        var validateForm;
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                rules:{
+                    number:{
+                        required:true
+                    },
+                    businessType:{
+                        required:true
+                    }
+                },
+                messages:{
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+            //搜索框收放
+            $('#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");
+                }
+            });
+        });
+	</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="ruralProjectReportInfo" action="${ctx}/ruralCostProjectReport/ruralCostProjectReport/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 lw7">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">年份:</label>
+						<div class="layui-input-block with-icon">
+							<form:select path="year" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<c:forEach items="${yearList}" var="year">
+									<option value="${year}" <c:if test="${yearValue==year}">selected</c:if> >${year}</option>
+								</c:forEach>
+							</form:select>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">月份:</label>
+						<div class="layui-input-block with-icon">
+							<form:select path="month" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<c:forEach items="${monthList}" var="month">
+									<option value="${month}" <c:if test="${monthValue==month}">selected</c:if> >${month}</option>
+								</c:forEach>
+							</form:select>
+						</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" class="lw7" style="clear:both;display:none;height: 70px;">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">创建人:</label>
+						<div class="layui-input-block  with-icon">
+							<sys:treeselect id="create" name="createId" value="${createId}" labelName="createNameStr" labelValue="${createName}"
+											title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required 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 with-icon">
+							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+						</div>
+					</div>
+				</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<table:exportExcel url="${ctx}/ruralCostProjectReport/ruralCostProjectReport/export"></table:exportExcel><!-- 导出按钮 -->
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</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', title: '序号',width:40}
+                ,{field:'year',align:'center', sort:true,title: '年份'}
+                ,{field:'month',align:'center', sort:true,title: '月份'}
+				,{field:'clientName',align:'center', title: '委托单位'}
+                ,{field:'projectName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\""+d.projectName+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projectName + "</a>";
+                    }}
+				,{field:'projectId', align:'center',minWidth:110,title: '项目编号'}
+				,{field:'reportNum',align:'center',minWidth:150, title: '报告号'}
+				,{field:'filesNum',align:'center',minWidth:150, title: '案卷号'}
+				,{field:'areaName',align:'center', title: '项目所在地'}
+				,{field:'reviewFee',align:'center',minWidth:100, title: '送审金额(元)'}
+				,{field:'approvalFee',align:'center',minWidth:100, title: '审定金额(元)'}
+				,{field:'verifyFee',align:'center',minWidth:120, title: '核增核减额(元)'}
+				,{field:'verifyRate',align:'center',minWidth:120, title: '核增核减率(%)'}
+				,{field:'principalUser',align:'center', title: '项目负责人'}
+				,{field:'officeName',align:'center', title: '所属部门'}
+
+
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workContractInfo" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workContractInfo.id}"
+                    ,"year":"${workContractInfo.year}"
+                    ,"month":"${workContractInfo.month}"
+					,"clientName":"${workContractInfo.clientName}"
+                    ,"projectName":"${workContractInfo.projectName}"
+					,"projectId":"${workContractInfo.projectId}"
+					,"reportNum":"${workContractInfo.reportNum}"
+					,"filesNum":"${workContractInfo.filesNum}"
+					,"areaName":"${workContractInfo.areaName}"
+					,"reviewFee":"${workContractInfo.reviewFee}"
+					,"approvalFee":"${workContractInfo.approvalFee}"
+					,"verifyFee":"${workContractInfo.verifyFee}"
+					,"verifyRate":"${workContractInfo.verifyRate}"
+					,"principalUser":"${workContractInfo.principalUser}"
+					,"officeName":"${workContractInfo.officeName}"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable();
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+</body>
+</html>

+ 212 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/ruralProjectReportList.jsp

@@ -0,0 +1,212 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>咨询项目一览表</title>
+	<meta name="decorator" content="default"/>
+	<style>
+		.op-btn.op-btn-invalid{
+			background:#f0ad4e ;
+		}
+	</style>
+	<%@include file="/webpage/include/treetable.jsp" %>
+	<script type="text/javascript">
+        var validateForm;
+        $(document).ready(function() {
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                rules:{
+                    number:{
+                        required:true
+                    },
+                    businessType:{
+                        required:true
+                    }
+                },
+                messages:{
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+            //搜索框收放
+            $('#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");
+                }
+            });
+        });
+	</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="ruralProjectReportInfo" action="${ctx}/ruralProjectReport/ruralProjectReport/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 lw7">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">年份:</label>
+						<div class="layui-input-block with-icon">
+							<form:select path="year" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<c:forEach items="${yearList}" var="year">
+									<option value="${year}" <c:if test="${yearValue==year}">selected</c:if> >${year}</option>
+								</c:forEach>
+							</form:select>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">月份:</label>
+						<div class="layui-input-block with-icon">
+							<form:select path="month" class="form-control simple-select">
+								<form:option value="" label=""/>
+								<c:forEach items="${monthList}" var="month">
+									<option value="${month}" <c:if test="${monthValue==month}">selected</c:if> >${month}</option>
+								</c:forEach>
+							</form:select>
+						</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" class="lw7" style="clear:both;display:none;height: 70px;">
+					<div class="layui-item query athird">
+						<label class="layui-form-label">创建人:</label>
+						<div class="layui-input-block  with-icon">
+							<sys:treeselect id="create" name="createId" value="${createId}" labelName="createNameStr" labelValue="${createName}"
+											title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required 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 with-icon">
+							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+						</div>
+					</div>
+				</div>
+				</form:form>
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="contentShadow layui-form contentDetails">
+				<div class="nav-btns">
+					<table:exportExcel url="${ctx}/ruralProjectReport/ruralProjectReport/export"></table:exportExcel><!-- 导出按钮 -->
+					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i> 刷新</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', title: '序号',width:40}
+                ,{field:'year',align:'center', sort:true,title: '年份'}
+                ,{field:'month',align:'center', sort:true,title: '月份'}
+				,{field:'clientName',align:'center', title: '委托单位'}
+                ,{field:'projectName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\""+d.projectName+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projectName + "</a>";
+                    }}
+				,{field:'projectId', align:'center',minWidth:110,title: '项目编号'}
+				,{field:'reportNum',align:'center',minWidth:150, title: '报告号'}
+				,{field:'filesNum',align:'center',minWidth:150, title: '案卷号'}
+				,{field:'areaName',align:'center', title: '项目所在地'}
+				,{field:'reviewFee',align:'center',minWidth:100, title: '送审金额(元)'}
+				,{field:'approvalFee',align:'center',minWidth:100, title: '审定金额(元)'}
+				,{field:'verifyFee',align:'center',minWidth:120, title: '核增核减额(元)'}
+				,{field:'verifyRate',align:'center',minWidth:120, title: '核增核减率(%)'}
+				,{field:'principalUser',align:'center', title: '项目负责人'}
+				,{field:'officeName',align:'center', title: '所属部门'}
+
+
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="workContractInfo" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${workContractInfo.id}"
+                    ,"year":"${workContractInfo.year}"
+                    ,"month":"${workContractInfo.month}"
+					,"clientName":"${workContractInfo.clientName}"
+                    ,"projectName":"${workContractInfo.projectName}"
+					,"projectId":"${workContractInfo.projectId}"
+					,"reportNum":"${workContractInfo.reportNum}"
+					,"filesNum":"${workContractInfo.filesNum}"
+					,"areaName":"${workContractInfo.areaName}"
+					,"reviewFee":"${workContractInfo.reviewFee}"
+					,"approvalFee":"${workContractInfo.approvalFee}"
+					,"verifyFee":"${workContractInfo.verifyFee}"
+					,"verifyRate":"${workContractInfo.verifyRate}"
+					,"principalUser":"${workContractInfo.principalUser}"
+					,"officeName":"${workContractInfo.officeName}"
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+
+    })
+
+    resizeListTable();
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+</body>
+</html>