浏览代码

1.添加限制,已开票项目(正在走开票流程或已走完开票流程)不能作废
2.批量登记
3.项目管理列表中,归档信息、上报信息导出需添加工程类别字段,放在项目规模字段后面
4.新增质量复核、修改质量复核页面,工作开始时间和工作结束时间填写不生效,应同步到项目计划中等

user5 3 年之前
父节点
当前提交
e1a34a034b
共有 18 个文件被更改,包括 306 次插入28 次删除
  1. 5 0
      src/main/java/com/jeeplus/modules/processProjectPlan/web/ProcessProjectPlanController.java
  2. 1 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/DownloadProjectRecords.java
  3. 1 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/DownloadProjectReporteds.java
  4. 16 6
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java
  5. 12 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  6. 35 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectMessageNewController.java
  7. 36 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java
  8. 34 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageNewController.java
  9. 40 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java
  10. 22 0
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  11. 1 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageAllDao.xml
  12. 2 2
      src/main/webapp/webpage/modules/processProjectPlan/plan/processProjectPlanList.jsp
  13. 18 4
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm.jsp
  14. 18 4
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportModify.jsp
  15. 15 0
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm.jsp
  16. 14 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsForm.jsp
  17. 18 4
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify.jsp
  18. 18 4
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm.jsp

+ 5 - 0
src/main/java/com/jeeplus/modules/processProjectPlan/web/ProcessProjectPlanController.java

@@ -109,6 +109,11 @@ public class ProcessProjectPlanController extends BaseController {
                 }
             }
         }
+        if(UserUtils.getUser().isAdmin()){
+            model.addAttribute("admin", true);
+        }else{
+            model.addAttribute("admin", false);
+        }
         model.addAttribute("page", page);
         return "modules/processProjectPlan/plan/processProjectPlanList";
     }

+ 1 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/DownloadProjectRecords.java

@@ -1033,6 +1033,7 @@ public class DownloadProjectRecords extends ActEntity<DownloadProjectRecords> {
 		this.flagArchive = flagArchive;
 	}
 
+	@ExcelField(title="项目类别", align=2, sort=4,mainDictType = "attachment_project_sort_cost")
 	public String getAttachmentProjectSort() {
 		return attachmentProjectSort;
 	}

+ 1 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/DownloadProjectReporteds.java

@@ -1033,6 +1033,7 @@ public class DownloadProjectReporteds extends ActEntity<DownloadProjectReporteds
 		this.flagArchive = flagArchive;
 	}
 
+	@ExcelField(title="项目类别", align=2, sort=4,mainDictType = "attachment_project_sort_cost")
 	public String getAttachmentProjectSort() {
 		return attachmentProjectSort;
 	}

+ 16 - 6
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java

@@ -28,6 +28,8 @@ import com.jeeplus.modules.projectcontentinfo.entity.*;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
@@ -190,6 +192,8 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
     private UserDao userDao;
     @Autowired
     private ProjectTemplateDao projectTemplateDao;
+    @Autowired
+    private ProjectPlanDao projectPlanDao;
 
     private static byte[] SYN_BYTE = new byte[0];
 
@@ -561,6 +565,18 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
     @Transactional(readOnly = false)
     public String saveData(Projectcontentinfo projectcontentinfo,int type) {
         RuralProjectRecords ruralProjectRecords = projectcontentinfo.getProjectOnRural();
+
+        //修改项目开始时间和结束时间
+        System.out.println(ruralProjectRecords.getStartDate());
+        System.out.println(ruralProjectRecords.getEndingDate());
+        if(null != ruralProjectRecords.getStartDate() && null != ruralProjectRecords.getEndingDate()){
+            ruralProjectRecordsService.updateDate(ruralProjectRecords);
+
+            for (ProjectPlanInfo planInfo: ruralProjectRecords.getProjectPlanList()) {
+                projectPlanDao.update(planInfo);
+            }
+        }
+
         String count = "0";
         String infoId = "";
         Projectcontentinfo s = new Projectcontentinfo();
@@ -665,12 +681,6 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
                     }
                 }
             }
-            //修改项目开始时间和结束时间
-            System.out.println(ruralProjectRecords.getStartDate());
-            System.out.println(ruralProjectRecords.getEndingDate());
-            if(null != ruralProjectRecords.getStartDate() && null != ruralProjectRecords.getEndingDate()){
-                ruralProjectRecordsService.updateDate(ruralProjectRecords);
-            }
 
             count="8";
             infoId = projectReportData.getId();

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

@@ -31,8 +31,11 @@ import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportDataTwo;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
 import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectClientLinkmanDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordsDao;
@@ -88,6 +91,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -167,6 +171,8 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	private AreaService areaService;
 	@Autowired
 	private UserDao userDao;
+	@Autowired
+	private ProjectPlanDao projectPlanDao;
 
 	/**
 	 * 获取咨询项目类别
@@ -568,6 +574,12 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			projectcontentinfo.preInsert();
 			projectcontentinfoDao.insertOnRural(projectcontentinfo);
 		}
+
+		for (ProjectPlanInfo planInfo: projectRecords.getProjectPlanList()) {
+			projectPlanDao.update(planInfo);
+		}
+
+
 		logger.info("保存项目耗时:{}ms;启动流程耗时:{}ms",t4-t1,System.currentTimeMillis()-t4);
 	}
 

+ 35 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectMessageNewController.java

@@ -18,8 +18,10 @@ import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.*;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
+import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
@@ -54,6 +56,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -96,6 +99,8 @@ public class RuralCostProjectMessageNewController extends BaseController {
     private ProjectReportDataDao projectReportDataDao;
     @Autowired
     private UserDao userDao;
+    @Autowired
+    private ProjectPlanService projectPlanService;
 
     private static byte[] SYN_BYTE = new byte[0];
 
@@ -128,7 +133,21 @@ public class RuralCostProjectMessageNewController extends BaseController {
         model.addAttribute("parentIds", projectcontentinfo1.getParentIds());
         String dictType = projectcontentinfo.getDictType();
         RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
-
+        //获取项目计划信息
+        ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+        //将项目id放入项目计划表中
+        projectPlanInfo.setProjectId(records.getId());
+        //获取项目计划信息
+        List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+        if(projectPlanList.size()>0){
+            String startDate = projectPlanList.get(0).getEndDate();
+            String endDate = projectPlanList.get(projectPlanList.size()-1).getBeginDate();
+            model.addAttribute("projectStartDate", startDate);
+            model.addAttribute("projectEndDate", endDate);
+        }else{
+            model.addAttribute("projectStartDate", "");
+            model.addAttribute("projectEndDate", "");
+        }
         projectcontentinfo.setProject(records);
         //根据项目id查询报告信息
         ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(records.getId());
@@ -582,6 +601,21 @@ public class RuralCostProjectMessageNewController extends BaseController {
 //                    return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
 //                }
             }
+            //获取项目计划信息
+            ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+            //将项目id放入项目计划表中
+            projectPlanInfo.setProjectId(projectcontentinfo.getProjectOnRural().getId());
+            //获取项目计划信息
+            List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+            if(projectPlanList.size()>0){
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+                String startDate = formatter.format(projectcontentinfo.getProjectOnRural().getStartDate());
+                String endDate = formatter.format(projectcontentinfo.getProjectOnRural().getEndingDate());
+                projectPlanList.get(0).setBeginDate(startDate);
+                projectPlanList.get(projectPlanList.size()-1).setEndDate(endDate);
+                projectcontentinfo.getProjectOnRural().setProjectPlanList(projectPlanList);
+            }
+
             String str = ruralProjectMessageService.saveData(projectcontentinfo,2);
             addMessage(redirectAttributes, "发起质量复核"+(str.equals("true")?"成功":"失败"));
             ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();

+ 36 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java

@@ -65,6 +65,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.ConstraintViolationException;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -221,6 +222,22 @@ public class RuralCostProjectRecordsController extends BaseController {
 			ProjectEngineeringInfo engineeringInfos=engineeringService.get(projectRecords.getEngineeringType());
 			model.addAttribute("engineeringInfo", engineeringInfos);
 			projectRecords.setCreateReportFlag(false);
+			//获取项目计划信息
+			ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+			//将项目id放入项目计划表中
+			projectPlanInfo.setProjectId(projectRecords.getId());
+			//获取项目计划信息
+			List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+			if(projectPlanList.size()>0){
+				String startDate = projectPlanList.get(0).getEndDate();
+				String endDate = projectPlanList.get(projectPlanList.size()-1).getBeginDate();
+				model.addAttribute("projectStartDate", startDate);
+				model.addAttribute("projectEndDate", endDate);
+			}else{
+				model.addAttribute("projectStartDate", "");
+				model.addAttribute("projectEndDate", "");
+			}
+
             /*//处理所在地信息
             StringBuffer areaName = new StringBuffer();
 			if(StringUtils.isNotBlank(projectRecords.getProvince())){
@@ -239,6 +256,8 @@ public class RuralCostProjectRecordsController extends BaseController {
 			projectRecords.setLeaderIds(UserUtils.getUser().getId());
 			projectRecords.setLeaderNameStr(UserUtils.getUser().getName());
 			projectRecords.setCreateReportFlag(true);
+			model.addAttribute("projectStartDate", "");
+			model.addAttribute("projectEndDate", "");
         }
 
 		model.addAttribute("ruralProjectRecords", projectRecords);
@@ -327,7 +346,23 @@ public class RuralCostProjectRecordsController extends BaseController {
                 RuralProjectRecords t = projectRecordsService.get(projectRecords.getId());//从数据库取出记录的值
 				//if(t.getProjectStatus() == 3 || t.getProjectStatus() == 1) {
 					MyBeanUtils.copyBeanNotNull2Bean(projectRecords, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
-					projectRecordsService.saveProject(t, ProjectStatusEnum.SIGNED);//保存
+
+				//判断是否存在项目计划,存在将计划开始时间和计划结束时间进行修改
+				//获取项目计划信息
+				ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+				//将项目id放入项目计划表中
+				projectPlanInfo.setProjectId(projectRecords.getId());
+				//获取项目计划信息
+				List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+				if(projectPlanList.size()>0){
+					SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+					String startDate = formatter.format(projectRecords.getStartDate());
+					String endDate = formatter.format(projectRecords.getEndingDate());
+					projectPlanList.get(0).setBeginDate(startDate);
+					projectPlanList.get(projectPlanList.size()-1).setEndDate(endDate);
+					t.setProjectPlanList(projectPlanList);
+				}
+				projectRecordsService.saveProject(t, ProjectStatusEnum.SIGNED);//保存
 				/*}else if(t.getProjectStatus() == 2){
 					addMessage(redirectAttributes, "项目已送审,无法重复送审");
 					return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectRecords/?repage";

+ 34 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageNewController.java

@@ -18,8 +18,10 @@ import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.projectcontentinfo.service.*;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
+import com.jeeplus.modules.projectrecord.service.ProjectPlanService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
@@ -57,6 +59,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -107,6 +110,8 @@ public class RuralProjectMessageNewController extends BaseController {
     private ProjectReportDataDao projectReportDataDao;
     @Autowired
     private UserDao userDao;
+    @Autowired
+    private ProjectPlanService projectPlanService;
 
     private static byte[] SYN_BYTE = new byte[0];
 
@@ -140,7 +145,21 @@ public class RuralProjectMessageNewController extends BaseController {
         model.addAttribute("parentIds", projectcontentinfo1.getParentIds());
         String dictType = projectcontentinfo.getDictType();
         RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
-
+        //获取项目计划信息
+        ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+        //将项目id放入项目计划表中
+        projectPlanInfo.setProjectId(records.getId());
+        //获取项目计划信息
+        List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+        if(projectPlanList.size()>0){
+            String startDate = projectPlanList.get(0).getEndDate();
+            String endDate = projectPlanList.get(projectPlanList.size()-1).getBeginDate();
+            model.addAttribute("projectStartDate", startDate);
+            model.addAttribute("projectEndDate", endDate);
+        }else{
+            model.addAttribute("projectStartDate", "");
+            model.addAttribute("projectEndDate", "");
+        }
         projectcontentinfo.setProject(records);
         //根据项目id查询报告信息
         ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(records.getId());
@@ -599,6 +618,20 @@ public class RuralProjectMessageNewController extends BaseController {
 //                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
 //                }
             }
+            //获取项目计划信息
+            ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+            //将项目id放入项目计划表中
+            projectPlanInfo.setProjectId(projectcontentinfo.getProjectOnRural().getId());
+            //获取项目计划信息
+            List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+            if(projectPlanList.size()>0){
+                SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+                String startDate = formatter.format(projectcontentinfo.getProjectOnRural().getStartDate());
+                String endDate = formatter.format(projectcontentinfo.getProjectOnRural().getEndingDate());
+                projectPlanList.get(0).setBeginDate(startDate);
+                projectPlanList.get(projectPlanList.size()-1).setEndDate(endDate);
+                projectcontentinfo.getProjectOnRural().setProjectPlanList(projectPlanList);
+            }
             String str = ruralProjectMessageService.saveData(projectcontentinfo,2);
             if(str.equals("true") || str.equals("false")){
                 addMessage(redirectAttributes, "发起质量复核"+(str.equals("true")?"成功":"失败"));

+ 40 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java

@@ -64,6 +64,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.File;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -218,12 +219,29 @@ public class RuralProjectRecordsController extends BaseController {
 			//查询工程分类
 			ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
 			model.addAttribute("engineeringInfo", engineeringInfo);
+			//获取项目计划信息
+			ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+			//将项目id放入项目计划表中
+			projectPlanInfo.setProjectId(projectRecords.getId());
+			//获取项目计划信息
+			List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+			if(projectPlanList.size()>0){
+				String startDate = projectPlanList.get(0).getEndDate();
+				String endDate = projectPlanList.get(projectPlanList.size()-1).getBeginDate();
+				model.addAttribute("projectStartDate", startDate);
+				model.addAttribute("projectEndDate", endDate);
+			}else{
+				model.addAttribute("projectStartDate", "");
+				model.addAttribute("projectEndDate", "");
+			}
 		}else {
 		    projectRecords.setCreateBy(UserUtils.getUser());
 		    projectRecords.setCreateDate(new Date());
 			projectRecords.setLeaderIds(UserUtils.getUser().getId());
 			projectRecords.setLeaderNameStr(UserUtils.getUser().getName());
 			projectRecords.setCreateReportFlag(true);
+			model.addAttribute("projectStartDate", "");
+			model.addAttribute("projectEndDate", "");
         }
 
 		model.addAttribute("ruralProjectRecords", projectRecords);
@@ -298,6 +316,21 @@ public class RuralProjectRecordsController extends BaseController {
                 RuralProjectRecords t = projectRecordsService.get(projectRecords.getId());//从数据库取出记录的值
 				//if(t.getProjectStatus() == 3 || t.getProjectStatus() == 1) {
 					MyBeanUtils.copyBeanNotNull2Bean(projectRecords, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+					//判断是否存在项目计划,存在将计划开始时间和计划结束时间进行修改
+					//获取项目计划信息
+					ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+					//将项目id放入项目计划表中
+					projectPlanInfo.setProjectId(projectRecords.getId());
+					//获取项目计划信息
+					List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+					if(projectPlanList.size()>0){
+						SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+						String startDate = formatter.format(projectRecords.getStartDate());
+						String endDate = formatter.format(projectRecords.getEndingDate());
+						projectPlanList.get(0).setBeginDate(startDate);
+						projectPlanList.get(projectPlanList.size()-1).setEndDate(endDate);
+						t.setProjectPlanList(projectPlanList);
+					}
 					projectRecordsService.saveProject(t, ProjectStatusEnum.SIGNED);//保存
 				/*}else if(t.getProjectStatus() == 2){
 					addMessage(redirectAttributes, "项目已送审,无法重复送审");
@@ -1160,10 +1193,16 @@ public class RuralProjectRecordsController extends BaseController {
 	@ResponseBody
 	public String engineeringTreeMenu(){
 		LinkedHashSet<EngineeringTree> trees=new LinkedHashSet<>();
+		LinkedHashSet<EngineeringTree> list = new LinkedHashSet<>();
+		EngineeringTree emptyInfo = new EngineeringTree();
+		emptyInfo.setId("");
+		emptyInfo.setTitle("请选择");
 		//查询所有工程分类
 		List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
 		childs(engineeringInfos,trees,"0");
-		JSONArray jsonArray=new JSONArray(trees);
+		list.add(emptyInfo);
+		list.addAll(trees);
+		JSONArray jsonArray=new JSONArray(list);
 		return jsonArray.toString();
 	}
 

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

@@ -3036,6 +3036,28 @@ public class WorkProjectNotifyController extends BaseController {
 					String engineeringId = engineeringService.getEngineeringId("202");
 					ProjectReportData projectReportData = projectReportDataService.getOnRural(workProjectNotify.getNotifyId());
 					RuralProjectRecords ruralProjectRecords=ruralProjectRecordsService.getQueryProjectUsers(projectReportData.getProject().getId());
+
+					if(null != ruralProjectRecords){
+						//获取项目计划信息
+						ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+						//将项目id放入项目计划表中
+						projectPlanInfo.setProjectId(ruralProjectRecords.getId());
+						//获取项目计划信息
+						List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+						if(projectPlanList.size()>0){
+							String startDate = projectPlanList.get(0).getEndDate();
+							String endDate = projectPlanList.get(projectPlanList.size()-1).getBeginDate();
+							model.addAttribute("projectStartDate", startDate);
+							model.addAttribute("projectEndDate", endDate);
+						}else{
+							model.addAttribute("projectStartDate", "");
+							model.addAttribute("projectEndDate", "");
+						}
+					}else{
+						model.addAttribute("projectStartDate", "");
+						model.addAttribute("projectEndDate", "");
+					}
+
 					if(StringUtils.isBlank(ruralProjectRecords.getProjectMasterId())){
 						ruralProjectRecords.setProjectMasterId(projectReportData.getPrincipal().getId());
 						ruralProjectRecords.setProjectMasterName(projectReportData.getPrincipal().getName());

+ 1 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageAllDao.xml

@@ -85,6 +85,7 @@
 		a.building_scale AS "buildingScale",
 		a.measuring_unit AS "measuringUnit",
 		a.project_use AS "projectUse",
+		a.attachment_project_sort AS "attachmentProjectSort",
 		a.install_fees AS "installFees",
 		a.building_fees AS "buildingFees",
 		a.building_percent AS "buildingPercent",

+ 2 - 2
src/main/webapp/webpage/modules/processProjectPlan/plan/processProjectPlanList.jsp

@@ -287,7 +287,7 @@
 					,"projectStatus":"${projectRecords.projectStatus}"
 					,"procId":"${projectRecords.processInstanceId}"
 					<shiro:hasPermission name="processProject:processProjectPlan:edit">
-						,"canedit3":<c:choose><c:when test="${projectRecords.projectStatus == 5 && (fns:getUser().id == projectRecords.leaderIds || fns:getUser().id eq projectRecords.createBy.id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
+						,"canedit3":<c:choose><c:when test="${projectRecords.projectStatus == 5 && (fns:getUser().id == projectRecords.leaderIds || fns:getUser().id eq projectRecords.createBy.id || admin)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
 						,"canedit4":<c:choose><c:when test="${projectRecords.projectStatus == 5 && (fns:getUser().id == projectRecords.leaderIds || fns:getUser().id eq projectRecords.createBy.id)}">"1"</c:when><c:otherwise>"0"</c:otherwise></c:choose>
 					</shiro:hasPermission>
 				}
@@ -309,4 +309,4 @@
 	});
 </script>
 </body>
-</html>
+</html>

+ 18 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm.jsp

@@ -42,6 +42,8 @@
 						var leng1 = $("#reportedConsultantList tr").length;
 						var startDate = new Date($("#startDate").val());
 						var endingDate = new Date($("#endingDate").val());
+						var projectStartDate = new Date('${projectStartDate}');
+						var projectEndDate = new Date('${projectEndDate}');
 						var bzshbUserId = $("#bzshbUserId").val();
 						if(bzshbUserId == undefined || bzshbUserId ==null || bzshbUserId ==''){
 							parent.layer.msg("请选择审核人员!", {icon: 5});
@@ -51,6 +53,18 @@
 							parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
 							return false;
 						}
+						if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+							if(startDate.getTime() > projectStartDate.getTime()){
+								parent.layer.msg("工作结束日期不得大于工作计划最早结束时间!", {icon: 5});
+								return false;
+							}
+						}
+						if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+							if(endingDate.getTime() < projectEndDate.getTime()){
+								parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+								return false;
+							}
+						}
 						var ziXunShouRu = $("#ziXunShouRu").val();
 						if(null == ziXunShouRu || undefined == ziXunShouRu || '' == ziXunShouRu || parseFloat(ziXunShouRu)<=0){
 							top.layer.msg("造价咨询营业收入必须大于0!", {icon: 0});
@@ -1071,15 +1085,15 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw7">
-					<label class="layui-form-label">工作开始日期:</label>
+					<label class="layui-form-label"><span class="require-item">*</span>工作开始日期:</label>
 					<div class="layui-input-block">
-						<input placeholder="请输入开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+						<input placeholder="请输入开始日期" style="background-color: #fff" class="laydate-icondate form-control judgment layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw7">
-					<label class="layui-form-label">工作结束日期:</label>
+					<label class="layui-form-label"><span class="require-item">*</span>工作结束日期:</label>
 					<div class="layui-input-block">
-						<input placeholder="请输入结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+						<input placeholder="请输入结束日期" style="background-color: #fff" class="laydate-icondate form-control judgment layui-input layer-date laydate-icon" readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw7">

+ 18 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportModify.jsp

@@ -39,11 +39,25 @@
 				var boolFlag = true;
 				var startDate = new Date($("#startDate").val());
 				var endingDate = new Date($("#endingDate").val());
+				var projectStartDate = new Date('${projectStartDate}');
+				var projectEndDate = new Date('${projectEndDate}');
 
 				if(startDate.getTime() > endingDate.getTime()){
 					parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
 					return false;
 				}
+				if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+					if(startDate.getTime() > projectStartDate.getTime()){
+						parent.layer.msg("工作结束日期不得大于工作计划最早结束时间!", {icon: 5});
+						return false;
+					}
+				}
+				if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+					if(endingDate.getTime() < projectEndDate.getTime()){
+						parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+						return false;
+					}
+				}
 				var ziXunShouRu = $("#ziXunShouRu").val();
 				if(null == ziXunShouRu || undefined == ziXunShouRu || '' == ziXunShouRu || parseFloat(ziXunShouRu)<=0){
 					top.layer.msg("造价咨询营业收入必须大于0!", {icon: 0});
@@ -935,15 +949,15 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw7">
-					<label class="layui-form-label">工作开始日期:</label>
+					<label class="layui-form-label"><span class="require-item">*</span>工作开始日期:</label>
 					<div class="layui-input-block">
-						<input placeholder="请输入开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+						<input placeholder="请输入开始日期" style="background-color: #fff" class="laydate-icondate form-control required layui-input laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw7">
-					<label class="layui-form-label">工作结束日期:</label>
+					<label class="layui-form-label"><span class="require-item">*</span>工作结束日期:</label>
 					<div class="layui-input-block">
-						<input placeholder="请输入结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input laydate-icon " readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+						<input placeholder="请输入结束日期" style="background-color: #fff" class="laydate-icondate form-control required layui-input laydate-icon " readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw7">

+ 15 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm.jsp

@@ -58,10 +58,25 @@
                 var startDate = new Date($("#startDate").val());
                 var endingDate = new Date($("#endingDate").val());
 
+                var projectStartDate = new Date('${projectStartDate}');
+                var projectEndDate = new Date('${projectEndDate}');
+
                 if(startDate.getTime() > endingDate.getTime()){
                     parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
                     return false;
                 }
+                if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+                    if(startDate.getTime() > projectStartDate.getTime()){
+                        parent.layer.msg("工作开始日期不得大于工作计划最早结束时间!", {icon: 5});
+                        return false;
+                    }
+                }
+                if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+                    if(endingDate.getTime() < projectEndDate.getTime()){
+                        parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+                        return false;
+                    }
+                }
                 if(i==2){
                     $("#inputForm").attr("action","${ctx}/ruralProject/ruralCostProjectRecords/tstore");
                 }else{

+ 14 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsForm.jsp

@@ -54,6 +54,8 @@
 
                 var startDate = new Date($("#startDate").val());
                 var endingDate = new Date($("#endingDate").val());
+                var projectStartDate = new Date('${projectStartDate}');
+                var projectEndDate = new Date('${projectEndDate}');
                 if(startDate.getTime() > endingDate.getTime()){
                     parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
                     return false;
@@ -73,6 +75,18 @@
                     parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
                     return false;
                 }
+                if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+                    if(startDate.getTime() > projectStartDate.getTime()){
+                        parent.layer.msg("工作开始日期不得大于工作计划最早结束时间!", {icon: 5});
+                        return false;
+                    }
+                }
+                if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+                    if(endingDate.getTime() < projectEndDate.getTime()){
+                        parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+                        return false;
+                    }
+                }
 
                 if(i==2){
                     $("#inputForm").attr("action","${ctx}/ruralProject/ruralProjectRecords/tstore");

+ 18 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify.jsp

@@ -32,11 +32,25 @@
                 var boolFlag = true;
                 var startDate = new Date($("#startDate").val());
                 var endingDate = new Date($("#endingDate").val());
+                var projectStartDate = new Date('${projectStartDate}');
+                var projectEndDate = new Date('${projectEndDate}');
 
                 if(startDate.getTime() > endingDate.getTime()){
                     parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
                     return false;
                 }
+                if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+                    if(startDate.getTime() > projectStartDate.getTime()){
+                        parent.layer.msg("工作结束日期不得大于工作计划最早结束时间!", {icon: 5});
+                        return false;
+                    }
+                }
+                if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+                    if(endingDate.getTime() < projectEndDate.getTime()){
+                        parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+                        return false;
+                    }
+                }
                 var ziXunShouRu = $("#ziXunShouRu").val();
                 if(null == ziXunShouRu || undefined == ziXunShouRu || '' == ziXunShouRu || parseFloat(ziXunShouRu)<=0){
                     top.layer.msg("造价咨询营业收入必须大于0!", {icon: 0});
@@ -668,15 +682,15 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
-                    <label class="layui-form-label">工作开始日期:</label>
+                    <label class="layui-form-label"><span class="require-item">*</span>工作开始日期:</label>
                     <div class="layui-input-block">
-                        <input placeholder="请输入开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+                        <input placeholder="请输入开始日期" style="background-color: #fff" class="laydate-icondate form-control required layui-input laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
-                    <label class="layui-form-label">工作结束日期:</label>
+                    <label class="layui-form-label"><span class="require-item">*</span>工作结束日期:</label>
                     <div class="layui-input-block">
-                        <input placeholder="请输入结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input laydate-icon" readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+                        <input placeholder="请输入结束日期" style="background-color: #fff" class="laydate-icondate form-control required layui-input laydate-icon" readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">

+ 18 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm.jsp

@@ -29,6 +29,8 @@
 						var leng1 = $("#reportedConsultantList tr").length;
 						var startDate = new Date($("#startDate").val());
 						var endingDate = new Date($("#endingDate").val());
+						var projectStartDate = new Date('${projectStartDate}');
+						var projectEndDate = new Date('${projectEndDate}');
 						var bzshbUserId = $("#bzshbUserId").val();
 						if(bzshbUserId == undefined || bzshbUserId ==null || bzshbUserId ==''){
 							parent.layer.msg("请选择审核人员!", {icon: 5});
@@ -43,6 +45,18 @@
 							parent.layer.msg("工作开始日期不得大于工作结束日期!", {icon: 5});
 							return false;
 						}
+						if(null != projectStartDate && undefined != projectStartDate && '' != projectStartDate){
+							if(startDate.getTime() > projectStartDate.getTime()){
+								parent.layer.msg("工作开始日期不得大于工作计划最早结束时间!", {icon: 5});
+								return false;
+							}
+						}
+						if(null != projectEndDate && undefined != projectEndDate && '' != projectEndDate){
+							if(endingDate.getTime() < projectEndDate.getTime()){
+								parent.layer.msg("工作结束日期不得小于工作计划最晚开始时间!", {icon: 5});
+								return false;
+							}
+						}
 						if (leng1<=1){
 							top.layer.msg("请添加咨询员信息!", {icon: 0});
 							return false;
@@ -1000,15 +1014,15 @@
 						</div>
 					</div>
 					<div class="layui-item layui-col-sm6 lw7">
-						<label class="layui-form-label">工作开始日期:</label>
+						<label class="layui-form-label"><span class="require-item">*</span>工作开始日期:</label>
 						<div class="layui-input-block">
-							<input placeholder="请选择开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+							<input placeholder="请选择开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input judgment layer-date laydate-icon" readonly="readonly" id="startDate" name="projectOnRural.startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
 						</div>
 					</div>
 					<div class="layui-item layui-col-sm6 lw7">
-						<label class="layui-form-label">工作结束日期:</label>
+						<label class="layui-form-label"><span class="require-item">*</span>工作结束日期:</label>
 						<div class="layui-input-block">
-							<input placeholder="请选择结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon " readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+							<input placeholder="请选择结束日期" style="background-color: #fff" class="laydate-icondate form-control layui-input judgment layer-date laydate-icon " readonly="readonly" id="endingDate" name="projectOnRural.endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
 						</div>
 					</div>
 					<div class="layui-item layui-col-sm6 lw7">