Przeglądaj źródła

首页-我的项目(待办项目、已办项目)

user5 4 lat temu
rodzic
commit
4807974a0f

+ 14 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsDao.java

@@ -65,6 +65,20 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
     Integer findPageCount(RuralProjectRecords records);
 
     /**
+     * 查询已办项目(首页)
+     * @param records
+     * @return
+     */
+    List<RuralProjectRecords> findPageFinishList(RuralProjectRecords records);
+
+    /**
+     * 查询已办项目数据(首页)
+     * @param records
+     * @return
+     */
+    Integer findPageFinishCount(RuralProjectRecords records);
+
+    /**
      * 根据id查新项目信息
      * @param id
      * @return

+ 9 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecordReportInfo.java

@@ -21,6 +21,7 @@ public class RuralProjectRecordReportInfo extends DataEntity<RuralProjectRecordR
     private String officeId;
 
     private String projectType;   //类型
+    private Integer endingCount;   //结束天数
 
     @ExcelField(title="年份", align=2, sort=2)
     public String getYear() {
@@ -109,4 +110,12 @@ public class RuralProjectRecordReportInfo extends DataEntity<RuralProjectRecordR
     public void setOfficeId(String officeId) {
         this.officeId = officeId;
     }
+
+    public Integer getEndingCount() {
+        return endingCount;
+    }
+
+    public void setEndingCount(Integer endingCount) {
+        this.endingCount = endingCount;
+    }
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordReportService.java

@@ -7,8 +7,10 @@ import com.jeeplus.common.utils.MenuStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordReportDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralWorkProjectUserDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -92,6 +94,13 @@ public class RuralProjectRecordReportService extends CrudService<RuralProjectRec
      * @return
      */
     public Page<RuralProjectRecordReportInfo> findPageHome(Page<RuralProjectRecordReportInfo> page, RuralProjectRecordReportInfo ruralProjectRecordReportInfo) {
+        //查询超期时间天数
+        List<MainDictDetail> adventCount = DictUtils.getMainDictListOnProjectAdvent("advent_count");
+        if(adventCount.size()>0){
+            //获取超期时间天数转int
+            Integer endingCount = Integer.parseInt(adventCount.get(0).getLabel());
+            ruralProjectRecordReportInfo.setEndingCount(endingCount);
+        }
         ruralProjectRecordReportInfo.setPage(page);
         page.setList(dao.findPageHome(ruralProjectRecordReportInfo));
         return page;

+ 25 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -1309,6 +1309,31 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	}
 
 	/**
+	 * 查询已办项目(首页)
+	 * @param page
+	 * @param projectRecords
+	 * @return
+	 */
+	public Page<RuralProjectRecords> finishListShow(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords) {
+		projectRecords.setCreateBy(UserUtils.getUser());
+		int count = dao.findPageFinishCount(projectRecords);
+		page.setCount(count);
+		page.setCountFlag(false);
+		projectRecords.setPage(page);
+		List<RuralProjectRecords> recordsList = dao.findPageFinishList(projectRecords);
+		//查询负责人信息
+		for (RuralProjectRecords records : recordsList) {
+			this.queryContractInfos(records);
+			List<User> users = workProjectUserDao.queryProjectUsers(records.getId(), "1");
+			records.setProjectLeaders(users);
+			records.setLeaderNameStr(Collections3.extractToString(users, "name", ","));
+			records.setLeaderIds(Collections3.extractToString(users, "id", ","));
+		}
+		page.setList(recordsList);
+		return page;
+	}
+
+	/**
 	 * 获取项目即将超期还未上报并进行通知
 	 * @return
 	 */

+ 31 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java

@@ -793,4 +793,35 @@ public class RuralProjectRecordsController extends BaseController {
 		model.addAttribute("page", page);
 		return "modules/ruralprojectrecords/ruralProjectRecordsShowList";
 	}
+
+	/**
+	 * 查询已办项目信息
+	 */
+	@RequestMapping(value = "finishListShow")
+	public String finishListShow(RuralProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
+		//获取项目信息
+		Page<RuralProjectRecords> page = projectRecordsService.finishListShow(new Page<RuralProjectRecords>(request, response), projectRecords);
+		//无合同状态下,获取委托方的名称
+		List<RuralProjectRecords> list = page.getList();
+		for (int i = 0; i < list.size(); i++) {
+			RuralProjectRecords records1 = list.get(i);
+			if (records1.getWorkContractInfo() == null) {
+				projectRecordsService.queryLinkmanInfos(records1);
+				if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
+					WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
+					WorkContractInfo contractInfo = new WorkContractInfo();
+					contractInfo.setClient(linkman.getClientId());
+					records1.setWorkContractInfo(contractInfo);
+				}
+			}
+			//判断是否为admin
+			if (UserUtils.isManager()){
+				records1.setFlagAdmin("1");
+			}else{
+				records1.setFlagAdmin("0");
+			}
+		}
+		model.addAttribute("page", page);
+		return "modules/ruralprojectrecords/ruralProjectRecordsShowFinishList";
+	}
 }

+ 13 - 11
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordReportDao.xml

@@ -23,15 +23,7 @@
 		prd.verify_rate AS "verifyFate",
 		prr.file_num AS "filesNum",
 		o.name as "officeName",
-		area.name AS "areaName",
-		(case when prr.status is null and date_add(prd.update_date,interval 40 day)&lt; now() then '超期未归档'
-		when prr.status!=5 and date_add(prd.update_date,interval 40 day)&lt; now() then '超期归档中'
-		when prr.status=5 and date_add(prd.update_date,interval 40 day)&lt; now() then '超期已归档'
-		when prr.status is null and date_add(prd.update_date,interval 40 day)&gt;= now() then '未归档'
-		when prr.status!=5 and date_add(prd.update_date,interval 40 day)&gt;= now() then '归档中'
-		when prr.status=5 and date_add(prd.update_date,interval 40 day)&gt;= now() then '已归档'
-		end) as "recordStatus",
-		"未上报" as reportedStatus
+		area.name AS "areaName"
 	</sql>
 	
 	<sql id="ruralProjectInfoJoins">
@@ -167,20 +159,30 @@
 	<select id="findPageHome" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo" >
 		SELECT
 		<include refid="ruralProjectInfoColumns"/>
+		,(case when prr.status is null and date_add(prd.update_date,interval #{endingCount} day)&lt; now() then '超期未归档'
+		when prr.status!=5 and date_add(prd.update_date,interval #{endingCount} day)&lt; now() then '超期归档中'
+		when prr.status=5 and date_add(prd.update_date,interval #{endingCount} day)&lt; now() then '超期已归档'
+		when prr.status is null and date_add(prd.update_date,interval #{endingCount} day)&gt;= now() then '未归档'
+		when prr.status!=5 and date_add(prd.update_date,interval #{endingCount} day)&gt;= now() then '归档中'
+		when prr.status=5 and date_add(prd.update_date,interval #{endingCount} day)&gt;= now() then '已归档'
+		end) as "recordStatus",
+		"未上报" as reportedStatus
 		,a.project_type as "projectType"
 		FROM rural_project_records a
 		<include refid="ruralProjectInfoJoins"/>
 		<where>
 			a.del_flag = 0
-			and (
+			<!--and (
 			(((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
 			or ((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
 			or ((prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
 			or (prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
 			or (((prr.status != 5 or prr.status is null) and a.reported_state=5 and date_add(prd.update_date,interval 40 day)>= now())
 			or ((prr.status != 5 or prr.status is null) and a.reported_state=5 and prd.update_date is null))
-			)
+			)-->
 			and (a.create_by = #{createBy.id} or w1.user_id = #{createBy.id})
+			and ((prr.status != 5 or prr.status is null) or (a.reported_state is null or a.reported_state = '6'))
+			and a.status = 5
 		</where>
 		ORDER BY a.create_date DESC
 	</select>

+ 182 - 4
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -739,6 +739,9 @@
 	<select id="findPageList" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords" >
 		SELECT
 		<include refid="projectRecordsColumns"/>
+		,ifnull(prr.status,0) as projectReportRecordStatus
+		,ifnull(a.reported_state,0) as reportedState
+		,prr.process_instance_id as prrProcessInstanceId
 		,a.project_type as "projectType"
 		FROM rural_project_records a
 		left join work_contract_info wci on a.contract_id = wci.id
@@ -752,14 +755,16 @@
 		left join sys_office so on so.id = su.office_id
 		<where>
 			a.del_flag = 0
-			and (
+			<!--and (
 			(((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
 			or ((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
 			or ((prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
 			or (prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
 			or (((prr.status != 5 or prr.status is null) and a.reported_state=5 and date_add(prd.update_date,interval 40 day)>= now())
 			or ((prr.status != 5 or prr.status is null) and a.reported_state=5 and prd.update_date is null))
-			)
+			)-->
+			and ((prr.status != 5 or prr.status is null) or (a.reported_state is null or a.reported_state = '6'))
+			and a.status = 5
 			and (a.create_by = #{createBy.id} or w1.user_id = #{createBy.id})
 			<if test="projectId != null and projectId != ''">
 				AND a.project_id like concat('%',#{projectId},'%')
@@ -833,14 +838,187 @@
 		left join sys_office so on so.id = su.office_id
 		<where>
 			a.del_flag = 0
-			and (
+			<!--and (
 			(((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
 			or ((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
 			or ((prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
 			or (prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
 			or (((prr.status != 5 or prr.status is null) and a.reported_state=5 and date_add(prd.update_date,interval 40 day)>= now())
 			or ((prr.status != 5 or prr.status is null) and a.reported_state=5 and prd.update_date is null))
-			)
+			)-->
+			and ((prr.status != 5 or prr.status is null) or (a.reported_state is null or a.reported_state = '6'))
+			and a.status = 5
+			and (a.create_by = #{createBy.id} or w1.user_id = #{createBy.id})
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="scaleType != null and scaleType != ''">
+				AND a.scale_type = #{scaleType}
+			</if>
+			<if test="scaleUnit != null and scaleUnit != ''">
+				AND a.scale_unit = #{scaleUnit}
+			</if>
+			<if test="scaleQuantity != null and scaleQuantity != ''">
+				AND a.scale_quantity = #{scaleQuantity}
+			</if>
+			<if test="projectSite != null and projectSite != ''">
+				AND a.project_site LIKE concat('%',#{projectSite},'%')
+			</if>
+			<if test="remarks != null and remarks != ''">
+				AND a.remarks LIKE concat('%',#{remarks},'%')
+			</if>
+			<if test="projectDesc != null and projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{projectDesc},'%')
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractNum !=null and workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{workContractInfo.contractNum}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractPrice !=null and workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{workContractInfo.contractPrice}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractType !=null and workContractInfo.contractType !=''">
+				AND wci.contract_type = #{workContractInfo.contractType}
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="projectStatus !=null">
+				AND a.status = #{projectStatus}
+			</if>
+			<if test="beginDate !=null">
+				AND a.create_date >= #{beginDate}
+			</if>
+			<if test="endDate !=null">
+				AND a.create_date &lt; #{endDate}
+			</if>
+		</where>
+	</select>
+
+
+	<select id="findPageFinishList" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords" >
+		SELECT
+		<include refid="projectRecordsColumns"/>
+		,ifnull(prr.status,0) as projectReportRecordStatus
+		,ifnull(a.reported_state,0) as reportedState
+		,prr.process_instance_id as prrProcessInstanceId
+		,a.project_type as "projectType"
+		FROM rural_project_records a
+		left join work_contract_info wci on a.contract_id = wci.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
+		left join sys_user su on su.id = w1.user_id
+		left join sys_office so on so.id = su.office_id
+		<where>
+			a.del_flag = 0
+			<!--and (
+			(((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
+			or ((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
+			or ((prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
+			or (prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
+			or (((prr.status != 5 or prr.status is null) and a.reported_state=5 and date_add(prd.update_date,interval 40 day)>= now())
+			or ((prr.status != 5 or prr.status is null) and a.reported_state=5 and prd.update_date is null))
+			)-->
+			and (prr.status = 5 and (a.reported_state = '5' or a.reported_state = '7'))
+			and a.status = 5
+			and (a.create_by = #{createBy.id} or w1.user_id = #{createBy.id})
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="scaleType != null and scaleType != ''">
+				AND a.scale_type = #{scaleType}
+			</if>
+			<if test="scaleUnit != null and scaleUnit != ''">
+				AND a.scale_unit = #{scaleUnit}
+			</if>
+			<if test="scaleQuantity != null and scaleQuantity != ''">
+				AND a.scale_quantity = #{scaleQuantity}
+			</if>
+			<if test="projectSite != null and projectSite != ''">
+				AND a.project_site LIKE concat('%',#{projectSite},'%')
+			</if>
+			<if test="remarks != null and remarks != ''">
+				AND a.remarks LIKE concat('%',#{remarks},'%')
+			</if>
+			<if test="projectDesc != null and projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{projectDesc},'%')
+			</if>
+			<if test="area != null and area.id != null and area.id != ''">
+				AND a.area_id = #{area.id}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractNum !=null and workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{workContractInfo.contractNum}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractPrice !=null and workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{workContractInfo.contractPrice}
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.contractType !=null and workContractInfo.contractType !=''">
+				AND wci.contract_type = #{workContractInfo.contractType}
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="projectStatus !=null">
+				AND a.status = #{projectStatus}
+			</if>
+			<if test="beginDate !=null">
+				AND a.create_date >= #{beginDate}
+			</if>
+			<if test="endDate !=null">
+				AND a.create_date &lt; #{endDate}
+			</if>
+		</where>
+		ORDER BY a.create_date DESC
+	</select>
+
+	<select id="findPageFinishCount" resultType="java.lang.Integer">
+		SELECT count(DISTINCT a.id)
+		FROM rural_project_records a
+		left join work_contract_info wci on a.contract_id = wci.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
+		left join sys_user su on su.id = w1.user_id
+		left join sys_office so on so.id = su.office_id
+		<where>
+			a.del_flag = 0
+			<!--and (
+			(((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
+			or ((prr.status != 5 or prr.status is null) and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
+			or ((prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and date_add(prd.update_date,interval 40 day)>= now())
+			or (prr.status = 5 and (a.reported_state!=5 or a.reported_state is null) and prd.update_date is null))
+			or (((prr.status != 5 or prr.status is null) and a.reported_state=5 and date_add(prd.update_date,interval 40 day)>= now())
+			or ((prr.status != 5 or prr.status is null) and a.reported_state=5 and prd.update_date is null))
+			)-->
+			and (prr.status = 5 and (a.reported_state = '5' or a.reported_state = '7'))
+			and a.status = 5
 			and (a.create_by = #{createBy.id} or w1.user_id = #{createBy.id})
 			<if test="projectId != null and projectId != ''">
 				AND a.project_id like concat('%',#{projectId},'%')

+ 7 - 3
src/main/webapp/static/common/css/style.css

@@ -8481,12 +8481,12 @@ a.op-btn-download:hover{
     background-color: #00af0e;
     color:#ffffff;
 }
-.op-btn,.status-label,.layui-table-cell{
+.op-btn,.status-label,.new-status-label,.layui-table-cell{
     height:24px;
     line-height: 22px;
     font-size: 12px;
 }
-.op-btn,.status-label{
+.op-btn,.status-label,.new-status-label{
     display: inline-block;
     text-align: center;
     cursor: pointer;
@@ -8503,7 +8503,11 @@ a.op-btn-download:hover{
     width: 52px;
     border-radius: 5px;
 }
-.status-label-signed{
+.new-status-label{
+    width: 72px;
+    border-radius: 5px;
+}
+.status-label-signed,.new-status-label{
     color: #2196f3;
     border: solid 1px #2196f3;
 }

+ 3 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageList.jsp

@@ -320,12 +320,12 @@
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
-				,{align:'center', title: '上报状态',  width:70,templet:function(d){
+				,{align:'center', title: '上报状态',  width:90,templet:function(d){
 						var st = getReportedState(d.reportedState);
 						if(st.action)
-							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralCostProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralCostProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
 						else
-							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+							var xml = "<span style=\"cursor:default;\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
 						return xml;
 					}}
                 ,{field:'op',align:'center',title:"操作", fixed: 'right',width:250,templet:function(d){

+ 256 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsShowFinishList.jsp

@@ -0,0 +1,256 @@
+<%@ 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">
+        $(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: '#beginDate', //目标元素。由于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();
+        }
+	</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="list-form-tab contentShadow shadowLTR" id="tabDiv">
+				<ul class="list-tabs" >
+					<li><a href="${ctx}/ruralProject/ruralProjectRecords/listShow">待办项目</a></li>
+					<li class="active"><a href="${ctx}/ruralProject/ruralProjectRecords/finishListShow">已办项目</a></li>
+				</ul>
+			</div>
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="ruralProjectRecords" action="${ctx}/ruralProject/ruralProjectRecords/finishListShow" 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="projectId" 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="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-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 class="layui-item query athird ">
+							<label class="layui-form-label">项目负责人:</label>
+							<div class="layui-input-block">
+								<form:input path="leaderNameStr" htmlEscape="false" maxlength="255"  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="workContractInfo.name" htmlEscape="false" maxlength="255"  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="workContractInfo.client.name" htmlEscape="false" maxlength="255"  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="beginDate" name="beginDate" placeholder="开始时间" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
+									   value="<fmt:formatDate value="${projectRecords.beginDate}" 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="${projectRecords.endDate}" pattern="yyyy-MM-dd"/>"/>
+                                </input>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">状态:</label>
+							<div class="layui-input-block">
+								<form:select path="projectStatus" class=" form-control  simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getRuralDictList('rural_project_audit_state')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</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">
+					<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: [[
+                {field:'index',align:'center', title: '序号',width:40}
+                ,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
+                    }}
+				,{field:'projId',align:'center', title: '项目编号',  width:150}
+                ,{field:'contract', align:'center',title: '合同名称',minWidth:200,templet:function(d){
+                    	return "<span title='"+ d.contract +"'>" + d.contract + "</span>";
+					}}
+                ,{field:'projMaster', align:'center',title: '负责人', width:65,templet:function(d){
+                        return "<span title=\"" + d.projMaster + "\">" + d.projMaster + "</span>";
+                    }}
+                ,{field:'client',align:'center', title: '委托方',  width:150,templet:function(d){
+                        return "<span title=\"" + d.client + "\">" + d.client + "</span>";
+                    }}
+                ,{field:'createDate',align:'center', title: '创建日期',  width:80}
+                ,{align:'center', title: '项目状态',  width:70,templet:function(d){
+                        var st = getruralProjectState(d.projectStatus);
+                        if(st.action)
+                            var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectRecords/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                        else
+                            var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                        return xml;
+                    }}
+				,{align:'center', title: '归档状态',  width:70,templet:function(d){
+						var st = getRuralProjectArchiveState(d.recordStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
+				,{align:'center', title: '上报状态',  width:90,templet:function(d){
+						var st = getReportedState(d.reportedState);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectRecords/getProcess?id=" + d.id + "','95%','95%')\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
+            ]]
+            ,data: [
+                <c:if test="${ not empty page.list}">
+                <c:forEach items="${page.list}" var="projectRecords" varStatus="index">
+                <c:if test="${index.index != 0}">,</c:if>
+                {
+                    "index":"${index.index+1}"
+                    ,"id":"${projectRecords.id}"
+                    ,"projId":"${projectRecords.projectId}"
+                    ,"projName":"<c:out value="${projectRecords.projectName}" escapeXml="true"/>"
+                    ,"projMaster":"<c:forEach items="${projectRecords.projectLeaders}" var="leader" varStatus="status"><c:choose><c:when test="${status.last}">${leader.name}</c:when><c:otherwise>${leader.name},</c:otherwise></c:choose></c:forEach>"
+                    ,"contract":"${projectRecords.workContractInfo.name}"
+                    ,"client":"${projectRecords.workContractInfo.client.name}"
+                    ,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+                    ,"projectStatus":"${projectRecords.projectStatus}"
+                    ,"procId":"${projectRecords.processInstanceId}"
+					,"recordStatus":"${projectRecords.projectReportRecordStatus}"
+					,"reportedState":"${projectRecords.reportedState}"
+					,"prrProcessInstanceId":"${projectRecords.prrProcessInstanceId}"
+					,"flagAdmin":"${projectRecords.flagAdmin}"
+                    <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
+                    <shiro:hasPermission name="ruralProject:ruralProjectRecords:del">,"candel":	<c:choose><c:when test="${(projectRecords.projectStatus == 1 or projectRecords.projectStatus == 3 or projectRecords.projectStatus == 4) && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                    <shiro:hasPermission name="ruralProject:ruralProjectRecords:edit">,"canedit1":	<c:choose><c:when test="${projectRecords.projectStatus == 1 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canedit2":<c:choose><c:when test="${projectRecords.projectStatus == 4 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"canrecall":<c:choose><c:when test="${projectRecords.projectStatus == 3 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </shiro:hasPermission>
+                    ,"cancancel":<c:choose><c:when test="${projectRecords.projectStatus == 2 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    ,"deleteAdmin":<c:choose><c:when test="${'1' == projectRecords.flagAdmin && projectRecords.projectStatus == 5}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+                    </c:when>
+                    <c:otherwise>
+                    ,"candel":"0"
+                    ,"canedit1":"0"
+                    ,"canedit2":"0"
+                    ,"canrecall":"0"
+                    ,"cancancel":"0"
+                    ,"deleteAdmin":"0"
+                    </c:otherwise>
+                    </c:choose>
+                    <shiro:hasPermission name="ruralProject:ruralProjectRecords:edit">,"canedit3":<c:choose><c:when test="${projectRecords.projectStatus == 5 && fn:contains(projectRecords.leaderIds,fns:getUser().id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
+                }
+                </c:forEach>
+                </c:if>
+            ]
+            // ,even: true
+            // ,height: 315
+        });
+    })
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+</body>
+</html>

+ 26 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsShowList.jsp

@@ -52,6 +52,12 @@
 	<sys:message content="${message}"/>
 	<div class="layui-row">
 		<div class="full-width fl">
+			<div class="list-form-tab contentShadow shadowLTR" id="tabDiv">
+				<ul class="list-tabs" >
+					<li class="active"><a href="${ctx}/ruralProject/ruralProjectRecords/listShow">待办项目</a></li>
+					<li><a href="${ctx}/ruralProject/ruralProjectRecords/finishListShow">已办项目</a></li>
+				</ul>
+			</div>
 			<div class="layui-row contentShadow shadowLR" id="queryDiv">
 				<form:form id="searchForm" modelAttribute="ruralProjectRecords" action="${ctx}/ruralProject/ruralProjectRecords/listShow" method="post" class="form-inline">
 					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
@@ -165,7 +171,7 @@
                         return "<span title=\"" + d.client + "\">" + d.client + "</span>";
                     }}
                 ,{field:'createDate',align:'center', title: '创建日期',  width:80}
-                ,{align:'center', title: '状态',  width:70,templet:function(d){
+                ,{align:'center', title: '项目状态',  width:70,templet:function(d){
                         var st = getruralProjectState(d.projectStatus);
                         if(st.action)
                             var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectRecords/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
@@ -173,6 +179,22 @@
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
+                ,{align:'center', title: '归档状态',  width:70,templet:function(d){
+                        var st = getRuralProjectArchiveState(d.recordStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+                    }}
+                ,{align:'center', title: '上报状态',  width:90,templet:function(d){
+                        var st = getReportedState(d.reportedState);
+                        if(st.action)
+                            var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectRecords/getProcess?id=" + d.id + "','95%','95%')\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                        else
+                            var xml = "<span style=\"cursor:default;\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                        return xml;
+                    }}
             ]]
             ,data: [
                 <c:if test="${ not empty page.list}">
@@ -190,6 +212,9 @@
                     ,"projectStatus":"${projectRecords.projectStatus}"
                     ,"procId":"${projectRecords.processInstanceId}"
 					,"flagAdmin":"${projectRecords.flagAdmin}"
+					,"recordStatus":"${projectRecords.projectReportRecordStatus}"
+					,"reportedState":"${projectRecords.reportedState}"
+					,"prrProcessInstanceId":"${projectRecords.prrProcessInstanceId}"
                     <c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
                     <shiro:hasPermission name="ruralProject:ruralProjectRecords:del">,"candel":	<c:choose><c:when test="${(projectRecords.projectStatus == 1 or projectRecords.projectStatus == 3 or projectRecords.projectStatus == 4) && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose></shiro:hasPermission>
                     <shiro:hasPermission name="ruralProject:ruralProjectRecords:edit">,"canedit1":	<c:choose><c:when test="${projectRecords.projectStatus == 1 && fns:getUser().id == projectRecords.createBy.id}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>

+ 3 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/ruralProjectMessageList.jsp

@@ -321,12 +321,12 @@
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
-                ,{align:'center', title: '上报状态',  width:70,templet:function(d){
+                ,{align:'center', title: '上报状态',  width:90,templet:function(d){
                         var st = getReportedState(d.reportedState);
                         if(st.action)
-                            var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                            var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         else
-                            var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                            var xml = "<span style=\"cursor:default;\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
                 ,{field:'op',align:'center',title:"操作", fixed: 'right',width:250,templet:function(d){