ソースを参照

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

chengqiang 4 年 前
コミット
0c73d0888f
100 ファイル変更3970 行追加505 行削除
  1. 85 5
      src/main/java/com/jeeplus/common/bos/BosController.java
  2. 4 0
      src/main/java/com/jeeplus/common/config/Global.java
  3. 36 0
      src/main/java/com/jeeplus/common/oss/OSSClientUtil.java
  4. 8 0
      src/main/java/com/jeeplus/common/persistence/DataEntity.java
  5. 4 1
      src/main/java/com/jeeplus/common/service/CrudService.java
  6. 3 0
      src/main/java/com/jeeplus/common/web/BaseController.java
  7. 6 4
      src/main/java/com/jeeplus/modules/oa/service/OaNotifyService.java
  8. 2 4
      src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectAccessoryService.java
  9. 6 2
      src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectTemplateService.java
  10. 34 0
      src/main/java/com/jeeplus/modules/projectEngineering/dao/ProjectEngineeringInfoDao.java
  11. 46 0
      src/main/java/com/jeeplus/modules/projectEngineering/entity/EngineeringTree.java
  12. 83 0
      src/main/java/com/jeeplus/modules/projectEngineering/entity/ProjectEngineeringInfo.java
  13. 146 0
      src/main/java/com/jeeplus/modules/projectEngineering/service/ProjectEngineeringService.java
  14. 117 0
      src/main/java/com/jeeplus/modules/projectEngineering/web/ProjectEngineeringController.java
  15. 3 4
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectPlanService.java
  16. 1 0
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectPlanController.java
  17. 2 2
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordReportDao.java
  18. 2 2
      src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectReportDao.java
  19. 121 6
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecordReportInfo.java
  20. 29 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java
  21. 97 2
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectReportInfo.java
  22. 29 2
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordReportService.java
  23. 23 8
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  24. 30 2
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectReportService.java
  25. 50 10
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectMessageController.java
  26. 16 1
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectRecordsController.java
  27. 9 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectReportController.java
  28. 8 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectCostRecordReportController.java
  29. 50 10
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageController.java
  30. 9 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordReportController.java
  31. 60 4
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java
  32. 9 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectReportController.java
  33. 25 4
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectViewController.java
  34. 9 0
      src/main/java/com/jeeplus/modules/sys/entity/Workattachment.java
  35. 158 19
      src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java
  36. 1 3
      src/main/java/com/jeeplus/modules/sys/web/WorkattachmentController.java
  37. 9 0
      src/main/java/com/jeeplus/modules/workclientinfo/entity/WorkClientAttachment.java
  38. 7 4
      src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java
  39. 6 0
      src/main/java/com/jeeplus/modules/workcontractinfo/dao/WorkContractBorrowDao.java
  40. 8 0
      src/main/java/com/jeeplus/modules/workcontractinfo/dao/WorkContractInfoDao.java
  41. 191 79
      src/main/java/com/jeeplus/modules/workcontractinfo/entity/WorkContractListInfo.java
  42. 2 0
      src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractBorrowService.java
  43. 18 7
      src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractInfoService.java
  44. 28 4
      src/main/java/com/jeeplus/modules/workcontractinfo/web/WorkContractInfoController.java
  45. 8 4
      src/main/java/com/jeeplus/modules/workcontractrecord/service/WorkContractRecordService.java
  46. 36 23
      src/main/java/com/jeeplus/modules/workfullmanage/web/WorkFullManageController.java
  47. 58 8
      src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java
  48. 7 4
      src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementService.java
  49. 2 1
      src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementController.java
  50. 8 0
      src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementTypeController.java
  51. 6 5
      src/main/resources/jeeplus.properties
  52. 124 0
      src/main/resources/mappings/modules/projectEngineering/PeojectEngineeringDao.xml
  53. 42 1
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageDao.xml
  54. 10 3
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordReportDao.xml
  55. 40 4
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordsDao.xml
  56. 85 5
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectReportDao.xml
  57. 6 0
      src/main/resources/mappings/modules/workcontractinfo/WorkContractBorrowDao.xml
  58. 9 0
      src/main/resources/mappings/modules/workcontractinfo/WorkContractInfoDao.xml
  59. 58 11
      src/main/resources/mappings/modules/workcontractinfo/WorkContractListInfoDao.xml
  60. 46 34
      src/main/webapp/WEB-INF/tags/sys/reimburselectReproject.tag
  61. 1 1
      src/main/webapp/WEB-INF/tags/sys/treeselect.tag
  62. 8 1
      src/main/webapp/WEB-INF/tags/sys/treeselectAccessoryNoParent.tag
  63. 106 0
      src/main/webapp/WEB-INF/tags/sys/treeselectArea.tag
  64. 1 0
      src/main/webapp/static/layui/layuidown.css
  65. 5 0
      src/main/webapp/static/layui/layuidown.js
  66. 447 2
      src/main/webapp/static/oss/ossupload.js
  67. 6 6
      src/main/webapp/webpage/include/head.jsp
  68. 2 1
      src/main/webapp/webpage/modules/oa/oaNotifyAudit.jsp
  69. 11 3
      src/main/webapp/webpage/modules/oa/oaNotifyListMyself.jsp
  70. 11 3
      src/main/webapp/webpage/modules/oa/oaNotifyListReadMyself.jsp
  71. 113 0
      src/main/webapp/webpage/modules/projectAccessory/projectEngineering/projectEngineeringForm.jsp
  72. 124 0
      src/main/webapp/webpage/modules/projectAccessory/projectEngineering/projectEngineeringList.jsp
  73. 6 4
      src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchApply.jsp
  74. 2 1
      src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchAudit.jsp
  75. 2 1
      src/main/webapp/webpage/modules/projectcontentinfo/projectReportRecordAudit.jsp
  76. 1 1
      src/main/webapp/webpage/modules/projectcontentinfo/projectReportRecordModifyApply.jsp
  77. 2 1
      src/main/webapp/webpage/modules/projectrecord/projectRecordsAudit.jsp
  78. 1 1
      src/main/webapp/webpage/modules/ruralprojectrecords/check/all/ruralProjectRecordsAllForm.jsp
  79. 2 1
      src/main/webapp/webpage/modules/ruralprojectrecords/check/ruralProjectRecordsAudit.jsp
  80. 2 1
      src/main/webapp/webpage/modules/ruralprojectrecords/check/ruralProjectRecordsDownAudit.jsp
  81. 1 1
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectReportRecord/projectReportRecordForm.jsp
  82. 97 3
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/reportForm.jsp
  83. 98 4
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/reportModify.jsp
  84. 42 6
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageLists.jsp
  85. 63 15
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm.jsp
  86. 49 1
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsList.jsp
  87. 73 17
      src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsModify.jsp
  88. 23 3
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsAudit.jsp
  89. 68 17
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsForm.jsp
  90. 49 2
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsList.jsp
  91. 67 17
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsModify.jsp
  92. 11 3
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsShowFinishList.jsp
  93. 11 3
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsShowList.jsp
  94. 22 2
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsView.jsp
  95. 88 35
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/cost/ruralCostProjectReportList.jsp
  96. 39 4
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/cost/ruralProjectCostRecordReportList.jsp
  97. 48 5
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/ruralProjectRecordReportList.jsp
  98. 84 24
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/ruralProjectReportList.jsp
  99. 49 3
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageAudit.jsp
  100. 0 0
      src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageModify.jsp

+ 85 - 5
src/main/java/com/jeeplus/common/bos/BosController.java

@@ -1,20 +1,24 @@
 package com.jeeplus.common.bos;
 
 import com.jeeplus.common.config.Global;
+import com.jeeplus.common.oss.OSSClientUtil;
+import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.FtlUtils;
+import com.jeeplus.modules.iim.entity.LayFileJsonData;
+import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.utils.SftpClientUtil;
+import org.codehaus.jackson.map.ObjectMapper;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
+import java.util.*;
 
 @Controller
 @RequestMapping(value = "${adminPath}/bos/")
@@ -23,7 +27,7 @@ public class BosController {
     private final static String directory = Global.getConfig("remoteServer.directory");
     @RequestMapping("upload")
     @ResponseBody
-    public Map upload(HttpServletRequest request, MultipartFile file){
+    public Map upload(HttpServletRequest request, MultipartFile file, MultipartHttpServletRequest multiRequest){
         Map map = new HashMap();
         String storeAs = request.getParameter("storeAs");
         // 文件存储方式(0:本地服务器存储。1:云端存储)
@@ -45,6 +49,35 @@ public class BosController {
                 map.put("msg","上传失败");
                 map.put("code","0");
             }
+        }else if("2".equals(uploadMode)){
+            String filepath = "";
+            LayFileJsonData data = new LayFileJsonData();
+            // 判断文件是否为空
+            Iterator<String> fileNames = multiRequest.getFileNames();
+            while(fileNames.hasNext()) {
+                //取得上传文件
+                file = multiRequest.getFile(fileNames.next());
+                if (!file.isEmpty()) {
+                    // 文件保存路径
+
+                    String realPath =directory.replace("/","")+"/"+storeAs+datePath()+"/"+ System.currentTimeMillis();
+                    OSSClientUtil ossUtil = new OSSClientUtil();
+                    String newName = file.getOriginalFilename();
+
+                    try {
+                        ossUtil.uploadFile2OSS(file.getInputStream(),realPath,newName);
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                    filepath = Global.getAliDownloadUrl() + "/" + realPath + newName;
+
+                    data.setName(file.getOriginalFilename());
+                    data.setSrc(filepath);
+                }
+            }
+
+            map.put("code", "1");
+            map.put("url", data.getSrc());
         }else{
 
             try {
@@ -68,6 +101,41 @@ public class BosController {
         return map;
     }
 
+    /*@RequestMapping("upload")
+    @ResponseBody*/
+    public Map uploadImage(HttpServletResponse response, MultipartHttpServletRequest multiRequest)
+            throws IllegalStateException, IOException {
+        String filepath = "";
+        String content = null;
+        LayFileJsonData data = new LayFileJsonData();
+        String contentType = "";
+        // 判断文件是否为空
+        Iterator<String> fileNames = multiRequest.getFileNames();
+        while(fileNames.hasNext()) {
+            //取得上传文件
+            MultipartFile file = multiRequest.getFile(fileNames.next());
+            if (!file.isEmpty()) {
+                contentType = file.getContentType();
+                // 文件保存路径
+                String realPath ="messages/"+ DateUtils.formatDate(new Date())+"/"+ UserUtils.getPrincipal() + "/";
+                OSSClientUtil ossUtil = new OSSClientUtil();
+                String newName = System.currentTimeMillis()+"-"+file.getOriginalFilename();
+
+                ossUtil.uploadFile2OSS(file.getInputStream(),realPath,newName);
+                filepath = Global.getAliDownloadUrl() + "/" + realPath + newName;
+
+                data.setName(file.getOriginalFilename());
+                data.setSrc(filepath);
+            }
+        }
+
+        HashMap<String, Object> map = new HashMap<String, Object>();
+        map.put("code", "1");
+        map.put("url", data.getSrc());
+
+        return map;
+    }
+
     @RequestMapping("uploadPic")
     @ResponseBody
     public Map uploadPic(MultipartFile uploadFile){
@@ -231,4 +299,16 @@ public class BosController {
         return path;
     }
 
+    /**
+     * 获取文件存储位置(0:本地;1:百度云;2:阿里云)
+     * @return
+     */
+    @RequestMapping("getFileStorageLocation")
+    @ResponseBody
+    public Map getFileStorageLocation(){
+        Map map = new HashMap();
+        map.put("fileLocation",uploadMode);
+        return map;
+    }
+
 }

+ 4 - 0
src/main/java/com/jeeplus/common/config/Global.java

@@ -184,6 +184,10 @@ public class Global {
 	 */
 	public static String getIm() {
 		return getConfig("im");
+	}/**
+	 */
+	public static String getWorkContractInfo() {
+		return getConfig("workContractInfo");
 	}
 	/**
 	 */

+ 36 - 0
src/main/java/com/jeeplus/common/oss/OSSClientUtil.java

@@ -65,6 +65,7 @@ public class OSSClientUtil {
     private String oaBuy = Global.getOaBuy();
     private String oaAll = Global.getOaAll();
     private String im = Global.getIm();
+    private String workContractInfo = Global.getWorkContractInfo();
     private OSSClient ossClient;
 
     public OSSClientUtil() {
@@ -163,6 +164,8 @@ public class OSSClientUtil {
                 return uploadImg2OSS(fileFile,judgeAttachment);
             case "im":
                 return uploadImg2OSS(fileFile,im);
+            case "workContractInfo":
+                return uploadImg2OSS(fileFile,workContractInfo);
             default:
                 return "";
         }
@@ -622,6 +625,7 @@ public class OSSClientUtil {
             OSSObject ossObject = ossClient.getObject(bucketName, key);
             BufferedInputStream in = new BufferedInputStream(ossObject.getObjectContent());
             BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
+            newName = URLEncoder.encode(fileName.substring(13, fileName.length()),"UTF8");
             response.setHeader("Content-Disposition","attachment;filename*=UTF-8''"+ newName);
 
             /*if(agent != null && agent.toLowerCase().indexOf("firefox") > 0){
@@ -739,4 +743,36 @@ public class OSSClientUtil {
         }
         ossClient.shutdown();*/
     }
+
+
+    /**
+     * 阿里云获取临时文件查看url
+     * @param file
+     */
+    public String getFileTemporaryLookUrl(String file){
+        URL url = null;
+        try {
+
+            file = file.replace("amp;","");
+            String aliyunUrl = Global.getAliyunUrl();
+            String aliDownloadUrl = Global.getAliDownloadUrl();
+            String cons = "";
+            if (file.contains(aliyunUrl)){
+                cons = aliyunUrl;
+            }else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+            }else {
+                cons = aliDownloadUrl;
+            }
+            String key = file.split(cons+"/")[1];
+            // 指定过期时间为60分钟。
+            Date expiration = new Date(new Date().getTime() + 1000 * 60 * 60 );
+            url = ossClient.generatePresignedUrl(bucketName, key, expiration);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "";
+        }
+        return url.toString();
+    }
 }

+ 8 - 0
src/main/java/com/jeeplus/common/persistence/DataEntity.java

@@ -29,6 +29,7 @@ public abstract class DataEntity<T> extends BaseEntity<T> {
 	protected transient User updateBy;	// 更新者
 	protected transient Date updateDate;	// 更新日期
 	protected transient String delFlag; 	// 删除标记(0:正常;1:删除;2:审核)
+	protected transient String uploadMode;
 
 	public DataEntity() {
 		super();
@@ -124,4 +125,11 @@ public abstract class DataEntity<T> extends BaseEntity<T> {
 		this.delFlag = delFlag;
 	}
 
+	public String getUploadMode() {
+		return uploadMode;
+	}
+
+	public void setUploadMode(String uploadMode) {
+		this.uploadMode = uploadMode;
+	}
 }

+ 4 - 1
src/main/java/com/jeeplus/common/service/CrudService.java

@@ -6,6 +6,7 @@ package com.jeeplus.common.service;
 import java.util.Collection;
 import java.util.List;
 
+import com.jeeplus.common.config.Global;
 import com.jeeplus.common.utils.IdGen;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
@@ -21,7 +22,9 @@ import com.jeeplus.common.persistence.Page;
  */
 @Transactional(readOnly = true)
 public abstract class CrudService<D extends CrudDao<T>, T extends DataEntity<T>> extends BaseService {
-	
+
+	/** 文件存储方式(0:本地服务器存储。1:百度云存储;2:阿里云存储) */
+	protected final static String uploadMode = Global.getConfig("remoteServer.uploadMode");
 	/**
 	 * 持久层对象
 	 */

+ 3 - 0
src/main/java/com/jeeplus/common/web/BaseController.java

@@ -15,6 +15,7 @@ import javax.validation.ConstraintViolationException;
 import javax.validation.ValidationException;
 import javax.validation.Validator;
 
+import com.jeeplus.common.config.Global;
 import org.apache.commons.lang3.StringEscapeUtils;
 import org.apache.shiro.authc.AuthenticationException;
 import org.slf4j.Logger;
@@ -40,6 +41,8 @@ import com.jeeplus.common.utils.RequestUtils;
  */
 public abstract class BaseController {
 
+	/** 文件存储方式(0:本地服务器存储。1:云端存储) */
+	protected final static String uploadMode = Global.getConfig("remoteServer.uploadMode");
 	/**
 	 * 日志对象
 	 */

+ 6 - 4
src/main/java/com/jeeplus/modules/oa/service/OaNotifyService.java

@@ -106,6 +106,10 @@ public class OaNotifyService extends CrudService<OaNotifyDao, OaNotify> {
             List<Workattachment> attachmentList = workattachmentService.getListByAttachmentIdAndFlag(id, "79");
             oaNotify.setWorkAttachments(attachmentList);
         }
+        //添加当前文件服务器类型
+        oaNotify.setUploadMode(uploadMode);
+        //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+        workattachmentService.attachmentManageOnUrl(oaNotify.getWorkAttachments());
         return oaNotify;
     }
 
@@ -685,11 +689,9 @@ public class OaNotifyService extends CrudService<OaNotifyDao, OaNotify> {
                     workattachment.setAttachmentFlag("79");
                     workattachment.setAttachmentUser(UserUtils.getUser().getId());
                     if (StringUtils.isBlank(workattachment.getId()) || "null".equals(workattachment.getId())) {
-                        workattachment.preInsert();
-                        workattachmentService.insert(workattachment);
+                        workattachmentService.insertOnWorkAttachment(workattachment);
                     } else {
-                        workattachment.preUpdate();
-                        workattachmentService.save(workattachment);
+                        workattachmentService.updateOnWorkAttachment(workattachment);
                     }
                 } else {
                     workattachmentService.delete(workattachment);

+ 2 - 4
src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectAccessoryService.java

@@ -271,12 +271,10 @@ public class ProjectAccessoryService extends TreeService<ProjectAccessoryDao, Pr
                     workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
                     if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())) {
                         //新增附件信息
-                        workClientAttachment.preInsert();
-                        workClientAttachmentDao.insert(workClientAttachment);
+                        workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
                     } else {
                         //修改附件信息
-                        workClientAttachment.preUpdate();
-                        workClientAttachmentDao.update(workClientAttachment);
+                        workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
                     }
                 } else {
                     //删除附件信息

+ 6 - 2
src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectTemplateService.java

@@ -296,7 +296,9 @@ public class ProjectTemplateService extends TreeService<ProjectTemplateDao, Proj
             WorkClientAttachment attchment = new WorkClientAttachment();
             attchment.setProjectId(projectTemplateInfo.getId());
             attchment.setAttachmentId(info.getId());
-            List<WorkClientAttachment> attachments = workClientAttachmentDao.getList(attchment);
+            List<WorkClientAttachment> attachments = workattachmentService.getList(attchment);
+            //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+            workattachmentService.clientAttachmentManageOnUrl(attachments);
             info.setWorkAttachments(attachments);
             //判断是否为必填项,若为必填项则添加必填判定字段
             if(info.getRequiredStage() == projectTemplateInfo.getRequiredStage()){
@@ -311,7 +313,9 @@ public class ProjectTemplateService extends TreeService<ProjectTemplateDao, Proj
             WorkClientAttachment attchment = new WorkClientAttachment();
             attchment.setProjectId(projectTemplateInfo.getId());
             attchment.setAttachmentId(otherInfo.getId());
-            List<WorkClientAttachment> attachments = workClientAttachmentDao.getList(attchment);
+            List<WorkClientAttachment> attachments = workattachmentService.getList(attchment);
+            //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+            workattachmentService.clientAttachmentManageOnUrl(attachments);
             if(attachments.size()>0){
                 otherInfo.setWorkAttachments(attachments);
 

+ 34 - 0
src/main/java/com/jeeplus/modules/projectEngineering/dao/ProjectEngineeringInfoDao.java

@@ -0,0 +1,34 @@
+package com.jeeplus.modules.projectEngineering.dao;
+
+import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.TreeDao;
+import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryInfo;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 工程类型
+ */
+@MyBatisDao
+public interface ProjectEngineeringInfoDao extends CrudDao<ProjectEngineeringInfo>, TreeDao<ProjectEngineeringInfo> {
+
+    /**
+     * 获取所有的父级信息
+     * @return
+     */
+    public List<ProjectEngineeringInfo> getParentAll();
+
+    /**
+     * 查询最大的序号
+     * @param parentId
+     * @return
+     */
+    String selectOrderNum(String parentId);
+
+    List<ProjectEngineeringInfo> fingIds(@Param("parentIdSet") Set<String> parentIdSet, @Param("companyId") String companyId);
+}

+ 46 - 0
src/main/java/com/jeeplus/modules/projectEngineering/entity/EngineeringTree.java

@@ -0,0 +1,46 @@
+package com.jeeplus.modules.projectEngineering.entity;
+
+import java.util.List;
+
+/**
+ * 工程类型树形实体类
+ */
+public class EngineeringTree {
+
+    private String title; //工程类型名称
+    private String id;  //工程类型Id
+    private String type; //是否有子集
+    private List<EngineeringTree> child;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public List<EngineeringTree> getChild() {
+        return child;
+    }
+
+    public void setChild(List<EngineeringTree> child) {
+        this.child = child;
+    }
+}

+ 83 - 0
src/main/java/com/jeeplus/modules/projectEngineering/entity/ProjectEngineeringInfo.java

@@ -0,0 +1,83 @@
+package com.jeeplus.modules.projectEngineering.entity;
+
+import com.jeeplus.common.persistence.TreeEntity;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+
+/**
+ * 工程类型实体类
+ */
+public class ProjectEngineeringInfo extends TreeEntity<ProjectEngineeringInfo> {
+
+    private String engineeringName; //名称
+    private String indexNum;        //序号
+    private String parentIds;		// 所有父ID
+    private String parentId;		// 父ID
+    private String companyId;   //公司id
+    private String parentName;
+
+
+    public String getParentName() {
+        return parentName;
+    }
+
+    public void setParentName(String parentName) {
+        this.parentName = parentName;
+    }
+
+    public String getEngineeringName() {
+        return engineeringName;
+    }
+
+    public void setEngineeringName(String engineeringName) {
+        this.engineeringName = engineeringName;
+    }
+
+    public String getIndexNum() {
+        return indexNum;
+    }
+
+    public void setIndexNum(String indexNum) {
+        this.indexNum = indexNum;
+    }
+
+    @Override
+    public ProjectEngineeringInfo getParent() {
+        return parent;
+    }
+
+    @Override
+    public void setParent(ProjectEngineeringInfo parent) {
+        this.parent = parent;
+    }
+    public int getGrade(){
+        String[] split = this.getParentIds().split(",");
+        if ("0".equals(this.parent.id)){
+            return Integer.parseInt(this.parent.id);
+        }
+        return split.length-1;
+    }
+
+    public String getParentIds() {
+        return parentIds;
+    }
+
+    public void setParentIds(String parentIds) {
+        this.parentIds = parentIds;
+    }
+
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+}

+ 146 - 0
src/main/java/com/jeeplus/modules/projectEngineering/service/ProjectEngineeringService.java

@@ -0,0 +1,146 @@
+package com.jeeplus.modules.projectEngineering.service;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.service.TreeService;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.projectAccessory.dao.ProjectTemplateDao;
+import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryInfo;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectEngineering.dao.ProjectEngineeringInfoDao;
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
+import com.jeeplus.modules.sys.entity.Office;
+import com.jeeplus.modules.sys.utils.UserUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.*;
+
+@Service
+@Transactional(readOnly = true)
+public class ProjectEngineeringService extends TreeService<ProjectEngineeringInfoDao, ProjectEngineeringInfo> {
+    @Autowired
+    private ProjectEngineeringInfoDao engineeringInfoDao;
+
+    public ProjectEngineeringInfo get(String id) {
+        return super.get(id);
+    }
+    private List<ProjectEngineeringInfo> fingIds(Set<String> parentIdSet, String companyId) {
+        return engineeringInfoDao.fingIds(parentIdSet,companyId);
+    }
+    /**
+     * 查询所有数据
+     * @param projectEngineeringInfo
+     * @return
+     */
+    public List<ProjectEngineeringInfo> findList(ProjectEngineeringInfo projectEngineeringInfo) {
+        List<ProjectEngineeringInfo> projectEngineeringInfoList = new ArrayList<>();
+        List<ProjectEngineeringInfo> listReturn = Lists.newArrayList();
+        //根据条件查询数据集合
+        List<ProjectEngineeringInfo> listAll = super.findList(projectEngineeringInfo);
+        Office company = UserUtils.getSelectCompany();
+        projectEngineeringInfo.setCompanyId(company.getId());
+        //判断,数据不为空则添加到返回集合中
+        if (listAll!=null && listAll.size()!=0){
+            projectEngineeringInfoList.addAll(listAll);
+        }
+
+        if(projectEngineeringInfoList!=null&&projectEngineeringInfoList.size()>0&&projectEngineeringInfo!=null&& (StringUtils.isNotBlank(projectEngineeringInfo.getEngineeringName())||StringUtils.isNotBlank(projectEngineeringInfo.getIndexNum()))){
+            //标准内容模糊查询,查询所有父节点
+            Set<String> parentIdSet = new HashSet<>();
+            for (ProjectEngineeringInfo engineeringInfo : projectEngineeringInfoList) {
+                String parentIds = engineeringInfo.getParentIds();
+                if (StringUtils.isNotBlank(parentIds)){
+                    parentIdSet.addAll(Arrays.asList(parentIds.split(",")));
+                }
+            }
+            for (ProjectEngineeringInfo engineeringInfo : projectEngineeringInfoList) {
+                parentIdSet.remove(engineeringInfo.getId());
+            }
+            projectEngineeringInfoList.addAll(0,this.fingIds(parentIdSet,"0"));
+            projectEngineeringInfoList.addAll(0,this.fingIds(parentIdSet,UserUtils.getSelectCompany().getId()));
+        }
+        sortList(listReturn,projectEngineeringInfoList,"0",true);
+        return listReturn;
+    }
+    public static void sortList(List<ProjectEngineeringInfo> list, List<ProjectEngineeringInfo> sourcelist, String parentId, boolean cascade){
+        for (int i=0; i<sourcelist.size(); i++){
+            ProjectEngineeringInfo e = sourcelist.get(i);
+            if (e.getParent()!=null && StringUtils.isNotBlank(e.getParent().getId()) && e.getParent().getId().equals(parentId)){
+                list.add(e);
+                if (cascade){
+                    // 判断是否还有子节点, 有则继续获取子节点
+                    for (int j=0; j<sourcelist.size(); j++){
+                        ProjectEngineeringInfo child = sourcelist.get(j);
+                        if (child.getParent()!=null && StringUtils.isNotBlank(child.getParent().getId()) && child.getParent().getId().equals(e.getId())){
+                            sortList(list, sourcelist, e.getId(), true);
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+    }
+    /**
+     * 新增
+     * @param projectEngineeringInfo
+     */
+    @Transactional(readOnly = false)
+    public void save(ProjectEngineeringInfo projectEngineeringInfo) {
+        //设置序号
+        if(projectEngineeringInfo.getIsNewRecord()) {
+            projectEngineeringInfo.setParent(this.get(projectEngineeringInfo.getParent().getId()));
+            String orderNum = null;
+            //判断是否选择了父级节点。没有选择则默认为第一级别
+            if(null != projectEngineeringInfo.getParent()){
+                //添加数据
+                String parentids=projectEngineeringInfo.getParent().getParentIds();
+                projectEngineeringInfo.setParentIds(parentids+projectEngineeringInfo.getParent().getId()+",");
+                projectEngineeringInfo.setParentId(projectEngineeringInfo.getParent().getId());
+                orderNum = this.selectOrderNum(projectEngineeringInfo.getParent().getId());
+                projectEngineeringInfo.setCompanyId(UserUtils.getSelectCompany().getId());
+            }else{
+                //添加数据
+                projectEngineeringInfo.setParentIds("0,");
+                projectEngineeringInfo.setParentId("0");
+                orderNum = this.selectOrderNum("0");
+                if (null == orderNum){
+                    orderNum="0";
+                }
+                projectEngineeringInfo.setCompanyId("0");
+            }
+            //判断是否有数据,没有数据则默认给编号01,有则在最大数据上递增1
+            if (StringUtils.isBlank(orderNum)) {
+                projectEngineeringInfo.setIndexNum(projectEngineeringInfo.getParent().getIndexNum() + "01");
+            } else {
+                projectEngineeringInfo.setIndexNum(String.valueOf(Integer.valueOf(orderNum) + 1));
+            }
+        }
+        //根据条件进行新增或修改处理
+        if (StringUtils.isNotBlank(projectEngineeringInfo.getId())){
+            projectEngineeringInfo.preUpdate();
+            dao.update(projectEngineeringInfo);
+        }else{
+            projectEngineeringInfo.preInsert();
+            dao.insert(projectEngineeringInfo);
+        }
+    }
+
+    /**
+     * 获取所有父级信息
+     * @return
+     */
+    public List<ProjectEngineeringInfo> getParentInfo(){
+        return engineeringInfoDao.getParentAll();
+    }
+
+    /**
+     * 自动生成序号
+     * @param parentId
+     * @return
+     */
+    public String selectOrderNum(String parentId) {
+        return engineeringInfoDao.selectOrderNum(parentId);
+    }
+
+}

+ 117 - 0
src/main/java/com/jeeplus/modules/projectEngineering/web/ProjectEngineeringController.java

@@ -0,0 +1,117 @@
+package com.jeeplus.modules.projectEngineering.web;
+
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.servlet.mvc.support.RedirectAttributes;
+
+import java.util.List;
+
+/**
+ * 工程类型
+ *
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/projectEngineering/projectEngineering")
+public class ProjectEngineeringController  extends BaseController {
+    @Autowired
+    private ProjectEngineeringService engineeringService;
+
+    @ModelAttribute
+    public ProjectEngineeringInfo get(@RequestParam(required=false) String id) {
+        ProjectEngineeringInfo entity = null;
+        if (StringUtils.isNotBlank(id)){
+            entity = engineeringService.get(id);
+        }
+        if (entity == null){
+            entity = new ProjectEngineeringInfo();
+        }
+        return entity;
+    }
+
+    /**
+     * 工程类型列表
+     * @param projectEngineeringInfo
+     * @param model
+     * @return
+     */
+    @RequiresPermissions("projectEngineering:projectEngineering:list")
+    @RequestMapping(value = {"list", ""})
+    public String list(ProjectEngineeringInfo projectEngineeringInfo, Model model) {
+        List<ProjectEngineeringInfo> list = engineeringService.findList(projectEngineeringInfo);
+        model.addAttribute("list", list);
+        model.addAttribute("projectengineeringInfo", projectEngineeringInfo);
+        return "modules/projectAccessory/projectEngineering/projectEngineeringList";
+    }
+    /**
+     * 查看,增加,编辑工程类型表单页面
+     * @param projectEngineeringInfo
+     * @param model
+     * @return
+     */
+    @RequiresPermissions(value={"projectEngineering:projectEngineering:add","projectEngineering:projectEngineering:edit"},logical= Logical.OR)
+    @RequestMapping(value = "form")
+    public String form(ProjectEngineeringInfo projectEngineeringInfo, Model model) {
+        //获取所有父级工程类型
+        List<ProjectEngineeringInfo> parentInfos=engineeringService.getParentInfo();
+        model.addAttribute("parentInfos", parentInfos);
+        if(projectEngineeringInfo!=null&&projectEngineeringInfo.getParent()!=null&&StringUtils.isNotBlank(projectEngineeringInfo.getParent().getId())){
+            ProjectEngineeringInfo parent = engineeringService.get(projectEngineeringInfo.getParent().getId());
+            model.addAttribute("parent", parent);
+        }
+        model.addAttribute("projectEngineeringInfo", projectEngineeringInfo);
+        return "modules/projectAccessory/projectEngineering/projectEngineeringForm";
+    }
+    /**
+     * 保存工程类型
+     * @param projectEngineeringInfo
+     * @param model
+     * @param redirectAttributes
+     * @return
+     * @throws Exception
+     */
+    @RequiresPermissions(value={"projectEngineering:projectEngineering:add","projectEngineering:projectEngineering:edit"},logical= Logical.OR)
+    @RequestMapping(value = "save")
+    public String save(ProjectEngineeringInfo projectEngineeringInfo, Model model, RedirectAttributes redirectAttributes) throws Exception{
+//        if (!beanValidator(model, projectEngineeringInfo)){
+//            return form(projectEngineeringInfo, model);
+//        }
+        if(!projectEngineeringInfo.getIsNewRecord()){//编辑表单保存
+            ProjectEngineeringInfo t = engineeringService.get(projectEngineeringInfo.getId());//从数据库取出记录的值
+            MyBeanUtils.copyBeanNotNull2Bean(projectEngineeringInfo, t);//将编辑表单中的非NULL值覆盖数据库记录中的值
+            engineeringService.save(t);//保存
+        }else{//新增表单保存
+            engineeringService.save(projectEngineeringInfo);//保存
+        }
+        addMessage(redirectAttributes, "保存成功");
+        return "redirect:"+ Global.getAdminPath()+"/projectEngineering/projectEngineering/?repage";
+    }
+    /**
+     * 删除工程类型
+     * @param projectEngineeringInfo
+     * @param redirectAttributes
+     * @return
+     */
+    @RequiresPermissions("projectEngineering:projectEngineering:del")
+    @RequestMapping(value = "delete")
+    public String delete(ProjectEngineeringInfo projectEngineeringInfo, RedirectAttributes redirectAttributes) {
+        engineeringService.delete(projectEngineeringInfo);
+        addMessage(redirectAttributes, "删除成功");
+        return "redirect:"+Global.getAdminPath()+"/projectEngineering/projectEngineering/?repage";
+    }
+}
+
+

+ 3 - 4
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectPlanService.java

@@ -43,6 +43,7 @@ public class ProjectPlanService extends CrudService<ProjectPlanDao, ProjectPlanI
         attchment.setAttachmentId(projectId);
         attchment.setAttachmentFlag("131");
         List<WorkClientAttachment> attachments = workattachmentService.getAttachmentList(attchment);
+        workattachmentService.clientAttachmentManageOnUrl(attachments);
         return attachments;
     }
 
@@ -131,11 +132,9 @@ public class ProjectPlanService extends CrudService<ProjectPlanDao, ProjectPlanI
                 workClientAttachment.setAttachmentFlag("131");
                 workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
                 if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())){
-                    workClientAttachment.preInsert();
-                    workClientAttachmentDao.insert(workClientAttachment);
+                    workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
                 }else{
-                    workClientAttachment.preUpdate();
-                    workClientAttachmentDao.update(workClientAttachment);
+                    workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
                 }
             }else{
                 workClientAttachmentDao.delete(workClientAttachment);

+ 1 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectPlanController.java

@@ -164,6 +164,7 @@ public class ProjectPlanController extends BaseController {
         List<WorkClientAttachment> workAttachmentList = projectPlanService.getWorkAttachment(projectRecords.getId());
         projectRecords.setProjectPlanList(projectPlanList);
         projectRecords.setWorkAttachments(workAttachmentList);
+        projectRecords.setUploadMode(uploadMode);
         model.addAttribute("projectRecords", projectRecords);
         if(flag){
             return "modules/projectrecord/plan/projectPlanView";

+ 2 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectRecordReportDao.java

@@ -20,14 +20,14 @@ public interface RuralProjectRecordReportDao extends CrudDao<RuralProjectRecordR
      * @param ruralProjectRecordReportInfo
      * @return
      */
-    List<String> getYear(RuralProjectRecordReportInfo ruralProjectRecordReportInfo);
+    List<Integer> getYear(RuralProjectRecordReportInfo ruralProjectRecordReportInfo);
 
     /**
      * 获取项目月份信息
      * @param ruralProjectRecordReportInfo
      * @return
      */
-    List<String> getMonth(RuralProjectRecordReportInfo ruralProjectRecordReportInfo);
+    List<Integer> getMonth(RuralProjectRecordReportInfo ruralProjectRecordReportInfo);
 
     /**
      * 获取项目部门信息

+ 2 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/dao/RuralProjectReportDao.java

@@ -20,14 +20,14 @@ public interface RuralProjectReportDao extends CrudDao<RuralProjectReportInfo> {
      * @param ruralProjectReportInfo
      * @return
      */
-    List<String> getYear(RuralProjectReportInfo ruralProjectReportInfo);
+    List<Integer> getYear(RuralProjectReportInfo ruralProjectReportInfo);
 
     /**
      * 获取项目月份信息
      * @param ruralProjectReportInfo
      * @return
      */
-    List<String> getMonth(RuralProjectReportInfo ruralProjectReportInfo);
+    List<Integer> getMonth(RuralProjectReportInfo ruralProjectReportInfo);
 
     /**
      * 获取项目月份信息

+ 121 - 6
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecordReportInfo.java

@@ -25,6 +25,19 @@ public class RuralProjectRecordReportInfo extends DataEntity<RuralProjectRecordR
     private String projectType;   //类型
     private Integer endingCount;   //结束天数
     private List<String> typeList;
+    private String reportedState;   //上报状态
+    private String reportedProcessInstanceId;   //上报流程号
+    private Integer projectReportRecordStatus; //归档状态
+    private String filingProjectStatus; //批量归档状态
+    private String filingBatch ;//档次批号id
+    private String boxNum; //盒号
+    private String reBoxNum;//确认盒号
+    //归档批次信息
+    private String filingBatchId; //归档批次Id
+    private String filingProcessinstanceId;// 审批流程id
+    private Integer filingStatus;//归档审批状态
+    private String checkStatus; //选查状态
+    private String checkProcessInstanceId;//选查审批流程
 
     @ExcelField(title="年份", align=2, sort=2)
     public String getYear() {
@@ -80,16 +93,44 @@ public class RuralProjectRecordReportInfo extends DataEntity<RuralProjectRecordR
         this.officeName = officeName;
     }
 
-    @ExcelField(title="归档状态", align=2, sort=8)
-    public String getRecordStatus() {
-        return recordStatus;
+    @ExcelField(title="电子归档", dictType = "archive_state", align=2, sort=8)
+    public Integer getProjectReportRecordStatus() {
+        return projectReportRecordStatus;
     }
 
-    public void setRecordStatus(String recordStatus) {
-        this.recordStatus = recordStatus;
+    public void setProjectReportRecordStatus(Integer projectReportRecordStatus) {
+        this.projectReportRecordStatus = projectReportRecordStatus;
+    }
+
+    @ExcelField(title="批量归档", dictType = "archive_state", align=2, sort=9)
+    public String getFilingProjectStatus() {
+        return filingProjectStatus;
+    }
+
+    public void setFilingProjectStatus(String filingProjectStatus) {
+        this.filingProjectStatus = filingProjectStatus;
+    }
+
+
+
+    @ExcelField(title="上报状态",dictType = "reported_state", align=2, sort=10)
+    public String getReportedState() {
+        return reportedState;
+    }
+
+    public void setReportedState(String reportedState) {
+        this.reportedState = reportedState;
+    }
+
+    @ExcelField(title="选查", dictType = "check_status", align=2, sort=11)
+    public String getCheckStatus() {
+        return checkStatus;
+    }
+
+    public void setCheckStatus(String checkStatus) {
+        this.checkStatus = checkStatus;
     }
 
-    @ExcelField(title="上报状态", align=2, sort=9)
     public String getReportedStatus() {
         return reportedStatus;
     }
@@ -98,6 +139,14 @@ public class RuralProjectRecordReportInfo extends DataEntity<RuralProjectRecordR
         this.reportedStatus = reportedStatus;
     }
 
+    public String getRecordStatus() {
+        return recordStatus;
+    }
+
+    public void setRecordStatus(String recordStatus) {
+        this.recordStatus = recordStatus;
+    }
+
     public String getProjectType() {
         return projectType;
     }
@@ -129,4 +178,70 @@ public class RuralProjectRecordReportInfo extends DataEntity<RuralProjectRecordR
     public void setTypeList(List<String> typeList) {
         this.typeList = typeList;
     }
+
+
+    public String getReportedProcessInstanceId() {
+        return reportedProcessInstanceId;
+    }
+
+    public void setReportedProcessInstanceId(String reportedProcessInstanceId) {
+        this.reportedProcessInstanceId = reportedProcessInstanceId;
+    }
+
+    public String getFilingBatch() {
+        return filingBatch;
+    }
+
+    public void setFilingBatch(String filingBatch) {
+        this.filingBatch = filingBatch;
+    }
+
+    public String getBoxNum() {
+        return boxNum;
+    }
+
+    public void setBoxNum(String boxNum) {
+        this.boxNum = boxNum;
+    }
+
+    public String getReBoxNum() {
+        return reBoxNum;
+    }
+
+    public void setReBoxNum(String reBoxNum) {
+        this.reBoxNum = reBoxNum;
+    }
+
+    public String getFilingBatchId() {
+        return filingBatchId;
+    }
+
+    public void setFilingBatchId(String filingBatchId) {
+        this.filingBatchId = filingBatchId;
+    }
+
+    public String getFilingProcessinstanceId() {
+        return filingProcessinstanceId;
+    }
+
+    public void setFilingProcessinstanceId(String filingProcessinstanceId) {
+        this.filingProcessinstanceId = filingProcessinstanceId;
+    }
+
+    public Integer getFilingStatus() {
+        return filingStatus;
+    }
+
+    public void setFilingStatus(Integer filingStatus) {
+        this.filingStatus = filingStatus;
+    }
+
+
+    public String getCheckProcessInstanceId() {
+        return checkProcessInstanceId;
+    }
+
+    public void setCheckProcessInstanceId(String checkProcessInstanceId) {
+        this.checkProcessInstanceId = checkProcessInstanceId;
+    }
 }

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

@@ -179,6 +179,11 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private String projectMasterId;		//项目负责人id
 	private List<User> projectMasterIds; //项目负责人list
 
+	private String engineeringType;	//工程类型id
+	private String engineeringName;	//工程类型名称
+	private String submitMoney;		//送审金额
+
+
 	private List<String> civilProjectList = Lists.newArrayList();
 	private List<WorkClientAttachment> workAttachments = Lists.newArrayList();
 
@@ -1249,4 +1254,28 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	public void setProjectMasterIds(List<User> projectMasterIds) {
 		this.projectMasterIds = projectMasterIds;
 	}
+
+	public String getEngineeringType() {
+		return engineeringType;
+	}
+
+	public void setEngineeringType(String engineeringType) {
+		this.engineeringType = engineeringType;
+	}
+
+	public String getEngineeringName() {
+		return engineeringName;
+	}
+
+	public void setEngineeringName(String engineeringName) {
+		this.engineeringName = engineeringName;
+	}
+
+	public String getSubmitMoney() {
+		return submitMoney;
+	}
+
+	public void setSubmitMoney(String submitMoney) {
+		this.submitMoney = submitMoney;
+	}
 }

+ 97 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectReportInfo.java

@@ -2,7 +2,9 @@ package com.jeeplus.modules.ruralprojectrecords.entity;
 
 import com.jeeplus.common.persistence.DataEntity;
 import com.jeeplus.common.utils.excel.annotation.ExcelField;
+import com.jeeplus.modules.sys.entity.Area;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -26,9 +28,20 @@ public class RuralProjectReportInfo extends DataEntity<RuralProjectReportInfo>
     private Double verifyRate;      //核增核减率(%)
     private String principalUser;   //项目负责人
     private String officeName;      //所属部门
+    private BigDecimal allMoney;      //汇总项目开票额
+
+    private String province;  //项目所在省
+    private String city;  //项目所在市
+    private String county;//项目所在区
 
     private String projectType;   //类型
+    private String reportedState;   //上报状态
+    private String reportedProcessInstanceId;   //上报流程号
     private String officeId;
+    private String createId;
+    private String createName;
+    private String createNameStr;
+    private Area area;		// 项目所在地
 
     @ExcelField(title="年份", align=2, sort=2)
     public String getYear() {
@@ -138,7 +151,16 @@ public class RuralProjectReportInfo extends DataEntity<RuralProjectReportInfo>
         this.verifyRate = verifyRate;
     }
 
-    @ExcelField(title="项目负责人", align=2, sort=14)
+    @ExcelField(title="汇总项目开票额", align=2, sort=14)
+    public BigDecimal getAllMoney() {
+        return allMoney;
+    }
+
+    public void setAllMoney(BigDecimal allMoney) {
+        this.allMoney = allMoney;
+    }
+
+    @ExcelField(title="项目负责人", align=2, sort=15)
     public String getPrincipalUser() {
         return principalUser;
     }
@@ -147,7 +169,7 @@ public class RuralProjectReportInfo extends DataEntity<RuralProjectReportInfo>
         this.principalUser = principalUser;
     }
 
-    @ExcelField(title="所属部门", align=2, sort=15)
+    @ExcelField(title="所属部门", align=2, sort=16)
     public String getOfficeName() {
         return officeName;
     }
@@ -171,4 +193,77 @@ public class RuralProjectReportInfo extends DataEntity<RuralProjectReportInfo>
     public void setOfficeId(String officeId) {
         this.officeId = officeId;
     }
+
+    @ExcelField(title="上报状态",dictType="reported_state", align=2, sort=17)
+    public String getReportedState() {
+        return reportedState;
+    }
+
+    public void setReportedState(String reportedState) {
+        this.reportedState = reportedState;
+    }
+
+    public String getReportedProcessInstanceId() {
+        return reportedProcessInstanceId;
+    }
+
+    public void setReportedProcessInstanceId(String reportedProcessInstanceId) {
+        this.reportedProcessInstanceId = reportedProcessInstanceId;
+    }
+
+    public Area getArea() {
+        return area;
+    }
+
+    public void setArea(Area area) {
+        this.area = area;
+    }
+
+    public String getCreateId() {
+        return createId;
+    }
+
+    public void setCreateId(String createId) {
+        this.createId = createId;
+    }
+
+    public String getCreateName() {
+        return createName;
+    }
+
+    public void setCreateName(String createName) {
+        this.createName = createName;
+    }
+
+    public String getCreateNameStr() {
+        return createNameStr;
+    }
+
+    public void setCreateNameStr(String createNameStr) {
+        this.createNameStr = createNameStr;
+    }
+
+    public String getProvince() {
+        return province;
+    }
+
+    public void setProvince(String province) {
+        this.province = province;
+    }
+
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+
+    public String getCounty() {
+        return county;
+    }
+
+    public void setCounty(String county) {
+        this.county = county;
+    }
 }

+ 29 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordReportService.java

@@ -5,6 +5,10 @@ import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.Collections3;
 import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingBatchDao;
+import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingbatchRelationDao;
+import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
+import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectRecordReportDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralWorkProjectUserDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo;
@@ -13,6 +17,7 @@ import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +34,10 @@ public class RuralProjectRecordReportService extends CrudService<RuralProjectRec
 
     @Autowired
     private RuralWorkProjectUserDao workProjectUserDao;
+    @Autowired
+    private ProjectFilingbatchRelationDao filingbatchRelationDao;
+    @Autowired
+    private ProjectFilingBatchDao projectFilingBatchDao;
 
     public Page<RuralProjectRecordReportInfo> findPage(Page<RuralProjectRecordReportInfo> page, RuralProjectRecordReportInfo ruralProjectRecordReportInfo) {
         //设置数据权限
@@ -56,6 +65,24 @@ public class RuralProjectRecordReportService extends CrudService<RuralProjectRec
                 records.setOfficeName(user.getOffice().getName());
                 records.setOfficeId(user.getOffice().getId());
             }
+
+            //项目归档批次
+            ProjectFilingbatchRelation relation=filingbatchRelationDao.getProjectId(records.getId());
+            if(relation!=null && StringUtils.isNotBlank(relation.getId())){
+                records.setFilingBatch(relation.getFilingBatch());
+                records.setFilingProjectStatus(relation.getStatus().toString());
+                records.setBoxNum(relation.getBoxNum());
+                records.setReBoxNum(relation.getReBoxNum());
+                ProjectFilingBatch filingBatch=projectFilingBatchDao.findByFilingBatchOnProject(relation.getFilingBatch());
+                if(null != filingBatch){
+                    records.setFilingBatchId(filingBatch.getId());
+                    records.setFilingProcessinstanceId(filingBatch.getProcessinstanceId());
+                    records.setFilingStatus(filingBatch.getFilingStatus());
+                }
+            }else{
+                records.setFilingStatus(0);
+                records.setFilingProjectStatus("0");
+            }
         }
         page.setList(list);
         return page;
@@ -66,7 +93,7 @@ public class RuralProjectRecordReportService extends CrudService<RuralProjectRec
      * @param ruralProjectRecordReportInfo
      * @return
      */
-    public List<String> getYear(RuralProjectRecordReportInfo ruralProjectRecordReportInfo){
+    public List<Integer> getYear(RuralProjectRecordReportInfo ruralProjectRecordReportInfo){
         return dao.getYear(ruralProjectRecordReportInfo);
     }
 
@@ -75,7 +102,7 @@ public class RuralProjectRecordReportService extends CrudService<RuralProjectRec
      * @param ruralProjectRecordReportInfo
      * @return
      */
-    public List<String> getMonth(RuralProjectRecordReportInfo ruralProjectRecordReportInfo){
+    public List<Integer> getMonth(RuralProjectRecordReportInfo ruralProjectRecordReportInfo){
         return dao.getMonth(ruralProjectRecordReportInfo);
     }
 

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

@@ -167,7 +167,9 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	private static byte[] SYN_BYTE = new byte[0];
 
 	public RuralProjectRecords get(String id) {
-		return super.get(id);
+		RuralProjectRecords ruralProjectRecords = super.get(id);
+		ruralProjectRecords.setUploadMode(uploadMode);
+		return ruralProjectRecords;
 	}
 	public ProjectRecords getProjectRecords(String id) {
 		return dao.getProjectRecords(id);
@@ -1688,14 +1690,21 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		//添加项目类型
 		relateInfo.setAttachmentProjectType(projectRecords.getProjectType());
 		relateInfo.setAttachmentProjectSort(projectRecords.getAttachmentProjectSort());
-		Integer approvalMoney = 0;
-		if(null != projectReportData){
+//		Integer approvalMoney = 0;
+//		if(null != projectReportData){
 			//查看送审金额是否为500w以上金额
-			approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//			approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
 
-		}
+//		}
 		//设置默认值为500w以上的展示数据
-		approvalMoney = 2;
+//		approvalMoney = 2;
+		String money=projectcontentinfo.getProject().getSubmitMoney();
+		Integer approvalMoney=null;
+		if(null==money){
+			approvalMoney=1;
+		}else{
+			approvalMoney=Integer.parseInt(money);
+		}
 		switch (approvalMoney){
 			case 0:
 				//金额为0
@@ -1754,6 +1763,8 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 
 		}
 
+		//添加当前文件服务器类型
+		projectcontentinfo.setUploadMode(uploadMode);
 		return projectcontentinfo;
 	}
 
@@ -1771,7 +1782,9 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			WorkClientAttachment attchment = new WorkClientAttachment();
 			attchment.setProjectId(projectTemplateInfo.getId());
 			attchment.setAttachmentId(info.getId());
-			List<WorkClientAttachment> attachments = workClientAttachmentDao.getList(attchment);
+			List<WorkClientAttachment> attachments = workattachmentService.getList(attchment);
+			//数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+			workattachmentService.clientAttachmentManageOnUrl(attachments);
 			info.setWorkAttachments(attachments);
 			//判断是否为必填项,若为必填项则添加必填判定字段
 			info.setMustFlag(0);
@@ -1787,7 +1800,9 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			WorkClientAttachment attchment = new WorkClientAttachment();
 			attchment.setProjectId(projectTemplateInfo.getId());
 			attchment.setAttachmentId(otherInfo.getId());
-			List<WorkClientAttachment> attachments = workClientAttachmentDao.getList(attchment);
+			List<WorkClientAttachment> attachments = workattachmentService.getList(attchment);
+			//数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+			workattachmentService.clientAttachmentManageOnUrl(attachments);
 			if(attachments.size()>0){
 				otherInfo.setWorkAttachments(attachments);
 

+ 30 - 2
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectReportService.java

@@ -3,12 +3,15 @@ package com.jeeplus.modules.ruralprojectrecords.service;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectReportDao;
 import com.jeeplus.modules.ruralprojectrecords.dao.RuralWorkProjectUserDao;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
+import com.jeeplus.modules.sys.entity.Area;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.service.AreaService;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -26,8 +29,14 @@ public class RuralProjectReportService extends CrudService<RuralProjectReportDao
 
     @Autowired
     private RuralWorkProjectUserDao workProjectUserDao;
+    @Autowired
+    private AreaService areaService;
 
     public Page<RuralProjectReportInfo> findPage(Page<RuralProjectReportInfo> page, RuralProjectReportInfo ruralProjectReportInfo) {
+        //判断查询条件中的项目所在地是否存在值
+        if(null != ruralProjectReportInfo.getArea() && StringUtils.isNotBlank(ruralProjectReportInfo.getArea().getId())){
+            getArea(ruralProjectReportInfo);
+        }
         //设置数据权限
         if(!UserUtils.getUser().isAdmin()) {
             String dataScopeSql = null;
@@ -63,7 +72,7 @@ public class RuralProjectReportService extends CrudService<RuralProjectReportDao
      * @param ruralProjectReportInfo
      * @return
      */
-    public List<String> getYear(RuralProjectReportInfo ruralProjectReportInfo){
+    public List<Integer> getYear(RuralProjectReportInfo ruralProjectReportInfo){
         return dao.getYear(ruralProjectReportInfo);
     }
 
@@ -72,7 +81,7 @@ public class RuralProjectReportService extends CrudService<RuralProjectReportDao
      * @param ruralProjectReportInfo
      * @return
      */
-    public List<String> getMonth(RuralProjectReportInfo ruralProjectReportInfo){
+    public List<Integer> getMonth(RuralProjectReportInfo ruralProjectReportInfo){
         return dao.getMonth(ruralProjectReportInfo);
     }
 
@@ -84,4 +93,23 @@ public class RuralProjectReportService extends CrudService<RuralProjectReportDao
     public List<Office> getOffice(RuralProjectReportInfo ruralProjectReportInfo){
         return dao.getOffice(ruralProjectReportInfo);
     }
+
+    public void getArea(RuralProjectReportInfo ruralProjectReportInfo){
+        Area area = areaService.get(ruralProjectReportInfo.getArea().getId());
+        Area area1 = areaService.get(area.getParent().getId());
+        if(area1.getId().equals("1")){
+            ruralProjectReportInfo.setProvince(area.getName());
+            return;
+        }
+        Area area2 = areaService.get(area1.getParent().getId());
+        if(area2.getId().equals("1")){
+            ruralProjectReportInfo.setProvince(area1.getName());
+            ruralProjectReportInfo.setCity(area.getName());
+            return;
+        }
+        ruralProjectReportInfo.setProvince(area2.getName());
+        ruralProjectReportInfo.setCity(area1.getName());
+        ruralProjectReportInfo.setCounty(area.getName());
+        return;
+    }
 }

+ 50 - 10
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectMessageController.java

@@ -189,8 +189,15 @@ public class RuralCostProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             /*if(0 == projectSort){*/
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectcontentinfo.getProjectReportData().getReviewFee());
-        approvalMoney = 2;
+//                Integer appsrovalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectcontentinfo.getProjectReportData().getReviewFee());
+//        approvalMoney = 2;
+        String money=projectcontentinfo.getProject().getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -231,6 +238,8 @@ public class RuralCostProjectMessageController extends BaseController {
             }
         /*}*/
 
+        //添加当前文件服务器类型
+        projectcontentinfo.setUploadMode(uploadMode);
         //查询总审人员信息
         List<User> auditUserList = userService.getAuditUserList();
         records.setBzshbUserList(auditUserList);
@@ -473,8 +482,15 @@ public class RuralCostProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             /*if(0 == projectSort){*/
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -514,6 +530,8 @@ public class RuralCostProjectMessageController extends BaseController {
 
             }
         /*}*/
+        //添加当前文件服务器类型
+        projectcontent.setUploadMode(uploadMode);
         //查询总审人员信息
         List<User> auditUserList = userService.getAuditUserList();
         ruralProjectRecords.setBzshbUserList(auditUserList);
@@ -666,8 +684,15 @@ public class RuralCostProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             //if(0 == projectSort){
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=records.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -915,6 +940,7 @@ public class RuralCostProjectMessageController extends BaseController {
         projectRecords.setWorkContractInfo(projectContractInfo);
         reportData.setProject(projectRecords);
         projectReportRecord.setReport(reportData);
+        projectReportRecord.setUploadMode(uploadMode);
         model.addAttribute("projectReportRecord", projectReportRecord);
         model.addAttribute("project", projectReportRecord.getReport().getProject());
 
@@ -935,8 +961,15 @@ public class RuralCostProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             //if(0 == projectSort){
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(reportData.getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(reportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -1032,8 +1065,15 @@ public class RuralCostProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             //if(0 == projectSort){
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0

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

@@ -15,6 +15,8 @@ import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ActUtils;
+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;
@@ -87,6 +89,8 @@ public class RuralCostProjectRecordsController extends BaseController {
 	private RuralProjectMessageService ruralProjectMessageService;
 	@Autowired
 	private WorkProjectNotifyService workProjectNotifyService;
+	@Autowired
+	private ProjectEngineeringService engineeringService;
 
 	private static String template_path = Global.getProjectTemplatePath()+"咨询工作方案.xlsx";
 	private static String template_name = "咨询工作方案.xlsx";
@@ -170,6 +174,11 @@ public class RuralCostProjectRecordsController extends BaseController {
 				}
 			}
 		}
+		//查询工程类型
+		if (projectRecords.getEngineeringType()!=null){
+			ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+			model.addAttribute("engineeringInfo", engineeringInfo);
+		}
 		model.addAttribute("page", page);
 		return "modules/ruralprojectrecords/cost/ruralCostProjectRecordsList";
 	}
@@ -183,6 +192,9 @@ public class RuralCostProjectRecordsController extends BaseController {
 		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
 			projectRecords = projectRecordsService.get(projectRecords.getId());
             projectRecordsService.queryProjectDetail(projectRecords);
+			//获取工程类型
+			ProjectEngineeringInfo engineeringInfos=engineeringService.get(projectRecords.getEngineeringType());
+			model.addAttribute("engineeringInfo", engineeringInfos);
             /*//处理所在地信息
             StringBuffer areaName = new StringBuffer();
 			if(StringUtils.isNotBlank(projectRecords.getProvince())){
@@ -201,6 +213,7 @@ public class RuralCostProjectRecordsController extends BaseController {
 			projectRecords.setLeaderIds(UserUtils.getUser().getId());
 			projectRecords.setLeaderNameStr(UserUtils.getUser().getName());
         }
+
 		model.addAttribute("ruralProjectRecords", projectRecords);
 		return "modules/ruralprojectrecords/cost/ruralCostProjectRecordsForm";
 	}
@@ -397,7 +410,9 @@ public class RuralCostProjectRecordsController extends BaseController {
             act.setTask(taskInfok);
             projectRecords.setAct(act);
         }
-
+		//获取所有工程类型
+		ProjectEngineeringInfo engineeringInfos=engineeringService.get(projectRecords.getEngineeringType());
+		model.addAttribute("engInfo", engineeringInfos);
         projectRecordsService.queryProjectDetail(projectRecords);
         model.addAttribute("projectRecords", projectRecords);
         return "modules/ruralprojectrecords/cost/ruralCostProjectRecordsModify";

+ 9 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralCostProjectReportController.java

@@ -22,6 +22,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -45,14 +46,17 @@ public class RuralCostProjectReportController extends BaseController {
         ruralProjectReportInfo.setProjectType("2");
         Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response), ruralProjectReportInfo);
         //获取合同年份信息
-        List<String> yearList = ruralProjectReportService.getYear(ruralProjectReportInfo);
+        List<Integer> yearList = ruralProjectReportService.getYear(ruralProjectReportInfo);
+        Collections.sort(yearList,Collections.reverseOrder());
         //获取合同月份信息
-        List<String> monthList = ruralProjectReportService.getMonth(ruralProjectReportInfo);
+        List<Integer> monthList = ruralProjectReportService.getMonth(ruralProjectReportInfo);
+        Collections.sort(monthList);
         model.addAttribute("yearList", yearList);
         model.addAttribute("monthList", monthList);
         model.addAttribute("page", page);
         model.addAttribute("yearValue", ruralProjectReportInfo.getYear());
         model.addAttribute("monthValue", ruralProjectReportInfo.getMonth());
+        model.addAttribute("ruralProject", ruralProjectReportInfo);
         return "modules/ruralprojectrecords/ruralProjectReport/cost/ruralCostProjectReportList";
     }
 
@@ -64,14 +68,14 @@ public class RuralCostProjectReportController extends BaseController {
         try {
             //添加查询类型(造价工程)
             ruralProjectReportInfo.setProjectType("2");
-            String fileName = "年度工程造价项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            String fileName = "工程造价项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
             User user = UserUtils.getUser();
             ruralProjectReportInfo.setCurrentUser(user);
             Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response, -1), ruralProjectReportInfo);
-            new ExportExcel("年度工程造价项目一览表", RuralProjectReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
+            new ExportExcel("工程造价项目一览表", RuralProjectReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
-            addMessage(redirectAttributes, "导出年度工程造价项目一览表记录失败!失败信息:" + e.getMessage());
+            addMessage(redirectAttributes, "导出工程造价项目一览表记录失败!失败信息:" + e.getMessage());
         }
         return "redirect:" + Global.getAdminPath() + "/ruralCostProjectReport/ruralCostProjectReport/?repage";
     }

+ 8 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectCostRecordReportController.java

@@ -20,6 +20,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -43,9 +44,11 @@ public class RuralProjectCostRecordReportController extends BaseController {
         ruralProjectRecordReportInfo.setProjectType("2");
         Page<RuralProjectRecordReportInfo> page = ruralProjectRecordReportService.findPage(new Page<RuralProjectRecordReportInfo>(request, response), ruralProjectRecordReportInfo);
         //获取合同年份信息
-        List<String> yearList = ruralProjectRecordReportService.getYear(ruralProjectRecordReportInfo);
+        List<Integer> yearList = ruralProjectRecordReportService.getYear(ruralProjectRecordReportInfo);
+        Collections.sort(yearList,Collections.reverseOrder());
         //获取合同月份信息
-        List<String> monthList = ruralProjectRecordReportService.getMonth(ruralProjectRecordReportInfo);
+        List<Integer> monthList = ruralProjectRecordReportService.getMonth(ruralProjectRecordReportInfo);
+        Collections.sort(monthList);
         model.addAttribute("yearList", yearList);
         model.addAttribute("monthList", monthList);
         model.addAttribute("page", page);
@@ -62,14 +65,14 @@ public class RuralProjectCostRecordReportController extends BaseController {
         try {
             //添加查询类型(工程咨询)
             ruralProjectRecordReportInfo.setProjectType("2");
-            String fileName = "年度造价审核绩效一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            String fileName = "造价审核项目考核一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
             User user = UserUtils.getUser();
             ruralProjectRecordReportInfo.setCurrentUser(user);
             Page<RuralProjectRecordReportInfo> page = ruralProjectRecordReportService.findPage(new Page<RuralProjectRecordReportInfo>(request, response, -1), ruralProjectRecordReportInfo);
-            new ExportExcel("年度造价审核绩效一览表", RuralProjectRecordReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
+            new ExportExcel("造价审核项目考核一览表", RuralProjectRecordReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
-            addMessage(redirectAttributes, "导出年度造价审核项目一览表记录失败!失败信息:" + e.getMessage());
+            addMessage(redirectAttributes, "导出造价审核项目考核一览表记录失败!失败信息:" + e.getMessage());
         }
         return "redirect:" + Global.getAdminPath() + "/projectCostRecordReport/projectCostRecordReport/?repage";
     }

+ 50 - 10
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectMessageController.java

@@ -212,8 +212,15 @@ public class RuralProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             /*if(0 == projectSort){*/
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectcontentinfo.getProjectReportData().getReviewFee());
-        approvalMoney = 2;
+//                Integer appsrovalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectcontentinfo.getProjectReportData().getReviewFee());
+//        approvalMoney = 2;
+        String money=projectcontentinfo.getProject().getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -264,6 +271,8 @@ public class RuralProjectMessageController extends BaseController {
         if(null == projectcontentinfo.getProjectReportData().getPrincipal()){
             projectcontentinfo.getProjectReportData().setPrincipal(UserUtils.getUser());
         }
+        //添加当前文件服务器类型
+        projectcontentinfo.setUploadMode(uploadMode);
         model.addAttribute("projectRecords", records);
         model.addAttribute("projectcontentinfo", projectcontentinfo);
         model.addAttribute("projectReportData", projectcontentinfo.getProjectReportData());
@@ -492,8 +501,15 @@ public class RuralProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             /*if(0 == projectSort){*/
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -534,6 +550,8 @@ public class RuralProjectMessageController extends BaseController {
             }
         /*}*/
 
+        //添加当前文件服务器类型
+        projectcontent.setUploadMode(uploadMode);
         //查询总审人员信息
         List<User> auditUserList = userService.getAuditUserList();
         ruralProjectRecords.setBzshbUserList(auditUserList);
@@ -688,8 +706,15 @@ public class RuralProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             //if(0 == projectSort){
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=records.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -938,6 +963,7 @@ public class RuralProjectMessageController extends BaseController {
         projectRecords.setWorkContractInfo(projectContractInfo);
         reportData.setProject(projectRecords);
         projectReportRecord.setReport(reportData);
+        projectReportRecord.setUploadMode(uploadMode);
         model.addAttribute("projectReportRecord", projectReportRecord);
         model.addAttribute("project", projectReportRecord.getReport().getProject());
         if(null != projectContractInfo){
@@ -963,8 +989,15 @@ public class RuralProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             //if(0 == projectSort){
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(reportData.getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(reportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -1059,8 +1092,15 @@ public class RuralProjectMessageController extends BaseController {
             //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
             //if(0 == projectSort){
                 //查看送审金额是否为500w以上金额
-                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
-        approvalMoney = 2;
+//                Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0

+ 9 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordReportController.java

@@ -5,6 +5,7 @@ import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.DateUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordReportService;
 import com.jeeplus.modules.sys.entity.Office;
@@ -20,6 +21,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -43,9 +45,11 @@ public class RuralProjectRecordReportController extends BaseController {
         ruralProjectRecordReportInfo.setProjectType("1");
         Page<RuralProjectRecordReportInfo> page = ruralProjectRecordReportService.findPage(new Page<RuralProjectRecordReportInfo>(request, response), ruralProjectRecordReportInfo);
         //获取合同年份信息
-        List<String> yearList = ruralProjectRecordReportService.getYear(ruralProjectRecordReportInfo);
+        List<Integer> yearList = ruralProjectRecordReportService.getYear(ruralProjectRecordReportInfo);
+        Collections.sort(yearList,Collections.reverseOrder());
         //获取合同月份信息
-        List<String> monthList = ruralProjectRecordReportService.getMonth(ruralProjectRecordReportInfo);
+        List<Integer> monthList = ruralProjectRecordReportService.getMonth(ruralProjectRecordReportInfo);
+        Collections.sort(monthList);
         model.addAttribute("yearList", yearList);
         model.addAttribute("monthList", monthList);
         model.addAttribute("page", page);
@@ -62,14 +66,14 @@ public class RuralProjectRecordReportController extends BaseController {
         try {
             //添加查询类型(工程咨询)
             ruralProjectRecordReportInfo.setProjectType("1");
-            String fileName = "年度工程咨询项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            String fileName = "工程咨询项目考核一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
             User user = UserUtils.getUser();
             ruralProjectRecordReportInfo.setCurrentUser(user);
             Page<RuralProjectRecordReportInfo> page = ruralProjectRecordReportService.findPage(new Page<RuralProjectRecordReportInfo>(request, response, -1), ruralProjectRecordReportInfo);
-            new ExportExcel("年度工程咨询项目一览表", RuralProjectRecordReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
+            new ExportExcel("工程咨询项目考核一览表", RuralProjectRecordReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
-            addMessage(redirectAttributes, "导出年度工程咨询项目一览表记录失败!失败信息:" + e.getMessage());
+            addMessage(redirectAttributes, "导出工程咨询项目考核一览表记录失败!失败信息:" + e.getMessage());
         }
         return "redirect:" + Global.getAdminPath() + "/projectRecordReport/projectRecordReport/?repage";
     }

+ 60 - 4
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectRecordsController.java

@@ -3,8 +3,6 @@
  */
 package com.jeeplus.modules.ruralprojectrecords.web;
 
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.oss.OSSClientUtil;
@@ -18,6 +16,9 @@ import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ActUtils;
 import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectEngineering.entity.EngineeringTree;
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
@@ -49,6 +50,8 @@ import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
 import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.checkerframework.checker.units.qual.A;
+import org.json.JSONArray;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -77,7 +80,8 @@ public class RuralProjectRecordsController extends BaseController {
 
 	@Autowired
 	private RuralProjectRecordsService projectRecordsService;
-
+	@Autowired
+	private ProjectEngineeringService engineeringService;
 	@Autowired
 	private WorkContractInfoService contractInfoService;
 	@Autowired
@@ -176,7 +180,11 @@ public class RuralProjectRecordsController extends BaseController {
 				}
 			}
 		}
-
+		//查询工程类型
+		if (projectRecords.getEngineeringType()!=null){
+			ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+			model.addAttribute("engineeringInfo", engineeringInfo);
+		}
 		model.addAttribute("page", page);
 		return "modules/ruralprojectrecords/ruralProjectRecordsList";
 	}
@@ -190,12 +198,16 @@ public class RuralProjectRecordsController extends BaseController {
 		if (projectRecords!=null&&StringUtils.isNotBlank(projectRecords.getId())) {
 			projectRecords = projectRecordsService.get(projectRecords.getId());
             projectRecordsService.queryProjectDetail(projectRecords);
+			//查询工程分类
+			ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+			model.addAttribute("engineeringInfo", engineeringInfo);
 		}else {
 		    projectRecords.setCreateBy(UserUtils.getUser());
 		    projectRecords.setCreateDate(new Date());
 			projectRecords.setLeaderIds(UserUtils.getUser().getId());
 			projectRecords.setLeaderNameStr(UserUtils.getUser().getName());
         }
+
 		model.addAttribute("ruralProjectRecords", projectRecords);
 		return "modules/ruralprojectrecords/ruralProjectRecordsForm";
 	}
@@ -360,6 +372,9 @@ public class RuralProjectRecordsController extends BaseController {
             act.setTask(taskInfok);
             projectRecords.setAct(act);
         }
+		//查询工程分类
+		ProjectEngineeringInfo engineeringInfo=engineeringService.get(projectRecords.getEngineeringType());
+		model.addAttribute("engInfo", engineeringInfo);
         projectRecordsService.queryProjectDetail(projectRecords);
         model.addAttribute("projectRecords", projectRecords);
         return "modules/ruralprojectrecords/ruralProjectRecordsModify";
@@ -1055,4 +1070,45 @@ public class RuralProjectRecordsController extends BaseController {
 		}
 		return map;
 	}
+
+	/**
+	 * 查询其他文件树形信息
+	 */
+	@RequestMapping(value = "engineeringTreeMenu")
+	@ResponseBody
+	public String engineeringTreeMenu(){
+		LinkedHashSet<EngineeringTree> trees=new LinkedHashSet<>();
+		//查询所有工程分类
+		List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+		childs(engineeringInfos,trees,"0");
+		JSONArray jsonArray=new JSONArray(trees);
+		return jsonArray.toString();
+	}
+
+	public static void childs(List<ProjectEngineeringInfo> sourcelist,LinkedHashSet<EngineeringTree> list,String parentId){
+		for (int i=0; i<sourcelist.size(); i++){
+			ProjectEngineeringInfo e = sourcelist.get(i);
+			if (e.getParent()!=null && StringUtils.isNotBlank(e.getParent().getId()) && e.getParent().getId().equals(parentId)){
+				EngineeringTree tree=new EngineeringTree();
+				tree.setTitle(e.getEngineeringName());
+				tree.setId(e.getId());
+				// 判断是否还有子节点, 有则继续获取子节点
+				for (int j=0; j<sourcelist.size(); j++){
+					ProjectEngineeringInfo child = sourcelist.get(j);
+					if (child.getParent()!=null && StringUtils.isNotBlank(child.getParent().getId()) && child.getParent().getId().equals(e.getId())){
+						tree.setType("group");
+						LinkedHashSet<EngineeringTree> childs=new LinkedHashSet<>();
+						childs(sourcelist,childs, e.getId());
+						List<EngineeringTree> childss=new ArrayList<>(childs);
+						tree.setChild(childss);
+						list.add(tree);
+						break;
+					}else{
+						list.add(tree);
+					}
+				}
+			}
+		}
+	}
+
 }

+ 9 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectReportController.java

@@ -20,6 +20,7 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -43,14 +44,17 @@ public class RuralProjectReportController extends BaseController {
         ruralProjectReportInfo.setProjectType("1");
         Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response), ruralProjectReportInfo);
         //获取合同年份信息
-        List<String> yearList = ruralProjectReportService.getYear(ruralProjectReportInfo);
+        List<Integer> yearList = ruralProjectReportService.getYear(ruralProjectReportInfo);
+        Collections.sort(yearList,Collections.reverseOrder());
         //获取合同月份信息
-        List<String> monthList = ruralProjectReportService.getMonth(ruralProjectReportInfo);
+        List<Integer> monthList = ruralProjectReportService.getMonth(ruralProjectReportInfo);
+        Collections.sort(monthList);
         model.addAttribute("yearList", yearList);
         model.addAttribute("monthList", monthList);
         model.addAttribute("page", page);
         model.addAttribute("yearValue", ruralProjectReportInfo.getYear());
         model.addAttribute("monthValue", ruralProjectReportInfo.getMonth());
+        model.addAttribute("ruralProject", ruralProjectReportInfo);
         return "modules/ruralprojectrecords/ruralProjectReport/ruralProjectReportList";
     }
 
@@ -62,14 +66,14 @@ public class RuralProjectReportController extends BaseController {
         try {
             //添加查询类型(工程咨询)
             ruralProjectReportInfo.setProjectType("1");
-            String fileName = "年度工程咨询项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+            String fileName = "工程咨询项目一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
             User user = UserUtils.getUser();
             ruralProjectReportInfo.setCurrentUser(user);
             Page<RuralProjectReportInfo> page = ruralProjectReportService.findPage(new Page<RuralProjectReportInfo>(request, response, -1), ruralProjectReportInfo);
-            new ExportExcel("年度工程咨询项目一览表", RuralProjectReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
+            new ExportExcel("工程咨询项目一览表", RuralProjectReportInfo.class).setDataList(page.getList()).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
-            addMessage(redirectAttributes, "导出年度工程咨询项目一览表记录失败!失败信息:" + e.getMessage());
+            addMessage(redirectAttributes, "导出工程咨询项目一览表记录失败!失败信息:" + e.getMessage());
         }
         return "redirect:" + Global.getAdminPath() + "/ruralProjectReport/ruralProjectReport/?repage";
     }

+ 25 - 4
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectViewController.java

@@ -12,6 +12,8 @@ import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
 import com.jeeplus.modules.projectAccessory.service.ProjectAccessoryRelationService;
 import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
+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.entity.Projectcontentinfo;
@@ -97,6 +99,8 @@ public class RuralProjectViewController extends BaseController {
     private ProjectTemplateService projectTemplateService;
     @Autowired
     private ActTaskService actTaskService;
+    @Autowired
+    private ProjectEngineeringService engineeringService;
 
     /**
      * 项目查看
@@ -159,6 +163,9 @@ public class RuralProjectViewController extends BaseController {
         if (null!=reported){
             model.addAttribute("reportedId",reported.getId());
         }
+        //查询所有的工程类型
+        List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+        model.addAttribute("engineeringInfo",engineeringInfos);
         return "modules/ruralprojectrecords/view/ruralProjectRecordsView";
     }
 
@@ -251,8 +258,15 @@ public class RuralProjectViewController extends BaseController {
         //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
         /*if(0 == projectSort){*/
         //查看送审金额是否为500w以上金额
-        Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
-        approvalMoney = 2;
+//        Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0
@@ -534,8 +548,15 @@ public class RuralProjectViewController extends BaseController {
         //判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
         //if(0 == projectSort){
         //查看送审金额是否为500w以上金额
-        Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
-        approvalMoney = 2;
+//        Integer appsrovalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
+//        approvalMoney = 2;
+        String money=ruralProjectRecords.getSubmitMoney();
+        Integer approvalMoney=null;
+        if(null==money){
+            approvalMoney=1;
+        }else{
+            approvalMoney=Integer.parseInt(money);
+        }
         switch (approvalMoney){
             case 0:
                 //金额为0

+ 9 - 0
src/main/java/com/jeeplus/modules/sys/entity/Workattachment.java

@@ -23,6 +23,7 @@ public class Workattachment extends DataEntity<Workattachment> {
 	private String companyId;           //企业id
 	private String attachmentFlag;     //附件类别(0:评价汇总表、1:标书方案编制表)
 	private String divIdType;//判定条件
+	private String temporaryUrl;		// 附件地址(临时地址)
 
 	private String reportDataName;//成果文件名称
 	private Integer quoteResult;//是否为引用文件判定
@@ -128,4 +129,12 @@ public class Workattachment extends DataEntity<Workattachment> {
 	public void setQuoteId(String quoteId) {
 		this.quoteId = quoteId;
 	}
+
+	public String getTemporaryUrl() {
+		return temporaryUrl;
+	}
+
+	public void setTemporaryUrl(String temporaryUrl) {
+		this.temporaryUrl = temporaryUrl;
+	}
 }

+ 158 - 19
src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java

@@ -37,6 +37,15 @@ import java.util.*;
 @Transactional(readOnly = true)
 public class WorkattachmentService extends CrudService<WorkattachmentDao, Workattachment> {
 
+	/**
+	 * 阿里云文件服务器前缀
+	 */
+	private final static String aliyunUrl = Global.getConfig("aliyunUrl");
+	/**
+	 * 百度云文件服务器前缀
+	 */
+	private final static String bosUrl = Global.getConfig("bosUrl");
+
 	@Autowired
 	private WorkattachmentDao workattachmentDao;
 	@Autowired
@@ -264,9 +273,84 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 		return list;
 	}
 
+	/**
+	 * 新增附件
+	 * @param workattachment
+	 */
+	@Transactional(readOnly = false)
+	public void insertOnWorkAttachment(Workattachment workattachment) {
+		//
+		switch (uploadMode){
+			case "1":
+				workattachment.setUrl(workattachment.getUrl().replace(bosUrl,""));
+				break;
+			case "2":
+				workattachment.setUrl(workattachment.getUrl().replace(aliyunUrl,""));
+				break;
+		}
+		workattachment.preInsert();
+		this.insert(workattachment);
+	}
 
 
 	/**
+	 * 新增附件
+	 * @param workattachment
+	 */
+	@Transactional(readOnly = false)
+	public void insertOnWorkClientAttachment(WorkClientAttachment workattachment) {
+		//
+		switch (uploadMode){
+			case "1":
+				workattachment.setUrl(workattachment.getUrl().replace(bosUrl,""));
+				break;
+			case "2":
+				workattachment.setUrl(workattachment.getUrl().replace(aliyunUrl,""));
+				break;
+		}
+		workattachment.preInsert();
+		workClientAttachmentDao.insert(workattachment);
+	}
+
+	/**
+	 * 修改附件
+	 * @param workattachment
+	 */
+	@Transactional(readOnly = false)
+	public void updateOnWorkAttachment(Workattachment workattachment) {
+		//
+		switch (uploadMode){
+			case "1":
+				workattachment.setUrl(workattachment.getUrl().replace(bosUrl,""));
+				break;
+			case "2":
+				workattachment.setUrl(workattachment.getUrl().replace(aliyunUrl,""));
+				break;
+		}
+		workattachment.preUpdate();
+		this.update(workattachment);
+	}
+
+	/**
+	 * 修改附件
+	 * @param workattachment
+	 */
+	@Transactional(readOnly = false)
+	public void updateOnWorkClientAttachment(WorkClientAttachment workattachment) {
+		//
+		switch (uploadMode){
+			case "1":
+				workattachment.setUrl(workattachment.getUrl().replace(bosUrl,""));
+				break;
+			case "2":
+				workattachment.setUrl(workattachment.getUrl().replace(aliyunUrl,""));
+				break;
+		}
+		workattachment.preUpdate();
+		workClientAttachmentDao.update(workattachment);
+	}
+
+	/**
 	 * 获取附件信息
 	 * @param workClientAttachment
 	 * @return
@@ -309,16 +393,24 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 	public static void workClientAttachmentManage(List<WorkClientAttachment> list){
 		ViewFileUtil viewFileUtil = new ViewFileUtil();
 		// 判断文件存储方式(0:本地服务器存储。1:云端存储)
-		if("0".equals(viewFileUtil.getUploadMode())){
-			//获取本地服务器ip和端口号
-			String serverIPAndPort = viewFileUtil.getServerIPAndPort();
-			//创建展示附件访问方法路径
-			//String methodAccessPath = "/a/viewFile/viewFile/getUploadFile?uploadFilePath=";
-			String methodAccessPath = "";
-			for (WorkClientAttachment info: list) {
-				String newUrl = serverIPAndPort + methodAccessPath + info.getUrl();
-				//变更新的文件查看地址
-				info.setUrl(newUrl);
+		for (WorkClientAttachment info : list) {
+			switch (uploadMode){
+				case "1":
+					info.setUrl(bosUrl + info.getUrl());
+					break;
+				case "2":
+					info.setUrl(aliyunUrl + info.getUrl());
+					break;
+				default:
+					//获取本地服务器ip和端口号
+					String serverIPAndPort = viewFileUtil.getServerIPAndPort();
+					//创建展示附件访问方法路径
+					//String methodAccessPath = "/a/viewFile/viewFile/getUploadFile?uploadFilePath=";
+					String methodAccessPath = "";
+					String newUrl = serverIPAndPort + methodAccessPath + info.getUrl();
+					//变更新的文件查看地址
+					info.setUrl(newUrl);
+					break;
 			}
 		}
 	}
@@ -331,15 +423,62 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 	public static void attachmentManage(List<Workattachment> list){
 		ViewFileUtil viewFileUtil = new ViewFileUtil();
 		// 判断文件存储方式(0:本地服务器存储。1:云端存储)
-		if("0".equals(viewFileUtil.getUploadMode())){
-			//获取本地服务器ip和端口号
-			String serverIPAndPort = viewFileUtil.getServerIPAndPort();
-			//创建展示附件访问方法路径
-			String methodAccessPath = "/a/viewFile/viewFile/getUploadFile?uploadFilePath=";
-			for (Workattachment info: list) {
-				String newUrl = serverIPAndPort + methodAccessPath + info.getUrl();
-				//变更新的文件查看地址
-				info.setUrl(newUrl);
+		for (Workattachment info : list) {
+			switch (uploadMode){
+				case "1":
+					info.setUrl(bosUrl + info.getUrl());
+					break;
+				case "2":
+					info.setUrl(aliyunUrl + info.getUrl());
+					break;
+				default:
+					//获取本地服务器ip和端口号
+					String serverIPAndPort = viewFileUtil.getServerIPAndPort();
+					//创建展示附件访问方法路径
+					String methodAccessPath = "/a/viewFile/viewFile/getUploadFile?uploadFilePath=";
+					String newUrl = serverIPAndPort + methodAccessPath + info.getUrl();
+					//变更新的文件查看地址
+					info.setUrl(newUrl);
+					break;
+			}
+		}
+	}
+
+
+	/**
+	 * 数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+	 * @param list
+	 */
+	public static void clientAttachmentManageOnUrl(List<WorkClientAttachment> list){
+		// 判断文件存储方式(0:本地服务器存储。1:云端存储)
+		for (WorkClientAttachment info : list) {
+			switch (uploadMode){
+				case "1":
+
+					break;
+				case "2":
+					info.setTemporaryUrl(new OSSClientUtil().getFileTemporaryLookUrl(info.getUrl()));
+					break;
+
+			}
+		}
+	}
+
+	/**
+	 * 数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+	 * @param list
+	 */
+	public static void attachmentManageOnUrl(List<Workattachment> list){
+		// 判断文件存储方式(0:本地服务器存储。1:云端存储)
+		for (Workattachment info : list) {
+			switch (uploadMode){
+				case "1":
+
+					break;
+				case "2":
+					info.setTemporaryUrl(new OSSClientUtil().getFileTemporaryLookUrl(info.getUrl()));
+					break;
+
 			}
 		}
 	}

+ 1 - 3
src/main/java/com/jeeplus/modules/sys/web/WorkattachmentController.java

@@ -44,8 +44,6 @@ import java.util.Map;
 @Controller
 @RequestMapping(value = "${adminPath}/sys/workattachment")
 public class WorkattachmentController extends BaseController {
-	/** 文件存储方式(0:本地服务器存储。1:云端存储) */
-	private final static String uploadMode = Global.getConfig("remoteServer.uploadMode");
 
 	@Autowired
 	private WorkattachmentService workattachmentService;
@@ -214,7 +212,7 @@ public class WorkattachmentController extends BaseController {
 	public HashMap<Object, Object> deleteFileFromAliyun(String id,String type,String url,Model model){
 		if(StringUtils.isNotBlank(id)) {
 			Workattachment workattachment = workattachmentService.get(id);
-			if("1".equals(uploadMode)) {
+			if("1".equals(uploadMode) || "2".equals(uploadMode)) {
 				workattachmentService.deleteFileFromAliyun(workattachment, workattachment == null ? url : workattachment.getUrl());
 			}else{
 				SftpClientUtil sftpClientUtil=new SftpClientUtil();

+ 9 - 0
src/main/java/com/jeeplus/modules/workclientinfo/entity/WorkClientAttachment.java

@@ -23,6 +23,7 @@ public class WorkClientAttachment extends DataEntity<WorkClientAttachment> {
 	private String attachmentFlag; //附件类别
 	private String companyId; //附件类别
 	private String projectId; //项目id
+	private String temporaryUrl;		// 附件地址(临时地址)
 
 	public WorkClientAttachment() {
 		super();
@@ -100,4 +101,12 @@ public class WorkClientAttachment extends DataEntity<WorkClientAttachment> {
 	public void setProjectId(String projectId) {
 		this.projectId = projectId;
 	}
+
+	public String getTemporaryUrl() {
+		return temporaryUrl;
+	}
+
+	public void setTemporaryUrl(String temporaryUrl) {
+		this.temporaryUrl = temporaryUrl;
+	}
 }

+ 7 - 4
src/main/java/com/jeeplus/modules/workclientinfo/service/WorkClientInfoService.java

@@ -106,6 +106,11 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
             attchment.setAttachmentId(workClientInfo.getId());
             List<WorkClientAttachment> attachments = workattachmentService.getAttachmentList(attchment);
             workClientInfo.setWorkAttachments(attachments);
+
+            //添加当前文件服务器类型
+            workClientInfo.setUploadMode(uploadMode);
+            //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+            workattachmentService.clientAttachmentManageOnUrl(workClientInfo.getWorkAttachments());
         }
 		return workClientInfo;
 	}
@@ -410,11 +415,9 @@ public class WorkClientInfoService extends CrudService<WorkClientInfoDao, WorkCl
                 workClientAttachment.setAttachmentFlag("44");
                 workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
                 if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())){
-                    workClientAttachment.preInsert();
-                    workClientAttachmentDao.insert(workClientAttachment);
+                    workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
                 }else{
-                    workClientAttachment.preUpdate();
-                    workClientAttachmentDao.update(workClientAttachment);
+                    workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
                 }
             }else{
                 workClientAttachmentDao.delete(workClientAttachment);

+ 6 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/dao/WorkContractBorrowDao.java

@@ -58,4 +58,10 @@ public interface WorkContractBorrowDao extends CrudDao<WorkCntractBorrow> {
 	 * @return
 	 */
 	List<WorkCntractBorrow> getWorkCntractBorrowList(String contractId);
+
+	/**
+	 * 保存借用信息之后修改合同中信息
+	 * @param workCntractBorrow
+	 */
+	void updateContractInfo(WorkCntractBorrow workCntractBorrow);
 }

+ 8 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/dao/WorkContractInfoDao.java

@@ -8,6 +8,7 @@ import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractAnnex;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractListInfo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -75,4 +76,11 @@ public interface WorkContractInfoDao extends CrudDao<WorkContractInfo> {
      * @param workContractInfo
      */
     void updateWorkContractRecord(WorkContractInfo workContractInfo);
+
+    /**
+     * 获取合同年份信息
+     * @param workContractListInfo
+     * @return
+     */
+    List<Integer> getYear(WorkContractListInfo workContractListInfo);
 }

+ 191 - 79
src/main/java/com/jeeplus/modules/workcontractinfo/entity/WorkContractListInfo.java

@@ -40,6 +40,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	private String projectNum;//投标标号
 	private String totalContractName;//总合同名称
 	private String officeName;
+	private String officeId;
 	private BigDecimal contractPrice;		// 合同金额(元)
     private String money1;
 	private String contractState;		// 合同状态
@@ -63,6 +64,14 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	private String recordNum;   //归档编号
 	private String contrractRecordId;   //归档合同id
 	private String createName;   //登记人
+	private String createNameStr;   //登记人
+	private String createId;   //登记人Id
+	private String year;            //年份
+	private Date beginDate;		// 开始 登记日期
+	private Date endDate;		// 结束 登记日期
+	private String workContractBorrow;   //借阅情况
+	private String borrowStatus;   //合同借用状态
+	private String giveStatus;   //合同归还状态
 	@Override
 	public String getId() {
 		return id;
@@ -72,15 +81,26 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setId(String id) {
 		this.id = id;
 	}
-	@ExcelField(title="合同编号", align=2, sort=1)
-	public String getContractNum() {
-		return contractNum;
+
+	@ExcelField(title="年份", align=2, sort=1)
+	public String getYear() {
+		return year;
 	}
 
-	public void setContractNum(String contractNum) {
-		this.contractNum = contractNum;
+	public void setYear(String year) {
+		this.year = year;
+	}
+
+	@ExcelField(title="客户名称", align=2, sort=2)
+	public String getClientName() {
+		return clientName;
+	}
+
+	public void setClientName(String clientName) {
+		this.clientName = clientName;
 	}
-	@ExcelField(title="合同名称", align=2, sort=2)
+
+	@ExcelField(title="合同名称", align=2, sort=3)
 	public String getName() {
 		return name;
 	}
@@ -88,7 +108,104 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setName(String name) {
 		this.name = name;
 	}
-	@ExcelField(title="合同来源", align=2, sort=3)
+
+	@ExcelField(title="合同编号", align=2, sort=4)
+	public String getContractNum() {
+		return contractNum;
+	}
+
+	public void setContractNum(String contractNum) {
+		this.contractNum = contractNum;
+	}
+
+	@ExcelField(title="合同类型",mainDictType="contract_info_type", align=2, sort=5)
+	public String getContractTypeDoc() {
+		return contractTypeDoc;
+	}
+
+	public void setContractTypeDoc(String contractTypeDoc) {
+		this.contractTypeDoc = contractTypeDoc;
+	}
+
+	@ExcelField(title="合同规模", align=2, sort=6)
+	public BigDecimal getContractPrice() {
+		return contractPrice;
+	}
+	public void setContractPrice(BigDecimal contractPrice) {
+		this.contractPrice = contractPrice;
+	}
+
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelField(title="签订日期", align=2, sort=7)
+	public Date getContractDate() {
+		return contractDate;
+	}
+
+	public void setContractDate(Date contractDate) {
+		this.contractDate = contractDate;
+	}
+
+	@ExcelField(title="登记人", align=2, sort=8)
+	public String getCreateName() {
+		return createName;
+	}
+
+	public void setCreateName(String createName) {
+		this.createName = createName;
+	}
+
+	@Override
+	@ExcelField(title="登记日期", align=2, sort=9)
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	public Date getCreateDate() {
+		return super.getCreateDate();
+	}
+
+	@ExcelField(title="登记部门", align=2, sort=10)
+	public String getOfficeName() {
+		return officeName;
+	}
+
+	public void setOfficeName(String officeName) {
+		this.officeName = officeName;
+	}
+
+	@ExcelField(title="归档编号", align=2, sort=11)
+	public String getRecordNum() {
+		return recordNum;
+	}
+
+	public void setRecordNum(String recordNum) {
+		this.recordNum = recordNum;
+	}
+
+	@ExcelField(title="签订状态",/*dictType="audit_contract_state",*/ align=2, sort=12)
+	public String getContractState() {
+		return contractState;
+	}
+
+	public void setContractState(String contractState) {
+		this.contractState = contractState;
+	}
+
+	@ExcelField(title="归档状态",/*dictType="archive_state",*/ align=2, sort=13)
+	public String getContrractRecordStatus() {
+		return contrractRecordStatus;
+	}
+
+	public void setContrractRecordStatus(String contrractRecordStatus) {
+		this.contrractRecordStatus = contrractRecordStatus;
+	}
+
+	@ExcelField(title="借阅状态",/*dictType="archive_state",*/ align=2, sort=14)
+	public String getBorrowStatus() {
+		return borrowStatus;
+	}
+
+	public void setBorrowStatus(String borrowStatus) {
+		this.borrowStatus = borrowStatus;
+	}
+
 	public String getExt() {
 		if("0".equals(ext)){
 			return "投标项目";
@@ -101,7 +218,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setExt(String ext) {
 		this.ext = ext;
 	}
-	@ExcelField(title="投标名称", align=2, sort=4)
+	//@ExcelField(title="投标名称", align=2, sort=4)
 	public String getProjectName() {
 		return projectName;
 	}
@@ -109,7 +226,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setProjectName(String projectName) {
 		this.projectName = projectName;
 	}
-	@ExcelField(title="投标编号", align=2, sort=5)
+	//@ExcelField(title="投标编号", align=2, sort=5)
 	public String getProjectNum() {
 		return projectNum;
 	}
@@ -117,7 +234,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setProjectNum(String projectNum) {
 		this.projectNum = projectNum;
 	}
-	@ExcelField(title="总合同名称", align=2, sort=6)
+	//@ExcelField(title="总合同名称", align=2, sort=6)
 	public String getTotalContractName() {
 		return totalContractName;
 	}
@@ -125,33 +242,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setTotalContractName(String totalContractName) {
 		this.totalContractName = totalContractName;
 	}
-	@ExcelField(title="所属部门", align=2, sort=7)
-	public String getOfficeName() {
-		return officeName;
-	}
-	public void setOfficeName(String officeName) {
-		this.officeName = officeName;
-	}
-	public BigDecimal getContractPrice() {
-		return contractPrice;
-	}
-	public void setContractPrice(BigDecimal contractPrice) {
-		this.contractPrice = contractPrice;
-	}
-	@ExcelField(title="合同状态",dictType="audit_completion_state", align=2, sort=9)
-	public String getContractState() {
-		return contractState;
-	}
-	public void setContractState(String contractState) {
-		this.contractState = contractState;
-	}
-	@ExcelField(title="委托方", align=2, sort=10)
-	public String getClientName() {
-		return clientName;
-	}
-	public void setClientName(String clientName) {
-		this.clientName = clientName;
-	}
+
 	public Date getBeginContractDate() {
 		return beginContractDate;
 	}
@@ -165,15 +256,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 		this.endContractDate = endContractDate;
 	}
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@ExcelField(title="签订日期", align=2, sort=11)
-	public Date getContractDate() {
-		return contractDate;
-	}
-	public void setContractDate(Date contractDate) {
-		this.contractDate = contractDate;
-	}
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@ExcelField(title="合同生效日期", align=2, sort=12)
+	//@ExcelField(title="合同生效日期", align=2, sort=12)
 	public Date getEffectiveDate() {
 		return effectiveDate;
 	}
@@ -181,14 +264,14 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 		this.effectiveDate = effectiveDate;
 	}
 	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@ExcelField(title="合同终止日期", align=2, sort=13)
+	//@ExcelField(title="合同终止日期", align=2, sort=13)
 	public Date getClosingDate() {
 		return closingDate;
 	}
 	public void setClosingDate(Date closingDate) {
 		this.closingDate = closingDate;
 	}
-	@ExcelField(title="对方合同编号", align=2, sort=14)
+	//@ExcelField(title="对方合同编号", align=2, sort=14)
 	public String getAnotherContractNum() {
 		return anotherContractNum;
 	}
@@ -198,18 +281,18 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public BigDecimal getInvestmentAmount() {
 		return investmentAmount;
 	}
-    @ExcelField(title="合同金额(元)", align=2, sort=8)
+    //@ExcelField(title="合同金额(元)", align=2, sort=8)
     public String getMoney1() {
         return UserUtils.getDecimalFormat(contractPrice);
     }
-    @ExcelField(title="投资额(万元)", align=2, sort=15)
+   //@ExcelField(title="投资额(万元)", align=2, sort=15)
     public String getMoney2() {
         return UserUtils.getDecimalFormat(investmentAmount);
     }
 	public void setInvestmentAmount(BigDecimal investmentAmount) {
 		this.investmentAmount = investmentAmount;
 	}
-	@ExcelField(title="工程分类",mainDictType="contract_type",  align=2, sort=16)
+	//@ExcelField(title="工程分类",mainDictType="contract_type",  align=2, sort=16)
 	public String getContractType() {
 		return contractType;
 	}
@@ -217,7 +300,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setContractType(String contractType) {
 		this.contractType = contractType;
 	}
-	@ExcelField(title="归档状态",dictType="record_state",  align=2, sort=17)
+	//@ExcelField(title="归档状态",dictType="record_state",  align=2, sort=17)
 	public String getRecordState() {
 		return recordState;
 	}
@@ -225,7 +308,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setRecordState(String recordState) {
 		this.recordState = recordState;
 	}
-	@ExcelField(title="付款摘要", align=2, sort=18)
+	//@ExcelField(title="付款摘要", align=2, sort=18)
 	public String getSummaryPayment() {
 		return summaryPayment;
 	}
@@ -233,7 +316,7 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setSummaryPayment(String summaryPayment) {
 		this.summaryPayment = summaryPayment;
 	}
-	@ExcelField(title="合同特别条款", align=2, sort=19)
+	//@ExcelField(title="合同特别条款", align=2, sort=19)
 	public String getContractSpecial() {
 		return contractSpecial;
 	}
@@ -241,17 +324,9 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 	public void setContractSpecial(String contractSpecial) {
 		this.contractSpecial = contractSpecial;
 	}
-	@ExcelField(title="合同类型说明",mainDictType="contract_info_type", align=2, sort=20)
-	public String getContractTypeDoc() {
-		return contractTypeDoc;
-	}
-
-	public void setContractTypeDoc(String contractTypeDoc) {
-		this.contractTypeDoc = contractTypeDoc;
-	}
 
 	@Override
-	@ExcelField(title="备注信息", align=2, sort=21)
+	//@ExcelField(title="备注信息", align=2, sort=21)
 	public String getRemarks() {
 		return remarks;
 	}
@@ -269,35 +344,72 @@ public class WorkContractListInfo extends ActEntity<WorkContractListInfo> {
 		this.client = client;
 	}
 
-	public String getContrractRecordStatus() {
-		return contrractRecordStatus;
+
+
+	public String getContrractRecordId() {
+		return contrractRecordId;
 	}
 
-	public void setContrractRecordStatus(String contrractRecordStatus) {
-		this.contrractRecordStatus = contrractRecordStatus;
+	public void setContrractRecordId(String contrractRecordId) {
+		this.contrractRecordId = contrractRecordId;
 	}
 
-	public String getRecordNum() {
-		return recordNum;
+
+	public String getOfficeId() {
+		return officeId;
 	}
 
-	public void setRecordNum(String recordNum) {
-		this.recordNum = recordNum;
+	public void setOfficeId(String officeId) {
+		this.officeId = officeId;
 	}
 
-	public String getContrractRecordId() {
-		return contrractRecordId;
+	public Date getBeginDate() {
+		return beginDate;
 	}
 
-	public void setContrractRecordId(String contrractRecordId) {
-		this.contrractRecordId = contrractRecordId;
+	public void setBeginDate(Date beginDate) {
+		this.beginDate = beginDate;
 	}
 
-	public String getCreateName() {
-		return createName;
+	public Date getEndDate() {
+		return endDate;
 	}
 
-	public void setCreateName(String createName) {
-		this.createName = createName;
+	public void setEndDate(Date endDate) {
+		this.endDate = endDate;
+	}
+
+	public String getWorkContractBorrow() {
+		return workContractBorrow;
+	}
+
+	public void setWorkContractBorrow(String workContractBorrow) {
+		this.workContractBorrow = workContractBorrow;
+	}
+
+	public String getCreateId() {
+		return createId;
+	}
+
+	public void setCreateId(String createId) {
+		this.createId = createId;
+	}
+
+	public String getCreateNameStr() {
+		return createNameStr;
+	}
+
+	public void setCreateNameStr(String createNameStr) {
+		this.createNameStr = createNameStr;
+	}
+
+
+
+	public String getGiveStatus() {
+		return giveStatus;
+	}
+
+	public void setGiveStatus(String giveStatus) {
+		this.giveStatus = giveStatus;
 	}
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractBorrowService.java

@@ -113,6 +113,8 @@ public class WorkContractBorrowService extends CrudService<WorkContractBorrowDao
 		User user = UserUtils.getUser();
 
 		super.save(workCntractBorrow);
+		//修改合同中对应的借用id参数
+		dao.updateContractInfo(workCntractBorrow);
 		Office office = officeService.get(workCntractBorrow.getOfficeId());
 		SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
 		String aboutGiveDateStr = formatter.format(workCntractBorrow.getAboutGiveDate());

+ 18 - 7
src/main/java/com/jeeplus/modules/workcontractinfo/service/WorkContractInfoService.java

@@ -30,7 +30,6 @@ import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.RoleActivityEnname;
 import com.jeeplus.modules.sys.utils.UserUtils;
-import com.jeeplus.modules.utils.ViewFileUtil;
 import com.jeeplus.modules.workactivity.dao.WorkActivityProcessDao;
 import com.jeeplus.modules.workactivity.entity.Activity;
 import com.jeeplus.modules.workactivity.entity.WorkActivityProcess;
@@ -229,6 +228,11 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 				}
 			}
 			workContractInfo.setWorkClientInfoList(list2);
+
+			//添加当前文件服务器类型
+			workContractInfo.setUploadMode(uploadMode);
+			//数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+			workattachmentService.clientAttachmentManageOnUrl(workContractInfo.getWorkAttachments());
 		}
 		return workContractInfo;
 	}
@@ -537,12 +541,10 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 				workClientAttachment.setAttachmentFlag("44");
 				workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
 				if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())){
-					workClientAttachment.preInsert();
-					workClientAttachmentDao.insert(workClientAttachment);
+					workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
 					signatureDocumentService.createIsignature(workClientAttachment.getUrl(),workClientAttachment.getAttachmentName(),workClientAttachment.getId(),workContractInfo.getName());
 				}else{
-					workClientAttachment.preUpdate();
-					workClientAttachmentDao.update(workClientAttachment);
+					workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
 				}
 			}else{
 				workClientAttachmentDao.delete(workClientAttachment);
@@ -3160,7 +3162,7 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 	}
 
 	public Page<WorkContractListInfo> findListPage(Page<WorkContractListInfo> page, WorkContractListInfo workContractListInfo) {
-		if(workContractListInfo.getBeginContractDate()==null){
+		/*if(workContractListInfo.getBeginContractDate()==null){
 			SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
 			SimpleDateFormat format3 = new SimpleDateFormat("yyyy");
 			String time1 = format3.format(new Date());
@@ -3174,7 +3176,7 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 		}
 		if(workContractListInfo.getEndContractDate()==null){
 			workContractListInfo.setEndContractDate(new Date());
-		}
+		}*/
 		String companyId = UserUtils.getUser().getComId();
 		workContractListInfo.getSqlMap().put("dsf","and (a.company_id='"+companyId+"')");
 //		workContractListInfo.getSqlMap().put("dsf", dataScopeFilter(workContractListInfo.getCurrentUser(), "o", "u","s", MenuStatusEnum.WORK_CONTRACT_LIST_INFO.getValue()));
@@ -3222,4 +3224,13 @@ public class WorkContractInfoService extends CrudService<WorkContractInfoDao, Wo
 	public void updateWorkContractRecord(WorkContractInfo workContractInfo){
 		dao.updateWorkContractRecord(workContractInfo);
 	}
+
+	/**
+	 * 获取合同年份信息
+	 * @param workContractInfo
+	 * @return
+	 */
+	public List<Integer> getYear(WorkContractListInfo workContractListInfo){
+		return dao.getYear(workContractListInfo);
+	}
 }

+ 28 - 4
src/main/java/com/jeeplus/modules/workcontractinfo/web/WorkContractInfoController.java

@@ -29,6 +29,7 @@ import com.jeeplus.modules.alterinfo.service.AlterInfoService;
 import com.jeeplus.modules.contractclient.entity.WorkContractClient;
 import com.jeeplus.modules.contractclient.service.WorkContractClientService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.Role;
 import com.jeeplus.modules.sys.entity.User;
@@ -88,8 +89,6 @@ import java.util.*;
 @RequestMapping(value = "${adminPath}/workcontractinfo/workContractInfo")
 public class WorkContractInfoController extends BaseController {
 
-    /** 文件存储方式(0:本地服务器存储。1:云端存储) */
-    private final static String uploadMode = Global.getConfig("remoteServer.uploadMode");
 
 
     @Autowired
@@ -1982,8 +1981,13 @@ public class WorkContractInfoController extends BaseController {
 
     @RequestMapping(value = "workContractList")
     public String workContractList(WorkContractListInfo workContractListInfo, HttpServletRequest request, HttpServletResponse response, Model model) {
+        //获取合同年份信息
+        List<Integer> yearList = workContractInfoService.getYear(workContractListInfo);
+        Collections.sort(yearList,Collections.reverseOrder());
         Page<WorkContractListInfo> page = workContractInfoService.findListPage(new Page<WorkContractListInfo>(request, response), workContractListInfo);
+        model.addAttribute("yearList", yearList);
         model.addAttribute("page", page);
+        model.addAttribute("yearValue", workContractListInfo.getYear());
         return "modules/workcontractinfo/workContractListInfoList";
     }
 
@@ -1994,8 +1998,28 @@ public class WorkContractInfoController extends BaseController {
             String fileName = "合同一览表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
             User user = UserUtils.getUser();
             workContractListInfo.setCurrentUser(user);
-            List<WorkContractListInfo> list = workContractInfoService.findListList(workContractListInfo);
-            new ExportExcel(false,"合同一览表", WorkContractListInfo.class,1).setDataList(list).write(response, fileName,request.getHeader("USER-AGENT")).dispose();
+            Page<WorkContractListInfo> page = workContractInfoService.findListPage(new Page<WorkContractListInfo>(request, response,-1), workContractListInfo);
+            List<WorkContractListInfo> list = page.getList();
+            for (WorkContractListInfo info : list) {
+                if("5".equals(info.getContractState())){
+                    info.setContractState("已签");
+                }else{
+                    info.setContractState("未签");
+                }
+                if("5".equals(info.getContrractRecordStatus())){
+                    info.setContrractRecordStatus("已归档");
+                }else{
+                    info.setContrractRecordStatus("未归档");
+                }
+
+                if("0".equals(info.getBorrowStatus()) || "4".equals(info.getBorrowStatus()) || "5".equals(info.getGiveStatus())){
+                    info.setBorrowStatus("未借");
+                }else{
+                    info.setBorrowStatus("已借");
+                }
+            }
+            //new ExportExcel(false,"合同一览表", WorkContractListInfo.class,1).setDataList(list).write(response, fileName,request.getHeader("USER-AGENT")).dispose();
+            new ExportExcel("合同一览表", WorkContractListInfo.class).setDataList(list).write(response, fileName).dispose();
             return null;
         } catch (Exception e) {
             addMessage(redirectAttributes, "导出合同管理记录失败!失败信息:" + e.getMessage());

+ 8 - 4
src/main/java/com/jeeplus/modules/workcontractrecord/service/WorkContractRecordService.java

@@ -9,6 +9,8 @@ import java.util.List;
 import java.util.Map;
 
 import com.google.common.collect.Maps;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.oss.OSSClientUtil;
 import com.jeeplus.common.utils.MenuStatusEnum;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.websocket.onchat.ChatServerPool;
@@ -105,6 +107,10 @@ public class WorkContractRecordService extends CrudService<WorkContractRecordDao
 				}
 			}
 		}
+		//添加当前文件服务器类型
+		workContractRecord.setUploadMode(uploadMode);
+		//数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+		workattachmentService.clientAttachmentManageOnUrl(workContractRecord.getWorkAttachments());
 		return workContractRecord;
 	}
 	
@@ -285,11 +291,9 @@ public class WorkContractRecordService extends CrudService<WorkContractRecordDao
 				workClientAttachment.setAttachmentFlag("85");
 				workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
 				if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())) {
-					workClientAttachment.preInsert();
-					workClientAttachmentDao.insert(workClientAttachment);
+					workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
 				} else {
-					workClientAttachment.preUpdate();
-					workClientAttachmentDao.update(workClientAttachment);
+					workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
 				}
 			} else {
 				workClientAttachmentDao.delete(workClientAttachment);

+ 36 - 23
src/main/java/com/jeeplus/modules/workfullmanage/web/WorkFullManageController.java

@@ -79,8 +79,6 @@ import freemarker.template.Template;
 @RequestMapping(value = "${adminPath}/workfullmanage/workFullManage")
 public class WorkFullManageController extends BaseController {
 
-	/** 文件存储方式(0:本地服务器存储。1:云端存储) */
-	private final static String uploadMode = Global.getConfig("remoteServer.uploadMode");
 
 	@Autowired
 	private WorkFullManageService workFullManageService;
@@ -578,26 +576,26 @@ public class WorkFullManageController extends BaseController {
 	 */
 	@RequestMapping("/downLoadAttach")
 	public String downLoadAttach(String file,HttpServletResponse response) throws IOException {
-//		file = file.replace("amp;","");
-//		String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
-//		String aliyunUrl = Global.getAliyunUrl();
-//		String aliDownloadUrl = Global.getAliDownloadUrl();
-//		String cons = "";
-//		if (file.contains(aliyunUrl)){
-//			cons = aliyunUrl;
-//		}else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
-//			cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
-//		}else {
-//			cons = aliDownloadUrl;
-//		}
-//		String key = file.split(cons+"/")[1];
-//		logger.info("-----------------------------------------");
-//		logger.info("fileName="+fileName);
-//		logger.info("key="+key);
-//		logger.info("-----------------------------------------");
-//		new OSSClientUtil().downByStream(key,fileName,response,request.getHeader("USER-AGENT"));
-//		return null;
-		OutputStream out = null;
+		file = file.replace("amp;","");
+		String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
+		String aliyunUrl = Global.getAliyunUrl();
+		String aliDownloadUrl = Global.getAliDownloadUrl();
+		String cons = "";
+		if (file.contains(aliyunUrl)){
+			cons = aliyunUrl;
+		}else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")){
+			cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
+		}else {
+			cons = aliDownloadUrl;
+		}
+		String key = file.split(cons+"/")[1];
+		logger.info("-----------------------------------------");
+		logger.info("fileName="+fileName);
+		logger.info("key="+key);
+		logger.info("-----------------------------------------");
+		new OSSClientUtil().downByStream(key,fileName,response,request.getHeader("USER-AGENT"));
+		return null;
+		/*OutputStream out = null;
 		InputStream in = null;
 		if("1".equals(uploadMode)){
 			try {
@@ -637,8 +635,23 @@ public class WorkFullManageController extends BaseController {
 			sftpClientUtil.download(file,fileName,response);
 		}
 
-		return null;
+		return null;*/
+
+	}
 
+
+
+	/**
+	 * 阿里云文件通过文件key获取临时查看url
+	 * @return
+	 */
+	@RequestMapping("getFileTemporaryLookUrl")
+	@ResponseBody
+	public Map getFileTemporaryLookUrl(String file,HttpServletResponse response){
+		Map map = new HashMap();
+		String lookUrl = new OSSClientUtil().getFileTemporaryLookUrl(file);
+		map.put("lookUrl",lookUrl);
+		return map;
 	}
 
 	/**

+ 58 - 8
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -40,6 +40,8 @@ import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
 import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectAccessory.service.ProjectAccessoryRelationService;
 import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
+import com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo;
+import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
 import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingBatchProInfoDao;
 import com.jeeplus.modules.projectFilingBatch.dao.ProjectFilingbatchRelationDao;
 import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatch;
@@ -470,6 +472,8 @@ public class WorkProjectNotifyController extends BaseController {
 	private ProjectFilingBatchProInfoDao projectFilingBatchProInfoDao;
 	@Autowired
 	private RuralProjectRecordsReportedDao ruralProjectRecordsReportedDao;
+	@Autowired
+	private ProjectEngineeringService engineeringService;
 
 	@ModelAttribute
 	public WorkProjectNotify get(@RequestParam(required=false) String id) {
@@ -1311,6 +1315,9 @@ public class WorkProjectNotifyController extends BaseController {
 					}
 				} else if (workProjectNotify.getType().equals("39")) {    //项目登记
 					boolean flag = false;
+					//获取全部工程类型
+					List<ProjectEngineeringInfo> engineeringInfos=engineeringService.findList(new ProjectEngineeringInfo());
+					model.addAttribute("engineeringInfo", engineeringInfos);
 					//通过通知信息id获取项目登记对象
 					ProjectRecords projectRecords = projectRecordsService.get(workProjectNotify.getNotifyId());
 					RuralProjectRecords ruralProjectRecords = ruralProjectRecordsService.get(workProjectNotify.getNotifyId());
@@ -1361,6 +1368,14 @@ public class WorkProjectNotifyController extends BaseController {
 									break;
 								}
 							}
+							//处理送审金额
+							List<MainDictDetail> mainDict = DictUtils.getMainDictList("attachment_project_approval_money");
+							for (MainDictDetail info: mainDict) {
+								if(ruralProjectRecords.getSubmitMoney().equals(info.getValue())){
+									ruralProjectRecords.setSubmitMoney(info.getLabel());
+									break;
+								}
+							}
 							return "modules/ruralprojectrecords/ruralProjectRecordsView";
 						}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
 							//处理项目类别
@@ -1371,8 +1386,19 @@ public class WorkProjectNotifyController extends BaseController {
 									break;
 								}
 							}
+							//处理送审金额
+							List<MainDictDetail> mainDict = DictUtils.getMainDictList("attachment_project_approval_money");
+							for (MainDictDetail info: mainDict) {
+								if(ruralProjectRecords.getSubmitMoney().equals(info.getValue())){
+									ruralProjectRecords.setSubmitMoney(info.getLabel());
+									break;
+								}
+							}
 							return "modules/ruralprojectrecords/ruralProjectRecordsAudit";
 						} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+							//查询工程类型信息
+							ProjectEngineeringInfo engineeringInfo=engineeringService.get(ruralProjectRecords.getEngineeringType());
+							model.addAttribute("engInfo", engineeringInfo);
 							return "modules/ruralprojectrecords/ruralProjectRecordsModify";
 						} else {
 							return "modules/ruralprojectrecords/ruralProjectRecordsView";
@@ -1853,6 +1879,8 @@ public class WorkProjectNotifyController extends BaseController {
 					projectReportData.setAct(act);
 					Projectcontentinfo projectcontentinfo = projectcontentinfoService.getByInfoId(projectReportData.getId());
 					projectcontentinfo.setProjectReportData(projectReportData);
+					//添加当前文件服务器类型
+					projectcontentinfo.setUploadMode(uploadMode);
 					List<MainDictDetail> achievementTypes = DictUtils.getMainDictList("achievement_type");
 					if(null != achievementTypes){
 						for (MainDictDetail achievementType:achievementTypes) {
@@ -1885,9 +1913,16 @@ public class WorkProjectNotifyController extends BaseController {
 						//判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
 						//if(0 == projectSort){
 							//查看送审金额是否为500w以上金额
-							Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectcontentinfo.getProjectReportData().getReviewFee());
+//							Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectcontentinfo.getProjectReportData().getReviewFee());
 					//设置默认值为500w以上的展示数据
-					approvalMoney = 2;
+//					approvalMoney = 2;
+					String money=ruralProjectRecords.getSubmitMoney();
+					Integer approvalMoney=null;
+					if(null==money){
+						approvalMoney=1;
+					}else{
+						approvalMoney=Integer.parseInt(money);
+					}
 					switch (approvalMoney){
 						case 0:
 							//金额为0
@@ -2117,9 +2152,16 @@ public class WorkProjectNotifyController extends BaseController {
 						//判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
 						//if(0 == projectSort){
 							//查看送审金额是否为500w以上金额
-							Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
+//							Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportRecord.getReport().getReviewFee());
 							//设置默认值为500w以上的展示数据
-							approvalMoney = 2;
+//							approvalMoney = 2;
+							String money=ruralProjectRecords.getSubmitMoney();
+							Integer approvalMoney=null;
+							if(null==money){
+								approvalMoney=1;
+							}else{
+								approvalMoney=Integer.parseInt(money);
+							}
 							switch (approvalMoney){
 								case 0:
 									//金额为0
@@ -2159,7 +2201,7 @@ public class WorkProjectNotifyController extends BaseController {
 
 						}
 					//}
-
+					projectReportRecord.setUploadMode(uploadMode);
 					model.addAttribute("projectReportRecord", projectReportRecord);
 					model.addAttribute("project", projectReportRecord.getReport().getProject());
 					if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
@@ -3727,9 +3769,17 @@ public class WorkProjectNotifyController extends BaseController {
 					//判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
 					//if(0 == projectSort){
 						//查看送审金额是否为500w以上金额
-						Integer approvalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
-						//设置默认值为500w以上的展示数据
-						approvalMoney = 2;
+//						Integer appsrovalMoney = projectAccessoryRelationService.decideAttachmentProjectApprovalMoney(projectReportData.getReviewFee());
+//						//设置默认值为500w以上的展示数据
+//						approvalMoney = 2;
+						String money=ruralProjectRecords.getSubmitMoney();
+						Integer approvalMoney=null;
+						if(null==money){
+							approvalMoney=1;
+						}else{
+							approvalMoney=Integer.parseInt(money);
+						}
+
 						switch (approvalMoney){
 							case 0:
 								//金额为0

+ 7 - 4
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementService.java

@@ -5,6 +5,7 @@ package com.jeeplus.modules.workreimbursement.service;
 
 import com.google.common.collect.Lists;
 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;
@@ -214,6 +215,10 @@ public class WorkReimbursementService extends CrudService<WorkReimbursementDao,
             }
             workReimbursement.setReimbursementBackList( workReimbursementBackDao.findList(workReimbursementBack));
         }
+        //添加当前文件服务器类型
+        workReimbursement.setUploadMode(uploadMode);
+        //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+        workattachmentService.clientAttachmentManageOnUrl(workReimbursement.getWorkAttachments());
         return workReimbursement;
     }
 
@@ -603,11 +608,9 @@ public class WorkReimbursementService extends CrudService<WorkReimbursementDao,
                     workClientAttachment.setAttachmentFlag(VarStr.attachmentFlag[1]);
                     workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
                     if (StringUtils.isBlank(workClientAttachment.getId()) || "null".equals(workClientAttachment.getId())) {
-                        workClientAttachment.preInsert();
-                        workClientAttachmentDao.insert(workClientAttachment);
+                        workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
                     } else {
-                        workClientAttachment.preUpdate();
-                        workClientAttachmentDao.update(workClientAttachment);
+                        workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
                     }
                 } else {
                     workClientAttachmentDao.delete(workClientAttachment);

+ 2 - 1
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementController.java

@@ -780,7 +780,7 @@ public class WorkReimbursementController extends BaseController {
 	 * 选择报销项目
 	 */
 	@RequestMapping(value = "selectReproject")
-	public String selectReproject(String userId,ProjectRecords projectId, String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, HttpServletRequest request, HttpServletResponse response, Model model) {
+	public String selectReproject(String userId,ProjectRecords projectId, String url, String fieldLabels, String fieldKeys, String searchLabel, String searchKey, String extid, HttpServletRequest request, HttpServletResponse response, Model model) {
 		projectId.setCompany(UserUtils.getSelectCompany());
 		Page<ProjectRecords> page = projectRecordsService.ruralFindPageByReimbur(new Page<ProjectRecords>(request, response), projectId,userId);
 		try {
@@ -801,6 +801,7 @@ public class WorkReimbursementController extends BaseController {
 		model.addAttribute("obj", projectId);
 		model.addAttribute("allowInput", true);
 		model.addAttribute("page", page);
+		model.addAttribute("extId", extid);
 		return "modules/sys/gridselectcallprojectOnReimbur";
 		//return "modules/sys/gridselect";
 	}

+ 8 - 0
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementTypeController.java

@@ -172,4 +172,12 @@ public class WorkReimbursementTypeController extends BaseController {
         }
         return mapList;
     }
+    @ResponseBody
+    @RequestMapping(value = "projectCharge")
+    public String projectCharge(String pids,Model model) {
+        String pid=pids.split(",")[1];
+        model.addAttribute("projectCharge",pid);
+        return pid;
+    }
+
 }

+ 6 - 5
src/main/resources/jeeplus.properties

@@ -149,9 +149,9 @@ aliyunUrl=http://oss.gangwaninfo.com
 aliyunDownloadUrl=http://cdn.gangwaninfo.com
 oSSUrl=http://cdn.gangwaninfo.com/jeeplus-resource-data/static
 endpoint=http://oss-cn-hangzhou.aliyuncs.com
-accessKeyId=LTAIi7VuxcgfJR2x
-accessKeySecret=Q9xF9V7tcnCI28ttUsP8H4GyAhZta7
-bucketName=gangwan-app
+accessKeyId=LTAI5tQDWoM9c1WyJNPs86rX
+accessKeySecret=84dDIx4edT1n78KUOqqSmDZ35pchJv
+bucketName=xgxm-test
 avatarDir=app-img/avatar/
 notifyDir=app-img/notify/
 reportDir=app-img/report/
@@ -240,6 +240,7 @@ yy_shcxurl=https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterprise
 #yy_shcxurl=https://api.yonyoucloud.com/apis/dst/enterpriseTicketQuery/enterpriseTicketInfo?id=ID
 
 #\u767E\u5EA6BOS
+bosUrl=https://newxgccpm.su.bcebos.com
 bos_access_key=9915286aab2949949b489e8ab3f70a09
 bos_secret_key=069036bdb93c4bc59c4995ccc543243e
 bos_endpoint=http://su.bcebos.com
@@ -274,8 +275,8 @@ remoteServer.directory =/attachment-file
 remoteServer.winDirectory =d:/attachment-file
 
 
-#\u6587\u4EF6\u5B58\u50A8\u65B9\u5F0F\uFF080\uFF1A\u672C\u5730\u670D\u52A1\u5668\u5B58\u50A8\u30021\uFF1A\u4E91\u7AEF\u5B58\u50A8\uFF09
-remoteServer.uploadMode =1
+#\u6587\u4EF6\u5B58\u50A8\u65B9\u5F0F\uFF080\uFF1A\u672C\u5730\u670D\u52A1\u5668\u5B58\u50A8\u30021\uFF1A\u767E\u5EA6\u4E91\u5B58\u50A8\uFF1B2\uFF1A\u963F\u91CC\u4E91\uFF09
+remoteServer.uploadMode =2
 
 #\u6587\u4EF6\u670D\u52A1\u5668IP\u5730\u5740
 remoteServer.visit =

+ 124 - 0
src/main/resources/mappings/modules/projectEngineering/PeojectEngineeringDao.xml

@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.projectEngineering.dao.ProjectEngineeringInfoDao">
+
+    <sql id="engineeringColumns">
+        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.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.parent_id AS "parent.id",
+		a.engineering_name AS "engineeringName",
+		a.parent_ids AS "parentIds",
+		a.company_id AS "companyId",
+		a.index_num AS "indexNum"
+    </sql>
+    <select id="get" resultType="com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo" >
+        SELECT
+        <include refid="engineeringColumns"/>
+        FROM project_engineering_info a
+        WHERE a.id = #{id}
+    </select>
+    <select id="findList" resultType="com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo" >
+        SELECT
+        <include refid="engineeringColumns"/>
+        FROM project_engineering_info a
+        <where>
+            a.del_flag = 0
+            <if test="engineeringName!=null and engineeringName != ''">
+                and a.engineering_name like concat('%',#{engineeringName},'%')
+            </if>
+            <if test="parentIds!=null and parentIds != ''">
+                and a.parent_ids like concat('%',#{parentIds},'%')
+            </if>
+            <if test="indexNum != null and indexNum!=0">
+                and a.index_num = #{indexNum}
+            </if>
+        </where>
+        <choose>
+            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
+                ORDER BY ${page.orderBy}
+            </when>
+            <otherwise>
+                ORDER BY a.index_num
+            </otherwise>
+        </choose>
+    </select>
+    <select id="getParentAll"
+            resultType="com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo">
+        SELECT
+        <include refid="engineeringColumns"/>
+        FROM project_engineering_info a
+        <where>
+            a.del_flag = 0
+            and a.parent_id ="0"
+        </where>
+        ORDER BY a.index_num
+    </select>
+    <select id="selectOrderNum" resultType="java.lang.String">
+        SELECT MAX(index_num) FROM project_engineering_info WHERE parent_id = #{parentId}
+    </select>
+    <insert id="insert">
+        insert into project_engineering_info(
+            id,
+            create_by,
+            create_date,
+            update_by,
+            update_date,
+            remarks,
+            del_flag,
+            parent_id,
+            engineering_name,
+            index_num,
+            parent_ids,
+            company_id
+        )values (
+            #{id},
+            #{createBy.id},
+            #{createDate},
+            #{updateBy.id},
+            #{updateDate},
+            #{remarks},
+            #{delFlag},
+            #{parentId},
+            #{engineeringName},
+            #{indexNum},
+            #{parentIds},
+            #{companyId}
+        )
+    </insert>
+    <update id="update">
+        update project_engineering_info set
+            update_by = #{updateBy.id},
+            update_date = #{updateDate},
+            remarks = #{remarks},
+            parent_id = #{parent.id},
+            engineering_name = #{engineeringName},
+            index_num = #{indexNum},
+            parent_ids = #{parentIds},
+            company_id = #{companyId}
+        WHERE id = #{id}
+    </update>
+    <update id="delete">
+        DELETE FROM project_engineering_info
+        WHERE id = #{id} OR find_in_set(#{id},parent_ids)
+    </update>
+    <select id="fingIds" resultType="com.jeeplus.modules.projectEngineering.entity.ProjectEngineeringInfo">
+        SELECT <include refid="engineeringColumns"/>
+        FROM project_engineering_info a
+        <where>
+            <if test="parentIdSet!=null and parentIdSet.size!=0">
+                a.id in
+                <foreach collection="parentIdSet" item="parentId" separator="," open="(" close=")">
+                    #{parentId}
+                </foreach>
+            </if>
+            AND del_flag ='0'
+            AND company_id = #{companyId}
+        </where>
+        ORDER BY a.index_num
+    </select>
+</mapper>

+ 42 - 1
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageDao.xml

@@ -250,6 +250,7 @@
 		FROM rural_project_records a
 		LEFT JOIN sys_area area ON area.id = a.area_id
 		left join rural_project_records_reported rprr on rprr.id = a.id
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
 
         <if test="leaderNameStr !=null and leaderNameStr !=''">
             LEFT JOIN work_project_user w on a.id = w.project_id
@@ -318,6 +319,25 @@
             <if test="endDate !=null">
                 AND a.create_date &lt; #{endDate}
             </if>
+			<if test="createBy != null and createBy.id !=null and createBy.id !=''">
+				AND a.create_by = #{createBy.id}
+ 			</if>
+			<choose>
+				<when test="filingProjectStatus == 0">
+					AND pfp.status is null
+				</when>
+				<otherwise>
+					<if test="filingProjectStatus!=null and filingProjectStatus !=''">
+						AND pfp.status = #{filingProjectStatus}
+					</if>
+				</otherwise>
+			</choose>
+			<if test="reportData!=null and reportData.number !=null and reportData.number !=''">
+				and prd.number like concat('%',#{reportData.number},'%')
+			</if>
+			<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>
             <if test="reportedState !=null and reportedState !=''">
 				<choose>
 					<when test="reportedState == 0">
@@ -385,7 +405,9 @@
 		left join project_report_data prd on prd.project_id = a.id
 		left join rural_project_report_record prr on prr.report_id = prd.id
 		left join rural_project_report_record_down prrd on prrd.report_id = prd.id
-        <where>
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id= a.id
+
+		<where>
             a.status = 5
             <if test="projectId != null and projectId != ''">
                 AND a.project_id like concat('%',#{projectId},'%')
@@ -441,7 +463,26 @@
             <if test="endDate !=null">
                 AND a.create_date &lt; #{endDate}
             </if>
+			<if test="createBy != null and createBy.id !=null and createBy.id !=''">
+				AND a.create_by = #{createBy.id}
+			</if>
 
+				<choose>
+					<when test="filingProjectStatus == 0">
+						AND pfp.status is null
+					</when>
+					<otherwise>
+						<if test="filingProjectStatus!=null and filingProjectStatus !=''">
+							AND pfp.status = #{filingProjectStatus}
+						</if>
+					</otherwise>
+				</choose>
+			<if test="reportData!=null and reportData.number !=null and reportData.number !=''">
+				and prd.number like concat('%',#{reportData.number},'%')
+			</if>
+			<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>
 			<if test="projectReportStatus != null and projectReportStatus != ''">
 				AND prd.status = #{projectReportStatus}
 			</if>

+ 10 - 3
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectRecordReportDao.xml

@@ -47,7 +47,7 @@
 		WHERE a.id = #{id}
 	</select>
 
-	<select id="getYear" resultType="java.lang.String">
+	<select id="getYear" resultType="java.lang.Integer">
 		SELECT
 			distinct(year(a.create_date)) as "year"
 		FROM rural_project_records a
@@ -60,7 +60,7 @@
 		</where>
 	</select>
 
-	<select id="getMonth" resultType="java.lang.String">
+	<select id="getMonth" resultType="java.lang.Integer">
 		SELECT
 			distinct(month(a.create_date)) as "month"
 		FROM rural_project_records a
@@ -87,8 +87,14 @@
 	<select id="findList" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecordReportInfo" >
 		SELECT
 			<include refid="ruralProjectInfoColumns"/>
+		,ifnull(rprr.report_status,0) as "reportedState"
+		,rprr.process_instance_id as "reportedProcessInstanceId"
+		,ifnull(prr.status,0) as "projectReportRecordStatus"
+		,ifnull(a.check_status ,0) as "checkStatus"
+		,a.check_process_instance_id AS "checkProcessInstanceId"
 		FROM rural_project_records a
 		<include refid="ruralProjectInfoJoins"/>
+		left join rural_project_records_reported rprr on rprr.id = a.id
 		<where>
 			a.del_flag = 0 and project_type = #{projectType} and a.status = 5 and prd.status = 5
 			<if test="year != null and year != ''">
@@ -122,9 +128,10 @@
 
 
 	<select id="queryCount" resultType="int" >
-		SELECT count(1)
+		SELECT count(distinct a.id)
 		FROM rural_project_records a
 		<include refid="ruralProjectInfoJoins"/>
+		left join rural_project_records_reported rprr on rprr.id = a.id
 		<where>
 			a.del_flag = 0 and project_type = #{projectType} and a.status = 5 and prd.status = 5
 			<if test="year != null and year != ''">

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

@@ -68,6 +68,8 @@
 		,prd.number AS "projectReportNumber"
 		,prr.id As "prrid"
 		,a.project_master_id as "projectMasterId"
+		,a.submit_money as "submitMoney"
+		,a.engineering_type as "engineeringType"
 		,supmi.name as "projectMasterName"
         FROM rural_project_records a
         <include refid="projectRecordsJoins"/>
@@ -115,6 +117,7 @@
 		LEFT JOIN project_report_data prd on prd.project_id = a.id
 		LEFT JOIN rural_project_report_record prr on prd.id = prr.report_id
         LEFT JOIN sys_office o ON o.id = a.office_id
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
 		<where>
 			<if test="projectId != null and projectId != ''">
 				AND a.project_id like concat('%',#{projectId},'%')
@@ -173,7 +176,18 @@
 			<if test="projectType !=null and projectType !=''">
 				and project_type= #{projectType}
 			</if>
-
+			<if test="engineeringType !=null and engineeringType !=''">
+				and a.engineering_type= #{engineeringType}
+			</if>
+			<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>
+			<if test="reportData!=null and reportData.number !=null and reportData.number !=''">
+				and prd.number like concat('%',#{reportData.number},'%')
+			</if>
+			<if test="filingProjectStatus!=null and filingProjectStatus !=''">
+				and pfp.status =${filingProjectStatus}
+			</if>
             <if test="sqlMap.delFlag !=null and sqlMap.delFlag!=''">
 				${sqlMap.delFlag}
             </if>
@@ -206,7 +220,8 @@
         <if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
             LEFT JOIN work_client_info wct on wci.client_id = wct.id
         </if>
-        <where>
+		LEFT JOIN project_flingbatch_relation pfp on pfp.project_id=a.id
+		<where>
             <if test="projectId != null and projectId != ''">
                 AND a.project_id like concat('%',#{projectId},'%')
             </if>
@@ -264,6 +279,21 @@
             <if test="projectType !=null and projectType !=''">
 				and project_type= #{projectType}
             </if>
+			<if test="engineeringType !=null and engineeringType !=''">
+				and a.engineering_type= #{engineeringType}
+			</if>
+			<if test="office!=null and office.id!=null and office.id!=''">
+				and  a.office_id = #{office.id}
+			</if>
+			<if test="reportData!=null and reportData.number !=null and reportData.number !=''">
+				and prd.number like concat('%',#{reportData.number},'%')
+			</if>
+			<if test="userId!=null and userId !=''">
+				and a.createBy =${userId}
+			</if>
+			<if test="filingProjectStatus!=null and filingProjectStatus !=''">
+				and pfp.status =${filingProjectStatus}
+			</if>
 			<if test="sqlMap.delFlag !=null and sqlMap.delFlag!=''">
 				${sqlMap.delFlag}
 			</if>
@@ -430,7 +460,9 @@
 			construction_unit,
 			construction_linkman,
 			attachment_project_sort,
-			project_master_id
+			project_master_id,
+			submit_money,
+			engineering_type
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -476,7 +508,9 @@
 			#{constructionUnit},
 			#{constructionLinkman},
 			#{attachmentProjectSort},
-			#{projectMasterId}
+			#{projectMasterId},
+		    #{submitMoney},
+		    #{engineeringType}
 		)
 	</insert>
 	
@@ -524,6 +558,8 @@
 			<if test="projectMasterId != null and projectMasterId != ''">
 				,project_master_id = #{projectMasterId}
 			</if>
+			,submit_money =#{submitMoney},
+			engineering_type =#{engineeringType}
 		WHERE id = #{id}
 	</update>
 	<update id="updateDate">

+ 85 - 5
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectReportDao.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.jeeplus.modules.ruralprojectrecords.dao.RuralProjectReportDao">
     
 	<sql id="ruralProjectInfoColumns">
-		a.id AS "id",
+		DISTINCT a.id AS "id",
 		year(a.create_date) as "year",
 		month(a.create_date) as "month",
 		a.create_by AS "createBy.id",
@@ -21,7 +21,7 @@
 		prd.review_fee AS "reviewFee",
 		prd.approval_fee AS "approvalFee",
 		prd.verify_fee AS "verifyFee",
-		prd.verify_rate AS "verifyFate",
+		prd.verify_rate AS "verifyRate",
 		prr.file_num AS "filesNum",
 		client.name AS "clientName",
 		o.name as "officeName",
@@ -50,7 +50,7 @@
 		WHERE a.id = #{id}
 	</select>
 
-	<select id="getYear" resultType="java.lang.String">
+	<select id="getYear" resultType="java.lang.Integer">
 		SELECT
 			distinct(year(a.create_date)) as "year"
 		FROM rural_project_records a
@@ -63,7 +63,7 @@
 		</where>
 	</select>
 
-	<select id="getMonth" resultType="java.lang.String">
+	<select id="getMonth" resultType="java.lang.Integer">
 		SELECT
 			distinct(month(a.create_date)) as "month"
 		FROM rural_project_records a
@@ -90,8 +90,13 @@
 	<select id="findList" resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectReportInfo" >
 		SELECT
 			<include refid="ruralProjectInfoColumns"/>
+			,ifnull(rprr.report_status,0) as "reportedState"
+			,rprr.process_instance_id as "reportedProcessInstanceId"
+			,sum(wi.money) as allMoney
 		FROM rural_project_records a
 		<include refid="ruralProjectInfoJoins"/>
+		left join rural_project_records_reported rprr on rprr.id = a.id
+		left join work_invoice wi on wi.project_id = a.id
 		<where>
 			a.del_flag = 0 and project_type = #{projectType} and a.status = 5
 			<if test="year != null and year != ''">
@@ -100,16 +105,54 @@
 			<if test="month != null and month != ''">
 				AND month(a.create_date) = #{month}
 			</if>
+			/*项目名称*/
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name LIKE concat('%',#{projectName},'%')
+			</if>
+			/*委托单位名称*/
 			<if test="clientName != null and clientName != ''">
 				AND client.name LIKE concat('%',#{clientName},'%')
 			</if>
+			/*报告号*/
+			<if test="reportNum != null and reportNum != ''">
+				AND prd.number LIKE concat('%',#{reportNum},'%')
+			</if>
+			/*项目所在地*/
+			<if test="area != null">
+				<if test="area.id != null and area.id != ''">
+					<if test="province != null and province != ''">
+						AND a.province = #{province}
+					</if>
+					<if test="city != null and city != ''">
+						AND a.city = #{city}
+					</if>
+					<if test="county != null and county != ''">
+						AND a.area_name = #{county}
+					</if>
+				</if>
+			</if>
+			/*审定金额*/
+			<if test="approvalFee != null and approvalFee != ''">
+				AND prd.approval_fee = #{approvalFee}
+			</if>
+			/*部门*/
 			<if test="officeId != null and officeId != ''">
 				AND so.id = #{officeId}
 			</if>
+			/*项目负责人*/
+			<if test="createId != null and createId != ''">
+				AND w1.user_id = #{createId} and w1.is_master = 1
+			</if>
+			/*上报状态*/
+			<if test="reportedState != null and reportedState != ''">
+				AND rprr.report_status = #{reportedState}
+			</if>
+
 			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
 				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
 			</if>
 		</where>
+		group by a.id
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
@@ -122,9 +165,10 @@
 
 
 	<select id="queryCount" resultType="int" >
-		SELECT count(1)
+		SELECT  count(DISTINCT a.id)
 		FROM rural_project_records a
 		<include refid="ruralProjectInfoJoins"/>
+		left join rural_project_records_reported rprr on rprr.id = a.id
 		<where>
 			a.del_flag = 0 and project_type = #{projectType} and a.status = 5
 			<if test="year != null and year != ''">
@@ -133,12 +177,48 @@
 			<if test="month != null and month != ''">
 				AND month(a.create_date) = #{month}
 			</if>
+			/*项目名称*/
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name LIKE concat('%',#{projectName},'%')
+			</if>
+			/*委托单位名称*/
 			<if test="clientName != null and clientName != ''">
 				AND client.name LIKE concat('%',#{clientName},'%')
 			</if>
+			/*报告号*/
+			<if test="reportNum != null and reportNum != ''">
+				AND prd.number LIKE concat('%',#{reportNum},'%')
+			</if>
+			/*项目所在地*/
+			<if test="area != null">
+				<if test="area.id != null and area.id != ''">
+					<if test="province != null and province != ''">
+						AND a.province = #{province}
+					</if>
+					<if test="city != null and city != ''">
+						AND a.city = #{city}
+					</if>
+					<if test="county != null and county != ''">
+						AND a.area_name = #{county}
+					</if>
+				</if>
+			</if>
+			/*审定金额*/
+			<if test="approvalFee != null and approvalFee != ''">
+				AND prd.approval_fee = #{approvalFee}
+			</if>
+			/*部门*/
 			<if test="officeId != null and officeId != ''">
 				AND so.id = #{officeId}
 			</if>
+			/*项目负责人*/
+			<if test="createId != null and createId != ''">
+				AND w1.user_id = #{createId} and w1.is_master = 1
+			</if>
+			/*上报状态*/
+			<if test="reportedState != null and reportedState != ''">
+				AND rprr.report_status = #{reportedState}
+			</if>
 			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
 				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND a.company_id = #{currentUser.company.id} )${sqlMap.dsf} )
 			</if>

+ 6 - 0
src/main/resources/mappings/modules/workcontractinfo/WorkContractBorrowDao.xml

@@ -326,4 +326,10 @@
 		 SELECT a2.record_num from(select * from work_contract_record a
 		 where a.del_flag = 0 and a.record_num like concat(#{num},'%') ORDER BY a.create_date desc LIMIT 1) a2
 	</select>
+
+	<update id="updateContractInfo">
+		UPDATE work_contract_info SET
+		borrow_id = #{id}
+		WHERE id = #{workContractInfo.id}
+	</update>
 </mapper>

+ 9 - 0
src/main/resources/mappings/modules/workcontractinfo/WorkContractInfoDao.xml

@@ -1297,4 +1297,13 @@
 		WHERE contract_info_id = #{id}
 	</update>
 
+	<select id="getYear" resultType="java.lang.Integer">
+		SELECT
+		distinct(year(a.contract_date)) as "year"
+		FROM work_contract_info a
+		<where>
+			a.del_flag = 0 and a.contract_state = 5
+		</where>
+	</select>
+
 </mapper>

+ 58 - 11
src/main/resources/mappings/modules/workcontractinfo/WorkContractListInfoDao.xml

@@ -25,7 +25,7 @@
 		a.contract_type AS "contractType",
 		a.contract_special AS "contractSpecial",
 		a.contract_state AS "contractState",
-		a.charge_company_name AS "officeName",
+		/*a.charge_company_name AS "officeName",*/
 		a.record_state AS "recordState",
 		a.summary_payment AS "summaryPayment",
 		a.investment_amount AS "investmentAmount",
@@ -51,45 +51,92 @@
 		LEFT JOIN work_bid_project p ON  p.id = a.project_id
 		LEFT JOIN sys_office s ON s.id = a.company_id
 		LEFT JOIN work_contract_info b ON b.id = a.total_contract_id
+		LEFT JOIN sys_office so ON so.id = a.office_id
 	</sql>
 
 	<select id="findList" resultType="WorkContractListInfo" >
 		SELECT
 		<include refid="workContractListInfoColumns"/>
+		,year(a.contract_date) as "year"
 		,a.client_id AS "client.id"
 		,client.name AS "client.name"
 		,ifnull(wcr.status,0) as "contrractRecordStatus"
-		,ifnull(wcr.record_num,"") as "recordNum"
+		,ifnull(wcr.file_num,"") as "recordNum"
 		,wcr.id as "contrractRecordId"
+		,so.name as "officeName"
+		,ifnull(wcb.status,0) as "borrowStatus"
+		,ifnull(wcb.give_status,0) as "giveStatus"
 		FROM work_contract_info a
 		<include refid="workContractListInfoJoins"/>
 		left join work_contract_record wcr on wcr.contract_info_id = a.id
+		left join work_contract_borrow wcb on wcb.id = a.borrow_id
 		<where>
 			a.del_flag = '0' and (a.alter_state is null or a.alter_state ="")
+			and a.contract_state != 7
 			<if test="id != null and id != ''">
 				AND a.id = #{id}
 			</if>
 			<if test="beginContractDate != null and endContractDate != null and beginContractDate != '' and endContractDate != ''">
 				AND a.contract_date BETWEEN #{beginContractDate} AND #{endContractDate}
 			</if>
-			<if test="name != null and name != ''">
-				AND a.name LIKE 
-					<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
-					<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
-					<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			<if test="contractState != null and contractState != ''">
+				AND a.contract_state = #{contractState}
 			</if>
+
+			/*合同规模*/
 			<if test="contractPrice != '' and contractPrice != null">
 				AND a.contract_price like concat('%',#{contractPrice},'%')
 			</if>
-			<if test="contractState != null and contractState != ''">
-				AND a.contract_state = #{contractState}
+			/*合同年份*/
+			<if test="year != null and year != ''">
+				AND YEAR(a.contract_date) = #{year}
 			</if>
-			<if test="contractNum != null and contractNum!= ''">
-				AND a.contract_num like  concat('%',#{contractNum},'%')
+			/*创建部门*/
+			<if test="officeId != null and officeId != ''">
+				AND a.office_id = #{officeId}
+			</if>
+			/*创建时间*/
+			<if test="beginDate != null and endDate != null and beginDate != '' and endDate != ''">
+				AND a.create_date BETWEEN #{beginDate} AND #{endDate}
 			</if>
+			/*客户名称*/
 			<if test="clientName != null and clientName!= ''">
 				AND client.name like  concat('%',#{clientName},'%')
 			</if>
+			/*合同名称*/
+			<if test="name != null and name != ''">
+				AND a.name LIKE
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
+				<if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
+			</if>
+			/*合同编号*/
+			<if test="contractNum != null and contractNum!= ''">
+				AND a.contract_num like  concat('%',#{contractNum},'%')
+			</if>
+			/*合同类型*/
+			<if test="contractType != null and contractType != ''">
+				AND a.contractTypeDoc = #{contractType}
+			</if>
+			/*登记人*/
+			<if test="(createId != null and createId != '') or (createNameStr != null and createNameStr != '')">
+				AND (a.create_by = #{createId} or u.name like concat('%',#{createNameStr},'%'))
+			</if>
+			/*归档编号*/
+			<if test="recordNum != null and recordNum!= ''">
+				AND wcr.file_num like  concat('%',#{recordNum},'%')
+			</if>
+			/*借阅情况*/
+			<if test="workContractBorrow != null and workContractBorrow != ''">
+				<choose>
+					<when test="workContractBorrow == 0">
+						and (wcb.status=0 or wcb.status=4 or wcb.give_status=5 or wcb.status is null)
+					</when>
+					<otherwise>
+						and ((wcb.status=2 or wcb.status=3 or wcb.status=5) and (wcb.give_status != 5 or wcb.give_status is null))
+					</otherwise>
+				</choose>
+			</if>
 			${sqlMap.dsf}
 		</where>
 		<choose>

+ 46 - 34
src/main/webapp/WEB-INF/tags/sys/reimburselectReproject.tag

@@ -14,47 +14,59 @@
 <%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%>
 <%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%>
 <%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%>
+<%@ attribute name="extId" type="java.lang.String" required="false" description="项目类型编号"%>
+<%@ attribute name="area" type="java.lang.String" required="false" description="大小"%>
+
 <script type="text/javascript">
 	function searchGrid${id}(){
-var  userId=$("#submitterIdId").val();
-	top.layer.open({
-	    type: 2,
-	    area: ['90%','90%'],
-	    title:"${title}",
-	    name:'friend',
-		skin:"two-btns",
-	    content: encodeURI("${url}?userId="+userId+"&fieldLabels=${fieldLabels}&fieldKeys=${fieldKeys}&url=${url}&searchLabel=${searchLabel}&searchKey=${searchKey}"),
-	    btn: ['确定', '关闭'],
-	    yes: function(index, layero){
-	    	 var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
-	    	 var item = iframeWin.getSelectedItem();
-			console.log(item);
-	    	 if(item == "-1"){
-		    	 return;
-	    	 }
-	    	 var items = item.split('_item_');
-			console.log(items)
-			//判断是否选择报销项目
-			if(items[0] == 1){
-				$("#${id}Radio").val(items[0]);
-				$("#${id}Id").val(items[1]);
-				$("#${id}Name").val(items[2]);
-				$("#${id}ReportNumber").val(items[3]);
-			}else{
-				$("#${id}Radio").val(items[0]);
-				$("#${id}Name").val(items[1]);
-				$("#${id}ReportNumber").val("");
+	var  userId=$("#submitterIdId").val();
+	var extid=$("#${id}extId").val();
+	var area=$("#${id}area").val();
+	if (extid!=null && extid != ''){
+		top.layer.open({
+			type: 2,
+			area: ['80%','80%'],
+			title:"${title}",
+			name:'friend',
+			skin:"two-btns",
+			content: encodeURI("${url}?userId="+userId+"&fieldLabels=${fieldLabels}&fieldKeys=${fieldKeys}&url=${url}&searchLabel=${searchLabel}&searchKey=${searchKey}&extid="+extid),
+			btn: ['确定', '关闭'],
+			yes: function(index, layero){
+				var iframeWin = layero.find('iframe')[0].contentWindow; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
+				var item = iframeWin.getSelectedItem();
+				console.log(item);
+				if(item == "-1"){
+					return;
+				}
+				var items = item.split('_item_');
+				console.log(items)
+				//判断是否选择报销项目
+				if(items[0] == 1){
+					$("#${id}Radio").val(items[0]);
+					$("#${id}Id").val(items[1]);
+					$("#${id}Name").val(items[2]);
+					$("#${id}ReportNumber").val(items[3]);
+				}else{
+					$("#${id}Radio").val(items[0]);
+					$("#${id}Name").val(items[1]);
+					$("#${id}ReportNumber").val("");
+				}
+				top.layer.close(index);//关闭对话框。
+				//setValue(item.split('_item_')[0]);
+			},
+			cancel: function(index){
 			}
-			 top.layer.close(index);//关闭对话框。
-             //setValue(item.split('_item_')[0]);
-		  },
-		  cancel: function(index){ 
-	       }
-	}); 
+		});
+	// }else{
+	// 	top.layer.msg("请先选择报销类型", {icon: 0});
+	}
+
 };
 </script>
 
 	<input id="${id}Id" name="${name}"  type="hidden" value="${value}"/>
+	<input id="${id}extId" name="${extId}"  type="hidden" value="${extId}"/>
+	<input id="${id}area" name="${area}"  type="hidden" value="${area}"/>
 	<div class="input-group">
 		<input id="${id}Name" placeholder="${title}" name="${labelName }" ${allowInput?'':'readonly="readonly"'}  onclick="searchGrid${id}()" type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
 		class="${cssClass}" style="background-color: #ffffff; ${cssStyle}"/>

+ 1 - 1
src/main/webapp/WEB-INF/tags/sys/treeselect.tag

@@ -29,7 +29,7 @@
 		class="${cssClass} required" style="${cssStyle}"/>
        		 <span class="input-group-btn">
 	       		 <button type="button"  id="${id}Button" class="btn <c:if test="${fn:contains(cssClass, 'input-sm')}"> btn-sm </c:if><c:if test="${fn:contains(cssClass, 'input-lg')}"> btn-lg </c:if>  btn-primary ${disabled} ${hideBtn ? 'hide' : ''}"><i class="fa fa-search"></i>
-	             </button> 
+	             </button>
        		 </span>
 
     </div>

+ 8 - 1
src/main/webapp/WEB-INF/tags/sys/treeselectAccessoryNoParent.tag

@@ -23,6 +23,7 @@
 <%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%>
 <%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%>
 	<input id="${id}Id" name="${name}" class="${cssClass}" type="hidden" value="${value}"/>
+	<input id="${id}Pids" name="pids" class="${cssClass}" type="hidden" value="${value}"/>
 	<div class="input-group">
 		<input id="${id}Name" name="${labelName}" placeholder="${title}" ${allowInput?'':'readonly="true"'}  type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
 		class="${cssClass}" style="background-color: #ffffff; ${cssStyle}"/>
@@ -51,6 +52,7 @@
 						}else{
 							nodes = tree.getSelectedNodes();
 						}
+						console.log(nodes)
 						for(var i=0; i<nodes.length; i++) {//<c:if test="${checked && notAllowSelectParent}">
 							if (nodes[i].isParent){
 								continue; // 如果为复选框选择,则过滤掉父节点
@@ -76,13 +78,18 @@
 								return false;
 							}//</c:if>
 							ids.push(nodes[i].id);
-							names.push(nodes[i].name);//<c:if test="${!checked}">
+							names.push(nodes[i].name);
+							$("#${id}Pids").val(nodes[i].pIds);
+							//<c:if test="${!checked}">
 							break; // 如果为非复选框选择,则返回第一个选择  </c:if>
 						}
 						$("#${id}Id").val(ids.join(",").replace(/u_/ig,""));
 						$("#${id}Name").val(names.join(","));
 						$("#${id}Name").focus();
 						setParentInfo($("#${id}Id").val());
+						var id="${id}";
+						setPids($("#${id}Pids").val(),id);
+						console.log(index)
 						top.layer.close(index);
 				    	       },
     	cancel: function(index){ //或者使用btn2

+ 106 - 0
src/main/webapp/WEB-INF/tags/sys/treeselectArea.tag

@@ -0,0 +1,106 @@
+<%@ tag language="java" pageEncoding="UTF-8"%>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ attribute name="id" type="java.lang.String" required="true" description="编号"%>
+<%@ attribute name="name" type="java.lang.String" required="true" description="隐藏域名称(ID)"%>
+<%@ attribute name="value" type="java.lang.String" required="true" description="隐藏域值(ID)"%>
+<%@ attribute name="labelName" type="java.lang.String" required="true" description="输入框名称(Name)"%>
+<%@ attribute name="labelValue" type="java.lang.String" required="true" description="输入框值(Name)"%>
+<%@ attribute name="title" type="java.lang.String" required="true" description="选择框标题"%>
+<%@ attribute name="url" type="java.lang.String" required="true" description="树结构数据地址"%>
+<%@ attribute name="checked" type="java.lang.Boolean" required="false" description="是否显示复选框,如果不需要返回父节点,请设置notAllowSelectParent为true"%>
+<%@ attribute name="extId" type="java.lang.String" required="false" description="排除掉的编号(不能选择的编号)"%>
+<%@ attribute name="isAll" type="java.lang.Boolean" required="false" description="是否列出全部数据,设置true则不进行数据权限过滤(目前仅对Office有效)"%>
+<%@ attribute name="notAllowSelectRoot" type="java.lang.Boolean" required="false" description="不允许选择根节点"%>
+<%@ attribute name="notAllowSelectParent" type="java.lang.Boolean" required="false" description="不允许选择父节点"%>
+<%@ attribute name="module" type="java.lang.String" required="false" description="过滤栏目模型(只显示指定模型,仅针对CMS的Category树)"%>
+<%@ attribute name="selectScopeModule" type="java.lang.Boolean" required="false" description="选择范围内的模型(控制不能选择公共模型,不能选择本栏目外的模型)(仅针对CMS的Category树)"%>
+<%@ attribute name="allowClear" type="java.lang.Boolean" required="false" description="是否允许清除"%>
+<%@ attribute name="allowInput" type="java.lang.Boolean" required="false" description="文本框可填写"%>
+<%@ attribute name="cssClass" type="java.lang.String" required="false" description="css样式"%>
+<%@ attribute name="cssStyle" type="java.lang.String" required="false" description="css样式"%>
+<%@ attribute name="smallBtn" type="java.lang.Boolean" required="false" description="缩小按钮显示"%>
+<%@ attribute name="hideBtn" type="java.lang.Boolean" required="false" description="是否显示按钮"%>
+<%@ attribute name="disabled" type="java.lang.String" required="false" description="是否限制选择,如果限制,设置为disabled"%>
+<%@ attribute name="dataMsgRequired" type="java.lang.String" required="false" description=""%>
+<%@ attribute name="rule" type="java.lang.String" required="false" description="考勤规则模块用"%>
+	<input id="${id}Id" name="${name}" class="${cssClass}" type="hidden" value="${value}" />
+	<div class="input-group">
+		<input id="${id}Name" placeholder="请选择${title}" name="${labelName}" ${allowInput?'':'readonly="readonly"'}  type="text" value="${labelValue}" data-msg-required="${dataMsgRequired}"
+		class="${cssClass}" style="${cssStyle}"/>
+       		 <span class="input-group-btn">
+	       		 <button type="button"  id="${id}Button" class="btn <c:if test="${fn:contains(cssClass, 'input-sm')}"> btn-sm </c:if><c:if test="${fn:contains(cssClass, 'input-lg')}"> btn-lg </c:if>  btn-primary ${disabled} ${hideBtn ? 'hide' : ''}"><i class="fa fa-search"></i>
+	             </button> 
+       		 </span>
+
+    </div>
+	 <label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>
+<script type="text/javascript">
+	$("#${id}Button, #${id}Name").click(function(){
+		// 是否限制选择,如果限制,设置为disabled
+		if ($("#${id}Button").hasClass("disabled")){
+			return true;
+		}
+		// 正常打开
+		top.layer.open({
+		    type: 2,
+		    area: ['300px', '420px'],
+		    title:"选择${title}",
+		    ajaxData:{selectIds: $("#${id}Id").val()},
+		    content: "${ctx}/tag/treeselect?url="+encodeURIComponent("${url}")+"&module=${module}&checked=${checked}&extId=${extId}&isAll=${isAll}&unit=${unit}" ,
+		    btn: ['确定', '关闭']
+    	       ,yes: function(index, layero){ //或者使用btn1
+						var tree = layero.find("iframe")[0].contentWindow.tree;//h.find("iframe").contents();
+						var ids = [], names = [], nodes = [];
+						if ("${checked}" == "true"){
+							nodes = tree.getCheckedNodes(true);
+						}else{
+							nodes = tree.getSelectedNodes();
+						}
+						for(var i=0; i<nodes.length; i++) {//<c:if test="${checked && notAllowSelectParent}">
+							if (nodes[i].isParent){
+								continue; // 如果为复选框选择,则过滤掉父节点
+							}//</c:if><c:if test="${notAllowSelectRoot}">
+							if (nodes[i].level == 0){
+								//top.$.jBox.tip("不能选择根节点("+nodes[i].name+")请重新选择。");
+								top.layer.msg("不能选择根节点("+nodes[i].name+")请重新选择。", {icon: 0});
+								return false;
+							}//</c:if><c:if test="${notAllowSelectParent}">
+							if (nodes[i].isParent){
+								//top.$.jBox.tip("不能选择父节点("+nodes[i].name+")请重新选择。");
+								//layer.msg('有表情地提示');
+								top.layer.msg("不能选择父节点("+nodes[i].name+")请重新选择。", {icon: 0});
+								return false;
+							}//</c:if><c:if test="${not empty module && selectScopeModule}">
+							if (nodes[i].module == ""){
+								//top.$.jBox.tip("不能选择公共模型("+nodes[i].name+")请重新选择。");
+								top.layer.msg("不能选择公共模型("+nodes[i].name+")请重新选择。", {icon: 0});
+								return false;
+							}else if (nodes[i].module != "${module}"){
+								//top.$.jBox.tip("不能选择当前栏目以外的栏目模型,请重新选择。");
+								top.layer.msg("不能选择当前栏目以外的栏目模型,请重新选择。", {icon: 0});
+								return false;
+							}//</c:if>
+							ids.push(nodes[i].id);
+							names.push(nodes[i].name);//<c:if test="${!checked}">
+							break; // 如果为非复选框选择,则返回第一个选择  </c:if>
+						}
+						$("#${id}Id").val(ids.join(",").replace(/u_/ig,"")).change();
+						$("#${id}Name").val(names.join(",")).change();
+						$("#${id}Name").focus();
+						var rule="${rule}";
+						var id="${id}";
+						if(rule=='rule'){
+                            var _placeName =  id.split("_")[0]+"_placeName";
+                            var _itude =  id.split("_")[0]+"_itude";
+                            $("#"+_placeName).val("");
+                            $("#"+_itude).val("");
+						}
+						top.layer.close(index);
+				    	       },
+    	cancel: function(index){ //或者使用btn2
+    	           //按钮【按钮二】的回调
+    	       }
+		});
+
+	});
+</script>

ファイルの差分が大きいため隠しています
+ 1 - 0
src/main/webapp/static/layui/layuidown.css


ファイルの差分が大きいため隠しています
+ 5 - 0
src/main/webapp/static/layui/layuidown.js


+ 447 - 2
src/main/webapp/static/oss/ossupload.js

@@ -7,7 +7,7 @@ var requestUrl;
 var returnUrl;
 var str;
 
-function multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt) {
+/*function multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt) {
     console.log("-----------------------start");
     console.log("-----------------------"+realPath);
     requestUrl = realPath+"/a/previewController/getAccess";
@@ -32,8 +32,452 @@ function multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,upload
         });
         multitest(client, storeAs, file,attachmentId,attachmentFlag,uploadPath.replace('http://gangwan-app.oss-cn-hangzhou.aliyuncs.com', result.AliyunUrl),divId,size, cpt);
     })
+};*/
+function ftlUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt) {
+    console.log("-----------------------start");
+    ftlMultitest(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt);
+};
+
+function multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt) {
+    console.log("-----------------------start");
+    if(cpt == 1)
+        multitestFlag(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,"",prefix);
+    else
+        multitest(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt);
+};
+function multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,idx,prefix,currentUser) {
+    console.log("-----------------------start");
+    if(cpt == 1)
+        multitestFlag(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,idx,prefix,currentUser);
+    else
+        multitest(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,idx,prefix,currentUser);
+};
+
+function fBmultipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,idx,prefix,currentUser) {
+    console.log("-----------------------start");
+    if(cpt == 1)
+        fBmultitestFlag(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,idx,prefix,currentUser);
+    else
+        multitest(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt,idx,prefix,currentUser);
+};
+
+
+
+function ftlMultitest (storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt) {
+    var formdata = new FormData();
+    formdata.append("storeAs",storeAs);
+    formdata.append("file",file);
+    var names =  storeAs.split("/");
+    var name = names[names.length-1];
+    var fileLocation = "";
+    var lookUrl = "";
+    //获取文件存储位置(0:本地;1:百度云;2:阿里云)
+    $.ajax({
+        type:"get",
+        url:realPath+"/bos/getFileStorageLocation",
+        success:function(data){
+            fileLocation = data.fileLocation;
+        }
+    });
+    $.ajax({
+        type:'post',
+        url:realPath+"/bos/uploadFtl",
+        data:formdata,
+        contentType: false,
+        processData: false,
+        success:function (data1) {
+            if(data1.code==='1'){
+                returnUrl = realPath+"/sys/workattachment/saveAttachment";
+                var p = Math.floor(1*100);
+                $("#jindutiao"+divId).attr("style","width: "+p+"%");
+                $("#jindutiao"+divId).attr("aria-valuenow",p+"%");
+                $("#baifenbi"+divId).html(p+"%");
+                $("#fileName"+divId).html("上传进度:");
+
+
+                $.ajax({
+                    type:'post',
+                    url:returnUrl,
+                    data:{
+                        "attachmentName":data1.name,
+                        "attachmentId":attachmentId,
+                        "attachmentFlag":attachmentFlag,
+                        "url":data1.url,
+                        "divIdType":divId
+                    },
+                    success:function(data){
+                        console.log('url : ' + data.url);
+                        if(data.status=="Success"){
+                            parent.layer.msg("上传成功!",{icon:1});
+                            var lenght =$(".trIdAdds").length;
+                            if (size != 0){
+                                lenght += size;
+                            }
+                            var addFile = "addFile"+divId;
+                            var str = '<tr class="trIdAdds">'+
+                                '<td class="text-center">' ;
+                            if(2 == fileLocation){
+                                $.ajax({
+                                    type:"post",
+                                    async:false,
+                                    url:realPath+"/workfullmanage/workFullManage/getFileTemporaryLookUrl",
+                                    data:{"file":data.url,},
+                                    success:function(result){
+                                        lookUrl = result.lookUrl;
+                                        if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                            str = str +'<img src="'+lookUrl+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +lookUrl+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                        }else if(isContains("pdf",data.type)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                        }else {
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                        }
+                                    }
+                                });
+
+                            }else{
+                                if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                    str = str +'<img src="'+data.url+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +data.url+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                }else if(isContains("pdf",data.type)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                }else {
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                }
+                            }
+                            str = str +'</td>'+
+                                '<td >'+data.createByName+'</td>'+
+                                '<td >'+data.createDate+
+                                '<input name="workAttachments['+lenght+'].id" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value=""/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentId" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentId+'"/>'+
+                                '<input name="workAttachments['+lenght+'].url" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data1.url+'"/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentName" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data1.name+'"/>'+
+                                '<input name="workAttachments['+lenght+'].createBy.id" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.createBy+'"/>'+
+                                '<input name="workAttachments['+lenght+'].type" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.type+'"/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentFlag" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentFlag+'"/>'+
+                                '<input name="workAttachments['+lenght+'].divIdType" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.divIdType+'"/>'+
+                                '</td>'+
+                                '<td class="op-td">'+
+                                '<div class="op-btn-box">' +
+                                '<a href="'+data1.url+'" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>'+
+                                '<a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,\''+realPath+'/sys/workattachment/deleteFileFromAliyun?url='+data.url+'&id='+data.id+'&type=2\',\''+addFile+'\',\''+divId+'\')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>'+
+                                '</div>' +
+                                '</td>'+
+                                '</tr>';
+                            console.log("file:"+divId);
+                            console.log("str="+str);
+                            $("#file"+divId).append(str);
+                        }else {
+                            parent.layer.msg("上传失败!",{icon:2});
+                        }
+                    }
+                })
+            }else {
+                parent.layer.msg("上传失败!",{icon:2});
+            }
+        }
+    })
+};
+function fBmultitestFlag (storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt,idx,prefix,currentUser) {
+    var formdata = new FormData();
+    formdata.append("storeAs",storeAs);
+    formdata.append("file",file);
+    var names =  storeAs.split("/");
+    var name = names[names.length-1];
+    var fileLocation = "";
+    var lookUrl = "";
+    //获取文件存储位置(0:本地;1:百度云;2:阿里云)
+    $.ajax({
+        type:"get",
+        url:realPath+"/bos/getFileStorageLocation",
+        success:function(data){
+            fileLocation = data.fileLocation;
+        }
+    });
+    $.ajax({
+        type:'post',
+        url:realPath+"/bos/upload",
+        data:formdata,
+        contentType: false,
+        processData: false,
+        success:function (data1) {
+            if(data1.code==='1'){
+                returnUrl = realPath+"/sys/workattachment/saveAttachment";
+                $.ajax({
+                    type:'post',
+                    url:returnUrl,
+                    data:{
+                        "attachmentName":file['name'],
+                        "attachmentId":attachmentId,
+                        "attachmentFlag":attachmentFlag,
+                        "url":data1.url,
+                        "divIdType":divId
+                    },
+                    success:function(data){
+                        console.log('url : ' + data.url);
+                        if(data.status=="Success"){
+                            parent.layer.msg("上传成功!",{icon:1});
+                            var str = '' ;
+                            var addFile = prefix+divId;
+                            if(2 == fileLocation){
+                                $.ajax({
+                                    type:"post",
+                                    async:false,
+                                    url:realPath+"/workfullmanage/workFullManage/getFileTemporaryLookUrl",
+                                    data:{"file":data.url,},
+                                    success:function(result){
+                                        lookUrl = result.lookUrl;
+                                        if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                            str = str +'<img src="'+lookUrl+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +lookUrl+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                        }else if(isContains("pdf",data.type)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                        }else {
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                        }
+                                    }
+                                });
+
+                            }else{
+                                if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                    str = str +'<img src="'+data.url+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +data.url+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                }else if(isContains("pdf",data.type)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                }else {
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                }
+                            }
+                            $(prefix).parent().parent().find("td").eq(2).html(str)
+                            $(prefix).parent().parent().find("td").eq(0).find("input").eq(1).val(data.id)
+                            $(prefix).parent().parent().find("td").eq(0).find("input").eq(2).val(data.url)
+                            var d = new Date();
+                            var dateTime=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
+                            var result = '<a href="javascript:location.href=\''+realPath+'/a/workfullmanage/workFullManage/downLoadAttach?file=\'+encodeURIComponent(\''+data.url+'\');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>';
+                            var delResult =
+                                '<a href="javascript:void(0)" onclick="accordingBtn(this,\''+prefix+'\')" class=\"op-btn op-btn-edit" ><i class="fa fa-edit"></i>&nbsp;修改</a>';
+                            // $(prefix).parent().parent().find("td").eq(4).append(result)
+                        }else {
+                            parent.layer.msg("上传失败!",{icon:2});
+                        }
+                    }
+                })
+            }else {
+                parent.layer.msg("上传失败!",{icon:2});
+            }
+        }
+    })
+};
+
+function multitestFlag (storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt,idx,prefix,currentUser) {
+    var formdata = new FormData();
+    formdata.append("storeAs",storeAs);
+    formdata.append("file",file);
+    var names =  storeAs.split("/");
+    var name = names[names.length-1];
+    var fileLocation = "";
+    var lookUrl = "";
+    //获取文件存储位置(0:本地;1:百度云;2:阿里云)
+    $.ajax({
+        type:"get",
+        url:realPath+"/bos/getFileStorageLocation",
+        success:function(data){
+            fileLocation = data.fileLocation;
+        }
+    });
+    $.ajax({
+        type:'post',
+        url:realPath+"/bos/upload",
+        data:formdata,
+        contentType: false,
+        processData: false,
+        success:function (data1) {
+            if(data1.code==='1'){
+                returnUrl = realPath+"/sys/workattachment/saveAttachment";
+                $.ajax({
+                    type:'post',
+                    url:returnUrl,
+                    data:{
+                        "attachmentName":file['name'],
+                        "attachmentId":attachmentId,
+                        "attachmentFlag":attachmentFlag,
+                        "url":data1.url,
+                        "divIdType":divId
+                    },
+                    success:function(data){
+                        console.log('url : ' + data.url);
+                        if(data.status=="Success"){
+                            parent.layer.msg("上传成功!",{icon:1});
+                            var str = '' ;
+                            var addFile = prefix+divId;
+                            if(2 == fileLocation){
+                                $.ajax({
+                                    type:"post",
+                                    async:false,
+                                    url:realPath+"/workfullmanage/workFullManage/getFileTemporaryLookUrl",
+                                    data:{"file":data.url,},
+                                    success:function(result){
+                                        lookUrl = result.lookUrl;
+                                        if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                            str = str +'<img src="'+lookUrl+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +lookUrl+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                        }else if(isContains("pdf",data.type)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                        }else {
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                        }
+                                    }
+                                });
+
+                            }else{
+                                if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                    str = str +'<img src="'+data.url+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +data.url+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                }else if(isContains("pdf",data.type)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                }else {
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                }
+                            }
+                            $(prefix+"_fileTypeDiv").empty();
+                            $(prefix+"_fileTypeDiv").append(str);
+                            $(prefix+"_uploadUserName").html(currentUser);
+                            var d = new Date();
+                            var dateTime=d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
+                            $(prefix+"_uploadDate").html(dateTime);
+                            $(prefix+"_fileName").val(data.attachmentName);
+                            $(prefix+"_fileType").val(data.type);
+                            $(prefix+"_fileUrl").val(data.url);
+                            $(prefix+"_fileAttachmentFlag").val(data.attachmentFlag);
+                            $(prefix+"_fileAttachmentId").val(data.attachmentId);
+                            var result = '<a style="margin-top: 10px;" href="javascript:location.href=\''+realPath+'/a/workfullmanage/workFullManage/downLoadAttach?file=\'+encodeURIComponent(\''+data.url+'\');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>';
+                            var delResult =
+                                '<a href="javascript:void(0)" onclick="accordingBtn(this,\''+prefix+'\')" class=\"op-btn op-btn-edit" ><i class="fa fa-edit"></i>&nbsp;修改</a>';
+                            $(prefix+"_operation").empty();
+                            $(prefix+"_operation").append(delResult);
+                        }else {
+                            parent.layer.msg("上传失败!",{icon:2});
+                        }
+                    }
+                })
+            }else {
+                parent.layer.msg("上传失败!",{icon:2});
+            }
+        }
+    })
 };
 
+function multitest (storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt) {
+    var formdata = new FormData();
+    formdata.append("storeAs",storeAs);
+    formdata.append("file",file);
+    var names =  storeAs.split("/");
+    var name = names[names.length-1];
+    var fileLocation = "";
+    var lookUrl = "";
+    //获取文件存储位置(0:本地;1:百度云;2:阿里云)
+    $.ajax({
+        type:"get",
+        url:realPath+"/bos/getFileStorageLocation",
+        success:function(data){
+            fileLocation = data.fileLocation;
+        }
+    });
+    $.ajax({
+        type:'post',
+        url:realPath+"/bos/upload",
+        data:formdata,
+        contentType: false,
+        processData: false,
+        success:function (data1) {
+            if(data1.code==='1'){
+                returnUrl = realPath+"/sys/workattachment/saveAttachment";
+                var p = Math.floor(1*100);
+                $("#jindutiao"+divId).attr("style","width: "+p+"%");
+                $("#jindutiao"+divId).attr("aria-valuenow",p+"%");
+                $("#baifenbi"+divId).html(p+"%");
+                $("#fileName"+divId).html("上传进度:");
+                $.ajax({
+                    type:'post',
+                    url:returnUrl,
+                    async:false,
+                    data:{
+                        "attachmentName":file['name'],
+                        "attachmentId":attachmentId,
+                        "attachmentFlag":attachmentFlag,
+                        "url":data1.url,
+                        "divIdType":divId
+                    },
+                    success:function(data){
+                        // console.log('ajax requst : ' + data.status);
+                        console.log('url : ' + data.url);
+                        if(data.status=="Success"){
+                            parent.layer.msg("上传成功!",{icon:1});
+                            var lenght =$(".trIdAdds").length;
+                            if (size != 0){
+                                lenght += size;
+                            }
+                            var addFile = "addFile"+divId;
+                            var str = '<tr class="trIdAdds">'+
+                                '<td class="text-center">' ;
+                            if(2 == fileLocation){
+                                $.ajax({
+                                    type:"post",
+                                    async:false,
+                                    url:realPath+"/workfullmanage/workFullManage/getFileTemporaryLookUrl",
+                                    data:{"file":data.url,},
+                                    success:function(result){
+                                        lookUrl = result.lookUrl;
+                                        if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                            str = str +'<img src="'+lookUrl+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +lookUrl+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                        }else if(isContains("pdf",data.type)){
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                        }else {
+                                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+lookUrl+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                        }
+                                    }
+                                });
+
+                            }else{
+                                if (isContains("jpg,png,gif,bmp,jpeg",data.type)){
+                                    str = str +'<img src="'+data.url+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+realPath+ '/a/sys/picturepreview/picturePreview?url=' +data.url+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                }else if(isContains("pdf",data.type)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\',\'1\')">'+data.attachmentName+'</a>';
+                                }else {
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="preview(\'预览\',\''+data.url+'\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                }
+                            }
+                            str = str +'</td>'+
+                                '<td >'+data.createByName+'</td>'+
+                                '<td >'+data.createDate+
+                                '<input name="workAttachments['+lenght+'].id" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value=""/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentId" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentId+'"/>'+
+                                '<input name="workAttachments['+lenght+'].url" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data1.url+'"/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentName" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentName+'"/>'+
+                                '<input name="workAttachments['+lenght+'].createBy.id" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.createBy+'"/>'+
+                                '<input name="workAttachments['+lenght+'].type" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.type+'"/>'+
+                                '<input name="workAttachments['+lenght+'].attachmentFlag" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentFlag+'"/>'+
+                                '<input name="workAttachments['+lenght+'].divIdType" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.divIdType+'"/>'+
+                                '</td>'+
+                                '<td class="op-td">'+
+                                '<div class="op-btn-box">' +
+                                '<a href="javascript:location.href=\''+realPath+'/workfullmanage/workFullManage/downLoadAttach?file=\'+encodeURIComponent(\''+data.url+'\');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>'+
+                                //'<a href="'+data1.url+'" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>'+
+                                '<a href="javascript:void(0)" onclick="deleteFileFromAliyun(this,\''+realPath+'/sys/workattachment/deleteFileFromAliyun?url='+data.url+'&id='+data.id+'&type=2\',\''+addFile+'\',\''+divId+'\')" class="op-btn op-btn-delete" ><i class="fa fa-trash"></i>&nbsp;删除</a>'+
+                                '</div>' +
+                                '</td>'+
+                                '</tr>';
+                            console.log("file:"+divId);
+                            console.log("str="+str);
+                            $("#file"+divId).append(str);
+                            $("#flagFile").val(true);
+                        }else {
+                            parent.layer.msg("上传失败!",{icon:2});
+                        }
+                    }
+                })
+            }else {
+                parent.layer.msg("上传失败!",{icon:2});
+            }
+        }
+    })
+};
+
+/*
 function multitest (ossClient, storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt) {
     var names =  storeAs.split("/");
     var name = names[names.length-1];
@@ -128,7 +572,8 @@ function multitest (ossClient, storeAs, file,attachmentId,attachmentFlag,uploadP
         console.log(err);
         multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath, size,checkpoint_temp);
     });
-};
+};*/
+
 
 function isContains(str, substr) {
     return str.indexOf(substr) >= 0;

+ 6 - 6
src/main/webapp/webpage/include/head.jsp

@@ -88,18 +88,18 @@
         }
         else
         {
-            // document.write('<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"><\/script>');
+             document.write('<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"><\/script>');
             document.write('<script src="${ctxStatic}/bos/node_modules/@baiducloud/sdk/dist/baidubce-sdk.bundle.min.js"><\/script>');
-            <%--document.write('<script type="text/javascript" src="${ctxStatic}/oss/ossupload.js"><\/script>');--%>
-            document.write('<script type="text/javascript" src="${ctxStatic}/bos/bosupload.js"><\/script>');
+            document.write('<script type="text/javascript" src="${ctxStatic}/oss/ossupload.js"><\/script>');
+            /*document.write('<script type="text/javascript" src="${ctxStatic}/bos/bosupload.js"><\/script>');*/
         }
     }
     else
     {
-        // document.write('<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"><\/script>');
+         document.write('<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"><\/script>');
         document.write('<script src="${ctxStatic}/bos/node_modules/@baiducloud/sdk/dist/baidubce-sdk.bundle.min.js"><\/script>');
-        <%--document.write('<script type="text/javascript" src="${ctxStatic}/oss/ossupload.js"><\/script>');--%>
-        document.write('<script type="text/javascript" src="${ctxStatic}/bos/bosupload.js"><\/script>');
+        document.write('<script type="text/javascript" src="${ctxStatic}/oss/ossupload.js"><\/script>');
+        /*document.write('<script type="text/javascript" src="${ctxStatic}/bos/bosupload.js"><\/script>');*/
     }
 
     jQuery.validator.addMethod("isPhone", function(value, element) {

+ 2 - 1
src/main/webapp/webpage/modules/oa/oaNotifyAudit.jsp

@@ -391,7 +391,7 @@
                 <div class="form-group-label"><h2>审批意见</h2></div>
                 <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" />
+                        <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>
@@ -438,6 +438,7 @@
             var s=$("input[name='sh']").length;
             for(var i=0;i<s;i++){
                 $("input[name='sh']").attr("checked",false)
+                layui.form.render();
             }
             $("#opinion").val("");
         })

+ 11 - 3
src/main/webapp/webpage/modules/oa/oaNotifyListMyself.jsp

@@ -113,8 +113,13 @@
 					<div class="layui-item athird">
 						<div class="input-group">
 							<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
-							<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
-							<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							<div class="layui-btn-group search-spacing">
+								<button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
+								<button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
+							</div>
+<%--							<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>--%>
+<%--							<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>--%>
+<%--							<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>--%>
 						</div>
 					</div>
 					<div style="    clear:both;"></div>
@@ -164,7 +169,10 @@
 		<div class="full-width fl">
 			<div class="contentShadow layui-form contentDetails">
 				<div class="nav-btns">
-					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div class="layui-btn-group">
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+					</div>
+<%--					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>--%>
 					<div style="clear: both;"></div>
 				</div>
 				<table class="oa-table layui-table" id="contentTable"></table>

+ 11 - 3
src/main/webapp/webpage/modules/oa/oaNotifyListReadMyself.jsp

@@ -83,8 +83,13 @@
 					<div class="layui-item athird">
 						<div class="input-group">
 							<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
-							<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
-							<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+							<div class="layui-btn-group search-spacing">
+								<button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
+								<button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
+							</div>
+<%--							<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>--%>
+<%--							<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>--%>
+<%--							<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>--%>
 						</div>
 					</div>
 					<div style="    clear:both;"></div>
@@ -135,7 +140,10 @@
 		<div class="full-width fl">
 			<div class="contentShadow layui-form contentDetails">
 				<div class="nav-btns">
-					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div class="layui-btn-group">
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+					</div>
+<%--					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>--%>
 					<div style="clear: both;"></div>
 				</div>
 				<table class="oa-table layui-table" id="contentTable"></table>

+ 113 - 0
src/main/webapp/webpage/modules/projectAccessory/projectEngineering/projectEngineeringForm.jsp

@@ -0,0 +1,113 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>复核标准管理</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
+	<style>
+		label.error{
+			top:40px;
+			left:0;
+		}
+		#standardDetail-error{
+			top:82px;
+			left:0;
+		}
+	</style>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+			if(validateForm.form()){
+				$("#inputForm").submit();
+				return true;
+			}
+
+			return false;
+		}
+		$(document).ready(function() {
+			layui.use(['form', 'layer'], function () {
+				var form = layui.form;
+			});
+			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 edit = "${workReviewStandard.id}";
+			if(edit!=null && edit!=''){
+				$("#reviewParentButton").attr("disabled","disabled");
+			}
+		});
+	</script>
+</head>
+<body>
+<div class="single-form">
+	<div class="container">
+		<form:form id="inputForm" modelAttribute="projectEngineeringInfo" action="${ctx}/projectEngineering/projectEngineering/save" method="post" class="form-horizontal layui-form">
+			<form:hidden path="id"/>
+			<form:hidden path="companyId"/>
+			<div class="form-group layui-row first">
+				<div class="form-group-label"><h2>工程类型信息</h2></div>
+					<%--<div class="layui-item layui-col-sm6">
+                        <label class="layui-form-label double-line"><span class="require-item">*</span>附件类型:</label>
+                        <div class="layui-input-block">
+                            <input type="text" value="${projectAccessoryInfo.parent.parentName}" readonly="readonly" class="form-control layui-input">
+                        </div>
+                    </div>--%>
+
+				<div class="layui-item layui-col-sm6 ">
+					<label class="layui-form-label">上级类型:</label>
+					<div class="layui-input-block">
+						<select name="parent.id" class="form-control required simple-select">
+							<option value="0">添加父级</option>
+							<c:forEach items="${parentInfos}" var="info" varStatus="index">
+								<option value="${info.id}">${info.engineeringName}</option>
+							</c:forEach>
+							<c:if test="${null != parent.id}">
+								<option value="${parent.id}" selected>${parent.engineeringName}</option>
+							</c:if>
+						</select>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>工程类型名称:</label>
+					<div class="layui-input-block">
+						<form:input path="engineeringName" placeholder="请输入工程类型名称" htmlEscape="false" maxlength="100" class="form-control layui-input required"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6">
+					<label class="layui-form-label">序号:</label>
+					<div class="layui-input-block">
+						<form:input path="indexNum" readonly="true" htmlEscape="false" maxlength="10"  class="form-control number layui-input"/>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm12 with-textarea">
+					<label class="layui-form-label ">备注信息:</label>
+					<div class="layui-input-block">
+						<form:textarea path="remarks" placeholder="请输入备注信息" id="remarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>
+					</div>
+				</div>
+			</div>
+		</form:form>
+	</div>
+</div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+
+
+</script>
+</body>
+</html>

+ 124 - 0
src/main/webapp/webpage/modules/projectAccessory/projectEngineering/projectEngineeringList.jsp

@@ -0,0 +1,124 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>工程类型管理管理</title>
+    <meta name="decorator" content="default"/>
+    <%@include file="/webpage/include/treetable.jsp" %>
+    <script type="text/javascript">
+        $(document).ready(function() {
+            $("#treeTable").treeTable({expandLevel : 5},{ expandable: true });
+        });
+    </script>
+	<style>
+		body{
+			background-color:transparent;
+			filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#26FFFFFF, endColorstr=#26FFFFFF);
+			color:#ffffff;
+			background-color:rgba(255,255,255,0);
+			height:100%;
+		}
+	</style>
+</head>
+<body >
+	<div class="wrapper wrapper-content">
+		<sys:message content="${message}"/>
+		<div class="layui-row">
+			<div class="full-width fl">
+				<div class="contentShadow layui-row" id="queryDiv">
+				<form:form id="searchForm" modelAttribute="projectengineeringInfo" action="${ctx}/projectEngineering/projectEngineering" method="post" class="form-inline">
+					<div class="commonQuery">
+						<div class="layui-item query athird">
+							<label class="layui-form-label double-line">工程类型名:</label>
+							<div class="layui-input-block with-icon">
+								<form:input path="engineeringName" htmlEscape="false" class=" form-control layui-input"></form:input>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">序号:</label>
+							<div class="layui-input-block">
+								<form:input path="indexNum" htmlEscape="false" class=" form-control layui-input"></form:input>
+							</div>
+						</div>
+						<div class="layui-item athird">
+							<div class="input-group">
+								<div class="layui-btn-group search-spacing">
+									<button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
+									<button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
+								</div>
+<%--								<button id="searchReset" style="margin-right: 10px;" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>--%>
+<%--								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>--%>
+							</div>
+						</div>
+						<div style="    clear:both;"></div>
+					</div>
+
+					</form:form>
+				</div>
+			</div>
+			<div class="full-width fl">
+				<div class="contentShadow layui-form contentDetails">
+					<div class="nav-btns">
+							<div class="layui-btn-group">
+								<shiro:hasPermission name="projectEngineering:projectEngineering:add">
+									<a onclick="openDialog('添加工程类型', '${ctx}/projectEngineering/projectEngineering/form','80%','80%')" class="layui-btn layui-btn-sm layui-bg-blue"> 添加工程类型</a>
+								</shiro:hasPermission>
+								<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+							</div>
+						<div style="clear: both;"></div>
+					</div>
+
+	
+					<!-- 表格 -->
+					<table id="treeTable" class="table table-bordered table-hover list-table">
+						<thead>
+							<tr>
+								<th  width="30%">工程类型名称</th>
+								<th >序号</th>
+								<th width="240px">操作</th>
+							</tr>
+						</thead>
+						<tbody>
+						<c:forEach items="${list}" var="projectAccessory">
+							<tr id="${projectAccessory.id}" pid="${projectAccessory.parent.id}">
+								<td>
+									${projectAccessory.engineeringName}
+								</td>
+								<td style="text-align: center">
+									${projectAccessory.indexNum}
+								</td>
+								<td class="op-td text-center">
+									<div class="layui-btn-group">
+									<div class="op-btn-box">
+										<shiro:hasPermission name="projectEngineering:projectEngineering:add">
+											<a href="javascript:void(0);" onclick="openDialog('添加附件结构', '${ctx}/projectEngineering/projectEngineering/form?parent.id=${projectAccessory.id}','80%','80%')" class="layui-btn layui-btn-xs layui-bg-blue"> 添加下级结构</a>
+										</shiro:hasPermission>
+										<shiro:hasPermission name="projectEngineering:projectEngineering:edit">
+											<a href="javascript:void(0);" onclick="openDialog('修改附件结构', '${ctx}/projectEngineering/projectEngineering/form?id=${projectAccessory.id}','80%','80%')" class="layui-btn layui-btn-xs layui-bg-green" > 修改</a>
+										</shiro:hasPermission>
+										<shiro:hasPermission name="projectEngineering:projectEngineering:del">
+											<a href="${ctx}/projectEngineering/projectEngineering/delete?id=${projectAccessory.id}" onclick="return confirmx('确认要删除该工程类型结构及其子工程结构吗?', this.href)"   class="layui-btn layui-btn-xs layui-bg-red"> 删除</a>
+										</shiro:hasPermission>
+									</div>
+									</div>
+								</td>
+							</tr>
+						</c:forEach>
+						</tbody>
+					</table>
+	
+		<!-- 分页代码 -->
+	<%--<table:page page="${page}"></table:page>--%>
+
+				</div>
+			</div>
+		</div>
+</div>
+	<script>
+        resizeListWindow1();
+        $(window).resize(function(){
+            resizeListWindow1();
+        });
+	</script>
+</body>
+</html>

+ 6 - 4
src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchApply.jsp

@@ -9,6 +9,8 @@
 	<link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
 	<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>
 	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+	<%@include file="/webpage/include/treetable.jsp" %>
+
 	<script type="text/javascript">
 		var validateForm;
 		function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
@@ -26,10 +28,10 @@
 			// var ss=$(span).val().split(" ")[4];
 			$(span).toggle(function () {
 				$(tiao).hide();
-				$(span).find("span").attr("class","treeTable-icon")
+				$(span).find("span").eq(0).attr("class","default_shut")
 			},function () {
 				$(tiao).show();
-				$(span).find("span").attr("class","treeTable-icon open")
+				$(span).find("span").eq(0).attr("class","default_open")
 			});
 		}
 		function addRowInfoForm(obj,tbody) {
@@ -128,7 +130,7 @@
 							}
 							if(flag) {
 								$("#projectList").append("<tr class='rowSize' onclick='listTr(this)'>" +
-										"<td ><input type=\"hidden\" name=\"proId\" id='" + tid + "' value=" + obj.id + "><input type=\"hidden\" name=\"projectid\" value=" + obj.id + "/><span><i class=\"layui-icon layui-icon-triangle-d\"></i></span>" + obj.projectId + "</td>" +
+										"<td ><input type=\"hidden\" name=\"proId\" id='" + tid + "' value=" + obj.id + "><input type=\"hidden\" name=\"projectid\" value=" + obj.id + "/><span class='default_open ' style=\"padding-right: 15px; \"></span>" + obj.projectId + "</td>" +
 										"<td >" + obj.projectName + "</td>" +
 										"<td >" + obj.projectReportNumber + "</td>" +
 										"<td class=\"text-center op-td\" >" +
@@ -313,7 +315,7 @@
 			<div class="form-group layui-row  first">
 				<div class="form-group-label"><h2>项目基础信息</h2></div>
 				<div class="layui-item layui-col-xs12 form-table-container" style="padding:0px">
-				<table id="contentTable2" class="table table-bordered table-condensed details">
+				<table id="contentTable2" class="table table-bordered table-condensed details tree_table">
 					<thead>
 					<tr>
 <%--						<th class="hide"></th>--%>

+ 2 - 1
src/main/webapp/webpage/modules/projectFilingBatch/projectFilingBatchAudit.jsp

@@ -368,7 +368,7 @@
 				<div class="form-group-label"><h2>审批意见</h2></div>
 				<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" />
+						<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>
@@ -406,6 +406,7 @@
 			var s=$("input[name='sh']").length;
 			for(var i=0;i<s;i++){
 				$("input[name='sh']").attr("checked",false)
+				layui.form.render();
 			}
 			$("#opinion").val("");
 		})

+ 2 - 1
src/main/webapp/webpage/modules/projectcontentinfo/projectReportRecordAudit.jsp

@@ -509,7 +509,7 @@
 				<div class="form-group-label"><h2>审批意见</h2></div>
 				<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" />
+						<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>
@@ -558,6 +558,7 @@
 			var s=$("input[name='sh']").length;
 			for(var i=0;i<s;i++){
 				$("input[name='sh']").attr("checked",false)
+				layui.form.render();
 			}
 			$("#opinion").val("");
 		})

+ 1 - 1
src/main/webapp/webpage/modules/projectcontentinfo/projectReportRecordModifyApply.jsp

@@ -315,7 +315,7 @@
 				<div class="layui-item layui-col-sm12  with-textarea">
 					<label class="layui-form-label">说明:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入说明" path="remarks" htmlEscape="false" rows="4" maxlength="255" class="form-control "/>
+						<form:textarea placeholder="请输入说明:" path="remarks" htmlEscape="false" rows="4" maxlength="255" class="form-control "/>
 					</div>
 				</div>
 			</div>

+ 2 - 1
src/main/webapp/webpage/modules/projectrecord/projectRecordsAudit.jsp

@@ -35,6 +35,7 @@
 				var s=$("input[name='sh']").length;
 				for(var i=0;i<s;i++){
 					$("input[name='sh']").attr("checked",false)
+					layui.form.render();
 				}
 				$("#opinion").val("");
 			})
@@ -632,7 +633,7 @@
 				<div class="form-group-label"><h2>审批意见</h2></div>
 				<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" />
+						<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>

+ 1 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/check/all/ruralProjectRecordsAllForm.jsp

@@ -216,7 +216,7 @@
 				<div class="layui-item layui-col-sm12 lw6 with-textarea">
 					<label class="layui-form-label">选查要求:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入选查要求" path="checkRemarks" htmlEscape="false" rows="4" maxlength="255" class="form-control"/>
+						<form:textarea placeholder="请输入选查要求:" path="checkRemarks" htmlEscape="false" rows="4" maxlength="255" class="form-control"/>
 					</div>
 				</div>
 			</div>

+ 2 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/check/ruralProjectRecordsAudit.jsp

@@ -450,7 +450,7 @@
 				<div class="form-group-label"><h2>提交说明</h2></div>
 				<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" />
+						<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>
@@ -486,6 +486,7 @@
 						var s=$("input[name='sh']").length;
 						for(var i=0;i<s;i++){
 							$("input[name='sh']").attr("checked",false)
+							layui.form.render();
 						}
 						$("#opinion").val("");
 					})

+ 2 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/check/ruralProjectRecordsDownAudit.jsp

@@ -480,7 +480,7 @@
 				<div class="form-group-label"><h2>提交说明</h2></div>
 				<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" />
+						<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>
@@ -516,6 +516,7 @@
 						var s=$("input[name='sh']").length;
 						for(var i=0;i<s;i++){
 							$("input[name='sh']").attr("checked",false)
+							layui.form.render();
 						}
 						$("#opinion").val("");
 					})

+ 1 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectReportRecord/projectReportRecordForm.jsp

@@ -307,7 +307,7 @@
 				<div class="layui-item layui-col-sm12  with-textarea">
 					<label class="layui-form-label">说明:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入说明" path="remarks" htmlEscape="false" rows="4" maxlength="255" class="form-control "/>
+						<form:textarea placeholder="请输入说明:" path="remarks" htmlEscape="false" rows="4" maxlength="255" class="form-control "/>
 					</div>
 				</div>
 			</div>

+ 97 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/cost/projectcontentinfo/reportForm.jsp

@@ -906,10 +906,30 @@
 				<div class="layui-item layui-col-sm12 lw7 with-textarea">
 					<label class="layui-form-label double-line"><span class="require-item">*</span>专业咨询员审核意见:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入审核意见" path="projectReportData.consultantRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control re "/>
+						<div class="layui-item layui-col-sm6 lw7 with-textarea">
+							<div class="layui-input-block" style="margin-left:0px;position: relative">
+								<form:textarea placeholder="请输入审批意见:" path="projectReportData.consultantRemarks" id="zixunOpinion" class="form-control required" rows="4" cssStyle="height: 200px;" maxlength="255" />
+								<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="projectReportData.consultantRemarks" id="auditOpinion" lay-filter="zixunOpinion" lay-verify="zixunOpinion" class="form-control simple-select">
+										<form:option value=""/>
+										<form:options items="${fns:getMainDictListOnProjectAdvent('consultant_comments')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+									</form:select>
+								</div>
+							</div>
+						</div>
+<%--						<form:textarea placeholder="请输入审核意见" path="projectReportData.consultantRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control re "/>--%>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6 lw7">
+				<div class="layui-item layui-col-sm6 lw7" style="margin-top: 15px;">
 					<label class="layui-form-label"><span class="require-item">*</span>项目负责人:</label>
 					<div class="layui-input-block  with-icon">
 						<sys:reportedtreeselectUser id="principal" name="projectReportData.principal.id" value="${ruralProjectRecords.projectMasterId}" labelName="projectReportData.principal.name" labelValue="${projectRecords.projectMasterName}"
@@ -921,7 +941,27 @@
 				<div class="layui-item layui-col-sm12 lw7 with-textarea">
 					<label class="layui-form-label double-line">项目负责人审核意见:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入审核意见" path="projectReportData.principalRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>
+						<div class="layui-item layui-col-sm6 lw7 with-textarea">
+							<div class="layui-input-block" style="margin-left:0px;position: relative">
+								<form:textarea placeholder="请输入审批意见:" path="projectReportData.principalRemarks" id="fuzerenOpinion" class="form-control required" rows="4" cssStyle="height: 200px;" maxlength="255" />
+								<a id="clearOpinons" 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="raopinions" name="shs" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>
+								<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinions" name="shs" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>
+								<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinions" name="shs" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>
+								<div style="padding: 5px 0px;">
+									<form:select path="projectReportData.principalRemarks" id="auditOpinion" lay-filter="fuzerenOpinion" lay-verify="fuzerenOpinion" class="form-control simple-select">
+										<form:option value=""/>
+										<form:options items="${fns:getMainDictListOnProjectAdvent('person_audit_opinion')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+									</form:select>
+								</div>
+							</div>
+						</div>
+<%--						<form:textarea placeholder="请输入审核意见" path="projectReportData.principalRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>--%>
 					</div>
 				</div>
 			</div>
@@ -1298,6 +1338,60 @@
 		</form:form>
 	</div>
 </div>
+<script>
+	$(document).ready(function() {
+		$("#clearOpinon").click(function(){
+			var s=$("input[name='sh']").length;
+			for(var i=0;i<s;i++){
+				$("input[name='sh']").attr("checked",false)
+				layui.form.render();
+			}
+			$("#zixunOpinion").val("");
+		})
+		$("#clearOpinons").click(function(){
+			var s=$("input[name='shs']").length;
+			for(var i=0;i<s;i++){
+				$("input[name='shs']").attr("checked",false)
+				layui.form.render();
+			}
+			$("#fuzerenOpinion").val("");
+		})
+		layui.use(['form', 'layer'], function () {
+			var form = layui.form;
+			//下拉框监听器
+			layui.form.on('select(zixunOpinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					var opinion=$("#zixunOpinion").val()+span+";"
+					$("#zixunOpinion").val(opinion);
+				}
+			});
+			layui.form.on('checkbox(raopinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					$(this).attr("checked",false)
+					var opinion=$("#zixunOpinion").val()+span+";"
+					$("#zixunOpinion").val(opinion);
+				}
+			});
+			layui.form.on('select(fuzerenOpinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					var opinion=$("#fuzerenOpinion").val()+span+";"
+					$("#fuzerenOpinion").val(opinion);
+				}
+			});
+			layui.form.on('checkbox(raopinions)', function(data){
+				var span=data.value;
+				if(span!=""){
+					$(this).attr("checked",false)
+					var opinion=$("#fuzerenOpinion").val()+span+";"
+					$("#fuzerenOpinion").val(opinion);
+				}
+			});
+		});
+	})
+</script>
 <script type="text/javascript">
 	var workClientBankRowIdx = 0,
 			workClientBankTpl = $("#workClientBankTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, "");

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

@@ -818,20 +818,60 @@
 				<div class="layui-item layui-col-sm12 lw7 with-textarea">
 					<label class="layui-form-label double-line">专业咨询员审核意见:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入审核意见" path="projectReportData.consultantRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>
+						<div class="layui-item layui-col-sm6 lw7 with-textarea">
+							<div class="layui-input-block" style="margin-left:0px;position: relative">
+								<form:textarea placeholder="请输入审批意见:" path="projectReportData.consultantRemarks" id="zixunOpinion" class="form-control required" rows="4" cssStyle="height: 200px;" maxlength="255" />
+								<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="projectReportData.consultantRemarks" id="auditOpinion" lay-filter="zixunOpinion" lay-verify="zixunOpinion" class="form-control simple-select">
+										<form:option value=""/>
+										<form:options items="${fns:getMainDictListOnProjectAdvent('consultant_comments')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+									</form:select>
+								</div>
+							</div>
+						</div>
+<%--						<form:textarea placeholder="请输入审核意见" path="projectReportData.consultantRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>--%>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm6 lw7">
+				<div class="layui-item layui-col-sm6 lw7" style="margin-top: 15px;">
 					<label class="layui-form-label"><span class="require-item">*</span>项目负责人:</label>
 					<div class="layui-input-block  with-icon">
-						<sys:reportedtreeselectUser id="principal" name="projectReportData.principal.id" value="${ruralProjectRecords.projectMasterId}" labelName="projectReportData.principal.name" labelValue="${projectRecords.projectMasterName}"
+						<sys:reportedtreeselectUser id="principal" name="projectReportData.principal.id" value="${projectReportData.principal.id}" labelName="projectReportData.principal.name" labelValue="${projectReportData.principal.name}"
 									cssStyle="background-color:#fff"	title="用户" url="/sys/office/treeDataAll?type=4" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm12 lw7 with-textarea">
 					<label class="layui-form-label double-line">项目负责人审核意见:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入审核意见" path="projectReportData.principalRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>
+						<div class="layui-item layui-col-sm6 lw7 with-textarea">
+							<div class="layui-input-block" style="margin-left:0px;position: relative">
+								<form:textarea placeholder="请输入审批意见:" path="projectReportData.principalRemarks" id="fuzerenOpinion" class="form-control required" rows="4" cssStyle="height: 200px;" maxlength="255" />
+								<a id="clearOpinons" 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="raopinions" name="shs" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>
+								<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinions" name="shs" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>
+								<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinions" name="shs" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>
+								<div style="padding: 5px 0px;">
+									<form:select path="projectReportData.principalRemarks" id="auditOpinion" lay-filter="fuzerenOpinion" lay-verify="fuzerenOpinion" class="form-control simple-select">
+										<form:option value=""/>
+										<form:options items="${fns:getMainDictListOnProjectAdvent('person_audit_opinion')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+									</form:select>
+								</div>
+							</div>
+						</div>
+<%--						<form:textarea placeholder="请输入审核意见" path="projectReportData.principalRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control "/>--%>
 					</div>
 				</div>
 			</div>
@@ -1218,6 +1258,60 @@
 	</div>
 </div>
 <script>
+	$(document).ready(function() {
+		$("#clearOpinon").click(function(){
+			var s=$("input[name='sh']").length;
+			for(var i=0;i<s;i++){
+				$("input[name='sh']").attr("checked",false)
+				layui.form.render();
+			}
+			$("#zixunOpinion").val("");
+		})
+		$("#clearOpinons").click(function(){
+			var s=$("input[name='shs']").length;
+			for(var i=0;i<s;i++){
+				$("input[name='shs']").attr("checked",false)
+				layui.form.render();
+			}
+			$("#fuzerenOpinion").val("");
+		})
+		layui.use(['form', 'layer'], function () {
+			var form = layui.form;
+			//下拉框监听器
+			layui.form.on('select(zixunOpinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					var opinion=$("#zixunOpinion").val()+span+";"
+					$("#zixunOpinion").val(opinion);
+				}
+			});
+			layui.form.on('checkbox(raopinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					$(this).attr("checked",false)
+					var opinion=$("#zixunOpinion").val()+span+";"
+					$("#zixunOpinion").val(opinion);
+				}
+			});
+			layui.form.on('select(fuzerenOpinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					var opinion=$("#fuzerenOpinion").val()+span+";"
+					$("#fuzerenOpinion").val(opinion);
+				}
+			});
+			layui.form.on('checkbox(raopinions)', function(data){
+				var span=data.value;
+				if(span!=""){
+					$(this).attr("checked",false)
+					var opinion=$("#fuzerenOpinion").val()+span+";"
+					$("#fuzerenOpinion").val(opinion);
+				}
+			});
+		});
+	})
+</script>
+<script>
 	function openBill2(title,url,width,height,target,formId,tableId){
 		var rows = $(this).parent().prevAll().length + 1;
 		var frameIndex = parent.layer.getFrameIndex(window.name);

ファイルの差分が大きいため隠しています
+ 42 - 6
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectMessageLists.jsp


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

@@ -6,8 +6,8 @@
     <meta name="decorator" content="default"/>
     <script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.js"></script>
     <script type="text/javascript" src="${ctxStatic}/iCheck/icheck.min.js"></script>
-    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
-    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
     <link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
     <style>
         #projectDesc-error{
@@ -93,6 +93,20 @@
             }
             layui.use(['form', 'layer'], function () {
                 var form = layui.form;
+                //自动选择合同状态
+                if ($("#projectName").val() != "") {
+                    if ($("#contractName").val() == "") {
+                        $("#ext1").attr("checked",true);
+                        $("#divv").hide();
+                        $("#divv3").hide();
+                        form.render();
+                    }else{
+                        $("#ext").attr("checked",true);
+                        $("#divv").show();
+                        $("#divv3").show();
+                        form.render();
+                    }
+                }
                 //有无合同监听器
                 layui.form.on('radio(ext)', function(data){
                     var span=data.value;
@@ -117,6 +131,25 @@
                         $("#divv3").hide();
                     }
                 });
+                $.ajax({
+                    type : "POST",
+                    url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+                    //请求成功
+                    success : function(result) {
+                        var s='{"title": "menu item 4","id": "4"}'
+                        var str=jQuery.parseJSON(result);
+                        //工程类型树形菜单
+                        layui.dropdown.render({
+                            elem: '#demo100'
+                            ,style: 'width: 450px;'
+                            ,data:str
+                            ,click: function(item){
+                                $("#demo100").find("span").html(item.title)
+                                $("#demo100").find("#engineeringType").val(item.id)
+                            }
+                        });
+                    }
+                });
             });
             var radioVal ;
             validateForm = $("#inputForm").validate({
@@ -235,18 +268,7 @@
                 type : 'date'
 , trigger: 'click'
             });
-            //自动选择合同状态
-            if ($("#projectName").val() != "") {
-                if ($("#contractName").val() == "") {
-                    $("#ext1").attr("checked",true);
-                    $("#divv").hide();
-                    $("#divv3").hide();
-                }else{
-                    $("#ext").attr("checked",true);
-                    $("#divv").show();
-                    $("#divv3").show();
-                }
-            }
+
         });
 
 
@@ -761,7 +783,7 @@
                        <div class="layui-item layui-col-sm6 lw7">
                            <label class="layui-form-label">合同类型:</label>
                            <div class="layui-input-block">
-                               <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${ruralProjectRecords.workContractInfo.constructionProjectTypeStr}"/>
+                               <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${fns:getMainDictLabel(ruralProjectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
                            </div>
                        </div>
                    </div>
@@ -878,6 +900,32 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">工程类型:</label>
+                    <div class="layui-input-block">
+<%--                        <select name="engineeringType">--%>
+<%--                            <option value=""></option>--%>
+<%--                            <c:forEach items="${engineeringInfo}" varStatus="index" var="info">--%>
+<%--                                <option value="${info.id}" <c:if test="${info.id == ruralProjectRecords.engineeringType}"> selected</c:if>>${info.engineeringName}</option>--%>
+<%--                            </c:forEach>--%>
+<%--                        </select>--%>
+                        <button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">
+                            <span>${engineeringInfo.engineeringName}</span>
+                            <input type="hidden" name="engineeringType" id="engineeringType" value="${engineeringInfo.engineeringName}"/>
+                            <i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>
+                        </button>
+                    </div>
+                </div>
+
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>送审金额:</label>
+                    <div class="layui-input-block">
+                        <form:select path="submitMoney" class="form-control required simple-select">
+                            <form:option value=""/>
+                            <form:options items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作开始日期:</label>
                     <div class="layui-input-block">
                         <input class="laydate-icondate form-control layui-input layer-date laydate-icon" style="background-color: #fff" readonly="readonly" id="startDate" name="startDate" placeholder="请选择开始日期" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">

+ 49 - 1
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsList.jsp

@@ -4,9 +4,32 @@
 <head>
 	<title>项目登记</title>
 	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
 	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
 	<script type="text/javascript">
         $(document).ready(function() {
+			layui.use(['dropdown', 'util', 'layer'], function () {
+				var form = layui.form;
+				$.ajax({
+					type : "POST",
+					url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+					//请求成功
+					success : function(result) {
+						var str=jQuery.parseJSON(result);
+						//工程类型树形菜单
+						layui.dropdown.render({
+							elem: '#demo100'
+							,style: 'width: 320px;'
+							,data:str
+							,click: function(item){
+								$("#demo100").val(item.title)
+								$("#demo101").val(item.id)
+							}
+						});
+					}
+				});
+			})
 
             //搜索框收放
             $('#moresee').click(function(){
@@ -392,6 +415,31 @@
 								</form:select>
 							</div>
 						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">工程类型:</label>
+							<div class="layui-input-block">
+								<input id="demo100" value="${engineeringInfo.engineeringName}" readonly="true" style="background-color: #fff" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+								<form:input id="demo101" path="engineeringType" readonly="true" cssStyle="background-color: #fff;display: none"  htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+<%--								<button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">--%>
+<%--									<span>${engineeringInfo.engineeringName}</span>--%>
+<%--									<input type="hidden" name="engineeringType" id="engineeringType" value="${engineeringInfo.engineeringName}"/>--%>
+<%--									<i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>--%>
+<%--								</button>--%>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">报告号:</label>
+							<div class="layui-input-block">
+								<form:input path="reportData.number" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">部门:</label>
+							<div class="layui-input-block with-icon">
+								<sys:treeselect id="officeId" name="office.id" value="${ruralProjectRecords.office.id}" labelName="office.name" labelValue="${ruralProjectRecords.office.name}"
+												title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+							</div>
+						</div>
 						<div style="clear:both;"></div>
 					</div>
 				</form:form>
@@ -441,7 +489,7 @@
 	<div id="changewidth"></div>
 </div>
 
-<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<%--<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>--%>
 <script>
 
     layui.use('table', function(){

+ 73 - 17
src/main/webapp/webpage/modules/ruralprojectrecords/cost/ruralCostProjectRecordsModify.jsp

@@ -4,8 +4,8 @@
 <head>
 	<title>项目管理</title>
 	<meta name="decorator" content="default"/>
-    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
-    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
 	<script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.js"></script>
 	<link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
     <style>
@@ -83,6 +83,20 @@
             }
             layui.use(['form', 'layer'], function () {
                 var form = layui.form;
+                //自动选择合同状态
+                if ($("#projectName").val() != "") {
+                    if ($("#contractName").val() == "") {
+                        $("#ext1").attr("checked",true);
+                        $("#divv").hide();
+                        $("#divv3").hide();
+                        form.render();
+                    }else{
+                        $("#ext").attr("checked",true);
+                        $("#divv").show();
+                        $("#divv3").show();
+                        form.render();
+                    }
+                }
                 //有无合同监听器
                 layui.form.on('radio(ext)', function(data){
                     var span=data.value;
@@ -107,6 +121,25 @@
                         $("#divv3").hide();
                     }
                 });
+                $.ajax({
+                    type : "POST",
+                    url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+                    //请求成功
+                    success : function(result) {
+                        var s='{"title": "menu item 4","id": "4"}'
+                        var str=jQuery.parseJSON(result);
+                        //工程类型树形菜单
+                        layui.dropdown.render({
+                            elem: '#demo100'
+                            ,style: 'width: 450px;'
+                            ,data:str
+                            ,click: function(item){
+                                $("#demo100").find("span").html(item.title)
+                                $("#demo100").find("#engineeringType").val(item.id)
+                            }
+                        });
+                    }
+                });
             });
             var radioVal ;
             validateForm = $("#inputForm").validate({
@@ -163,18 +196,7 @@
                 }
             });
 
-            //自动选择合同状态
-            if ($("#projectName").val() != "") {
-                if ($("#contractName").val() == "") {
-                    $("#ext1").attr("checked",true);
-                    $("#divv").hide();
-                    $("#divv3").hide();
-                }else{
-                    $("#ext").attr("checked",true);
-                    $("#divv").show();
-                    $("#divv3").show();
-                }
-            }
+
 
             <%--$('#scaleType').editableSelect({--%>
                 <%--effects: 'slide'--%>
@@ -747,9 +769,11 @@
                     </div>
                     <div id="divv3">
                         <div class="layui-item layui-col-sm6 lw7">
-                            <label class="layui-form-label">工程分类:</label>
+                            <label class="layui-form-label">合同分类:</label>
                             <div class="layui-input-block">
-                                <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>
+                                <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+
+<%--                                <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
                             </div>
                         </div>
                     </div>
@@ -872,7 +896,7 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
-                    <label class="layui-form-label"><span class="require-item">*</span>项目责人:</label>
+                    <label class="layui-form-label"><span class="require-item">*</span>项目责人:</label>
                     <div class="layui-input-block  with-icon">
                         <sys:inquireselectUser id="master" name="projectLeaders" value="${projectRecords.leaderIds}" labelName="leaderNameStr" labelValue="${projectRecords.leaderNameStr}"
                                        cssStyle="background-color:#fff"  title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true"/>
@@ -885,6 +909,38 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">项目负责人:</label>
+                    <div class="layui-input-block  with-icon">
+                        <sys:reportedtreeselectUser id="projectMaster" name="projectMasterId" value="${ruralProjectRecords.projectMasterId}" labelName="projectMasterName" labelValue="${ruralProjectRecords.projectMasterName}"
+                                                    cssStyle="background-color:#fff" title="项目负责人" url="/sys/office/treeDataAll?type=4" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">工程类型:</label>
+                    <div class="layui-input-block">
+<%--                        <select name="engineeringType">--%>
+<%--                            <option value=""></option>--%>
+<%--                            <c:forEach items="${engineeringInfo}" varStatus="index" var="info">--%>
+<%--                                <option value="${info.id}" <c:if test="${info.id == projectRecords.engineeringType}"> selected</c:if>>${info.engineeringName}</option>--%>
+<%--                            </c:forEach>--%>
+<%--                        </select>--%>
+                        <button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">
+                            <span>${engInfo.engineeringName}</span>
+                            <input type="hidden" name="engineeringType" id="engineeringType" value="${engInfo.id}"/>
+                            <i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>
+                        </button>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>送审金额:</label>
+                    <div class="layui-input-block">
+                        <form:select path="submitMoney" class="form-control required simple-select">
+                            <form:option value=""/>
+                            <form:options items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作开始日期:</label>
                     <div class="layui-input-block">
                         <input placeholder="请选择开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">

+ 23 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsAudit.jsp

@@ -168,7 +168,7 @@
 					<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(ruralProjectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+							<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>
@@ -270,6 +270,25 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程类型:</label>
+					<div class="layui-input-block">
+						<c:forEach items="${engineeringInfo}" varStatus="index" var="info">
+							<c:if test="${info.id == projectRecords.engineeringType}"><input htmlEscape="false" readonly="true" id="engineeringType" class="form-control layui-input"  value="${info.engineeringName}"/></c:if>
+						</c:forEach>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label"><span class="require-item">*</span>送审金额:</label>
+					<div class="layui-input-block">
+<%--						<form:select path="submitMoney" disabled="true" class="form-control required simple-select">--%>
+<%--							<form:option value=""/>--%>
+<%--							<form:options items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" itemLabel="label" itemValue="value" htmlEscape="false"/>--%>
+<%--						</form:select>--%>
+						<input class=" form-control layui-input " readonly="true" id="startDate" name="startDate" value="${projectRecords.submitMoney}"/>
+
+					</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"/>">
@@ -287,7 +306,7 @@
 						<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 lw7">
+				<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}"/>
@@ -674,7 +693,7 @@
 				<div class="form-group-label"><h2>审批意见</h2></div>
 				<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" />
+						<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>
@@ -713,6 +732,7 @@
 							var s=$("input[name='sh']").length;
 							for(var i=0;i<s;i++){
 								$("input[name='sh']").attr("checked",false)
+								layui.form.render();
 							}
 							$("#opinion").val("");
 						})

+ 68 - 17
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsForm.jsp

@@ -6,8 +6,8 @@
     <meta name="decorator" content="default"/>
     <script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.js"></script>
     <script type="text/javascript" src="${ctxStatic}/iCheck/icheck.min.js"></script>
-    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
-    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
     <link rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
     <style>
         #projectDesc-error{
@@ -100,8 +100,26 @@
                 ccname=$("#contractClientName").val();
                 cptype=$("#constructionProjectType").val();
             }
-            layui.use(['form', 'layer'], function () {
+            layui.use(['dropdown', 'util','form', 'layer'], function () {
                 var form = layui.form;
+                var dropdown = layui.dropdown
+                    ,util = layui.util
+                    ,layer = layui.layer
+                    ,$ = layui.jquery;
+                //自动选择合同状态
+                if ($("#projectName").val() != "") {
+                    if ($("#contractName").val() == "") {
+                        $("#ext1").attr("checked",true);
+                        $("#divv").hide();
+                        $("#divv3").hide();
+                        form.render();
+                    }else{
+                        $("#ext").attr("checked",true);
+                        $("#divv").show();
+                        $("#divv3").show();
+                        form.render();
+                    }
+                }
                 //有无合同监听器
                 layui.form.on('radio(ext)', function(data){
                     var span=data.value;
@@ -125,6 +143,25 @@
                         $("#divv3").hide();
                     }
                 });
+                $.ajax({
+                    type : "POST",
+                    url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+                    //请求成功
+                    success : function(result) {
+                        var s='{"title": "menu item 4","id": "4"}'
+                        var str=jQuery.parseJSON(result);
+                        //工程类型树形菜单
+                        layui.dropdown.render({
+                            elem: '#demo100'
+                            ,style: 'width: 450px;'
+                            ,data:str
+                            ,click: function(item){
+                                $("#demo100").find("span").html(item.title)
+                                $("#demo100").find("#engineeringType").val(item.id)
+                            }
+                        });
+                    }
+                });
             });
             var radioVal ;
             validateForm = $("#inputForm").validate({
@@ -190,19 +227,7 @@
                 }
             });
 
-            //自动选择合同状态
-            var s=$("#projectName").val()
-            if ($("#projectName").val() != "") {
-                if ($("#contractName").val() == "") {
-                    $("#ext1").attr("checked",true);
-                    $("#divv").hide();
-                    $("#divv3").hide();
-                }else{
-                    $("#ext").attr("checked",true);
-                    $("#divv").show();
-                    $("#divv3").show();
-                }
-            }
+
 
 
             $('#areaId').on("change", function () {
@@ -781,7 +806,8 @@
                        <div class="layui-item layui-col-sm6 lw7">
                            <label class="layui-form-label">合同类型:</label>
                            <div class="layui-input-block">
-                               <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${ruralProjectRecords.workContractInfo.constructionProjectTypeStr}"/>
+                               <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${fns:getMainDictLabel(ruralProjectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+<%--                               <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${ruralProjectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
                            </div>
                        </div>
                    </div>
@@ -890,6 +916,31 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">工程类型:</label>
+                    <div class="layui-input-block">
+<%--                        <select name="engineeringType">--%>
+<%--                            <option value=""></option>--%>
+<%--                            <c:forEach items="${engineeringInfo}" varStatus="index" var="info">--%>
+<%--                                <option value="${info.id}" <c:if test="${info.id == ruralProjectRecords.engineeringType}"> selected</c:if>>${info.engineeringName}</option>--%>
+<%--                            </c:forEach>--%>
+<%--                        </select>--%>
+                        <button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">
+                            <span>${engineeringInfo.engineeringName}</span>
+                            <input type="hidden" name="engineeringType" id="engineeringType" value="${engineeringInfo.id}"/>
+                            <i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>
+                        </button>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>送审金额:</label>
+                    <div class="layui-input-block">
+                        <form:select path="submitMoney" class="form-control required simple-select">
+                            <form:option value=""/>
+                            <form:options items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作开始日期:</label>
                     <div class="layui-input-block">
                         <input placeholder="请选择开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">

+ 49 - 2
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsList.jsp

@@ -4,10 +4,32 @@
 <head>
 	<title>项目登记</title>
 	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
 	<%--<script src="${ctxStatic}/layer-v2.3/laydate/laydate.js"></script>--%>
 	<script type="text/javascript">
         $(document).ready(function() {
-
+			layui.use(['dropdown', 'util', 'layer'], function () {
+				var form = layui.form;
+				$.ajax({
+					type : "POST",
+					url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+					//请求成功
+					success : function(result) {
+						var str=jQuery.parseJSON(result);
+						//工程类型树形菜单
+						layui.dropdown.render({
+							elem: '#demo100'
+							,style: 'width: 320px;'
+							,data:str
+							,click: function(item){
+								$("#demo100").val(item.title)
+								$("#demo101").val(item.id)
+							}
+						});
+					}
+				});
+			})
             //搜索框收放
             $('#moresee').click(function(){
                 if($('#moresees').is(':visible'))
@@ -364,6 +386,31 @@
 								</form:select>
 							</div>
 						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">工程类型:</label>
+							<div class="layui-input-block">
+								<input id="demo100" value="${engineeringInfo.engineeringName}" readonly="true" style="background-color: #fff" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+								<form:input id="demo101" path="engineeringType" readonly="true" cssStyle="background-color: #fff;display: none"  htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+									<%--								<button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">--%>
+									<%--									<span>${engineeringInfo.engineeringName}</span>--%>
+									<%--									<input type="hidden" name="engineeringType" id="engineeringType" value="${engineeringInfo.engineeringName}"/>--%>
+									<%--									<i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>--%>
+									<%--								</button>--%>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">报告号:</label>
+							<div class="layui-input-block">
+								<form:input path="reportData.number" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">部门:</label>
+							<div class="layui-input-block with-icon">
+								<sys:treeselect id="officeId" name="office.id" value="${ruralProjectRecords.office.id}" labelName="office.name" labelValue="${ruralProjectRecords.office.name}"
+												title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+							</div>
+						</div>
 						<div style="clear:both;"></div>
 					</div>
 				</form:form>
@@ -408,7 +455,7 @@
 	<div id="changewidth"></div>
 </div>
 
-<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<%--<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>--%>
 <script>
 
     layui.use('table', function(){

+ 67 - 17
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsModify.jsp

@@ -5,8 +5,10 @@
 	<title>项目管理</title>
 	<meta name="decorator" content="default"/>
 	<script type="text/javascript" src="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.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 rel='stylesheet' type="text/css" href="${ctxStatic}/layui/layuidown.css"/>
+    <script type="text/javascript" src="${ctxStatic}/layui/layuidown.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 rel='stylesheet' type="text/css" href="${ctxStatic}/helloweba_editable-select/jquery.editable-select.min.css"/>
     <style>
         #projectDesc-error{
@@ -83,6 +85,20 @@
             }
             layui.use(['form', 'layer'], function () {
                 var form = layui.form;
+                //自动选择合同状态
+                if ($("#projectName").val() != "") {
+                    if ($("#contractName").val() == "") {
+                        $("#ext1").attr("checked",true);
+                        $("#divv").hide();
+                        $("#divv3").hide();
+                        form.render();
+                    }else{
+                        $("#ext").attr("checked",true);
+                        $("#divv").show();
+                        $("#divv3").show();
+                        form.render();
+                    }
+                }
                 //有无合同监听器
                 layui.form.on('radio(ext)', function(data){
                     var span=data.value;
@@ -107,6 +123,25 @@
                         $("#divv3").hide();
                     }
                 });
+                $.ajax({
+                    type : "POST",
+                    url : "${ctx}/ruralProject/ruralProjectRecords/engineeringTreeMenu",
+                    //请求成功
+                    success : function(result) {
+                        var s='{"title": "menu item 4","id": "4"}'
+                        var str=jQuery.parseJSON(result);
+                        //工程类型树形菜单
+                        layui.dropdown.render({
+                            elem: '#demo100'
+                            ,style: 'width: 450px;'
+                            ,data:str
+                            ,click: function(item){
+                                $("#demo100").find("span").html(item.title)
+                                $("#demo100").find("#engineeringType").val(item.id)
+                            }
+                        });
+                    }
+                });
             });
             var radioVal ;
             validateForm = $("#inputForm").validate({
@@ -165,18 +200,7 @@
                 }
             });
 
-            //自动选择合同状态
-            if ($("#projectName").val() != "") {
-                if ($("#contractName").val() == "") {
-                    $("#ext1").attr("checked",true);
-                    $("#divv").hide();
-                    $("#divv3").hide();
-                }else{
-                    $("#ext").attr("checked",true);
-                    $("#divv").show();
-                    $("#divv3").show();
-                }
-            }
+
 
             <%--$('#scaleType').editableSelect({--%>
                 <%--effects: 'slide'--%>
@@ -737,9 +761,10 @@
                     </div>
                     <div id="divv3">
                         <div class="layui-item layui-col-sm6 lw7">
-                            <label class="layui-form-label">工程分类:</label>
+                            <label class="layui-form-label">合同类型:</label>
                             <div class="layui-input-block">
-                                <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>
+                                <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+<%--                                <input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${projectRecords.workContractInfo.constructionProjectTypeStr}"/>--%>
                             </div>
                         </div>
                     </div>
@@ -875,7 +900,7 @@
                     </div>
                 </div>
 
-                <div class="layui-item layui-col-sm6 lw6">
+                <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label">项目负责人:</label>
                     <div class="layui-input-block  with-icon">
                         <sys:reportedtreeselectUser id="projectMaster" name="projectMasterId" value="${projectRecords.projectMasterId}" labelName="projectMasterName" labelValue="${projectRecords.projectMasterName}" cssStyle="background-color: #fff"
@@ -883,6 +908,31 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label">工程类型:</label>
+                    <div class="layui-input-block">
+<%--                        <select name="engineeringType">--%>
+<%--                            <option value=""></option>--%>
+<%--                            <c:forEach items="${engineeringInfo}" varStatus="index" var="info">--%>
+<%--                                <option value="${info.id}" <c:if test="${info.id == projectRecords.engineeringType}"> selected</c:if>>${info.engineeringName}</option>--%>
+<%--                            </c:forEach>--%>
+<%--                        </select>--%>
+                        <button type="button" class="layui-btn layui-btn-primary" style="width: 100%;text-align: left" id="demo100">
+                            <span>${engInfo.engineeringName}</span>
+                            <input type="hidden" name="engineeringType" id="engineeringType" value="${engInfo.id}"/>
+                            <i class="layui-icon layui-icon-down layui-font-12" style="float: right"></i>
+                        </button>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
+                    <label class="layui-form-label"><span class="require-item">*</span>送审金额:</label>
+                    <div class="layui-input-block">
+                        <form:select path="submitMoney" class="form-control required simple-select">
+                            <form:option value=""/>
+                            <form:options items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                        </form:select>
+                    </div>
+                </div>
+                <div class="layui-item layui-col-sm6 lw7">
                     <label class="layui-form-label double-line">工作开始日期:</label>
                     <div class="layui-input-block">
                         <input placeholder="请选择开始日期" style="background-color: #fff" class="laydate-icondate form-control layui-input layer-date laydate-icon" readonly="readonly" id="startDate" name="startDate" value="<fmt:formatDate value="${projectRecords.startDate}" pattern="yyyy-MM-dd"/>">

+ 11 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsShowFinishList.jsp

@@ -79,8 +79,13 @@
 						<div class="layui-item athird">
 							<div class="input-group">
 								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
-								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
-								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+								<div class="layui-btn-group search-spacing">
+									<button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
+									<button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
+								</div>
+<%--								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>--%>
+<%--								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>--%>
+<%--								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>--%>
 							</div>
 						</div>
 						<div style="    clear:both;"></div>
@@ -133,7 +138,10 @@
 		<div class="full-width fl">
 			<div class="layui-form contentDetails contentShadow shadowLBR">
 				<div class="nav-btns">
-					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div class="layui-btn-group">
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+					</div>
+<%--					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>--%>
 					<div style="clear: both;"></div>
 				</div>
 				<table class="oa-table layui-table" id="contentTable1"></table>

+ 11 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsShowList.jsp

@@ -79,8 +79,13 @@
 						<div class="layui-item athird">
 							<div class="input-group">
 								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>
-								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>
-								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>
+								<div class="layui-btn-group search-spacing">
+									<button id="searchQuery" class="layui-btn layui-btn-sm layui-bg-blue" onclick="search()">查询</button>
+									<button id="searchReset" class="layui-btn layui-btn-sm " onclick="resetSearch()">重置</button>
+								</div>
+<%--								<a href="#" id="moresee"><i class="glyphicon glyphicon-menu-down"></i></a>--%>
+<%--								<button id="searchReset" class="fixed-btn searchReset fr" onclick="resetSearch()">重置</button>--%>
+<%--								<button id="searchQuery" class="fixed-btn searchQuery fr" onclick="search()">查询</button>--%>
 							</div>
 						</div>
 						<div style="    clear:both;"></div>
@@ -133,7 +138,10 @@
 		<div class="full-width fl">
 			<div class="layui-form contentDetails contentShadow shadowLBR">
 				<div class="nav-btns">
-					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
+					<div class="layui-btn-group">
+						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
+					</div>
+<%--					<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>--%>
 					<div style="clear: both;"></div>
 				</div>
 				<table class="oa-table layui-table" id="contentTable1"></table>

+ 22 - 2
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectRecordsView.jsp

@@ -121,7 +121,9 @@
 					<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="${projectRecords.workContractInfo.contractType}"/>
+							<input htmlEscape="false"  readonly="true" id="constructionProjectType"  class="form-control layui-input" value="${fns:getMainDictLabel(projectRecords.workContractInfo.contractTypeDoc, 'contract_info_type', '')}"/>
+
+<%--							<input htmlEscape="false"  readonly="true" style="background-color: #f1f1f1" class="form-control layui-input" value="${projectRecords.workContractInfo.contractType}"/>--%>
 						</div>
 					</div>
 				</div>
@@ -219,6 +221,24 @@
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6 lw6">
+					<label class="layui-form-label">工程类型:</label>
+					<div class="layui-input-block">
+						<c:forEach items="${engineeringInfo}" varStatus="index" var="info">
+							<c:if test="${info.id == projectRecords.engineeringType}"><input htmlEscape="false" style="background-color: #f1f1f1" readonly="true" id="engineeringType" class="form-control layui-input"  value="${info.engineeringName}"/></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:select path="submitMoney" disabled="true" style="background-color: #f1f1f1"  class="form-control simple-select">--%>
+<%--							<form:option value=""/>--%>
+<%--							<form:options items="${fns:getMainDictListOnProjectAdvent('attachment_project_approval_money')}" itemLabel="label" itemValue="value" htmlEscape="false"/>--%>
+<%--						</form:select>--%>
+						<input class=" form-control layui-input " readonly="true" id="submitMoney" name="submitMoney" style="background-color: #f1f1f1" value="${projectRecords.submitMoney}"/>
+					</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="laydate-icondate form-control layui-input layer-date ash"  style="background-color: #f1f1f1" readonly="true" id="startDate" name="startDate" value="<fmt:formatDate value="${ruralProjectRecords.startDate}" pattern="yyyy-MM-dd"/>">
@@ -236,7 +256,7 @@
 						<input htmlEscape="false"  style="background-color: #f1f1f1" 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 lw7">
+				<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="${projectRecords.attachmentProjectSort}"/>

+ 88 - 35
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/cost/ruralCostProjectReportList.jsp

@@ -104,21 +104,63 @@
 					</div>
 					<div style="    clear:both;"></div>
 				</div>
-				<div id="moresees" class="lw7" style="clear:both;display:none;height: 70px;">
-					<div class="layui-item query athird">
-						<label class="layui-form-label">部门:</label>
-						<div class="layui-input-block with-icon">
-							<sys:treeselect id="officeId" name="officeId" value="${ruralProjectReportInfo.officeId}" labelName="officeName" labelValue="${ruralProjectReportInfo.officeName}"
-											title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+					<div id="moresees" class="lw7" style="clear:both;display:none;height: 70px;">
+						<div class="layui-item query athird">
+							<label class="layui-form-label">委托单位:</label>
+							<div class="layui-input-block with-icon">
+								<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							</div>
 						</div>
-					</div>
-					<div class="layui-item query athird">
-						<label class="layui-form-label">委托单位:</label>
-						<div class="layui-input-block with-icon">
-							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目名称:</label>
+							<div class="layui-input-block">
+								<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">报告号:</label>
+							<div class="layui-input-block">
+								<form:input path="reportNum" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+							</div>
+						</div>
+
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目所在地:</label>
+							<div class="layui-input-block  with-icon">
+								<sys:treeselectArea id="area" name="area.id" value="${ruralProject.area.id}" labelName="area.name" labelValue="${ruralProject.area.name}"
+													title="项目所在地" url="/sys/area/treeData" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="false"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">审定金额(元):</label>
+							<div class="layui-input-block">
+								<form:input path="approvalFee" htmlEscape="false" maxlength="64"  class=" form-control number layui-input"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">项目负责人:</label>
+							<div class="layui-input-block  with-icon">
+								<sys:inquireselectUser id="create" name="createId" value="${ruralProject.createId}" labelName="createNameStr" labelValue="${ruralProject.createNameStr}"
+													   title="项目负责人" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true"/>
+							</div>
+						</div>
+						<div class="layui-item query athird">
+							<label class="layui-form-label">部门:</label>
+							<div class="layui-input-block with-icon">
+								<sys:treeselect id="officeId" name="officeId" value="${ruralProject.officeId}" labelName="officeName" labelValue="${ruralProject.officeName}"
+												title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+							</div>
+						</div>
+						<div class="layui-item query athird ">
+							<label class="layui-form-label">上报状态:</label>
+							<div class="layui-input-block">
+								<form:select path="reportedState" class=" form-control  simple-select">
+									<form:option value="" label=""/>
+									<form:options items="${fns:getDictList('reported_state')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+								</form:select>
+							</div>
 						</div>
 					</div>
-				</div>
 				</form:form>
 			</div>
 		</div>
@@ -163,41 +205,52 @@
 				,{field:'projectId', align:'center',minWidth:110,title: '项目编号'}
 				,{field:'reportNum',align:'center',minWidth:150, title: '报告号'}
 				,{field:'filesNum',align:'center',minWidth:150, title: '案卷号'}
-				,{field:'areaName',align:'center', title: '项目所在地'}
+				,{field:'areaName',align:'center',width:90, title: '项目所在地'}
 				,{field:'reviewFee',align:'center',minWidth:100, title: '送审金额(元)'}
 				,{field:'approvalFee',align:'center',minWidth:100, title: '审定金额(元)'}
 				,{field:'verifyFee',align:'center',minWidth:120, title: '核增核减额(元)'}
 				,{field:'verifyRate',align:'center',minWidth:120, title: '核增核减率(%)'}
+				,{field:'allMoney',align:'center',minWidth:120, title: '汇总项目开票额'}
 				,{field:'principalUser',align:'center', title: '项目负责人'}
 				,{field:'officeName',align:'center', title: '所属部门'}
-
+				,{align:'center', title: '上报状态',  width:90,templet:function(d){
+						var st = getReportedState(d.reportedState);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/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;
+					}}
 
             ]]
             ,data: [
-                <c:if test="${ not empty page.list}">
-                <c:forEach items="${page.list}" var="workContractInfo" varStatus="index">
-                <c:if test="${index.index != 0}">,</c:if>
-                {
-                    "index":"${index.index+1}"
-                    ,"id":"${workContractInfo.id}"
-                    ,"year":"${workContractInfo.year}"
-                    ,"month":"${workContractInfo.month}"
-					,"clientName":"${workContractInfo.clientName}"
-                    ,"projectName":"${workContractInfo.projectName}"
-					,"projectId":"${workContractInfo.projectId}"
-					,"reportNum":"${workContractInfo.reportNum}"
-					,"filesNum":"${workContractInfo.filesNum}"
-					,"areaName":"${workContractInfo.areaName}"
-					,"reviewFee":"${workContractInfo.reviewFee}"
-					,"approvalFee":"${workContractInfo.approvalFee}"
-					,"verifyFee":"${workContractInfo.verifyFee}"
-					,"verifyRate":"${workContractInfo.verifyRate}"
-					,"principalUser":"${workContractInfo.principalUser}"
-					,"officeName":"${workContractInfo.officeName}"
+				<c:if test="${ not empty page.list}">
+				<c:forEach items="${page.list}" var="ruralProjectReportInfo" varStatus="index">
+				<c:if test="${index.index != 0}">,</c:if>
+				{
+					"index":"${index.index+1}"
+					,"id":"${ruralProjectReportInfo.id}"
+					,"year":"${ruralProjectReportInfo.year}"
+					,"month":"${ruralProjectReportInfo.month}"
+					,"clientName":"${ruralProjectReportInfo.clientName}"
+					,"projectName":"${ruralProjectReportInfo.projectName}"
+					,"projectId":"${ruralProjectReportInfo.projectId}"
+					,"reportNum":"${ruralProjectReportInfo.reportNum}"
+					,"filesNum":"${ruralProjectReportInfo.filesNum}"
+					,"areaName":"${ruralProjectReportInfo.areaName}"
+					,"reviewFee":"${ruralProjectReportInfo.reviewFee}"
+					,"approvalFee":"${ruralProjectReportInfo.approvalFee}"
+					,"verifyFee":"${ruralProjectReportInfo.verifyFee}"
+					,"verifyRate":"${ruralProjectReportInfo.verifyRate}"
+					,"principalUser":"${ruralProjectReportInfo.principalUser}"
+					,"officeName":"${ruralProjectReportInfo.officeName}"
+					,"reportedState":"${ruralProjectReportInfo.reportedState}"
+					,"allMoney":"${ruralProjectReportInfo.allMoney}"
+					,"reportedProcessInstanceId":"${ruralProjectReportInfo.reportedProcessInstanceId}"
 					<shiro:hasPermission name="ruralProject:ruralProjectView:view">
 					,"showView":1
 					</shiro:hasPermission>
-                }
+				}
                 </c:forEach>
                 </c:if>
             ]

+ 39 - 4
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/cost/ruralProjectCostRecordReportList.jsp

@@ -72,7 +72,7 @@
 				<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 				<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
 				<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
-				<div class="commonQuery lw7">
+				<%--<div class="commonQuery lw7">
 					<div class="layui-item query athird">
 						<label class="layui-form-label">年份:</label>
 						<div class="layui-input-block with-icon">
@@ -124,7 +124,7 @@
 											title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
 						</div>
 					</div>
-				</div>
+				</div>--%>
 				</form:form>
 			</div>
 		</div>
@@ -168,9 +168,39 @@
 				,{field:'reportNum',align:'center',minWidth:150, title: '报告号'}
 				,{field:'principalUser',align:'center', title: '项目负责人'}
 				,{field:'officeName',align:'center', title: '所属部门'}
-				,{field:'recordStatus',align:'center', title: '归档状态'}
-				,{field:'reportedStatus',align:'center', title: '上报状态'}
+				,{align:'center', title: '电子归档',  width:90,templet:function(d){
+						var st = getRuralProjectArchiveState(""+d.projectReportRecordStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
+				,{align:'center', title: '批量归档',  width:90,templet:function(d){
+						var st = getRuralProjectArchiveState(""+d.filingProjectStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getProcess?filingProcessinstanceId=" + d.filingProcessinstanceId+"&id="+d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
 
+				,{align:'center', title: '上报',  width:90,templet:function(d){
+						var st = getReportedState(""+d.reportedState);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/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;
+					}}
+				,{align:'center', title: '选查',  width:90,templet:function(d){
+						var st = getCheckProjectState(d.checkStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/project/recordChooseCheck/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
 
             ]]
             ,data: [
@@ -191,6 +221,11 @@
 					<shiro:hasPermission name="ruralProject:ruralProjectView:view">
 					,"showView":1
 					</shiro:hasPermission>
+					,"projectReportRecordStatus":"${workContractInfo.projectReportRecordStatus}"
+					,"filingProjectStatus":"${workContractInfo.filingProjectStatus}"
+					,"reportedState":"${workContractInfo.reportedState}"
+					,"checkStatus":"${workContractInfo.checkStatus}"
+					,"checkProcessInstanceId":"${workContractInfo.checkProcessInstanceId}"
                 }
                 </c:forEach>
                 </c:if>

+ 48 - 5
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/ruralProjectRecordReportList.jsp

@@ -72,7 +72,7 @@
 				<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 				<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
 				<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
-				<div class="commonQuery lw7">
+				<%--<div class="commonQuery lw7">
 					<div class="layui-item query athird">
 						<label class="layui-form-label">年份:</label>
 						<div class="layui-input-block with-icon">
@@ -124,7 +124,7 @@
 											title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
 						</div>
 					</div>
-				</div>
+				</div>--%>
 				</form:form>
 			</div>
 		</div>
@@ -159,13 +159,48 @@
                 ,{field:'year',align:'center', sort:true,title: '年份'}
                 ,{field:'month',align:'center', sort:true,title: '月份'}
                 ,{field:'projectName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
-                        return "<a class=\"attention-info\" title=\""+d.projectName+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projectName + "</a>";
+						if(1 == d.showView && d.showView != undefined){
+							return "<a class=\"attention-info\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectView/view?id=" + d.id +"','95%', '95%')\">" + d.projectName + "</a>";
+						}else{
+							return "<span title='"+ d.projectName +"'>" +d.projectName+ "</span>";
+						}
                     }}
 				,{field:'reportNum',align:'center',minWidth:150, title: '报告号'}
 				,{field:'principalUser',align:'center', title: '项目负责人'}
 				,{field:'officeName',align:'center', title: '所属部门'}
-				,{field:'recordStatus',align:'center', title: '归档状态'}
-				,{field:'reportedStatus',align:'center', title: '上报状态'}
+				,{align:'center', title: '电子归档',  width:90,templet:function(d){
+						var st = getRuralProjectArchiveState(""+d.projectReportRecordStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getReportRecordProcessOne?processInstanceId=" + d.prrProcessInstanceId + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
+				,{align:'center', title: '批量归档',  width:90,templet:function(d){
+						var st = getRuralProjectArchiveState(""+d.filingProjectStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/getProcess?filingProcessinstanceId=" + d.filingProcessinstanceId+"&id="+d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
+
+				,{align:'center', title: '上报',  width:90,templet:function(d){
+						var st = getReportedState(""+d.reportedState);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/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;
+					}}
+				,{align:'center', title: '选查',  width:90,templet:function(d){
+						var st = getCheckProjectState(d.checkStatus);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/project/recordChooseCheck/getProcess?id=" + d.id + "','95%','95%')\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						else
+							var xml = "<span style=\"cursor:default;\" class=\"status-label status-label-" + st.label + "\" >" + st.status + "</span>";
+						return xml;
+					}}
 
 
             ]]
@@ -184,6 +219,14 @@
 					,"officeName":"${workContractInfo.officeName}"
 					,"recordStatus":"${workContractInfo.recordStatus}"
 					,"reportedStatus":"${workContractInfo.reportedStatus}"
+					,"projectReportRecordStatus":"${workContractInfo.projectReportRecordStatus}"
+					,"filingProjectStatus":"${workContractInfo.filingProjectStatus}"
+					,"reportedState":"${workContractInfo.reportedState}"
+					,"checkStatus":"${workContractInfo.checkStatus}"
+					,"checkProcessInstanceId":"${workContractInfo.checkProcessInstanceId}"
+					<shiro:hasPermission name="ruralProject:ruralProjectView:view">
+					,"showView":1
+					</shiro:hasPermission>
                 }
                 </c:forEach>
                 </c:if>

+ 84 - 24
src/main/webapp/webpage/modules/ruralprojectrecords/ruralProjectReport/ruralProjectReportList.jsp

@@ -106,16 +106,58 @@
 				</div>
 				<div id="moresees" class="lw7" style="clear:both;display:none;height: 70px;">
 					<div class="layui-item query athird">
-						<label class="layui-form-label">部门:</label>
+						<label class="layui-form-label">委托单位:</label>
 						<div class="layui-input-block with-icon">
-							<sys:treeselect id="officeId" name="officeId" value="${ruralProjectReportInfo.officeId}" labelName="officeName" labelValue="${ruralProjectReportInfo.officeName}"
-											title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
 						</div>
 					</div>
 					<div class="layui-item query athird">
-						<label class="layui-form-label">委托单位:</label>
+						<label class="layui-form-label">项目名称:</label>
+						<div class="layui-input-block">
+							<form:input path="projectName" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">报告号:</label>
+						<div class="layui-input-block">
+							<form:input path="reportNum" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
+						</div>
+					</div>
+
+					<div class="layui-item query athird">
+						<label class="layui-form-label">项目所在地:</label>
+						<div class="layui-input-block  with-icon">
+							<sys:treeselectArea id="area" name="area.id" value="${ruralProject.area.id}" labelName="area.name" labelValue="${ruralProject.area.name}"
+											title="项目所在地" url="/sys/area/treeData" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="false"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">审定金额(元):</label>
+						<div class="layui-input-block">
+							<form:input path="approvalFee" htmlEscape="false" maxlength="64"  class=" form-control number layui-input"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">项目负责人:</label>
+						<div class="layui-input-block  with-icon">
+							<sys:inquireselectUser id="create" name="createId" value="${ruralProject.createId}" labelName="createNameStr" labelValue="${ruralProject.createNameStr}"
+															  title="项目负责人" url="/sys/office/treeDataAll?type=3" cssClass="form-control required layui-input" allowClear="true" notAllowSelectParent="true"/>
+						</div>
+					</div>
+					<div class="layui-item query athird">
+						<label class="layui-form-label">部门:</label>
 						<div class="layui-input-block with-icon">
-							<form:input path="clientName" htmlEscape="false" maxlength="255"  class=" form-control layui-input"/>
+							<sys:treeselect id="officeId" name="officeId" value="${ruralProject.officeId}" labelName="officeName" labelValue="${ruralProject.officeName}"
+											title="部门" url="/sys/office/treeDataAll?type=2" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/>
+						</div>
+					</div>
+					<div class="layui-item query athird ">
+						<label class="layui-form-label">上报状态:</label>
+						<div class="layui-input-block">
+							<form:select path="reportedState" class=" form-control  simple-select">
+								<form:option value="" label=""/>
+								<form:options items="${fns:getDictList('reported_state')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+							</form:select>
 						</div>
 					</div>
 				</div>
@@ -154,42 +196,60 @@
                 ,{field:'month',align:'center', sort:true,title: '月份'}
 				,{field:'clientName',align:'center', title: '委托单位',width:220}
                 ,{field:'projectName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
-                        return "<a class=\"attention-info\" title=\""+d.projectName+"\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目信息', '${ctx}/ruralProject/ruralProjectRecords/view?id=" + d.id + "','95%', '95%')\">" + d.projectName + "</a>";
+						if(1 == d.showView && d.showView != undefined){
+							return "<a class=\"attention-info\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/ruralProject/ruralProjectView/view?id=" + d.id +"','95%', '95%')\">" + d.projectName + "</a>";
+						}else{
+							return "<span title='"+ d.projectName +"'>" +d.projectName+ "</span>";
+						}
                     }}
 				,{field:'projectId', align:'center',minWidth:110,title: '项目编号'}
 				,{field:'reportNum',align:'center',minWidth:150, title: '报告号'}
 				,{field:'filesNum',align:'center',minWidth:150, title: '案卷号'}
-				,{field:'areaName',align:'center', title: '项目所在地'}
+				,{field:'areaName',align:'center',width:90, title: '项目所在地'}
 				,{field:'reviewFee',align:'center',minWidth:100, title: '送审金额(元)'}
 				,{field:'approvalFee',align:'center',minWidth:100, title: '审定金额(元)'}
 				,{field:'verifyFee',align:'center',minWidth:120, title: '核增核减额(元)'}
 				,{field:'verifyRate',align:'center',minWidth:120, title: '核增核减率(%)'}
+				,{field:'allMoney',align:'center',minWidth:120, title: '汇总项目开票额'}
 				,{field:'principalUser',align:'center', title: '项目负责人'}
 				,{field:'officeName',align:'center', title: '所属部门'}
-
+				,{align:'center', title: '上报状态',  width:90,templet:function(d){
+						var st = getReportedState(d.reportedState);
+						if(st.action)
+							var xml = "<span onclick=\"openDialogView('流程追踪', '${ctx}/ruralProject/ruralProjectMessage/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;
+					}}
 
             ]]
             ,data: [
                 <c:if test="${ not empty page.list}">
-                <c:forEach items="${page.list}" var="workContractInfo" varStatus="index">
+                <c:forEach items="${page.list}" var="ruralProjectReportInfo" varStatus="index">
                 <c:if test="${index.index != 0}">,</c:if>
                 {
                     "index":"${index.index+1}"
-                    ,"id":"${workContractInfo.id}"
-                    ,"year":"${workContractInfo.year}"
-                    ,"month":"${workContractInfo.month}"
-					,"clientName":"${workContractInfo.clientName}"
-                    ,"projectName":"${workContractInfo.projectName}"
-					,"projectId":"${workContractInfo.projectId}"
-					,"reportNum":"${workContractInfo.reportNum}"
-					,"filesNum":"${workContractInfo.filesNum}"
-					,"areaName":"${workContractInfo.areaName}"
-					,"reviewFee":"${workContractInfo.reviewFee}"
-					,"approvalFee":"${workContractInfo.approvalFee}"
-					,"verifyFee":"${workContractInfo.verifyFee}"
-					,"verifyRate":"${workContractInfo.verifyRate}"
-					,"principalUser":"${workContractInfo.principalUser}"
-					,"officeName":"${workContractInfo.officeName}"
+                    ,"id":"${ruralProjectReportInfo.id}"
+                    ,"year":"${ruralProjectReportInfo.year}"
+                    ,"month":"${ruralProjectReportInfo.month}"
+					,"clientName":"${ruralProjectReportInfo.clientName}"
+                    ,"projectName":"${ruralProjectReportInfo.projectName}"
+					,"projectId":"${ruralProjectReportInfo.projectId}"
+					,"reportNum":"${ruralProjectReportInfo.reportNum}"
+					,"filesNum":"${ruralProjectReportInfo.filesNum}"
+					,"areaName":"${ruralProjectReportInfo.areaName}"
+					,"reviewFee":"${ruralProjectReportInfo.reviewFee}"
+					,"approvalFee":"${ruralProjectReportInfo.approvalFee}"
+					,"verifyFee":"${ruralProjectReportInfo.verifyFee}"
+					,"verifyRate":"${ruralProjectReportInfo.verifyRate}"
+					,"principalUser":"${ruralProjectReportInfo.principalUser}"
+					,"officeName":"${ruralProjectReportInfo.officeName}"
+					,"reportedState":"${ruralProjectReportInfo.reportedState}"
+					,"allMoney":"${ruralProjectReportInfo.allMoney}"
+					,"reportedProcessInstanceId":"${ruralProjectReportInfo.reportedProcessInstanceId}"
+					<shiro:hasPermission name="ruralProject:ruralProjectView:view">
+					,"showView":1
+					</shiro:hasPermission>
                 }
                 </c:forEach>
                 </c:if>

+ 49 - 3
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageAudit.jsp

@@ -475,7 +475,27 @@
 					<div class="layui-item layui-col-sm12 lw7 with-textarea">
 						<label class="layui-form-label double-line"><span class="require-item">*</span>专业咨询员审核意见:</label>
 						<div class="layui-input-block">
-							<form:textarea path="projectReportData.technicistRemarks" id="technicistRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control"/>
+							<div class="layui-item layui-col-sm6 lw7 with-textarea">
+								<div class="layui-input-block" style="margin-left:0px;position: relative">
+									<form:textarea placeholder="请输入审批意见:" path="projectReportData.technicistRemarks" id="technicistRemarks" class="form-control required" rows="4" cssStyle="height: 200px;" maxlength="255" />
+									<a id="clearOpinons" 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="raopinions" name="shs" value="同意" title="同意" style="cursor:pointer" class="apen"/></div>
+									<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinions" name="shs" value="不同意" title="不同意" style="cursor:pointer" class="apen"/></div>
+									<div style="padding: 5px 0px;"><input type="checkbox" lay-filter="raopinions" name="shs" value="请领导审核" title="请领导审核" style="cursor:pointer" class="apen"/></div>
+									<div style="padding: 5px 0px;">
+										<form:select path="projectReportData.technicistRemarks" id="auditOpinion" lay-filter="zixunOpinion" lay-verify="zixunOpinion" class="form-control simple-select">
+											<form:option value=""/>
+											<form:options items="${fns:getMainDictListOnProjectAdvent('consultant_comments')}" itemLabel="label" itemValue="label" htmlEscape="false"/>
+										</form:select>
+									</div>
+								</div>
+							</div>
+<%--							<form:textarea path="projectReportData.technicistRemarks" id="technicistRemarks" htmlEscape="false" rows="4"  maxlength="255"  class="form-control"/>--%>
 						</div>
 					</div>
 				</c:if>
@@ -597,7 +617,7 @@
 			</div>
 
 			<div class="form-group layui-row">
-				<div class="form-group-label"><h2>依据性资料</h2></div>
+				<div class="form-group-label"><h2>依据性文件</h2></div>
 				<div id="addFile_gistdata" style="display: none" class="upload-progress">
 					<span id="fileName_gistdata" ></span>
 					<b><span id="baifenbi_gistdata" ></span></b>
@@ -741,7 +761,7 @@
 				<div class="form-group-label"><h2>审批意见</h2></div>
 				<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="projectReportData.act.comment" id="opinion" class="form-control" rows="4" cssStyle="height: 200px;" maxlength="127" />
+						<form:textarea placeholder="请输入意见:" path="projectReportData.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>
@@ -788,9 +808,20 @@
 			var s=$("input[name='sh']").length;
 			for(var i=0;i<s;i++){
 				$("input[name='sh']").attr("checked",false)
+				layui.form.render();
+
 			}
 			$("#opinion").val("");
 		})
+		$("#clearOpinons").click(function(){
+			var s=$("input[name='shs']").length;
+			for(var i=0;i<s;i++){
+				$("input[name='shs']").attr("checked",false)
+				layui.form.render();
+
+			}
+			$("#technicistRemarks").val("");
+		})
 		layui.use(['form', 'layer'], function () {
 			var form = layui.form;
 			//下拉框监听器
@@ -808,6 +839,21 @@
 					$("#opinion").val(opinion);
 				}
 			});
+			layui.form.on('select(zixunOpinion)', function(data){
+				var span=data.value;
+				if(span!=""){
+					var opinion=$("#technicistRemarks").val()+span+";"
+					$("#technicistRemarks").val(opinion);
+				}
+			});
+			layui.form.on('checkbox(raopinions)', function(data){
+				var span=data.value;
+				if(span!=""){
+					$(this).attr("checked",false)
+					var opinion=$("#technicistRemarks").val()+span+";"
+					$("#technicistRemarks").val(opinion);
+				}
+			});
 		});
 	})
 		function openBill2(title,url,width,height,target,formId,tableId){

+ 0 - 0
src/main/webapp/webpage/modules/ruralprojectrecords/ruralporjectmessage/projectcontentinfo/projectRecordsMessageModify.jsp


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません