Jelajahi Sumber

审定单签章部分代码

user5 3 tahun lalu
induk
melakukan
9942754aa5
24 mengubah file dengan 19968 tambahan dan 163 penghapusan
  1. 55 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageElectronicSealDao.java
  2. 56 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectApprovalSignature.java
  3. 56 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectReportSignature.java
  4. 105 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java
  5. 1217 81
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageElectronicSealService.java
  6. 118 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageService.java
  7. 2 8
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  8. 66 9
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageController.java
  9. 480 3
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageElectronicSealController.java
  10. 124 1
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  11. 11829 0
      src/main/resources/freemarker/projectSignature.ftl
  12. 6 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageAllDao.xml
  13. 174 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageElectronicSealDao.xml
  14. 7 0
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml
  15. 847 0
      src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalAudit.jsp
  16. 1081 0
      src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalForm.jsp
  17. 843 0
      src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalModify.jsp
  18. 847 0
      src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureAudit.jsp
  19. 1081 0
      src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm.jsp
  20. 843 0
      src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureModify.jsp
  21. 1 1
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/downloadType/importWordApprovalForm.jsp
  22. 1 1
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/downloadType/importWordReportForm.jsp
  23. 124 54
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/electronicSeal/ruralProjectMessageElectronicSealList.jsp
  24. 5 4
      src/main/webapp/webpage/modules/ruralprojectrecords/view/reportView.jsp

+ 55 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectMessageElectronicSealDao.java

@@ -2,6 +2,8 @@ package com.jeeplus.modules.ruralprojectrecords.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.ruralprojectrecords.entity.ProjectApprovalSignature;
+import com.jeeplus.modules.ruralprojectrecords.entity.ProjectReportSignature;
 import com.jeeplus.modules.ruralprojectrecords.entity.ProjectReportSignatureInfo;
 
 /**
@@ -11,4 +13,57 @@ import com.jeeplus.modules.ruralprojectrecords.entity.ProjectReportSignatureInfo
 @MyBatisDao
 public interface RuralProjectMessageElectronicSealDao extends CrudDao<ProjectReportSignatureInfo> {
 
+    /**
+     * 根据项目id查询审定单是否存在送审信息
+     * @param projectId
+     * @return
+     */
+    ProjectApprovalSignature getProjectApprovalSignature(String projectId);
+    /**
+     * 根据id查询审定单是否存在送审信息
+     * @param id
+     * @return
+     */
+    ProjectApprovalSignature getProjectApprovalSignatureById(String id);
+
+    /**
+     * 审定单申请新增
+     * @param projectApprovalSignature
+     * @return
+     */
+    Integer insertApprovalSignature(ProjectApprovalSignature projectApprovalSignature);
+
+    /**
+     * 审定单申请修改
+     * @param projectApprovalSignature
+     * @return
+     */
+    Integer updateApprovalSignature(ProjectApprovalSignature projectApprovalSignature);
+
+    /**
+     * 根据项目id查询报告签章是否存在送审信息
+     * @param projectId
+     * @return
+     */
+    ProjectReportSignature getProjectReportSignature(String projectId);
+    /**
+     * 根据id查询报告签章是否存在送审信息
+     * @param id
+     * @return
+     */
+    ProjectReportSignature getProjectReportSignatureById(String id);
+
+    /**
+     * 报告签章申请新增
+     * @param projectApprovalSignature
+     * @return
+     */
+    Integer insertReportSignature(ProjectReportSignature projectApprovalSignature);
+
+    /**
+     * 报告签章申请修改
+     * @param projectApprovalSignature
+     * @return
+     */
+    Integer updateReportSignature(ProjectReportSignature projectApprovalSignature);
 }

+ 56 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectApprovalSignature.java

@@ -0,0 +1,56 @@
+package com.jeeplus.modules.ruralprojectrecords.entity;
+
+import com.jeeplus.common.persistence.ActEntity;
+import com.jeeplus.modules.sys.entity.Office;
+
+/**
+ * @author: 徐滕
+ * @create: 2021-11-10 19:01
+ **/
+public class ProjectApprovalSignature extends ActEntity<ProjectApprovalSignature> {
+    private String projectId;   //项目id
+    private Integer status;  //状态
+    private String processInstanceId;   //流程编号
+    private Office company;
+    private Office office;
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getProcessInstanceId() {
+        return processInstanceId;
+    }
+
+    public void setProcessInstanceId(String processInstanceId) {
+        this.processInstanceId = processInstanceId;
+    }
+
+    public Office getCompany() {
+        return company;
+    }
+
+    public void setCompany(Office company) {
+        this.company = company;
+    }
+
+    public Office getOffice() {
+        return office;
+    }
+
+    public void setOffice(Office office) {
+        this.office = office;
+    }
+}

+ 56 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/ProjectReportSignature.java

@@ -0,0 +1,56 @@
+package com.jeeplus.modules.ruralprojectrecords.entity;
+
+import com.jeeplus.common.persistence.ActEntity;
+import com.jeeplus.modules.sys.entity.Office;
+
+/**
+ * @author: 徐滕
+ * @create: 2021-11-10 19:01
+ **/
+public class ProjectReportSignature extends ActEntity<ProjectReportSignature> {
+    private String projectId;   //项目id
+    private Integer status;  //状态
+    private String processInstanceId;   //流程编号
+    private Office company;
+    private Office office;
+
+    public String getProjectId() {
+        return projectId;
+    }
+
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    public Integer getStatus() {
+        return status;
+    }
+
+    public void setStatus(Integer status) {
+        this.status = status;
+    }
+
+    public String getProcessInstanceId() {
+        return processInstanceId;
+    }
+
+    public void setProcessInstanceId(String processInstanceId) {
+        this.processInstanceId = processInstanceId;
+    }
+
+    public Office getCompany() {
+        return company;
+    }
+
+    public void setCompany(Office company) {
+        this.company = company;
+    }
+
+    public Office getOffice() {
+        return office;
+    }
+
+    public void setOffice(Office office) {
+        this.office = office;
+    }
+}

+ 105 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java

@@ -261,6 +261,23 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private String signatureFileName;		//签章文件名称
 	private String operateFlag; //操作状态
 
+
+	private Integer approvalSignatureStatus; //审定单申请状态
+	private String approvalSignatureProcessInstanceId; //审定单申请流程id
+	private Integer reportSignatureStatus; //报告签章申请状态
+	private String reportSignatureProcessInstanceId; //报告签章申请流程id
+
+
+	private Integer reportSignatureFlag;		//是否审定单签章(1为已签章)
+	private String reportSignatureDocumentId;		//签章documentid
+	private String reportSignatureContractId;		//签章contractid
+	private String reportSignatureInvalidDocumentId;		//无效的签章documentid
+	private String reportSignatureFileName;		//签章文件名称
+	private User reportSignatureUploadFileUser;		//签章文件上传人信息
+	private Date reportSignatureUploadDate;		//签章文件上传时间
+
+
+
 	private List<String> civilProjectList = Lists.newArrayList();
 	private List<WorkClientAttachment> workAttachments = Lists.newArrayList();
 
@@ -1902,4 +1919,92 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setSignatureFileName(String signatureFileName) {
 		this.signatureFileName = signatureFileName;
 	}
+
+	public Integer getApprovalSignatureStatus() {
+		return approvalSignatureStatus;
+	}
+
+	public void setApprovalSignatureStatus(Integer approvalSignatureStatus) {
+		this.approvalSignatureStatus = approvalSignatureStatus;
+	}
+
+	public String getApprovalSignatureProcessInstanceId() {
+		return approvalSignatureProcessInstanceId;
+	}
+
+	public void setApprovalSignatureProcessInstanceId(String approvalSignatureProcessInstanceId) {
+		this.approvalSignatureProcessInstanceId = approvalSignatureProcessInstanceId;
+	}
+
+	public Integer getReportSignatureStatus() {
+		return reportSignatureStatus;
+	}
+
+	public void setReportSignatureStatus(Integer reportSignatureStatus) {
+		this.reportSignatureStatus = reportSignatureStatus;
+	}
+
+	public String getReportSignatureProcessInstanceId() {
+		return reportSignatureProcessInstanceId;
+	}
+
+	public void setReportSignatureProcessInstanceId(String reportSignatureProcessInstanceId) {
+		this.reportSignatureProcessInstanceId = reportSignatureProcessInstanceId;
+	}
+
+	public Integer getReportSignatureFlag() {
+		return reportSignatureFlag;
+	}
+
+	public void setReportSignatureFlag(Integer reportSignatureFlag) {
+		this.reportSignatureFlag = reportSignatureFlag;
+	}
+
+	public String getReportSignatureDocumentId() {
+		return reportSignatureDocumentId;
+	}
+
+	public void setReportSignatureDocumentId(String reportSignatureDocumentId) {
+		this.reportSignatureDocumentId = reportSignatureDocumentId;
+	}
+
+	public String getReportSignatureContractId() {
+		return reportSignatureContractId;
+	}
+
+	public void setReportSignatureContractId(String reportSignatureContractId) {
+		this.reportSignatureContractId = reportSignatureContractId;
+	}
+
+	public String getReportSignatureInvalidDocumentId() {
+		return reportSignatureInvalidDocumentId;
+	}
+
+	public void setReportSignatureInvalidDocumentId(String reportSignatureInvalidDocumentId) {
+		this.reportSignatureInvalidDocumentId = reportSignatureInvalidDocumentId;
+	}
+
+	public String getReportSignatureFileName() {
+		return reportSignatureFileName;
+	}
+
+	public void setReportSignatureFileName(String reportSignatureFileName) {
+		this.reportSignatureFileName = reportSignatureFileName;
+	}
+
+	public User getReportSignatureUploadFileUser() {
+		return reportSignatureUploadFileUser;
+	}
+
+	public void setReportSignatureUploadFileUser(User reportSignatureUploadFileUser) {
+		this.reportSignatureUploadFileUser = reportSignatureUploadFileUser;
+	}
+
+	public Date getReportSignatureUploadDate() {
+		return reportSignatureUploadDate;
+	}
+
+	public void setReportSignatureUploadDate(Date reportSignatureUploadDate) {
+		this.reportSignatureUploadDate = reportSignatureUploadDate;
+	}
 }

File diff ditekan karena terlalu besar
+ 1217 - 81
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageElectronicSealService.java


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

@@ -3953,7 +3953,7 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         signatories.add(signatorieInfo1);
         SignatureContract signatureContract = new SignatureContract();
         signatureContract.setDocuments(documentList);
-        signatureContract.setCategoryId("2894155655423012945");
+        signatureContract.setCategoryId("2895618951099527314");
         signatureContract.setSend(false);
         signatureContract.setSignatories(signatories);
         signatureContract.setSn("");
@@ -4060,4 +4060,121 @@ public class RuralProjectMessageService extends CrudService<RuralProjectMessageD
         }
         return "";
     }
+
+
+
+    /**
+     * 根据项目id 和 documentId生成合同id
+     * @param projectId
+     * @param documentList
+     * @return
+     */
+    public String getReportSignatureContractId(String projectId, List<String> documentList ,String principalUserId,String generalManagerUserId){
+        //根据项目id查询项目信息
+        RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(projectId);
+        //创建签署方信息
+        List<Action> actions = Lists.newArrayList();
+        Action companyAction = new Action();
+        companyAction.setType("CORPORATE");
+        companyAction.setName("公司印章");
+        companyAction.setSerialNo("1");
+        companyAction.setSealId("2894161942659543252");
+        //添加盖章位置
+        List<Location> locations = Lists.newArrayList();
+        Location location = new Location();
+        location.setDocumentId(documentList.get(0));
+        location.setPage(0);
+        location.setRectType("SEAL_CORPORATE");
+        //location.setKeyword("咨询企业(章)");
+        location.setKeywordIndex(-1);
+        location.setOffsetX(0.7749);
+        location.setOffsetY(0.2725);
+        locations.add(location);
+        companyAction.setLocations(locations);
+        actions.add(companyAction);
+
+        //根据角色信息录入签署方信息
+        //负责人
+        if(StringUtils.isNotBlank(principalUserId)){
+            User user = UserUtils.get(principalUserId);
+            if(null != user){
+                //获取成员印章id信息
+                String userSealId = SignaturePostUtil.getUserSealByMobile(user.getMobile(),"","");
+                if(StringUtils.isNotBlank(userSealId)){
+                    Action actionUser = new Action();
+                    actionUser.setType("CORPORATE");
+                    actionUser.setName(user.getName() + "印章");    //填写人员信息
+                    actionUser.setSerialNo("1");
+                    actionUser.setSealId(userSealId);   //人员印章id
+
+                    //添加盖章位置
+                    List<Location> principalLocations = Lists.newArrayList();
+                    Location principalLocation = new Location();
+                    principalLocation.setDocumentId(documentList.get(0));
+                    principalLocation.setPage(0);
+                    principalLocation.setRectType("SEAL_CORPORATE");
+                    //principalLocation.setKeyword("项目负责人(签字盖章)");
+                    principalLocation.setKeywordIndex(-1);
+                    principalLocation.setOffsetX(0.7759);
+                    principalLocation.setOffsetY(0.1934);
+                    principalLocations.add(principalLocation);
+                    actionUser.setLocations(principalLocations);
+                    actions.add(actionUser);
+                }
+            }
+        }
+        //总经理
+        User technologyPrincipalUser = UserUtils.getByLoginName("陈红星");
+        if(null != technologyPrincipalUser){
+            //获取成员印章id信息
+            String userSealId = SignaturePostUtil.getUserSealByMobile(technologyPrincipalUser.getMobile(),"","陈红星个人签名章");
+            if(StringUtils.isNotBlank(userSealId)){
+                Action actionUser = new Action();
+                actionUser.setType("CORPORATE");
+                actionUser.setName(technologyPrincipalUser.getName() + "印章");    //填写人员信息
+                actionUser.setSerialNo("1");
+                actionUser.setSealId(userSealId);   //人员印章id
+
+                //添加盖章位置
+                List<Location> principalLocations = Lists.newArrayList();
+                Location principalLocation = new Location();
+                principalLocation.setDocumentId(documentList.get(0));
+                principalLocation.setPage(0);
+                principalLocation.setRectType("SEAL_CORPORATE");
+                //principalLocation.setKeyword("签发人");
+                principalLocation.setKeywordIndex(-1);
+                principalLocation.setOffsetX(0.7518);
+                principalLocation.setOffsetY(0.1642);
+                principalLocations.add(principalLocation);
+                actionUser.setLocations(principalLocations);
+                actions.add(actionUser);
+            }
+        }
+
+
+        //创建签署方信息表
+        List<SignatorieInfo> signatories = Lists.newArrayList();
+        SignatorieInfo signatorieInfo1 = new SignatorieInfo();
+        signatorieInfo1.setSerialNo("1");
+        signatorieInfo1.setTenantName("江苏兴光项目管理有限公司");
+        signatorieInfo1.setTenantType("COMPANY");
+        signatorieInfo1.setActions(actions);
+        signatories.add(signatorieInfo1);
+        SignatureContract signatureContract = new SignatureContract();
+        signatureContract.setDocuments(documentList);
+        signatureContract.setCategoryId("2895618951099527314");
+        signatureContract.setSend(false);
+        signatureContract.setSignatories(signatories);
+        signatureContract.setSn("");
+        signatureContract.setSubject(ruralProjectRecords.getProjectName());//添加项目名称
+        net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(signatureContract);
+        String contractIdMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/createbycategory", json.toString());
+        HashMap hashMap = JSON.parseObject(contractIdMapStr, HashMap.class);
+        String code = hashMap.get("code").toString();
+        if("0".equals(code)){
+            String contractId = hashMap.get("contractId").toString();
+            return contractId;
+        }
+        return "";
+    }
 }

+ 2 - 8
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -8,10 +8,7 @@ import com.google.common.collect.Maps;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
-import com.jeeplus.common.utils.Collections3;
-import com.jeeplus.common.utils.DateUtils;
-import com.jeeplus.common.utils.IdGen;
-import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.common.utils.*;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ProcessDefCache;
@@ -40,10 +37,7 @@ import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectClientLinkmanDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordsDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralWorkProjectUserDao;
-import com.jeeplus.modules.ruralprojectrecords.entity.ImportBRuralProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
-import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
-import com.jeeplus.modules.ruralprojectrecords.entity.SubProjectInfo;
+import com.jeeplus.modules.ruralprojectrecords.entity.*;
 import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.serialnum.service.SerialNumTplService;
 import com.jeeplus.modules.sys.dao.UserDao;

+ 66 - 9
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageController.java

@@ -1889,21 +1889,78 @@ public class RuralProjectMessageController extends BaseController {
      */
     @RequiresPermissions("ruralProject:ruralProjectMessage:importReportFile")
     @RequestMapping(value = "importReportFile", method= RequestMethod.POST)
-    public String importReportFile(MultipartFile uploadFile, String visitType, RedirectAttributes redirectAttributes) {
+    @ResponseBody
+    public HashMap<String, String> importReportFile(MultipartFile uploadFile, String principalUserId, String visitType, String projectId, RedirectAttributes redirectAttributes) {
+        HashMap<String, String> map = Maps.newHashMap();
+        map.put("contractUrl","");
         try {
+
+            //根据项目id查询是否已经提交过了报告签章
+            RuralProjectRecords records = projectRecordsService.get(projectId);
+            if(null == records){
+                map.put("str","查询不到该项目信息");
+                return map;
+            }
+            if(null!= records.getReportSignatureFlag() && 1 == records.getReportSignatureFlag()){
+                map.put("str","该项目已经报告盖章完成");
+                return map;
+            }
+            if(null == uploadFile){
+                map.put("str","未上传附件信息");
+                return map;
+            }
             //MultipartFile转File
             File srcFile = FileUtil.transformMultipartFile(uploadFile);
-            System.out.println(srcFile.getName());
+            //截取文件名称
+            String fileName = srcFile.getName().substring(0,srcFile.getName().lastIndexOf("."));
+            //截取文件后缀名
             String substring = srcFile.getName().substring(srcFile.getName().lastIndexOf(".")+1, srcFile.getName().length());
-            System.out.println(substring);
-            System.out.println(srcFile.getPath());
+            if(!"doc".equals(substring.toLowerCase()) && !"docx".equals(substring.toLowerCase())){
+                map.put("str","请上传doc或者docx的文件进行签章操作");
+                return map;
+            }
+
+            //获取真签单的documentId
+            String documentId = SignaturePostUtil.getDocument(srcFile);
+            List<String> documentList = Lists.newArrayList();
+            documentList.add(documentId);
+
+
+            //根据项目id 和 documentId生成合同id
+            String contractId = ruralProjectMessageService.getReportSignatureContractId(projectId, documentList,principalUserId,"");
+            if("".equals(contractId)){
+                map.put("str","签章文件创建失败");
+                return map;
+            }
+            //进行静默签署
+            ruralProjectMessageService.signbyCompany(contractId,documentList);
+
+            //获取contractUrl路径
+            /*String contractUrl = ruralProjectMessageService.getSignatureContractUrl(contractId);
+            if("".equals(contractUrl)){
+                map.put("str","签章文件创建失败");
+                return map;
+            }*/
+            //将documentId 和contractId存储到质量复核对应的数据种
+            //签章完成则进行数据的保存
+            /*projectReportData.setSignatureFlag(1);
+            projectReportData.setSignatureDocumentId(documentId);
+            projectReportData.setSignatureContractId(contractId);
+            projectReportData.setSignatureFileName(fileName);
+            projectReportData.setSignatureUploadFileUser(UserUtils.getUser());
+            projectReportData.setSignatureUploadDate(new Date());
+            //修改签章对应信息文件
+            projectReportDataService.updateSignatureInfo(projectReportData);*/
+            map.put("contractUrl","");
+            map.put("str","审定单签章成功");
+
+
         } catch (Exception e) {
-            addMessage(redirectAttributes, "导入B类项目失败!失败信息:"+e.getMessage());
-        }
-        if("1".equals(visitType)){
-            return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+            addMessage(redirectAttributes, "报告签章失败");
         }
-        return "redirect:"+Global.getAdminPath()+"/ruralProject/ruralProjectMessage/?repage";
+
+
+        return map;
     }
 
 

+ 480 - 3
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageElectronicSealController.java

@@ -1,19 +1,29 @@
 package com.jeeplus.modules.ruralprojectrecords.web;
 
+import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.FreemarkerUtil;
 import com.jeeplus.common.utils.ResponseUtil;
 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.projectEngineering.entity.ProjectEngineeringInfo;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
+import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.*;
+import com.jeeplus.modules.ruralprojectrecords.enums.ProjectStatusEnum;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageAllService;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageElectronicSealService;
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectMessageNewService;
 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.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
@@ -21,11 +31,14 @@ import freemarker.template.Configuration;
 import freemarker.template.Template;
 import jersey.repackaged.com.google.common.collect.Lists;
 import org.activiti.engine.HistoryService;
+import org.activiti.engine.runtime.ProcessInstance;
+import org.activiti.engine.task.Task;
 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.*;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -54,6 +67,12 @@ public class RuralProjectMessageElectronicSealController extends BaseController
     private ProjectEngineeringService engineeringService;
     @Autowired
     private RuralProjectMessageElectronicSealService ruralProjectMessageElectronicSealService;
+    @Autowired
+    private RuralProjectMessageNewService ruralProjectMessageService;
+    @Autowired
+    private ProjectReportDataService projectReportDataService;
+    @Autowired
+    private ActTaskService actTaskService;
 
     @ModelAttribute
     public RuralProjectRecords get(@RequestParam(required=false) String id) {
@@ -148,6 +167,464 @@ public class RuralProjectMessageElectronicSealController extends BaseController
         return "modules/ruralprojectrecords/ruralporjectmessage/electronicSeal/ruralProjectMessageElectronicSealList";
     }
 
+    //@RequiresPermissions("ruralProject:electronicSeal:approvalForm")
+    @RequestMapping(value="approvalForm")
+    public String approvalForm(RuralProjectRecords projectRecords, Model model){
+        if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
+            projectRecords = projectRecordsService.get(projectRecords.getId());
+            projectRecordsService.queryProjectDetail(projectRecords);
+            ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+            projectPlanInfo.setProjectId(projectRecords.getId());
+            if(null != projectRecords.getWorkContractInfo()){
+                if(null != projectRecords.getWorkContractInfo().getContractTypeDoc()){
+                    projectRecords.getWorkContractInfo().setContractType(DictUtils.getMainDictLabel(String.valueOf(projectRecords.getWorkContractInfo().getContractTypeDoc()),"contract_info_type",""));
+                }
+            }
+            List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
+            //工程咨询
+            if("1".equals(projectRecords.getProjectType())){
+                mainDictList = DictUtils.getMainDictList("attachment_project_sort");
+                //造价审核
+            } else if("2".equals(projectRecords.getProjectType())){
+                mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
+            }
+            if(StringUtils.isNotBlank(projectRecords.getAttachmentProjectSort())){
+                //处理项目类别
+                for (MainDictDetail info: mainDictList) {
+                    if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
+                        projectRecords.setAttachmentProjectSort(info.getLabel());
+                        break;
+                    }
+                }
+            }
+
+            //查询项目报告信息
+            ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(projectRecords.getId());
+            //如果项目报告不为空,则查询项目线上归档信息
+            if(null != projectReportData){
+                ProjectReportRecord projectReportRecord = ruralProjectMessageService.getProjectReportRecord(projectReportData.getId());
+                if(null != projectReportRecord){
+                    model.addAttribute("projectId", projectRecords.getId());
+                }else{
+                    model.addAttribute("projectId", "");
+                }
+            }
+
+            model.addAttribute("flagProjectReportData",projectReportData);
+
+        }
+        model.addAttribute("projectRecords", projectRecords);
+        RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
+        if (null!=reported){
+            model.addAttribute("reportedId",reported.getId());
+        }
+        //查询所有的工程类型
+        List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+        model.addAttribute("engineeringInfo",engineeringInfos);
+        return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalForm";
+    }
+
+    /**
+     * 保存审定单签章送审信息
+     */
+    @RequestMapping(value = "approvalSave")
+    public String approvalSave(RuralProjectRecords projectRecords, Model model, RedirectAttributes redirectAttributes) throws Exception {
+        try {
+            //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+            ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
+            if(null != projectApprovalSignature){
+                if(projectApprovalSignature.getStatus() == 3 || projectApprovalSignature.getStatus() == 1) {
+                    //projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
+                }else if(projectApprovalSignature.getStatus() == 2){
+                    addMessage(redirectAttributes, "审定单签章申请已送审,无法重复送审");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+                }else if(projectApprovalSignature.getStatus() == 5){
+                    addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+                }
+                ruralProjectMessageElectronicSealService.approvalSave(projectApprovalSignature);//保存
+            }else{
+                projectApprovalSignature = new ProjectApprovalSignature();
+                projectApprovalSignature.setProjectId(projectRecords.getId());
+                projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
+                ruralProjectMessageElectronicSealService.approvalSave(projectApprovalSignature);//保存
+            }
+            addMessage(redirectAttributes, "保存审定单签章申请成功");
+        }catch (Exception e){
+            logger.error("保存审定单签章申请异常:",e);
+            addMessage(redirectAttributes, "保存审定单签章申请异常:"+e.getMessage());
+        }
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+    }
+
+    /**
+     * 审批
+     * @param projectRecords
+     * @param model
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping("approvalSaveAudit")
+    public String approvalSaveAudit(RuralProjectRecords projectRecords, Model model, RedirectAttributes redirectAttributes,Integer saveAuditFlag)  {
+        String home = projectRecords.getHome();
+        try {
+            String taskDefKey = projectRecords.getAct().getTaskDefKey();
+            //当状态为未通过时,重新修改数据
+            if ("modifyApply".equals(taskDefKey)) {
+                projectRecords.getAct().setComment("重新申请");
+            }
+            List<User> users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),1);
+            String flag = projectRecords.getAct().getFlag();
+            if ("yes".equals(flag) && (users==null || users.size()==0)){
+                addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
+            }else {
+                //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+                ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
+                projectApprovalSignature.setAct(projectRecords.getAct());
+                if(null != saveAuditFlag) {
+                    if (projectApprovalSignature.getStatus() != 4 && projectApprovalSignature.getStatus() != 5) {
+                        addMessage(redirectAttributes, "审定单签章申请已送审,请勿重复送审");
+                        if (StringUtils.isNotBlank(home) && "home".equals(home)) {
+                            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+                        } else {
+                            return "redirect:" + Global.getAdminPath() + "/ruralProject/electronicSeal/?repage";
+                        }
+                    }
+                }
+                if(projectApprovalSignature.getStatus() == 5){
+                    addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
+                    if (StringUtils.isNotBlank(home) && "home".equals(home)){
+                        return "redirect:" + Global.getAdminPath() + "/home/?repage";
+                    }else {
+                        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+                    }
+                }
+                String str = ruralProjectMessageElectronicSealService.approvalSaveAudit(projectApprovalSignature,users);
+                addMessage(redirectAttributes, str);
+            }
+        }catch (Exception e){
+            addMessage(redirectAttributes, "审定单签章申请审批失败");
+            logger.error("Exception e:"+e);
+        }
+
+        if (StringUtils.isNotBlank(home) && "home".equals(home)){
+            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+        }else {
+            return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+        }
+    }
+
+    /**
+     * 读取单个实体流程
+     * @return
+     */
+    @RequestMapping(value = "getReportedProcess")
+    public String getReportedProcess(RuralProjectRecords projectRecords,Model model) {
+        model.addAttribute("processInstanceId", projectRecords.getProcessInstanceId());
+        return "modules/workreimbursement/workReimbursementTrack";
+    }
+
+
+    @RequestMapping(value = "approvalModify")
+    public String approvalModify(RuralProjectRecords projectRecords, Model model) {
+        //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+        ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(projectRecords.getId());
+        projectRecords = projectRecordsService.get(projectRecords.getId());
+        projectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
+        projectRecords.setProjectStatus(projectApprovalSignature.getStatus());
+        ProcessInstance processInstance = actTaskService.getProcIns(projectRecords.getProcessInstanceId());
+        if (processInstance!=null) {
+            Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
+            Act act = new Act();
+            act.setTaskId(taskInfok.getId());
+            act.setTaskName(taskInfok.getName());
+            act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+            act.setProcDefId(taskInfok.getProcessDefinitionId());
+            act.setProcInsId(taskInfok.getProcessInstanceId());
+            act.setTask(taskInfok);
+            projectRecords.setAct(act);
+        }
+
+        //查询所有的工程类型
+        List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+
+        //处理项目类别
+        List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
+        if("1".equals(projectRecords.getProjectType())){
+            mainDictList = DictUtils.getMainDictList("attachment_project_sort");
+        }else if("2".equals(projectRecords.getProjectType())){
+            mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
+        }
+        for (MainDictDetail info: mainDictList) {
+            if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
+                projectRecords.setAttachmentProjectSort(info.getLabel());
+                break;
+            }
+        }
+        //查询工程类型信息
+        ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+        model.addAttribute("engInfo", engineeringInfo);
+        model.addAttribute("engineeringInfo",engineeringInfos);
+        model.addAttribute("processInstanceId", projectRecords.getProcessInstanceId());
+        model.addAttribute("projectRecords", projectRecords);
+        return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalModify";
+    }
+
+
+    @RequestMapping(value = "approvalRevoke")
+    public String approvalRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
+        HashMap<String, String> requestMap = findRequestMap(request);
+        String id = requestMap.get("id");
+        try {
+            //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+            ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(id);
+
+            if("5".equals(projectApprovalSignature.getStatus())){
+                addMessage(redirectAttributes, "审定单签章申请已审批通过,无法撤回");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+            }
+            ruralProjectMessageElectronicSealService.cancelApprovalProcess(projectApprovalSignature);
+            addMessage(redirectAttributes, "撤回该审定单签章申请审批成功");
+        }catch (Exception e){
+            logger.info(e.getMessage());
+            addMessage(redirectAttributes, "撤回该审定单签章申请审批失败");
+        }
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+    }
+
+
+
+
+
+
+
+
+
+    //@RequiresPermissions("ruralProject:electronicSeal:reportSignatureForm")
+    @RequestMapping(value="reportSignatureForm")
+    public String reportSignatureForm(RuralProjectRecords projectRecords, Model model){
+        if (projectRecords!=null&& StringUtils.isNotBlank(projectRecords.getId())) {
+            projectRecords = projectRecordsService.get(projectRecords.getId());
+            projectRecordsService.queryProjectDetail(projectRecords);
+            ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+            projectPlanInfo.setProjectId(projectRecords.getId());
+            if(null != projectRecords.getWorkContractInfo()){
+                if(null != projectRecords.getWorkContractInfo().getContractTypeDoc()){
+                    projectRecords.getWorkContractInfo().setContractType(DictUtils.getMainDictLabel(String.valueOf(projectRecords.getWorkContractInfo().getContractTypeDoc()),"contract_info_type",""));
+                }
+            }
+            List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
+            //工程咨询
+            if("1".equals(projectRecords.getProjectType())){
+                mainDictList = DictUtils.getMainDictList("attachment_project_sort");
+                //造价审核
+            } else if("2".equals(projectRecords.getProjectType())){
+                mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
+            }
+            if(StringUtils.isNotBlank(projectRecords.getAttachmentProjectSort())){
+                //处理项目类别
+                for (MainDictDetail info: mainDictList) {
+                    if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
+                        projectRecords.setAttachmentProjectSort(info.getLabel());
+                        break;
+                    }
+                }
+            }
+
+            //查询项目报告信息
+            ProjectReportData projectReportData = projectReportDataService.getReportDataByProjectId(projectRecords.getId());
+            //如果项目报告不为空,则查询项目线上归档信息
+            if(null != projectReportData){
+                ProjectReportRecord projectReportRecord = ruralProjectMessageService.getProjectReportRecord(projectReportData.getId());
+                if(null != projectReportRecord){
+                    model.addAttribute("projectId", projectRecords.getId());
+                }else{
+                    model.addAttribute("projectId", "");
+                }
+            }
+
+            model.addAttribute("flagProjectReportData",projectReportData);
+
+        }
+        model.addAttribute("projectRecords", projectRecords);
+        RuralProjectRecordsReported reported = ruralProjectMessageService.getRuralProjectRecordsReported(projectRecords.getId());
+        if (null!=reported){
+            model.addAttribute("reportedId",reported.getId());
+        }
+        //查询所有的工程类型
+        List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+        model.addAttribute("engineeringInfo",engineeringInfos);
+        return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm";
+    }
+
+    /**
+     * 保存审定单签章送审信息
+     */
+    @RequestMapping(value = "reportSignatureSave")
+    public String reportSignatureSave(RuralProjectRecords projectRecords, RedirectAttributes redirectAttributes) {
+        try {
+            //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+            ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportSignature(projectRecords.getId());
+            if(null != projectApprovalSignature){
+                if(projectApprovalSignature.getStatus() == 3 || projectApprovalSignature.getStatus() == 1) {
+                    //projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
+                }else if(projectApprovalSignature.getStatus() == 2){
+                    addMessage(redirectAttributes, "审定单签章申请已送审,无法重复送审");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+                }else if(projectApprovalSignature.getStatus() == 5){
+                    addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
+                    return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+                }
+                ruralProjectMessageElectronicSealService.reportSignatureSave(projectApprovalSignature);//保存
+            }else{
+                projectApprovalSignature = new ProjectReportSignature();
+                projectApprovalSignature.setProjectId(projectRecords.getId());
+                projectApprovalSignature.setStatus(ProjectStatusEnum.IN_APRL.getValue());
+                ruralProjectMessageElectronicSealService.reportSignatureSave(projectApprovalSignature);//保存
+            }
+            addMessage(redirectAttributes, "保存审定单签章申请成功");
+        }catch (Exception e){
+            logger.error("保存审定单签章申请异常:",e);
+            addMessage(redirectAttributes, "保存审定单签章申请异常:"+e.getMessage());
+        }
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+    }
+
+    /**
+     * 审批
+     * @param projectRecords
+     * @param redirectAttributes
+     * @return
+     */
+    @RequestMapping("reportSignatureSaveAudit")
+    public String reportSignatureSaveAudit(RuralProjectRecords projectRecords, RedirectAttributes redirectAttributes,Integer saveAuditFlag)  {
+        String home = projectRecords.getHome();
+        try {
+            String taskDefKey = projectRecords.getAct().getTaskDefKey();
+            //当状态为未通过时,重新修改数据
+            if ("modifyApply".equals(taskDefKey)) {
+                projectRecords.getAct().setComment("重新申请");
+            }
+            List<User> users = UserUtils.getByProssType(projectRecords.getProcessInstanceId(),1);
+            String flag = projectRecords.getAct().getFlag();
+            if ("yes".equals(flag) && (users==null || users.size()==0)){
+                addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
+            }else {
+                //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+                ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportSignature(projectRecords.getId());
+                projectApprovalSignature.setAct(projectRecords.getAct());
+                if(null != saveAuditFlag) {
+                    if (projectApprovalSignature.getStatus() != 4 && projectApprovalSignature.getStatus() != 5) {
+                        addMessage(redirectAttributes, "审定单签章申请已送审,请勿重复送审");
+                        if (StringUtils.isNotBlank(home) && "home".equals(home)) {
+                            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+                        } else {
+                            return "redirect:" + Global.getAdminPath() + "/ruralProject/electronicSeal/?repage";
+                        }
+                    }
+                }
+                if(projectApprovalSignature.getStatus() == 5){
+                    addMessage(redirectAttributes, "审定单签章申请已登记完成,无法再次送审");
+                    if (StringUtils.isNotBlank(home) && "home".equals(home)){
+                        return "redirect:" + Global.getAdminPath() + "/home/?repage";
+                    }else {
+                        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+                    }
+                }
+                String str = ruralProjectMessageElectronicSealService.reportSignatureSaveAudit(projectApprovalSignature,users);
+                addMessage(redirectAttributes, str);
+            }
+        }catch (Exception e){
+            addMessage(redirectAttributes, "审定单签章申请审批失败");
+            logger.error("Exception e:"+e);
+        }
+
+        if (StringUtils.isNotBlank(home) && "home".equals(home)){
+            return "redirect:" + Global.getAdminPath() + "/home/?repage";
+        }else {
+            return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+        }
+    }
+
+
+    @RequestMapping(value = "reportSignatureModify")
+    public String reportSignatureModify(RuralProjectRecords projectRecords, Model model) {
+        //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+        ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportSignature(projectRecords.getId());
+        projectRecords = projectRecordsService.get(projectRecords.getId());
+        projectRecordsService.queryProjectDetail(projectRecords);
+        projectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
+        projectRecords.setProjectStatus(projectApprovalSignature.getStatus());
+        ProcessInstance processInstance = actTaskService.getProcIns(projectRecords.getProcessInstanceId());
+        if (processInstance!=null) {
+            Task taskInfok = actTaskService.getCurrentTaskInfo(processInstance);
+            Act act = new Act();
+            act.setTaskId(taskInfok.getId());
+            act.setTaskName(taskInfok.getName());
+            act.setTaskDefKey(taskInfok.getTaskDefinitionKey());
+            act.setProcDefId(taskInfok.getProcessDefinitionId());
+            act.setProcInsId(taskInfok.getProcessInstanceId());
+            act.setTask(taskInfok);
+            projectRecords.setAct(act);
+        }
+
+        //查询所有的工程类型
+        List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+
+        //处理项目类别
+        List<MainDictDetail> mainDictList = com.google.common.collect.Lists.newArrayList();
+        if("1".equals(projectRecords.getProjectType())){
+            mainDictList = DictUtils.getMainDictList("attachment_project_sort");
+        }else if("2".equals(projectRecords.getProjectType())){
+            mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
+        }
+        for (MainDictDetail info: mainDictList) {
+            if(projectRecords.getAttachmentProjectSort().equals(info.getValue())){
+                projectRecords.setAttachmentProjectSort(info.getLabel());
+                break;
+            }
+        }
+        //查询工程类型信息
+        ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+        model.addAttribute("engInfo", engineeringInfo);
+        model.addAttribute("engineeringInfo",engineeringInfos);
+        model.addAttribute("processInstanceId", projectRecords.getProcessInstanceId());
+        model.addAttribute("projectRecords", projectRecords);
+        return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureModify";
+    }
+
+
+    @RequestMapping(value = "reportSignatureRevoke")
+    public String reportSignatureRevoke(HttpServletRequest request, RedirectAttributes redirectAttributes) {
+        HashMap<String, String> requestMap = findRequestMap(request);
+        String id = requestMap.get("id");
+        try {
+            //根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+            ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportSignature(id);
+
+            if("5".equals(projectApprovalSignature.getStatus())){
+                addMessage(redirectAttributes, "审定单签章申请已审批通过,无法撤回");
+                return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+            }
+            ruralProjectMessageElectronicSealService.cancelReportSignatureProcess(projectApprovalSignature);
+            addMessage(redirectAttributes, "撤回该审定单签章申请审批成功");
+        }catch (Exception e){
+            logger.info(e.getMessage());
+            addMessage(redirectAttributes, "撤回该审定单签章申请审批失败");
+        }
+        return "redirect:"+Global.getAdminPath()+"/ruralProject/electronicSeal/?repage";
+    }
+
+
+
+
+
+
+
+
+
+
+
 
     /**
      * 下载工程造价咨询质量控制流程单信息
@@ -158,7 +635,7 @@ public class RuralProjectMessageElectronicSealController extends BaseController
     @ResponseBody
     public void downloadMassControl(HttpServletResponse response, ProjectReportData projectReportData)  {
         Map<String,Object> data = ruralProjectMessageElectronicSealService.disposeProjectReportdata(projectReportData);
-
+        String projectName = (String) data.get("projectName");
 
         //模板对象
         Template template=null;
@@ -173,9 +650,9 @@ public class RuralProjectMessageElectronicSealController extends BaseController
             e.printStackTrace();
         }
 
-        File docFile = new File("报告签章.doc");
+        File docFile = new File(projectName + " 报告签章.doc");
         FreemarkerUtil.generateFile(data,template,docFile);
-        ResponseUtil.docResponse("工程造价咨询质量控制流程单.doc",docFile,response);
+        ResponseUtil.docResponse(projectName + " 报告签章.doc",docFile,response);
 
     }
 

+ 124 - 1
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -205,7 +205,6 @@ import com.jeeplus.modules.workrepay.service.WorkRepayService;
 import com.jeeplus.modules.workresignation.entity.WorkResignation;
 import com.jeeplus.modules.workresignation.service.WorkResignationService;
 import com.jeeplus.modules.workreview.entity.WorkReviewAudit;
-import com.jeeplus.modules.workreview.entity.WorkReviewStandard;
 import com.jeeplus.modules.workreview.service.WorkReviewStandardService;
 import com.jeeplus.modules.workscrap.entity.WorkScrap;
 import com.jeeplus.modules.workscrap.service.WorkScrapService;
@@ -505,6 +504,8 @@ public class WorkProjectNotifyController extends BaseController {
 	private FollowService followService;
 	@Autowired
 	private FollowArchiveService followArchiveService;
+	@Autowired
+	private RuralProjectMessageElectronicSealService ruralProjectMessageElectronicSealService;
 
 	@ModelAttribute
 	public WorkProjectNotify get(@RequestParam(required=false) String id) {
@@ -1274,6 +1275,128 @@ public class WorkProjectNotifyController extends BaseController {
 						}*/
 						return "modules/workcontractinfo/newWorkContract/workContractInfoFormEdit";
 					}
+				} else if (workProjectNotify.getType().equals("144")) {    //合同管理new
+					RuralProjectRecords ruralProjectRecords = ruralProjectMessageElectronicSealService.getProjectApprovalSignatureById(workProjectNotify.getNotifyId());
+					if (ruralProjectRecords != null && StringUtils.isNotBlank(ruralProjectRecords.getId())) {
+						//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+						ProjectApprovalSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectApprovalSignature(ruralProjectRecords.getId());
+
+						ruralProjectRecordsService.queryProjectDetail(ruralProjectRecords);
+						ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+						projectPlanInfo.setProjectId(ruralProjectRecords.getId());
+						//获取项目计划信息
+						List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+						//项目计划附件信息
+						List<WorkClientAttachment> projectPlanAttachment = projectPlanService.getWorkAttachment(ruralProjectRecords.getId());
+						ruralProjectRecords.setProjectPlanList(projectPlanList);
+						ruralProjectRecords.setWorkAttachments(projectPlanAttachment);
+						if(null != projectApprovalSignature){
+							ruralProjectRecords.setProjectStatus(projectApprovalSignature.getStatus());
+							ruralProjectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
+						}
+					}
+					ruralProjectRecords.setAct(getByAct(ruralProjectRecords.getProcessInstanceId()));
+					if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+						ruralProjectRecords.setHome(workProjectNotify.getHome());
+					}else{
+						ruralProjectRecords.setHome("home");
+					}
+					//查询所有的工程类型
+					List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+
+					//处理项目类别
+					List<MainDictDetail> mainDictList = Lists.newArrayList();
+					if("1".equals(ruralProjectRecords.getProjectType())){
+						mainDictList = DictUtils.getMainDictList("attachment_project_sort");
+					}else if("2".equals(ruralProjectRecords.getProjectType())){
+						mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
+					}
+					for (MainDictDetail info: mainDictList) {
+						if(ruralProjectRecords.getAttachmentProjectSort().equals(info.getValue())){
+							ruralProjectRecords.setAttachmentProjectSort(info.getLabel());
+							break;
+						}
+					}
+
+					model.addAttribute("engineeringInfo",engineeringInfos);
+					model.addAttribute("processInstanceId", ruralProjectRecords.getProcessInstanceId());
+					model.addAttribute("projectRecords", ruralProjectRecords);
+					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalForm";
+					}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+						//审核模板标识
+						model.addAttribute("identification", "ruralprojectrecords");
+						model.addAttribute("identificationName","项目登记审核意见");
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalAudit";
+					} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+						//查询工程类型信息
+						ProjectEngineeringInfo engineeringInfo=engineeringService.get(ruralProjectRecords.getEngineeringType());
+						model.addAttribute("engInfo", engineeringInfo);
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalModify";
+					} else {
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalForm";
+					}
+				} else if (workProjectNotify.getType().equals("145")) {    //合同管理new
+					RuralProjectRecords ruralProjectRecords = ruralProjectMessageElectronicSealService.getProjectReportSignatureById(workProjectNotify.getNotifyId());
+					if (ruralProjectRecords != null && StringUtils.isNotBlank(ruralProjectRecords.getId())) {
+						//根据项目id查询对应的审定单数据状态是否是已经被送审或者 是否存在值
+						ProjectReportSignature projectApprovalSignature = ruralProjectMessageElectronicSealService.getProjectReportSignature(ruralProjectRecords.getId());
+
+						ruralProjectRecordsService.queryProjectDetail(ruralProjectRecords);
+						ProjectPlanInfo projectPlanInfo = new ProjectPlanInfo();
+						projectPlanInfo.setProjectId(ruralProjectRecords.getId());
+						//获取项目计划信息
+						List<ProjectPlanInfo> projectPlanList = projectPlanService.getProjectPlanList(projectPlanInfo);
+						//项目计划附件信息
+						List<WorkClientAttachment> projectPlanAttachment = projectPlanService.getWorkAttachment(ruralProjectRecords.getId());
+						ruralProjectRecords.setProjectPlanList(projectPlanList);
+						ruralProjectRecords.setWorkAttachments(projectPlanAttachment);
+						if(null != projectApprovalSignature){
+							ruralProjectRecords.setProjectStatus(projectApprovalSignature.getStatus());
+							ruralProjectRecords.setProcessInstanceId(projectApprovalSignature.getProcessInstanceId());
+						}
+					}
+					ruralProjectRecords.setAct(getByAct(ruralProjectRecords.getProcessInstanceId()));
+					if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+						ruralProjectRecords.setHome(workProjectNotify.getHome());
+					}else{
+						ruralProjectRecords.setHome("home");
+					}
+					//查询所有的工程类型
+					List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+
+					//处理项目类别
+					List<MainDictDetail> mainDictList = Lists.newArrayList();
+					if("1".equals(ruralProjectRecords.getProjectType())){
+						mainDictList = DictUtils.getMainDictList("attachment_project_sort");
+					}else if("2".equals(ruralProjectRecords.getProjectType())){
+						mainDictList = DictUtils.getMainDictList("attachment_project_sort_cost");
+					}
+					for (MainDictDetail info: mainDictList) {
+						if(ruralProjectRecords.getAttachmentProjectSort().equals(info.getValue())){
+							ruralProjectRecords.setAttachmentProjectSort(info.getLabel());
+							break;
+						}
+					}
+
+					model.addAttribute("engineeringInfo",engineeringInfos);
+					model.addAttribute("processInstanceId", ruralProjectRecords.getProcessInstanceId());
+					model.addAttribute("projectRecords", ruralProjectRecords);
+					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm";
+					}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+						//审核模板标识
+						model.addAttribute("identification", "ruralprojectrecords");
+						model.addAttribute("identificationName","项目登记审核意见");
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureAudit";
+					} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+						//查询工程类型信息
+						ProjectEngineeringInfo engineeringInfo=engineeringService.get(ruralProjectRecords.getEngineeringType());
+						model.addAttribute("engInfo", engineeringInfo);
+						return "ruralProjectRecordsReportSignatureModify1";
+					} else {
+						return "modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm";
+					}
 				} else if (workProjectNotify.getType().equals("18")) {
 					Company company = companyService.get(workProjectNotify.getNotifyId());
 					company.setHome("home");

File diff ditekan karena terlalu besar
+ 11829 - 0
src/main/resources/freemarker/projectSignature.ftl


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

@@ -243,6 +243,10 @@ END) as projectScale*/
 		,if(date_add(prd.audit_pass_date,interval #{endingCount} day) >now(),"0","1") as reportedType
 		,ifnull(rprr.report_status,0) as "reportStatus"
 		,ifnull(rprr.sync_status,0) as "syncStatus"
+		,ifnull(pas.status,0) as "approvalSignatureStatus"
+		,ifnull(pas.process_instance_id,"") as "approvalSignatureProcessInstanceId"
+		,ifnull(prs.status,0) as "reportSignatureStatus"
+		,ifnull(prs.process_instance_id,"") as "reportSignatureProcessInstanceId"
 		,rprr.process_instance_id as "reportedProcessInstanceId"
 		,ifnull(prdt.status,0) as "projectReportStatusTwo"
 		,prdt.id as prdtId
@@ -287,6 +291,8 @@ END) as projectScale*/
 		LEFT JOIN project_material_defect_record pmdr on prd.id = pmdr.report_id
 		left join rural_project_report_record_down prrd on prrd.report_id = prd.id
 		left join project_paper_filing ppf on ppf.project_id = a.id
+		left join project_approval_signature pas on pas.project_id = a.id
+		left join project_report_signature prs on prs.project_id = a.id
 		/*LEFT JOIN work_invoice_project_relation wip ON wip.project_id = a.id
 		LEFT JOIN work_invoice wi ON wi.id = wip.invoice_id*/
 		<where>

+ 174 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageElectronicSealDao.xml

@@ -14,4 +14,178 @@
 		WHERE a.project_report_id = #{projectReportId}
 	</select>
 
+	<select id="getProjectApprovalSignature" resultType="ProjectApprovalSignature">
+		select
+		  a.id AS "id",
+		  a.create_by AS "createBy.id",
+		  a.create_date AS "createDate",
+		  a.update_by AS "updateBy.id",
+		  a.update_date AS "updateDate",
+		  a.del_flag AS "delFlag",
+		  a.remarks AS "remarks",
+		  a.project_id as "projectId",
+		  a.status as "status",
+		  a.process_instance_id as "processInstanceId",
+		  a.company_id as "company.id",
+		  a.office_id as "office.id"
+		from
+		  project_approval_signature a
+		where
+		  a.project_id = #{projectId}
+	</select>
+
+	<select id="getProjectReportSignature" resultType="ProjectReportSignature">
+		select
+		  a.id AS "id",
+		  a.create_by AS "createBy.id",
+		  a.create_date AS "createDate",
+		  a.update_by AS "updateBy.id",
+		  a.update_date AS "updateDate",
+		  a.del_flag AS "delFlag",
+		  a.remarks AS "remarks",
+		  a.project_id as "projectId",
+		  a.status as "status",
+		  a.process_instance_id as "processInstanceId",
+		  a.company_id as "company.id",
+		  a.office_id as "office.id"
+		from
+		  project_report_signature a
+		where
+		  a.project_id = #{projectId}
+	</select>
+
+	<select id="getProjectApprovalSignatureById" resultType="ProjectApprovalSignature">
+		select
+		  a.id AS "id",
+		  a.create_by AS "createBy.id",
+		  a.create_date AS "createDate",
+		  a.update_by AS "updateBy.id",
+		  a.update_date AS "updateDate",
+		  a.del_flag AS "delFlag",
+		  a.remarks AS "remarks",
+		  a.project_id as "projectId",
+		  a.status as "status",
+		  a.process_instance_id as "processInstanceId",
+		  a.company_id as "company.id",
+		  a.office_id as "office.id"
+		from
+		  project_approval_signature a
+		where
+		  a.id = #{id}
+	</select>
+
+	<select id="getProjectReportSignatureById" resultType="ProjectReportSignature">
+		select
+		  a.id AS "id",
+		  a.create_by AS "createBy.id",
+		  a.create_date AS "createDate",
+		  a.update_by AS "updateBy.id",
+		  a.update_date AS "updateDate",
+		  a.del_flag AS "delFlag",
+		  a.remarks AS "remarks",
+		  a.project_id as "projectId",
+		  a.status as "status",
+		  a.process_instance_id as "processInstanceId",
+		  a.company_id as "company.id",
+		  a.office_id as "office.id"
+		from
+		  project_report_signature a
+		where
+		  a.id = #{id}
+	</select>
+
+	<insert id="insertApprovalSignature" >
+		insert into project_approval_signature (
+		  id,
+		  create_by,
+		  create_date,
+		  update_by,
+		  update_date,
+		  del_flag,
+		  project_id,
+		  remarks,
+		  status,
+		  process_instance_id,
+		  company_id,
+		  office_id
+		)
+		values
+		  (
+		  	#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{delFlag},
+			#{projectId},
+			#{remarks},
+			#{status},
+			#{processInstanceId},
+			#{company.id},
+			#{office.id}
+		  )
+	</insert>
+
+	<insert id="insertReportSignature" >
+		insert into project_report_signature (
+		  id,
+		  create_by,
+		  create_date,
+		  update_by,
+		  update_date,
+		  del_flag,
+		  project_id,
+		  remarks,
+		  status,
+		  process_instance_id,
+		  company_id,
+		  office_id
+		)
+		values
+		  (
+		  	#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{delFlag},
+			#{projectId},
+			#{remarks},
+			#{status},
+			#{processInstanceId},
+			#{company.id},
+			#{office.id}
+		  )
+	</insert>
+
+	<update id="updateApprovalSignature">
+		update
+		  project_approval_signature
+		set
+		  update_by = #{updateBy.id},
+		  update_date = #{updateDate}
+		  <if test="status != null and status != ''">
+			,status =#{status}
+		  </if>
+		  <if test="processInstanceId != null and processInstanceId != ''">
+			,process_instance_id =#{processInstanceId}
+		  </if>
+		where id = #{id}
+	</update>
+
+	<update id="updateReportSignature">
+		update
+		  project_report_signature
+		set
+		  update_by = #{updateBy.id},
+		  update_date = #{updateDate}
+		  <if test="status != null and status != ''">
+			,status =#{status}
+		  </if>
+		  <if test="processInstanceId != null and processInstanceId != ''">
+			,process_instance_id =#{processInstanceId}
+		  </if>
+		where id = #{id}
+	</update>
+
 </mapper>

+ 7 - 0
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml

@@ -56,6 +56,13 @@
 		ifnull(a.record_state,0) as "projectRecordStatus",
 		a.over_record_status as "overRecordStatus",
 		a.emergency_project AS "emergencyProject"
+		a.report_signature_flag as "reportSignatureFlag",
+		a.report_signature_document_id as "reportSignatureDocumentId",
+		a.report_signature_contract_id as "reportSignatureContractId",
+		a.report_signature_invalid_document_id as "reportSignatureInvalidDocumentId",
+		a.report_signature_file_name as "reportSignatureFileName",
+		a.report_signature_upload_file_user as "reportSignatureUploadFileUser",
+		a.report_signature_upload_date as "reportSignatureUploadDate"
 	</sql>
 
 	<sql id="projectRecordsJoins">

+ 847 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalAudit.jsp

@@ -0,0 +1,847 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目审批管理</title>
+	<meta name="decorator" content="default"/>
+	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+				var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+				$("#opinion").val(ss);
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    if(obj == 2){
+                        $("#flag").val("no1");
+					}else {
+                        $("#flag").val("no2");
+					}
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+		  return false;
+		}
+		$(document).ready(function() {
+
+			var tt = $("#contractNum").val();
+			if (tt == null || tt === "") {
+				$("#divv").hide();
+				$("#divv2").show();
+				$("#divv3").hide();
+				setTimeout(function () {
+					var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+					$("#clientName").val(tt);
+				},100);
+			}else{
+				$("#divv2").hide();
+			}
+
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+
+			var contractNum = $("#contractNum").val();
+			if (contractNum == null || contractNum === "") {
+				$("#div1").hide();
+				$("#div3").hide();
+				setTimeout(function () {
+					var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+					$("#clientName").val(tt);
+				},100);
+			}
+
+			var contractInformation='${projectRecords.workContractInfo.contractInformation}'
+			if(contractInformation == "1"){
+				$("#c2").show();
+				$("#c1").hide();
+			}else{
+				$("#c2").hide();
+				$("#c1").show();
+			}
+		});
+
+        function insertTitle(tValue){
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "82";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+				var storeAs = "projectRecods";
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
+        }
+
+        function addFile() {
+            $("#attachment_file").click();
+        }
+
+        function addRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTemplete(list, idx, tpl, row, idx);
+        }
+
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+	</script>
+</head>
+<body >
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/ruralProject/electronicSeal/approvalSaveAudit" method="post" class="layui-form">
+		<form:hidden path="id"/>
+		<form:hidden path="home"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden id="taskDefKey" path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden path="processInstanceId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
+		<c:set var="status" value="${projectRecords.act.status}" />
+
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>项目合同信息</h2></div>
+				<div id="div1">
+					<div class="layui-item layui-col-sm12 lw6">
+						<label class="layui-form-label">合同编号:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false" id="contractNum"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.contractNum}"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">合同名称:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.name}"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6" id="c1">
+						<label class="layui-form-label double-line">合同金额(元):</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatNumber value="${projectRecords.workContractInfo.contractPrice}" pattern="#,##0.00#"/>"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6" id="c2" style="display: none">
+						<label class="layui-form-label">费率描述:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" id="otherDetails"  class="form-control layui-input" value="${projectRecords.workContractInfo.otherDetails}"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">委托方:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false" id="clientName" readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.client.name}"/>
+						</div>
+					</div>
+				</div>
+				<div id="divv2">
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">无合同</label>
+					</div>
+				</div>
+				<div id="div3">
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">合同类别:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" style="background-color: #f1f1f1" class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+<%--							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
+						</div>
+					</div>
+				</div>
+			</div>
+
+
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>项目基础信息</h2></div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目名称:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectName}"/>
+                    </div>
+                </div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目编号:</label>
+					<div class="layui-input-block">
+                        <div class="input-group">
+                            <form:input path="projectId" htmlEscape="false"  readonly="true" class="form-control layui-input"/>
+                            <span class="input-group-btn">
+                                <label class="form-status"><c:choose><c:when test="${not empty projectRecords.projectStatus}">${fns:getDictLabel(projectRecords.projectStatus, 'rural_project_audit_state', '')}</c:when><c:otherwise>新添</c:otherwise></c:choose></label>
+                             </span>
+                        </div>
+					</div>
+				</div>
+				<%--<div class="layui-item layui-col-sm6 lw6">--%>
+					<%--<label class="layui-form-label">规模类型:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleType}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">--%>
+					<%--<label class="layui-form-label">规模单位:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleUnit}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">--%>
+					<%--<label class="layui-form-label">规模数量:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleQuantity}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目所在地:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.province}-${projectRecords.city}-${projectRecords.county}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw7">
+					<label class="layui-form-label">投资性质:</label>
+					<div class="layui-input-block">
+						<c:forEach  items="${fns:getMainDictList('project_properties')}" var="v">
+							<c:if test="${v.value==projectRecords.projectProperties}">
+								<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${v.label}"/>
+							</c:if>
+						</c:forEach>
+					</div>
+				</div>
+<%--				<div class="layui-item layui-col-sm6 lw6">--%>
+<%--					<label class="layui-form-label">所在省份:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:input path="province" htmlEscape="false" id="province" class="form-control layui-input" readonly="true"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--				<div class="layui-item layui-col-sm6 lw6">--%>
+<%--					<label class="layui-form-label">所在地级市:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:input path="city" htmlEscape="false" id="city" class="form-control layui-input" readonly="true"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--				<div class="layui-item layui-col-sm6 lw6">--%>
+<%--					<label class="layui-form-label">所在区县:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:input path="county" htmlEscape="false" id="areaName1" class="form-control layui-input" readonly="true"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">建设地点:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectSite}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">创建人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.createBy.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目责任人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.leaderNameStr}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">所属部门:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" id="officeName" class="form-control layui-input" value="${projectRecords.officeName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目负责人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.projectMasterName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程类型:</label>
+					<div class="layui-input-block">
+						<form:select path="engineeringType" disabled="true" style="background-color: #f1f1f1"  class="form-control simple-select">
+							<form:options items="${engineeringInfo}" itemLabel="engineeringName" itemValue="id" htmlEscape="false"/>
+						</form:select>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目等级:</label>
+					<div class="layui-input-block">
+						<c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_grade')}" var="v">
+							<input type="radio" disabled name="submitMoney" id="submitMoney" value="${v.value}" title="${v.label}" <c:if test="${projectRecords.submitMoney==v.value}">checked</c:if>>
+						</c:forEach>
+						<p style="color: red;font-size: 12px;">200万以上部队或政府项目及500万以上其它项目为A级,其余为B级</p>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">送审规模(万元):</label>
+					<div class="layui-input-block">
+						<form:input path="submitScale" id="submitScale" readonly="true" maxlength="12" htmlEscape="false" onkeyup="wirteNum(this)" placeholder="请输入送审规模" class="form-control layui-input number"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">工作开始日期:</label>
+					<div class="layui-input-block">
+						<input class=" form-control layui-input " readonly="true" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">工作结束日期:</label>
+					<div class="layui-input-block">
+						<input class=" form-control layui-input " readonly="true" id="endingDate" name="endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">创建日期:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目类别:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectRecords.attachmentProjectSort}"/>
+					</div>
+				</div>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程结构:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectStructure}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">地上层数:</label>
+					<div class="layui-input-block">
+						<form:input path="onGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">底下层数:</label>
+					<div class="layui-input-block">
+						<form:input path="underGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">建筑面积或规模:</label>
+					<div class="layui-input-block">
+						<form:input path="buildingScale" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">计量单位:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.measuringUnit}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程用途:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectUse}"/>
+					</div>
+				</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">预估总投资额(万元):</label>
+					<div class="layui-input-block">
+						<input value="<fmt:formatNumber value="${projectRecords.estimateTotalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="estimateTotalFees" class="form-control layui-input number"  readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">咨询标的额(万元):</label>
+					<div class="layui-input-block">
+						<input value="<fmt:formatNumber value="${projectRecords.totalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="totalFees" class="form-control layui-input number"  readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中土建造价(万元):</label>
+					<div class="layui-input-block">
+						<input   value="<fmt:formatNumber value="${projectRecords.buildingFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中安装造价(万元):</label>
+					<div class="layui-input-block">
+						<input  value="<fmt:formatNumber value="${projectRecords.installFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中土建百分比(%):</label>
+					<div class="layui-input-block">
+						<form:input path="buildingPercent" htmlEscape="false" id="buildingPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中安装百分比(%):</label>
+					<div class="layui-input-block">
+						<form:input path="installPercent" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">施工单位:</label>
+					<div class="layui-input-block">
+						<form:input path="constructionUnit" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">施工方联系方式:</label>
+					<div class="layui-input-block">
+						<form:input path="constructionLinkman" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">单位造价(元):</label>
+					<div class="layui-input-block">
+						<input value="<fmt:formatNumber value="${projectRecords.unitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="unitFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">土建单位造价(元):</label>
+					<div class="layui-input-block">
+						<input  value="<fmt:formatNumber value="${projectRecords.buildingUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingUnitFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">安装单位造价(元):</label>
+					<div class="layui-input-block">
+						<input  value="<fmt:formatNumber value="${projectRecords.installUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installUnitFees" class="form-control layui-input" readonly="readonly"/>
+					</div>
+				</div>--%>
+				<div class="layui-item layui-col-sm6 lw6 with-textarea">
+					<label class="layui-form-label">工程概况:</label>
+					<div class="layui-input-block">
+						<textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.projectDesc}</textarea>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6 with-textarea">
+					<label class="layui-form-label">特殊要求:</label>
+					<div class="layui-input-block">
+						<textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.remarks}</textarea>
+					</div>
+				</div>
+			</div>
+
+
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>委托方联系人信息</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="contentTable" class="table table-bordered table-condensed no-bottom-margin details">
+						<thead>
+						<tr>
+							<th class="hide"></th>
+							<th width="25%">委托方</th>
+							<th width="25%">联系人姓名</th>
+							<th width="25%">联系方式1</th>
+							<th width="25%">联系方式2</th>
+						</tr>
+						</thead>
+						<tbody id="workClientLinkmanList">
+						</tbody>
+					</table>
+					<script type="text/template" id="workClientLinkmanTpl">//<!--
+					<tr id="workClientLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workClientLinkmanList{{idx}}_id" name="workClientLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workClientLinkmanList{{idx}}_delFlag" name="workClientLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name}}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+					</script>
+				</div>
+			</div>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>施工方信息</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="contentTable1" class="table table-bordered table-condensed no-bottom-margin details">
+						<thead>
+						<tr>
+							<th class="hide"></th>
+							<th width="25%">施工方单位名称</th>
+							<th width="25%">联系人姓名</th>
+							<th width="25%">联系方式1</th>
+							<th width="25%">联系方式2</th>
+						</tr>
+						</thead>
+						<tbody id="workConstructionLinkmanList">
+						</tbody>
+					</table>
+					<script type="text/template" id="workConstructionLinkmanTpl">//<!--
+					<tr id="workConstructionLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workConstructionLinkmanList{{idx}}_id" name="workConstructionLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workConstructionLinkmanList{{idx}}_delFlag" name="workConstructionLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name }}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+					</script>
+				</div>
+			</div>
+
+			<%--<div class="form-group layui-row">
+				<div class="form-group-label"><h2>项目报告</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="upTable" class="table table-bordered table-condensed details">
+						<thead>
+						<tr>
+							<th width="25%">报告编号</th>
+							<th width="25%">报告名称</th>
+							<th width="20%">工作内容类型</th>
+							<th width="10%">签章类型</th>
+							<th width="10%">创建日期</th>
+							<th width="10%">状态</th>
+						</tr>
+						</thead>
+						<tbody>
+						<c:choose>
+							<c:when test="${not empty projectRecords.projectReportData}">
+								<c:forEach items="${projectRecords.projectReportData}" var="projectReportData" varStatus="index">
+									<tr>
+										<td><a title="${projectReportData.number}" href="javascript:void(0)" onclick="openDialogView('查看报告详情', '${ctx}/projectcontentinfo/projectcontentinfo/form1?id=${projectReportData.id}','95%', '95%')">
+												${projectReportData.number}
+										</a></td>
+										<td>
+												${projectReportData.name}
+										</td>
+										<td title="${fns:getContentTypeName(projectReportData.type,"")}">
+												${fns:getContentTypeName(projectReportData.type,"")}
+										</td>
+										<td title="${projectReportData.reportType}">
+												${projectReportData.reportType}
+										</td>
+										<td>
+											<fmt:formatDate value="${projectReportData.reportDate}" pattern="yyyy-MM-dd"/>
+										</td>
+										<td class="op-td">
+												&lt;%&ndash;<c:choose>&ndash;%&gt;
+												&lt;%&ndash;<c:when test="${empty projectReportData.status || projectReportData.status eq 1}">&ndash;%&gt;
+												&lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+												&lt;%&ndash;<a href="javascript:void(0)" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+												&lt;%&ndash;</div>&ndash;%&gt;
+												&lt;%&ndash;</c:when>&ndash;%&gt;
+												&lt;%&ndash;<c:otherwise>&ndash;%&gt;
+												&lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+												&lt;%&ndash;<a href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/projectcontentinfo/projectcontentinfo/getProcessOne?id=${id}&projectReportData.id=${projectReportData.id}&type=1','95%','95%')" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+												&lt;%&ndash;</div>&ndash;%&gt;
+												&lt;%&ndash;</c:otherwise>&ndash;%&gt;
+												&lt;%&ndash;</c:choose>&ndash;%&gt;
+											<div style="text-align: center" id="status_td_${index.index+1}">
+											</div>
+											<script>
+												initRecordStatus(${index.index+1},"${id}","${projectReportData.id}","${projectReportData.status}");
+											</script>
+										</td>
+									</tr>
+								</c:forEach>
+							</c:when>
+							<c:otherwise>
+								<tr>
+									<td colspan="7">
+										暂无数据
+									</td>
+								</tr>
+							</c:otherwise>
+						</c:choose>
+						</tbody>
+					</table>
+				</div>
+			</div>--%>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>项目计划列表</h2></div>
+				<div class="layui-item layui-col-sm12 lw7">
+					<div class="layui-item nav-btns">
+<%--						<div class="layui-item nav-btns" style="padding-left:0px;">--%>
+<%--							<a class="nav-btn nav-btn-add"--%>
+<%--							   onclick="addRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl);workClientBankRowIdx = workClientBankRowIdx + 1;"--%>
+<%--							   title="新增"><i class="fa fa-plus"></i> 新增</a>--%>
+<%--							<shiro:hasPermission name="project:projectPlan:export">--%>
+<%--								<a class="nav-btn nav-btn-export" title="导出"  onclick="return confirmx('确认要导出该项目计划列表吗?', '${ctx}/project/projectPlan/export?id=${projectRecords.id}');"><i class="fa fa-file-excel-o"></i> 导出</a>--%>
+<%--							</shiro:hasPermission>--%>
+<%--						</div>--%>
+						<table id="bankinfo" class="table table-bordered table-condensed can-edit">
+							<thead>
+							<tr>
+								<th width="60px">编号</th>
+								<th >任务阶段</th>
+								<th >计划开始时间</th>
+								<th >计划结束时间</th>
+								<th >提醒人</th>
+								<th >完成人</th>
+							</tr>
+							</thead>
+							<tbody id="projectPlanList">
+
+							</tbody>
+						</table>
+						<script type="text/template" id="workClientBankTpl">//<!--
+                                <tr id="projectPlanList{{idx}}">
+                                    <td class="hide">
+                                        <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" readonly="true" value="{{row.id}}"/>
+                                        <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" readonly="true" value="0"/>
+                                        <input id="projectPlanList{{idx}}_remindId" name="projectPlanList[{{idx}}].remindId" type="hidden" readonly="true" value="{{row.remindId}}"/>
+                                    </td>
+
+                                    <td width="60px">
+                                        <input id="projectPlanList{{idx}}_costNum" name="projectPlanList[{{idx}}].costNum" readonly="readonly" style="text-align: center"  value="{{idx}}" type="text" class="form-control contentDetail"/>
+                                    </td>
+                                    <td>
+                                        <input id="projectPlanList{{idx}}_projectStage" name="projectPlanList[{{idx}}].projectStage" readonly="true" list ="num" title="{{row.projectStage}}"  value="{{row.projectStage}}" class="form-control required"/>
+                                    </td>
+
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_beginDate" name="projectPlanList[{{idx}}].beginDate" style="text-align: center" type="text" value="{{row.beginDate}}"  class="form-control required datetime"/>
+                                    </td>
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_endDate" name="projectPlanList[{{idx}}].endDate" style="text-align: center" type="text" value="{{row.endDate}}"  class="form-control required datetime"/>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_remindName" name="remindName" readonly="readonly" style="text-align: center"  value="{{row.remindName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser  id="projectPlanList{{idx}}_remindName" name="remindName" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].remindName" labelValue="{{row.remindName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataByPlan?type=3&projectId=${projectRecords.id}" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true"/>--%>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" readonly="readonly" style="text-align: center"  value="{{row.finishName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].finishName" labelValue="{{row.finishName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true" />--%>
+                                    </td>
+
+<%--                                    <td class="text-center op-td" width="10">--%>
+<%--                                        {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#projectPlanList{{idx}}')" title="删除"><i class="fa fa-trash"></i>&nbsp;删除</span>{{/delBtn}}--%>
+<%--                                    </td>--%>
+                                </tr>//-->
+						</script>
+					</div>
+				</div>
+			</div>
+<%--			<div class="form-group layui-row">--%>
+<%--				<div class="form-group-label"><h2>项目计划附件信息</h2></div>--%>
+<%--				<div class="layui-item layui-col-xs12 form-table-container" >--%>
+<%--					<table id="listAttachment" class="table table-bordered table-condensed no-bottom-margin details">--%>
+<%--						<thead>--%>
+<%--						<tr>--%>
+<%--							<th width="25%">文件预览</th>--%>
+<%--							<th width="25%">上传人</th>--%>
+<%--							<th width="25%">上传时间</th>--%>
+<%--							<th width="25%">操作</th>--%>
+<%--						</tr>--%>
+<%--						</thead>--%>
+<%--						<tbody id="file_attachment">--%>
+<%--						<c:forEach items="${projectRecords.workAttachments}" var="workClientAttachment" varStatus="status">--%>
+<%--							<tr>--%>
+<%--									&lt;%&ndash;<td>${status.index + 1}</td>&ndash;%&gt;--%>
+<%--								<c:choose>--%>
+<%--									<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">--%>
+<%--										<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">--%>
+<%--									</c:when>--%>
+<%--									<c:otherwise>--%>
+<%--										<c:choose>--%>
+<%--											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">--%>
+<%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%','1')">${workClientAttachment.attachmentName}</a></td>--%>
+<%--											</c:when>--%>
+<%--											<c:otherwise>--%>
+<%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%')">${workClientAttachment.attachmentName}</a></td>--%>
+<%--											</c:otherwise>--%>
+<%--										</c:choose>--%>
+<%--									</c:otherwise>--%>
+<%--								</c:choose>--%>
+<%--								<td>${workClientAttachment.createBy.name}</td>--%>
+<%--								<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd"/></td>--%>
+<%--								<td  class="op-td">--%>
+<%--									<a href="javascript:location.href=encodeURI('${ctx}/workcontractinfo/workContractInfo/downLoadAttach?file=${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>--%>
+<%--								</td>--%>
+<%--							</tr>--%>
+<%--						</c:forEach>--%>
+<%--						</tbody>--%>
+<%--					</table>--%>
+<%--				</div>--%>
+<%--			</div>--%>
+<%--			<div class="form-group layui-row">--%>
+<%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
+<%--					<div class="layui-input-block" style="margin-left:10px;position: relative">--%>
+<%--						<form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
+<%--						<a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
+<%--						<input type="file" name="upload_files" style="display: none;">--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--				<div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
+<%--					<div class="layui-input-block" style="margin-left:10px;">--%>
+<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
+<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
+<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
+<%--						<div style="padding: 5px 0px;">--%>
+<%--							<form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
+<%--								<form:option value=""/>--%>
+<%--								<form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
+<%--							</form:select>--%>
+<%--						</div>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--			</div>--%>
+
+			<script>
+                var workClientLinkmanRowIdx = 0, workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workConstructionLinkmanRowIdx = 0, workConstructionLinkmanTpl = $("#workConstructionLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                $(document).ready(function() {
+                    var data = ${fns:toJson(projectRecords.workClientLinkmanList)};
+                    for (var i=0; i<data.length; i++){
+                        addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                        workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                    }
+                    var dataBank = ${fns:toJson(projectRecords.workConstructionLinkmanList)};
+                    for (var i=0; i<dataBank.length; i++){
+                        addRow('#workConstructionLinkmanList', workConstructionLinkmanRowIdx, workConstructionLinkmanTpl, dataBank[i]);
+                        workConstructionLinkmanRowIdx = workConstructionLinkmanRowIdx + 1;
+                    }
+
+                });
+				layui.use('form', function () {
+					var form = layui.form;
+					form.render();
+				});
+                function f1(row) {
+					// window.parent.document.getElementById('opinion').value = row;
+					$("#opinion").val(row)
+                }
+				function openDialogre(title,url,width,height,target,buttons) {
+					if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+						width = 'auto';
+						height = 'auto';
+					} else {//如果是PC端,根据用户设置的width和height显示。
+					}
+					var split = buttons.split(",");
+					top.layer.open({
+						type: 2,
+						area: [width, height],
+						title: title,
+						maxmin: true, //开启最大化最小化按钮
+						skin: 'three-btns',
+						content: url,
+						btn: split,
+						btn1: function(index, layero){
+							top.layer.close(index)
+							document.getElementById('iframe').contentWindow.location.reload();
+						}
+					});
+				}
+			</script>
+
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>项目组成员列表</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="usersListTable" class="table table-bordered table-condensed no-bottom-margin details">
+						<thead>
+						<tr>
+							<th width="25%">姓名</th>
+							<th width="25%">部门</th>
+							<th width="25%">职级</th>
+							<th width="55px;">状态</th>
+						</tr>
+						</thead>
+						<tbody id="usersList">
+						<c:if test="${not empty projectRecords.projectMembers}">
+							<c:forEach items="${projectRecords.projectMembers}" var="user">
+								<tr id="${user.id}">
+									<td>
+											${user.name}
+									</td>
+									<td>
+											${user.office.name}
+									</td>
+									<td>
+											${user.basicInfo.jobGrade.name}
+									</td>
+									<td>
+										<c:choose>
+											<c:when test="${user.delFlag == 0}">
+												正常
+											</c:when>
+											<c:otherwise>
+												移除
+											</c:otherwise>
+										</c:choose>
+									</td>
+								</tr>
+							</c:forEach>
+						</c:if>
+						</tbody>
+					</table>
+				</div>
+			</div>
+
+	</form:form>
+		<div class="form-group-label">
+			<div style="float: right"> <a href="javascript:void(0)" style='background-color: #FFB800' onclick="openDialogre('个人模板列表', '${ctx}/auditTemplate/auditTemplate/templateList?identification=${identification}&name=${identificationName}','80%', '70%','','关闭')" class="nav-btn layui-btn layui-btn-sm" ><i class="fa fa-file-excel-o"></i> 审核意见模板列表</a></div>
+			<h2>审批意见</h2>
+		</div>
+		<iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>审批流程</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<act:flowChart procInsId="${processInstanceId}"/>
+					<act:histoicFlow procInsId="${processInstanceId}"/>
+				</div>
+			</div>
+	</div>
+</div>
+</body>
+</html>

File diff ditekan karena terlalu besar
+ 1081 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalForm.jsp


+ 843 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsApprovalModify.jsp

@@ -0,0 +1,843 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>项目审批管理</title>
+    <meta name="decorator" content="default"/>
+    <script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+
+    <script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+                $("#opinion").val(ss);
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    if(obj == 2){
+                        $("#flag").val("no1");
+                    }else {
+                        $("#flag").val("no2");
+                    }
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+
+            var tt = $("#contractNum").val();
+            if (tt == null || tt === "") {
+                $("#divv").hide();
+                $("#divv2").show();
+                $("#divv3").hide();
+                setTimeout(function () {
+                    var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+                    $("#clientName").val(tt);
+                },100);
+            }else{
+                $("#divv2").hide();
+            }
+
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+            var contractNum = $("#contractNum").val();
+            if (contractNum == null || contractNum === "") {
+                $("#div1").hide();
+                $("#div3").hide();
+                setTimeout(function () {
+                    var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+                    $("#clientName").val(tt);
+                },100);
+            }
+
+            var contractInformation='${projectRecords.workContractInfo.contractInformation}'
+            if(contractInformation == "1"){
+                $("#c2").show();
+                $("#c1").hide();
+            }else{
+                $("#c2").hide();
+                $("#c1").show();
+            }
+        });
+
+        function insertTitle(tValue){
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+                var attachmentId = $("#id").val();
+                var attachmentFlag = "82";
+                console.log(file);
+                var timestamp=new Date().getTime();
+
+                var storeAs = "projectRecods";
+                var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+                var divId = "_attachment";
+                $("#addFile"+divId).show();
+                multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
+        }
+
+        function addFile() {
+            $("#attachment_file").click();
+        }
+
+        function addRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTemplete(list, idx, tpl, row, idx);
+        }
+
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+    </script>
+</head>
+<body >
+<div class="single-form">
+    <div class="container">
+        <form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/ruralProject/electronicSeal/approvalSaveAudit" method="post" class="layui-form">
+            <form:hidden path="id"/>
+            <form:hidden path="home"/>
+            <form:hidden path="act.taskId"/>
+            <form:hidden path="act.taskName"/>
+            <form:hidden id="taskDefKey" path="act.taskDefKey"/>
+            <form:hidden path="act.procInsId"/>
+            <form:hidden path="act.procDefId"/>
+            <form:hidden path="processInstanceId"/>
+            <form:hidden id="flag" path="act.flag"/>
+            <input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
+            <c:set var="status" value="${projectRecords.act.status}" />
+
+            <div class="form-group layui-row first">
+                <div class="form-group-label"><h2>项目合同信息</h2></div>
+                <div id="div1">
+                    <div class="layui-item layui-col-sm12 lw6">
+                        <label class="layui-form-label">合同编号:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false" id="contractNum"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.contractNum}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">合同名称:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.name}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6" id="c1">
+                        <label class="layui-form-label double-line">合同金额(元):</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatNumber value="${projectRecords.workContractInfo.contractPrice}" pattern="#,##0.00#"/>"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6" id="c2" style="display: none">
+                        <label class="layui-form-label">费率描述:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" id="otherDetails"  class="form-control layui-input" value="${projectRecords.workContractInfo.otherDetails}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">委托方:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false" id="clientName" readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.client.name}"/>
+                        </div>
+                    </div>
+                </div>
+                <div id="divv2">
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">无合同</label>
+                    </div>
+                </div>
+                <div id="div3">
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">合同类别:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" style="background-color: #f1f1f1" class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+                                <%--							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+
+            <div class="form-group layui-row first">
+                <div class="form-group-label"><h2>项目基础信息</h2></div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目名称:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目编号:</label>
+                    <div class="layui-input-block">
+                        <div class="input-group">
+                            <form:input path="projectId" htmlEscape="false"  readonly="true" class="form-control layui-input"/>
+                            <span class="input-group-btn">
+                                <label class="form-status"><c:choose><c:when test="${not empty projectRecords.projectStatus}">${fns:getDictLabel(projectRecords.projectStatus, 'rural_project_audit_state', '')}</c:when><c:otherwise>新添</c:otherwise></c:choose></label>
+                             </span>
+                        </div>
+                    </div>
+                </div>
+                    <%--<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--<label class="layui-form-label">规模类型:</label>--%>
+                    <%--<div class="layui-input-block">--%>
+                    <%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleType}"/>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--<label class="layui-form-label">规模单位:</label>--%>
+                    <%--<div class="layui-input-block">--%>
+                    <%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleUnit}"/>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--<label class="layui-form-label">规模数量:</label>--%>
+                    <%--<div class="layui-input-block">--%>
+                    <%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleQuantity}"/>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目所在地:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.province}-${projectRecords.city}-${projectRecords.county}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">投资性质:</label>
+                    <div class="layui-input-block">
+                        <c:forEach  items="${fns:getMainDictList('project_properties')}" var="v">
+                            <c:if test="${v.value==projectRecords.projectProperties}">
+                                <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${v.label}"/>
+                            </c:if>
+                        </c:forEach>
+                    </div>
+                </div>
+                    <%--				<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--					<label class="layui-form-label">所在省份:</label>--%>
+                    <%--					<div class="layui-input-block">--%>
+                    <%--						<form:input path="province" htmlEscape="false" id="province" class="form-control layui-input" readonly="true"/>--%>
+                    <%--					</div>--%>
+                    <%--				</div>--%>
+                    <%--				<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--					<label class="layui-form-label">所在地级市:</label>--%>
+                    <%--					<div class="layui-input-block">--%>
+                    <%--						<form:input path="city" htmlEscape="false" id="city" class="form-control layui-input" readonly="true"/>--%>
+                    <%--					</div>--%>
+                    <%--				</div>--%>
+                    <%--				<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--					<label class="layui-form-label">所在区县:</label>--%>
+                    <%--					<div class="layui-input-block">--%>
+                    <%--						<form:input path="county" htmlEscape="false" id="areaName1" class="form-control layui-input" readonly="true"/>--%>
+                    <%--					</div>--%>
+                    <%--				</div>--%>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">建设地点:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectSite}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">创建人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.createBy.name}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目责任人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.leaderNameStr}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">所属部门:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" id="officeName" class="form-control layui-input" value="${projectRecords.officeName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目负责人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.projectMasterName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">工程类型:</label>
+                    <div class="layui-input-block">
+                        <form:select path="engineeringType" disabled="true" style="background-color: #f1f1f1"  class="form-control simple-select">
+                            <form:options items="${engineeringInfo}" itemLabel="engineeringName" itemValue="id" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目等级:</label>
+                    <div class="layui-input-block">
+                        <c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_grade')}" var="v">
+                            <input type="radio" disabled name="submitMoney" id="submitMoney" value="${v.value}" title="${v.label}" <c:if test="${projectRecords.submitMoney==v.value}">checked</c:if>>
+                        </c:forEach>
+                        <p style="color: red;font-size: 12px;">200万以上部队或政府项目及500万以上其它项目为A级,其余为B级</p>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line">送审规模(万元):</label>
+                    <div class="layui-input-block">
+                        <form:input path="submitScale" id="submitScale" readonly="true" maxlength="12" htmlEscape="false" onkeyup="wirteNum(this)" placeholder="请输入送审规模" class="form-control layui-input number"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line">工作开始日期:</label>
+                    <div class="layui-input-block">
+                        <input class=" form-control layui-input " readonly="true" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line">工作结束日期:</label>
+                    <div class="layui-input-block">
+                        <input class=" form-control layui-input " readonly="true" id="endingDate" name="endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">创建日期:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目类别:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectRecords.attachmentProjectSort}"/>
+                    </div>
+                </div>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">工程结构:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectStructure}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">地上层数:</label>
+                        <div class="layui-input-block">
+                            <form:input path="onGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">底下层数:</label>
+                        <div class="layui-input-block">
+                            <form:input path="underGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">建筑面积或规模:</label>
+                        <div class="layui-input-block">
+                            <form:input path="buildingScale" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">计量单位:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.measuringUnit}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">工程用途:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectUse}"/>
+                        </div>
+                    </div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">预估总投资额(万元):</label>
+                        <div class="layui-input-block">
+                            <input value="<fmt:formatNumber value="${projectRecords.estimateTotalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="estimateTotalFees" class="form-control layui-input number"  readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">咨询标的额(万元):</label>
+                        <div class="layui-input-block">
+                            <input value="<fmt:formatNumber value="${projectRecords.totalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="totalFees" class="form-control layui-input number"  readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中土建造价(万元):</label>
+                        <div class="layui-input-block">
+                            <input   value="<fmt:formatNumber value="${projectRecords.buildingFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中安装造价(万元):</label>
+                        <div class="layui-input-block">
+                            <input  value="<fmt:formatNumber value="${projectRecords.installFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中土建百分比(%):</label>
+                        <div class="layui-input-block">
+                            <form:input path="buildingPercent" htmlEscape="false" id="buildingPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中安装百分比(%):</label>
+                        <div class="layui-input-block">
+                            <form:input path="installPercent" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">施工单位:</label>
+                        <div class="layui-input-block">
+                            <form:input path="constructionUnit" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">施工方联系方式:</label>
+                        <div class="layui-input-block">
+                            <form:input path="constructionLinkman" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">单位造价(元):</label>
+                        <div class="layui-input-block">
+                            <input value="<fmt:formatNumber value="${projectRecords.unitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="unitFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">土建单位造价(元):</label>
+                        <div class="layui-input-block">
+                            <input  value="<fmt:formatNumber value="${projectRecords.buildingUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingUnitFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">安装单位造价(元):</label>
+                        <div class="layui-input-block">
+                            <input  value="<fmt:formatNumber value="${projectRecords.installUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installUnitFees" class="form-control layui-input" readonly="readonly"/>
+                        </div>
+                    </div>--%>
+                <div class="layui-item layui-col-sm6 lw6 with-textarea">
+                    <label class="layui-form-label">工程概况:</label>
+                    <div class="layui-input-block">
+                        <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.projectDesc}</textarea>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6 with-textarea">
+                    <label class="layui-form-label">特殊要求:</label>
+                    <div class="layui-input-block">
+                        <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.remarks}</textarea>
+                    </div>
+                </div>
+            </div>
+
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>委托方联系人信息</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="contentTable" class="table table-bordered table-condensed no-bottom-margin details">
+                        <thead>
+                        <tr>
+                            <th class="hide"></th>
+                            <th width="25%">委托方</th>
+                            <th width="25%">联系人姓名</th>
+                            <th width="25%">联系方式1</th>
+                            <th width="25%">联系方式2</th>
+                        </tr>
+                        </thead>
+                        <tbody id="workClientLinkmanList">
+                        </tbody>
+                    </table>
+                    <script type="text/template" id="workClientLinkmanTpl">//<!--
+					<tr id="workClientLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workClientLinkmanList{{idx}}_id" name="workClientLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workClientLinkmanList{{idx}}_delFlag" name="workClientLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name}}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+                    </script>
+                </div>
+            </div>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>施工方信息</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="contentTable1" class="table table-bordered table-condensed no-bottom-margin details">
+                        <thead>
+                        <tr>
+                            <th class="hide"></th>
+                            <th width="25%">施工方单位名称</th>
+                            <th width="25%">联系人姓名</th>
+                            <th width="25%">联系方式1</th>
+                            <th width="25%">联系方式2</th>
+                        </tr>
+                        </thead>
+                        <tbody id="workConstructionLinkmanList">
+                        </tbody>
+                    </table>
+                    <script type="text/template" id="workConstructionLinkmanTpl">//<!--
+					<tr id="workConstructionLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workConstructionLinkmanList{{idx}}_id" name="workConstructionLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workConstructionLinkmanList{{idx}}_delFlag" name="workConstructionLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name }}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+                    </script>
+                </div>
+            </div>
+
+            <%--<div class="form-group layui-row">
+                <div class="form-group-label"><h2>项目报告</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="upTable" class="table table-bordered table-condensed details">
+                        <thead>
+                        <tr>
+                            <th width="25%">报告编号</th>
+                            <th width="25%">报告名称</th>
+                            <th width="20%">工作内容类型</th>
+                            <th width="10%">签章类型</th>
+                            <th width="10%">创建日期</th>
+                            <th width="10%">状态</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${not empty projectRecords.projectReportData}">
+                                <c:forEach items="${projectRecords.projectReportData}" var="projectReportData" varStatus="index">
+                                    <tr>
+                                        <td><a title="${projectReportData.number}" href="javascript:void(0)" onclick="openDialogView('查看报告详情', '${ctx}/projectcontentinfo/projectcontentinfo/form1?id=${projectReportData.id}','95%', '95%')">
+                                                ${projectReportData.number}
+                                        </a></td>
+                                        <td>
+                                                ${projectReportData.name}
+                                        </td>
+                                        <td title="${fns:getContentTypeName(projectReportData.type,"")}">
+                                                ${fns:getContentTypeName(projectReportData.type,"")}
+                                        </td>
+                                        <td title="${projectReportData.reportType}">
+                                                ${projectReportData.reportType}
+                                        </td>
+                                        <td>
+                                            <fmt:formatDate value="${projectReportData.reportDate}" pattern="yyyy-MM-dd"/>
+                                        </td>
+                                        <td class="op-td">
+                                                &lt;%&ndash;<c:choose>&ndash;%&gt;
+                                                &lt;%&ndash;<c:when test="${empty projectReportData.status || projectReportData.status eq 1}">&ndash;%&gt;
+                                                &lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+                                                &lt;%&ndash;<a href="javascript:void(0)" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+                                                &lt;%&ndash;</div>&ndash;%&gt;
+                                                &lt;%&ndash;</c:when>&ndash;%&gt;
+                                                &lt;%&ndash;<c:otherwise>&ndash;%&gt;
+                                                &lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+                                                &lt;%&ndash;<a href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/projectcontentinfo/projectcontentinfo/getProcessOne?id=${id}&projectReportData.id=${projectReportData.id}&type=1','95%','95%')" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+                                                &lt;%&ndash;</div>&ndash;%&gt;
+                                                &lt;%&ndash;</c:otherwise>&ndash;%&gt;
+                                                &lt;%&ndash;</c:choose>&ndash;%&gt;
+                                            <div style="text-align: center" id="status_td_${index.index+1}">
+                                            </div>
+                                            <script>
+                                                initRecordStatus(${index.index+1},"${id}","${projectReportData.id}","${projectReportData.status}");
+                                            </script>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td colspan="7">
+                                        暂无数据
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+                        </tbody>
+                    </table>
+                </div>
+            </div>--%>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>项目计划列表</h2></div>
+                <div class="layui-item layui-col-sm12 lw7">
+                    <div class="layui-item nav-btns">
+                            <%--						<div class="layui-item nav-btns" style="padding-left:0px;">--%>
+                            <%--							<a class="nav-btn nav-btn-add"--%>
+                            <%--							   onclick="addRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl);workClientBankRowIdx = workClientBankRowIdx + 1;"--%>
+                            <%--							   title="新增"><i class="fa fa-plus"></i> 新增</a>--%>
+                            <%--							<shiro:hasPermission name="project:projectPlan:export">--%>
+                            <%--								<a class="nav-btn nav-btn-export" title="导出"  onclick="return confirmx('确认要导出该项目计划列表吗?', '${ctx}/project/projectPlan/export?id=${projectRecords.id}');"><i class="fa fa-file-excel-o"></i> 导出</a>--%>
+                            <%--							</shiro:hasPermission>--%>
+                            <%--						</div>--%>
+                        <table id="bankinfo" class="table table-bordered table-condensed can-edit">
+                            <thead>
+                            <tr>
+                                <th width="60px">编号</th>
+                                <th >任务阶段</th>
+                                <th >计划开始时间</th>
+                                <th >计划结束时间</th>
+                                <th >提醒人</th>
+                                <th >完成人</th>
+                            </tr>
+                            </thead>
+                            <tbody id="projectPlanList">
+
+                            </tbody>
+                        </table>
+                        <script type="text/template" id="workClientBankTpl">//<!--
+                                <tr id="projectPlanList{{idx}}">
+                                    <td class="hide">
+                                        <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" readonly="true" value="{{row.id}}"/>
+                                        <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" readonly="true" value="0"/>
+                                        <input id="projectPlanList{{idx}}_remindId" name="projectPlanList[{{idx}}].remindId" type="hidden" readonly="true" value="{{row.remindId}}"/>
+                                    </td>
+
+                                    <td width="60px">
+                                        <input id="projectPlanList{{idx}}_costNum" name="projectPlanList[{{idx}}].costNum" readonly="readonly" style="text-align: center"  value="{{idx}}" type="text" class="form-control contentDetail"/>
+                                    </td>
+                                    <td>
+                                        <input id="projectPlanList{{idx}}_projectStage" name="projectPlanList[{{idx}}].projectStage" readonly="true" list ="num" title="{{row.projectStage}}"  value="{{row.projectStage}}" class="form-control required"/>
+                                    </td>
+
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_beginDate" name="projectPlanList[{{idx}}].beginDate" style="text-align: center" type="text" value="{{row.beginDate}}"  class="form-control required datetime"/>
+                                    </td>
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_endDate" name="projectPlanList[{{idx}}].endDate" style="text-align: center" type="text" value="{{row.endDate}}"  class="form-control required datetime"/>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_remindName" name="remindName" readonly="readonly" style="text-align: center"  value="{{row.remindName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser  id="projectPlanList{{idx}}_remindName" name="remindName" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].remindName" labelValue="{{row.remindName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataByPlan?type=3&projectId=${projectRecords.id}" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true"/>--%>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" readonly="readonly" style="text-align: center"  value="{{row.finishName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].finishName" labelValue="{{row.finishName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true" />--%>
+                                    </td>
+
+<%--                                    <td class="text-center op-td" width="10">--%>
+<%--                                        {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#projectPlanList{{idx}}')" title="删除"><i class="fa fa-trash"></i>&nbsp;删除</span>{{/delBtn}}--%>
+<%--                                    </td>--%>
+                                </tr>//-->
+                        </script>
+                    </div>
+                </div>
+            </div>
+            <%--			<div class="form-group layui-row">--%>
+            <%--				<div class="form-group-label"><h2>项目计划附件信息</h2></div>--%>
+            <%--				<div class="layui-item layui-col-xs12 form-table-container" >--%>
+            <%--					<table id="listAttachment" class="table table-bordered table-condensed no-bottom-margin details">--%>
+            <%--						<thead>--%>
+            <%--						<tr>--%>
+            <%--							<th width="25%">文件预览</th>--%>
+            <%--							<th width="25%">上传人</th>--%>
+            <%--							<th width="25%">上传时间</th>--%>
+            <%--							<th width="25%">操作</th>--%>
+            <%--						</tr>--%>
+            <%--						</thead>--%>
+            <%--						<tbody id="file_attachment">--%>
+            <%--						<c:forEach items="${projectRecords.workAttachments}" var="workClientAttachment" varStatus="status">--%>
+            <%--							<tr>--%>
+            <%--									&lt;%&ndash;<td>${status.index + 1}</td>&ndash;%&gt;--%>
+            <%--								<c:choose>--%>
+            <%--									<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">--%>
+            <%--										<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">--%>
+            <%--									</c:when>--%>
+            <%--									<c:otherwise>--%>
+            <%--										<c:choose>--%>
+            <%--											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">--%>
+            <%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%','1')">${workClientAttachment.attachmentName}</a></td>--%>
+            <%--											</c:when>--%>
+            <%--											<c:otherwise>--%>
+            <%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%')">${workClientAttachment.attachmentName}</a></td>--%>
+            <%--											</c:otherwise>--%>
+            <%--										</c:choose>--%>
+            <%--									</c:otherwise>--%>
+            <%--								</c:choose>--%>
+            <%--								<td>${workClientAttachment.createBy.name}</td>--%>
+            <%--								<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd"/></td>--%>
+            <%--								<td  class="op-td">--%>
+            <%--									<a href="javascript:location.href=encodeURI('${ctx}/workcontractinfo/workContractInfo/downLoadAttach?file=${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>--%>
+            <%--								</td>--%>
+            <%--							</tr>--%>
+            <%--						</c:forEach>--%>
+            <%--						</tbody>--%>
+            <%--					</table>--%>
+            <%--				</div>--%>
+            <%--			</div>--%>
+            <%--			<div class="form-group layui-row">--%>
+            <%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
+            <%--					<div class="layui-input-block" style="margin-left:10px;position: relative">--%>
+            <%--						<form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
+            <%--						<a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
+            <%--						<input type="file" name="upload_files" style="display: none;">--%>
+            <%--					</div>--%>
+            <%--				</div>--%>
+            <%--				<div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
+            <%--					<div class="layui-input-block" style="margin-left:10px;">--%>
+            <%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
+            <%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
+            <%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
+            <%--						<div style="padding: 5px 0px;">--%>
+            <%--							<form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
+            <%--								<form:option value=""/>--%>
+            <%--								<form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
+            <%--							</form:select>--%>
+            <%--						</div>--%>
+            <%--					</div>--%>
+            <%--				</div>--%>
+            <%--			</div>--%>
+
+            <script>
+                var workClientLinkmanRowIdx = 0, workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workConstructionLinkmanRowIdx = 0, workConstructionLinkmanTpl = $("#workConstructionLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                $(document).ready(function() {
+                    var data = ${fns:toJson(projectRecords.workClientLinkmanList)};
+                    for (var i=0; i<data.length; i++){
+                        addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                        workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                    }
+                    var dataBank = ${fns:toJson(projectRecords.workConstructionLinkmanList)};
+                    for (var i=0; i<dataBank.length; i++){
+                        addRow('#workConstructionLinkmanList', workConstructionLinkmanRowIdx, workConstructionLinkmanTpl, dataBank[i]);
+                        workConstructionLinkmanRowIdx = workConstructionLinkmanRowIdx + 1;
+                    }
+
+                });
+                layui.use('form', function () {
+                    var form = layui.form;
+                    form.render();
+                });
+                function f1(row) {
+                    // window.parent.document.getElementById('opinion').value = row;
+                    $("#opinion").val(row)
+                }
+                function openDialogre(title,url,width,height,target,buttons) {
+                    if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                        width = 'auto';
+                        height = 'auto';
+                    } else {//如果是PC端,根据用户设置的width和height显示。
+                    }
+                    var split = buttons.split(",");
+                    top.layer.open({
+                        type: 2,
+                        area: [width, height],
+                        title: title,
+                        maxmin: true, //开启最大化最小化按钮
+                        skin: 'three-btns',
+                        content: url,
+                        btn: split,
+                        btn1: function(index, layero){
+                            top.layer.close(index)
+                            document.getElementById('iframe').contentWindow.location.reload();
+                        }
+                    });
+                }
+            </script>
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>项目组成员列表</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="usersListTable" class="table table-bordered table-condensed no-bottom-margin details">
+                        <thead>
+                        <tr>
+                            <th width="25%">姓名</th>
+                            <th width="25%">部门</th>
+                            <th width="25%">职级</th>
+                            <th width="55px;">状态</th>
+                        </tr>
+                        </thead>
+                        <tbody id="usersList">
+                        <c:if test="${not empty projectRecords.projectMembers}">
+                            <c:forEach items="${projectRecords.projectMembers}" var="user">
+                                <tr id="${user.id}">
+                                    <td>
+                                            ${user.name}
+                                    </td>
+                                    <td>
+                                            ${user.office.name}
+                                    </td>
+                                    <td>
+                                            ${user.basicInfo.jobGrade.name}
+                                    </td>
+                                    <td>
+                                        <c:choose>
+                                            <c:when test="${user.delFlag == 0}">
+                                                正常
+                                            </c:when>
+                                            <c:otherwise>
+                                                移除
+                                            </c:otherwise>
+                                        </c:choose>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:if>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+
+        </form:form>
+        <%--<iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>--%>
+        <div class="form-group layui-row">
+            <div class="form-group-label"><h2>审批流程</h2></div>
+            <div class="layui-item layui-col-xs12 form-table-container" >
+                <act:flowChart procInsId="${processInstanceId}"/>
+                <act:histoicFlow procInsId="${processInstanceId}"/>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

+ 847 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureAudit.jsp

@@ -0,0 +1,847 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>项目审批管理</title>
+	<meta name="decorator" content="default"/>
+	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+				var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+				$("#opinion").val(ss);
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    if(obj == 2){
+                        $("#flag").val("no1");
+					}else {
+                        $("#flag").val("no2");
+					}
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+		  return false;
+		}
+		$(document).ready(function() {
+
+			var tt = $("#contractNum").val();
+			if (tt == null || tt === "") {
+				$("#divv").hide();
+				$("#divv2").show();
+				$("#divv3").hide();
+				setTimeout(function () {
+					var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+					$("#clientName").val(tt);
+				},100);
+			}else{
+				$("#divv2").hide();
+			}
+
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+
+			var contractNum = $("#contractNum").val();
+			if (contractNum == null || contractNum === "") {
+				$("#div1").hide();
+				$("#div3").hide();
+				setTimeout(function () {
+					var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+					$("#clientName").val(tt);
+				},100);
+			}
+
+			var contractInformation='${projectRecords.workContractInfo.contractInformation}'
+			if(contractInformation == "1"){
+				$("#c2").show();
+				$("#c1").hide();
+			}else{
+				$("#c2").hide();
+				$("#c1").show();
+			}
+		});
+
+        function insertTitle(tValue){
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+            var attachmentId = $("#id").val();
+            var attachmentFlag = "82";
+            console.log(file);
+            var timestamp=new Date().getTime();
+
+				var storeAs = "projectRecods";
+            var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+            var divId = "_attachment";
+            $("#addFile"+divId).show();
+            multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
+        }
+
+        function addFile() {
+            $("#attachment_file").click();
+        }
+
+        function addRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTemplete(list, idx, tpl, row, idx);
+        }
+
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+	</script>
+</head>
+<body >
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/ruralProject/electronicSeal/reportSignatureSaveAudit" method="post" class="layui-form">
+		<form:hidden path="id"/>
+		<form:hidden path="home"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden id="taskDefKey" path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden path="processInstanceId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
+		<c:set var="status" value="${projectRecords.act.status}" />
+
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>项目合同信息</h2></div>
+				<div id="div1">
+					<div class="layui-item layui-col-sm12 lw6">
+						<label class="layui-form-label">合同编号:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false" id="contractNum"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.contractNum}"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">合同名称:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.name}"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6" id="c1">
+						<label class="layui-form-label double-line">合同金额(元):</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatNumber value="${projectRecords.workContractInfo.contractPrice}" pattern="#,##0.00#"/>"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6" id="c2" style="display: none">
+						<label class="layui-form-label">费率描述:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" id="otherDetails"  class="form-control layui-input" value="${projectRecords.workContractInfo.otherDetails}"/>
+						</div>
+					</div>
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">委托方:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false" id="clientName" readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.client.name}"/>
+						</div>
+					</div>
+				</div>
+				<div id="divv2">
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">无合同</label>
+					</div>
+				</div>
+				<div id="div3">
+					<div class="layui-item layui-col-sm6 lw6">
+						<label class="layui-form-label">合同类别:</label>
+						<div class="layui-input-block">
+							<input htmlEscape="false"  readonly="true" style="background-color: #f1f1f1" class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+<%--							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
+						</div>
+					</div>
+				</div>
+			</div>
+
+
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>项目基础信息</h2></div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目名称:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectName}"/>
+                    </div>
+                </div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目编号:</label>
+					<div class="layui-input-block">
+                        <div class="input-group">
+                            <form:input path="projectId" htmlEscape="false"  readonly="true" class="form-control layui-input"/>
+                            <span class="input-group-btn">
+                                <label class="form-status"><c:choose><c:when test="${not empty projectRecords.projectStatus}">${fns:getDictLabel(projectRecords.projectStatus, 'rural_project_audit_state', '')}</c:when><c:otherwise>新添</c:otherwise></c:choose></label>
+                             </span>
+                        </div>
+					</div>
+				</div>
+				<%--<div class="layui-item layui-col-sm6 lw6">--%>
+					<%--<label class="layui-form-label">规模类型:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleType}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">--%>
+					<%--<label class="layui-form-label">规模单位:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleUnit}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">--%>
+					<%--<label class="layui-form-label">规模数量:</label>--%>
+					<%--<div class="layui-input-block">--%>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleQuantity}"/>--%>
+					<%--</div>--%>
+				<%--</div>--%>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目所在地:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.province}-${projectRecords.city}-${projectRecords.county}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw7">
+					<label class="layui-form-label">投资性质:</label>
+					<div class="layui-input-block">
+						<c:forEach  items="${fns:getMainDictList('project_properties')}" var="v">
+							<c:if test="${v.value==projectRecords.projectProperties}">
+								<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${v.label}"/>
+							</c:if>
+						</c:forEach>
+					</div>
+				</div>
+<%--				<div class="layui-item layui-col-sm6 lw6">--%>
+<%--					<label class="layui-form-label">所在省份:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:input path="province" htmlEscape="false" id="province" class="form-control layui-input" readonly="true"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--				<div class="layui-item layui-col-sm6 lw6">--%>
+<%--					<label class="layui-form-label">所在地级市:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:input path="city" htmlEscape="false" id="city" class="form-control layui-input" readonly="true"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--				<div class="layui-item layui-col-sm6 lw6">--%>
+<%--					<label class="layui-form-label">所在区县:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:input path="county" htmlEscape="false" id="areaName1" class="form-control layui-input" readonly="true"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">建设地点:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectSite}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">创建人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.createBy.name}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目责任人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.leaderNameStr}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">所属部门:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" id="officeName" class="form-control layui-input" value="${projectRecords.officeName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目负责人:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.projectMasterName}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程类型:</label>
+					<div class="layui-input-block">
+						<form:select path="engineeringType" disabled="true" style="background-color: #f1f1f1"  class="form-control simple-select">
+							<form:options items="${engineeringInfo}" itemLabel="engineeringName" itemValue="id" htmlEscape="false"/>
+						</form:select>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目等级:</label>
+					<div class="layui-input-block">
+						<c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_grade')}" var="v">
+							<input type="radio" disabled name="submitMoney" id="submitMoney" value="${v.value}" title="${v.label}" <c:if test="${projectRecords.submitMoney==v.value}">checked</c:if>>
+						</c:forEach>
+						<p style="color: red;font-size: 12px;">200万以上部队或政府项目及500万以上其它项目为A级,其余为B级</p>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">送审规模(万元):</label>
+					<div class="layui-input-block">
+						<form:input path="submitScale" id="submitScale" readonly="true" maxlength="12" htmlEscape="false" onkeyup="wirteNum(this)" placeholder="请输入送审规模" class="form-control layui-input number"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">工作开始日期:</label>
+					<div class="layui-input-block">
+						<input class=" form-control layui-input " readonly="true" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">工作结束日期:</label>
+					<div class="layui-input-block">
+						<input class=" form-control layui-input " readonly="true" id="endingDate" name="endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">创建日期:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">项目类别:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectRecords.attachmentProjectSort}"/>
+					</div>
+				</div>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程结构:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectStructure}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">地上层数:</label>
+					<div class="layui-input-block">
+						<form:input path="onGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">底下层数:</label>
+					<div class="layui-input-block">
+						<form:input path="underGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">建筑面积或规模:</label>
+					<div class="layui-input-block">
+						<form:input path="buildingScale" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">计量单位:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.measuringUnit}"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程用途:</label>
+					<div class="layui-input-block">
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectUse}"/>
+					</div>
+				</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">预估总投资额(万元):</label>
+					<div class="layui-input-block">
+						<input value="<fmt:formatNumber value="${projectRecords.estimateTotalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="estimateTotalFees" class="form-control layui-input number"  readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">咨询标的额(万元):</label>
+					<div class="layui-input-block">
+						<input value="<fmt:formatNumber value="${projectRecords.totalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="totalFees" class="form-control layui-input number"  readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中土建造价(万元):</label>
+					<div class="layui-input-block">
+						<input   value="<fmt:formatNumber value="${projectRecords.buildingFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中安装造价(万元):</label>
+					<div class="layui-input-block">
+						<input  value="<fmt:formatNumber value="${projectRecords.installFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中土建百分比(%):</label>
+					<div class="layui-input-block">
+						<form:input path="buildingPercent" htmlEscape="false" id="buildingPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">其中安装百分比(%):</label>
+					<div class="layui-input-block">
+						<form:input path="installPercent" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">施工单位:</label>
+					<div class="layui-input-block">
+						<form:input path="constructionUnit" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">施工方联系方式:</label>
+					<div class="layui-input-block">
+						<form:input path="constructionLinkman" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>--%>
+				<%--<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">单位造价(元):</label>
+					<div class="layui-input-block">
+						<input value="<fmt:formatNumber value="${projectRecords.unitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="unitFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">土建单位造价(元):</label>
+					<div class="layui-input-block">
+						<input  value="<fmt:formatNumber value="${projectRecords.buildingUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingUnitFees" class="form-control layui-input" readonly="true"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label double-line">安装单位造价(元):</label>
+					<div class="layui-input-block">
+						<input  value="<fmt:formatNumber value="${projectRecords.installUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installUnitFees" class="form-control layui-input" readonly="readonly"/>
+					</div>
+				</div>--%>
+				<div class="layui-item layui-col-sm6 lw6 with-textarea">
+					<label class="layui-form-label">工程概况:</label>
+					<div class="layui-input-block">
+						<textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.projectDesc}</textarea>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6 with-textarea">
+					<label class="layui-form-label">特殊要求:</label>
+					<div class="layui-input-block">
+						<textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.remarks}</textarea>
+					</div>
+				</div>
+			</div>
+
+
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>委托方联系人信息</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="contentTable" class="table table-bordered table-condensed no-bottom-margin details">
+						<thead>
+						<tr>
+							<th class="hide"></th>
+							<th width="25%">委托方</th>
+							<th width="25%">联系人姓名</th>
+							<th width="25%">联系方式1</th>
+							<th width="25%">联系方式2</th>
+						</tr>
+						</thead>
+						<tbody id="workClientLinkmanList">
+						</tbody>
+					</table>
+					<script type="text/template" id="workClientLinkmanTpl">//<!--
+					<tr id="workClientLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workClientLinkmanList{{idx}}_id" name="workClientLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workClientLinkmanList{{idx}}_delFlag" name="workClientLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name}}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+					</script>
+				</div>
+			</div>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>施工方信息</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="contentTable1" class="table table-bordered table-condensed no-bottom-margin details">
+						<thead>
+						<tr>
+							<th class="hide"></th>
+							<th width="25%">施工方单位名称</th>
+							<th width="25%">联系人姓名</th>
+							<th width="25%">联系方式1</th>
+							<th width="25%">联系方式2</th>
+						</tr>
+						</thead>
+						<tbody id="workConstructionLinkmanList">
+						</tbody>
+					</table>
+					<script type="text/template" id="workConstructionLinkmanTpl">//<!--
+					<tr id="workConstructionLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workConstructionLinkmanList{{idx}}_id" name="workConstructionLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workConstructionLinkmanList{{idx}}_delFlag" name="workConstructionLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name }}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+					</script>
+				</div>
+			</div>
+
+			<%--<div class="form-group layui-row">
+				<div class="form-group-label"><h2>项目报告</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="upTable" class="table table-bordered table-condensed details">
+						<thead>
+						<tr>
+							<th width="25%">报告编号</th>
+							<th width="25%">报告名称</th>
+							<th width="20%">工作内容类型</th>
+							<th width="10%">签章类型</th>
+							<th width="10%">创建日期</th>
+							<th width="10%">状态</th>
+						</tr>
+						</thead>
+						<tbody>
+						<c:choose>
+							<c:when test="${not empty projectRecords.projectReportData}">
+								<c:forEach items="${projectRecords.projectReportData}" var="projectReportData" varStatus="index">
+									<tr>
+										<td><a title="${projectReportData.number}" href="javascript:void(0)" onclick="openDialogView('查看报告详情', '${ctx}/projectcontentinfo/projectcontentinfo/form1?id=${projectReportData.id}','95%', '95%')">
+												${projectReportData.number}
+										</a></td>
+										<td>
+												${projectReportData.name}
+										</td>
+										<td title="${fns:getContentTypeName(projectReportData.type,"")}">
+												${fns:getContentTypeName(projectReportData.type,"")}
+										</td>
+										<td title="${projectReportData.reportType}">
+												${projectReportData.reportType}
+										</td>
+										<td>
+											<fmt:formatDate value="${projectReportData.reportDate}" pattern="yyyy-MM-dd"/>
+										</td>
+										<td class="op-td">
+												&lt;%&ndash;<c:choose>&ndash;%&gt;
+												&lt;%&ndash;<c:when test="${empty projectReportData.status || projectReportData.status eq 1}">&ndash;%&gt;
+												&lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+												&lt;%&ndash;<a href="javascript:void(0)" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+												&lt;%&ndash;</div>&ndash;%&gt;
+												&lt;%&ndash;</c:when>&ndash;%&gt;
+												&lt;%&ndash;<c:otherwise>&ndash;%&gt;
+												&lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+												&lt;%&ndash;<a href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/projectcontentinfo/projectcontentinfo/getProcessOne?id=${id}&projectReportData.id=${projectReportData.id}&type=1','95%','95%')" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+												&lt;%&ndash;</div>&ndash;%&gt;
+												&lt;%&ndash;</c:otherwise>&ndash;%&gt;
+												&lt;%&ndash;</c:choose>&ndash;%&gt;
+											<div style="text-align: center" id="status_td_${index.index+1}">
+											</div>
+											<script>
+												initRecordStatus(${index.index+1},"${id}","${projectReportData.id}","${projectReportData.status}");
+											</script>
+										</td>
+									</tr>
+								</c:forEach>
+							</c:when>
+							<c:otherwise>
+								<tr>
+									<td colspan="7">
+										暂无数据
+									</td>
+								</tr>
+							</c:otherwise>
+						</c:choose>
+						</tbody>
+					</table>
+				</div>
+			</div>--%>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>项目计划列表</h2></div>
+				<div class="layui-item layui-col-sm12 lw7">
+					<div class="layui-item nav-btns">
+<%--						<div class="layui-item nav-btns" style="padding-left:0px;">--%>
+<%--							<a class="nav-btn nav-btn-add"--%>
+<%--							   onclick="addRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl);workClientBankRowIdx = workClientBankRowIdx + 1;"--%>
+<%--							   title="新增"><i class="fa fa-plus"></i> 新增</a>--%>
+<%--							<shiro:hasPermission name="project:projectPlan:export">--%>
+<%--								<a class="nav-btn nav-btn-export" title="导出"  onclick="return confirmx('确认要导出该项目计划列表吗?', '${ctx}/project/projectPlan/export?id=${projectRecords.id}');"><i class="fa fa-file-excel-o"></i> 导出</a>--%>
+<%--							</shiro:hasPermission>--%>
+<%--						</div>--%>
+						<table id="bankinfo" class="table table-bordered table-condensed can-edit">
+							<thead>
+							<tr>
+								<th width="60px">编号</th>
+								<th >任务阶段</th>
+								<th >计划开始时间</th>
+								<th >计划结束时间</th>
+								<th >提醒人</th>
+								<th >完成人</th>
+							</tr>
+							</thead>
+							<tbody id="projectPlanList">
+
+							</tbody>
+						</table>
+						<script type="text/template" id="workClientBankTpl">//<!--
+                                <tr id="projectPlanList{{idx}}">
+                                    <td class="hide">
+                                        <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" readonly="true" value="{{row.id}}"/>
+                                        <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" readonly="true" value="0"/>
+                                        <input id="projectPlanList{{idx}}_remindId" name="projectPlanList[{{idx}}].remindId" type="hidden" readonly="true" value="{{row.remindId}}"/>
+                                    </td>
+
+                                    <td width="60px">
+                                        <input id="projectPlanList{{idx}}_costNum" name="projectPlanList[{{idx}}].costNum" readonly="readonly" style="text-align: center"  value="{{idx}}" type="text" class="form-control contentDetail"/>
+                                    </td>
+                                    <td>
+                                        <input id="projectPlanList{{idx}}_projectStage" name="projectPlanList[{{idx}}].projectStage" readonly="true" list ="num" title="{{row.projectStage}}"  value="{{row.projectStage}}" class="form-control required"/>
+                                    </td>
+
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_beginDate" name="projectPlanList[{{idx}}].beginDate" style="text-align: center" type="text" value="{{row.beginDate}}"  class="form-control required datetime"/>
+                                    </td>
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_endDate" name="projectPlanList[{{idx}}].endDate" style="text-align: center" type="text" value="{{row.endDate}}"  class="form-control required datetime"/>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_remindName" name="remindName" readonly="readonly" style="text-align: center"  value="{{row.remindName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser  id="projectPlanList{{idx}}_remindName" name="remindName" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].remindName" labelValue="{{row.remindName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataByPlan?type=3&projectId=${projectRecords.id}" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true"/>--%>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" readonly="readonly" style="text-align: center"  value="{{row.finishName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].finishName" labelValue="{{row.finishName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true" />--%>
+                                    </td>
+
+<%--                                    <td class="text-center op-td" width="10">--%>
+<%--                                        {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#projectPlanList{{idx}}')" title="删除"><i class="fa fa-trash"></i>&nbsp;删除</span>{{/delBtn}}--%>
+<%--                                    </td>--%>
+                                </tr>//-->
+						</script>
+					</div>
+				</div>
+			</div>
+<%--			<div class="form-group layui-row">--%>
+<%--				<div class="form-group-label"><h2>项目计划附件信息</h2></div>--%>
+<%--				<div class="layui-item layui-col-xs12 form-table-container" >--%>
+<%--					<table id="listAttachment" class="table table-bordered table-condensed no-bottom-margin details">--%>
+<%--						<thead>--%>
+<%--						<tr>--%>
+<%--							<th width="25%">文件预览</th>--%>
+<%--							<th width="25%">上传人</th>--%>
+<%--							<th width="25%">上传时间</th>--%>
+<%--							<th width="25%">操作</th>--%>
+<%--						</tr>--%>
+<%--						</thead>--%>
+<%--						<tbody id="file_attachment">--%>
+<%--						<c:forEach items="${projectRecords.workAttachments}" var="workClientAttachment" varStatus="status">--%>
+<%--							<tr>--%>
+<%--									&lt;%&ndash;<td>${status.index + 1}</td>&ndash;%&gt;--%>
+<%--								<c:choose>--%>
+<%--									<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')--%>
+<%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">--%>
+<%--										<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">--%>
+<%--									</c:when>--%>
+<%--									<c:otherwise>--%>
+<%--										<c:choose>--%>
+<%--											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">--%>
+<%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%','1')">${workClientAttachment.attachmentName}</a></td>--%>
+<%--											</c:when>--%>
+<%--											<c:otherwise>--%>
+<%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%')">${workClientAttachment.attachmentName}</a></td>--%>
+<%--											</c:otherwise>--%>
+<%--										</c:choose>--%>
+<%--									</c:otherwise>--%>
+<%--								</c:choose>--%>
+<%--								<td>${workClientAttachment.createBy.name}</td>--%>
+<%--								<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd"/></td>--%>
+<%--								<td  class="op-td">--%>
+<%--									<a href="javascript:location.href=encodeURI('${ctx}/workcontractinfo/workContractInfo/downLoadAttach?file=${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>--%>
+<%--								</td>--%>
+<%--							</tr>--%>
+<%--						</c:forEach>--%>
+<%--						</tbody>--%>
+<%--					</table>--%>
+<%--				</div>--%>
+<%--			</div>--%>
+<%--			<div class="form-group layui-row">--%>
+<%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
+<%--					<div class="layui-input-block" style="margin-left:10px;position: relative">--%>
+<%--						<form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
+<%--						<a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
+<%--						<input type="file" name="upload_files" style="display: none;">--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--				<div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
+<%--					<div class="layui-input-block" style="margin-left:10px;">--%>
+<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
+<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
+<%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
+<%--						<div style="padding: 5px 0px;">--%>
+<%--							<form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
+<%--								<form:option value=""/>--%>
+<%--								<form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
+<%--							</form:select>--%>
+<%--						</div>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+<%--			</div>--%>
+
+			<script>
+                var workClientLinkmanRowIdx = 0, workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workConstructionLinkmanRowIdx = 0, workConstructionLinkmanTpl = $("#workConstructionLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                $(document).ready(function() {
+                    var data = ${fns:toJson(projectRecords.workClientLinkmanList)};
+                    for (var i=0; i<data.length; i++){
+                        addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                        workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                    }
+                    var dataBank = ${fns:toJson(projectRecords.workConstructionLinkmanList)};
+                    for (var i=0; i<dataBank.length; i++){
+                        addRow('#workConstructionLinkmanList', workConstructionLinkmanRowIdx, workConstructionLinkmanTpl, dataBank[i]);
+                        workConstructionLinkmanRowIdx = workConstructionLinkmanRowIdx + 1;
+                    }
+
+                });
+				layui.use('form', function () {
+					var form = layui.form;
+					form.render();
+				});
+                function f1(row) {
+					// window.parent.document.getElementById('opinion').value = row;
+					$("#opinion").val(row)
+                }
+				function openDialogre(title,url,width,height,target,buttons) {
+					if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+						width = 'auto';
+						height = 'auto';
+					} else {//如果是PC端,根据用户设置的width和height显示。
+					}
+					var split = buttons.split(",");
+					top.layer.open({
+						type: 2,
+						area: [width, height],
+						title: title,
+						maxmin: true, //开启最大化最小化按钮
+						skin: 'three-btns',
+						content: url,
+						btn: split,
+						btn1: function(index, layero){
+							top.layer.close(index)
+							document.getElementById('iframe').contentWindow.location.reload();
+						}
+					});
+				}
+			</script>
+
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>项目组成员列表</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<table id="usersListTable" class="table table-bordered table-condensed no-bottom-margin details">
+						<thead>
+						<tr>
+							<th width="25%">姓名</th>
+							<th width="25%">部门</th>
+							<th width="25%">职级</th>
+							<th width="55px;">状态</th>
+						</tr>
+						</thead>
+						<tbody id="usersList">
+						<c:if test="${not empty projectRecords.projectMembers}">
+							<c:forEach items="${projectRecords.projectMembers}" var="user">
+								<tr id="${user.id}">
+									<td>
+											${user.name}
+									</td>
+									<td>
+											${user.office.name}
+									</td>
+									<td>
+											${user.basicInfo.jobGrade.name}
+									</td>
+									<td>
+										<c:choose>
+											<c:when test="${user.delFlag == 0}">
+												正常
+											</c:when>
+											<c:otherwise>
+												移除
+											</c:otherwise>
+										</c:choose>
+									</td>
+								</tr>
+							</c:forEach>
+						</c:if>
+						</tbody>
+					</table>
+				</div>
+			</div>
+
+	</form:form>
+		<div class="form-group-label">
+			<div style="float: right"> <a href="javascript:void(0)" style='background-color: #FFB800' onclick="openDialogre('个人模板列表', '${ctx}/auditTemplate/auditTemplate/templateList?identification=${identification}&name=${identificationName}','80%', '70%','','关闭')" class="nav-btn layui-btn layui-btn-sm" ><i class="fa fa-file-excel-o"></i> 审核意见模板列表</a></div>
+			<h2>审批意见</h2>
+		</div>
+		<iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>
+			<div class="form-group layui-row">
+				<div class="form-group-label"><h2>审批流程</h2></div>
+				<div class="layui-item layui-col-xs12 form-table-container" >
+					<act:flowChart procInsId="${processInstanceId}"/>
+					<act:histoicFlow procInsId="${processInstanceId}"/>
+				</div>
+			</div>
+	</div>
+</div>
+</body>
+</html>

File diff ditekan karena terlalu besar
+ 1081 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureForm.jsp


+ 843 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/electronicSeal/ruralProjectRecordsReportSignatureModify.jsp

@@ -0,0 +1,843 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+    <title>项目审批管理</title>
+    <meta name="decorator" content="default"/>
+    <script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
+    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+
+    <script type="text/javascript">
+        var validateForm;
+        function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+            if(validateForm.form()){
+                //var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+                //$("#opinion").val(ss);
+                if(obj == 1) {
+                    $("#flag").val("yes");
+                }else {
+                    if(obj == 2){
+                        $("#flag").val("no1");
+                    }else {
+                        $("#flag").val("no2");
+                    }
+                }
+                $("#inputForm").submit();
+                return true;
+            }
+
+            return false;
+        }
+        $(document).ready(function() {
+
+            var tt = $("#contractNum").val();
+            if (tt == null || tt === "") {
+                $("#divv").hide();
+                $("#divv2").show();
+                $("#divv3").hide();
+                setTimeout(function () {
+                    var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+                    $("#clientName").val(tt);
+                },100);
+            }else{
+                $("#divv2").hide();
+            }
+
+            validateForm = $("#inputForm").validate({
+                submitHandler: function(form){
+                    loading('正在提交,请稍等...');
+                    form.submit();
+                },
+                errorContainer: "#messageBox",
+                errorPlacement: function(error, element) {
+                    $("#messageBox").text("输入有误,请先更正。");
+                    if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+                        error.appendTo(element.parent().parent());
+                    } else {
+                        error.insertAfter(element);
+                    }
+                }
+            });
+
+            var contractNum = $("#contractNum").val();
+            if (contractNum == null || contractNum === "") {
+                $("#div1").hide();
+                $("#div3").hide();
+                setTimeout(function () {
+                    var tt = $("#workClientLinkmanList").find("tr").eq(0).find("td").eq(1).text().trim();
+                    $("#clientName").val(tt);
+                },100);
+            }
+
+            var contractInformation='${projectRecords.workContractInfo.contractInformation}'
+            if(contractInformation == "1"){
+                $("#c2").show();
+                $("#c1").hide();
+            }else{
+                $("#c2").hide();
+                $("#c1").show();
+            }
+        });
+
+        function insertTitle(tValue){
+            var files = $("#attachment_file")[0].files;            for(var i = 0;i<files.length;i++) {                var file = files[i];
+                var attachmentId = $("#id").val();
+                var attachmentFlag = "82";
+                console.log(file);
+                var timestamp=new Date().getTime();
+
+                var storeAs = "projectRecods";
+                var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
+                var divId = "_attachment";
+                $("#addFile"+divId).show();
+                multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,0);}
+        }
+
+        function addFile() {
+            $("#attachment_file").click();
+        }
+
+        function addRow(list, idx, tpl, row){
+            // var idx1 = $("#workClientLinkmanList tr").length;
+            bornTemplete(list, idx, tpl, row, idx);
+        }
+
+        function bornTemplete(list, idx, tpl, row, idx1){
+            $(list).append(Mustache.render(tpl, {
+                idx: idx, delBtn: true, row: row,
+                order:idx1 + 1
+            }));
+            $(list+idx).find("select").each(function(){
+                $(this).val($(this).attr("data-value"));
+            });
+            $(list+idx).find("input[type='checkbox'], input[type='radio']").each(function(){
+                var ss = $(this).attr("data-value").split(',');
+                for (var i=0; i<ss.length; i++){
+                    if($(this).val() == ss[i]){
+                        $(this).attr("checked","checked");
+                    }
+                }
+            });
+        }
+    </script>
+</head>
+<body >
+<div class="single-form">
+    <div class="container">
+        <form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/ruralProject/electronicSeal/reportSignatureSaveAudit" method="post" class="layui-form">
+            <form:hidden path="id"/>
+            <form:hidden path="home"/>
+            <form:hidden path="act.taskId"/>
+            <form:hidden path="act.taskName"/>
+            <form:hidden id="taskDefKey" path="act.taskDefKey"/>
+            <form:hidden path="act.procInsId"/>
+            <form:hidden path="act.procDefId"/>
+            <form:hidden path="processInstanceId"/>
+            <form:hidden id="flag" path="act.flag"/>
+            <%--<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">--%>
+            <c:set var="status" value="${projectRecords.act.status}" />
+
+            <div class="form-group layui-row first">
+                <div class="form-group-label"><h2>项目合同信息</h2></div>
+                <div id="div1">
+                    <div class="layui-item layui-col-sm12 lw6">
+                        <label class="layui-form-label">合同编号:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false" id="contractNum"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.contractNum}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">合同名称:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.name}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6" id="c1">
+                        <label class="layui-form-label double-line">合同金额(元):</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatNumber value="${projectRecords.workContractInfo.contractPrice}" pattern="#,##0.00#"/>"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6" id="c2" style="display: none">
+                        <label class="layui-form-label">费率描述:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" id="otherDetails"  class="form-control layui-input" value="${projectRecords.workContractInfo.otherDetails}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">委托方:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false" id="clientName" readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.client.name}"/>
+                        </div>
+                    </div>
+                </div>
+                <div id="divv2">
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">无合同</label>
+                    </div>
+                </div>
+                <div id="div3">
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">合同类别:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" style="background-color: #f1f1f1" class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+                                <%--							<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+
+            <div class="form-group layui-row first">
+                <div class="form-group-label"><h2>项目基础信息</h2></div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目名称:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目编号:</label>
+                    <div class="layui-input-block">
+                        <div class="input-group">
+                            <form:input path="projectId" htmlEscape="false"  readonly="true" class="form-control layui-input"/>
+                            <span class="input-group-btn">
+                                <label class="form-status"><c:choose><c:when test="${not empty projectRecords.projectStatus}">${fns:getDictLabel(projectRecords.projectStatus, 'rural_project_audit_state', '')}</c:when><c:otherwise>新添</c:otherwise></c:choose></label>
+                             </span>
+                        </div>
+                    </div>
+                </div>
+                    <%--<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--<label class="layui-form-label">规模类型:</label>--%>
+                    <%--<div class="layui-input-block">--%>
+                    <%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleType}"/>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--<label class="layui-form-label">规模单位:</label>--%>
+                    <%--<div class="layui-input-block">--%>
+                    <%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleUnit}"/>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--<label class="layui-form-label">规模数量:</label>--%>
+                    <%--<div class="layui-input-block">--%>
+                    <%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.scaleQuantity}"/>--%>
+                    <%--</div>--%>
+                    <%--</div>--%>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目所在地:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.province}-${projectRecords.city}-${projectRecords.county}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">投资性质:</label>
+                    <div class="layui-input-block">
+                        <c:forEach  items="${fns:getMainDictList('project_properties')}" var="v">
+                            <c:if test="${v.value==projectRecords.projectProperties}">
+                                <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${v.label}"/>
+                            </c:if>
+                        </c:forEach>
+                    </div>
+                </div>
+                    <%--				<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--					<label class="layui-form-label">所在省份:</label>--%>
+                    <%--					<div class="layui-input-block">--%>
+                    <%--						<form:input path="province" htmlEscape="false" id="province" class="form-control layui-input" readonly="true"/>--%>
+                    <%--					</div>--%>
+                    <%--				</div>--%>
+                    <%--				<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--					<label class="layui-form-label">所在地级市:</label>--%>
+                    <%--					<div class="layui-input-block">--%>
+                    <%--						<form:input path="city" htmlEscape="false" id="city" class="form-control layui-input" readonly="true"/>--%>
+                    <%--					</div>--%>
+                    <%--				</div>--%>
+                    <%--				<div class="layui-item layui-col-sm6 lw6">--%>
+                    <%--					<label class="layui-form-label">所在区县:</label>--%>
+                    <%--					<div class="layui-input-block">--%>
+                    <%--						<form:input path="county" htmlEscape="false" id="areaName1" class="form-control layui-input" readonly="true"/>--%>
+                    <%--					</div>--%>
+                    <%--				</div>--%>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">建设地点:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectSite}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">创建人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.createBy.name}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目责任人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.leaderNameStr}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">所属部门:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" id="officeName" class="form-control layui-input" value="${projectRecords.officeName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目负责人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" class="form-control layui-input" value="${projectRecords.projectMasterName}"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">工程类型:</label>
+                    <div class="layui-input-block">
+                        <form:select path="engineeringType" disabled="true" style="background-color: #f1f1f1"  class="form-control simple-select">
+                            <form:options items="${engineeringInfo}" itemLabel="engineeringName" itemValue="id" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目等级:</label>
+                    <div class="layui-input-block">
+                        <c:forEach items="${fns:getMainDictListOnProjectAdvent('attachment_project_grade')}" var="v">
+                            <input type="radio" disabled name="submitMoney" id="submitMoney" value="${v.value}" title="${v.label}" <c:if test="${projectRecords.submitMoney==v.value}">checked</c:if>>
+                        </c:forEach>
+                        <p style="color: red;font-size: 12px;">200万以上部队或政府项目及500万以上其它项目为A级,其余为B级</p>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line">送审规模(万元):</label>
+                    <div class="layui-input-block">
+                        <form:input path="submitScale" id="submitScale" readonly="true" maxlength="12" htmlEscape="false" onkeyup="wirteNum(this)" placeholder="请输入送审规模" class="form-control layui-input number"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line">工作开始日期:</label>
+                    <div class="layui-input-block">
+                        <input class=" form-control layui-input " readonly="true" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label double-line">工作结束日期:</label>
+                    <div class="layui-input-block">
+                        <input class=" form-control layui-input " readonly="true" id="endingDate" name="endingDate" value="<fmt:formatDate value="${projectRecords.endingDate}" pattern="yyyy-MM-dd"/>">
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">创建日期:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="<fmt:formatDate value="${projectRecords.createDate}" pattern="yyyy-MM-dd"/>"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6">
+                    <label class="layui-form-label">项目类别:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false" readonly="true" class="form-control layui-input" value="${projectRecords.attachmentProjectSort}"/>
+                    </div>
+                </div>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">工程结构:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectStructure}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">地上层数:</label>
+                        <div class="layui-input-block">
+                            <form:input path="onGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">底下层数:</label>
+                        <div class="layui-input-block">
+                            <form:input path="underGroundNum" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">建筑面积或规模:</label>
+                        <div class="layui-input-block">
+                            <form:input path="buildingScale" htmlEscape="false"  class="form-control layui-input number" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">计量单位:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.measuringUnit}"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label">工程用途:</label>
+                        <div class="layui-input-block">
+                            <input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${projectRecords.projectUse}"/>
+                        </div>
+                    </div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">预估总投资额(万元):</label>
+                        <div class="layui-input-block">
+                            <input value="<fmt:formatNumber value="${projectRecords.estimateTotalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="estimateTotalFees" class="form-control layui-input number"  readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">咨询标的额(万元):</label>
+                        <div class="layui-input-block">
+                            <input value="<fmt:formatNumber value="${projectRecords.totalFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="totalFees" class="form-control layui-input number"  readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中土建造价(万元):</label>
+                        <div class="layui-input-block">
+                            <input   value="<fmt:formatNumber value="${projectRecords.buildingFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中安装造价(万元):</label>
+                        <div class="layui-input-block">
+                            <input  value="<fmt:formatNumber value="${projectRecords.installFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中土建百分比(%):</label>
+                        <div class="layui-input-block">
+                            <form:input path="buildingPercent" htmlEscape="false" id="buildingPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">其中安装百分比(%):</label>
+                        <div class="layui-input-block">
+                            <form:input path="installPercent" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">施工单位:</label>
+                        <div class="layui-input-block">
+                            <form:input path="constructionUnit" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">施工方联系方式:</label>
+                        <div class="layui-input-block">
+                            <form:input path="constructionLinkman" htmlEscape="false" id="installPercent" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>--%>
+                    <%--<div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">单位造价(元):</label>
+                        <div class="layui-input-block">
+                            <input value="<fmt:formatNumber value="${projectRecords.unitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="unitFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">土建单位造价(元):</label>
+                        <div class="layui-input-block">
+                            <input  value="<fmt:formatNumber value="${projectRecords.buildingUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="buildingUnitFees" class="form-control layui-input" readonly="true"/>
+                        </div>
+                    </div>
+                    <div class="layui-item layui-col-sm6 lw6">
+                        <label class="layui-form-label double-line">安装单位造价(元):</label>
+                        <div class="layui-input-block">
+                            <input  value="<fmt:formatNumber value="${projectRecords.installUnitFees}" pattern="#,##0.00#"/>" htmlEscape="false" id="installUnitFees" class="form-control layui-input" readonly="readonly"/>
+                        </div>
+                    </div>--%>
+                <div class="layui-item layui-col-sm6 lw6 with-textarea">
+                    <label class="layui-form-label">工程概况:</label>
+                    <div class="layui-input-block">
+                        <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.projectDesc}</textarea>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw6 with-textarea">
+                    <label class="layui-form-label">特殊要求:</label>
+                    <div class="layui-input-block">
+                        <textarea htmlEscape="false" rows="4" readonly="true" maxlength="1000" class="form-control" >${projectRecords.remarks}</textarea>
+                    </div>
+                </div>
+            </div>
+
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>委托方联系人信息</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="contentTable" class="table table-bordered table-condensed no-bottom-margin details">
+                        <thead>
+                        <tr>
+                            <th class="hide"></th>
+                            <th width="25%">委托方</th>
+                            <th width="25%">联系人姓名</th>
+                            <th width="25%">联系方式1</th>
+                            <th width="25%">联系方式2</th>
+                        </tr>
+                        </thead>
+                        <tbody id="workClientLinkmanList">
+                        </tbody>
+                    </table>
+                    <script type="text/template" id="workClientLinkmanTpl">//<!--
+					<tr id="workClientLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workClientLinkmanList{{idx}}_id" name="workClientLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workClientLinkmanList{{idx}}_delFlag" name="workClientLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name}}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+                    </script>
+                </div>
+            </div>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>施工方信息</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="contentTable1" class="table table-bordered table-condensed no-bottom-margin details">
+                        <thead>
+                        <tr>
+                            <th class="hide"></th>
+                            <th width="25%">施工方单位名称</th>
+                            <th width="25%">联系人姓名</th>
+                            <th width="25%">联系方式1</th>
+                            <th width="25%">联系方式2</th>
+                        </tr>
+                        </thead>
+                        <tbody id="workConstructionLinkmanList">
+                        </tbody>
+                    </table>
+                    <script type="text/template" id="workConstructionLinkmanTpl">//<!--
+					<tr id="workConstructionLinkmanList{{idx}}">
+					<td class="hide">
+						<input id="workConstructionLinkmanList{{idx}}_id" name="workConstructionLinkmanList[{{idx}}].id" type="hidden" value="{{row.id}}"/>
+						<input id="workConstructionLinkmanList{{idx}}_delFlag" name="workConstructionLinkmanList[{{idx}}].delFlag" type="hidden" value="0"/>
+					</td>
+					<td>
+						{{row.clientId.name}}
+					</td>
+					<td>
+						{{row.name }}
+					</td>
+					<td>
+						{{row.linkPhone}}
+					</td>
+					<td>
+						{{row.linkMobile}}
+					</td>
+				</tr>//-->
+                    </script>
+                </div>
+            </div>
+
+            <%--<div class="form-group layui-row">
+                <div class="form-group-label"><h2>项目报告</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="upTable" class="table table-bordered table-condensed details">
+                        <thead>
+                        <tr>
+                            <th width="25%">报告编号</th>
+                            <th width="25%">报告名称</th>
+                            <th width="20%">工作内容类型</th>
+                            <th width="10%">签章类型</th>
+                            <th width="10%">创建日期</th>
+                            <th width="10%">状态</th>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <c:choose>
+                            <c:when test="${not empty projectRecords.projectReportData}">
+                                <c:forEach items="${projectRecords.projectReportData}" var="projectReportData" varStatus="index">
+                                    <tr>
+                                        <td><a title="${projectReportData.number}" href="javascript:void(0)" onclick="openDialogView('查看报告详情', '${ctx}/projectcontentinfo/projectcontentinfo/form1?id=${projectReportData.id}','95%', '95%')">
+                                                ${projectReportData.number}
+                                        </a></td>
+                                        <td>
+                                                ${projectReportData.name}
+                                        </td>
+                                        <td title="${fns:getContentTypeName(projectReportData.type,"")}">
+                                                ${fns:getContentTypeName(projectReportData.type,"")}
+                                        </td>
+                                        <td title="${projectReportData.reportType}">
+                                                ${projectReportData.reportType}
+                                        </td>
+                                        <td>
+                                            <fmt:formatDate value="${projectReportData.reportDate}" pattern="yyyy-MM-dd"/>
+                                        </td>
+                                        <td class="op-td">
+                                                &lt;%&ndash;<c:choose>&ndash;%&gt;
+                                                &lt;%&ndash;<c:when test="${empty projectReportData.status || projectReportData.status eq 1}">&ndash;%&gt;
+                                                &lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+                                                &lt;%&ndash;<a href="javascript:void(0)" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+                                                &lt;%&ndash;</div>&ndash;%&gt;
+                                                &lt;%&ndash;</c:when>&ndash;%&gt;
+                                                &lt;%&ndash;<c:otherwise>&ndash;%&gt;
+                                                &lt;%&ndash;<div style="text-align: center">&ndash;%&gt;
+                                                &lt;%&ndash;<a href="javascript:void(0)" onclick="openDialogView('流程追踪', '${ctx}/projectcontentinfo/projectcontentinfo/getProcessOne?id=${id}&projectReportData.id=${projectReportData.id}&type=1','95%','95%')" class="op-btn op-btn-trace" >${fns:getDictLabel(projectReportData.status, 'audit_state', '')}</a>&ndash;%&gt;
+                                                &lt;%&ndash;</div>&ndash;%&gt;
+                                                &lt;%&ndash;</c:otherwise>&ndash;%&gt;
+                                                &lt;%&ndash;</c:choose>&ndash;%&gt;
+                                            <div style="text-align: center" id="status_td_${index.index+1}">
+                                            </div>
+                                            <script>
+                                                initRecordStatus(${index.index+1},"${id}","${projectReportData.id}","${projectReportData.status}");
+                                            </script>
+                                        </td>
+                                    </tr>
+                                </c:forEach>
+                            </c:when>
+                            <c:otherwise>
+                                <tr>
+                                    <td colspan="7">
+                                        暂无数据
+                                    </td>
+                                </tr>
+                            </c:otherwise>
+                        </c:choose>
+                        </tbody>
+                    </table>
+                </div>
+            </div>--%>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>项目计划列表</h2></div>
+                <div class="layui-item layui-col-sm12 lw7">
+                    <div class="layui-item nav-btns">
+                            <%--						<div class="layui-item nav-btns" style="padding-left:0px;">--%>
+                            <%--							<a class="nav-btn nav-btn-add"--%>
+                            <%--							   onclick="addRow('#projectPlanList', workClientBankRowIdx, workClientBankTpl);workClientBankRowIdx = workClientBankRowIdx + 1;"--%>
+                            <%--							   title="新增"><i class="fa fa-plus"></i> 新增</a>--%>
+                            <%--							<shiro:hasPermission name="project:projectPlan:export">--%>
+                            <%--								<a class="nav-btn nav-btn-export" title="导出"  onclick="return confirmx('确认要导出该项目计划列表吗?', '${ctx}/project/projectPlan/export?id=${projectRecords.id}');"><i class="fa fa-file-excel-o"></i> 导出</a>--%>
+                            <%--							</shiro:hasPermission>--%>
+                            <%--						</div>--%>
+                        <table id="bankinfo" class="table table-bordered table-condensed can-edit">
+                            <thead>
+                            <tr>
+                                <th width="60px">编号</th>
+                                <th >任务阶段</th>
+                                <th >计划开始时间</th>
+                                <th >计划结束时间</th>
+                                <th >提醒人</th>
+                                <th >完成人</th>
+                            </tr>
+                            </thead>
+                            <tbody id="projectPlanList">
+
+                            </tbody>
+                        </table>
+                        <script type="text/template" id="workClientBankTpl">//<!--
+                                <tr id="projectPlanList{{idx}}">
+                                    <td class="hide">
+                                        <input id="projectPlanList{{idx}}_id" name="projectPlanList[{{idx}}].id" type="hidden" readonly="true" value="{{row.id}}"/>
+                                        <input id="projectPlanList{{idx}}_delFlag" name="projectPlanList[{{idx}}].delFlag" type="hidden" readonly="true" value="0"/>
+                                        <input id="projectPlanList{{idx}}_remindId" name="projectPlanList[{{idx}}].remindId" type="hidden" readonly="true" value="{{row.remindId}}"/>
+                                    </td>
+
+                                    <td width="60px">
+                                        <input id="projectPlanList{{idx}}_costNum" name="projectPlanList[{{idx}}].costNum" readonly="readonly" style="text-align: center"  value="{{idx}}" type="text" class="form-control contentDetail"/>
+                                    </td>
+                                    <td>
+                                        <input id="projectPlanList{{idx}}_projectStage" name="projectPlanList[{{idx}}].projectStage" readonly="true" list ="num" title="{{row.projectStage}}"  value="{{row.projectStage}}" class="form-control required"/>
+                                    </td>
+
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_beginDate" name="projectPlanList[{{idx}}].beginDate" style="text-align: center" type="text" value="{{row.beginDate}}"  class="form-control required datetime"/>
+                                    </td>
+                                    <td>
+                                        <input lay-verify="date" readonly="true" placeholder="yyyy-MM-dd" autocomplete="off" id="projectPlanList{{idx}}_endDate" name="projectPlanList[{{idx}}].endDate" style="text-align: center" type="text" value="{{row.endDate}}"  class="form-control required datetime"/>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_remindName" name="remindName" readonly="readonly" style="text-align: center"  value="{{row.remindName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser  id="projectPlanList{{idx}}_remindName" name="remindName" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].remindName" labelValue="{{row.remindName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataByPlan?type=3&projectId=${projectRecords.id}" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true"/>--%>
+                                    </td>
+
+                                    <td>
+                                    	<input id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" readonly="readonly" style="text-align: center"  value="{{row.finishName}}" type="text" class="form-control contentDetail"/>
+<%--                                        <sys:treeselecttPlanUser id="projectPlanList{{idx}}_finishName" name="projectPlanList[{{idx}}].finishId" value="${projectRecords.leaderIds}" labelName="projectPlanList[{{idx}}].finishName" labelValue="{{row.finishName}}"--%>
+<%--                                         title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true" disabled="true" />--%>
+                                    </td>
+
+<%--                                    <td class="text-center op-td" width="10">--%>
+<%--                                        {{#delBtn}}<span class="op-btn op-btn-delete" onclick="delRow(this, '#projectPlanList{{idx}}')" title="删除"><i class="fa fa-trash"></i>&nbsp;删除</span>{{/delBtn}}--%>
+<%--                                    </td>--%>
+                                </tr>//-->
+                        </script>
+                    </div>
+                </div>
+            </div>
+            <%--			<div class="form-group layui-row">--%>
+            <%--				<div class="form-group-label"><h2>项目计划附件信息</h2></div>--%>
+            <%--				<div class="layui-item layui-col-xs12 form-table-container" >--%>
+            <%--					<table id="listAttachment" class="table table-bordered table-condensed no-bottom-margin details">--%>
+            <%--						<thead>--%>
+            <%--						<tr>--%>
+            <%--							<th width="25%">文件预览</th>--%>
+            <%--							<th width="25%">上传人</th>--%>
+            <%--							<th width="25%">上传时间</th>--%>
+            <%--							<th width="25%">操作</th>--%>
+            <%--						</tr>--%>
+            <%--						</thead>--%>
+            <%--						<tbody id="file_attachment">--%>
+            <%--						<c:forEach items="${projectRecords.workAttachments}" var="workClientAttachment" varStatus="status">--%>
+            <%--							<tr>--%>
+            <%--									&lt;%&ndash;<td>${status.index + 1}</td>&ndash;%&gt;--%>
+            <%--								<c:choose>--%>
+            <%--									<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')--%>
+            <%--															   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">--%>
+            <%--										<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">--%>
+            <%--									</c:when>--%>
+            <%--									<c:otherwise>--%>
+            <%--										<c:choose>--%>
+            <%--											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">--%>
+            <%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%','1')">${workClientAttachment.attachmentName}</a></td>--%>
+            <%--											</c:when>--%>
+            <%--											<c:otherwise>--%>
+            <%--												<td><a href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','95%','95%')">${workClientAttachment.attachmentName}</a></td>--%>
+            <%--											</c:otherwise>--%>
+            <%--										</c:choose>--%>
+            <%--									</c:otherwise>--%>
+            <%--								</c:choose>--%>
+            <%--								<td>${workClientAttachment.createBy.name}</td>--%>
+            <%--								<td><fmt:formatDate value="${workClientAttachment.createDate}" pattern="yyyy-MM-dd"/></td>--%>
+            <%--								<td  class="op-td">--%>
+            <%--									<a href="javascript:location.href=encodeURI('${ctx}/workcontractinfo/workContractInfo/downLoadAttach?file=${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>--%>
+            <%--								</td>--%>
+            <%--							</tr>--%>
+            <%--						</c:forEach>--%>
+            <%--						</tbody>--%>
+            <%--					</table>--%>
+            <%--				</div>--%>
+            <%--			</div>--%>
+            <%--			<div class="form-group layui-row">--%>
+            <%--				<div class="layui-item layui-col-sm8 lw6 with-textarea">--%>
+            <%--					<div class="layui-input-block" style="margin-left:10px;position: relative">--%>
+            <%--						<form:textarea placeholder="请输入意见:" path="act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />--%>
+            <%--						<a id="clearOpinon" class="layui-btn" style="position: absolute;bottom: 10px;right: 20px;">清空</a>--%>
+            <%--						<input type="file" name="upload_files" style="display: none;">--%>
+            <%--					</div>--%>
+            <%--				</div>--%>
+            <%--				<div class="layui-item layui-col-sm4 lw6 with-textarea">--%>
+            <%--					<div class="layui-input-block" style="margin-left:10px;">--%>
+            <%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>--%>
+            <%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>--%>
+            <%--						<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinion" name="sh" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>--%>
+            <%--						<div style="padding: 5px 0px;">--%>
+            <%--							<form:select path="act.comment" id="auditOpinion" lay-filter="opinion" lay-verify="opinion" class="form-control simple-select">--%>
+            <%--								<form:option value=""/>--%>
+            <%--								<form:options items="${fns:getMainDictListOnProjectAdvent('audit_opinion_template')}" itemLabel="label" itemValue="label" htmlEscape="false"/>--%>
+            <%--							</form:select>--%>
+            <%--						</div>--%>
+            <%--					</div>--%>
+            <%--				</div>--%>
+            <%--			</div>--%>
+
+            <script>
+                var workClientLinkmanRowIdx = 0, workClientLinkmanTpl = $("#workClientLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                var workConstructionLinkmanRowIdx = 0, workConstructionLinkmanTpl = $("#workConstructionLinkmanTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
+                $(document).ready(function() {
+                    var data = ${fns:toJson(projectRecords.workClientLinkmanList)};
+                    for (var i=0; i<data.length; i++){
+                        addRow('#workClientLinkmanList', workClientLinkmanRowIdx, workClientLinkmanTpl, data[i]);
+                        workClientLinkmanRowIdx = workClientLinkmanRowIdx + 1;
+                    }
+                    var dataBank = ${fns:toJson(projectRecords.workConstructionLinkmanList)};
+                    for (var i=0; i<dataBank.length; i++){
+                        addRow('#workConstructionLinkmanList', workConstructionLinkmanRowIdx, workConstructionLinkmanTpl, dataBank[i]);
+                        workConstructionLinkmanRowIdx = workConstructionLinkmanRowIdx + 1;
+                    }
+
+                });
+                layui.use('form', function () {
+                    var form = layui.form;
+                    form.render();
+                });
+                function f1(row) {
+                    // window.parent.document.getElementById('opinion').value = row;
+                    $("#opinion").val(row)
+                }
+                function openDialogre(title,url,width,height,target,buttons) {
+                    if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+                        width = 'auto';
+                        height = 'auto';
+                    } else {//如果是PC端,根据用户设置的width和height显示。
+                    }
+                    var split = buttons.split(",");
+                    top.layer.open({
+                        type: 2,
+                        area: [width, height],
+                        title: title,
+                        maxmin: true, //开启最大化最小化按钮
+                        skin: 'three-btns',
+                        content: url,
+                        btn: split,
+                        btn1: function(index, layero){
+                            top.layer.close(index)
+                            document.getElementById('iframe').contentWindow.location.reload();
+                        }
+                    });
+                }
+            </script>
+
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>项目组成员列表</h2></div>
+                <div class="layui-item layui-col-xs12 form-table-container" >
+                    <table id="usersListTable" class="table table-bordered table-condensed no-bottom-margin details">
+                        <thead>
+                        <tr>
+                            <th width="25%">姓名</th>
+                            <th width="25%">部门</th>
+                            <th width="25%">职级</th>
+                            <th width="55px;">状态</th>
+                        </tr>
+                        </thead>
+                        <tbody id="usersList">
+                        <c:if test="${not empty projectRecords.projectMembers}">
+                            <c:forEach items="${projectRecords.projectMembers}" var="user">
+                                <tr id="${user.id}">
+                                    <td>
+                                            ${user.name}
+                                    </td>
+                                    <td>
+                                            ${user.office.name}
+                                    </td>
+                                    <td>
+                                            ${user.basicInfo.jobGrade.name}
+                                    </td>
+                                    <td>
+                                        <c:choose>
+                                            <c:when test="${user.delFlag == 0}">
+                                                正常
+                                            </c:when>
+                                            <c:otherwise>
+                                                移除
+                                            </c:otherwise>
+                                        </c:choose>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:if>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+
+        </form:form>
+        <%--<iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>--%>
+        <div class="form-group layui-row">
+            <div class="form-group-label"><h2>审批流程</h2></div>
+            <div class="layui-item layui-col-xs12 form-table-container" >
+                <act:flowChart procInsId="${processInstanceId}"/>
+                <act:histoicFlow procInsId="${processInstanceId}"/>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+</html>

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

@@ -43,7 +43,7 @@
 			<input type="hidden" id="generalManagerUserId" name="generalManagerUserId" value="${projectId}">
 			<div class="form-group layui-row first">
 				<div class="layui-item layui-col-sm12 ">
-					<input id="uploadFile" name="uploadFile" type="file" style="width:330px"/>导入文件不能超过5M,仅允许导入“doc”或“docx”格式文件!<br/> 
+					<input id="uploadFile" name="uploadFile" type="file" style="width:330px"/>导入文件不能超过5M,仅允许导入“doc”、“docx”或”pdf“格式文件!<br/> 
 				</div>
 				<div class="layui-item layui-col-sm12">
 					<label class="layui-form-label double-line" style="padding-left: 0px"><span class="require-item">*</span>项目负责人:</label>

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

@@ -36,7 +36,7 @@
 <body>
 <div >
 	<div class="container view-form">
-		<form:form id="inputForm" modelAttribute="projectReportData" enctype="multipart/form-data" action="${ctx}/ruralProject/ruralProjectMessage/importApprovalFile" method="post" class="form-horizontal">
+		<form:form id="inputForm" modelAttribute="projectReportData" enctype="multipart/form-data" action="${ctx}/ruralProject/ruralProjectMessage/importReportFile" method="post" class="form-horizontal">
 			<form:hidden path="project.id" htmlEscape="false" value="${projectId}" class="form-control layui-input required"/>
 			<input type="hidden" id="visitType" name="visitType" value="${visitType}">
 			<div class="form-group layui-row first">

+ 124 - 54
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/electronicSeal/ruralProjectMessageElectronicSealList.jsp

@@ -129,6 +129,45 @@
 		}
 
 
+		function openDialogBySave(title,url,width,height,target) {
+
+			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+				width = 'auto';
+				height = 'auto';
+			} else {//如果是PC端,根据用户设置的width和height显示。
+
+			}
+
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				maxmin: true, //开启最大化最小化按钮
+				content: url,
+				skin: 'three-btns',
+				btn: ['送审', '关闭'],
+				btn1: function(index, layero){
+					var body = top.layer.getChildFrame('body', index);
+					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+					var inputForm = body.find('#inputForm');
+					var top_iframe;
+					if(target){
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					}else{
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					if(iframeWin.contentWindow.doSubmit(1) ){
+						// top.layer.close(index);//关闭对话框。
+						setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+				},
+				btn2: function (index) {
+				}
+			});
+		}
+
+
 		function openDialogreByImportFile(title,url,width,height,target,buttons) {
 			if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
 				width = 'auto';
@@ -713,6 +752,43 @@
 				}
 			})
 		}
+
+		function openDialogreAudit(title,url,width,height,target){
+
+			if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+				width='auto';
+				height='auto';
+			}else{//如果是PC端,根据用户设置的width和height显示。
+
+			}
+			top.layer.open({
+				type: 2,
+				area: [width, height],
+				title: title,
+				skin: 'three-btns',
+				maxmin: true, //开启最大化最小化按钮
+				content: url ,
+				btn: ['送审','关闭'],
+				btn1: function(index, layero){
+					var body = top.layer.getChildFrame('body', index);
+					var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+					var inputForm = body.find('#inputForm');
+					var top_iframe;
+					if(target){
+						top_iframe = target;//如果指定了iframe,则在改frame中跳转
+					}else{
+						top_iframe = top.getActiveTab().attr("name");//获取当前active的tab的iframe
+					}
+					inputForm.attr("target",top_iframe);//表单提交成功后,从服务器返回的url在当前tab中展示
+					if(iframeWin.contentWindow.doSubmit(1) ){
+						top.layer.close(index);//关闭对话框。
+						setTimeout(function(){top.layer.close(index)}, 100);//延时0.1秒,对应360 7.1版本bug
+					}
+				},
+				btn2: function(index){
+				}
+			});
+		}
 	</script>
 	<%--<style>
 		body{
@@ -1006,75 +1082,65 @@
 				,{field: 'submitMoneyStr', align:'center', title: '项目等级',width:100,templet: function(d){
 						return "<font style = 'font-size:14px;'>"+d.submitMoneyStr+"</font>";
 				}}
-                /*,{align:'center', title: '质量复核',  width:70,templet:function(d){
-                        var st = getAuditState(d.projectReportStatus);
+                ,{align:'center', title: '审定单申请',  width:90,templet:function(d){
+                        var st = getAuditState(d.approvalSignatureStatus);
                         if(st.action)
-                            var xml = "<span onclick=\"openDialogReportView('流程追踪', '${ctx}/ruralProject/ruralCostProjectMessage/getProcessOne?id=" + d.id + "&projectReportData.id=" + d.bid + "&type=2','"+ d.id +"','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+                            var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/electronicSeal/getReportedProcess?processInstanceId=" + d.approvalSignatureProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         else
                             var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
                         return xml;
                     }}
-				,{align:'center', title: '报告签发',  width:90,templet:function(d){
-						var st = getAuditState(""+d.projectReportStatusTwo);
+				,{align:'center', title: '报告签章申请',  width:100,templet:function(d){
+						var st = getAuditState(d.reportSignatureStatus);
 						if(st.action)
-							var xml = "<span onclick=\"openDialogReportTwoView('流程追踪', '${ctx}/ruralProject/ruralProjectMessageNewTwo/getProcessOne?id=" + d.id + "&projectReportData.id=" + d.bid + "&type=2','"+d.id+"','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/electronicSeal/getReportedProcess?processInstanceId=" + d.reportSignatureProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
 						else
 							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
 						return xml;
 					}}
-                ,{align:'center', title: '电子',  width:140,templet:function(d){
-                        var st = getRuralProjectArchiveState(d.projectReportRecordStatus);
-                        if(st.action){
-							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralCostProjectMessage/getReportRecordProcessOne?id="+d.prrId+"&processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-						}else{
-							var xml = "<span style=\"cursor:default;\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-						}
-						var de = getdefectRecordState(""+d.defectRecordStatus);
-						if (d.defectRecordStatus>0){
-							xml+="<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralCostProjectMessage/getReportedProcess?processInstanceId=" + d.pmdrProcessInstanceId + "','95%','95%')\"  style='margin-left: 5px;' class=\"layui-badge layui-bg-orange\">缺</span>";
-						}
-						return xml;
-                    }}
-				,{align:'center', title: '线下',  width:70,templet:function(d){
-						if (d.submitMoney=="1"){
-							var st = getRuralProjectArchiveState(d.downProjectReportRecordStatus);
-						}else if (d.submitMoney=="2"){
-							var st = getRuralProjectArchiveState(d.paperFilingStatus);
-						}
-						if(st.action){
-							if (d.submitMoney=="1"){
-								var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportedProcess?processInstanceId=" + d.prrdProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-							}else if (d.submitMoney=="2"){
-								var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportedProcess?processInstanceId=" + d.ppfProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-							}
-						}else{
-							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-						}
-						return xml;
-					}}
-				,{align:'center', title: '上报',  width:90,templet:function(d){
-						var st = getReportedState(d.reportedState);
-						if(st.action)
-							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralCostProjectMessage/getReportedProcess?processInstanceId=" + d.reportedProcessInstanceId + "','95%','95%')\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-						else
-							var xml = "<span style=\"cursor:default;\" class=\"new-status-label status-label-" + st.label + "\" >" + st.status + "</span>";
-						return xml;
-					}}*/
                 ,{field:'op',align:'center',title:"操作",width:320,templet:function(d) {
 						////对操作进行初始化
 						var xml = '<div class=\"layui-btn-group\">';
+
 						if(d.falg=="1"){
-							//上传审定单进行签章
-							<shiro:hasPermission name="ruralProject:ruralProjectMessage:importApprovalFile">
+							if(d.approvalSignatureStatus == 0){
+								xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogBySave('审定单签章申请', '${ctx}/ruralProject/electronicSeal/approvalForm?id=" + d.id + "','90%', '90%','')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 审定单签章申请</a>";
+							}else if(d.approvalSignatureStatus == 2){
+								xml+="<a href=\"${ctx}/ruralProject/electronicSeal/approvalRevoke?id=" + d.id + "&processInstanceId=" + d.procId + "\" onclick=\"return confirmx('确认要撤回该审定单签章申请吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 撤回</a>";
+							}else if(d.approvalSignatureStatus == 3){
+								xml+="<a href=\"#\" onclick=\"openDialogre('修改审定单签章申请', '${ctx}/ruralProject/electronicSeal/approvalForm?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改审定单签章申请</a>";
+							}else if(d.approvalSignatureStatus == 4){
+								xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogreAudit('修改审定单签章申请', '${ctx}/ruralProject/electronicSeal/approvalModify?id=" + d.id + "','95%', '95%','')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改审定单签章申请</a>";
+							}else if(d.approvalSignatureStatus == 5){
+								//上传审定单进行签章
+								<shiro:hasPermission name="ruralProject:ruralProjectMessage:importApprovalFile">
 								if(d.signatureFlag != "1"){
-									xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogreByImportFile('上传审定单签章', '${ctx}/ruralProject/ruralProjectMessage/skipImportApprovalWord?id=" + d.id + "&visitType=1','500px', '300px','','导入,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 上传审定单签章</a>";
+									xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogreByImportFile('上传审定单签章', '${ctx}/ruralProject/ruralProjectMessage/skipImportApprovalWord?id=" + d.id + "&visitType=1','500px', '300px','','导入,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 审定单签章</a>";
 								}
-							</shiro:hasPermission>
-							<%--<shiro:hasPermission name="ruralProject:ruralProjectMessage:importReportFile">
-								xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogreByImportFile('上传报告签章', '${ctx}/ruralProject/ruralProjectMessage/skipImportReportWord?id=" + d.id + "&visitType=1','400px', '35%','','导入,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 上传报告签章</a>";
-							</shiro:hasPermission>--%>
-							//自动生成电子签章报告(在有报告的前提下可使用,没有报告信息则不进行展示该按钮)
-							//xml+="<a href=\"${ctx}/workfullmanage/workFullManage/downloadMassControl1?id=${projectReportData.id}\" onclick=\"return confirmx('确认要自动生成报告签章吗?', this.href)\" class=\"layui-btn  layui-btn-xs\" > 自动生成报告签章</a>";
+								</shiro:hasPermission>
+							}
+
+							if(d.reportSignatureStatus == 0){
+								xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogBySave('报告签章申请', '${ctx}/ruralProject/electronicSeal/reportSignatureForm?id=" + d.id + "','90%', '90%','')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 报告签章申请</a>";
+							}else if(d.reportSignatureStatus == 2){
+								xml+="<a href=\"${ctx}/ruralProject/electronicSeal/reportSignatureRevoke?id=" + d.id + "&processInstanceId=" + d.procId + "\" onclick=\"return confirmx('确认要撤回该报告签章申请吗?', this.href)\" class=\"layui-btn layui-btn-xs layui-bg-red\" > 撤回</a>";
+							}else if(d.reportSignatureStatus == 3){
+								xml+="<a href=\"#\" onclick=\"openDialogre('修改报告签章申请', '${ctx}/ruralProject/electronicSeal/reportSignatureForm?id=" + d.id + "','95%', '95%','','送审,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告签章申请</a>";
+							}else if(d.reportSignatureStatus == 4){
+								xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogreAudit('修改报告签章申请', '${ctx}/ruralProject/electronicSeal/reportSignatureModify?id=" + d.id + "','95%', '95%','')\" class=\"layui-btn layui-btn-xs layui-bg-green\" > 修改报告签章申请</a>";
+							}else if(d.reportSignatureStatus == 5){
+								//上传审定单进行签章
+								<shiro:hasPermission name="ruralProject:ruralProjectMessage:importReportFile">
+								if(d.signatureFlag != "1"){
+									xml+="<a href=\"javascript:void(0)\" onclick=\"openDialogreByImportFile('上传报告签章', '${ctx}/ruralProject/ruralProjectMessage/skipImportReportWord?id=" + d.id + "&visitType=1','400px', '35%','','导入,关闭')\" class=\"layui-btn layui-btn-xs layui-bg-blue\" > 报告签章</a>";
+								}
+								//报告下载
+								xml+="<a href=\"javascript:location.href='${ctx}/ruralProject/electronicSeal/downloadMassControl?id="+ d.pidId +"\" class=\"layui-btn  layui-btn-xs\">报告下载</a>"
+								//自动生成电子签章报告(在有报告的前提下可使用,没有报告信息则不进行展示该按钮)
+								//xml+="<a href=\"${ctx}/ruralProject/electronicSeal/downloadMassControl?id="+ d.pidId +"\" onclick=\"return confirmx('确认要自动生成报告签章吗?', this.href)\" class=\"layui-btn  layui-btn-xs\" > 自动生成报告签章</a>";
+								</shiro:hasPermission>
+							}
+
 						}
 						xml+="</div>";
 						return[xml].join('');
@@ -1115,7 +1181,7 @@
 					,"prrdProcessInstanceId":"${projectRecords.filingProcessinstanceId}"
 					,"prrdId":"${projectRecords.prrdId}"
 					,"emergencyProject":"${projectRecords.emergencyProject}"
-					,"bid":"${projectRecords.prdId}"
+					,"pidId":"${projectRecords.prdId}"
 					,"pmdrProcessInstanceId":"${projectRecords.pmdrProcessInstanceId}"
 					,"pmdrId":"${projectRecords.pmdrId}"
 					,"prdtProcessinstanceId":"${projectRecords.prdtProcessinstanceId}"
@@ -1133,6 +1199,10 @@
 					,"money":"${projectRecords.money}"
 					,"signatureFlag":"${projectRecords.signatureFlag}"
 					,"signatureContractId":"${projectRecords.signatureContractId}"
+					,"approvalSignatureStatus":"${projectRecords.approvalSignatureStatus}"
+					,"approvalSignatureProcessInstanceId":"${projectRecords.approvalSignatureProcessInstanceId}"
+					,"reportSignatureStatus":"${projectRecords.reportSignatureStatus}"
+					,"reportSignatureProcessInstanceId":"${projectRecords.reportSignatureProcessInstanceId}"
 					,"falg":
 					<c:choose>
 						<c:when test="${fns:getUser().id == projectRecords.leaderIds || fns:getUser().id eq projectRecords.createBy.id}">

+ 5 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/view/reportView.jsp

@@ -232,7 +232,7 @@
 					success:function(data) {
 						var d = data;
 						if(d.contractUrl.length>0){
-							window.open(d.contractUrl)
+							//window.open(d.contractUrl)
 							//关闭当前页
 							top.layer.close(index)
 							layer.open({
@@ -241,19 +241,20 @@
 								,yes: function(index, layero){
 									//关闭所有弹出页
 									layer.closeAll();
-									setTimeout("reloadView()","10000");  //10000毫秒后执行reloadView()函数,只执行一次。
+									setTimeout("reloadView()","100");  //10000毫秒后执行reloadView()函数,只执行一次。
 								}
 								,cancel: function(){
 									//右上角关闭回调
-									setTimeout("reloadView()","10000");  //10000毫秒后执行reloadView()函数,只执行一次。
+									setTimeout("reloadView()","100");  //10000毫秒后执行reloadView()函数,只执行一次。
 								}
 							});
 						}else{
 							//输出提示信息
 							if(d.str.length>0){
-								parent.layer.msg(d.str,{icon:0});
+								parent.layer.msg(d.str,{icon:1});
 								//关闭当前页
 								top.layer.close(index)
+								setTimeout("reloadView()","100");  //10000毫秒后执行reloadView()函数,只执行一次。
 							}
 						}
 					}