فهرست منبع

Merge branch 'master' of http://192.168.2.4:3000/user5/simple_xg_total_process_master

 Conflicts:
	src/main/java/com/jeeplus/modules/statement/dao/StatementCompanyComprehensiveDao.java
	src/main/java/com/jeeplus/modules/statement/service/StatementCompanyComprehensiveService.java
	src/main/resources/mappings/modules/statement/StatementCompanyComprehensiveDao.xml
guoxu 2 سال پیش
والد
کامیت
3df887a873
21فایلهای تغییر یافته به همراه2424 افزوده شده و 59 حذف شده
  1. 10 0
      src/main/java/com/jeeplus/modules/projectFilingBatch/entity/ProjectFilingbatchRelation.java
  2. 2 0
      src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java
  3. 0 1
      src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java
  4. 13 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordsDao.java
  5. 11 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectPaperFiling.java
  6. 1 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/ProjectPaperFilingService.java
  7. 80 6
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  8. 13 17
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java
  9. 68 1
      src/main/java/com/jeeplus/modules/statement/controller/StatementCompanyComprehensiveController.java
  10. 57 1
      src/main/java/com/jeeplus/modules/statement/dao/StatementCompanyComprehensiveDao.java
  11. 347 16
      src/main/java/com/jeeplus/modules/statement/service/StatementCompanyComprehensiveService.java
  12. 3 3
      src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java
  13. 20 0
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  14. 5 1
      src/main/resources/mappings/modules/projectGuidang/ProjectFilingbatchRelationDao.xml
  15. 13 3
      src/main/resources/mappings/modules/ruralprojectrecords/ProjectPaperFilingDao.xml
  16. 666 2
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml
  17. 227 6
      src/main/resources/mappings/modules/statement/StatementCompanyComprehensiveDao.xml
  18. 1 1
      src/main/resources/mappings/modules/workprojectnotify/WorkProjectNotifyDao.xml
  19. 1 1
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/downloadType/downloadProjectView.jsp
  20. 215 0
      src/main/webapp/webpage/modules/statement/companyReportDataView.jsp
  21. 671 0
      src/main/webapp/webpage/modules/statement/projectReportZJList.jsp

+ 10 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/entity/ProjectFilingbatchRelation.java

@@ -3,6 +3,7 @@ package com.jeeplus.modules.projectFilingBatch.entity;
 import com.jeeplus.common.persistence.DataEntity;
 
 import javax.validation.constraints.NotNull;
+import java.util.Date;
 
 public class ProjectFilingbatchRelation extends DataEntity<ProjectFilingbatchRelation> {
     public static final String SERIAL_BIZCODE ="1";
@@ -20,6 +21,7 @@ public class ProjectFilingbatchRelation extends DataEntity<ProjectFilingbatchRel
     private String createName;//项目创建人
     private String number;//报告号
     private Integer sort;   //排序
+    private Date auditPassDate;   //审批通过时间
 
     public String getFilingBatch() {
         return filingBatch;
@@ -108,4 +110,12 @@ public class ProjectFilingbatchRelation extends DataEntity<ProjectFilingbatchRel
     public void setSort(Integer sort) {
         this.sort = sort;
     }
+
+    public Date getAuditPassDate() {
+        return auditPassDate;
+    }
+
+    public void setAuditPassDate(Date auditPassDate) {
+        this.auditPassDate = auditPassDate;
+    }
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/projectFilingBatch/service/ProjectFilingBatchService.java

@@ -909,6 +909,8 @@ public class ProjectFilingBatchService extends CrudService<ProjectFilingBatchDao
                         info.setDelFlag("1");
                         info.setBoxNum("");
                         info.setReBoxNum("");
+                    }else if(5 == info.getStatus()){
+                        info.setAuditPassDate(new Date());
                     }
                     this.updateByid(info);
                 }

+ 0 - 1
src/main/java/com/jeeplus/modules/projectmaterialstorage/service/ProjectMaterialStorageService.java

@@ -7,7 +7,6 @@ import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.IdGen;
 import com.jeeplus.common.utils.MenuStatusEnum;
 import com.jeeplus.common.utils.StringUtils;
-import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
 import com.jeeplus.modules.projectmaterialstorage.dao.ProjectMaterialStorageDao;
 import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorage;
 import com.jeeplus.modules.projectmaterialstorage.entity.ProjectMaterialStorageImport;

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

@@ -340,6 +340,7 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
 
     //公司级 查询项目超期信息(4种)
     List<RuralProjectRecords> selectReportPageOverdue(@Param("ruralProjectRecords") RuralProjectRecords ruralProjectRecords, @Param("statementCompanyComprehensiveInfo")StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo,@Param("beginDate")String beginDate,@Param("endDate") String endDate);
+
     //公司级 查询项目超期信息的总条数
     Integer selectReportPageOverdueCount(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
 
@@ -407,4 +408,16 @@ public interface RuralProjectRecordsDao extends CrudDao<RuralProjectRecords> {
      */
     List<User> findProjectRegistrantResponsiblePersonList(String projectId);
 
+    //(发送张静)
+    List<RuralProjectRecords> selectProjectReportDataList(@Param("ruralProjectRecords") RuralProjectRecords ruralProjectRecords, @Param("statementCompanyComprehensiveInfo")StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo,@Param("beginDate")String beginDate,@Param("endDate") String endDate);
+
+    //公司级 查询项目超期信息的总条数(发送张静)
+    Integer selectProjectReportDataCount(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
+
+    //公司级 查询项目报表(发送张静)
+    List<RuralProjectRecords> selectReportZJPage(@Param("ruralProjectRecords") RuralProjectRecords ruralProjectRecords,@Param("officeId") String officeId,@Param("projectPaperFiling")String projectPaperFiling,@Param("beginDate")String beginDate,@Param("endDate") String endDate,@Param("recordState")String recordState,@Param("projectFlingBatchRelation")String projectFlingBatchRelation);
+
+    //公司级 查询的符合条件的项目报表总数(发送张静)
+    Integer reportZJPageCount(@Param("ruralProjectRecords") RuralProjectRecords ruralProjectRecords,@Param("officeId") String officeId,@Param("projectPaperFiling")String projectPaperFiling,@Param("beginDate")String beginDate,@Param("endDate") String endDate,@Param("recordState")String recordState,@Param("projectFlingBatchRelation")String projectFlingBatchRelation);
+
 }

+ 11 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectPaperFiling.java

@@ -3,6 +3,8 @@ package com.jeeplus.modules.ruralprojectrecords.entity;
 import com.jeeplus.common.persistence.ActEntity;
 import com.jeeplus.modules.sys.entity.Office;
 
+import java.util.Date;
+
 public class ProjectPaperFiling extends ActEntity<ProjectPaperFiling> {
     private Integer status;  //状态
     private String processInstanceId;   //流程id
@@ -16,6 +18,7 @@ public class ProjectPaperFiling extends ActEntity<ProjectPaperFiling> {
     private String fileNum;     //案卷号
     private String fileNumTow;  //确认案卷号
     private String view;
+    private Date auditPassDate; //审核通过日期
 
     public Integer getStatus() {
         return status;
@@ -104,5 +107,13 @@ public class ProjectPaperFiling extends ActEntity<ProjectPaperFiling> {
     public void setView(String view) {
         this.view = view;
     }
+
+    public Date getAuditPassDate() {
+        return auditPassDate;
+    }
+
+    public void setAuditPassDate(Date auditPassDate) {
+        this.auditPassDate = auditPassDate;
+    }
 }
 

+ 1 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/ProjectPaperFilingService.java

@@ -418,6 +418,7 @@ public class ProjectPaperFilingService extends CrudService<ProjectPaperFilingDao
                 String title = "报告号"+reportData.getNumber()+"。项目名称【"+records.getProjectName()+"】纸质归档成功";
                 String content = "报告号"+reportData.getNumber()+"。项目名称【"+records.getProjectName()+"】纸质归档成功,项目编号:"+records.getProjectId();
                 paperFiling.setStatus(5);
+                paperFiling.setAuditPassDate(new Date());
                 WorkProjectNotify notify = new WorkProjectNotify();
                 notify.setNotifyId(paperFiling.getId());
                 userList = workProjectNotifyService.readByNotifyId(notify);

+ 80 - 6
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -102,7 +102,6 @@ import java.net.URLEncoder;
 import java.nio.charset.Charset;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.stream.Collectors;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
@@ -3942,6 +3941,42 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		return page;
 	}
 
+	//公司级:项目报表详细
+	public Page<RuralProjectRecords> findReportZJPage(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords,String officeId,String projectPaperFiling,String bigDateType,String smallDateType
+													,String recordState,String projectFlingBatchRelation,String year) {
+		//将获取的datetype转为需要的具体时间   含年月日
+		Map<String,String> map = statementCompanyComprehensiveService.getDateNew(new Integer(bigDateType),new Integer(smallDateType),new Integer(year));
+		String beginDate = map.get("beginDate");
+        String endDate = map.get("endDate");
+		if(null!= projectRecords.getOffice() && StringUtils.isNotBlank(projectRecords.getOffice().getId())){
+			//查询该选择节点下所有的部门Id
+			List<String> officeIdList = officeService.getChildrenOffice(projectRecords.getOffice().getId());
+			officeIdList.add(projectRecords.getOffice().getId());
+			projectRecords.setOfficeIdList(officeIdList);
+		}
+		//为了方便后台 limit 的显示,将页面传入的page暂存
+		Integer oldPageNo = page.getPageNo();
+		if((page.getPageNo()-1) >= 0) {
+			page.setPageNo((page.getPageNo() - 1) * page.getPageSize());
+		}
+		projectRecords.setPage(page);
+		List<RuralProjectRecords> recordsList = dao.selectReportZJPage(projectRecords,officeId,projectPaperFiling,beginDate,endDate,recordState,projectFlingBatchRelation);
+		int count = dao.reportZJPageCount(projectRecords,officeId,projectPaperFiling,beginDate,endDate,recordState,projectFlingBatchRelation);
+		page.setPageNo(oldPageNo);
+		page.setCount(count);
+		page.setCountFlag(false);
+		//查询负责人信息
+		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;
+	}
+
 	//公司级:chaoqi项目报表详细
 	public Page<RuralProjectRecords> findReportPageOverdue(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords,
 														   StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo,
@@ -4797,11 +4832,11 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			//如果当前时间大于过期时间
 			//Date类的一个方法,如果info.getAdventDateDate()早于 new Date() 返回true,否则返回false
 			if (Integer.parseInt(info.getAdventDate()) > 60) {
-				notifyStr = "项目【" + info.getProjectName() + "】核已超期";
-				titleStr = "项目【" + info.getProjectName() + "】核已超期。超期时间:" + info.getAdventDate() + "。";
+				notifyStr = "项目【" + info.getProjectName() + "】质量复核已超期";
+				titleStr = "项目【" + info.getProjectName() + "】质量复核已超期。超期时间:" + info.getAdventDate() + "。";
 			} else {
-				notifyStr = "项目【" + info.getProjectName() + "】即将核超期";
-				titleStr = "项目【" + info.getProjectName() + "】即将核超期。超期时间:" + info.getAdventDate();
+				notifyStr = "项目【" + info.getProjectName() + "】即将质量复核超期";
+				titleStr = "项目【" + info.getProjectName() + "】即将质量复核超期。超期时间:" + info.getAdventDate();
 			}
 
 			//查询项目的登记人和责任人的id
@@ -4814,7 +4849,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 				//计算两日期之间的天数
 				Integer interval = Integer.parseInt(info.getAdventDate()) - 60;
 				if (interval > 0) {
-					titleStr = titleStr + "已超期:" + interval + "天。请尽快核";
+					titleStr = titleStr + "已超期:" + interval + "天。请尽快质量复核";
 				}
 
 				if (null != byTitleAndUnread) {
@@ -4837,4 +4872,43 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	}
 
 
+
+	//公司级:chaoqi项目报表详细
+	public Page<RuralProjectRecords> findReportPageZJOverdue(Page<RuralProjectRecords> page, RuralProjectRecords projectRecords,
+														   StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo,
+														   String year,String bigDateType,String smallDateType) {
+		//将获取的datetype转为需要的具体时间   含年月日
+		Map<String,String> map = statementCompanyComprehensiveService.getDateNew(new Integer(bigDateType),new Integer(smallDateType),new Integer(year));
+		String beginDate = map.get("beginDate");
+		String endDate = map.get("endDate");
+		if(null!= projectRecords.getOffice() && StringUtils.isNotBlank(projectRecords.getOffice().getId())){
+			//查询该选择节点下所有的部门Id
+			List<String> officeIdList = officeService.getChildrenOffice(projectRecords.getOffice().getId());
+			officeIdList.add(projectRecords.getOffice().getId());
+			projectRecords.setOfficeIdList(officeIdList);
+		}
+		//为了方便后台 limit 的显示,将页面传入的page暂存
+		Integer oldPageNo = page.getPageNo();
+		if((page.getPageNo()-1) >= 0) {
+			page.setPageNo((page.getPageNo() - 1) * page.getPageSize());
+		}
+		projectRecords.setPage(page);
+		List<RuralProjectRecords> recordsList = dao.selectProjectReportDataList(projectRecords,statementCompanyComprehensiveInfo,beginDate,endDate);
+		int count = dao.selectProjectReportDataCount(statementCompanyComprehensiveInfo);
+		page.setPageNo(oldPageNo);
+		page.setCount(count);
+		page.setCountFlag(false);
+		//查询负责人信息
+		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;
+	}
+
+
 }

+ 13 - 17
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java

@@ -182,12 +182,15 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
         long l1 = System.currentTimeMillis();
         Integer month = c.get(Calendar.MONTH)+1; //第一个月从0开始,所以得到月份+1
         //当月最后一天
-        logger.info("-----------公司级—月度报表(开始)------------------");
-        //statementCompanyComprehensiveService.disposeStatementCompany(2022,2,2);
+        /*logger.info("-----------公司级—月度报表(开始)------------------");
+        statementCompanyComprehensiveService.disposeStatementCompany(2022,2,2);
         logger.info("------------公司级—月度报表(结束)------------------");
         logger.info("-----------部门级—月度报表(开始)------------------");
         statementCompanyComprehensiveService.disposeStatementOffice(2022,2,2);
-        logger.info("------------部门级—月度报表(结束)------------------");
+        logger.info("------------部门级—月度报表(结束)------------------");*/
+        logger.info("-----------张静—月度报表(开始)------------------");
+        statementCompanyComprehensiveService.disposeReportDataStatementCompany(2022,2,7);
+        logger.info("------------张静—月度报表(结束)------------------");
         //}
 
         map.put("msgMonth","月度报表处理完成");
@@ -201,12 +204,12 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
 
         map.put("msgQuarter","季度报表处理完成");
 
-        logger.info("-----------公司级—年度报表(开始)------------------");
+        /*logger.info("-----------公司级—年度报表(开始)------------------");
         statementCompanyComprehensiveService.disposeStatementCompany(2022,0,0);
         logger.info("------------公司级—年度报表(结束)------------------");
         logger.info("-----------部门级—年度报表(开始)------------------");
         statementCompanyComprehensiveService.disposeStatementOffice(2022,0,0);
-        logger.info("------------部门级—年度报表(结束)------------------");
+        logger.info("------------部门级—年度报表(结束)------------------");*/
 
         map.put("msgYear","年度报表处理完成");
 
@@ -224,13 +227,15 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
     @Transactional(readOnly = false)
     public Map<String,Object> projectReportedListByAdvent(){
         Map<String,Object> map = new HashMap<>();
-        logger.info("-----------项目超期未上报定时任务开始------------------");
+        /*logger.info("-----------项目超期未上报定时任务开始------------------");
         projectRecordsService.saveProjectReportedListByAdvent();
         logger.info("------------项目超期未上报定时任务结束------------------");
         logger.info("-----------项目超期未归档定时任务开始(电子归档)------------------");
         projectRecordsService.saveProjectRecordListByAdvent();
-        logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");
-
+        logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");*/
+        logger.info("------------项目超期未质量符合定时任务开始--------------------");
+        projectRecordsService.getJudgeAdvanceWeekNotice();
+        logger.info("------------项目超期未质量符合定时任务结束--------------------");
         map.put("msg","处理完成");
         return map;
     }
@@ -519,13 +524,4 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
         return data;
     }
 
-    @Autowired
-    com.jeeplus.modules.workcalendar.service.WorkCalendarTaskService workCalendarTaskService;
-    @RequestMapping(value = "/reportTestView")
-    @ResponseBody
-    @Transactional(readOnly = false)
-    public void reportTestView(){
-        workCalendarTaskService.getProjectReportedListByAdvent();
-    }
-
 }

+ 68 - 1
src/main/java/com/jeeplus/modules/statement/controller/StatementCompanyComprehensiveController.java

@@ -140,7 +140,7 @@ public class StatementCompanyComprehensiveController extends BaseController {
             page = projectRecordsService.findReportPage(new Page<RuralProjectRecords>(request, response), projectRecords, officeId, grade, bigDateType, smallDateType, recordState, reportedState, year);
         }else {
             statementCompanyComprehensiveInfo.setType("1");
-            page = projectRecordsService.findReportPageOverdue(new Page<RuralProjectRecords>(request, response), projectRecords,statementCompanyComprehensiveInfo,year,bigDateType, smallDateType);
+            page = projectRecordsService.findReportPageZJOverdue(new Page<RuralProjectRecords>(request, response), projectRecords,statementCompanyComprehensiveInfo,year,bigDateType, smallDateType);
         }
         //查询工程类型
         if (projectRecords.getEngineeringType()!=null){
@@ -151,6 +151,73 @@ public class StatementCompanyComprehensiveController extends BaseController {
         return "modules/statement/projectReportList";
     }
 
+    //公司级:项目报表详细(发送张静)
+    //参数:officeId ,bigDateType,smallDateType
+    // grade:是否为A、B类(1=B,2=A),recordState:不为空则为查询本*电子归档,reportedState:不为空则为查询本*上报
+    @RequestMapping(value = "projectReportDataZJList")
+    public String projectReportDataZJList(RuralProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response
+                            , Model model, @Param(value = "bigDateType") String bigDateType
+                            , @Param(value = "smallDateType") String smallDateType
+                            , @Param(value = "officeId") String officeId
+                            , @Param(value = "year") String year
+                            , @Param(value = "projectPaperFiling")String projectPaperFiling
+                            , @Param(value = "recordState")String recordState
+                            , @Param(value = "projectFlingBatchRelation")String projectFlingBatchRelation
+                            ,StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo){
+
+        //每次都必须接收前端传参并放入model
+        model.addAttribute("bigDateType",bigDateType);
+        model.addAttribute("smallDateType",smallDateType);
+        model.addAttribute("officeId",officeId);
+        model.addAttribute("year",year);
+        model.addAttribute("projectPaperFiling",projectPaperFiling);
+        model.addAttribute("recordState",recordState);
+        model.addAttribute("projectFlingBatchRelation",projectFlingBatchRelation);
+        model.addAttribute("field1",statementCompanyComprehensiveInfo.getField1());
+        model.addAttribute("field2",statementCompanyComprehensiveInfo.getField2());
+        model.addAttribute("field3",statementCompanyComprehensiveInfo.getField3());
+        model.addAttribute("field4",statementCompanyComprehensiveInfo.getField4());
+        model.addAttribute("field5",statementCompanyComprehensiveInfo.getField5());
+        model.addAttribute("field6",statementCompanyComprehensiveInfo.getField6());
+        model.addAttribute("field7",statementCompanyComprehensiveInfo.getField7());
+        model.addAttribute("field8",statementCompanyComprehensiveInfo.getField8());
+
+        //这个是我删除的有需要可以补回,但是得注意projectRecords的submitmoney值
+        //进行查询之后进行任何操作,返回还是查询之后的数据页面
+//        if (StringUtils.isNotBlank(projectRecords.getToflag())){
+//            if (projectRecords.getToflag().equals("1")){
+//                request.getSession().removeAttribute("searchProjectRecord");
+//                RuralProjectRecords search=projectRecords;
+//                request.getSession().setAttribute("searchProjectRecord",search);
+//            }
+//        }else{
+//            if (request.getSession().getAttribute("searchProjectRecord")!=null){
+//                projectRecords= (RuralProjectRecords) request.getSession().getAttribute("searchProjectRecord");
+//                model.addAttribute("ruralProjectRecords", projectRecords);
+//            }
+//        }
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        //添加查询类型(造价审核)
+        //projectRecords.setProjectType("2");
+        //获取项目信息
+        Page<RuralProjectRecords> page = new Page<RuralProjectRecords>();
+        if(StringUtils.isNotBlank(projectPaperFiling) || StringUtils.isNotBlank(recordState) || StringUtils.isNotBlank(projectFlingBatchRelation)) {
+            page = projectRecordsService.findReportZJPage(new Page<RuralProjectRecords>(request, response), projectRecords, officeId, projectPaperFiling, bigDateType, smallDateType, recordState, projectFlingBatchRelation, year);
+        }else {
+            statementCompanyComprehensiveInfo.setType("1");
+            page = projectRecordsService.findReportPageZJOverdue(new Page<RuralProjectRecords>(request, response), projectRecords,statementCompanyComprehensiveInfo,year,bigDateType, smallDateType);
+        }
+        //查询工程类型
+        if (projectRecords.getEngineeringType()!=null){
+            ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+            model.addAttribute("engineeringInfo", engineeringInfo);
+        }
+        model.addAttribute("page", page);
+        return "modules/statement/projectReportZJList";
+    }
+
 
 
     //公司级:开票报表详细

+ 57 - 1
src/main/java/com/jeeplus/modules/statement/dao/StatementCompanyComprehensiveDao.java

@@ -322,6 +322,7 @@ public interface StatementCompanyComprehensiveDao  extends CrudDao<StatementComp
      * 超期,未超期数据存储 年度级
      */
     void insertStatementDataInfoByYear(@Param("dataList")List<StatementDataInfo> statementDataInfoList);
+
     /**
      * 超期、未超期数据删除
      * @param statementDataInfoList
@@ -559,7 +560,6 @@ public interface StatementCompanyComprehensiveDao  extends CrudDao<StatementComp
      */
     List<StatementCompanyComprehensiveInfo> selectAllByType(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
 
-
     /**
      * 按照类型查询公司级所有报表信息 年度
      * @param statementCompanyComprehensiveInfo
@@ -567,6 +567,7 @@ public interface StatementCompanyComprehensiveDao  extends CrudDao<StatementComp
      */
     List<StatementCompanyComprehensiveInfo> selectAllByTypeByYear(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
 
+
     /**
      * 根据类型查询公司及所有报表信息 已年级
      * @param statementCompanyComprehensiveInfo
@@ -726,4 +727,59 @@ public interface StatementCompanyComprehensiveDao  extends CrudDao<StatementComp
     public int deleteByYear(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
 
     public void insertByYear(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
+
+    /**
+     * 公司级查询A类项目纸质归档信息数量(根据部门分组)
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    List<ReportDataEntity> getProjectPaperFilingList(@Param("beginDate")String beginDate, @Param("endDate")String endDate);
+
+    /**
+     * 公司级查询B类项目批量归档信息数量(根据部门分组)
+     * @param beginDate
+     * @param endDate
+     * @return
+     */
+    List<ReportDataEntity> getProjectFlingBatchRelationList(@Param("beginDate")String beginDate, @Param("endDate")String endDate);
+
+    /**
+     * 公司级查询项目未质量符合信息(根据部门分组)
+     * @return
+     */
+    List<ReportDataEntity> getProjectReportDataList();
+
+    /**
+     * 公司级查询项目超期未质量符合(超60天)信息(根据部门分组)
+     * @return
+     */
+    List<ReportDataEntity> getOverDueProjectReportDataList();
+
+    /**
+     * 超期、未超期数据存储(张静)
+     * @param statementDataInfoList
+     */
+    void insertStatementReportDataInfo(@Param("dataList")List<StatementDataInfo> statementDataInfoList);
+
+    /**
+     * 超期、未超期数据存储(张静)
+     * @param statementDataInfoList
+     */
+    void deleteStatementReportDataInfo(StatementDataInfo statementDataInfoList);
+
+    void insertReport(StatementCompanyComprehensiveInfo reportDataEntity);
+
+    void updateReport(StatementCompanyComprehensiveInfo reportDataEntity);
+
+    void deleteReport(StatementCompanyComprehensiveInfo reportDataEntity);
+
+
+    /**
+     * 按照类型查询公司级所有报表信息
+     * @param statementCompanyComprehensiveInfo
+     * @return
+     */
+    List<StatementCompanyComprehensiveInfo> selectReportAllByType(StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo);
+
 }

+ 347 - 16
src/main/java/com/jeeplus/modules/statement/service/StatementCompanyComprehensiveService.java

@@ -174,7 +174,7 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         //公司级:项目报表总览 年度级
         //type:类型(1:项目;2:开票;3:报销;4:合同)
         statementCompanyComprehensiveInfo.setType("1");
-        List<StatementCompanyComprehensiveInfo> reportFormList5 = this.selectAllByTypeInYearReportByYear(statementCompanyComprehensiveInfo);
+        List<StatementCompanyComprehensiveInfo> reportFormList5 = this.selectAllByTypeInYearReport(statementCompanyComprehensiveInfo);
         //项目表 各列合计
         String xmnumyear1 = "0";
         String xmnumyear2 = "0";
@@ -211,7 +211,7 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         //公司级:开票报表开始
         //类型(1:项目;2:开票;3:报销;4:合同)
         statementCompanyComprehensiveInfo.setType("2");
-        List<StatementCompanyComprehensiveInfo> reportFormList6 = this.selectAllByTypeInYearReportByYear(statementCompanyComprehensiveInfo);
+        List<StatementCompanyComprehensiveInfo> reportFormList6 = this.selectAllByTypeInYearReport(statementCompanyComprehensiveInfo);
         //各列合计
         String kpyearnum1 = "0";
         String kpyearnum2 = "0";
@@ -236,7 +236,7 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
     //公司级:报销报表
         //类型(1:项目;2:开票;3:报销;4:合同)
         statementCompanyComprehensiveInfo.setType("3");
-        List<StatementCompanyComprehensiveInfo> reportFormList7 = this.selectAllByTypeInYearReportByYear(statementCompanyComprehensiveInfo);
+        List<StatementCompanyComprehensiveInfo> reportFormList7 = this.selectAllByTypeInYearReport(statementCompanyComprehensiveInfo);
         //合计
         String bxyearnum1 = "0";
         String bxyearnum2 = "0";
@@ -255,7 +255,7 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         //公司级:合同报表
         //类型(1:项目;2:开票;3:报销;4:合同)
         statementCompanyComprehensiveInfo.setType("4");
-        List<StatementCompanyComprehensiveInfo> reportFormList8= this.selectAllByTypeInYearReportByYear(statementCompanyComprehensiveInfo);
+        List<StatementCompanyComprehensiveInfo> reportFormList8= this.selectAllByTypeInYearReport(statementCompanyComprehensiveInfo);
         //合计
         String htyearnum1 = "0";
         String htyearnum2 = "0";
@@ -343,6 +343,289 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         }
     }
 
+    /**
+     * 公司级质量符合信息处理
+     * @param bigDateType 状态1(0:年;1:季度;2:月份)
+     * @param smallDateType 状态2(针对状态1进行精确所在指定季度或者月份)
+     */
+    public void disposeReportDataStatementCompany(Integer year,Integer bigDateType,Integer smallDateType){
+        Calendar cal = Calendar.getInstance();
+        //获取当前年份
+        if(null == year){
+            year = cal.get(Calendar.YEAR);
+        }
+
+        Map<String, String> dateMap = getDateNew(bigDateType, smallDateType, year);
+        //开始时间
+        String beginDate = dateMap.get("beginDate");
+        //结束时间
+        String endDate = dateMap.get("endDate");
+        String statementDate = dateMap.get("statementDate");
+        //公司级项目处理
+        disposeReportDataStatementCompanyProject(year,beginDate,endDate,statementDate,bigDateType, smallDateType);
+        //查询部门信息
+        List<Office> officeList = dao.getAllOfficeListInfo();
+
+        //创建utilNotifyId参数
+        //参数是由 year、bigDateType、smallDateType参数设定
+        String utilNotifyId = year + "," + bigDateType + "," + smallDateType;
+        /*//发送通知
+        switch (bigDateType){
+            //年度汇总
+            case 0:
+                companyNotification(statementDate,"年","161",utilNotifyId);
+                break;
+            //季度汇总
+            case 1:
+                //smallDateType  为季度时候
+                companyNotification(statementDate,"季","162",utilNotifyId);
+                break;
+            //月度汇总
+            case 2:
+                //smallDateType  为月度时候
+                companyNotification(statementDate,"月","163",utilNotifyId);
+                break;
+        }*/
+        companyReportNotification(statementDate,"月","167",utilNotifyId);
+    }
+
+
+    /**
+     * 公司级项目月报/季报/年报汇总方法
+     * @param beginDate 开始时间
+     * @param endDate 结束时间
+     * @param statementDate 报表时间
+     * @param bigDateType 状态1(0:年;1:季度;2:月份)
+     * @param smallDateType 状态2(针对状态1进行精确所在指定季度或者月份)
+     */
+    @Transactional(readOnly = false)
+    public void disposeReportDataStatementCompanyProject(Integer year,String beginDate,String endDate,String statementDate,Integer bigDateType,Integer smallDateType){
+
+        //查询A类项目纸质归档信息
+        List<ReportDataEntity> getProjectPaperFilingList = dao.getProjectPaperFilingList(beginDate, endDate);
+        //查询B类项目批量归档信息
+        List<ReportDataEntity> getProjectFlingBatchRelationList = dao.getProjectFlingBatchRelationList(beginDate, endDate);
+        //本月电子归档
+        List<ReportDataEntity> getProjectCountByRecordAll = dao.getProjectCountByRecordAll(beginDate, endDate);
+        //电子归档超期未归档
+        List<ReportDataEntity> overDueNotRecordProjectIdListAll = dao.getOverDueNotRecordProjectAll();
+        //电子归档超期归档
+        List<ReportDataEntity> overDueRecordProjectIdListAll = dao.getOverDueRecordProjectAll(beginDate, endDate);
+
+        //查询项目未质量符合信息
+        List<ReportDataEntity> getProjectReportDataList = dao.getProjectReportDataList();
+        //查询项目超期未质量符合(超60天)信息
+        List<ReportDataEntity> getOverDueProjectReportDataList = dao.getOverDueProjectReportDataList();
+
+        //查询电子归档超期未归档项目数量(分组)
+        Map<String, List<ReportDataEntity>> overDueNotRecordProjectIdListAllMap = dataMessageDispose(overDueNotRecordProjectIdListAll);
+        //分组
+        Map<String, List<ReportDataEntity>> overDueRecordProjectIdListAllMap = dataMessageDispose(overDueRecordProjectIdListAll);
+
+        //查询项目未质量符合信息(分组)
+        Map<String, List<ReportDataEntity>> getProjectReportDataListMap = dataMessageDispose(getProjectReportDataList);
+        //查询项目超期未质量符合(超60天)信息分组
+        Map<String, List<ReportDataEntity>> getOverDueProjectReportDataListMap = dataMessageDispose(getOverDueProjectReportDataList);
+
+
+        //查询部门信息
+        List<Office> officeList = dao.getOfficeListInfo();
+        for (Office officeInfo : officeList) {
+            StatementCompanyComprehensiveInfo comprehensiveInfo = new StatementCompanyComprehensiveInfo();
+            comprehensiveInfo.setType("1");
+            comprehensiveInfo.setYear(String.valueOf(year));
+            comprehensiveInfo.setBigDateType(bigDateType.toString());
+            comprehensiveInfo.setSmallDateType(smallDateType.toString());
+            comprehensiveInfo.setStatementDate(statementDate);
+            comprehensiveInfo.setOfficeId(officeInfo.getId());
+
+
+            //遍历添加A类项目纸质归档信息
+            for (ReportDataEntity reportData: getProjectPaperFilingList) {
+                if(officeInfo.getId().equals(reportData.getOfficeId()) || reportData.getOfficeParentIds().contains(officeInfo.getId())){
+                    comprehensiveInfo.setField1(String.valueOf(Integer.parseInt(comprehensiveInfo.getField1()) + reportData.getCount()));
+                }
+            }
+            //遍历添加A类项目纸质归档信息
+            for (ReportDataEntity reportData: getProjectFlingBatchRelationList) {
+                if(officeInfo.getId().equals(reportData.getOfficeId()) || reportData.getOfficeParentIds().contains(officeInfo.getId())){
+                    comprehensiveInfo.setField2(String.valueOf(Integer.parseInt(comprehensiveInfo.getField2()) + reportData.getCount()));
+                }
+            }
+
+            //查询本月电子归档项目数量
+            for (ReportDataEntity reportData: getProjectCountByRecordAll) {
+                if(officeInfo.getId().equals(reportData.getOfficeId()) || reportData.getOfficeParentIds().contains(officeInfo.getId())){
+                    comprehensiveInfo.setField3(String.valueOf(Integer.parseInt(comprehensiveInfo.getField3()) + reportData.getCount()));
+                }
+            }
+            //查询电子归档超期未归档项目数量(保存到数据库)
+            List<ReportDataEntity> overDueNotRecordProjectListAll = Lists.newArrayList();
+            for (String key : overDueNotRecordProjectIdListAllMap.keySet()) {
+                if(officeInfo.getId().equals(key) || key.contains(officeInfo.getId())){
+                    List<ReportDataEntity> reportDataEntities = overDueNotRecordProjectIdListAllMap.get(key);
+                    overDueNotRecordProjectListAll.addAll(reportDataEntities);
+                    comprehensiveInfo.setField4(String.valueOf(Integer.parseInt(comprehensiveInfo.getField4()) + reportDataEntities.size()));
+                }
+
+            }
+
+
+            List<StatementDataInfo> overDueNotRecordProjectList = Lists.newArrayList();
+            for (ReportDataEntity peportDataEntity : overDueNotRecordProjectListAll) {
+                String projectId = peportDataEntity.getFieldId();
+                StatementDataInfo info = new StatementDataInfo();
+                info.setStatementDate(statementDate);
+                info.setGradeType("1");
+                info.setType("1");
+                info.setYear(String.valueOf(year));
+                info.setBigDateType(bigDateType.toString());
+                info.setSmallDateType(smallDateType.toString());
+                info.setOfficeId(officeInfo.getId());
+                info.setField1(projectId);
+                overDueNotRecordProjectList.add(info);
+            }
+            if(overDueNotRecordProjectList.size()>0){
+                //每次删除之前存的数据
+                for (StatementDataInfo statementDataInfo: overDueNotRecordProjectList) {
+                    dao.deleteStatementReportDataInfo(statementDataInfo);
+                }
+                dao.insertStatementReportDataInfo(overDueNotRecordProjectList);
+            }
+
+
+            //查询电子归档超期归档项目数量(保存到数据库)
+            List<ReportDataEntity> overDueRecordProjectListAll = Lists.newArrayList();
+            for (String key : overDueRecordProjectIdListAllMap.keySet()) {
+                if(officeInfo.getId().equals(key) || key.contains(officeInfo.getId())){
+                    List<ReportDataEntity> reportDataEntities = overDueRecordProjectIdListAllMap.get(key);
+                    overDueRecordProjectListAll.addAll(reportDataEntities);
+                    comprehensiveInfo.setField5(String.valueOf(Integer.parseInt(comprehensiveInfo.getField5()) + reportDataEntities.size()));
+                }
+
+            }
+
+            List<StatementDataInfo> overDueRecordProjectList = Lists.newArrayList();
+            for (ReportDataEntity peportDataEntity : overDueRecordProjectListAll) {
+                String projectId = peportDataEntity.getFieldId();
+                StatementDataInfo info = new StatementDataInfo();
+                info.setStatementDate(statementDate);
+                info.setGradeType("1");
+                info.setType("1");
+                info.setYear(String.valueOf(year));
+                info.setBigDateType(bigDateType.toString());
+                info.setSmallDateType(smallDateType.toString());
+                info.setOfficeId(officeInfo.getId());
+                info.setField2(projectId);
+                overDueRecordProjectList.add(info);
+            }
+            if(overDueRecordProjectList.size()>0){
+                //每次删除之前存的数据
+                for (StatementDataInfo statementDataInfo: overDueRecordProjectList) {
+                    dao.deleteStatementReportDataInfo(statementDataInfo);
+                }
+                dao.insertStatementReportDataInfo(overDueRecordProjectList);
+            }
+
+
+            //查询项目未质量符合信息(保存到数据库)
+            List<ReportDataEntity> getProjectReportDataListAll = Lists.newArrayList();
+            for (String key : getProjectReportDataListMap.keySet()) {
+                if(officeInfo.getId().equals(key) || key.contains(officeInfo.getId())){
+                    List<ReportDataEntity> reportDataEntities = getProjectReportDataListMap.get(key);
+                    getProjectReportDataListAll.addAll(reportDataEntities);
+                    comprehensiveInfo.setField6(String.valueOf(Integer.parseInt(comprehensiveInfo.getField6()) + reportDataEntities.size()));
+                }
+
+            }
+
+            List<StatementDataInfo> projectReportDataProjectList = Lists.newArrayList();
+            for (ReportDataEntity peportDataEntity : getProjectReportDataListAll) {
+                String projectId = peportDataEntity.getFieldId();
+                StatementDataInfo info = new StatementDataInfo();
+                info.setStatementDate(statementDate);
+                info.setGradeType("1");
+                info.setType("1");
+                info.setYear(String.valueOf(year));
+                info.setBigDateType(bigDateType.toString());
+                info.setSmallDateType(smallDateType.toString());
+                info.setOfficeId(officeInfo.getId());
+                info.setField3(projectId);
+                projectReportDataProjectList.add(info);
+            }
+            if(projectReportDataProjectList.size()>0){
+                //每次删除之前存的数据
+                for (StatementDataInfo statementDataInfo: projectReportDataProjectList) {
+                    dao.deleteStatementReportDataInfo(statementDataInfo);
+                }
+                dao.insertStatementReportDataInfo(projectReportDataProjectList);
+            }
+
+
+            //查询项目未质量符合信息(保存到数据库)
+            List<ReportDataEntity> getOverDueProjectReportDataListAll = Lists.newArrayList();
+            for (String key : getProjectReportDataListMap.keySet()) {
+                if(officeInfo.getId().equals(key) || key.contains(officeInfo.getId())){
+                    List<ReportDataEntity> reportDataEntities = getOverDueProjectReportDataListMap.get(key);
+                    getOverDueProjectReportDataListAll.addAll(reportDataEntities);
+                    comprehensiveInfo.setField7(String.valueOf(Integer.parseInt(comprehensiveInfo.getField7()) + reportDataEntities.size()));
+                }
+
+            }
+
+            List<StatementDataInfo> overDueProjectReportDataList = Lists.newArrayList();
+            for (ReportDataEntity peportDataEntity : getOverDueProjectReportDataListAll) {
+                String projectId = peportDataEntity.getFieldId();
+                StatementDataInfo info = new StatementDataInfo();
+                info.setStatementDate(statementDate);
+                info.setGradeType("1");
+                info.setType("1");
+                info.setYear(String.valueOf(year));
+                info.setBigDateType(bigDateType.toString());
+                info.setSmallDateType(smallDateType.toString());
+                info.setOfficeId(officeInfo.getId());
+                info.setField4(projectId);
+                overDueProjectReportDataList.add(info);
+            }
+            if(overDueProjectReportDataList.size()>0){
+                //每次删除之前存的数据
+                for (StatementDataInfo statementDataInfo: overDueProjectReportDataList) {
+                    dao.deleteStatementReportDataInfo(statementDataInfo);
+                }
+                dao.insertStatementReportDataInfo(overDueProjectReportDataList);
+            }
+
+            //数据处理并保存到数据库中
+            comprehensiveInfo.preInsert();
+            //每次都要删除之前的数据
+            dao.deleteReport(comprehensiveInfo);
+            dao.insertReport(comprehensiveInfo);
+        }
+    }
+
+    /**
+     * 公司级通知
+     * @param statementDate
+     * @param type
+     * @param notificationType
+     * @param utilNotifyId
+     */
+    public void companyReportNotification(String statementDate,String type,String notificationType,String utilNotifyId){
+        String notifyStr = statementDate + "-月报";
+        String titleStr = statementDate + "-月报";
+
+        User userName = UserUtils.getByUserName("张静");
+        workProjectNotifyService
+                .save(UtilNotify.saveNotify(utilNotifyId,
+                        userName,
+                        userName.getCompany().getId(),
+                        titleStr,
+                        notifyStr,
+                        notificationType,
+                        "0",
+                        "待通知",
+                        ""));
+    }
 
     /**
      * 公司集信息处理 年度用
@@ -393,7 +676,6 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         }
     }
 
-
     /**
      * 公司级通知
      * @param statementDate
@@ -481,7 +763,6 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
 
         //查询新增A类项目数量
         List<ReportDataEntity> projectCountByAAll = dao.getInsertProjectCountByGradeAll( "2", beginDate, endDate);
-//        查询新增B类项目数量
         List<ReportDataEntity> projectCountByBAll = dao.getInsertProjectCountByGradeAll( "1", beginDate, endDate);
         List<ReportDataEntity> getProjectCountByRecordAll = dao.getProjectCountByRecordAll(beginDate, endDate);
         List<ReportDataEntity> getProjectCountByReportedAll = dao.getProjectCountByReportedAll(beginDate, endDate);
@@ -495,18 +776,17 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         List<ReportDataEntity> overDueReportedProjectIdListAll = dao.getOverDueReportedProjectAll(beginDate, endDate);
         //查询电子归档超期未归档项目数量(分组)
         Map<String, List<ReportDataEntity>> overDueNotRecordProjectIdListAllMap = dataMessageDispose(overDueNotRecordProjectIdListAll);
-        //分组 超期归档做分组 key 为OfficeParentIds,OfficeId  value 当前对象 field为项目id
+        //分组
         Map<String, List<ReportDataEntity>> overDueRecordProjectIdListAllMap = dataMessageDispose(overDueRecordProjectIdListAll);
-        //分组 超期未上报 同上
+        //分组
         Map<String, List<ReportDataEntity>> overDueNotReportedProjectIdListAllMap = dataMessageDispose(overDueNotReportedProjectIdListAll);
-        //分组 超期上报 同上
+        //分组
         Map<String, List<ReportDataEntity>> overDueReportedProjectIdListAllMap = dataMessageDispose(overDueReportedProjectIdListAll);
 
         //查询部门信息
         List<Office> officeList = dao.getOfficeListInfo();
         for (Office officeInfo : officeList) {
             StatementCompanyComprehensiveInfo comprehensiveInfo = new StatementCompanyComprehensiveInfo();
-//            代表项目
             comprehensiveInfo.setType("1");
             comprehensiveInfo.setYear(String.valueOf(year));
             comprehensiveInfo.setBigDateType(bigDateType.toString());
@@ -693,7 +973,6 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         }
     }
 
-
     /**
      * 年报汇总方法
      * @param beginDate 开始时间
@@ -1068,6 +1347,7 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
     }
 
 
+
     /**
      * 公司级开票记录月报/季报/年报汇总方法
      * @param beginDate 开始时间
@@ -1149,8 +1429,9 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         }
     }
 
+
     /**
-     * 年报汇总方法
+     * 公司级报销记录月报/季报/年报汇总方法
      * @param beginDate 开始时间
      * @param endDate 结束时间
      */
@@ -1252,6 +1533,7 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         }
     }
 
+
     /**
      * 公司级合同记录月报/季报/年报汇总方法
      * @param beginDate 开始时间
@@ -2223,16 +2505,12 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         return list;
     }
 
-
     //根据公司级报告查询所有的表内容
     public List<StatementCompanyComprehensiveInfo> selectAllByTypeInYearReportByYear(StatementCompanyComprehensiveInfo info){
         List<StatementCompanyComprehensiveInfo> list = dao.selectAllByTypeByYear(info);
         return list;
     }
 
-
-
-
     /**
      * 部门级 所有报表信息
      * @param year 年份
@@ -2383,6 +2661,59 @@ public class StatementCompanyComprehensiveService extends CrudService<StatementC
         return sevenOfficeId;
     }
 
+    /**
+     * 部门级 所有报表信息
+     * @param year 年份
+     * @param bigDateType 状态1(0:年;1:季度;2:月份)
+     * @param smallDateType 状态2(针对状态1进行精确所在指定季度或者月份)
+     * @return
+     */
+    public Map<String,List<StatementCompanyComprehensiveInfo>> departmentReportViewList(String year,String bigDateType,String smallDateType){
+        Map<String,List<StatementCompanyComprehensiveInfo>> map = new HashMap<>();
+        StatementCompanyComprehensiveInfo statementCompanyComprehensiveInfo = new StatementCompanyComprehensiveInfo();
+
+        //状态1  传过来的
+        statementCompanyComprehensiveInfo.setBigDateType(bigDateType);
+        statementCompanyComprehensiveInfo.setSmallDateType(smallDateType);
+        statementCompanyComprehensiveInfo.setYear(year);
+        String nyr = "月";
+
+        //公司级:项目报表总览
+        //type:类型(1:项目;2:开票;3:报销;4:合同)
+        statementCompanyComprehensiveInfo.setType("1");
+        List<StatementCompanyComprehensiveInfo> reportFormList1 = dao.selectReportAllByType(statementCompanyComprehensiveInfo);
+        //项目表 各列合计
+        String xmnum1 = "0";
+        String xmnum2 = "0";
+        String xmnum3 = "0";
+        String xmnum4 = "0";
+        String xmnum5 = "0";
+        String xmnum6 = "0";
+        String xmnum7 = "0";
+        for(StatementCompanyComprehensiveInfo info:reportFormList1){
+            //转BigDecimal 处理   合计
+            xmnum1 = new BigDecimal(info.getField1()).add(new BigDecimal(xmnum1)).toString();
+            xmnum2 = new BigDecimal(info.getField2()).add(new BigDecimal(xmnum2)).toString();
+            xmnum3 = new BigDecimal(info.getField3()).add(new BigDecimal(xmnum3)).toString();
+            xmnum4 = new BigDecimal(info.getField4()).add(new BigDecimal(xmnum4)).toString();
+            xmnum5 = new BigDecimal(info.getField5()).add(new BigDecimal(xmnum5)).toString();
+            xmnum6 = new BigDecimal(info.getField6()).add(new BigDecimal(xmnum6)).toString();
+            xmnum7 = new BigDecimal(info.getField7()).add(new BigDecimal(xmnum7)).toString();
+        }
+        //存放到对应报表的list集合,方便页面集合展示
+        StatementCompanyComprehensiveInfo xminfo = new StatementCompanyComprehensiveInfo();
+        xminfo.setOfficeName("本"+nyr+"合计");
+        xminfo.setField1(xmnum1);
+        xminfo.setField2(xmnum2);
+        xminfo.setField3(xmnum3);
+        xminfo.setField4(xmnum4);
+        xminfo.setField5(xmnum5);
+        xminfo.setField6(xmnum6);
+        xminfo.setField7(xmnum7);
+        reportFormList1.add(xminfo);
+        map.put("reportFormList1",reportFormList1);
+        return map;
+    }
 
 
 }

+ 3 - 3
src/main/java/com/jeeplus/modules/workcalendar/service/WorkCalendarTaskService.java

@@ -116,17 +116,17 @@ public class WorkCalendarTaskService  {
     @Scheduled(cron= "0 10 0 * * ?")
     @Transactional(readOnly = false)
     public void getProjectReportedListByAdvent() {
-        /*logger.info("-----------项目超期未上报定时任务开始------------------");
+        logger.info("-----------项目超期未上报定时任务开始------------------");
         projectRecordsService.saveProjectReportedListByAdvent();
         logger.info("------------项目超期未上报定时任务结束------------------");
         logger.info("-----------项目超期未归档定时任务开始(电子归档)------------------");
         projectRecordsService.saveProjectRecordListByAdvent();
-        logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");*/
+        logger.info("------------项目超期未归档定时任务结束(电子归档)------------------");
         /*logger.info("-----------合同超期未归档定时任务开始------------------");
         workContractRecordService.saveContractRecordListByAdvent();
         logger.info("------------合同超期未归档定时任务结束------------------");*/
         logger.info("------------项目超期未审核定时任务开始--------------------");
-        projectRecordsService.getJudgeAdvanceWeekNotice();
+        //projectRecordsService.getJudgeAdvanceWeekNotice();
         logger.info("------------项目超期未审核定时任务结束--------------------");
     }
 

+ 20 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -7429,6 +7429,7 @@ public class WorkProjectNotifyController extends BaseController {
 
 					}
 
+					//2022,2,5
 					String[] arguments = workProjectNotify.getNotifyId().split(",");
 					//获取年份
 					String year = arguments[0];
@@ -7493,6 +7494,25 @@ public class WorkProjectNotifyController extends BaseController {
 					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
 						return "modules/statement/departmentCompanyDataView";
 					}
+				}else if ("167".equals(workProjectNotify.getType())) {//公司级报表展示操作
+					model.addAttribute("nyr", "月");
+					String[] arguments = workProjectNotify.getNotifyId().split(",");
+					//获取年份
+					String year = arguments[0];
+					//获取状态1(0:年;1:季度;2:月份)
+					String bigDateType = arguments[1];
+					//获取状态2(针对状态1进行精确所在指定季度或者月份)
+					String smallDateType = arguments[2];
+
+
+					Map<String, List<StatementCompanyComprehensiveInfo>> stringListMap = statementCompanyComprehensiveService.departmentReportViewList(year,bigDateType,smallDateType);
+					model.addAttribute("reportFormList1",stringListMap.get("reportFormList1"));//项目报表
+					//判断并只显示七个部门的项目信息
+					String sevenOfficeId = statementCompanyComprehensiveService.selectSevenOfficeId();
+
+					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+						return "modules/statement/companyReportDataView";
+					}
 				}
 			}
 		}

+ 5 - 1
src/main/resources/mappings/modules/projectGuidang/ProjectFilingbatchRelationDao.xml

@@ -12,7 +12,8 @@
 		g.status AS "status",
 		g.project_id AS "projectId",
 		g.box_num AS "boxNum",
-		g.re_box_num AS "reBoxNum"
+		g.re_box_num AS "reBoxNum",
+		a.audit_pass_date AS "auditPassDate"
 	</sql>
 	<insert id="insert">
 		insert into project_flingbatch_relation
@@ -45,6 +46,9 @@
 			<if test="reBoxNum!=null">
 				,re_box_num=#{reBoxNum}
 			</if>
+			<if test="auditPassDate != null">
+				,audit_pass_date = #{auditPassDate}
+			</if>
 		</set>
 		where id=#{id}
 	</update>

+ 13 - 3
src/main/resources/mappings/modules/ruralprojectrecords/ProjectPaperFilingDao.xml

@@ -17,7 +17,8 @@
 		a.office_id	As "officeId",
 		a.company_id As "companyId",
 		a.file_num AS "fileNum",
-		a.file_num_tow AS "fileNumTow"
+		a.file_num_tow AS "fileNumTow",
+		a.audit_pass_date AS "auditPassDate"
 	</sql>
 
 	<sql id="projectPaperFilingJions">
@@ -85,12 +86,18 @@
 			   process_instance_id = #{processInstanceId},
 			   file_num = #{fileNum},
 			   file_num_tow = #{fileNumTow}
+			   <if test="auditPassDate != null">
+				   ,audit_pass_date = #{auditPassDate}
+			   </if>
 		WHERE id = #{id}
 	</update>
 	<update id="updateProcessIdAndStatus">
 		UPDATE project_paper_filing SET
-			   status = #{status},
-			   process_instance_id = #{processInstanceId}
+			status = #{status},
+			process_instance_id = #{processInstanceId}
+			<if test="auditPassDate != null">
+				,audit_pass_date = #{auditPassDate}
+			</if>
 		WHERE id = #{id}
 	</update>
 	<update id="updatefileNum">
@@ -99,6 +106,9 @@
 			update_date = #{updateDate},
 			file_num = #{fileNum},
 			file_num_tow = #{fileNumTow}
+			<if test="auditPassDate != null">
+				,audit_pass_date = #{auditPassDate}
+			</if>
 		WHERE id = #{id}
 	</update>
 </mapper>

+ 666 - 2
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -1762,6 +1762,7 @@
 			left join sys_office so on so.id = su.office_id
 		<where>
 			a.del_flag = 0
+			a.status = 5
 			and a.emergency_project = 1
 			and (a.reported_state=6 or a.reported_state is null)
 			and prd.status = 5
@@ -1787,6 +1788,7 @@
 			left join sys_office so on so.id = su.office_id
 		<where>
 			a.del_flag = 0
+			a.status = 5
 			and (a.emergency_project = 0 or a.emergency_project is null)
 			and (a.reported_state=6 or a.reported_state is null)
 			and prd.status = 5
@@ -2159,6 +2161,7 @@
 		left join sys_office so on so.id = su.office_id
 		<where>
 			a.del_flag = 0
+			a.status = 5
 			and a.emergency_project = 1
 			and (a.record_state=6 or a.record_state is null)
 			and prd.status = 5
@@ -2183,6 +2186,7 @@
 		left join sys_office so on so.id = su.office_id
 		<where>
 			a.del_flag = 0
+			a.status = 5
 			and (a.emergency_project = 0 or a.emergency_project is null)
 			and (a.record_state=6 or a.record_state is null)
 			and prd.status = 5
@@ -3874,8 +3878,6 @@
 		WHERE
 		a.del_flag = 0
 		AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
-		AND a.emergency_project = 1
-		AND ( a.reported_state = 6 OR a.reported_state IS NULL )
 		AND datediff( now(), prd.create_date )> 53
 	</select>
 	<select id="findProjectRegistrantResponsiblePersonList" resultType="com.jeeplus.modules.sys.entity.User">
@@ -3928,4 +3930,666 @@ GROUP BY
 		</where>
 	</update>
 
+
+	<select id="selectProjectReportDataList" resultType="RuralProjectRecords">
+		SELECT
+		<include refid="projectRecordsColumnss"/>
+		,a.record_state as "recordState"
+		,a.submit_money as "submitMoney"
+		,(case when a.submit_money = '1' then 'B级' when a.submit_money = '2' then 'A级' else '' end) as projectScale
+		,(case
+		when a.submit_money = '1' and prd.status = '5' then
+		'已完成'
+		when a.submit_money = '2' and prdt.status = '5' then
+		'已完成' else '未完成'
+		end) as completionStatus
+		,a.project_type as projectType,
+		wci.name AS "workContractInfo.name",
+		wci.contract_num as "workContractInfo.contractNum",
+		wci.contract_price as "workContractInfo.contractPrice",
+		sub.name as "projectMasterName",
+		sob.name as "projectMasterOffice",
+		wct.id AS "workContractInfo.client.id",
+		wct.name AS "workContractInfo.client.name",
+		o.top_company AS "office.name",
+		o.name AS "createByOffice",
+		ifnull(prd.number ,"") as "projectReportNumber"
+		,ifnull(prd.status,0) as "projectReportStatus"
+		,ifnull(prd.name,"") as "projectReportName"
+		,ifnull(prr.status,0) as "projectReportRecordStatus"
+		,ifnull(prrd.status,0) as "downProjectReportRecordStatus",
+		prrd.file_num as recodeNum,
+		prr.process_instance_id as prrProcessInstanceId,
+		prrd.process_instance_id as prrdProcessInstanceId
+		,prd.id as prdId
+		,prr.id as prrId
+		,prrd.id as prrdId
+		,prd.audit_pass_date as auditPassDate
+		,if(date_add(prd.audit_pass_date,interval #{ruralProjectRecords.endingCount} day) >now(),"0","1") as reportedType
+		,ifnull(rprr.report_status,0) as "reportStatus"
+		,ifnull(rprr.sync_status,0) as "syncStatus"
+		,ifnull(pas.status,0) as "approvalSignatureStatus"
+		,ifnull(pas.process_instance_id,"") as "approvalSignatureProcessInstanceId"
+		,ifnull(prs.status,0) as "reportSignatureStatus"
+		,ifnull(prs.process_instance_id,"") as "reportSignatureProcessInstanceId"
+		,rprr.process_instance_id as "reportedProcessInstanceId"
+		,ifnull(prdt.status,0) as "projectReportStatusTwo"
+		,prdt.id as prdtId
+		,prdt.process_instance_id as prdtProcessinstanceId
+		,ifnull(pmdr.status,0) as "defectRecordStatus"
+		,pmdr.process_instance_id as "pmdrProcessInstanceId"
+		,pmdr.id as pmdrId
+		,ifnull(ppf.status,0) as "paperFilingStatus"
+		,ppf.process_instance_id as "ppfProcessInstanceId"
+		,ppf.id as "ppfId"
+		,pfb.process_instance_id AS "filingProcessinstanceId"
+		,ifnull(pfp.status,0) as "filingProjectStatus"
+		,ifnull(prd.approval_fee ,"") as "approvalFee"
+		,ifnull(prd.review_fee ,"") as "reviewFee"
+		,ifnull(prd.verify_fee ,"") as "verifyFee"
+		,ifnull(prd.verify_rate ,"") as "verifyRate"
+		,prd.audit_pass_date as "reportAuditDate"
+		,prdt.audit_pass_date as "reportTwoAuditDate"
+		/*,SUM(wi.money) as "money"*/
+		,prd.ZiXunShouRu as "money"
+		,prd.signature_flag as "signatureFlag"
+		,prd.signature_contract_id as "signatureContractId"
+		,prd.signature_url as "signatureUrl"
+		,a.report_signature_flag as "reportSignatureFlag"
+		,a.report_signature_url as "reportSignatureUrl"
+		,a.report_signature_contract_id as "reportSignatureContractId"
+		,prsi.id as "prsiId"
+		FROM statement_report_data_info sdi
+
+		<if test="statementCompanyComprehensiveInfo.field1 == '5'.toString() ">
+			LEFT JOIN rural_project_records a ON sdi.field1 = a.id
+		</if>
+		<if test="statementCompanyComprehensiveInfo.field2 == '5'.toString() ">
+			LEFT JOIN rural_project_records a ON sdi.field2 = a.id
+		</if>
+		<if test="statementCompanyComprehensiveInfo.field6 == '5'.toString() ">
+			LEFT JOIN rural_project_records a ON sdi.field3 = a.id
+		</if>
+		<if test="statementCompanyComprehensiveInfo.field7 == '5'.toString() ">
+			LEFT JOIN rural_project_records a ON sdi.field4 = a.id
+		</if>
+
+		LEFT JOIN sys_area area ON area.id = a.area_id
+		left join rural_project_records_reported rprr on rprr.id = a.id
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
+		LEFT JOIN project_filingbatch pfb on pfb.id=pfp.filing_batch
+		LEFT JOIN sys_user sua on a.create_by = sua.id
+		<if test="ruralProjectRecords.leaderNameStr !=null and ruralProjectRecords.leaderNameStr !=''">
+			LEFT JOIN work_project_user w on a.id = w.project_id
+			LEFT JOIN sys_user su on w.user_id = su.id
+		</if>
+		LEFT JOIN sys_user sub on a.project_master_id = sub.id
+		LEFT JOIN sys_office sob ON sob.id = sub.office_id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		left join project_report_data prd on prd.project_id = a.id
+		left join project_report_data_two prdt on prdt.project_id = a.id
+		left join rural_project_report_record prr on prr.report_id = prd.id
+		LEFT JOIN project_material_defect_record pmdr on prd.id = pmdr.report_id
+		left join rural_project_report_record_down prrd on prrd.report_id = prd.id
+		left join project_paper_filing ppf on ppf.project_id = a.id
+		left join project_approval_signature pas on pas.project_id = a.id
+		left join project_report_signature prs on prs.project_id = a.id
+		left join project_report_signature_info prsi on prsi.project_report_id = prd.number
+		<where>
+			a.status = 5
+			and a.del_flag = 0
+			and sdi.year = #{statementCompanyComprehensiveInfo.year}
+			and sdi.type = #{statementCompanyComprehensiveInfo.type}
+			and sdi.big_date_type = #{statementCompanyComprehensiveInfo.bigDateType}
+			and sdi.small_date_type = #{statementCompanyComprehensiveInfo.smallDateType}
+			and sdi.office_id = #{statementCompanyComprehensiveInfo.officeId}
+			<if test="statementCompanyComprehensiveInfo.field1 == '5'.toString() ">
+				and a.record_state != 7
+				and pmdr.id is null
+				and a.over_record_status = 1
+				and a.office_id in(select id  from sys_office where id = #{statementCompanyComprehensiveInfo.officeId} or parent_ids like concat('%',#{statementCompanyComprehensiveInfo.officeId},'%'))
+			</if>
+			<if test="statementCompanyComprehensiveInfo.field2 == '5'.toString() ">
+				and a.record_state != 7
+				and pmdr.id is null
+				and a.over_record_status = 1
+				and a.office_id in(select id  from sys_office where id = #{statementCompanyComprehensiveInfo.officeId} or parent_ids like concat('%',#{statementCompanyComprehensiveInfo.officeId},'%'))
+			</if>
+			<if test="statementCompanyComprehensiveInfo.field5 == '5'.toString() ">
+				and a.record_state != 7
+				and pmdr.id is null
+				and a.over_record_status = 1
+				and a.office_id in(select id  from sys_office where id = #{statementCompanyComprehensiveInfo.officeId} or parent_ids like concat('%',#{statementCompanyComprehensiveInfo.officeId},'%'))
+			</if>
+			<if test="statementCompanyComprehensiveInfo.field6 == '5'.toString() ">
+				and a.office_id in(select id  from sys_office where id = #{statementCompanyComprehensiveInfo.officeId} or parent_ids like concat('%',#{statementCompanyComprehensiveInfo.officeId},'%'))
+				AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
+				AND datediff( now(), prd.create_date ) &lt;= 60
+			</if>
+			<if test="statementCompanyComprehensiveInfo.field7 == '5'.toString() ">
+				and a.office_id in(select id  from sys_office where id = #{statementCompanyComprehensiveInfo.officeId} or parent_ids like concat('%',#{statementCompanyComprehensiveInfo.officeId},'%'))
+				AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
+				AND datediff( now(), prd.create_date ) > 60
+			</if>
+			<if test="statementCompanyComprehensiveInfo.field8 == '5'.toString() ">
+				and a.reported_state = 7
+				and a.over_due_status = 1
+				and a.office_id in(select id  from sys_office where id = #{statementCompanyComprehensiveInfo.officeId} or parent_ids like concat('%',#{statementCompanyComprehensiveInfo.officeId},'%'))
+				and rprr.report_status = 5
+				and rprr.del_flag = 0
+				and rprr.accomplish_date >= #{beginDate}
+				and rprr.accomplish_date &lt;= #{endDate}
+			</if>
+
+			<if test="ruralProjectRecords.projectId != null and ruralProjectRecords.projectId != ''">
+				AND a.project_id like concat('%',#{ruralProjectRecords.projectId},'%')
+			</if>
+			<if test="ruralProjectRecords.projectName != null and ruralProjectRecords.projectName != ''">
+				AND a.project_name like concat(concat('%',#{ruralProjectRecords.projectName}),'%')
+			</if>
+			<if test="ruralProjectRecords.scaleType != null and ruralProjectRecords.scaleType != ''">
+				AND a.scale_type = #{ruralProjectRecords.scaleType}
+			</if>
+			<if test="ruralProjectRecords.scaleUnit != null and ruralProjectRecords.scaleUnit != ''">
+				AND a.scale_unit = #{ruralProjectRecords.scaleUnit}
+			</if>
+			<if test="ruralProjectRecords.scaleQuantity != null and ruralProjectRecords.scaleQuantity != ''">
+				AND a.scale_quantity = #{ruralProjectRecords.scaleQuantity}
+			</if>
+			<if test="ruralProjectRecords.projectSite != null and ruralProjectRecords.projectSite != ''">
+				AND a.project_site LIKE concat('%',#{ruralProjectRecords.projectSite},'%')
+			</if>
+			<if test="ruralProjectRecords.remarks != null and ruralProjectRecords.remarks != ''">
+				AND a.remarks LIKE concat('%',#{ruralProjectRecords.remarks},'%')
+			</if>
+			<if test="ruralProjectRecords.projectDesc != null and ruralProjectRecords.projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{ruralProjectRecords.projectDesc},'%')
+			</if>
+			<if test="ruralProjectRecords.area != null and ruralProjectRecords.area.id != null and ruralProjectRecords.area.id != ''">
+				AND a.area_id = #{ruralProjectRecords.area.id}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.name !=null and ruralProjectRecords.workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{ruralProjectRecords.workContractInfo.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractNum !=null and ruralProjectRecords.workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{ruralProjectRecords.workContractInfo.contractNum}),'%')
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractPrice !=null and ruralProjectRecords.workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{ruralProjectRecords.workContractInfo.contractPrice}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractType !=null and ruralProjectRecords.workContractInfo.contractType !=''">
+				AND wci.contract_type = #{ruralProjectRecords.workContractInfo.contractType}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo!=null and ruralProjectRecords.workContractInfo.client !=null and ruralProjectRecords.workContractInfo.client.name !=null and ruralProjectRecords.workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{ruralProjectRecords.workContractInfo.client.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.leaderNameStr !=null and ruralProjectRecords.leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{ruralProjectRecords.leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="ruralProjectRecords.projectStatus !=null">
+				AND a.status = #{ruralProjectRecords.projectStatus}
+			</if>
+			<if test="ruralProjectRecords.beginDate !=null">
+				AND a.create_date >= #{ruralProjectRecords.beginDate}
+			</if>
+			<if test="ruralProjectRecords.endDate !=null">
+				AND a.create_date &lt; #{ruralProjectRecords.endDate}
+			</if>
+			<if test="ruralProjectRecords.projectType !=null and ruralProjectRecords.projectType !=''">
+				and project_type= #{ruralProjectRecords.projectType}
+			</if>
+			<if test="ruralProjectRecords.engineeringType !=null and ruralProjectRecords.engineeringType !=''">
+				and a.engineering_type= #{ruralProjectRecords.engineeringType}
+			</if>
+			<!--<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>-->
+			<if test="ruralProjectRecords.officeIdList!=null and ruralProjectRecords.officeIdList.size!=0">
+				and a.office_id in
+				<foreach collection="officeIdList" item="officeId" separator="," open="(" close=")">
+					#{ruralProjectRecords.officeId}
+				</foreach>
+			</if>
+
+			<if test="ruralProjectRecords.reportData!=null and ruralProjectRecords.reportData.number !=null and ruralProjectRecords.reportData.number !=''">
+				and prd.number like concat('%',#{ruralProjectRecords.reportData.number},'%')
+			</if>
+			<if test="ruralProjectRecords.filingProjectStatus!=null and ruralProjectRecords.filingProjectStatus !=''">
+				and pfp.status =${ruralProjectRecords.filingProjectStatus}
+			</if>
+			<if test="ruralProjectRecords.submitMoney!=null and ruralProjectRecords.submitMoney !=''">
+				and a.submit_money =#{ruralProjectRecords.submitMoney}
+			</if>
+			<if test="ruralProjectRecords.createBy !=null and ruralProjectRecords.createBy !=''">
+				<if test="ruralProjectRecords.createBy.name !=null and ruralProjectRecords.createBy.name !=''">
+					AND sua.name like concat(concat('%',#{ruralProjectRecords.createBy.name}),'%')
+				</if>
+			</if>
+			<if test="ruralProjectRecords.office!=null and ruralProjectRecords.office.name!=null and ruralProjectRecords.office.name!=''">
+				AND o.name like concat(concat('%',#{ruralProjectRecords.office.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.sqlMap.delFlag !=null and ruralProjectRecords.sqlMap.delFlag!=''">
+				${ruralProjectRecords.sqlMap.delFlag}
+			</if>
+			<if test="ruralProjectRecords.sqlMap.dsf !=null and ruralProjectRecords.sqlMap.dsf!=''">
+				AND ((w1.user_id = #{ruralProjectRecords.currentUser.id} AND w1.del_flag='0' AND a.company_id = #{ruralProjectRecords.currentUser.company.id} )${ruralProjectRecords.sqlMap.dsf} )
+			</if>
+		</where>
+		GROUP BY a.id
+		<choose>
+			<when test="ruralProjectRecords.page !=null and ruralProjectRecords.page.orderBy != null and ruralProjectRecords.page.orderBy != ''">
+				ORDER BY ${ruralProjectRecords.page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+		limit ${ruralProjectRecords.page.pageNo},${ruralProjectRecords.page.pageSize}
+	</select>
+
+
+	<select id="selectProjectReportDataCount" resultType="integer">
+		select
+		count(DISTINCT id)
+		from statement_report_data_info
+		<where>
+			year = #{year}
+			and type = #{type}
+			and big_date_type = #{bigDateType}
+			and small_date_type = #{smallDateType}
+			and office_id = #{officeId}
+			<if test="field1 == '5'.toString()">
+				and field1 IS NOT NULL and field1 != ''
+			</if>
+			<if test="field2 == '5'.toString() ">
+				and field2 IS NOT NULL and field2 != ''
+			</if>
+			<if test="field6 == '5'.toString() ">
+				and field3 IS NOT NULL and field3 != ''
+			</if>
+			<if test="field7 == '5'.toString() ">
+				and field4 IS NOT NULL and field4 != ''
+			</if>
+		</where>
+	</select>
+
+	<select id="selectReportZJPage" resultType="RuralProjectRecords">
+		SELECT
+		<include refid="projectRecordsColumnss"/>
+		,a.record_state as "recordState"
+		,a.submit_money as "submitMoney"
+		,(case when a.submit_money = '1' then 'B级' when a.submit_money = '2' then 'A级' else '' end) as projectScale
+		,(case
+		when a.submit_money = '1' and prd.status = '5' then
+		'已完成'
+		when a.submit_money = '2' and prdt.status = '5' then
+		'已完成' else '未完成'
+		end) as completionStatus
+		,a.project_type as projectType,
+		wci.name AS "workContractInfo.name",
+		wci.contract_num as "workContractInfo.contractNum",
+		wci.contract_price as "workContractInfo.contractPrice",
+		sub.name as "projectMasterName",
+		sob.name as "projectMasterOffice",
+		wct.id AS "workContractInfo.client.id",
+		wct.name AS "workContractInfo.client.name",
+		o.top_company AS "office.name",
+		o.name AS "createByOffice",
+		ifnull(prd.number ,"") as "projectReportNumber"
+		,ifnull(prd.status,0) as "projectReportStatus"
+		,ifnull(prd.name,"") as "projectReportName"
+		,ifnull(prr.status,0) as "projectReportRecordStatus"
+		,ifnull(prrd.status,0) as "downProjectReportRecordStatus",
+		prrd.file_num as recodeNum,
+		prr.process_instance_id as prrProcessInstanceId,
+		prrd.process_instance_id as prrdProcessInstanceId
+		,prd.id as prdId
+		,prr.id as prrId
+		,prrd.id as prrdId
+		,prd.audit_pass_date as auditPassDate
+		,if(date_add(prd.audit_pass_date,interval #{ruralProjectRecords.endingCount} day) >now(),"0","1") as reportedType
+		,ifnull(rprr.report_status,0) as "reportStatus"
+		,ifnull(rprr.sync_status,0) as "syncStatus"
+		,ifnull(pas.status,0) as "approvalSignatureStatus"
+		,ifnull(pas.process_instance_id,"") as "approvalSignatureProcessInstanceId"
+		,ifnull(prs.status,0) as "reportSignatureStatus"
+		,ifnull(prs.process_instance_id,"") as "reportSignatureProcessInstanceId"
+		,rprr.process_instance_id as "reportedProcessInstanceId"
+		,ifnull(prdt.status,0) as "projectReportStatusTwo"
+		,prdt.id as prdtId
+		,prdt.process_instance_id as prdtProcessinstanceId
+		,ifnull(pmdr.status,0) as "defectRecordStatus"
+		,pmdr.process_instance_id as "pmdrProcessInstanceId"
+		,pmdr.id as pmdrId
+		,ifnull(ppf.status,0) as "paperFilingStatus"
+		,ppf.process_instance_id as "ppfProcessInstanceId"
+		,ppf.id as "ppfId"
+		,pfb.process_instance_id AS "filingProcessinstanceId"
+		,ifnull(pfp.status,0) as "filingProjectStatus"
+		,ifnull(prd.approval_fee ,"") as "approvalFee"
+		,ifnull(prd.review_fee ,"") as "reviewFee"
+		,ifnull(prd.verify_fee ,"") as "verifyFee"
+		,ifnull(prd.verify_rate ,"") as "verifyRate"
+		,prd.audit_pass_date as "reportAuditDate"
+		,prdt.audit_pass_date as "reportTwoAuditDate"
+		/*,SUM(wi.money) as "money"*/
+		,prd.ZiXunShouRu as "money"
+		,prd.signature_flag as "signatureFlag"
+		,prd.signature_contract_id as "signatureContractId"
+		,prd.signature_url as "signatureUrl"
+		,a.report_signature_flag as "reportSignatureFlag"
+		,a.report_signature_url as "reportSignatureUrl"
+		,a.report_signature_contract_id as "reportSignatureContractId"
+		,prsi.id as "prsiId"
+		FROM rural_project_records a
+		LEFT JOIN sys_area area ON area.id = a.area_id
+		left join rural_project_records_reported rprr on rprr.id = a.id
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
+		LEFT JOIN project_filingbatch pfb on pfb.id=pfp.filing_batch
+		LEFT JOIN sys_user sua on a.create_by = sua.id
+		<if test="ruralProjectRecords.leaderNameStr !=null and ruralProjectRecords.leaderNameStr !=''">
+			LEFT JOIN work_project_user w on a.id = w.project_id
+			LEFT JOIN sys_user su on w.user_id = su.id
+		</if>
+		LEFT JOIN sys_user sub on a.project_master_id = sub.id
+		LEFT JOIN sys_office sob ON sob.id = sub.office_id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		left join project_report_data prd on prd.project_id = a.id
+		left join project_report_data_two prdt on prdt.project_id = a.id
+		left join rural_project_report_record prr on prr.report_id = prd.id
+		LEFT JOIN project_material_defect_record pmdr on prd.id = pmdr.report_id
+		left join rural_project_report_record_down prrd on prrd.report_id = prd.id
+		left join project_paper_filing ppf on ppf.project_id = a.id
+		left join project_approval_signature pas on pas.project_id = a.id
+		left join project_report_signature prs on prs.project_id = a.id
+		left join project_report_signature_info prsi on prsi.project_report_id = prd.number
+		<where>
+			a.del_flag=0
+			and a.status = 5
+			and a.office_id in(select id  from sys_office where id = #{officeId} or parent_ids like concat('%',#{officeId},'%'))
+			<if test="recordState == '5'.toString() ">
+				and a.record_state = 5
+				and a.over_record_status = 0
+				and prr.status = 5
+				and prr.del_flag = 0
+				and prr.accomplish_date >= #{beginDate}
+				and prr.accomplish_date &lt;= #{endDate}
+			</if>
+			<if test="projectPaperFiling == '5'.toString() ">
+				and ppf.status = 5
+				and ppf.del_flag = 0
+				and ppf.audit_pass_date >= #{beginDate}
+				and ppf.audit_pass_date &lt;= #{endDate}
+			</if>
+			<if test="projectFlingBatchRelation == '5'.toString() ">
+				and pfp.status = 5
+				and pfp.del_flag = 0
+				and pfp.audit_pass_date >= #{beginDate}
+				and pfp.audit_pass_date &lt;= #{endDate}
+			</if>
+
+
+			<if test="ruralProjectRecords.projectId != null and ruralProjectRecords.projectId != ''">
+				AND a.project_id like concat('%',#{ruralProjectRecords.projectId},'%')
+			</if>
+			<if test="ruralProjectRecords.projectName != null and ruralProjectRecords.projectName != ''">
+				AND a.project_name like concat(concat('%',#{ruralProjectRecords.projectName}),'%')
+			</if>
+			<if test="ruralProjectRecords.scaleType != null and ruralProjectRecords.scaleType != ''">
+				AND a.scale_type = #{ruralProjectRecords.scaleType}
+			</if>
+			<if test="ruralProjectRecords.scaleUnit != null and ruralProjectRecords.scaleUnit != ''">
+				AND a.scale_unit = #{ruralProjectRecords.scaleUnit}
+			</if>
+			<if test="ruralProjectRecords.scaleQuantity != null and ruralProjectRecords.scaleQuantity != ''">
+				AND a.scale_quantity = #{ruralProjectRecords.scaleQuantity}
+			</if>
+			<if test="ruralProjectRecords.projectSite != null and ruralProjectRecords.projectSite != ''">
+				AND a.project_site LIKE concat('%',#{ruralProjectRecords.projectSite},'%')
+			</if>
+			<if test="ruralProjectRecords.remarks != null and ruralProjectRecords.remarks != ''">
+				AND a.remarks LIKE concat('%',#{ruralProjectRecords.remarks},'%')
+			</if>
+			<if test="ruralProjectRecords.projectDesc != null and ruralProjectRecords.projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{ruralProjectRecords.projectDesc},'%')
+			</if>
+			<if test="ruralProjectRecords.area != null and ruralProjectRecords.area.id != null and ruralProjectRecords.area.id != ''">
+				AND a.area_id = #{ruralProjectRecords.area.id}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.name !=null and ruralProjectRecords.workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{ruralProjectRecords.workContractInfo.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractNum !=null and ruralProjectRecords.workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{ruralProjectRecords.workContractInfo.contractNum}),'%')
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractPrice !=null and ruralProjectRecords.workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{ruralProjectRecords.workContractInfo.contractPrice}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractType !=null and ruralProjectRecords.workContractInfo.contractType !=''">
+				AND wci.contract_type = #{ruralProjectRecords.workContractInfo.contractType}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo!=null and ruralProjectRecords.workContractInfo.client !=null and ruralProjectRecords.workContractInfo.client.name !=null and ruralProjectRecords.workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{ruralProjectRecords.workContractInfo.client.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.leaderNameStr !=null and ruralProjectRecords.leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{ruralProjectRecords.leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="ruralProjectRecords.projectStatus !=null">
+				AND a.status = #{ruralProjectRecords.projectStatus}
+			</if>
+			<if test="ruralProjectRecords.beginDate !=null">
+				AND a.create_date >= #{ruralProjectRecords.beginDate}
+			</if>
+			<if test="ruralProjectRecords.endDate !=null">
+				AND a.create_date &lt; #{ruralProjectRecords.endDate}
+			</if>
+			<if test="ruralProjectRecords.projectType !=null and ruralProjectRecords.projectType !=''">
+				and project_type= #{ruralProjectRecords.projectType}
+			</if>
+			<if test="ruralProjectRecords.engineeringType !=null and ruralProjectRecords.engineeringType !=''">
+				and a.engineering_type= #{ruralProjectRecords.engineeringType}
+			</if>
+			<!--<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>-->
+			<if test="ruralProjectRecords.officeIdList!=null and ruralProjectRecords.officeIdList.size!=0">
+				and a.office_id in
+				<foreach collection="officeIdList" item="officeId" separator="," open="(" close=")">
+					#{ruralProjectRecords.officeId}
+				</foreach>
+			</if>
+
+			<if test="ruralProjectRecords.reportData!=null and ruralProjectRecords.reportData.number !=null and ruralProjectRecords.reportData.number !=''">
+				and prd.number like concat('%',#{ruralProjectRecords.reportData.number},'%')
+			</if>
+			<if test="ruralProjectRecords.filingProjectStatus!=null and ruralProjectRecords.filingProjectStatus !=''">
+				and pfp.status =${ruralProjectRecords.filingProjectStatus}
+			</if>
+			<if test="ruralProjectRecords.submitMoney!=null and ruralProjectRecords.submitMoney !=''">
+				and a.submit_money =#{ruralProjectRecords.submitMoney}
+			</if>
+			<if test="ruralProjectRecords.createBy !=null and ruralProjectRecords.createBy !=''">
+				<if test="ruralProjectRecords.createBy.name !=null and ruralProjectRecords.createBy.name !=''">
+					AND sua.name like concat(concat('%',#{ruralProjectRecords.createBy.name}),'%')
+				</if>
+			</if>
+			<if test="ruralProjectRecords.office!=null and ruralProjectRecords.office.name!=null and ruralProjectRecords.office.name!=''">
+				AND o.name like concat(concat('%',#{ruralProjectRecords.office.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.sqlMap.delFlag !=null and ruralProjectRecords.sqlMap.delFlag!=''">
+				${ruralProjectRecords.sqlMap.delFlag}
+			</if>
+			<if test="ruralProjectRecords.sqlMap.dsf !=null and ruralProjectRecords.sqlMap.dsf!=''">
+				AND ((w1.user_id = #{ruralProjectRecords.currentUser.id} AND w1.del_flag='0' AND a.company_id = #{ruralProjectRecords.currentUser.company.id} )${ruralProjectRecords.sqlMap.dsf} )
+			</if>
+		</where>
+		GROUP BY a.id
+		<choose>
+			<when test="ruralProjectRecords.page !=null and ruralProjectRecords.page.orderBy != null and ruralProjectRecords.page.orderBy != ''">
+				ORDER BY ${ruralProjectRecords.page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+		limit ${ruralProjectRecords.page.pageNo},${ruralProjectRecords.page.pageSize}
+	</select>
+
+
+	<select id="reportZJPageCount" resultType="integer">
+		SELECT
+		count(DISTINCT a.id)
+		FROM rural_project_records a
+		LEFT JOIN sys_area area ON area.id = a.area_id
+		left join rural_project_records_reported rprr on rprr.id = a.id
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
+		LEFT JOIN project_filingbatch pfb on pfb.id=pfp.filing_batch
+		LEFT JOIN sys_user sua on a.create_by = sua.id
+		<if test="ruralProjectRecords.leaderNameStr !=null and ruralProjectRecords.leaderNameStr !=''">
+			LEFT JOIN work_project_user w on a.id = w.project_id
+			LEFT JOIN sys_user su on w.user_id = su.id
+		</if>
+		LEFT JOIN sys_user sub on a.project_master_id = sub.id
+		LEFT JOIN sys_office sob ON sob.id = sub.office_id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		left join project_report_data prd on prd.project_id = a.id
+		left join project_report_data_two prdt on prdt.project_id = a.id
+		left join rural_project_report_record prr on prr.report_id = prd.id
+		LEFT JOIN project_material_defect_record pmdr on prd.id = pmdr.report_id
+		left join rural_project_report_record_down prrd on prrd.report_id = prd.id
+		left join project_paper_filing ppf on ppf.project_id = a.id
+		left join project_approval_signature pas on pas.project_id = a.id
+		left join project_report_signature prs on prs.project_id = a.id
+		left join project_report_signature_info prsi on prsi.project_report_id = prd.number
+		<where>
+			a.del_flag=0
+			and a.status = 5
+			and a.office_id in(select id  from sys_office where id = #{officeId} or parent_ids like concat('%',#{officeId},'%'))
+			<if test="recordState == '5'.toString() ">
+				and a.record_state = 5
+				and a.over_record_status = 0
+				and prr.status = 5
+				and prr.del_flag = 0
+				and prr.accomplish_date >= #{beginDate}
+				and prr.accomplish_date &lt;= #{endDate}
+			</if>
+			<if test="projectPaperFiling == '5'.toString() ">
+				and ppf.status = 5
+				and ppf.del_flag = 0
+				and ppf.audit_pass_date >= #{beginDate}
+				and ppf.audit_pass_date &lt;= #{endDate}
+			</if>
+			<if test="projectFlingBatchRelation == '5'.toString() ">
+				and pfp.status = 5
+				and pfp.del_flag = 0
+				and pfp.audit_pass_date >= #{beginDate}
+				and pfp.audit_pass_date &lt;= #{endDate}
+			</if>
+
+
+			<if test="ruralProjectRecords.projectId != null and ruralProjectRecords.projectId != ''">
+				AND a.project_id like concat('%',#{ruralProjectRecords.projectId},'%')
+			</if>
+			<if test="ruralProjectRecords.projectName != null and ruralProjectRecords.projectName != ''">
+				AND a.project_name like concat(concat('%',#{ruralProjectRecords.projectName}),'%')
+			</if>
+			<if test="ruralProjectRecords.scaleType != null and ruralProjectRecords.scaleType != ''">
+				AND a.scale_type = #{ruralProjectRecords.scaleType}
+			</if>
+			<if test="ruralProjectRecords.scaleUnit != null and ruralProjectRecords.scaleUnit != ''">
+				AND a.scale_unit = #{ruralProjectRecords.scaleUnit}
+			</if>
+			<if test="ruralProjectRecords.scaleQuantity != null and ruralProjectRecords.scaleQuantity != ''">
+				AND a.scale_quantity = #{ruralProjectRecords.scaleQuantity}
+			</if>
+			<if test="ruralProjectRecords.projectSite != null and ruralProjectRecords.projectSite != ''">
+				AND a.project_site LIKE concat('%',#{ruralProjectRecords.projectSite},'%')
+			</if>
+			<if test="ruralProjectRecords.remarks != null and ruralProjectRecords.remarks != ''">
+				AND a.remarks LIKE concat('%',#{ruralProjectRecords.remarks},'%')
+			</if>
+			<if test="ruralProjectRecords.projectDesc != null and ruralProjectRecords.projectDesc != ''">
+				AND a.project_desc LIKE concat('%',#{ruralProjectRecords.projectDesc},'%')
+			</if>
+			<if test="ruralProjectRecords.area != null and ruralProjectRecords.area.id != null and ruralProjectRecords.area.id != ''">
+				AND a.area_id = #{ruralProjectRecords.area.id}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.name !=null and ruralProjectRecords.workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{ruralProjectRecords.workContractInfo.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractNum !=null and ruralProjectRecords.workContractInfo.contractNum !=''">
+				AND wci.contract_num like concat(concat('%',#{ruralProjectRecords.workContractInfo.contractNum}),'%')
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractPrice !=null and ruralProjectRecords.workContractInfo.contractPrice !=''">
+				AND wci.contract_price = #{ruralProjectRecords.workContractInfo.contractPrice}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo !=null and ruralProjectRecords.workContractInfo.contractType !=null and ruralProjectRecords.workContractInfo.contractType !=''">
+				AND wci.contract_type = #{ruralProjectRecords.workContractInfo.contractType}
+			</if>
+			<if test="ruralProjectRecords.workContractInfo!=null and ruralProjectRecords.workContractInfo.client !=null and ruralProjectRecords.workContractInfo.client.name !=null and ruralProjectRecords.workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{ruralProjectRecords.workContractInfo.client.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.leaderNameStr !=null and ruralProjectRecords.leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{ruralProjectRecords.leaderNameStr}),'%') AND w.is_master = '1' AND w.del_flag='0'
+			</if>
+			<if test="ruralProjectRecords.projectStatus !=null">
+				AND a.status = #{ruralProjectRecords.projectStatus}
+			</if>
+			<if test="ruralProjectRecords.beginDate !=null">
+				AND a.create_date >= #{ruralProjectRecords.beginDate}
+			</if>
+			<if test="ruralProjectRecords.endDate !=null">
+				AND a.create_date &lt; #{ruralProjectRecords.endDate}
+			</if>
+			<if test="ruralProjectRecords.projectType !=null and ruralProjectRecords.projectType !=''">
+				and project_type= #{ruralProjectRecords.projectType}
+			</if>
+			<if test="ruralProjectRecords.engineeringType !=null and ruralProjectRecords.engineeringType !=''">
+				and a.engineering_type= #{ruralProjectRecords.engineeringType}
+			</if>
+			<!--<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>-->
+			<if test="ruralProjectRecords.officeIdList!=null and ruralProjectRecords.officeIdList.size!=0">
+				and a.office_id in
+				<foreach collection="officeIdList" item="officeId" separator="," open="(" close=")">
+					#{ruralProjectRecords.officeId}
+				</foreach>
+			</if>
+
+			<if test="ruralProjectRecords.reportData!=null and ruralProjectRecords.reportData.number !=null and ruralProjectRecords.reportData.number !=''">
+				and prd.number like concat('%',#{ruralProjectRecords.reportData.number},'%')
+			</if>
+			<if test="ruralProjectRecords.filingProjectStatus!=null and ruralProjectRecords.filingProjectStatus !=''">
+				and pfp.status =${ruralProjectRecords.filingProjectStatus}
+			</if>
+			<if test="ruralProjectRecords.submitMoney!=null and ruralProjectRecords.submitMoney !=''">
+				and a.submit_money =#{ruralProjectRecords.submitMoney}
+			</if>
+			<if test="ruralProjectRecords.createBy !=null and ruralProjectRecords.createBy !=''">
+				<if test="ruralProjectRecords.createBy.name !=null and ruralProjectRecords.createBy.name !=''">
+					AND sua.name like concat(concat('%',#{ruralProjectRecords.createBy.name}),'%')
+				</if>
+			</if>
+			<if test="ruralProjectRecords.office!=null and ruralProjectRecords.office.name!=null and ruralProjectRecords.office.name!=''">
+				AND o.name like concat(concat('%',#{ruralProjectRecords.office.name}),'%')
+			</if>
+			<if test="ruralProjectRecords.sqlMap.delFlag !=null and ruralProjectRecords.sqlMap.delFlag!=''">
+				${ruralProjectRecords.sqlMap.delFlag}
+			</if>
+			<if test="ruralProjectRecords.sqlMap.dsf !=null and ruralProjectRecords.sqlMap.dsf!=''">
+				AND ((w1.user_id = #{ruralProjectRecords.currentUser.id} AND w1.del_flag='0' AND a.company_id = #{ruralProjectRecords.currentUser.company.id} )${ruralProjectRecords.sqlMap.dsf} )
+			</if>
+		</where>
+	</select>
+
 </mapper>

+ 227 - 6
src/main/resources/mappings/modules/statement/StatementCompanyComprehensiveDao.xml

@@ -104,7 +104,6 @@
 		)
 	</insert>
 
-
 	<insert id="insertByYear">
 		INSERT INTO statement_company_comprehensive_info2(
 			create_date,
@@ -151,7 +150,6 @@
 			and office_id = #{officeId}
 	</delete>
 
-
 	<delete id="deleteByYear">
 		delete from statement_company_comprehensive_info2
 		where type = #{type}
@@ -769,7 +767,6 @@
 		</where>
 	</delete>
 
-
 	<delete id="deleteStatementDataInfoByYear">
 		delete from statement_data_info2
 		<where >
@@ -1438,8 +1435,6 @@
 	</select>
 
 
-
-
 	<select id="selectAllByTypeByYear" parameterType="StatementCompanyComprehensiveInfo" resultType="StatementCompanyComprehensiveInfo">
 		select
 		a.id as "id",
@@ -1471,7 +1466,6 @@
 	</select>
 
 
-
 	<select id="selectAllByTypeInYearReport" parameterType="StatementCompanyComprehensiveInfo" resultType="StatementCompanyComprehensiveInfo">
 		select
 		a.id as "id",
@@ -1667,4 +1661,231 @@
 	</if>
 		and a.del_flag = 0
 	</select>
+
+	<select id="getProjectPaperFilingList" resultType="com.jeeplus.modules.statement.entity.ReportDataEntity">
+		select
+		a.office_id as "officeId",
+		so.parent_ids as "officeParentIds",
+		count(1) as "count"
+		from rural_project_records a
+		left join project_paper_filing ppf on a.id = ppf.project_id
+		left join sys_office so on so.id = a.office_id
+		<where>
+			a.del_flag=0
+			and a.submit_money = 2
+			and ppf.status = 5
+			and ppf.del_flag = 0
+			and ppf.audit_pass_date >= #{beginDate}
+			and ppf.audit_pass_date &lt;= #{endDate}
+		</where>
+		group by a.office_id
+	</select>
+
+	<select id="getProjectFlingBatchRelationList" resultType="com.jeeplus.modules.statement.entity.ReportDataEntity">
+		select
+		a.office_id as "officeId",
+		so.parent_ids as "officeParentIds",
+		count(1) as "count"
+		from rural_project_records a
+		left join project_flingbatch_relation pfr on a.id = pfr.project_id
+		left join sys_office so on so.id = a.office_id
+		<where>
+			a.del_flag=0
+			and a.submit_money = 1
+			and pfr.status = 5
+			and pfr.del_flag = 0
+			and pfr.audit_pass_date >= #{beginDate}
+			and pfr.audit_pass_date &lt;= #{endDate}
+		</where>
+		group by a.office_id
+	</select>
+
+	<select id="getProjectReportDataList" resultType="com.jeeplus.modules.statement.entity.ReportDataEntity">
+		select
+		a.id as "fieldId",
+		a.office_id as "officeId",
+		so.parent_ids as "officeParentIds"
+		from rural_project_records a
+		left join sys_office so on so.id = a.office_id
+		left join project_report_data prd on a.id = prd.project_id
+		<where>
+			a.del_flag=0
+			and a.status = 5
+			AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
+			AND datediff( now(), prd.create_date ) &lt;= 60
+		</where>
+	</select>
+
+	<select id="getOverDueProjectReportDataList" resultType="com.jeeplus.modules.statement.entity.ReportDataEntity">
+		select
+		a.id as "fieldId",
+		a.office_id as "officeId",
+		so.parent_ids as "officeParentIds"
+		from rural_project_records a
+		left join sys_office so on so.id = a.office_id
+		left join project_report_data prd on a.id = prd.project_id
+		<where>
+			a.del_flag=0
+			and a.status = 5
+			AND ( prd.STATUS IS NULL OR prd.STATUS = '' )
+			AND datediff( now(), prd.create_date ) > 60
+		</where>
+	</select>
+
+	<insert id="insertStatementReportDataInfo">
+		INSERT INTO statement_report_data_info
+		(
+		create_date
+		,year
+		,grade_type
+		,type
+		,big_date_type
+		,small_date_type
+		,statement_date
+		,office_id
+		,field1
+		,field2
+		,field3
+		,field4
+		)
+		VALUES
+		<foreach collection="dataList" item="data" separator=",">
+			(
+			now()
+			,#{data.year}
+			,#{data.gradeType}
+			,#{data.type}
+			,#{data.bigDateType}
+			,#{data.smallDateType}
+			,#{data.statementDate}
+			,#{data.officeId}
+			,#{data.field1}
+			,#{data.field2}
+			,#{data.field3}
+			,#{data.field4}
+			)
+		</foreach>
+	</insert>
+
+	<delete id="deleteStatementDataInfo">
+		delete from statement_report_data_info
+		<where >
+			type = #{type}
+			and year = #{year}
+			and big_date_type = #{bigDateType}
+			and small_date_type = #{smallDateType}
+			and office_id = #{officeId}
+
+			<if test="field1 != null and field1 != ''">
+				and field1 = #{field1}
+			</if>
+
+			<if test="field2 != null and field2 != ''">
+				and field2 = #{field2}
+			</if>
+
+			<if test="field3 != null and field3 != ''">
+				and field3 = #{field3}
+			</if>
+
+			<if test="field4 != null and field4 != ''">
+				and field4 = #{field4}
+			</if>
+		</where>
+	</delete>
+
+
+	<insert id="insertReport">
+		INSERT INTO statement_audit_office_data_info(
+			create_date,
+			year,
+			type,
+			big_date_type,
+			small_date_type,
+			statement_date,
+			office_id,
+			field1,
+			field2,
+			field3,
+			field4,
+			field5,
+			field6,
+			field7
+		) VALUES (
+			#{createDate},
+			#{year},
+			#{type},
+			#{bigDateType},
+			#{smallDateType},
+			#{statementDate},
+			#{officeId},
+			#{field1},
+			#{field2},
+			#{field3},
+			#{field4},
+			#{field5},
+			#{field6},
+			#{field7}
+
+		)
+	</insert>
+
+	<delete id="deleteReport">
+		delete from statement_audit_office_data_info
+		where type = #{type}
+		  	and year = #{year}
+			and big_date_type = #{bigDateType}
+			and small_date_type = #{smallDateType}
+			and office_id = #{officeId}
+	</delete>
+
+	<update id="updateReport">
+		UPDATE statement_audit_office_data_info SET
+
+			year = #{year},
+			year = #{year},
+			big_date_type = #{bigDateType},
+			small_date_type = #{smallDateType},
+			statement_date = #{statementDate},
+			office_id = #{officeId},
+			field1 = #{field1},
+			field2 = #{field2},
+			field3 = #{field3},
+			field4 = #{field4},
+			field5 = #{field5},
+			field6 = #{field6},
+			field7 = #{field7}
+		WHERE id = #{id}
+	</update>
+
+	<select id="selectReportAllByType" parameterType="StatementCompanyComprehensiveInfo" resultType="StatementCompanyComprehensiveInfo">
+		select
+		a.id as "id",
+		a.del_flag as "delFlag",
+		a.create_date as "createDate",
+		a.year as "year",
+		a.type as "type",
+		a.big_date_type as "bigDateType",
+		a.small_date_type as "smallDateType",
+		a.statement_date as "statementDate",
+		a.office_id as "officeId",
+		a.field1 as "field1",
+		a.field2 as "field2",
+		a.field3 as "field3",
+		a.field4 as "field4",
+		a.field5 as "field5",
+		a.field6 as "field6",
+		a.field7 as "field7",
+		(select name from sys_office where id = office_id) officeName
+		from statement_audit_office_data_info a
+		<where>
+			a.type = #{type}
+			and a.del_flag = 0
+			and a.big_date_type = #{bigDateType}
+			and a.year = #{year}
+			and a.small_date_type = #{smallDateType}
+		</where>
+	</select>
+
+
 </mapper>

+ 1 - 1
src/main/resources/mappings/modules/workprojectnotify/WorkProjectNotifyDao.xml

@@ -162,7 +162,7 @@
 			</choose>
 		</where>
 
-		ORDER BY a.exigency desc, a.update_date DESC
+		ORDER BY a.update_date DESC, a.exigency desc
 		<choose>
 			<!--<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}

+ 1 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/downloadType/downloadProjectView.jsp

@@ -116,7 +116,7 @@
 						</div>
 					</div>
 					<div class="form-group">
-						<label class="col-sm-2 control-label">项目责人:</label>
+						<label class="col-sm-2 control-label">项目责人:</label>
 						<div class="col-sm-10">
 							<input value="${ruralProjectRecords.leaderNameStr}" readonly="true" htmlEscape="false" class="form-control "/>
 						</div>

+ 215 - 0
src/main/webapp/webpage/modules/statement/companyReportDataView.jsp

@@ -0,0 +1,215 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目列表</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.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");
+				}
+			});
+			layui.use(['form', 'layer'], function () {
+				var form = layui.form;
+			})
+		});
+
+		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="layui-row contentShadow shadowLR" id="queryDiv">
+
+			</div>
+		</div>
+		<div class="full-width fl">
+			<div class="layui-form contentDetails contentShadow shadowLBR">
+				<div class="nav-btns">
+					<div style="clear: both;"></div>
+				</div>
+
+				<%--项目报表--%>
+				<div class="form-group-label"><h2>${nyr}报</h2></div>
+				<table class="oa-table layui-table" id="contentTable1" lay-filter="test"></table>
+				<div style="clear: both;"></div>
+			</div>
+		</div>
+	</div>
+	<div id="changewidth"></div>
+</div>
+<script type="text/html" id="barDemo">
+	<a class="layui-btn layui-btn-xs" lay-event="more" style="width: 75px">请选择<i class="layui-icon layui-icon-down"></i></a>
+</script>
+<script>
+	layui.use(function() {
+		//得到各种内置组件
+		var table = layui.table //表格
+				,dropdown = layui.dropdown //下拉菜单
+
+		table.on('tool(test)', function (obj) { //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
+			var data = obj.data //获得当前行数据
+					, layEvent = obj.event; //获得 lay-event 对应的值
+			if (layEvent === 'more' && (data.falg == 1 || ('0'!=data.projectReportStatus && '1'!=data.projectReportStatus) || data.paperFilingStatus == 5 || data.projectReportStatus == 5 || data.submitMoney==1 || data.reportedState == 5 || data.reportedState == 7)) {
+				//下拉菜单
+				dropdown.render({
+					elem: this //触发事件的 DOM 对象
+					, show: true //外部事件触发即显示
+					, data: [{
+						title: ''
+						, id: 'must' //此项为必填项
+						// , href: '#'
+						// , target: '_blank' 默认_self
+						, templet: show(data)
+
+					}]
+					, align: 'center' //右对齐弹出(v2.6.8 新增)
+					, style: 'box-shadow: 5px 5px 10px rgb(0 0 0 / 12%);' //设置额外样式
+				})
+			}else {
+				dropdown.render({
+					elem: this
+					,show: true
+					,data:[{
+						title: '当前已无可进行操作!'
+						,id:'no'
+					}]
+					, align: 'center' //右对齐弹出(v2.6.8 新增)
+					, style: 'box-shadow: 5px 5px 10px rgb(0 0 0 / 12%);' //设置额外样式
+				})
+			}
+
+		});
+	})
+</script>
+<%--<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>--%>
+<script>
+	// 项目报表
+    layui.use('table', function(){
+        layui.table.render({
+            elem: '#contentTable1'
+            ,page: false
+            ,cols: [[
+                // {checkbox: true, fixed: true},
+				{field: 'statementDate',align:'center', title: '时间',rowspan:2}
+				,{field:'officeName',align:'center', title: '部门',rowspan:2}
+				,{field:'field3',align:'center', title: '本${nyr}电子归档',rowspan:2,templet:function(d){
+						if("" != d.statementDate){
+							return "<a class=\"attention-info\" title=\"" + d.field3 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('本${nyr}电子归档', '${ctx}/statement/StatementCompanyComprehensive/projectReportList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&recordState=5','95%', '95%')\">" + d.field3 + "</a>";
+						}else{
+							return "<span title='"+ d.field3 +"'>" +d.field3+ "</span>";
+						}
+					}}
+				,{align:'center', title: '质量复核',colspan: 2}
+				,{align:'center', title: '电子超期未归档',colspan: 2}
+				,{align:'center', title: '纸质归档',colspan:2}
+            ],
+			[
+				{field:'field6',align:'center',title:'未质量复核',templet:function(d){
+						if("" != d.statementDate){
+							return "<a class=\"attention-info\" title=\"" + d.field6 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('未质量复核', '${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&field6=5','95%', '95%')\">" + d.field6 + "</a>";
+						}else{
+							return "<span title='"+ d.field6 +"'>" +d.field6+ "</span>";
+						}
+					}}
+				,{field:'field7',align:'center',title:'超期未质量复核',templet:function(d){
+					if("" != d.statementDate){
+						return "<a class=\"attention-info\" title=\"" + d.field7 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('超期未质量复核', '${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&field7=5','95%', '95%')\">" + d.field7 + "</a>";
+					}else{
+						return "<span title='"+ d.field7 +"'>" +d.field7+ "</span>";
+					}
+				}}
+
+				,{field:'field4',align:'center',title:'超期未归档',templet:function(d){
+						if("" != d.statementDate){
+							return "<a class=\"attention-info\" title=\"" + d.field4 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('超期未归档', '${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&field4=5','95%', '95%')\">" + d.field4 + "</a>";
+						}else{
+							return "<span title='"+ d.field4 +"'>" +d.field4+ "</span>";
+						}
+					}}
+				,{field:'field5',align:'center',title:'超期已归档',templet:function(d){
+					if("" != d.statementDate){
+						return "<a class=\"attention-info\" title=\"" + d.field5 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('超期已归档', '${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&field5=5','95%', '95%')\">" + d.field5 + "</a>";
+					}else{
+						return "<span title='"+ d.field5 +"'>" +d.field5+ "</span>";
+					}
+				}}
+				,{field:'field1',align:'center',title:'A类纸质归档',templet:function(d){
+					if("" != d.statementDate){
+						return "<a class=\"attention-info\" title=\"" + d.field1 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('A类纸质归档', '${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&projectPaperFiling=5','95%', '95%')\">" + d.field1 + "</a>";
+					}else{
+						return "<span title='"+ d.field1 +"'>" +d.field1+ "</span>";
+					}
+				}}
+				,{field:'field2',align:'center',title:'B类批量归档',templet:function(d){
+					if("" != d.statementDate){
+						return "<a class=\"attention-info\" title=\"" + d.field2 + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('B类批量归档', '${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList?bigDateType=" + d.bigDateType +"&smallDateType=" + d.smallDateType +"&officeId="+d.officeId+"&year="+d.year+"&projectFlingBatchRelation=5','95%', '95%')\">" + d.field2 + "</a>";
+					}else{
+						return "<span title='"+ d.field2 +"'>" +d.field2+ "</span>";
+					}
+				}}
+			]]
+            ,data: [
+            		//data下是list集合,一定要这样写,不然无逗号分割会报错
+				<c:forEach items="${reportFormList1}" var="reportFormList" varStatus="index">
+				<c:if test="${index.index != 0}">,</c:if>
+				{
+					"id":"${reportFormList.id}"
+					,"year":"${reportFormList.year}"
+					,"officeId":"${reportFormList.officeId}"
+					,"bigDateType":"${reportFormList.bigDateType}"
+					,"smallDateType":"${reportFormList.smallDateType}"
+					,"statementDate":"${reportFormList.statementDate}"
+					,"officeName":"${reportFormList.officeName}"
+					,"field1":"${reportFormList.field1}"
+					,"field2":"${reportFormList.field2}"
+					,"field3":"${reportFormList.field3}"
+					,"field4":"${reportFormList.field4}"
+					,"field5":"${reportFormList.field5}"
+					,"field6":"${reportFormList.field6}"
+					,"field7":"${reportFormList.field7}"
+					,"field8":"${reportFormList.field8}"
+				}
+				</c:forEach>
+			]
+			,limit: 100
+        });
+    })
+
+
+    resizeListTable();
+    $("a").on("click",addLinkVisied);
+</script>
+<script>
+    resizeListWindow2();
+    $(window).resize(function(){
+        resizeListWindow2();
+    });
+</script>
+</body>
+</html>

+ 671 - 0
src/main/webapp/webpage/modules/statement/projectReportZJList.jsp

@@ -0,0 +1,671 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>开票报表</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
+	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
+	<script type="text/javascript">
+		$(document).ready(function() {
+			layui.use(['dropdown', 'util', 'layer'], function () {
+				var form = layui.form;
+				$.ajax({
+					type : "POST",
+					url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+					//请求成功
+					success : function(result) {
+						var str=jQuery.parseJSON(result);
+						//工程类型树形菜单
+						layui.dropdown.render({
+							elem: '#demo100'
+							,style: 'width: 320px;'
+							,data:str
+							,click: function(item){
+								$("#demo100").val(item.title)
+								$("#demo101").val(item.id)
+							}
+						});
+					}
+				});
+			})
+
+			//搜索框收放
+			$('#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();
+		}
+
+		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) {
+				}
+			});
+		}
+		//打开对话框(查看)
+		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/ruralCostProjectMessage/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 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>
+
+	<script>
+		function notifyDialogres(title,url,deleteUrl,width,height,target) {
+			parent.index = "";
+			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(3)) {
+						top.layer.close(index);//关闭对话框。
+						setTimeout(function () {
+							top.layer.close(index)
+						}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+				},
+				btn2:function(index,layero){
+					top.layer.confirm("项目作废", {icon: 3, title:'系统提示'}, function(index){
+						$.ajax({
+							type:'post',
+							url:deleteUrl,
+							success:function(data){
+								top.layer.closeAll();//关闭所有对话框。
+								if(data.code == 1){
+									top.layer.msg(data.msg, {icon: 1});
+								}else{
+									top.layer.msg(data.msg, {icon: 0});
+								}
+								window.location.reload();
+							}
+						})
+					});
+					return false;
+				},cancel: function(index){
+				}
+			});
+		}
+
+		function notifyDialogre(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,
+				skin:"three-btns",
+				maxmin: true, //开启最大化最小化按钮
+				content: url ,
+				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
+					}
+					return false;
+				},
+				btn3: function(index){
+				}
+			});
+
+		}
+
+
+
+		function btnImport(id){
+			top.layer.open({
+				type: 2,
+				area: ['25%', '50%'],
+				title: "上传文件",
+				content: "${ctx}/ruralProject/ruralCostProjectRecords/importFile?id="+id+"&projectType=2",
+				//  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>
+</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 class="active"><a href="${ctx}/ruralProject/ruralProjectRecords/list">项目登记列表</a></li>
+					<li><a href="${ctx}/ruralProject/ruralProjectRecordsAlter/list">项目变更列表</a></li>
+				</ul>
+			</div>--%>
+
+		</div>
+		<div class="full-width fl">
+			<div class="layui-row contentShadow shadowLR" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="ruralProjectRecords" action="${ctx}/statement/StatementCompanyComprehensive/projectReportDataZJList" 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}"/>
+					<input id="toflag" name="toflag" type="hidden" value="1"/>
+
+					<input id="officeId" name="officeId" type="hidden" value="${officeId}"/>
+					<input id="year" name="year" type="hidden" value="${year}"/>
+					<input id="type" name="type" type="hidden" value="${type}"/>
+					<input id="bigDateType" name="bigDateType" type="hidden" value="${bigDateType}"/>
+					<input id="smallDateType" name="smallDateType" type="hidden" value="${smallDateType}"/>
+					<input id="grade" name="projectPaperFiling" type="hidden" value="${projectPaperFiling}"/>
+					<input id="recordState" name="recordState" type="hidden" value="${recordState}"/>
+					<input id="reportedState" name="projectFlingBatchRelation" type="hidden" value="${projectFlingBatchRelation}"/>
+					<input id="field5" name="field1" type="hidden" value="${field1}"/>
+					<input id="field6" name="field2" type="hidden" value="${field2}"/>
+					<input id="field7" name="field3" type="hidden" value="${field3}"/>
+					<input id="field8" name="field4" type="hidden" value="${field4}"/>
+					<input id="field5" name="field5" type="hidden" value="${field5}"/>
+					<input id="field6" name="field6" type="hidden" value="${field6}"/>
+					<input id="field7" name="field7" type="hidden" value="${field7}"/>
+					<input id="field8" name="field8" type="hidden" value="${field8}"/>
+
+					<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="reportData.number" 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="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>
+								<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>
+									<%--								<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 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 with-icon">--%>
+<%--								<sys:inquireselectUserNotReadolny id="createBy" name="createBy.id" value="${ruralProjectRecords.createBy.id}" labelName="createBy.name" labelValue="${ruralProjectRecords.createBy.name}" 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">
+								<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">--%>
+<%--								<input id="demo100" value="${engineeringInfo.engineeringName}" readonly="true" style="background-color: #fff" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>--%>
+<%--								<form:input id="demo101" path="engineeringType" readonly="true" cssStyle="background-color: #fff;display: none"  htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>--%>
+<%--									&lt;%&ndash;								<button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">&ndash;%&gt;--%>
+<%--									&lt;%&ndash;									<span>${engineeringInfo.engineeringName}</span>&ndash;%&gt;--%>
+<%--									&lt;%&ndash;									<input type="hidden" name="engineeringType" id="engineeringType" value="${engineeringInfo.engineeringName}"/>&ndash;%&gt;--%>
+<%--									&lt;%&ndash;									<i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>&ndash;%&gt;--%>
+<%--									&lt;%&ndash;								</button>&ndash;%&gt;--%>
+<%--							</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 readOnlyFFF">
+								<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 double-line">项目等级:</label>
+							<div class="layui-input-block">
+								<form:select path="submitMoney" class="form-control simple-select">
+									<form:option value="" label=""/>
+									<form:option value="2" label="A级"/>
+									<form:option value="1" label="B级"/>
+									<%--<form:option value="3" label="B级紧急"/>
+									<form:option value="1" label="B级非紧急"/>--%>
+								</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">
+					<div class="layui-btn-group">
+<%--						<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:add">--%>
+<%--							<table:addRow url="${ctx}/ruralProject/ruralCostProjectRecords/form" title="项目"></table:addRow><!-- 增加按钮 -->--%>
+<%--						</shiro:hasPermission>--%>
+<%--						<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:del">--%>
+<%--							&lt;%&ndash;<table:delRow url="${ctx}/project/projectRecords/deleteAll" id="contentTable"></table:delRow><!-- 删除按钮 -->&ndash;%&gt;--%>
+<%--						</shiro:hasPermission>--%>
+<%--						<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:importB">--%>
+<%--							<table:importExcel url="${ctx}/ruralProject/ruralCostProjectRecords/importB"></table:importExcel><!-- 导入按钮 -->--%>
+<%--						</shiro:hasPermission>--%>
+<%--						<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:export">--%>
+<%--							<table:exportExcel url="${ctx}/ruralProject/ruralCostProjectRecords/export"></table:exportExcel><!-- 导出按钮 -->--%>
+<%--						</shiro:hasPermission>--%>
+<%--						<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:exportAll">--%>
+<%--							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="delUser"> 批量下载</button>--%>
+<%--						</shiro:hasPermission>--%>
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</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 src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>--%>
+<script>
+
+	layui.use('table', function(){
+		layui.table.render({
+			limit:${ page.pageSize }
+			,id:"checkboxTable"
+			,elem: '#contentTable1'
+			,page: false
+			,cols: [[
+				{field:'index',align:'center', title: '序号',width:60}
+				,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
+						if(1 == d.showView && d.showView != undefined){
+							return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectView/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
+						}else{
+							return "<span title='"+ d.projName +"'>" +d.projName+ "</span>";
+						}
+					}}
+				,{field:'projId',align:'center', title: '项目编号',  width:150}
+				/*,{field:'projId',align:'center', title: '项目编号',minWidth:150,templet:function(d){
+                        return "<a class=\"attention-info\" title=\"" + d.projId + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralCostProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projId + "</a>";
+                    }}*/
+				,{field: 'clientName', align:'center', title: '报告号',width:170,templet: function(d){
+						if(""!= d.projectReportNumber){
+							<%--return "<a class=\"attention-info pid\" title=\"" + d.projectReportNumber + "\" href=\"javascript:void(0);\" onclick=\"openDialogReportView('查看报告信息', '${ctx}/ruralProject/ruralProjectMessage/modify?projectId=" + d.id + "&view=view&reportedId="+d.id+"','"+ d.id +"','95%', '95%')\">" + d.projectReportNumber + "</a>";--%>
+							return  d.projectReportNumber;
+						}else{
+							return "<span title='暂无报告'  style='color: #009688'>暂无报告</span>";
+						}
+					}}
+				,{field:'contract', align:'center',title: '合同名称',minWidth:200,templet:function(d){
+						if(""!= d.contract){
+							return "<a class=\"attention-info\" title=\""+d.contract+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同管理', '${ctx}/workcontractinfo/workContractInfo/lookForm?id=" + d.conId + "','95%', '95%')\">" + d.contract + "</a>";
+						}else{
+							return "<span title='暂无合同'  style='color: #FF5722'>暂无合同</span>";
+						}
+					}}
+				,{field:'projMaster', align:'center',title: '责任人', width:100,templet:function(d){
+						return "<span title=\"" + d.projMaster + "\">" + d.projMaster + "</span>";
+					}}
+				,{field:'createDate',align:'center', title: '创建日期',  width:80}
+				,{field: 'submitMoneyStr', align:'center', title: '项目等级',width:100,templet: function(d){
+						return "<font style = 'font-size:14px;'>"+d.submitMoneyStr+"</font>";
+					}}
+			]]
+			,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}"
+					,"conId":"${projectRecords.workContractInfo.id}"
+					,"client":"${projectRecords.workContractInfo.client.name}"
+					,"projectReportNumber":"${projectRecords.projectReportNumber}"
+					,"createDate":"<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"
+					,"projectStatus":"${projectRecords.projectStatus}"
+					,"projectReportRecordStatus":"${projectRecords.projectReportRecordStatus}"
+					,"procId":"${projectRecords.processInstanceId}"
+					,"flagAdmin":"${projectRecords.flagAdmin}"
+					,"notifyFlag":"${projectRecords.notifyFlag}"
+					,"notifyId":"${projectRecords.notifyId}"
+					<c:choose><c:when test="${flag == '1' or fns:getUser().id == projectRecords.createBy.id}">
+					<shiro:hasPermission name="ruralProject:ruralCostProjectRecords: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:ruralCostProjectRecords: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>
+					,"modifyRecords":<c:choose><c:when test="${fns:getUser().id == projectRecords.createBy.id && '2' != projectRecords.projectReportStatus && '5' != projectRecords.projectReportStatus && projectRecords.projectStatus == 5}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+					<c:if test="${'1' == projectRecords.flagAdmin}">
+					,"reportDataFlag":<c:choose><c:when test="${'0' == projectRecords.reportDataFlag && projectRecords.projectStatus == 5}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+					</c:if>
+					<c:if test="${'0' == projectRecords.flagAdmin}">
+					,"reportDataFlag":<c:choose><c:when test="${fns:getUser().id == projectRecords.createBy.id && '0' == projectRecords.reportDataFlag && projectRecords.projectStatus == 5}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+					</c:if>
+					</c:when>
+					<c:otherwise>
+					,"candel":"0"
+					,"canedit1":"0"
+					,"canedit2":"0"
+					,"canrecall":"0"
+					,"cancancel":"0"
+					,"deleteAdmin":"0"
+					,"recordStatus":"0"
+					</c:otherwise>
+					</c:choose>
+					,"submitMoneyStr":
+							<c:choose>
+							<c:when test="${'2'==projectRecords.submitMoney}">
+							"A级"
+					</c:when>
+					<c:otherwise>
+					"B级"
+					<%--<c:choose>
+                        <c:when test="${'1'==projectRecords.emergencyProject}">
+                            "B级紧急"
+                        </c:when>
+                        <c:otherwise>
+                            "B级非紧急"
+                        </c:otherwise>
+                    </c:choose>--%>
+					</c:otherwise>
+					</c:choose>
+					<shiro:hasPermission name="ruralProject:ruralCostProjectRecords: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>
+					<shiro:hasPermission name="ruralProject:ruralCostProjectRecords:accessory">
+					,"recordStatus":
+							<c:choose>
+							<c:when test="${0 ==projectRecords.projectReportRecordStatus && projectRecords.projectStatus != 7}">"1"</c:when>
+					<c:otherwise>"0"</c:otherwise>
+					</c:choose>
+					</shiro:hasPermission>
+					<shiro:hasPermission name="ruralProject:ruralProjectView:costView">
+					,"showView":1
+					</shiro:hasPermission>
+				}
+				</c:forEach>
+				</c:if>
+			]
+			// ,even: true
+			// ,height: 315
+		});
+		$("#delUser").bind("click",function () {
+			//获得表格CheckBox已经选中的行的信息
+			var checkList = layui.table.checkStatus('checkboxTable').data;
+			//定义数组存放批量删除的行的id
+			var listId = [];
+			//进行遍历所有选中行数据,拿出每一行的id存储到数组中
+			$.each(checkList, function (i, data) {
+				listId.push(data.id);
+			});
+			if (listId.length <= 0) {
+				layer.msg("请选择需要下载的项目信息", {icon: 2})
+			} else {
+				$("#searchForm").attr("action","${ctx}/ruralProject/ruralProjectRecords/exportAll?listId="+ listId);
+				$("#searchForm").submit();
+				return true;
+			}
+		});
+	})
+
+	resizeListTable();
+	$("a").on("click",addLinkVisied);
+</script>
+<script>
+	resizeListWindow2();
+	$(window).resize(function(){
+		resizeListWindow2();
+	});
+</script>
+</body>
+</html>