user5 пре 4 година
родитељ
комит
0a01132dfa
14 измењених фајлова са 11251 додато и 17 уклоњено
  1. 27 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectRecordTreeData.java
  2. 35 8
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java
  3. 1750 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java
  4. 27 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java
  5. 661 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectMessageNewController.java
  6. 664 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageNewController.java
  7. 133 0
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  8. 1881 0
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm.jsp
  9. 1800 0
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportModify.jsp
  10. 13 4
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageLists.jsp
  11. 1113 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageAudit.jsp
  12. 1303 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify.jsp
  13. 1832 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm.jsp
  14. 12 4
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/ruralProjectMessageLists.jsp

+ 27 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectRecordTreeData.java

@@ -71,6 +71,9 @@ public class ProjectRecordTreeData extends DataEntity<ProjectRecordTreeData> {
     private String recordNotifyId; //归档代办判定条件
     private Integer reportedNotifyFlag; //上报代办判定条件
     private String reportedNotifyId; //上报代办判定条件
+    private Integer newReportNotifyFlag; //新新增报告判定条件
+    private String newReportNotifyId; //新新增报告判定条件
+    private Integer newReportAuditNotifyFlag; //新新增报告(审批)判定条件
 
 
 
@@ -545,4 +548,28 @@ public class ProjectRecordTreeData extends DataEntity<ProjectRecordTreeData> {
     public void setReportedNotifyId(String reportedNotifyId) {
         this.reportedNotifyId = reportedNotifyId;
     }
+
+    public Integer getNewReportNotifyFlag() {
+        return newReportNotifyFlag;
+    }
+
+    public void setNewReportNotifyFlag(Integer newReportNotifyFlag) {
+        this.newReportNotifyFlag = newReportNotifyFlag;
+    }
+
+    public String getNewReportNotifyId() {
+        return newReportNotifyId;
+    }
+
+    public void setNewReportNotifyId(String newReportNotifyId) {
+        this.newReportNotifyId = newReportNotifyId;
+    }
+
+    public Integer getNewReportAuditNotifyFlag() {
+        return newReportAuditNotifyFlag;
+    }
+
+    public void setNewReportAuditNotifyFlag(Integer newReportAuditNotifyFlag) {
+        this.newReportAuditNotifyFlag = newReportAuditNotifyFlag;
+    }
 }

+ 35 - 8
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java

@@ -174,6 +174,9 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private Integer checkNotifyFlag; //选查代办判定条件
 	private String checkNotifyId; //选查代办判定条件
 	private String actType; //流程节点
+	private Integer newReportNotifyFlag; //新新增报告判定条件
+	private Integer newReportAuditNotifyFlag; //新新增报告(审批)判定条件
+	private String newReportNotifyId; //新新增报告判定条件
 
 	private String projectMasterName;	//项目负责人名称
 	private String projectMasterId;		//项目负责人id
@@ -284,7 +287,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setWorkContractInfo(WorkContractInfo contract) {
 		this.workContractInfo = contract;
 	}
-	
+
 	@ExcelField(title="项目编号", align=2, sort=1)
 	public String getProjectId() {
 		return projectId;
@@ -293,7 +296,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setProjectId(String projectId) {
 		this.projectId = projectId;
 	}
-	
+
 	@ExcelField(title="项目名称", align=2, sort=2)
 	public String getProjectName() {
 		return projectName;
@@ -302,7 +305,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setProjectName(String projectName) {
 		this.projectName = projectName;
 	}
-	
+
 	@ExcelField(title="规模类型", align=2, sort=9)
 	public String getScaleType() {
 		return scaleType;
@@ -311,7 +314,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setScaleType(String scaleType) {
 		this.scaleType = scaleType;
 	}
-	
+
 	@ExcelField(title="规模单位", align=2, sort=10)
 	public String getScaleUnit() {
 		return scaleUnit;
@@ -320,7 +323,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setScaleUnit(String scaleUnit) {
 		this.scaleUnit = scaleUnit;
 	}
-	
+
 	@ExcelField(title="规模数量", align=2, sort=11)
 	public Double getScaleQuantity() {
 		return scaleQuantity;
@@ -329,7 +332,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setScaleQuantity(Double scaleQuantity) {
 		this.scaleQuantity = scaleQuantity;
 	}
-	
+
 	@ExcelField(title="项目所在地", align=2, sort=12)
 	public Area getArea() {
 		return area;
@@ -338,7 +341,7 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setArea(Area area) {
 		this.area = area;
 	}
-	
+
 	@ExcelField(title="建设地点", align=2, sort=13)
 	public String getProjectSite() {
 		return projectSite;
@@ -1278,4 +1281,28 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setSubmitMoney(String submitMoney) {
 		this.submitMoney = submitMoney;
 	}
-}
+
+	public Integer getNewReportNotifyFlag() {
+		return newReportNotifyFlag;
+	}
+
+	public void setNewReportNotifyFlag(Integer newReportNotifyFlag) {
+		this.newReportNotifyFlag = newReportNotifyFlag;
+	}
+
+	public String getNewReportNotifyId() {
+		return newReportNotifyId;
+	}
+
+	public void setNewReportNotifyId(String newReportNotifyId) {
+		this.newReportNotifyId = newReportNotifyId;
+	}
+
+	public Integer getNewReportAuditNotifyFlag() {
+		return newReportAuditNotifyFlag;
+	}
+
+	public void setNewReportAuditNotifyFlag(Integer newReportAuditNotifyFlag) {
+		this.newReportAuditNotifyFlag = newReportAuditNotifyFlag;
+	}
+}

Разлика између датотеке није приказан због своје велике величине
+ 1750 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java


+ 27 - 1
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java

@@ -286,6 +286,11 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         //查询所有需要当前登录人进行处理的项目信息
         List<WorkProjectNotify> reportedNotifyList = workProjectNotifyService.findList(workProjectNotify);
 
+        //查询新的新增报告流程信息代办
+        workProjectNotify.setType("96");
+        //查询所有需要当前登录人进行处理的项目信息
+        List<WorkProjectNotify> newReportNotifyList = workProjectNotifyService.findList(workProjectNotify);
+
         //无合同状态下,获取委托方的名称
         List<RuralProjectRecords> list = page.getList();
         List<ProjectRecordTreeData> projectRecordTreeDataList = new ArrayList<>();
@@ -323,6 +328,19 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
                     break;
                 }
             }
+            //新代办修改权限处理
+            for (WorkProjectNotify notify: newReportNotifyList) {
+                if(notify.getNotifyId().equals(records1.getPrdId())){
+                    records1.setReportNotifyId(notify.getId());
+                    if("重新申请".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+                        records1.setNewReportNotifyFlag(1);
+                    }
+                    if("待审批".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+                        records1.setNewReportAuditNotifyFlag(1);
+                    }
+                    break;
+                }
+            }
             if (records1.getWorkContractInfo() == null) {
                 this.queryLinkmanInfos(records1);
                 if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
@@ -478,6 +496,9 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         projectRecordTreeData.setRecordNotifyId(info.getRecordNotifyId());
         projectRecordTreeData.setReportedNotifyFlag(info.getReportedNotifyFlag());
         projectRecordTreeData.setReportedNotifyId(info.getReportedNotifyId());
+        projectRecordTreeData.setNewReportNotifyFlag(info.getNewReportNotifyFlag());
+        projectRecordTreeData.setNewReportAuditNotifyFlag(info.getNewReportAuditNotifyFlag());
+        projectRecordTreeData.setNewReportNotifyId(info.getReportNotifyId());
 
         return projectRecordTreeData;
     }
@@ -823,7 +844,12 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         List<Activity> activitieList = activityService.getByProcessInstanceId(projectReportData.getProcessInstanceId());
         WorkActivityMenu workActivityMenu = new WorkActivityMenu();
         if (activitieList != null && activitieList.size() != 0) {
-            workActivityMenu.setProcessType(activitieList.get(0).getProcessKey());
+            //判断上面act流程的流程图key是不是空  不是空则使用该流程图key信息
+            if(StringUtils.isNotBlank(act.getProcDefKey())){
+                workActivityMenu.setProcessType(act.getProcDefKey());
+            }else{
+                workActivityMenu.setProcessType(activitieList.get(0).getProcessKey());
+            }
             workActivityMenu.setActivities(activitieList);
         }
 

+ 661 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectMessageNewController.java

@@ -0,0 +1,661 @@
+package com.jeeplus.modules.ruralprojectrecords.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportChangeService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.UserService;
+import com.jeeplus.modules.sys.utils.DictUtils;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 造价审核项目列表Controller
+ * @author 徐滕
+ * @version 2020-04-15
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/ruralProject/ruralCostProjectMessageNew")
+public class RuralCostProjectMessageNewController extends BaseController {
+    @Autowired
+    private RuralProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectRecordsService projectRecordsServices;
+    @Autowired
+    private RuralProjectMessageNewService ruralProjectMessageService;
+    @Autowired
+    private ProjectReportDataService projectReportDataService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectReportChangeService projectReportChangeService;
+    @Autowired
+    protected HistoryService historyService;
+    @Autowired
+    private ActTaskService actTaskService;
+    @Autowired
+    private ProjectTemplateService projectTemplateService;
+    @Autowired
+    private UserService userService;
+
+    @ModelAttribute
+    public RuralProjectRecords get(@RequestParam(required=false) String id) {
+        RuralProjectRecords entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectRecordsService.get(id);
+        }
+        if (entity == null){
+            entity = new RuralProjectRecords();
+        }
+        return entity;
+    }
+
+    /**
+     * 跳转新增报告页面
+     * @param projectcontentinfo
+     * @param request
+     * @param response
+     * @param model
+     * @param attr
+     * @return
+     */
+    @RequestMapping(value = {"form"})
+    public String form(RuralProjectcontentinfo projectcontentinfo,Double reviewFee, HttpServletRequest request, HttpServletResponse response, Model model, RedirectAttributes attr) {
+        Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
+        model.addAttribute("parentIds", projectcontentinfo1.getParentIds());
+        String dictType = projectcontentinfo.getDictType();
+        RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
+
+        projectcontentinfo.setProject(records);
+        ProjectReportData projectReportData = new ProjectReportData();
+        projectReportData.setType(dictType);
+        if (StringUtils.isNotBlank(projectcontentinfo1.getInfoId())){
+            projectReportData = projectReportDataService.get(projectcontentinfo1.getInfoId());
+        }else if (projectcontentinfo.getProjectReportData()!=null && StringUtils.isNotBlank(projectcontentinfo.getProjectReportData().getId())) {
+            projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+        }else {
+            projectReportData.setNumber("");
+        }
+        if (projectReportData.getMaster()==null || StringUtils.isBlank(projectReportData.getMaster().getId())){
+            projectReportData.setMaster(UserUtils.getUser());
+        }
+        if (StringUtils.isBlank(projectReportData.getStatus())){
+            projectReportData.setFileStatus("1");
+        }
+        if(null != reviewFee){
+            projectReportData.setReviewFee(reviewFee);
+        }
+        projectcontentinfo.setProjectReportData(projectReportData);
+
+        ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+        //添加项目类型
+        relateInfo.setAttachmentProjectType(records.getProjectType());
+        relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
+        //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+        String money=projectcontentinfo.getProject().getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+
+        //添加报告类型
+        relateInfo.setRequiredStage(1);
+        relateInfo.setId(records.getId());
+        //查询报告文件、依据性文件、其他文件必填列表以及数据
+        List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+        for (MainDictDetail mainDict : mainDictDetails) {
+            relateInfo.setAttachType(mainDict.getValue());
+            switch (mainDict.getValue()) {
+                case "11":
+                    projectcontentinfo.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "12":
+                    projectcontentinfo.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "13":
+                    projectcontentinfo.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+            }
+
+        }
+
+        //查询总审人员信息
+        List<User> auditUserList = userService.getAuditUserList();
+        records.setBzshbUserList(auditUserList);
+        if(null == projectcontentinfo.getProjectReportData().getConsultant()){
+            projectcontentinfo.getProjectReportData().setConsultant(UserUtils.getUser());
+        }
+        if(null == projectcontentinfo.getProjectReportData().getPrincipal()){
+            projectcontentinfo.getProjectReportData().setPrincipal(UserUtils.getUser());
+        }
+        //添加当前文件服务器类型
+        projectcontentinfo.setUploadMode(uploadMode);
+        model.addAttribute("projectRecords", records);
+        model.addAttribute("projectcontentinfo", projectcontentinfo);
+        model.addAttribute("projectReportData", projectcontentinfo.getProjectReportData());
+        if (projectReportData != null && projectReportData.getCreateBy() != null && StringUtils.isNotBlank(projectReportData.getCreateBy().getId()) && projectReportData.getCreateBy().getId().equals(UserUtils.getUser().getId())) {
+            return "modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm";
+        } else if (projectReportData == null || StringUtils.isBlank(projectReportData.getId())) {
+            return "modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm";
+        } else {
+            return "modules/ruralprojectrecords/cost/projectcontentinfo/reportView";
+        }
+    }
+
+    /**
+     * 编辑项目表单页面
+     */
+    @RequiresPermissions(value={"ruralProject:ruralCostProjectMessage:edit"},logical= Logical.OR)
+    @RequestMapping(value = "modify")
+    public String modify(RuralProjectcontentinfo projectcontentinfo,Integer status, Model model, RedirectAttributes redirectAttributes) {
+        Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
+        ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
+        projectReportData = projectReportDataService.get(projectReportData.getId());
+        RuralProjectRecords ruralProjectRecords = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
+        // 将项目负责人替换为项目中的负责人
+        if(StringUtils.isNotBlank(ruralProjectRecords.getProjectMasterId())){
+            User user = UserUtils.get(ruralProjectRecords.getProjectMasterId());
+            projectReportData.setPrincipal(user);
+        }
+        Projectcontentinfo projectcontent = projectcontentinfoService.getByInfoId(projectReportData.getId());
+        projectcontent.setProjectReportData(projectReportData);
+        //根据项目id查找报告咨询员信息
+        List<RuralReportConsultant> consultants = ruralProjectMessageService.getConsultantsList(projectcontentinfo.getProjectId());
+        for (RuralReportConsultant consultant:consultants){
+            //根据用户查询技能信息
+            List<WorkStaffCertificate> certificateList = ruralProjectMessageService.getCertificateByUser(consultant.getZixunyuan());
+            //获取专业类型
+            List<MainDictDetail> certificateMajor = DictUtils.getMainDictList("certificate_major");
+            for (WorkStaffCertificate certificateInfo: certificateList) {
+                if(certificateInfo.getName().equals(consultant.getZhucezigezhKey())){
+                    consultant.setZhucezigezhID(certificateInfo.getNum());
+                }
+                for (MainDictDetail type : certificateMajor) {
+                    if(certificateInfo.getMajor().equals(type.getValue())){
+                        consultant.setMajor(type.getLabel());
+                    }
+                }
+            }
+            User user=userService.get(consultant.getZixunyuan());
+            consultant.setZixunyuanName(user.getName());
+        }
+        ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+        //添加项目类型
+        relateInfo.setAttachmentProjectType(ruralProjectRecords.getProjectType());
+        relateInfo.setAttachmentProjectSort(ruralProjectRecords.getAttachmentProjectSort());
+        //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+
+        //添加报告类型
+        relateInfo.setRequiredStage(1);
+        relateInfo.setId(ruralProjectRecords.getId());
+        //查询报告文件、依据性文件、其他文件必填列表以及数据
+        List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+        for (MainDictDetail mainDict : mainDictDetails) {
+            relateInfo.setAttachType(mainDict.getValue());
+            switch (mainDict.getValue()) {
+                case "11":
+                    projectcontent.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "12":
+                    projectcontent.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "13":
+                    projectcontent.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+            }
+
+        }
+
+        //添加当前文件服务器类型
+        projectcontent.setUploadMode(uploadMode);
+        //查询总审人员信息
+        List<User> auditUserList = userService.getAuditUserList();
+        ruralProjectRecords.setBzshbUserList(auditUserList);
+        model.addAttribute("processInstanceId",projectReportData.getProcessInstanceId());
+        model.addAttribute("projectReportData",projectReportData);
+        model.addAttribute("projectId", projectcontentinfo1.getProject().getId());
+        model.addAttribute("project", projectcontentinfo1.getProject());
+        model.addAttribute("reportedId", projectcontentinfo.getReportedId());
+        model.addAttribute("projectRecords", ruralProjectRecords);
+        model.addAttribute("id", projectcontentinfo.getId());
+        model.addAttribute("projectcontentinfo", projectcontent);
+        model.addAttribute("info", consultants);
+        //获取是否含有上报信息
+        RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReportedById(projectcontentinfo.getReportedId());
+        if(null != reported){
+            model.addAttribute("reportedView", 1);
+        }
+
+        if (StringUtils.isNotBlank(projectcontentinfo.getView()) && projectcontentinfo.getView().contains("view")) {
+            List<MainDictDetail> achievementTypes = DictUtils.getMainDictList("achievement_type");
+            if(null != achievementTypes){
+                for (MainDictDetail achievementType:achievementTypes) {
+                    if(achievementType.getValue().equals(projectReportData.getAchievementType())){
+                        projectReportData.setAchievementType(achievementType.getLabel());
+                        break;
+                    }
+                }
+            }
+            return "modules/ruralprojectrecords/cost/projectcontentinfo/reportView";
+        }
+        if (StringUtils.isNotBlank(projectcontentinfo.getView()) && projectcontentinfo.getView().contains("report")) {
+            if(StringUtils.isNotBlank(projectReportData.getProcessInstanceId())){
+                Act act = getByAct(projectReportData.getProcessInstanceId());
+                projectReportData.setAct(act);
+            }
+            return "modules/ruralprojectrecords/cost/projectcontentinfo/new/reportModify";
+        }
+        return "modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm";
+    }
+
+    /**
+     * 新增报告信息
+     * @param projectcontentinfo
+     * @param model
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = {"saveReport"})
+    public String saveReport(Projectcontentinfo projectcontentinfo, Model model,RedirectAttributes redirectAttributes)  {
+        try{
+            Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProject().getId());
+            ProjectReportData reportData = projectReportDataService.get(projectcontentinfo1.getInfoId());
+            //将审核人员id放入报告信息中
+            if(StringUtils.isBlank(projectcontentinfo.getProjectReportData().getBzshbUserId()) && StringUtils.isBlank(reportData.getBzshbUserId())){
+                addMessage(redirectAttributes, "审核人员未选择,请重新发起请求");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }
+            if(null != reportData){
+                if(StringUtils.isBlank(projectcontentinfo.getProjectReportData().getBzshbUserId())){
+                    projectcontentinfo.getProjectReportData().setBzshbUserId(reportData.getBzshbUserId());
+                }
+                if(reportData.getStatus().equals("2")){
+                    addMessage(redirectAttributes, "报告已送审,请勿重复提交");
+                    return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+                } else if(reportData.getStatus().equals("5")){
+                    addMessage(redirectAttributes, "报告已审核完毕,请勿再次送审");
+                    return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+                }
+            }
+            String str = ruralProjectMessageService.saveData(projectcontentinfo,2);
+            addMessage(redirectAttributes, "发起报告审批"+(str.equals("true")?"成功":"失败"));
+            ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
+            if (projectReportData!=null){
+                if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+                }
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+            }
+        }catch (Exception e){
+            logger.error("ProjectcontentinfoController save Exception e"+e);
+        }
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        addMessage(redirectAttributes, "发起报告审批失败");
+        ProjectRecords projectRecords = projectcontentinfo.getProject()==null?new ProjectRecords():projectcontentinfo.getProject();
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+    }
+
+
+
+    /**
+     * 暂存报告信息
+     * @param projectcontentinfo
+     * @param model
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = {"holdSaveReport"})
+    public String holdSaveReport(Projectcontentinfo projectcontentinfo, Model model,RedirectAttributes redirectAttributes) throws Exception {
+        //try{
+            String str = ruralProjectMessageService.saveData(projectcontentinfo,1);
+            addMessage(redirectAttributes, "暂存报告"+(str.equals("true")?"成功":"失败"));
+            ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
+            if (projectReportData!=null){
+                if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+                }
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+            }
+        /*}catch (Exception e){
+            logger.error("ProjectcontentinfoController save Exception e"+e);
+        }*/
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        addMessage(redirectAttributes, "暂存报告失败");
+        ProjectRecords projectRecords = projectcontentinfo.getProject()==null?new ProjectRecords():projectcontentinfo.getProject();
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+    }
+
+    /**
+     * 删除报告信息
+     * @param projectcontentinfo
+     * @param status
+     * @param model
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = "deleteReport")
+    public String deleteReport(RuralProjectcontentinfo projectcontentinfo,Integer status, Model model, RedirectAttributes redirectAttributes) {
+        Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
+        ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
+        //获取项目信息
+        RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
+        //判断项目类别是否为打包项目(1:打包项目,0:非打包项目)
+        //Integer projectSort = projectAccessoryRelationService.decideAttachmentProjectSort(records.getAttachmentProjectSort());
+        List<ProjectTemplateInfo> attachmentList = Lists.newArrayList();
+        /*Boolean flag = false;
+        //如果是打包项目或者报告送审价不为null则可进行查询附件类型
+        if(1 == projectSort || null != projectReportData.getReviewFee()){
+            flag = true;
+        }
+        if(flag) {*/
+            //查询报告文件、依据性文件、其他文件必填列表以及数据
+            List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+            ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+            //添加项目类型
+            relateInfo.setAttachmentProjectType(records.getProjectType());
+            relateInfo.setRequiredStage(1);
+            relateInfo.setId(records.getId());
+            relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
+            //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+            //if(0 == projectSort){
+                //查看送审金额是否为500w以上金额
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=records.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+            /*}else{
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+            }*/
+            for (MainDictDetail mainDict : mainDictDetails) {
+                //添加报告类型
+                relateInfo.setAttachType(mainDict.getValue());
+                attachmentList.addAll(projectTemplateService.getProjectTemplateList(relateInfo));
+            }
+        //}
+
+        //修改工作内容中的信息(将工作内容的info_id清空)
+        ruralProjectMessageService.updateProjectcontentinfo(projectcontentinfo1);
+        if(null != projectReportData){
+            //删除报告信息
+            ruralProjectMessageService.deleteReport(projectReportData,attachmentList);
+        }
+        addMessage(redirectAttributes, "删除成功");
+        return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+    }
+
+    /**
+     * 读取单个实体流程
+     * @return
+     */
+    @RequestMapping(value = "getProcessOne")
+    public String getProcessOne(Projectcontentinfo projectcontentinfo,String type,Model model) {
+        ProjectReportData projectReportDataInfo = ruralProjectMessageService.getProjectReportDateByProjectId(projectcontentinfo.getId());
+        projectcontentinfo.setProjectReportData(projectReportDataInfo);
+        if ("2".equals(type)){          //审批中流程
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
+        }else if("3".equals(type)){     //变更中流程
+            ProjectReportData projectReportData = projectReportChangeService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
+        } else if("8".equals(type)){         //变更中流程
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getUpId());
+        }else if("6".equals(type) || "7".equals(type)){      //作废流程
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getInvalidProcessInstanceId());
+        }else if("5".equals(type)){
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            if(projectReportData.getUpId() != null){
+                model.addAttribute("processInstanceId", projectReportData.getUpId());
+            }else {
+                model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
+            }
+        }
+        return "modules/workreimbursement/workReimbursementTrack";
+    }
+
+    //报告流程审批
+    @RequestMapping(value = {"reportAudit"})
+    public String reportAudit(Projectcontentinfo projectcontentinfo, HttpServletRequest request, HttpServletResponse response, Model model,
+                              RedirectAttributes redirectAttributes,Integer saveAuditFlag) throws Exception {
+        ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
+        if(StringUtils.isNotBlank(projectReportData.getProcessInstanceId())){
+            Act act = getByAct(projectReportData.getProcessInstanceId());
+            projectReportData.setAct(act);
+        }
+        ProjectReportData t = projectReportDataService.getOnRural(projectReportData.getId());//从数据库取出记录的值
+        if(null != saveAuditFlag){
+            if(1 == saveAuditFlag && !t.getStatus().equals("4") && !t.getStatus().equals("5")){
+                addMessage(redirectAttributes, "项目报告已送审,请勿重复送审");
+                return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+            }
+        }
+        if(t.getStatus().equals("5")){
+            addMessage(redirectAttributes, "项目报告已登记完成,无法再次送审");
+            return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+        }
+        try {
+            MyBeanUtils.copyBeanNotNull2Bean(projectReportData, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            if(StringUtils.isNotBlank(t.getProcessInstanceId())){
+                Act act = getByAct(t.getProcessInstanceId());
+                MyBeanUtils.copyBeanNotNull2Bean(projectReportData.getAct(), act);
+                t.setAct(act);
+                projectcontentinfo.setProjectReportData(t);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        String taskDefKey =  t.getAct().getTaskDefKey();
+        List<User> users = null;
+        User auditUser = null;
+        ProjectRecords projectRecord = projectRecordsServices.getRuralMasters(projectcontentinfo.getProject().getId());
+        projectReportData.setProject(projectRecord);
+        if ("bmzr".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),2);
+            if (users==null ) {
+                users = Lists.newArrayList();
+                //添加总审人员
+                auditUser = UserUtils.get(t.getBzshbUserId());
+                users.add(auditUser);
+            }
+                //users = UserUtils.getByRoleActivityEnname("bzshb",3,t.getOfficeId(),"12",t.getCreateBy());
+        }else if ("bzshb".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),5);
+            if (users==null ) {
+                users = Lists.newArrayList();
+                //添加总审人员
+                auditUser = UserUtils.get(t.getBzshbUserId());
+                users.add(auditUser);
+            }
+            /*if (users==null )
+                users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());
+        }else if ("gzr".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),5);
+            if (users==null )
+                users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());*/
+        }else if ("modifyApply".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),1);
+        }
+        String flag = t.getAct().getFlag();
+        if ("yes".equals(flag) && (users==null || users.size()==0)){
+            addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
+        }else {
+            if ("modifyApply".equals(taskDefKey)){
+                ruralProjectMessageService.saveData(projectcontentinfo,3);
+            }
+            //添加查询报告号模板的bizCode参数
+            if("1".equals(projectRecord.getProjectType())){
+                t.setConditionType("10");
+            }else if("2".equals(projectRecord.getProjectType())){
+                t.setConditionType("1003");
+            }
+            String str = ruralProjectMessageService.auditSave(t, users);
+            addMessage(redirectAttributes, str);
+        }
+        if (StringUtils.isNotBlank(projectcontentinfo.getHome()) && projectcontentinfo.getHome().equals("home")){
+            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+        }else {
+            if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
+                return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+            }
+            return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+        }
+
+    }
+
+    @RequestMapping(value = "revoke")
+    public String revoke(HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
+        HashMap<String, String> requestMap = findRequestMap(request);
+        String processInstanceId = requestMap.get("processInstanceId");
+        String id = requestMap.get("id");
+        /*try {*/
+            RuralProjectRecords projectRecords = ruralProjectMessageService.get(id);
+            if(3==projectRecords.getProjectReportStatus() || 4==projectRecords.getProjectReportStatus()){
+                addMessage(redirectAttributes, "项目报告已撤回,请勿重复撤回");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+            }else if(5==projectRecords.getProjectReportStatus()){
+                addMessage(redirectAttributes, "项目报告已审批通过,无法撤回");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralCostProjectMessage/?repage";
+            }
+        ProjectReportData projectReportDateByProjectId = ruralProjectMessageService.getProjectReportDateByProjectId(projectRecords.getId());
+        ruralProjectMessageService.cancelInvalidate(projectReportDateByProjectId);
+            addMessage(redirectAttributes, "撤回该项目报告成功");
+        /*}catch (Exception e){
+            logger.info(e.getMessage());
+            addMessage(redirectAttributes, "撤回该项目报告失败");
+        }*/
+        return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+    }
+
+
+
+    public Act getByAct(String processInstanceId){
+        Act act = new Act();
+        HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+        ProcessInstance processInstance = actTaskService.getProcIns(processInstanceId);
+        if (processInstance!=null) {
+            List<Task> taskList = actTaskService.getCurrentTaskList(processInstance);
+            if(taskList!=null && taskList.size()>1){
+                for (Task taskInfok:taskList) {
+                    if (taskInfok.getAssignee().equals(UserUtils.getUser().getId())) {
+                        act.setTaskId(taskInfok.getId());
+                        act.setTaskName(taskInfok.getName());
+                        act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+                        act.setProcDefId(taskInfok.getProcessDefinitionId());
+                        act.setProcInsId(taskInfok.getProcessInstanceId());
+                        act.setTask(taskInfok);
+                    }
+                }
+            }else {
+                Task task = actTaskService.getCurrentTaskInfo(processInstance);
+                act.setTaskId(task.getId());
+                act.setTaskName(task.getName());
+                act.setTaskDefKey(task.getTaskDefinitionKey());
+                act.setProcDefId(task.getProcessDefinitionId());
+                act.setProcInsId(task.getProcessInstanceId());
+                act.setTask(task);
+            }
+        }
+        return  act;
+    }
+}

+ 664 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageNewController.java

@@ -0,0 +1,664 @@
+package com.jeeplus.modules.ruralprojectrecords.web;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportChangeService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
+import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordsReported;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralReportConsultant;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
+import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.UserService;
+import com.jeeplus.modules.sys.utils.DictUtils;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workstaff.entity.WorkStaffCertificate;
+import org.activiti.engine.HistoryService;
+import org.activiti.engine.history.HistoricProcessInstance;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 项目列表Controller
+ * @author 徐滕
+ * @version 2020-04-15
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/ruralProject/ruralProjectMessageNew")
+public class RuralProjectMessageNewController extends BaseController {
+    @Autowired
+    private RuralProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectRecordsService projectRecordsServices;
+    @Autowired
+    private RuralProjectMessageNewService ruralProjectMessageService;
+    @Autowired
+    private ProjectReportDataService projectReportDataService;
+    @Autowired
+    private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectReportChangeService projectReportChangeService;
+    @Autowired
+    protected HistoryService historyService;
+    @Autowired
+    private ActTaskService actTaskService;
+    @Autowired
+    private ProjectTemplateService projectTemplateService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private RuralProjectRecordsService ruralProjectRecordsService;
+
+    @ModelAttribute
+    public RuralProjectRecords get(@RequestParam(required=false) String id) {
+        RuralProjectRecords entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = projectRecordsService.get(id);
+        }
+        if (entity == null){
+            entity = new RuralProjectRecords();
+        }
+        return entity;
+    }
+
+
+    /**
+     * 跳转新增报告页面
+     * @param projectcontentinfo
+     * @param request
+     * @param response
+     * @param model
+     * @param attr
+     * @return
+     */
+    @RequestMapping(value = {"form"})
+    public String form(RuralProjectcontentinfo projectcontentinfo,Double reviewFee, HttpServletRequest request, HttpServletResponse response, Model model, RedirectAttributes attr) {
+        Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
+        model.addAttribute("parentIds", projectcontentinfo1.getParentIds());
+        String dictType = projectcontentinfo.getDictType();
+        RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
+
+        projectcontentinfo.setProject(records);
+        ProjectReportData projectReportData = new ProjectReportData();
+        projectReportData.setType(dictType);
+        if (StringUtils.isNotBlank(projectcontentinfo1.getInfoId())){
+            projectReportData = projectReportDataService.get(projectcontentinfo1.getInfoId());
+        }else if (projectcontentinfo.getProjectReportData()!=null && StringUtils.isNotBlank(projectcontentinfo.getProjectReportData().getId())) {
+            projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+        }else {
+            projectReportData.setNumber("");
+        }
+        if (projectReportData.getMaster()==null || StringUtils.isBlank(projectReportData.getMaster().getId())){
+            projectReportData.setMaster(UserUtils.getUser());
+        }
+        if (StringUtils.isBlank(projectReportData.getStatus())){
+            projectReportData.setFileStatus("1");
+        }
+        if(null != reviewFee){
+            projectReportData.setReviewFee(reviewFee);
+        }
+        projectcontentinfo.setProjectReportData(projectReportData);
+
+        ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+        //添加项目类型
+        relateInfo.setAttachmentProjectType(records.getProjectType());
+        relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
+        //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+        String money=projectcontentinfo.getProject().getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+
+        //添加报告类型
+        relateInfo.setRequiredStage(1);
+        relateInfo.setId(records.getId());
+        //查询报告文件、依据性文件、其他文件必填列表以及数据
+        List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+        for (MainDictDetail mainDict : mainDictDetails) {
+            relateInfo.setAttachType(mainDict.getValue());
+            switch (mainDict.getValue()) {
+                case "11":
+                    projectcontentinfo.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "12":
+                    projectcontentinfo.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "13":
+                    projectcontentinfo.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+            }
+
+        }
+
+        //查询总审人员信息
+        List<User> auditUserList = userService.getAuditUserList();
+        records.setBzshbUserList(auditUserList);
+        if(null == projectcontentinfo.getProjectReportData().getConsultant()){
+            projectcontentinfo.getProjectReportData().setConsultant(UserUtils.getUser());
+        }
+        if(null == projectcontentinfo.getProjectReportData().getPrincipal()){
+            projectcontentinfo.getProjectReportData().setPrincipal(UserUtils.getUser());
+        }
+        //添加当前文件服务器类型
+        projectcontentinfo.setUploadMode(uploadMode);
+        model.addAttribute("projectRecords", records);
+        model.addAttribute("projectcontentinfo", projectcontentinfo);
+        model.addAttribute("projectReportData", projectcontentinfo.getProjectReportData());
+        if (projectReportData != null && projectReportData.getCreateBy() != null && StringUtils.isNotBlank(projectReportData.getCreateBy().getId()) && projectReportData.getCreateBy().getId().equals(UserUtils.getUser().getId())) {
+            return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm";
+        } else if (projectReportData == null || StringUtils.isBlank(projectReportData.getId())) {
+            return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm";
+        } else {
+            return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/reportView";
+        }
+    }
+
+    /**
+     * 编辑项目表单页面
+     */
+    @RequiresPermissions(value={"ruralProject:ruralProjectMessage:edit"},logical= Logical.OR)
+    @RequestMapping(value = "modify")
+    public String modify(RuralProjectcontentinfo projectcontentinfo,Integer status, Model model, RedirectAttributes redirectAttributes) {
+        Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
+        ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
+        projectReportData = projectReportDataService.get(projectReportData.getId());
+        RuralProjectRecords ruralProjectRecords = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
+        // 将项目负责人替换为项目中的负责人
+        if(StringUtils.isNotBlank(ruralProjectRecords.getProjectMasterId())){
+            User user = UserUtils.get(ruralProjectRecords.getProjectMasterId());
+            projectReportData.setPrincipal(user);
+        }
+        Projectcontentinfo projectcontent = projectcontentinfoService.getByInfoId(projectReportData.getId());
+        projectcontent.setProjectReportData(projectReportData);
+        //根据项目id查找报告咨询员信息
+        List<RuralReportConsultant> consultants = ruralProjectMessageService.getConsultantsList(projectcontentinfo.getProjectId());
+        for (RuralReportConsultant consultant:consultants){
+            //根据用户查询技能信息
+            List<WorkStaffCertificate> certificateList = ruralProjectMessageService.getCertificateByUser(consultant.getZixunyuan());
+            //获取专业类型
+            List<MainDictDetail> certificateMajor = DictUtils.getMainDictList("certificate_major");
+            for (WorkStaffCertificate certificateInfo: certificateList) {
+                if(certificateInfo.getName().equals(consultant.getZhucezigezhKey())){
+                    consultant.setZhucezigezhID(certificateInfo.getNum());
+                }
+                for (MainDictDetail type : certificateMajor) {
+                    if(certificateInfo.getMajor().equals(type.getValue())){
+                        consultant.setMajor(type.getLabel());
+                    }
+                }
+            }
+            User user=userService.get(consultant.getZixunyuan());
+            consultant.setZixunyuanName(user.getName());
+        }
+        ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+        //添加项目类型
+        relateInfo.setAttachmentProjectType(ruralProjectRecords.getProjectType());
+        relateInfo.setAttachmentProjectSort(ruralProjectRecords.getAttachmentProjectSort());
+        //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+
+        //添加报告类型
+        relateInfo.setRequiredStage(1);
+        relateInfo.setId(ruralProjectRecords.getId());
+        //查询报告文件、依据性文件、其他文件必填列表以及数据
+        List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+        for (MainDictDetail mainDict : mainDictDetails) {
+            relateInfo.setAttachType(mainDict.getValue());
+            switch (mainDict.getValue()) {
+                case "11":
+                    projectcontent.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "12":
+                    projectcontent.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+                case "13":
+                    projectcontent.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
+                    break;
+            }
+
+        }
+
+        //添加当前文件服务器类型
+        projectcontent.setUploadMode(uploadMode);
+        //查询总审人员信息
+        List<User> auditUserList = userService.getAuditUserList();
+        ruralProjectRecords.setBzshbUserList(auditUserList);
+        model.addAttribute("processInstanceId",projectReportData.getProcessInstanceId());
+        model.addAttribute("projectReportData",projectReportData);
+        model.addAttribute("projectId", projectcontentinfo1.getProject().getId());
+        model.addAttribute("project", projectcontentinfo1.getProject());
+        model.addAttribute("reportedId", projectcontentinfo.getReportedId());
+        model.addAttribute("projectRecords", ruralProjectRecords);
+        model.addAttribute("id", projectcontentinfo.getId());
+        model.addAttribute("projectcontentinfo", projectcontent);
+        model.addAttribute("info", consultants);
+        //获取是否含有上报信息
+        RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReportedById(projectcontentinfo.getReportedId());
+        if(null != reported){
+            model.addAttribute("reportedView", 1);
+        }
+
+        if (StringUtils.isNotBlank(projectcontentinfo.getView()) && projectcontentinfo.getView().contains("view")) {
+            List<MainDictDetail> achievementTypes = DictUtils.getMainDictList("achievement_type");
+            if(null != achievementTypes){
+                for (MainDictDetail achievementType:achievementTypes) {
+                    if(achievementType.getValue().equals(projectReportData.getAchievementType())){
+                        projectReportData.setAchievementType(achievementType.getLabel());
+                        break;
+                    }
+                }
+            }
+            projectcontent.setFileAttachmentList(ruralProjectRecordsService.disposeDataAttachment(projectcontent.getFileAttachmentList()));
+            projectcontent.setFileGistdataList(ruralProjectRecordsService.disposeDataAttachment(projectcontent.getFileGistdataList()));
+            projectcontent.setFileOtherList(ruralProjectRecordsService.disposeDataAttachment(projectcontent.getFileOtherList()));
+            return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/reportView";
+        }
+        if (StringUtils.isNotBlank(projectcontentinfo.getView()) && projectcontentinfo.getView().contains("report")) {
+            if(StringUtils.isNotBlank(projectReportData.getProcessInstanceId())){
+                Act act = getByAct(projectReportData.getProcessInstanceId());
+                projectReportData.setAct(act);
+            }
+            //根据项目id查找咨询员信息
+            List<RuralReportConsultant> consultantList=ruralProjectMessageService.getConsultantsList(projectcontentinfo1.getProject().getId());
+            for (RuralReportConsultant consultant:consultantList){
+                //根据用户查询技能信息
+                List<WorkStaffCertificate> certificateList = ruralProjectMessageService.getCertificateByUser(consultant.getZixunyuan());
+                for (WorkStaffCertificate certificateInfo: certificateList) {
+                    if(certificateInfo.getName().equals(consultant.getZhucezigezhKey())){
+                        consultant.setZhucezigezhID(certificateInfo.getNum());
+                    }
+                }
+                User user=userService.get(consultant.getZixunyuan());
+                consultant.setZixunyuanName(user.getName());
+            }
+            model.addAttribute("consultantinfo", consultantList);
+            return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify";
+        }
+        return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm";
+    }
+
+    /**
+     * 新增报告信息
+     * @param projectcontentinfo
+     * @param model
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = {"saveReport"})
+    public String saveReport(Projectcontentinfo projectcontentinfo, Model model,RedirectAttributes redirectAttributes) {
+        try{
+            Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProject().getId());
+            ProjectReportData reportData = projectReportDataService.get(projectcontentinfo1.getInfoId());
+            //将审核人员id放入报告信息中
+            if(StringUtils.isBlank(projectcontentinfo.getProjectReportData().getBzshbUserId()) && StringUtils.isBlank(reportData.getBzshbUserId())){
+                addMessage(redirectAttributes, "审核人员未选择,请重新发起请求");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }
+            if(null != reportData){
+                if(StringUtils.isBlank(projectcontentinfo.getProjectReportData().getBzshbUserId())){
+                    projectcontentinfo.getProjectReportData().setBzshbUserId(reportData.getBzshbUserId());
+                }
+                if(reportData.getStatus().equals("2")){
+                    addMessage(redirectAttributes, "报告已送审,请勿重复提交");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+                } else if(reportData.getStatus().equals("5")){
+                    addMessage(redirectAttributes, "报告已审核完毕,请勿再次送审");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+                }
+            }
+            String str = ruralProjectMessageService.saveData(projectcontentinfo,2);
+            if(str.equals("true") || str.equals("false")){
+                addMessage(redirectAttributes, "发起报告审批"+(str.equals("true")?"成功":"失败"));
+            } else{
+                addMessage(redirectAttributes, str);
+            }
+            ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
+            if (projectReportData!=null){
+                if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+                }
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }
+        }catch (Exception e){
+            logger.error("ProjectcontentinfoController save Exception e"+e);
+        }
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        addMessage(redirectAttributes, "发起报告审批失败");
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+    }
+
+    /**
+     * 暂存报告信息
+     * @param projectcontentinfo
+     * @param model
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping(value = {"holdSaveReport"})
+    public String holdSaveReport(Projectcontentinfo projectcontentinfo, Model model,RedirectAttributes redirectAttributes)  {
+        try{
+            String str = ruralProjectMessageService.saveData(projectcontentinfo,1);
+            addMessage(redirectAttributes, "暂存报告"+(str.equals("true")?"成功":"失败"));
+            ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
+            if (projectReportData!=null){
+                if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+                }
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }
+        }catch (Exception e){
+            logger.error("ProjectcontentinfoController save Exception e"+e);
+        }
+        if(UserUtils.isManager()){
+            model.addAttribute("flag","1");
+        }
+        addMessage(redirectAttributes, "暂存报告失败");
+        ProjectRecords projectRecords = projectcontentinfo.getProject()==null?new ProjectRecords():projectcontentinfo.getProject();
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+    }
+
+    /**
+     * 删除报告信息
+     * @param projectcontentinfo
+     * @return
+     */
+    @RequestMapping(value = "deleteReport")
+    public String deleteReport(RuralProjectcontentinfo projectcontentinfo, RedirectAttributes redirectAttributes) {
+        Projectcontentinfo projectcontentinfo1 = projectcontentinfoService.getByProjectId(projectcontentinfo.getProjectId());
+        ProjectReportData projectReportData = projectReportDataService.getOnRural(projectcontentinfo1.getInfoId());
+        //获取项目信息
+        RuralProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo1.getProject().getId());
+        //判断项目类别是否为打包项目(1:打包项目,0:非打包项目)
+        List<ProjectTemplateInfo> attachmentList = Lists.newArrayList();
+        //查询报告文件、依据性文件、其他文件必填列表以及数据
+        List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+        ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+        //添加项目类型
+        relateInfo.setAttachmentProjectType(records.getProjectType());
+        relateInfo.setRequiredStage(1);
+        relateInfo.setId(records.getId());
+        relateInfo.setAttachmentProjectSort(records.getAttachmentProjectSort());
+        String money=records.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(StringUtils.isBlank(money)){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
+        switch (approvalMoney){
+            case 0:
+                //金额为0
+                relateInfo.setAttachmentProjectApprovalMoney(null);
+                break;
+            case 1:
+                //500w以下金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("1");
+                break;
+            case 2:
+                //500w以上金额状态
+                relateInfo.setAttachmentProjectApprovalMoney("2");
+                break;
+        }
+        for (MainDictDetail mainDict : mainDictDetails) {
+            //添加报告类型
+            relateInfo.setAttachType(mainDict.getValue());
+            attachmentList.addAll(projectTemplateService.getProjectTemplateList(relateInfo));
+        }
+
+
+        //修改工作内容中的信息(将工作内容的info_id清空)
+        ruralProjectMessageService.updateProjectcontentinfo(projectcontentinfo1);
+        if(null != projectReportData){
+            //删除报告信息
+            ruralProjectMessageService.deleteReport(projectReportData,attachmentList);
+        }
+        addMessage(redirectAttributes, "删除成功");
+        return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
+    }
+
+    /**
+     * 读取单个实体流程
+     * @return
+     */
+    @RequestMapping(value = "getProcessOne")
+    public String getProcessOne(Projectcontentinfo projectcontentinfo,String type,Model model) {
+        ProjectReportData projectReportDataInfo = ruralProjectMessageService.getProjectReportDateByProjectId(projectcontentinfo.getId());
+        projectcontentinfo.setProjectReportData(projectReportDataInfo);
+        if ("2".equals(type)){          //审批中流程
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
+        }else if("3".equals(type)){     //变更中流程
+            ProjectReportData projectReportData = projectReportChangeService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
+        } else if("8".equals(type)){         //变更中流程
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getUpId());
+        }else if("6".equals(type) || "7".equals(type)){      //作废流程
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            model.addAttribute("processInstanceId", projectReportData.getInvalidProcessInstanceId());
+        }else if("5".equals(type)){
+            ProjectReportData projectReportData = projectReportDataService.get(projectcontentinfo.getProjectReportData().getId());
+            if(projectReportData.getUpId() != null){
+                model.addAttribute("processInstanceId", projectReportData.getUpId());
+            }else {
+                model.addAttribute("processInstanceId", projectReportData.getProcessInstanceId());
+            }
+        }
+        return "modules/workreimbursement/workReimbursementTrack";
+    }
+
+    //报告流程审批
+    @RequestMapping(value = {"reportAudit"})
+    public String reportAudit(Projectcontentinfo projectcontentinfo, HttpServletRequest request, HttpServletResponse response, Model model,
+                              RedirectAttributes redirectAttributes,Integer saveAuditFlag) throws Exception {
+        ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
+        if(StringUtils.isNotBlank(projectReportData.getProcessInstanceId())){
+            Act act = getByAct(projectReportData.getProcessInstanceId());
+            projectReportData.setAct(act);
+        }
+        ProjectReportData t = projectReportDataService.getOnRural(projectReportData.getId());//从数据库取出记录的值
+        if(null != saveAuditFlag){
+            if(1 == saveAuditFlag && !t.getStatus().equals("4") && !t.getStatus().equals("5")){
+                addMessage(redirectAttributes, "项目报告已送审,请勿重复送审");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }
+        }
+        if(t.getStatus().equals("5")){
+            addMessage(redirectAttributes, "项目报告已登记完成,无法再次送审");
+            return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+        }
+        try {
+            MyBeanUtils.copyBeanNotNull2Bean(projectReportData, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            if(StringUtils.isNotBlank(t.getProcessInstanceId())){
+                Act act = getByAct(t.getProcessInstanceId());
+                MyBeanUtils.copyBeanNotNull2Bean(projectReportData.getAct(), act);
+                t.setAct(act);
+                projectcontentinfo.setProjectReportData(t);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        String taskDefKey =  t.getAct().getTaskDefKey();
+        List<User> users = null;
+        User auditUser = null;
+        ProjectRecords projectRecord = projectRecordsServices.getRuralMasters(projectcontentinfo.getProject().getId());
+        projectReportData.setProject(projectRecord);
+        if ("bmzr".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),2);
+            if (users==null ) {
+                users = Lists.newArrayList();
+                //添加总审人员
+                auditUser = UserUtils.get(t.getBzshbUserId());
+                users.add(auditUser);
+            }
+                //users = UserUtils.getByRoleActivityEnname("bzshb",3,t.getOfficeId(),"12",t.getCreateBy());
+        }else if ("bzshb".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),5);
+            if (users==null ) {
+                users = Lists.newArrayList();
+                //添加总审人员
+                auditUser = UserUtils.get(t.getBzshbUserId());
+                users.add(auditUser);
+            }
+            /*if (users==null )
+                users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());/*users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());
+        }else if ("gzr".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),5);
+            if (users==null )
+                users = UserUtils.getByRoleActivityEnname("gzr",3,t.getOfficeId(),"12",t.getCreateBy());*/
+        }else if ("modifyApply".equals(taskDefKey)){
+            users = UserUtils.getByProssType(t.getProcessInstanceId(),1);
+        }
+        String flag = t.getAct().getFlag();
+        if ("yes".equals(flag) && (users==null || users.size()==0)){
+            addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
+        }else {
+            if ("modifyApply".equals(taskDefKey)){
+                ruralProjectMessageService.saveData(projectcontentinfo,3);
+            }
+            //添加查询报告号模板的bizCode参数
+            if("1".equals(projectRecord.getProjectType())){
+                t.setConditionType("10");
+            }else if("2".equals(projectRecord.getProjectType())){
+                t.setConditionType("1003");
+            }
+            String str = ruralProjectMessageService.auditSave(t, users);
+            addMessage(redirectAttributes, str);
+        }
+        if (StringUtils.isNotBlank(projectcontentinfo.getHome()) && projectcontentinfo.getHome().equals("home")){
+            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+        }else {
+            if("1".equals(projectRecord.getProjectType())){
+                return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
+            }
+            return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralCostProjectMessage/?repage";
+        }
+
+    }
+
+    @RequestMapping(value = "revoke")
+    public String revoke(HttpServletRequest request, RedirectAttributes redirectAttributes) throws Exception {
+        HashMap<String, String> requestMap = findRequestMap(request);
+        String processInstanceId = requestMap.get("processInstanceId");
+        String id = requestMap.get("id");
+        /*try {*/
+            RuralProjectRecords projectRecords = ruralProjectMessageService.get(id);
+            if(3==projectRecords.getProjectReportStatus() || 4==projectRecords.getProjectReportStatus()){
+                addMessage(redirectAttributes, "项目报告已撤回、驳回,请勿重复操作");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }else if(5==projectRecords.getProjectReportStatus()){
+                addMessage(redirectAttributes, "项目报告已审批通过,无法撤回");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+            }
+        ProjectReportData projectReportDateByProjectId = ruralProjectMessageService.getProjectReportDateByProjectId(projectRecords.getId());
+        ruralProjectMessageService.cancelInvalidate(projectReportDateByProjectId);
+            addMessage(redirectAttributes, "撤回该项目报告成功");
+        /*}catch (Exception e){
+            logger.info(e.getMessage());
+            addMessage(redirectAttributes, "撤回该项目报告失败");
+        }*/
+        return "redirect:" + Global.getAdminPath() + "/ruralProject/ruralProjectMessage/?repage";
+    }
+
+
+
+    public Act getByAct(String processInstanceId){
+        Act act = new Act();
+        HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
+        ProcessInstance processInstance = actTaskService.getProcIns(processInstanceId);
+        if (processInstance!=null) {
+            List<Task> taskList = actTaskService.getCurrentTaskList(processInstance);
+            if(taskList!=null && taskList.size()>1){
+                for (Task taskInfok:taskList) {
+                    if (taskInfok.getAssignee().equals(UserUtils.getUser().getId())) {
+                        act.setTaskId(taskInfok.getId());
+                        act.setTaskName(taskInfok.getName());
+                        act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+                        act.setProcDefId(taskInfok.getProcessDefinitionId());
+                        act.setProcInsId(taskInfok.getProcessInstanceId());
+                        act.setTask(taskInfok);
+                    }
+                }
+            }else {
+                Task task = actTaskService.getCurrentTaskInfo(processInstance);
+                act.setTaskId(task.getId());
+                act.setTaskName(task.getName());
+                act.setTaskDefKey(task.getTaskDefinitionKey());
+                act.setProcDefId(task.getProcessDefinitionId());
+                act.setProcInsId(task.getProcessInstanceId());
+                act.setTask(task);
+            }
+        }
+        return  act;
+    }
+}

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

@@ -2026,6 +2026,139 @@ public class WorkProjectNotifyController extends BaseController {
 						projectcontentinfo.setFileOtherList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileOtherList()));
 						return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageView";
 					}
+				} else if (workProjectNotify.getType().equals("96")) {    //工作内容报告new
+					ProjectReportData projectReportData = projectReportDataService.getOnRural(workProjectNotify.getNotifyId());
+					RuralProjectRecords ruralProjectRecords=ruralProjectRecordsService.getQueryProjectUsers(projectReportData.getProject().getId());
+					if(StringUtils.isBlank(ruralProjectRecords.getProjectMasterId())){
+						ruralProjectRecords.setProjectMasterId(projectReportData.getPrincipal().getId());
+						ruralProjectRecords.setProjectMasterName(projectReportData.getPrincipal().getName());
+					}
+					Act act = getByAct(projectReportData.getProcessInstanceId());
+					projectReportData.setAct(act);
+					Projectcontentinfo projectcontentinfo = projectcontentinfoService.getByInfoId(projectReportData.getId());
+					projectcontentinfo.setProjectReportData(projectReportData);
+					//添加当前文件服务器类型
+					projectcontentinfo.setUploadMode(uploadMode);
+					List<MainDictDetail> achievementTypes = DictUtils.getMainDictList("achievement_type");
+					if(null != achievementTypes){
+						for (MainDictDetail achievementType:achievementTypes) {
+							if(achievementType.getValue().equals(projectReportData.getAchievementType())){
+								projectReportData.setAchievementType(achievementType.getLabel());
+								break;
+							}
+						}
+					}
+					//根据项目id查找咨询员信息
+					List<RuralReportConsultant> consultants=ruralProjectMessageService.getConsultantsList(projectReportData.getProject().getId());
+					for (RuralReportConsultant consultant:consultants){
+						//根据用户查询技能信息
+						List<WorkStaffCertificate> certificateList = ruralProjectMessageService.getCertificateByUser(consultant.getZixunyuan());
+						for (WorkStaffCertificate certificateInfo: certificateList) {
+							if(certificateInfo.getName().equals(consultant.getZhucezigezhKey())){
+								consultant.setZhucezigezhID(certificateInfo.getNum());
+							}
+						}
+						User user=userService.get(consultant.getZixunyuan());
+						consultant.setZixunyuanName(user.getName());
+					}
+
+					//根据条件查询附件必填项
+					//判断项目类别是否为打包项目(1:打包项目,0:非打包项目)
+					ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+					//添加项目类型
+					relateInfo.setAttachmentProjectType(ruralProjectRecords.getProjectType());
+					relateInfo.setAttachmentProjectSort(ruralProjectRecords.getAttachmentProjectSort());
+					String money=ruralProjectRecords.getSubmitMoney();
+					Integer approvalMoney=null;
+					if(StringUtils.isBlank(money)){
+						approvalMoney=1;
+					}else{
+						approvalMoney=Integer.parseInt(money);
+					}
+					switch (approvalMoney){
+						case 0:
+							//金额为0
+							relateInfo.setAttachmentProjectApprovalMoney(null);
+							break;
+						case 1:
+							//500w以下金额状态
+							relateInfo.setAttachmentProjectApprovalMoney("1");
+							break;
+						case 2:
+							//500w以上金额状态
+							relateInfo.setAttachmentProjectApprovalMoney("2");
+							break;
+					}
+
+					//添加报告类型
+					relateInfo.setRequiredStage(1);
+					relateInfo.setId(ruralProjectRecords.getId());
+					//查询报告文件、依据性文件、其他文件必填列表以及数据
+					List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+					for (MainDictDetail mainDict : mainDictDetails) {
+						relateInfo.setAttachType(mainDict.getValue());
+						switch (mainDict.getValue()) {
+							case "11":
+								projectcontentinfo.setFileAttachmentList(projectTemplateService.getProjectTemplateList(relateInfo));
+								break;
+							case "12":
+								projectcontentinfo.setFileGistdataList(projectTemplateService.getProjectTemplateList(relateInfo));
+								break;
+							case "13":
+								projectcontentinfo.setFileOtherList(projectTemplateService.getProjectTemplateList(relateInfo));
+								break;
+						}
+
+					}
+					if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+						projectcontentinfo.setHome(workProjectNotify.getHome());
+					}else{
+						projectcontentinfo.setHome("home");
+					}
+					model.addAttribute("processInstanceId",projectReportData.getProcessInstanceId());
+					model.addAttribute("projectId", projectcontentinfo.getProject().getId());
+					model.addAttribute("id", projectcontentinfo.getId());
+					model.addAttribute("projectcontentinfo", projectcontentinfo);
+					model.addAttribute("projectRecords", ruralProjectRecords);
+					model.addAttribute("consultantinfo", consultants);
+					WorkReviewAudit workReviewAudit = new WorkReviewAudit();
+					String type = "";
+					if ("master".equals(act.getTaskDefKey())) {
+						type = "2";
+					} else if ("bmzr".equals(act.getTaskDefKey())) {
+						type = "3";
+					} else if ("bzshbyg".equals(act.getTaskDefKey())) {
+						type = "4";
+					} else if ("bzshb".equals(act.getTaskDefKey())) {
+						if(null == projectReportData.getTechnicist())
+							projectReportData.setTechnicist(UserUtils.getUser());
+						type = "4";
+					}
+					model.addAttribute("projectReportData", projectReportData);
+					workReviewAudit.setCompanyId(UserUtils.getSelectCompany().getId());
+					workReviewAudit.setType(type);
+					workReviewAudit.setReportId(workProjectNotify.getNotifyId());
+					List<WorkReviewAudit> workReviewAudits = workReviewStandardService.findAuditList(workReviewAudit);
+					model.addAttribute("type", type);
+					model.addAttribute("list", workReviewAudits);
+					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+						projectcontentinfo.setFileAttachmentList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileAttachmentList()));
+						projectcontentinfo.setFileGistdataList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileGistdataList()));
+						projectcontentinfo.setFileOtherList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileOtherList()));
+						return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageView";
+					}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+						projectcontentinfo.setFileAttachmentList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileAttachmentList()));
+						projectcontentinfo.setFileGistdataList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileGistdataList()));
+						projectcontentinfo.setFileOtherList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileOtherList()));
+						return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageAudit";
+					} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+						return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify";
+					} else {
+						projectcontentinfo.setFileAttachmentList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileAttachmentList()));
+						projectcontentinfo.setFileGistdataList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileGistdataList()));
+						projectcontentinfo.setFileOtherList(ruralProjectRecordsService.disposeDataAttachment(projectcontentinfo.getFileOtherList()));
+						return "modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageView";
+					}
 				} else if (workProjectNotify.getType().equals("46")) {    //工作内容报告变更
 					ProjectReportData projectReportData = projectReportChangeService.get(workProjectNotify.getNotifyId());
 					Act act = getByAct(projectReportData.getProcessInstanceId());

Разлика између датотеке није приказан због своје велике величине
+ 1881 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportForm.jsp


Разлика између датотеке није приказан због своје велике величине
+ 1800 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/new/reportModify.jsp


+ 13 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageLists.jsp

@@ -788,12 +788,16 @@
 				{
 					xml+="<a href=\"#\" onclick=\"notifyDialogre('上报审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.reportNotifyId +"&home=reported','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
 				}
+				if(d.newReportAuditNotifyFlag != undefined && d.newReportAuditNotifyFlag !=null && "" != d.newReportAuditNotifyFlag && d.newReportAuditNotifyFlag == 1)
+				{
+					xml+="<a href=\"#\" onclick=\"notifyDialogre('新增报告审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.reportNotifyId +"&home=report','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
+				}
 				if(d.flag == 1){
 					if(d.projectReportStatus == 0){
-						xml+="<a href=\"#\" onclick=\"openDialogre('新增报告', '${ctx}/ruralProject/ruralCostProjectMessage/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 新增报告</a>";
+						xml+="<a href=\"#\" onclick=\"openDialogre('新增报告', '${ctx}/ruralProject/ruralCostProjectMessageNew/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 新增报告</a>";
 					}
 					if(d.projectReportStatus == 1){
-						xml+="<a href=\"#\" onclick=\"openDialogre('修改报告信息', '${ctx}/ruralProject/ruralCostProjectMessage/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
+						xml+="<a href=\"#\" onclick=\"openDialogre('修改报告信息', '${ctx}/ruralProject/ruralCostProjectMessageNew/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
 						xml+="<a href=\"${ctx}/ruralProject/ruralCostProjectMessage/deleteReport?projectId=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目报告吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 删除报告</a>";
 					}
 					if(d.projectReportStatus == 2){
@@ -801,12 +805,17 @@
 					}
 					if(d.projectReportStatus == 3){
 						//撤回操作
-						xml+="<a href=\"#\" onclick=\"openDialogre('调整报告信息', '${ctx}/ruralProject/ruralCostProjectMessage/modify?projectId=" + d.id + " ','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改报告</a>";
+						xml+="<a href=\"#\" onclick=\"openDialogre('调整报告信息', '${ctx}/ruralProject/ruralCostProjectMessageNew/modify?projectId=" + d.id + " ','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改报告</a>";
 						xml+="<a href=\"${ctx}/ruralProject/ruralCostProjectMessage/deleteReport?projectId=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目报告吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 删除报告</a>";
 					}
 					if(d.projectReportStatus == 4){
 						//驳回操作
-						xml+="<a href=\"#\" onclick=\"openDialogreReport('调整报告信息', '${ctx}/ruralProject/ruralCostProjectMessage/modify?projectId=" + d.id + "&view=report','"+d.id+"','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改报告</a>";
+						if(d.newReportNotifyFlag == 1){
+							xml+="<a href=\"#\" onclick=\"openDialogreReport('调整报告信息', '${ctx}/ruralProject/ruralCostProjectMessageNew/modify?projectId=" + d.id + "&view=report','"+d.id+"','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改报告</a>";
+						}else{
+							xml+="<a href=\"#\" onclick=\"openDialogreReport('调整报告信息', '${ctx}/ruralProject/ruralCostProjectMessage/modify?projectId=" + d.id + "&view=report','"+d.id+"','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs  layui-bg-green\" > 修改报告</a>";
+						}
+
 						xml+="<a href=\"${ctx}/ruralProject/ruralCostProjectMessage/deleteReport?projectId=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目报告吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 删除报告</a>";
 					}
 

Разлика између датотеке није приказан због своје велике величине
+ 1113 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageAudit.jsp


Разлика између датотеке није приказан због своје велике величине
+ 1303 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/projectRecordsMessageModify.jsp


Разлика између датотеке није приказан због своје велике величине
+ 1832 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/new/reportForm.jsp


+ 12 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/ruralProjectMessageLists.jsp

@@ -787,12 +787,16 @@
 				{
 					xml+="<a href=\"#\" onclick=\"notifyDialogre('上报审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.reportNotifyId +"&home=reported','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
 				}
+				if(d.newReportAuditNotifyFlag != undefined && d.newReportAuditNotifyFlag !=null && "" != d.newReportAuditNotifyFlag && d.newReportAuditNotifyFlag == 1)
+				{
+					xml+="<a href=\"#\" onclick=\"notifyDialogre('新增报告审批', '${ctx}/workprojectnotify/workProjectNotify/form?id=" + d.reportNotifyId +"&home=report','95%', '95%')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 审批</a>";
+				}
 				if(d.flag == 1){
 					if(d.projectReportStatus == 0){
-						xml+="<a href=\"#\" onclick=\"openDialogre('新增报告', '${ctx}/ruralProject/ruralProjectMessage/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 新增报告</a>";
+						xml+="<a href=\"#\" onclick=\"openDialogre('新增报告', '${ctx}/ruralProject/ruralProjectMessageNew/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 新增报告</a>";
 					}
 					if(d.projectReportStatus == 1){
-						xml+="<a href=\"#\" onclick=\"openDialogre('修改报告信息', '${ctx}/ruralProject/ruralProjectMessage/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
+						xml+="<a href=\"#\" onclick=\"openDialogre('修改报告信息', '${ctx}/ruralProject/ruralProjectMessageNew/form?projectId=" + d.id +"','95%', '95%','','送审,暂存,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
 						xml+="<a href=\"${ctx}/ruralProject/ruralProjectMessage/deleteReport?projectId=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目报告吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 删除报告</a>";
 					}
 					if(d.projectReportStatus == 2){
@@ -800,12 +804,16 @@
 					}
 					if(d.projectReportStatus == 3){
 						//撤回操作
-						xml+="<a href=\"#\" onclick=\"openDialogre('调整报告信息', '${ctx}/ruralProject/ruralProjectMessage/modify?projectId=" + d.id + " ','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
+						xml+="<a href=\"#\" onclick=\"openDialogre('调整报告信息', '${ctx}/ruralProject/ruralProjectMessageNew/modify?projectId=" + d.id + " ','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
 						xml+="<a href=\"${ctx}/ruralProject/ruralProjectMessage/deleteReport?projectId=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目报告吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 删除报告</a>";
 					}
 					if(d.projectReportStatus == 4){
 						//驳回操作
-						xml+="<a href=\"#\" onclick=\"openDialogreReport('调整报告信息', '${ctx}/ruralProject/ruralProjectMessage/modify?projectId=" + d.id + "&view=report','"+d.id+"','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
+						if(d.newReportNotifyFlag == 1){
+							xml+="<a href=\"#\" onclick=\"openDialogreReport('调整报告信息', '${ctx}/ruralProject/ruralProjectMessageNew/modify?projectId=" + d.id + "&view=report','"+d.id+"','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
+						}else{
+							xml+="<a href=\"#\" onclick=\"openDialogreReport('调整报告信息', '${ctx}/ruralProject/ruralProjectMessage/modify?projectId=" + d.id + "&view=report','"+d.id+"','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告</a>";
+						}
 						xml+="<a href=\"${ctx}/ruralProject/ruralProjectMessage/deleteReport?projectId=" + d.id + "\" onclick=\"return confirmx('确认要删除该项目报告吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 删除报告</a>";
 					}