Bladeren bron

全过程代码功能调整部分代码

user5 3 jaren geleden
bovenliggende
commit
2793926b76
91 gewijzigde bestanden met toevoegingen van 8399 en 1016 verwijderingen
  1. 3 0
      src/main/java/com/jeeplus/modules/projectAccessory/dao/ProjectTemplateDao.java
  2. 9 0
      src/main/java/com/jeeplus/modules/projectAccessory/entity/ProjectTemplateInfo.java
  3. 59 0
      src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectAccessoryService.java
  4. 5 0
      src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectTemplateService.java
  5. 98 0
      src/main/java/com/jeeplus/modules/projectAccessory/web/ProjectAccessoryController.java
  6. 8 0
      src/main/java/com/jeeplus/modules/projectType/dao/ProjectTypeDao.java
  7. 9 0
      src/main/java/com/jeeplus/modules/projectType/entity/ProjectType.java
  8. 10 0
      src/main/java/com/jeeplus/modules/projectType/service/ProjectTypeService.java
  9. 71 1
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectClaimController.java
  10. 71 1
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectDesignController.java
  11. 71 18
      src/main/java/com/jeeplus/modules/projectVisa/web/ProjectVisaController.java
  12. 59 1
      src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectBasedDataDao.java
  13. 16 1
      src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectContentDataDao.java
  14. 32 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectcontentinfoDao.java
  15. 11 2
      src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectBasedData.java
  16. 9 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectReportTreeData.java
  17. 59 5
      src/main/java/com/jeeplus/modules/projectcontentinfo/entity/Projectcontentinfo.java
  18. 117 3
      src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectBasedDataService.java
  19. 28 7
      src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectContentDataService.java
  20. 62 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectcontentinfoService.java
  21. 53 9
      src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectBasedDataController.java
  22. 109 2
      src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectcontentinfoController.java
  23. 37 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/ConcealProjectInfo.java
  24. 37 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/MaterialProjectInfo.java
  25. 18 0
      src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectImplementEarly.java
  26. 18 1
      src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectRecords.java
  27. 25 4
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectImplementEarlyService.java
  28. 39 4
      src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java
  29. 58 1
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectImplementCompletionController.java
  30. 55 4
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectImplementEarlyController.java
  31. 1 1
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectImplementStageController.java
  32. 31 1
      src/main/java/com/jeeplus/modules/projectrecord/web/ProjectRecordsController.java
  33. 60 0
      src/main/java/com/jeeplus/modules/projectrecord/web/armorForMaterials/ArmorForMaterialsController.java
  34. 59 0
      src/main/java/com/jeeplus/modules/projectrecord/web/concealProject/ConcealProjectController.java
  35. 59 0
      src/main/java/com/jeeplus/modules/projectrecord/web/contractMaterial/MaterialController.java
  36. 59 0
      src/main/java/com/jeeplus/modules/projectrecord/web/distributionSettlement/DistributionSettlementController.java
  37. 62 0
      src/main/java/com/jeeplus/modules/projectrecord/web/implementStage/ProjectInterimPaymentController.java
  38. 78 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentArmorSummarizingController.java
  39. 78 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentClaimSummarizingController.java
  40. 78 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentConcealSummarizingController.java
  41. 75 0
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDesignSummarizingController.java
  42. 78 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDistributionSummarizingController.java
  43. 81 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentInterimPaymentSummarizingController.java
  44. 78 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentMaterialSummarizingController.java
  45. 78 4
      src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentVisaSummarizingController.java
  46. 29 0
      src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java
  47. 8 1
      src/main/java/com/jeeplus/modules/workclientinfo/dao/WorkClientAttachmentDao.java
  48. 9 0
      src/main/java/com/jeeplus/modules/workclientinfo/entity/WorkClientAttachment.java
  49. 9 1
      src/main/java/com/jeeplus/modules/workcontent/dao/WorkScheduleDao.java
  50. 15 6
      src/main/java/com/jeeplus/modules/workcontent/service/WorkScheduleService.java
  51. 1 3
      src/main/java/com/jeeplus/modules/workcontent/web/WorkContentCtrlpriceController.java
  52. 1 1
      src/main/resources/mappings/modules/constructionContract/contractDao.xml
  53. 8 0
      src/main/resources/mappings/modules/projectAccessory/ProjectTemplateDao.xml
  54. 16 1
      src/main/resources/mappings/modules/projectType/ProjectTypeDao.xml
  55. 180 20
      src/main/resources/mappings/modules/projectcontentinfo/ProjectBasedDataDao.xml
  56. 40 17
      src/main/resources/mappings/modules/projectcontentinfo/ProjectContentDataDao.xml
  57. 24 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectcontentinfoDao.xml
  58. 15 3
      src/main/resources/mappings/modules/projectrecord/ProjectImplementEarlyDao.xml
  59. 12 0
      src/main/resources/mappings/modules/projectrecord/ProjectRecordsDao.xml
  60. 28 0
      src/main/resources/mappings/modules/workclientinfo/WorkClientAttachmentDao.xml
  61. 25 15
      src/main/resources/mappings/modules/workcontent/WorkScheduleDao.xml
  62. 3 3
      src/main/webapp/WEB-INF/tags/sys/gridselectBaseData.tag
  63. 180 2
      src/main/webapp/static/bos/reportDataBOSUpload.js
  64. 7 1
      src/main/webapp/webpage/modules/project/type/accrding/projectAccrdingTypeFormSubordinate.jsp
  65. 2 1
      src/main/webapp/webpage/modules/project/type/accrding/projectAccrdingTypeList.jsp
  66. 13 13
      src/main/webapp/webpage/modules/projectConstruction/projectConstructionForm.jsp
  67. 8 8
      src/main/webapp/webpage/modules/projectcontentinfo/basedDataForm.jsp
  68. 540 68
      src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsForm.jsp
  69. 6 5
      src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsList.jsp
  70. 536 67
      src/main/webapp/webpage/modules/projectrecord/claim/projectClaimForm.jsp
  71. 6 5
      src/main/webapp/webpage/modules/projectrecord/claim/projectClaimList.jsp
  72. 6 5
      src/main/webapp/webpage/modules/projectrecord/concealProject/concealProjectList.jsp
  73. 537 69
      src/main/webapp/webpage/modules/projectrecord/concealProject/workContentForm.jsp
  74. 6 5
      src/main/webapp/webpage/modules/projectrecord/contractMaterial/materialList.jsp
  75. 540 69
      src/main/webapp/webpage/modules/projectrecord/contractMaterial/workMaterialForm.jsp
  76. 537 85
      src/main/webapp/webpage/modules/projectrecord/design/projectDesignForm.jsp
  77. 540 71
      src/main/webapp/webpage/modules/projectrecord/distributionSettlement/distributionSettlementForm.jsp
  78. 6 5
      src/main/webapp/webpage/modules/projectrecord/distributionSettlement/distributionSettlementList.jsp
  79. 6 5
      src/main/webapp/webpage/modules/projectrecord/implementCompletion/projectImplementCompletionList.jsp
  80. 5 4
      src/main/webapp/webpage/modules/projectrecord/implementEarly/projectImplementEarlyList.jsp
  81. 6 5
      src/main/webapp/webpage/modules/projectrecord/implementStage/projectDesignList.jsp
  82. 533 69
      src/main/webapp/webpage/modules/projectrecord/implementStage/projectInterimPaymentForm.jsp
  83. 6 5
      src/main/webapp/webpage/modules/projectrecord/implementStage/projectInterimPaymentList.jsp
  84. 6 5
      src/main/webapp/webpage/modules/projectrecord/implementStage/projectVisaList.jsp
  85. 36 3
      src/main/webapp/webpage/modules/projectrecord/projectRecordsList.jsp
  86. 278 1
      src/main/webapp/webpage/modules/projectrecord/summarizing/workContentView.jsp
  87. 537 71
      src/main/webapp/webpage/modules/projectrecord/visa/projectVisaForm.jsp
  88. 559 91
      src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentForm.jsp
  89. 285 83
      src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentView.jsp
  90. 4 4
      src/main/webapp/webpage/modules/sys/gridselectProjbasedata.jsp
  91. 34 26
      src/main/webapp/webpage/modules/workcontent/workContentCtrlpriceList.jsp

+ 3 - 0
src/main/java/com/jeeplus/modules/projectAccessory/dao/ProjectTemplateDao.java

@@ -82,4 +82,7 @@ public interface ProjectTemplateDao extends CrudDao<ProjectTemplateInfo>,TreeDao
     ProjectTemplateInfo getProjectTemplateInfoByName(String name);
 
 
+    ProjectTemplateInfo getProjectType(String id);
+
+
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/projectAccessory/entity/ProjectTemplateInfo.java

@@ -41,6 +41,7 @@ public class ProjectTemplateInfo extends TreeEntity<ProjectTemplateInfo>{
 	private String collectFlag;	//判断是否收藏
 	private String fileSize;	//f附件大小
 	private String description;	//文件描述
+	private String materialProperties;	//资料性质
 
 
 	public ProjectTemplateInfo() {
@@ -235,4 +236,12 @@ public class ProjectTemplateInfo extends TreeEntity<ProjectTemplateInfo>{
 	public void setDescription(String description) {
 		this.description = description;
 	}
+
+	public String getMaterialProperties() {
+		return materialProperties;
+	}
+
+	public void setMaterialProperties(String materialProperties) {
+		this.materialProperties = materialProperties;
+	}
 }

+ 59 - 0
src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectAccessoryService.java

@@ -388,4 +388,63 @@ public class ProjectAccessoryService extends TreeService<ProjectAccessoryDao, Pr
         page.setList(collectList);
         return page;
     }
+
+
+
+    /**
+     * 新增修改删除附件信息(全过程阶段宜居性资料)
+     * @param projectAccessory
+     */
+    @Transactional(readOnly = false)
+    public void saveWorkAttachmentOverAll(ProjectAccessoryTree projectAccessory){
+        long t1 = System.currentTimeMillis();
+        //判断附件信息是否为空
+        if(null != projectAccessory.getWorkAttachments()){
+            for (WorkClientAttachment workClientAttachment : projectAccessory.getWorkAttachments()) {
+                //判断附件信息的id是否为空
+                if (workClientAttachment.getId() == null) {
+                    continue;
+                }
+                //判断附件信息是否是删除项
+                if (WorkClientAttachment.DEL_FLAG_NORMAL.equals(workClientAttachment.getDelFlag())) {
+                    Workattachment workattachment = null;
+                    if(StringUtils.isNotBlank(workClientAttachment.getId())){
+                        workattachment = workattachmentService.get(workClientAttachment.getId());
+                    }
+                    //添加附件信息基本信息
+                    workClientAttachment.setAttachmentId(projectAccessory.getId());
+                    workClientAttachment.setDivIdType(projectAccessory.getProjectId());
+                    workClientAttachment.setAttachmentUser(UserUtils.getUser().getId());
+                    if (null == workattachment && StringUtils.isNotBlank(workClientAttachment.getUrl())) {
+                        //新增附件信息
+                        workattachmentService.insertOnWorkClientAttachment(workClientAttachment);
+                    } else {
+                        //修改附件信息
+                        workattachmentService.updateOnWorkClientAttachment(workClientAttachment);
+                    }
+                } else {
+                    //删除附件信息
+                    workClientAttachmentDao.delete(workClientAttachment);
+                }
+            }
+        }
+        long t2 = System.currentTimeMillis();
+        System.out.println("上传文件service层消耗时间:" + (t2-t1));
+    }
+
+
+    /**
+     * 根据信息查询附件信息
+     * @param attachmentId
+     * @param projectId
+     * @return
+     */
+    public List<WorkClientAttachment> getWorkAttachmentsOnOverAll(String attachmentId,String projectId){
+        WorkClientAttachment attchment = new WorkClientAttachment();
+        attchment.setAttachmentId(attachmentId);
+        attchment.setDivIdType(projectId);
+        List<WorkClientAttachment> attachments = workattachmentService.getListOnOverAll(attchment);
+        workattachmentService.clientAttachmentManageOnUrl(attachments);
+        return attachments;
+    }
 }

+ 5 - 0
src/main/java/com/jeeplus/modules/projectAccessory/service/ProjectTemplateService.java

@@ -513,4 +513,9 @@ public class ProjectTemplateService extends TreeService<ProjectTemplateDao, Proj
         return map;
     }
 
+    //查询全过程宜居性文件父节点信息
+    public ProjectTemplateInfo getProjectType(String id) {
+        return dao.getProjectType(id);
+    }
+
 }

+ 98 - 0
src/main/java/com/jeeplus/modules/projectAccessory/web/ProjectAccessoryController.java

@@ -22,6 +22,7 @@ import com.jeeplus.modules.projectAccessory.service.ProjectAccessoryService;
 import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
@@ -71,6 +72,8 @@ public class ProjectAccessoryController extends BaseController {
 	private WorkattachmentService workattachmentService;
 	@Autowired
 	private CollectAccessoryService collectAccessoryService;
+	@Autowired
+	private ProjectBasedDataService projectBasedDataService;
 
 	@ModelAttribute
 	public ProjectAccessoryInfo get(@RequestParam(required=false) String id) {
@@ -587,4 +590,99 @@ public class ProjectAccessoryController extends BaseController {
 		model.addAttribute("auditOpinion",auditOpinion);
 		return "modules/sys/gridselectConsultantDescription";
 	}
+
+
+
+	/**
+	 * 跳转到附件页面
+	 * @param attachmentId
+	 * @param projectId
+	 * @return
+	 */
+	@RequestMapping("overAllWorkAttachmentForm")
+	public String overAllWorkAttachmentForm(String attachmentId, String projectId,String uploadMode, Model model){
+
+		ProjectTemplateInfo projectTemplateInfo = projectTemplateService.getProjectType(attachmentId);
+		List<WorkClientAttachment> workAttachments = Lists.newArrayList();
+		if(null == projectTemplateInfo){
+			projectTemplateInfo = projectBasedDataService.getContentBasedInfoById(attachmentId);
+			workAttachments = projectBasedDataService.getAttchmentsOnOverAll(attachmentId);
+		}else{
+			workAttachments = projectAccessoryService.getWorkAttachmentsOnOverAll(attachmentId,projectId);
+		}
+		projectTemplateInfo.setWorkAttachments(workAttachments);
+		projectTemplateInfo.setProjectId(projectId);
+		projectTemplateInfo.setUploadMode(uploadMode);
+		model.addAttribute("projectTemplateInfo", projectTemplateInfo);
+		return "modules/projectAccessory/workAttachmentOverAllForm";
+	}
+
+
+
+	/**
+	 * 跳转到附件页面
+	 * @param attachmentId
+	 * @param projectId
+	 * @return
+	 */
+	@RequestMapping("overAllWorkAchievementAttachmentForm")
+	public String overAllWorkAchievementAttachmentForm(String attachmentId, String projectId,String uploadMode, Model model){
+
+		ProjectTemplateInfo projectTemplateInfo = projectBasedDataService.getContentAchievementInfoById(attachmentId);
+		List<WorkClientAttachment> workAttachments = projectBasedDataService.getAttchmentsOnOverAll(attachmentId);
+
+		projectTemplateInfo.setWorkAttachments(workAttachments);
+		projectTemplateInfo.setProjectId(projectId);
+		projectTemplateInfo.setUploadMode(uploadMode);
+		model.addAttribute("projectTemplateInfo", projectTemplateInfo);
+		return "modules/projectAccessory/workAttachmentOverAllForm";
+	}
+	/**
+	 * 跳转到附件页面
+	 * @param attachmentId
+	 * @param projectId
+	 * @return
+	 */
+	@RequestMapping("overAllWorkAttachmentView")
+	public String overAllWorkAttachmentView(String attachmentId, String projectId,String uploadMode, Model model){
+
+		ProjectTemplateInfo projectTemplateInfo = projectTemplateService.getProjectType(attachmentId);
+		List<WorkClientAttachment> workAttachments = Lists.newArrayList();
+		if(null == projectTemplateInfo){
+			projectTemplateInfo = projectBasedDataService.getContentBasedInfoById(attachmentId);
+			workAttachments = projectBasedDataService.getAttchmentsOnOverAll(attachmentId);
+		}else{
+			workAttachments = projectAccessoryService.getWorkAttachmentsOnOverAll(attachmentId,projectId);
+		}
+		projectTemplateInfo.setWorkAttachments(workAttachments);
+		projectTemplateInfo.setProjectId(projectId);
+		projectTemplateInfo.setUploadMode(uploadMode);
+		model.addAttribute("projectTemplateInfo", projectTemplateInfo);
+		return "modules/projectAccessory/workAttachmentOverAllView";
+	}
+
+
+
+	/**
+	 * 新增修改删除附件信息并返回信息
+	 * @param projectAccessory
+	 * @return
+	 */
+	@RequestMapping("saveWorkAttachmentOverAll")
+	@ResponseBody
+	public Object saveWorkAttachmentOverAll(ProjectAccessoryTree projectAccessory){
+		long t1 = System.currentTimeMillis();
+		Map<String,Object> map = new HashMap<>();
+		//新增修改删除附件信息
+		projectAccessoryService.saveWorkAttachmentOverAll(projectAccessory);
+		if(projectAccessory.getWorkAttachments().size()>0){
+			map.put("str","新增附件信息成功!");
+		}else{
+			map.put("str","");
+		}
+
+		long t2 = System.currentTimeMillis();
+		System.out.println("上传文件controller层消耗时间:" + (t2-t1));
+		return map;
+	}
 }

+ 8 - 0
src/main/java/com/jeeplus/modules/projectType/dao/ProjectTypeDao.java

@@ -6,6 +6,7 @@ package com.jeeplus.modules.projectType.dao;
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.projectType.entity.ProjectType;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectAchievementFileData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportTreeData;
 import com.jeeplus.modules.sys.entity.Menu;
@@ -92,4 +93,11 @@ public interface ProjectTypeDao extends CrudDao<ProjectType> {
 	 * @param projectType
 	 */
     void changeStatus(ProjectType projectType);
+
+	/**
+	 * 根据父级type获取自己的宜居性资料基本信息
+	 * @param typeId
+	 * @return
+	 */
+	List<ProjectAchievementFileData> getAchievementFileDataList(String typeId);
 }

+ 9 - 0
src/main/java/com/jeeplus/modules/projectType/entity/ProjectType.java

@@ -23,6 +23,7 @@ public class ProjectType extends DataEntity<ProjectType> {
     private Integer tier;    //层级标识
     private String chooseCondition;  //是否必填标识
     private String hintContent;  //提示内容
+    private String dataCategories;  //资料类别
 
 
     private String createId;//创建者id
@@ -133,4 +134,12 @@ public class ProjectType extends DataEntity<ProjectType> {
     public void setHintContent(String hintContent) {
         this.hintContent = hintContent;
     }
+
+    public String getDataCategories() {
+        return dataCategories;
+    }
+
+    public void setDataCategories(String dataCategories) {
+        this.dataCategories = dataCategories;
+    }
 }

+ 10 - 0
src/main/java/com/jeeplus/modules/projectType/service/ProjectTypeService.java

@@ -8,6 +8,7 @@ import com.jeeplus.modules.projectType.dao.ProjectResultsFileTemplateDao;
 import com.jeeplus.modules.projectType.dao.ProjectTypeDao;
 import com.jeeplus.modules.projectType.entity.ProjectTemplateType;
 import com.jeeplus.modules.projectType.entity.ProjectType;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectAchievementFileData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportTreeData;
 import com.jeeplus.modules.workcontent.entity.WorkContentType;
@@ -182,4 +183,13 @@ public class ProjectTypeService extends CrudService<ProjectTypeDao, ProjectType>
         dao.changeStatus(projectType);
         return msg;
     }
+
+    /**
+     * 查询依据性文件信息
+     * @param typeId
+     * @return
+     */
+    public List<ProjectAchievementFileData> getAchievementFileDataList(String typeId){
+        return dao.getAchievementFileDataList(typeId);
+    }
 }

+ 71 - 1
src/main/java/com/jeeplus/modules/projectVisa/web/ProjectClaimController.java

@@ -1,18 +1,23 @@
 package com.jeeplus.modules.projectVisa.web;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -22,6 +27,7 @@ import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.DictUtils;
@@ -60,6 +66,12 @@ public class ProjectClaimController extends BaseController {
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -87,9 +99,22 @@ public class ProjectClaimController extends BaseController {
         if(UserUtils.isManager()){
             model.addAttribute("flag","1");
         }
+
+        ProjectImplementEarly projectRecords = new ProjectImplementEarly();
+        //判断项目名称是否为空
+        if(StringUtils.isNotBlank(constructionContract.getProjectName())){
+            projectRecords.setProjectName(constructionContract.getProjectName());
+        }
+        if(StringUtils.isNotBlank(constructionContract.getContractName())){
+            WorkContractInfo workContractInfo = new WorkContractInfo();
+            workContractInfo.setName(constructionContract.getContractName());
+            projectRecords.setWorkContractInfo(workContractInfo);
+        }
         //查询施工合同列表信息
-        Page<ConstructionContract> page = contractService.findPage(new Page<ConstructionContract>(request, response), constructionContract);
+        //Page<ConstructionContract> page = contractService.findPage(new Page<ConstructionContract>(request, response), constructionContract);
+        Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "46");
         return "modules/projectrecord/claim/projectClaimList";
     }
 
@@ -251,11 +276,55 @@ public class ProjectClaimController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //判断infoid是否为空来获取对应的工作内容详情信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = projectVisaService.getProjectContentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = projectVisaService.getProjectContentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
         }
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
@@ -271,6 +340,7 @@ public class ProjectClaimController extends BaseController {
         }
         concealProjectInfo.setCondition("claim");
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         //判断是否为查看页面 是则跳转查看页面
         if("view".equals(concealProjectInfo.getView())){

+ 71 - 1
src/main/java/com/jeeplus/modules/projectVisa/web/ProjectDesignController.java

@@ -1,18 +1,23 @@
 package com.jeeplus.modules.projectVisa.web;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -22,6 +27,7 @@ import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
@@ -67,6 +73,12 @@ public class ProjectDesignController extends BaseController {
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -94,9 +106,21 @@ public class ProjectDesignController extends BaseController {
         if(UserUtils.isManager()){
             model.addAttribute("flag","1");
         }
+        ProjectImplementEarly projectRecords = new ProjectImplementEarly();
+        //判断项目名称是否为空
+        if(StringUtils.isNotBlank(constructionContract.getProjectName())){
+            projectRecords.setProjectName(constructionContract.getProjectName());
+        }
+        if(StringUtils.isNotBlank(constructionContract.getContractName())){
+            WorkContractInfo workContractInfo = new WorkContractInfo();
+            workContractInfo.setName(constructionContract.getContractName());
+            projectRecords.setWorkContractInfo(workContractInfo);
+        }
         //查询施工合同列表信息
-        Page<ConstructionContract> page = contractService.findPage(new Page<ConstructionContract>(request, response), constructionContract);
+        //Page<ConstructionContract> page = contractService.findPage(new Page<ConstructionContract>(request, response), constructionContract);
+        Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "43");
         return "modules/projectrecord/implementStage/projectDesignList";
     }
 
@@ -111,11 +135,56 @@ public class ProjectDesignController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //判断infoid是否为空来获取对应的工作内容详情信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = projectVisaService.getProjectContentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = projectVisaService.getProjectContentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
+
         }
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
@@ -130,6 +199,7 @@ public class ProjectDesignController extends BaseController {
         }
         concealProjectInfo.setCondition("design");
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         //判断是否为查看页面 是则跳转查看页面
         if("view".equals(concealProjectInfo.getView())){

+ 71 - 18
src/main/java/com/jeeplus/modules/projectVisa/web/ProjectVisaController.java

@@ -1,44 +1,38 @@
 package com.jeeplus.modules.projectVisa.web;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
-import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.ThisLocalityDownloadUtil;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
-import com.jeeplus.modules.act.entity.Act;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
 import com.jeeplus.modules.projectrecord.entity.*;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
-import com.jeeplus.modules.projectrecord.service.concealProject.ConcealProjectService;
-import com.jeeplus.modules.sys.entity.Area;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
-import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
-import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
-import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
-import com.jeeplus.modules.workcontent.entity.WorkConcealProject;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workreceiptsregister.entity.ResponseEntity;
-import org.activiti.engine.runtime.ProcessInstance;
-import org.activiti.engine.task.Task;
-import org.apache.shiro.authz.annotation.Logical;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
@@ -49,9 +43,6 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.net.URLDecoder;
-import java.text.ParsePosition;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 //实施阶段-签证汇总
@@ -66,8 +57,6 @@ public class ProjectVisaController extends BaseController {
     @Autowired
     private ContractService contractService;
     @Autowired
-    private WorkClientAttachmentDao workClientAttachmentDao;
-    @Autowired
     private WorkattachmentService workattachmentService;
     @Autowired
     private ProjectControlTableService projectControlTableService;
@@ -75,6 +64,12 @@ public class ProjectVisaController extends BaseController {
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -102,9 +97,21 @@ public class ProjectVisaController extends BaseController {
         if(UserUtils.isManager()){
             model.addAttribute("flag","1");
         }
+        ProjectImplementEarly projectRecords = new ProjectImplementEarly();
+        //判断项目名称是否为空
+        if(StringUtils.isNotBlank(constructionContract.getProjectName())){
+            projectRecords.setProjectName(constructionContract.getProjectName());
+        }
+        if(StringUtils.isNotBlank(constructionContract.getContractName())){
+            WorkContractInfo workContractInfo = new WorkContractInfo();
+            workContractInfo.setName(constructionContract.getContractName());
+            projectRecords.setWorkContractInfo(workContractInfo);
+        }
         //查询施工合同列表信息
-        Page<ConstructionContract> page = contractService.findPage(new Page<ConstructionContract>(request, response), constructionContract);
+        //Page<ConstructionContract> page = contractService.findPage(new Page<ConstructionContract>(request, response), constructionContract);
+        Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "45");
         return "modules/projectrecord/implementStage/projectVisaList";
     }
 
@@ -119,11 +126,56 @@ public class ProjectVisaController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //判断infoid是否为空来获取对应的工作内容详情信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = projectVisaService.getProjectContentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = projectVisaService.getProjectContentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
         }
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
@@ -139,6 +191,7 @@ public class ProjectVisaController extends BaseController {
         }
         concealProjectInfo.setCondition("visa");
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         //判断是否为查看页面 是则跳转查看页面
         if("view".equals(concealProjectInfo.getView())){

+ 59 - 1
src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectBasedDataDao.java

@@ -4,10 +4,15 @@
 package com.jeeplus.modules.projectcontentinfo.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
+import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectcontentinfo.entity.OverAllContentBasedInfo;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectAchievementFileData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectBasedData;
 import org.apache.ibatis.annotations.Param;
+import org.apache.poi.ss.formula.functions.T;
 
 import java.util.List;
 
@@ -39,4 +44,57 @@ public interface ProjectBasedDataDao extends CrudDao<ProjectBasedData> {
      * @return
      */
     int deleteBasedDataAndWorkAttachment(@Param("basedDataId") String basedDataId,@Param("workAttachmentId") String workAttachmentId);
-}
+
+
+    /**
+     * 根据工作内容id查询和一句资料引用关系信息
+     * @param contentId
+     * @return
+     */
+    List<ProjectTemplateInfo> getContentBasedInfoList(String contentId);
+
+    ProjectTemplateInfo getBasedInfo(String id);
+
+    ProjectTemplateInfo getAchievementInfo(String id);
+
+    /**
+     * 添加工作内容 和依据资料引用关系信息
+     * @param info
+     * @return
+     */
+    Integer saveBasedIdAndContentId(OverAllContentBasedInfo info);
+
+    Integer saveAchievementIdAndContentId(OverAllContentBasedInfo info);
+
+    /**
+     * 查询是否已存在数据
+     * @param info
+     * @return
+     */
+    Integer getContentBasedCount(OverAllContentBasedInfo info);
+    /**
+     * 查询是否已存在数据
+     * @param info
+     * @return
+     */
+    Integer getContentAchievementCount(OverAllContentBasedInfo info);
+
+    /**
+     * 保存成果文件信息
+     * @param info
+     * @return
+     */
+    Integer saveAchievementFileData(ProjectAchievementFileData info);
+
+
+    ProjectAchievementFileData getAchievementFileDataNumber(ProjectAchievementFileData projectBasedData);
+
+    /**
+     * 根据工作内容id查询和成果文件引用关系信息
+     * @param contentId
+     * @return
+     */
+    List<ProjectTemplateInfo> getAchievementFileDataList(String contentId);
+
+    List<ProjectAchievementFileData> findAchievementPage(ProjectAchievementFileData entity);
+}

+ 16 - 1
src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectContentDataDao.java

@@ -46,6 +46,14 @@ public interface ProjectContentDataDao extends CrudDao<ProjectContentData> {
     List<ProjectRecordTreeData> getProjectContentDataList(@Param("projectId")String projectId,@Param("projectTypeParentId")String projectTypeParentId);
 
     /**
+     * 根据项目编号和阶段Type以及阶段类型获取信息
+     * @param projectId 项目id
+     * @param projectTypeParentId 阶段type
+     * @return
+     */
+    List<ProjectRecordTreeData> getProjectContentDataByTypeIdList(@Param("projectId")String projectId,@Param("projectTypeParentId")String projectTypeParentId, @Param("projectTypeId") String projectTypeId);
+
+    /**
      * 根据项目编号和阶段Type获取信息(实施阶段)
      * @param projectId 项目id
      * @param projectTypeParentId 阶段type
@@ -90,4 +98,11 @@ public interface ProjectContentDataDao extends CrudDao<ProjectContentData> {
      */
     void deleteProjectContentBased(@Param("contentId") String contentId,@Param("basedId") String basedId);
 
-}
+    /**
+     * 修改指定工作内容详情信息的id
+     * @param newId
+     * @param oldId
+     * @return
+     */
+    Integer updateId(@Param("newId")String newId, @Param("oldId")String oldId);
+}

+ 32 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectcontentinfoDao.java

@@ -5,6 +5,7 @@ package com.jeeplus.modules.projectcontentinfo.dao;
 
 import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
+import com.jeeplus.modules.projectcontentinfo.entity.OverAllContentBasedInfo;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentTreeData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
 import com.jeeplus.modules.ruralprojectrecords.entity.ReportedConsultant;
@@ -116,4 +117,35 @@ public interface ProjectcontentinfoDao extends CrudDao<Projectcontentinfo> {
 	 * @return
 	 */
 	List<WorkStaffCertificate> getCertificateByUser(@Param("userId") String userId);
+
+	/**
+	 * 添加工作内容和依据资料引用关联关系
+	 * @param contentId
+	 * @param basedId
+	 * @return
+	 */
+	Integer insertContentBasedInfo(@Param("contentId") String contentId, @Param("basedId") String basedId);
+
+	/**
+	 * 查询是否已存在数据
+	 * @param contentId
+	 * @param basedId
+	 * @return
+	 */
+	Integer getContentBasedCount(@Param("contentId") String contentId, @Param("basedId") String basedId);
+	/**
+	 * 查询是否已存在数据
+	 * @param contentId
+	 * @param achievementId
+	 * @return
+	 */
+	Integer getContentAchievementInfo(@Param("contentId") String contentId, @Param("achievementId") String achievementId);
+	/**
+	 * 查询是否已存在数据
+	 * @param contentId
+	 * @param achievementId
+	 * @return
+	 */
+	Integer insertContentAchievementInfo(@Param("contentId") String contentId, @Param("achievementId") String achievementId);
+
 }

+ 11 - 2
src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectBasedData.java

@@ -20,7 +20,7 @@ import java.util.List;
  * @version 2018-06-05
  */
 public class ProjectBasedData extends DataEntity<ProjectBasedData> {
-	
+
 	private static final long serialVersionUID = 1L;
 	private String companyId;		// 公司id
 	private String officeId;		// 部门id
@@ -49,6 +49,7 @@ public class ProjectBasedData extends DataEntity<ProjectBasedData> {
 
     private String flag;
     private String chooseCondition;
+    private String dataCategories;	//资料类别
 
 	public ProjectBasedData() {
 		super();
@@ -249,4 +250,12 @@ public class ProjectBasedData extends DataEntity<ProjectBasedData> {
 	public void setTemporaryUrl(String temporaryUrl) {
 		this.temporaryUrl = temporaryUrl;
 	}
-}
+
+	public String getDataCategories() {
+		return dataCategories;
+	}
+
+	public void setDataCategories(String dataCategories) {
+		this.dataCategories = dataCategories;
+	}
+}

+ 9 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectReportTreeData.java

@@ -27,6 +27,7 @@ public class ProjectReportTreeData {
 
     private String createBy;
     private String forbidden;//项目类型禁用状态
+    private String dataCategories;       //资料类别
 
     public String getId() {
         return id;
@@ -148,4 +149,12 @@ public class ProjectReportTreeData {
     public void setForbidden(String forbidden) {
         this.forbidden = forbidden;
     }
+
+    public String getDataCategories() {
+        return dataCategories;
+    }
+
+    public void setDataCategories(String dataCategories) {
+        this.dataCategories = dataCategories;
+    }
 }

+ 59 - 5
src/main/java/com/jeeplus/modules/projectcontentinfo/entity/Projectcontentinfo.java

@@ -25,7 +25,7 @@ import java.util.List;
  * @version 2018-06-04
  */
 public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
-	
+
 	private static final long serialVersionUID = 1L;
 	private ProjectRecords project;		// 项目id
 	private RuralProjectRecords projectOnRural;		// 项目id
@@ -36,6 +36,7 @@ public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
 	private String dictType;		// 字典类型
 	private String infoId; //详情页id
 	private ProjectBasedData projectBasedData;
+	private ProjectAchievementFileData projectAchievementFileData;
 	private ProjectContentData projectContentData;
 	private ProjectReportData projectReportData;
 	private ProjectReportDataTwo projectReportDataTwo;
@@ -64,12 +65,17 @@ public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
 	private List<ProjectTemplateInfo> fileAttachmentList;   //报告文件
 	private List<ProjectTemplateInfo> fileGistdataList;   //依据性文件
 	private List<ProjectTemplateInfo> fileOtherList;   //其他文件
+	private List<ProjectTemplateInfo> overAllFileGistdataList;   //全过程依据性文件
 
 	private List<String> chargeCriterionList;	//合同收费标准
 
 	private RuralProjectRecordsReported recordsReported;	//上报
 	private List<WorkReviewAudit> projectReviewList;	//复核抽查标准
 	private String reviewScore;		//复核标准总分
+	private String overallProjectTypeId;		//全过程项目类型id
+	private String projectContentDataNewId;		//宜居性资料或者成果文件的id
+	private String projectId;		//宜居性资料或者成果文件的id
+	private List<ProjectTemplateInfo> projectAchievementFileDataList;   //全过程依据性文件
 
 
 	public RuralProjectRecords getProjectOnRural() {
@@ -106,7 +112,7 @@ public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
 	public void setProject(ProjectRecords project) {
 		this.project = project;
 	}
-	
+
 	@ExcelField(title="公司id", align=2, sort=11)
 	public String getCompanyId() {
 		return companyId;
@@ -115,7 +121,7 @@ public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
 	public void setCompanyId(String companyId) {
 		this.companyId = companyId;
 	}
-	
+
 	@ExcelField(title="部门id", align=2, sort=12)
 	public String getOfficeId() {
 		return officeId;
@@ -124,7 +130,7 @@ public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
 	public void setOfficeId(String officeId) {
 		this.officeId = officeId;
 	}
-	
+
 	@ExcelField(title="名称", align=2, sort=13)
 	public String getName() {
 		return name;
@@ -381,4 +387,52 @@ public class Projectcontentinfo extends TreeEntity<Projectcontentinfo> {
 	public void setReviewScore(String reviewScore) {
 		this.reviewScore = reviewScore;
 	}
-}
+
+	public String getOverallProjectTypeId() {
+		return overallProjectTypeId;
+	}
+
+	public void setOverallProjectTypeId(String overallProjectTypeId) {
+		this.overallProjectTypeId = overallProjectTypeId;
+	}
+
+	public List<ProjectTemplateInfo> getOverAllFileGistdataList() {
+		return overAllFileGistdataList;
+	}
+
+	public void setOverAllFileGistdataList(List<ProjectTemplateInfo> overAllFileGistdataList) {
+		this.overAllFileGistdataList = overAllFileGistdataList;
+	}
+
+	public String getProjectContentDataNewId() {
+		return projectContentDataNewId;
+	}
+
+	public void setProjectContentDataNewId(String projectContentDataNewId) {
+		this.projectContentDataNewId = projectContentDataNewId;
+	}
+
+	public String getProjectId() {
+		return projectId;
+	}
+
+	public void setProjectId(String projectId) {
+		this.projectId = projectId;
+	}
+
+	public ProjectAchievementFileData getProjectAchievementFileData() {
+		return projectAchievementFileData;
+	}
+
+	public void setProjectAchievementFileData(ProjectAchievementFileData projectAchievementFileData) {
+		this.projectAchievementFileData = projectAchievementFileData;
+	}
+
+	public List<ProjectTemplateInfo> getProjectAchievementFileDataList() {
+		return projectAchievementFileDataList;
+	}
+
+	public void setProjectAchievementFileDataList(List<ProjectTemplateInfo> projectAchievementFileDataList) {
+		this.projectAchievementFileDataList = projectAchievementFileDataList;
+	}
+}

+ 117 - 3
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectBasedDataService.java

@@ -6,14 +6,19 @@ package com.jeeplus.modules.projectcontentinfo.service;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectBasedDataDao;
+import com.jeeplus.modules.projectcontentinfo.entity.OverAllContentBasedInfo;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectAchievementFileData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectBasedData;
 import com.jeeplus.modules.sys.dao.WorkattachmentDao;
 import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
+import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -79,11 +84,11 @@ public class ProjectBasedDataService extends CrudService<ProjectBasedDataDao, Pr
 	public List<RuralProjectBasedData> findListOnRural(RuralProjectBasedData projectBasedData) {
 		return dao.findListOnRural(projectBasedData);
 	}
-	
+
 	public Page<ProjectBasedData> findPage(Page<ProjectBasedData> page, ProjectBasedData projectBasedData) {
 		return super.findPage(page, projectBasedData);
 	}
-	
+
 	@Transactional(readOnly = false)
 	public void save(ProjectBasedData projectBasedData) {
 		super.save(projectBasedData);
@@ -100,4 +105,113 @@ public class ProjectBasedDataService extends CrudService<ProjectBasedDataDao, Pr
 	public int deleteBasedDataAndWorkAttachment(String basedDataId,String workAttachmentId){
 		return dao.deleteBasedDataAndWorkAttachment(basedDataId,workAttachmentId);
 	}
-}
+	/**
+	 * 添加工作内容 和依据资料引用关系信息
+	 * @param overAllContentBasedInfo
+	 * @return
+	 */
+	@Transactional(readOnly = false)
+	public void saveBasedIdAndContentId(OverAllContentBasedInfo overAllContentBasedInfo){
+		//查询是否已存在相同数据
+		Integer contentBasedCount = dao.getContentBasedCount(overAllContentBasedInfo);
+		if(0 == contentBasedCount){
+			dao.saveBasedIdAndContentId(overAllContentBasedInfo);
+		}
+	}
+
+	public List<ProjectTemplateInfo> getContentBasedInfoList (String contentId){
+		List<ProjectTemplateInfo> contentBasedInfoList = dao.getContentBasedInfoList(contentId);
+		//转换类型
+		for (ProjectTemplateInfo info : contentBasedInfoList) {
+			info.setAttachName(DictUtils.getDictLabel(info.getAttachName(),"project_document_type",""));
+			List<WorkClientAttachment> attchments = getAttchmentsOnOverAll(info.getId());
+			info.setWorkAttachments(attchments);
+		}
+		return contentBasedInfoList;
+	}
+
+	/**
+	 * 查询附件信息
+	 * @param attachmentId
+	 * @return
+	 */
+	public List<WorkClientAttachment> getAttchmentsOnOverAll (String attachmentId){
+		WorkClientAttachment attchment = new WorkClientAttachment();
+		attchment.setAttachmentId(attachmentId);
+		List<WorkClientAttachment> attachments = workattachmentService.getAttachmentList(attchment);
+		//数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+		workattachmentService.clientAttachmentManageOnUrl(attachments);
+		return attachments;
+	}
+
+	public ProjectTemplateInfo getContentBasedInfoById (String id){
+		ProjectTemplateInfo getBasedInfo = dao.getBasedInfo(id);
+		return getBasedInfo;
+	}
+
+	public ProjectTemplateInfo getContentAchievementInfoById (String id){
+		ProjectTemplateInfo getBasedInfo = dao.getAchievementInfo(id);
+		return getBasedInfo;
+	}
+
+
+	/**
+	 * 新增成果文件
+	 * @param projectBasedData
+	 */
+	@Transactional(readOnly = false)
+	public void saveAchievementFileData(ProjectAchievementFileData projectBasedData) {
+		projectBasedData.preInsert();
+		dao.saveAchievementFileData(projectBasedData);
+	}
+
+
+	public String getAchievementDataNumber(ProjectRecords projectRecords) {
+		if (projectRecords!=null && StringUtils.isNotBlank(projectRecords.getId())){
+			ProjectAchievementFileData projectBasedData = new ProjectAchievementFileData();
+			projectBasedData.setProject(projectRecords);
+			ProjectAchievementFileData value = dao.getAchievementFileDataNumber(projectBasedData);
+			if (value==null || StringUtils.isBlank(value.getNumber())){
+				return "001";
+			}else {
+				return UserUtils.getNumber(value.getNumber());
+			}
+		}else {
+			return "001";
+		}
+
+	}
+
+
+
+	public List<ProjectTemplateInfo> getAchievementFileDataById (String contentId){
+		List<ProjectTemplateInfo> contentBasedInfoList = dao.getAchievementFileDataList(contentId);
+		//转换类型
+		for (ProjectTemplateInfo info : contentBasedInfoList) {
+			List<WorkClientAttachment> attchments = getAttchmentsOnOverAll(info.getId());
+			info.setWorkAttachments(attchments);
+		}
+		return contentBasedInfoList;
+	}
+
+
+	public Page<ProjectAchievementFileData> findAchievementPage(Page<ProjectAchievementFileData> page, ProjectAchievementFileData projectBasedData) {
+		projectBasedData.setPage(page);
+		page.setList(dao.findAchievementPage(projectBasedData));
+		return page;
+	}
+
+	/**
+	 * 添加工作内容 和依据资料引用关系信息
+	 * @param overAllContentBasedInfo
+	 * @return
+	 */
+	@Transactional(readOnly = false)
+	public void saveAchievementIdAndContentId(OverAllContentBasedInfo overAllContentBasedInfo){
+		//查询是否已存在相同数据
+		Integer contentBasedCount = dao.getContentAchievementCount(overAllContentBasedInfo);
+		if(0 == contentBasedCount){
+			dao.saveAchievementIdAndContentId(overAllContentBasedInfo);
+		}
+	}
+}

+ 28 - 7
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectContentDataService.java

@@ -8,6 +8,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectBasedDataDao;
@@ -73,7 +74,7 @@ public class ProjectContentDataService extends CrudService<ProjectContentDataDao
         List<ProjectBasedData> list = projectBasedDataDao.queryListByContentId(projectContentData.getId());
         projectContentData.setProjectBasedDataList(list);
     }
-	
+
 	public List<ProjectContentData> findList(ProjectContentData projectContentData) {
 		return super.findList(projectContentData);
 	}
@@ -87,11 +88,11 @@ public class ProjectContentDataService extends CrudService<ProjectContentDataDao
 	    //查询工作内容详情信息
 		return dao.findListOnRural(projectContentData);
 	}
-	
+
 	public Page<ProjectContentData> findPage(Page<ProjectContentData> page, ProjectContentData projectContentData) {
 		return super.findPage(page, projectContentData);
 	}
-	
+
 	@Transactional(readOnly = false)
 	public void save(ProjectContentData projectContentData) {
 	    if(StringUtils.isBlank(projectContentData.getNumber())){
@@ -110,7 +111,21 @@ public class ProjectContentDataService extends CrudService<ProjectContentDataDao
         }
 		super.save(projectContentData);
 	}
-	
+
+    /**
+     * 修改指定工作内容详情信息的id
+     * @param newId
+     * @param projectContentData
+     */
+	@Transactional(readOnly = false)
+	public void updateId(String newId, ProjectContentData projectContentData) {
+	    if(StringUtils.isNotBlank(projectContentData.getId()) && StringUtils.isNotBlank(newId)){
+	        dao.updateId(newId,projectContentData.getId());
+        }
+	}
+
+
+
 	@Transactional(readOnly = false)
 	public void delete(ProjectContentData projectContentData) {
 	    //删除附件
@@ -232,9 +247,15 @@ public class ProjectContentDataService extends CrudService<ProjectContentDataDao
      * @param projectTypeParentId
      * @return
      */
-    public List<ProjectRecordTreeData> getProjectContentDataList(String projectId,String projectTypeParentId) {
+    public List<ProjectRecordTreeData> getProjectContentDataList(String projectId,String projectTypeParentId,String projectTypeId) {
         //根据项目编号和阶段Type获取信息
-        List<ProjectRecordTreeData> projectRecordTreeDataList = dao.getProjectContentDataList(projectId,projectTypeParentId);
+        List<ProjectRecordTreeData> projectRecordTreeDataList = Lists.newArrayList();
+        if(StringUtils.isNotBlank(projectTypeId)){
+            projectRecordTreeDataList = dao.getProjectContentDataByTypeIdList(projectId,projectTypeParentId,projectTypeId);
+        }else{
+            projectRecordTreeDataList = dao.getProjectContentDataList(projectId,projectTypeParentId);
+        }
+
         return projectRecordTreeDataList;
     }
 
@@ -512,4 +533,4 @@ public class ProjectContentDataService extends CrudService<ProjectContentDataDao
         }
         return workReviewAudits;
     }
-}
+}

+ 62 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectcontentinfoService.java

@@ -268,6 +268,26 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 			dataName = basedData.getNumber()+basedData.getName();
 			infoId = basedData.getId();
 			save = true;
+		}if (projectcontentinfo.getProjectAchievementFileData()!=null){
+			ProjectAchievementFileData basedData = projectcontentinfo.getProjectAchievementFileData();
+			basedData.setCompanyId(contentinfo.getCompanyId());
+			basedData.setOfficeId(contentinfo.getOfficeId());
+			basedData.setProject(contentinfo.getProject());
+			if (StringUtils.isBlank(basedData.getNumber())) {
+				//生成依据性资料编号
+				String number = projectBasedDataService.getAchievementDataNumber(contentinfo.getProject());
+				basedData.setNumber(number);
+			}
+			dictName = DictUtils.getDictLabel(basedData.getType(),"project_document_type","");
+			//保存成果文件资料
+			projectBasedDataService.saveAchievementFileData(basedData);
+			count="1";
+			sort=100;
+			name = "成果文件资料";
+			dictType = basedData.getType();
+			dataName = basedData.getNumber()+basedData.getName();
+			infoId = basedData.getId();
+			save = true;
 		}else if(projectcontentinfo.getProjectContentData()!=null){
 			//保存工作内容相关数据
 			ProjectContentData projectContentData = projectcontentinfo.getProjectContentData();
@@ -283,6 +303,11 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 				projectContentData.setContractId(projectcontentinfo.getProject().getWorkContractInfo().getId());
 			}*/
 			projectContentDataService.save(projectContentData);
+			//如果工作内容详情暂存的id不为空则需要将刚保存的工作内容详情的id进行替换,保证插入的附件和当前信息保持一致
+			if(StringUtils.isNotBlank(projectcontentinfo.getProjectContentDataNewId())){
+				projectContentDataService.updateId(projectcontentinfo.getProjectContentDataNewId(),projectContentData);
+				projectContentData.setId(projectcontentinfo.getProjectContentDataNewId());
+			}
 			//保存工作内容详情
 			if(StringUtils.isNotBlank(projectContentData.getContentDetail())) {
 //				if(projectContentData.getType().equals("41")){
@@ -569,6 +594,16 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 						workattachment.setAttachmentFlag("86");
 					}
 					workattachment.setAttachmentUser(UserUtils.getUser().getId());
+
+					if(projectcontentinfo.getProjectBasedData()!=null){
+						workattachment.setAttachmentId(projectcontentinfo.getProjectBasedData().getId());
+					}else if(projectcontentinfo.getProjectAchievementFileData() != null){
+						workattachment.setAttachmentId(projectcontentinfo.getProjectAchievementFileData().getId());
+					}else{
+						if(StringUtils.isNotBlank(projectcontentinfo.getProjectContentDataNewId())){
+							workattachment.setAttachmentId(projectcontentinfo.getProjectContentDataNewId());
+						}
+					}
 					if (StringUtils.isBlank(workattachment.getId()) || "null".equals(workattachment.getId())) {
 						workattachment.preInsert();
 						if(StringUtils.isNotBlank(workattachment.getQuoteId())){
@@ -1662,4 +1697,31 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 		return map;
 	}
 
+
+	/**
+	 * 添加工作内容和依据资料引用关联关系
+	 * @param contentId
+	 * @param basedId
+	 */
+	@Transactional(readOnly = false)
+	public void insertContentBasedInfo(String contentId,String basedId){
+		//查询是否已存在相同数据
+		Integer contentBasedCount = dao.getContentBasedCount(contentId, basedId);
+		if(0 == contentBasedCount){
+			dao.insertContentBasedInfo(contentId,basedId);
+		}
+	}
+	/**
+	 * 添加工作内容和依据资料引用关联关系
+	 * @param contentId
+	 * @param basedId
+	 */
+	@Transactional(readOnly = false)
+	public void insertContentAchievementInfo(String contentId,String basedId){
+		//查询是否已存在相同数据
+		Integer contentBasedCount = dao.getContentAchievementInfo(contentId, basedId);
+		if(0 == contentBasedCount){
+			dao.insertContentAchievementInfo(contentId,basedId);
+		}
+	}
 }

+ 53 - 9
src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectBasedDataController.java

@@ -13,6 +13,8 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.utils.excel.ExportExcel;
 import com.jeeplus.common.utils.excel.ImportExcel;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectcontentinfo.entity.OverAllContentBasedInfo;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectAchievementFileData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import org.apache.shiro.authz.annotation.Logical;
@@ -43,7 +45,7 @@ public class ProjectBasedDataController extends BaseController {
 
 	@Autowired
 	private ProjectBasedDataService projectBasedDataService;
-	
+
 	@ModelAttribute
 	public ProjectBasedData get(@RequestParam(required=false) String id) {
 		ProjectBasedData entity = null;
@@ -55,14 +57,14 @@ public class ProjectBasedDataController extends BaseController {
 		}
 		return entity;
 	}
-	
+
 	/**
 	 * 依据性资料列表页面
 	 */
 	@RequiresPermissions("projectcontentinfo:projectBasedData:list")
 	@RequestMapping(value = {"list", ""})
 	public String list(ProjectBasedData projectBasedData, HttpServletRequest request, HttpServletResponse response, Model model) {
-		Page<ProjectBasedData> page = projectBasedDataService.findPage(new Page<ProjectBasedData>(request, response), projectBasedData); 
+		Page<ProjectBasedData> page = projectBasedDataService.findPage(new Page<ProjectBasedData>(request, response), projectBasedData);
 		model.addAttribute("page", page);
 		return "modules/projectcontentinfo/projectBasedDataList";
 	}
@@ -96,7 +98,7 @@ public class ProjectBasedDataController extends BaseController {
 		addMessage(redirectAttributes, "保存依据性资料成功");
 		return "redirect:"+Global.getAdminPath()+"/projectcontentinfo/projectBasedData/?repage";
 	}
-	
+
 	/**
 	 * 删除依据性资料
 	 */
@@ -107,7 +109,7 @@ public class ProjectBasedDataController extends BaseController {
 		addMessage(redirectAttributes, "删除依据性资料成功");
 		return "redirect:"+Global.getAdminPath()+"/projectcontentinfo/projectBasedData/?repage";
 	}
-	
+
 	/**
 	 * 批量删除依据性资料
 	 */
@@ -121,7 +123,7 @@ public class ProjectBasedDataController extends BaseController {
 		addMessage(redirectAttributes, "删除依据性资料成功");
 		return "redirect:"+Global.getAdminPath()+"/projectcontentinfo/projectBasedData/?repage";
 	}
-	
+
 	/**
 	 * 导出excel文件
 	 */
@@ -171,7 +173,7 @@ public class ProjectBasedDataController extends BaseController {
 		}
 		return "redirect:"+Global.getAdminPath()+"/projectcontentinfo/projectBasedData/?repage";
     }
-	
+
 	/**
 	 * 下载导入依据性资料数据模板
 	 */
@@ -180,7 +182,7 @@ public class ProjectBasedDataController extends BaseController {
     public String importFileTemplate(HttpServletResponse response, RedirectAttributes redirectAttributes) {
 		try {
             String fileName = "依据性资料数据导入模板.xlsx";
-    		List<ProjectBasedData> list = Lists.newArrayList(); 
+    		List<ProjectBasedData> list = Lists.newArrayList();
     		new ExportExcel("依据性资料数据", ProjectBasedData.class, 1).setDataList(list).write(response, fileName).dispose();
     		return null;
 		} catch (Exception e) {
@@ -217,4 +219,46 @@ public class ProjectBasedDataController extends BaseController {
 		return map;
 	}
 
-}
+	/**
+	 * 添加工作内容 和依据资料引用关系信息
+	 * @param overAllContentBasedInfo
+	 * @return
+	 */
+	@RequestMapping("/saveBasedIdAndContentId")
+	@ResponseBody
+	public HashMap<Object, Object> saveBasedIdAndContentId(OverAllContentBasedInfo overAllContentBasedInfo){
+		if(StringUtils.isNotBlank(overAllContentBasedInfo.getBasedId()) && StringUtils.isNotBlank(overAllContentBasedInfo.getContentId())) {
+			projectBasedDataService.saveBasedIdAndContentId(overAllContentBasedInfo);
+		}
+		HashMap<Object, Object> map = Maps.newHashMap();
+		map.put("str","success");
+		return map;
+	}
+
+
+	@RequestMapping("selectAchievementList")
+	public String selectAchievementList(ProjectAchievementFileData projectBasedData, Model model, String searchLabel, HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
+		Page<ProjectAchievementFileData> page = projectBasedDataService.findAchievementPage(new Page<ProjectAchievementFileData>(request,response), projectBasedData);
+		String searchLabel1 = URLDecoder.decode(searchLabel,"utf-8");
+		model.addAttribute("obj", projectBasedData);
+		model.addAttribute("page", page);
+		model.addAttribute("searchLabel",searchLabel1);
+		return "modules/sys/gridselectProjbasedata";
+	}
+
+	/**
+	 * 添加工作内容 和依据资料引用关系信息
+	 * @param overAllContentBasedInfo
+	 * @return
+	 */
+	@RequestMapping("/saveAchievementIdAndContentId")
+	@ResponseBody
+	public HashMap<Object, Object> saveAchievementIdAndContentId(OverAllContentBasedInfo overAllContentBasedInfo){
+		if(StringUtils.isNotBlank(overAllContentBasedInfo.getBasedId()) && StringUtils.isNotBlank(overAllContentBasedInfo.getContentId())) {
+			projectBasedDataService.saveAchievementIdAndContentId(overAllContentBasedInfo);
+		}
+		HashMap<Object, Object> map = Maps.newHashMap();
+		map.put("str","success");
+		return map;
+	}
+}

+ 109 - 2
src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectcontentinfoController.java

@@ -13,6 +13,7 @@ import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.entity.ProjectTemplateType;
 import com.jeeplus.modules.projectType.service.ProjectResultsFileTemplateService;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
@@ -22,6 +23,7 @@ import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.early.ProjectEarlyReviewService;
 import com.jeeplus.modules.sys.entity.MainDictDetail;
@@ -30,6 +32,7 @@ import com.jeeplus.modules.sys.service.DictService;
 import com.jeeplus.modules.sys.service.WorkattachmentService;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workcontent.entity.WorkContentClaim;
 import com.jeeplus.modules.workcontent.entity.WorkContentContractSum;
@@ -95,6 +98,9 @@ public class ProjectcontentinfoController extends BaseController {
 	private ProjectEarlyReviewService projectEarlyReviewService;
 	@Autowired
 	private ProjectResultsFileTemplateService projectResultsFileTemplateService;
+	@Autowired
+	private ProjectImplementEarlyService projectImplementEarlyService;
+
 	@ModelAttribute("projectcontentinfo")
 	public Projectcontentinfo get(@RequestParam(required=false) String id) {
 		Projectcontentinfo entity = null;
@@ -601,6 +607,11 @@ public class ProjectcontentinfoController extends BaseController {
 		String dictType = projectcontentinfo.getDictType();
 		//根据项目id获取项目对象
 		ProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo.getProject().getId());
+		//获取前端传过来的全过程类型id
+		if(null != projectcontentinfo.getProject() && null != records && StringUtils.isNotBlank(projectcontentinfo.getProject().getOverallProjectTypeId())){
+			records.setOverallProjectTypeId(projectcontentinfo.getProject().getOverallProjectTypeId());
+			projectcontentinfo.setOverallProjectTypeId(projectcontentinfo.getProject().getOverallProjectTypeId());
+		}
 		projectcontentinfo.setProject(records);
 		if (projectcontentinfo.getView().contains("basedData")){
 			ProjectBasedData basedData = null;
@@ -636,6 +647,31 @@ public class ProjectcontentinfoController extends BaseController {
 				}
 			}
 
+		}if (projectcontentinfo.getView().contains("achievementFileData")){
+			ProjectAchievementFileData projectAchievementFileData = new ProjectAchievementFileData();
+			if (StringUtils.isNotBlank(dictType)){
+				projectAchievementFileData.setType(dictType);
+			}
+			if (projectAchievementFileData.getUploadUser()==null || StringUtils.isBlank(projectAchievementFileData.getUploadUser().getId())){
+				projectAchievementFileData.setUploadUser(UserUtils.getUser());
+			}
+			if (projectAchievementFileData.getUploadDate()==null){
+				projectAchievementFileData.setUploadDate(new Date());
+			}
+			projectcontentinfo.setProjectAchievementFileData(projectAchievementFileData);
+			model.addAttribute("projectcontentinfo", projectcontentinfo);
+			if (projectcontentinfo.getView().equals("achievementFileView")){
+				return "modules/projectcontentinfo/basedDataView";
+			}else {
+				if (projectAchievementFileData!=null && projectAchievementFileData.getCreateBy()!=null && StringUtils.isNotBlank(projectAchievementFileData.getCreateBy().getId()) && projectAchievementFileData.getCreateBy().getId().equals(UserUtils.getUser().getId())){
+					return "modules/projectcontentinfo/achievementFileDataForm";
+				}else if(projectAchievementFileData==null || StringUtils.isBlank(projectAchievementFileData.getId())) {
+					return "modules/projectcontentinfo/achievementFileDataForm";
+				}else {
+					return "modules/projectcontentinfo/basedDataView";
+				}
+			}
+
 		}else if (projectcontentinfo.getView().contains("content")){
 			ProjectContentData projectContentData = new ProjectContentData();
 			projectContentData.setType(dictType);
@@ -644,7 +680,46 @@ public class ProjectcontentinfoController extends BaseController {
 			}else if (projectcontentinfo.getProjectContentData()!=null && StringUtils.isNotBlank(projectcontentinfo.getProjectContentData().getId())) {
 				projectContentData = projectContentDataService.get(projectcontentinfo.getProjectContentData().getId());
 			}
+			if(StringUtils.isNotBlank(projectContentData.getId())){
+				//捞取对应的依据性明细列表信息
+				//获取该工作内容的依据性资料信息
+				List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getProject().getOverallProjectTypeId());
+
+				List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+				if(projectBasedDataList.size()>0){
+					for (ProjectBasedData projectBasedData: projectBasedDataList) {
+						//遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+						ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+						projectTemplateInfo.setName(projectBasedData.getName());
+						projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+						projectTemplateInfo.setId(projectBasedData.getId());
+						//根据项目id和阶段信息id查询对应附件信息
+						List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+						projectTemplateInfo.setWorkAttachments(attachments);
+						overAllFileGistdataList.add(projectTemplateInfo);
+					}
+				}
+				//查询工作内容和依据资料引用关联关系
+				List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+				overAllFileGistdataList.addAll(contentBasedInfoList);
+				//还需要添加导入或者写入的文件信息
+				projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+				//处理成果文件信息
+				//查询工作内容和成果文件引用关联关系
+				List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(projectContentData.getId());
+				projectcontentinfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
+
+
+				model.addAttribute("projectRecords", records);
+			}
+			//将工作内容的id保存留作查询附件使用
+			if(StringUtils.isNotBlank(projectContentData.getId())){
+				projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+			}
+
 			projectContentData.setMaster(UserUtils.getUser());
+			projectcontentinfo.setProjectContentData(projectContentData);
 			//查询是否含有上传或者引用的依据性文件信息
 			if(StringUtils.isNotBlank(projectContentData.getId())){
 				List<ProjectControlTable> controlData = projectControlTableService.getControlData(projectContentData.getId(),"");
@@ -1013,11 +1088,11 @@ public class ProjectcontentinfoController extends BaseController {
 						return "redirect:"+Global.getAdminPath()+"/project/contractMaterial/?repage";
 					}
 					if("early".equals(projectcontentinfo.getCondition())){
-						return "redirect:"+Global.getAdminPath()+"/project/projectImplementEarly/?repage";
+						return "redirect:"+Global.getAdminPath()+"/project/projectImplementEarly/?repage&overallProjectTypeId="+projectcontentinfo.getProject().getOverallProjectTypeId();
 					}else if("stage".equals(projectcontentinfo.getCondition())){
 						return "redirect:"+Global.getAdminPath()+"/project/projectImplementStage/?repage";
 					}else if("complement".equals(projectcontentinfo.getCondition())){
-						return "redirect:"+Global.getAdminPath()+"/project/projectImplementCompletion/?repage";
+						return "redirect:"+Global.getAdminPath()+"/project/projectImplementCompletion/?repage&overallProjectTypeId="+projectcontentinfo.getProject().getOverallProjectTypeId();
 					}
 					if (StringUtils.isNotBlank(projectcontentinfo.getEdit()) && projectcontentinfo.getEdit().equals("edit")){
 						return "redirect:"+Global.getAdminPath()+"/projectcontentinfo/projectcontentinfo/list?id="+projectcontentinfo.getId()+"&edit=edit";
@@ -1700,6 +1775,38 @@ public class ProjectcontentinfoController extends BaseController {
 			String str = projectcontentinfoService.saveData(projectcontentinfo,1);
 			if (str.equals("true")){
 				ajaxJson.setMsg("保存依据资料成功!");
+				if(StringUtils.isNotBlank(projectcontentinfo.getProjectContentDataNewId())){
+					projectcontentinfoService.insertContentBasedInfo(projectcontentinfo.getProjectContentDataNewId(),projectcontentinfo.getProjectBasedData().getId());
+				}
+				ProjectBasedData basedData = projectcontentinfo.getProjectBasedData();
+				ProjectBasedData projectBasedData = new ProjectBasedData();
+				projectBasedData.setId(basedData.getId());
+				projectBasedData.setNumber(basedData.getNumber());
+				projectBasedData.setName(basedData.getName());
+				projectBasedData.setUploadUser(basedData.getUploadUser());
+				projectBasedData.setUploadDate(basedData.getUploadDate());
+				projectBasedData.setType(basedData.getType());
+				projectBasedData.setTypeLabel(DictUtils.getDictLabel(basedData.getType(),"project_document_type",""));
+				ajaxJson.getBody().put("workBasedData",projectBasedData);
+			}
+		}catch (Exception e){
+			logger.error("ProjectcontentinfoController save Exception e",e);
+			ajaxJson.setSuccess(false);
+		}
+		return ajaxJson;
+	}
+
+	@RequestMapping(value = "ajaxSaveAchieveMentFileData")
+	@ResponseBody
+	public AjaxJson ajaxSaveAchieveMentFileData(Projectcontentinfo projectcontentinfo, HttpServletRequest request, HttpServletResponse response, Model model) {
+		AjaxJson ajaxJson = new AjaxJson();
+		try{
+			String str = projectcontentinfoService.saveData(projectcontentinfo,1);
+			if (str.equals("true")){
+				ajaxJson.setMsg("保存成果文件资料成功!");
+				if(StringUtils.isNotBlank(projectcontentinfo.getProjectContentDataNewId())){
+					projectcontentinfoService.insertContentAchievementInfo(projectcontentinfo.getProjectContentDataNewId(),projectcontentinfo.getProjectAchievementFileData().getId());
+				}
 				ProjectBasedData basedData = projectcontentinfo.getProjectBasedData();
 				ProjectBasedData projectBasedData = new ProjectBasedData();
 				projectBasedData.setId(basedData.getId());

+ 37 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/ConcealProjectInfo.java

@@ -1,6 +1,7 @@
 package com.jeeplus.modules.projectrecord.entity;
 
 import com.jeeplus.common.persistence.TreeEntity;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
@@ -38,6 +39,10 @@ public class ConcealProjectInfo extends TreeEntity<ConcealProjectInfo>  {
 
     private String reportType; //阶段id
     private String reportId;
+    private List<ProjectTemplateInfo> overAllFileGistdataList;   //全过程依据性文件
+    private String overallProjectTypeId;		//全过程项目类型id
+    private String projectContentDataNewId;		//宜居性资料或者成果文件的id
+    private List<ProjectTemplateInfo> projectAchievementFileDataList;   //全过程依据性文件
 
     @Override
     public ConcealProjectInfo getParent() {
@@ -234,4 +239,36 @@ public class ConcealProjectInfo extends TreeEntity<ConcealProjectInfo>  {
     public void setWorkAttachments(List<WorkClientAttachment> workAttachments) {
         this.workAttachments = workAttachments;
     }
+
+    public List<ProjectTemplateInfo> getOverAllFileGistdataList() {
+        return overAllFileGistdataList;
+    }
+
+    public void setOverAllFileGistdataList(List<ProjectTemplateInfo> overAllFileGistdataList) {
+        this.overAllFileGistdataList = overAllFileGistdataList;
+    }
+
+    public String getOverallProjectTypeId() {
+        return overallProjectTypeId;
+    }
+
+    public void setOverallProjectTypeId(String overallProjectTypeId) {
+        this.overallProjectTypeId = overallProjectTypeId;
+    }
+
+    public String getProjectContentDataNewId() {
+        return projectContentDataNewId;
+    }
+
+    public void setProjectContentDataNewId(String projectContentDataNewId) {
+        this.projectContentDataNewId = projectContentDataNewId;
+    }
+
+    public List<ProjectTemplateInfo> getProjectAchievementFileDataList() {
+        return projectAchievementFileDataList;
+    }
+
+    public void setProjectAchievementFileDataList(List<ProjectTemplateInfo> projectAchievementFileDataList) {
+        this.projectAchievementFileDataList = projectAchievementFileDataList;
+    }
 }

+ 37 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/MaterialProjectInfo.java

@@ -1,6 +1,7 @@
 package com.jeeplus.modules.projectrecord.entity;
 
 import com.jeeplus.common.persistence.TreeEntity;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
@@ -37,6 +38,10 @@ public class MaterialProjectInfo extends TreeEntity<MaterialProjectInfo>  {
 
     private String reportType; //阶段id
     private String reportId;
+    private List<ProjectTemplateInfo> overAllFileGistdataList;   //全过程依据性文件
+    private String overallProjectTypeId;		//全过程项目类型id
+    private String projectContentDataNewId;		//宜居性资料或者成果文件的id
+    private List<ProjectTemplateInfo> projectAchievementFileDataList;   //全过程依据性文件
 
     @Override
     public MaterialProjectInfo getParent() {
@@ -233,4 +238,36 @@ public class MaterialProjectInfo extends TreeEntity<MaterialProjectInfo>  {
     public void setWorkAttachments(List<WorkClientAttachment> workAttachments) {
         this.workAttachments = workAttachments;
     }
+
+    public List<ProjectTemplateInfo> getOverAllFileGistdataList() {
+        return overAllFileGistdataList;
+    }
+
+    public void setOverAllFileGistdataList(List<ProjectTemplateInfo> overAllFileGistdataList) {
+        this.overAllFileGistdataList = overAllFileGistdataList;
+    }
+
+    public String getOverallProjectTypeId() {
+        return overallProjectTypeId;
+    }
+
+    public void setOverallProjectTypeId(String overallProjectTypeId) {
+        this.overallProjectTypeId = overallProjectTypeId;
+    }
+
+    public String getProjectContentDataNewId() {
+        return projectContentDataNewId;
+    }
+
+    public void setProjectContentDataNewId(String projectContentDataNewId) {
+        this.projectContentDataNewId = projectContentDataNewId;
+    }
+
+    public List<ProjectTemplateInfo> getProjectAchievementFileDataList() {
+        return projectAchievementFileDataList;
+    }
+
+    public void setProjectAchievementFileDataList(List<ProjectTemplateInfo> projectAchievementFileDataList) {
+        this.projectAchievementFileDataList = projectAchievementFileDataList;
+    }
 }

+ 18 - 0
src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectImplementEarly.java

@@ -107,6 +107,8 @@ public class ProjectImplementEarly extends DataEntity<ProjectImplementEarly> {
     private List<WorkClientAttachment> workAttachments = Lists.newArrayList();
 
     private List<ProjectReportData> projectReportData = Lists.newArrayList();
+    private String overallProjectTypeId;
+    private List<String> idList;
 
     public ProjectImplementEarly() {
         super();
@@ -629,4 +631,20 @@ public class ProjectImplementEarly extends DataEntity<ProjectImplementEarly> {
     public void setProjectType(String projectType) {
         this.projectType = projectType;
     }
+
+    public String getOverallProjectTypeId() {
+        return overallProjectTypeId;
+    }
+
+    public void setOverallProjectTypeId(String overallProjectTypeId) {
+        this.overallProjectTypeId = overallProjectTypeId;
+    }
+
+    public List<String> getIdList() {
+        return idList;
+    }
+
+    public void setIdList(List<String> idList) {
+        this.idList = idList;
+    }
 }

+ 18 - 1
src/main/java/com/jeeplus/modules/projectrecord/entity/ProjectRecords.java

@@ -139,7 +139,8 @@ public class ProjectRecords extends ActEntity<ProjectRecords> {
 
 	private String details;   //开票-非项目开票详情
 	private String planAttachmentId;   //项目计划附件id
-
+	private String overallProjectTypeId;   //全过程项目类型
+	private List<String> idList;
 
 	public ProjectRecords() {
 		super();
@@ -814,4 +815,20 @@ public class ProjectRecords extends ActEntity<ProjectRecords> {
 	public void setPlanAttachmentId(String planAttachmentId) {
 		this.planAttachmentId = planAttachmentId;
 	}
+
+	public String getOverallProjectTypeId() {
+		return overallProjectTypeId;
+	}
+
+	public void setOverallProjectTypeId(String overallProjectTypeId) {
+		this.overallProjectTypeId = overallProjectTypeId;
+	}
+
+	public List<String> getIdList() {
+		return idList;
+	}
+
+	public void setIdList(List<String> idList) {
+		this.idList = idList;
+	}
 }

+ 25 - 4
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectImplementEarlyService.java

@@ -5,6 +5,7 @@ import com.google.common.collect.Maps;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.Collections3;
+import com.jeeplus.common.utils.JedisUtils;
 import com.jeeplus.common.utils.MenuStatusEnum;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.act.entity.Act;
@@ -41,6 +42,7 @@ import com.jeeplus.modules.workactivitymenu.entity.WorkActivityMenu;
 import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientLinkmanDao;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
 import com.jeeplus.modules.workclientinfo.service.WorkClientInfoService;
 import com.jeeplus.modules.workcontractinfo.dao.WorkContractInfoDao;
@@ -57,10 +59,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 项目实施前期service
@@ -127,6 +126,11 @@ public class ProjectImplementEarlyService extends CrudService<ProjectImplementEa
             projectRecords.getSqlMap().put("dsf", dataScopeSql);
         }
         projectRecords.setProjectType("3");
+        String lockProjectIds = JedisUtils.get(UserUtils.getUser().getId() + "overAllLockProject");
+        if(StringUtils.isNotBlank(lockProjectIds)){
+            List<String> idList = Arrays.asList(lockProjectIds.split(","));
+            projectRecords.setIdList(idList);
+        }
         //获取数据条数
         Integer count = dao.getProjectRecodesCount(projectRecords);
         page.setCount(count);
@@ -1042,4 +1046,21 @@ public class ProjectImplementEarlyService extends CrudService<ProjectImplementEa
     public ProjectFollowReport getFollowById(String id) {
         return projectFollowReportDao.get(id);
     }
+
+
+    /**
+     * 根据项目id和阶段信息id查询对应附件信息
+     * @param divIdType
+     * @param basedDataId
+     * @return
+     */
+    public List<WorkClientAttachment> getAttachmentsByDivIdTypeAndBasedDataId(String divIdType , String basedDataId){
+        WorkClientAttachment attchment = new WorkClientAttachment();
+        attchment.setDivIdType(divIdType);
+        attchment.setAttachmentId(basedDataId);
+        List<WorkClientAttachment> attachments = workattachmentService.getListOnOverAll(attchment);
+        //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
+        workattachmentService.clientAttachmentManageOnUrl(attachments);
+        return attachments;
+    }
 }

+ 39 - 4
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java

@@ -6,10 +6,7 @@ package com.jeeplus.modules.projectrecord.service;
 import com.google.common.collect.Maps;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
-import com.jeeplus.common.utils.Collections3;
-import com.jeeplus.common.utils.DateUtils;
-import com.jeeplus.common.utils.IdGen;
-import com.jeeplus.common.utils.MenuStatusEnum;
+import com.jeeplus.common.utils.*;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
 import com.jeeplus.modules.act.utils.ProcessDefCache;
@@ -231,6 +228,11 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
         }
         //添加全过程项目类型标识
 		projectRecords.setProjectType("3");
+		String lockProjectIds = JedisUtils.get(UserUtils.getUser().getId() + "overAllLockProject");
+		if(com.jeeplus.common.utils.StringUtils.isNotBlank(lockProjectIds)){
+			List<String> idList = Arrays.asList(lockProjectIds.split(","));
+			projectRecords.setIdList(idList);
+		}
         //查询数据条数
         int count = dao.queryCount(projectRecords);
         page.setCount(count);
@@ -1467,5 +1469,38 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		return dao.getProjectType(projectTypeId);
 	}
 
+	/**
+	 * 全过程项目锁定
+	 * @param idListStr
+	 * @return
+	 */
+	public String lockProject(String idListStr){
+		List<String> idList = Arrays.asList(idListStr.split(","));
+		User user = UserUtils.getUser();
+		String lockProjectIds = JedisUtils.get(user.getId() + "overAllLockProject");
+		if(StringUtils.isBlank(lockProjectIds)){
+			JedisUtils.set(user.getId() + "overAllLockProject",idListStr,0);
+		}else{
 
+			List<String> lockProjectIdList = Arrays.asList(lockProjectIds.split(","));
+			Set lockProjectIdSet = new HashSet(lockProjectIdList);
+			for (String projectId: idList) {
+				lockProjectIdSet.add(projectId);
+			}
+			lockProjectIdList = new ArrayList<>(lockProjectIdSet);
+			lockProjectIds = StringUtils.join(lockProjectIdList.toArray(), ",");
+			JedisUtils.set(user.getId() + "overAllLockProject",lockProjectIds,0);
+		}
+		return "项目锁定成功";
+	}
+	/**
+	 * 全过程项目解除锁定
+	 * @param
+	 * @return
+	 */
+	public String noLockProject(){
+		User user = UserUtils.getUser();
+		JedisUtils.del(user.getId() + "overAllLockProject");
+		return "项目解除锁定成功";
+	}
 }

+ 58 - 1
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectImplementCompletionController.java

@@ -1,9 +1,14 @@
 package com.jeeplus.modules.projectrecord.web;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -16,6 +21,7 @@ import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -54,6 +60,11 @@ public class ProjectImplementCompletionController {
     @Autowired
     private WorkProjectUserDao workProjectUserDao;
 
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+
     @ModelAttribute
     public ProjectImplementEarly get(@RequestParam(required=false) String id) {
         ProjectImplementEarly entity = null;
@@ -85,6 +96,7 @@ public class ProjectImplementCompletionController {
         //无合同状态下,获取委托方的名称
         List<ProjectImplementEarly> list = page.getList();
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", projectRecords.getOverallProjectTypeId());
         return "modules/projectrecord/implementCompletion/projectImplementCompletionList";
     }
 
@@ -173,7 +185,7 @@ public class ProjectImplementCompletionController {
             //获取阶段Type父节点信息
             String projectType = projectImplementEarlyService.getProjectType(records1.getProjectTypeId(), "竣工阶段");
             //根据项目id查询相关的项目阶段内容
-            List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataList(records1.getId(),projectType);
+            List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataList(records1.getId(),projectType,projectRecords.getOverallProjectTypeId());
             if(0 != reportDataList.size()){
                 Projectcontentinfo select = new Projectcontentinfo();
                 ProjectRecords project = new ProjectRecords();
@@ -229,6 +241,42 @@ public class ProjectImplementCompletionController {
         String projectContentDataName = projectcontentinfo.getProjectContentData().getName();
         //查询项目信息
         ProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo.getProject().getId());
+        //获取前端传过来的全过程类型id
+        if(null != projectcontentinfo.getProject() && null != records && StringUtils.isNotBlank(projectcontentinfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(projectcontentinfo.getProject().getOverallProjectTypeId());
+            projectcontentinfo.setOverallProjectTypeId(projectcontentinfo.getProject().getOverallProjectTypeId());
+
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(projectcontentinfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectcontentinfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectcontentinfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(projectcontentinfo.getProjectContentDataNewId());
+            projectcontentinfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
+
+        }
         projectcontentinfo.setProject(records);
 
 
@@ -239,9 +287,17 @@ public class ProjectImplementCompletionController {
             projectContentData = projectContentDataService.get(projectcontentinfo.getInfoId());
         }else if (projectcontentinfo.getProjectContentData()!=null && StringUtils.isNotBlank(projectcontentinfo.getProjectContentData().getId())) {
             projectContentData = projectContentDataService.get(projectcontentinfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(projectcontentinfo.getProjectContentDataNewId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
         }
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
+        projectContentData.setType(projectcontentinfo.getOverallProjectTypeId());
         if(StringUtils.isNotBlank(projectContentData.getId())){
             //查询对应的过程控制表信息
             List<ProjectControlTable> controlData = projectControlTableService.getControlData(projectContentData.getId(),"");
@@ -261,6 +317,7 @@ public class ProjectImplementCompletionController {
         }
         model.addAttribute("projectcontentinfo", projectcontentinfo);
         model.addAttribute("flag", "complement");
+        model.addAttribute("projectRecords", records);
         //判断是否是查看方法访问
         if (projectcontentinfo.getView().equals("contentView")){
             return "modules/projectcontentinfo/workContentView";

+ 55 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectImplementEarlyController.java

@@ -1,12 +1,14 @@
 package com.jeeplus.modules.projectrecord.web;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.Collections3;
+import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
-import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.entity.*;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -17,13 +19,16 @@ import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.stereotype.Service;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -58,6 +63,8 @@ public class ProjectImplementEarlyController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private WorkProjectUserDao workProjectUserDao;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ProjectImplementEarly get(@RequestParam(required=false) String id) {
@@ -85,6 +92,7 @@ public class ProjectImplementEarlyController {
         //无合同状态下,获取委托方的名称
         List<ProjectImplementEarly> list = page.getList();
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", projectRecords.getOverallProjectTypeId());
         return "modules/projectrecord/implementEarly/projectImplementEarlyList";
     }
 
@@ -172,7 +180,7 @@ public class ProjectImplementEarlyController {
             //获取阶段Type父节点信息
             String projectType = projectImplementEarlyService.getProjectType(records1.getProjectTypeId(), "实施前期");
             //根据项目id查询相关的项目阶段内容
-            List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataList(records1.getId(),projectType);
+            List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataList(records1.getId(),projectType,projectRecords.getOverallProjectTypeId());
             if(0 != reportDataList.size()){
                 Projectcontentinfo select = new Projectcontentinfo();
                 ProjectRecords project = new ProjectRecords();
@@ -228,6 +236,40 @@ public class ProjectImplementEarlyController {
         String projectContentDataName = projectcontentinfo.getProjectContentData().getName();
         //获取项目信息
         ProjectRecords records = projectRecordsService.getQueryProjectUsers(projectcontentinfo.getProject().getId());
+        //获取前端传过来的全过程类型id
+        if(null != projectcontentinfo.getProject() && null != records && StringUtils.isNotBlank(projectcontentinfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(projectcontentinfo.getProject().getOverallProjectTypeId());
+            projectcontentinfo.setOverallProjectTypeId(projectcontentinfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(projectcontentinfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectcontentinfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectcontentinfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(projectcontentinfo.getProjectContentDataNewId());
+            projectcontentinfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
+        }
         //将项目信息添加到工作内容管理中
         projectcontentinfo.setProject(records);
         if (projectcontentinfo.getView().contains("before")){
@@ -238,9 +280,17 @@ public class ProjectImplementEarlyController {
                 projectContentData = projectContentDataService.get(projectcontentinfo.getInfoId());
             }else if (projectcontentinfo.getProjectContentData()!=null && StringUtils.isNotBlank(projectcontentinfo.getProjectContentData().getId())) {
                 projectContentData = projectContentDataService.get(projectcontentinfo.getProjectContentData().getId());
+            }else{
+                //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+                projectContentData.preInsert();
+                if(StringUtils.isBlank(projectcontentinfo.getProjectContentDataNewId())){
+                    projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+                }
+                projectContentData.setId(null);
             }
             //在工作内容详情信息中添加负责人信息
             projectContentData.setMaster(UserUtils.getUser());
+            projectContentData.setType(projectcontentinfo.getOverallProjectTypeId());
             //判断工作内容详情信息是否存在
             if(StringUtils.isNotBlank(projectContentData.getId())){
                 List<ProjectControlTable> controlData = projectControlTableService.getControlData(projectContentData.getId(),"");
@@ -259,6 +309,7 @@ public class ProjectImplementEarlyController {
             }
             model.addAttribute("projectcontentinfo", projectcontentinfo);
             model.addAttribute("flag", "early");
+            model.addAttribute("projectRecords", records);
             //如果是查询则跳转查询页面
             if (projectcontentinfo.getView().equals("contentView")){
                 return "modules/projectcontentinfo/workContentView";

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

@@ -151,7 +151,7 @@ public class ProjectImplementStageController {
             //获取阶段Type父节点信息
             String projectType = projectImplementEarlyService.getProjectType(records1.getProjectTypeId(), "实施阶段");
             //根据项目id查询相关的项目阶段内容
-            List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataList(records1.getId(),projectType);
+            List<ProjectRecordTreeData> reportDataList = projectContentDataService.getProjectContentDataList(records1.getId(),projectType,null);
             if(0 != reportDataList.size()){
                 Projectcontentinfo select = new Projectcontentinfo();
                 ProjectRecords project = new ProjectRecords();

+ 31 - 1
src/main/java/com/jeeplus/modules/projectrecord/web/ProjectRecordsController.java

@@ -734,6 +734,36 @@ public class ProjectRecordsController extends BaseController {
 		}
 		return null;
 	}
-
+	/**
+	 * 项目锁定功能
+	 */
+	@RequiresPermissions("project:projectRecords:lockProject")
+	@RequestMapping(value = "lockProject")
+	public String lockProject(HttpServletRequest request, RedirectAttributes redirectAttributes) {
+		String listIds = request.getParameter("listId");
+		try {
+			String result = projectRecordsService.lockProject(listIds);
+			addMessage(redirectAttributes, result);
+		} catch (Exception e) {
+			addMessage(redirectAttributes, "项目锁定失败!");
+			logger.error("Exception e:"+e);
+		}
+		return "redirect:"+Global.getAdminPath()+"/project/projectRecords/?repage";
+	}
+	/**
+	 * 项目锁定功能
+	 */
+	@RequiresPermissions("project:projectRecords:noLockProject")
+	@RequestMapping(value = "noLockProject")
+	public String noLockProject(RedirectAttributes redirectAttributes) {
+		try {
+			String result = projectRecordsService.noLockProject();
+			addMessage(redirectAttributes, result);
+		} catch (Exception e) {
+			addMessage(redirectAttributes, "项目解除锁定失败!");
+			logger.error("Exception e:"+e);
+		}
+		return "redirect:"+Global.getAdminPath()+"/project/projectRecords/?repage";
+	}
 
 }

+ 60 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/armorForMaterials/ArmorForMaterialsController.java

@@ -1,17 +1,22 @@
 package com.jeeplus.modules.projectrecord.web.armorForMaterials;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -21,9 +26,11 @@ import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.armorForMaterials.ArmorForMaterialsService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,6 +69,12 @@ public class ArmorForMaterialsController extends BaseController {
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -101,6 +114,7 @@ public class ArmorForMaterialsController extends BaseController {
         //获取项目信息
         Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "411");
         return "modules/projectrecord/armorForMaterials/armorForMaterialsList";
     }
 
@@ -258,11 +272,56 @@ public class ArmorForMaterialsController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //根据infoId查询工作内容详情信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = armorForMaterialsService.getProjectContentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = armorForMaterialsService.getProjectContentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
+
         }
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
@@ -278,6 +337,7 @@ public class ArmorForMaterialsController extends BaseController {
 
         concealProjectInfo.setCondition("armor");
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         //判断是否为查看页面方法
         if("view".equals(concealProjectInfo.getType())){

+ 59 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/concealProject/ConcealProjectController.java

@@ -1,17 +1,22 @@
 package com.jeeplus.modules.projectrecord.web.concealProject;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -21,9 +26,11 @@ import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.concealProject.ConcealProjectService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +68,12 @@ public class ConcealProjectController extends BaseController {
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -98,6 +111,7 @@ public class ConcealProjectController extends BaseController {
         //查询已审核通过的项目信息
         Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "410");
         return "modules/projectrecord/concealProject/concealProjectList";
     }
 
@@ -258,11 +272,55 @@ public class ConcealProjectController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //判断infoId是否为空来获取工作内容详情信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = concealProjectService.getProjectContentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = concealProjectService.getProjectContentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
         }
         //添加负责人
         projectContentData.setMaster(UserUtils.getUser());
@@ -281,6 +339,7 @@ public class ConcealProjectController extends BaseController {
         concealProjectInfo.setCondition("conceal");
         //添加工作内容详情信息
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         //判断是否为查看页面,是则跳转查看页面
         if("view".equals(concealProjectInfo.getType())){

+ 59 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/contractMaterial/MaterialController.java

@@ -1,28 +1,35 @@
 package com.jeeplus.modules.projectrecord.web.contractMaterial;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
 import com.jeeplus.modules.projectrecord.entity.*;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.concealProject.ConcealProjectService;
 import com.jeeplus.modules.projectrecord.service.material.MaterialService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workclientinfo.dao.WorkClientAttachmentDao;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -59,6 +66,12 @@ public class MaterialController extends BaseController {
     private MaterialService materialService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -98,6 +111,7 @@ public class MaterialController extends BaseController {
         //查询已审核通过 的项目信息
         Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "421");
         return "modules/projectrecord/contractMaterial/materialList";
     }
 
@@ -255,11 +269,55 @@ public class MaterialController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(materialProjectInfo.getProject().getId());
         //根据infoId查询暂定材料价信息
         if (StringUtils.isNotBlank(materialProjectInfo.getInfoId())){
             projectContentData = materialService.getProjectContentData(materialProjectInfo.getInfoId());
         }else if (materialProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(materialProjectInfo.getProjectContentData().getId())) {
             projectContentData = materialService.getProjectContentData(materialProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(materialProjectInfo.getProjectContentDataNewId())){
+                materialProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != materialProjectInfo.getProject() && null != records && StringUtils.isNotBlank(materialProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(materialProjectInfo.getProject().getOverallProjectTypeId());
+            materialProjectInfo.setOverallProjectTypeId(materialProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(materialProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(materialProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(materialProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(materialProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            materialProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(materialProjectInfo.getProjectContentDataNewId());
+            materialProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
         }
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
@@ -273,6 +331,7 @@ public class MaterialController extends BaseController {
 
         materialProjectInfo.setCondition("material");
         materialProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("materialProjectInfo", materialProjectInfo);
         //判断是否是查看页面访问
         if("view".equals(materialProjectInfo.getType())){

+ 59 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/distributionSettlement/DistributionSettlementController.java

@@ -1,17 +1,22 @@
 package com.jeeplus.modules.projectrecord.web.distributionSettlement;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.ProjectVisa;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
 import com.jeeplus.modules.projectVisa.service.ProjectVisaService;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
@@ -21,10 +26,12 @@ import com.jeeplus.modules.projectrecord.entity.ProjectImplementEarly;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.armorForMaterials.ArmorForMaterialsService;
 import com.jeeplus.modules.projectrecord.service.distributionSettlement.DistributionSettlementService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -63,6 +70,12 @@ public class DistributionSettlementController extends BaseController {
     private ProjectContentDataService projectContentDataService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
 
     @ModelAttribute
     public ConstructionContract get(@RequestParam(required=false) String id) {
@@ -102,6 +115,7 @@ public class DistributionSettlementController extends BaseController {
         //获取已审核通过项目信息
         Page<ProjectImplementEarly> page = projectImplementEarlyService.findProjectPage(new Page<ProjectImplementEarly>(request, response), projectRecords);
         model.addAttribute("page", page);
+        model.addAttribute("overallProjectTypeId", "412");
         return "modules/projectrecord/distributionSettlement/distributionSettlementList";
     }
 
@@ -265,11 +279,55 @@ public class DistributionSettlementController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //根据infoId查询分布结算信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = distributionSettlementService.getProjectContentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = distributionSettlementService.getProjectContentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
+        }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
         }
         //添加负责人
         projectContentData.setMaster(UserUtils.getUser());
@@ -286,6 +344,7 @@ public class DistributionSettlementController extends BaseController {
         }
         concealProjectInfo.setCondition("distribution");
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         //判断是否是查看页面方法调用
         if("view".equals(concealProjectInfo.getType())){

+ 62 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/implementStage/ProjectInterimPaymentController.java

@@ -1,24 +1,32 @@
 package com.jeeplus.modules.projectrecord.web.implementStage;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.json.AjaxJson;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectConstruction.entity.ConstructionContract;
 import com.jeeplus.modules.projectConstruction.service.ContractService;
+import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectVisa.entity.VisaTreeData;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectcontroltable.entity.ProjectControlTable;
 import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableService;
+import com.jeeplus.modules.projectrecord.dao.WorkProjectUserDao;
 import com.jeeplus.modules.projectrecord.entity.*;
 import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
+import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.implementStage.ProjectInterimPaymentService;
 import com.jeeplus.modules.sys.entity.User;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,6 +63,13 @@ public class ProjectInterimPaymentController extends BaseController {
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
 
+    @Autowired
+    private ProjectRecordsService projectRecordsService;
+    @Autowired
+    private ProjectTypeService projectTypeService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+
     /**
      * 合同列表页面
      */
@@ -71,6 +86,7 @@ public class ProjectInterimPaymentController extends BaseController {
         model.addAttribute("page", page);
         model.addAttribute("reportType","2");
         model.addAttribute("contractName",constructionContract.getContractName());
+        model.addAttribute("overallProjectTypeId", "420");
         return "modules/projectrecord/implementStage/projectInterimPaymentList";
     }
 
@@ -390,12 +406,57 @@ public class ProjectInterimPaymentController extends BaseController {
 
         ProjectContentData projectContentData = new ProjectContentData();
         projectContentData.setType("");
+        //获取项目信息
+        ProjectRecords records = projectRecordsService.getQueryProjectUsers(concealProjectInfo.getProject().getId());
         //获取工作内容详情信息
         if (StringUtils.isNotBlank(concealProjectInfo.getInfoId())){
             projectContentData = service.getInterimPaymentData(concealProjectInfo.getInfoId());
         }else if (concealProjectInfo.getProjectContentData()!=null && StringUtils.isNotBlank(concealProjectInfo.getProjectContentData().getId())) {
             projectContentData = service.getInterimPaymentData(concealProjectInfo.getProjectContentData().getId());
+        }else{
+            //如果没有工作内容详情信息 则创建一个新的id留着为之后的成果文件的工作内容详情进行修改
+            projectContentData.preInsert();
+            if(StringUtils.isBlank(concealProjectInfo.getProjectContentDataNewId())){
+                concealProjectInfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+            projectContentData.setId(null);
         }
+
+        //获取前端传过来的全过程类型id
+        if(null != concealProjectInfo.getProject() && null != records && StringUtils.isNotBlank(concealProjectInfo.getProject().getOverallProjectTypeId())){
+            records.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            concealProjectInfo.setOverallProjectTypeId(concealProjectInfo.getProject().getOverallProjectTypeId());
+            //捞取对应的依据性明细列表信息
+            //获取该工作内容的依据性资料信息
+            List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(concealProjectInfo.getProject().getOverallProjectTypeId());
+            List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+            if(projectBasedDataList.size()>0){
+                for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                    //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                    ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                    projectTemplateInfo.setName(projectBasedData.getName());
+                    projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                    projectTemplateInfo.setId(projectBasedData.getId());
+                    //根据项目id和阶段信息id查询对应附件信息
+                    if(StringUtils.isNotBlank(concealProjectInfo.getProjectContentDataNewId())){
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(concealProjectInfo.getProjectContentDataNewId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                    }
+                    overAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            //查询工作内容和依据资料引用关联关系
+            List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(concealProjectInfo.getProjectContentDataNewId());
+            overAllFileGistdataList.addAll(contentBasedInfoList);
+            //添加导入或者写入的文件信息
+            concealProjectInfo.setOverAllFileGistdataList(overAllFileGistdataList);
+
+            //处理成果文件信息
+            //查询工作内容和成果文件引用关联关系
+            List<ProjectTemplateInfo> projectAchievementFileDataList = projectBasedDataService.getAchievementFileDataById(concealProjectInfo.getProjectContentDataNewId());
+            concealProjectInfo.setProjectAchievementFileDataList(projectAchievementFileDataList);
+        }
+
         //添加负责人信息
         projectContentData.setMaster(UserUtils.getUser());
         //判定工作内容详情id是否为空
@@ -412,6 +473,7 @@ public class ProjectInterimPaymentController extends BaseController {
         model.addAttribute("flag", "early");
         concealProjectInfo.setCondition("interim");
         concealProjectInfo.setProjectContentData(projectContentData);
+        model.addAttribute("projectRecords", records);
         model.addAttribute("concealProjectInfo", concealProjectInfo);
         if("view".equals(concealProjectInfo.getType())){
             return "modules/projectrecord/implementStage/projectInterimPaymentFormView";

+ 78 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentArmorSummarizingController.java

@@ -1,17 +1,25 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +32,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 甲供物资汇总表Controller
@@ -45,6 +50,14 @@ public class ContentArmorSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -119,6 +132,67 @@ public class ContentArmorSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 78 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentClaimSummarizingController.java

@@ -1,17 +1,25 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +32,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 索赔汇总表Controller
@@ -45,6 +50,14 @@ public class ContentClaimSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -119,6 +132,67 @@ public class ContentClaimSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 78 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentConcealSummarizingController.java

@@ -1,17 +1,25 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +32,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 隐蔽工程量汇总表Controller
@@ -45,6 +50,14 @@ public class ContentConcealSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -119,6 +132,67 @@ public class ContentConcealSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 75 - 0
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDesignSummarizingController.java

@@ -1,11 +1,13 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.MyBeanUtils;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
 import com.jeeplus.modules.act.entity.Act;
 import com.jeeplus.modules.act.service.ActTaskService;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.entity.ProjectTemplateType;
 import com.jeeplus.modules.projectType.service.ProjectResultsFileTemplateService;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
@@ -24,9 +26,12 @@ import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectrecord.service.early.ProjectEarlyReviewService;
 import com.jeeplus.modules.sys.entity.User;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.service.DictService;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import com.jeeplus.modules.workreview.service.WorkReviewStandardService;
 import org.activiti.engine.HistoryService;
@@ -62,6 +67,14 @@ public class ContentDesignSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -136,6 +149,68 @@ public class ContentDesignSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
+
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 78 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentDistributionSummarizingController.java

@@ -1,17 +1,25 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +32,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 分布结算汇总表Controller
@@ -45,6 +50,14 @@ public class ContentDistributionSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -119,6 +132,67 @@ public class ContentDistributionSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 81 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentInterimPaymentSummarizingController.java

@@ -1,17 +1,27 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
+import com.jeeplus.modules.projectType.service.ProjectResultsFileTemplateService;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.entity.WorkScheduleInfo;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -25,10 +35,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 工程进度款汇总表Controller
@@ -46,6 +53,14 @@ public class ContentInterimPaymentSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -121,6 +136,68 @@ public class ContentInterimPaymentSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
+
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 78 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentMaterialSummarizingController.java

@@ -1,17 +1,25 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -25,10 +33,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 暂定材料价汇总表Controller
@@ -46,6 +51,14 @@ public class ContentMaterialSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -120,6 +133,67 @@ public class ContentMaterialSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 78 - 4
src/main/java/com/jeeplus/modules/projectrecord/web/summarizing/ContentVisaSummarizingController.java

@@ -1,17 +1,25 @@
 package com.jeeplus.modules.projectrecord.web.summarizing;
 
+import com.google.common.collect.Lists;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.common.web.BaseController;
+import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectType.service.ProjectTypeService;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectBasedData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectContentData;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectBasedDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
+import com.jeeplus.modules.projectrecord.service.ProjectImplementEarlyService;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
+import com.jeeplus.modules.sys.entity.Workattachment;
 import com.jeeplus.modules.sys.utils.UserUtils;
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
+import com.jeeplus.modules.workcontent.service.WorkScheduleService;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.HistoryService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,10 +32,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 现场签证总表Controller
@@ -45,6 +50,14 @@ public class ContentVisaSummarizingController extends BaseController {
     private ProjectTypeService projectTypeService;
     @Autowired
     private ProjectcontentinfoService projectcontentinfoService;
+    @Autowired
+    private ProjectImplementEarlyService projectImplementEarlyService;
+    @Autowired
+    private ProjectContentDataService projectContentDataService;
+    @Autowired
+    private ProjectBasedDataService projectBasedDataService;
+    @Autowired
+    private WorkScheduleService workScheduleService;
 
     @ModelAttribute
     public ProjectRecords get(@RequestParam(required=false) String id) {
@@ -119,6 +132,67 @@ public class ContentVisaSummarizingController extends BaseController {
         projectcontentinfo.setProject(records);
 
         ProjectContentData projectContentData = new ProjectContentData();
+
+        List<String> list = new ArrayList<>();
+        if(StringUtils.isNotBlank(projectcontentinfo.getInfoId())){
+            list = workScheduleService.getProjectOnContentIdList(projectcontentinfo.getInfoId(),projectcontentinfo.getType());
+        }
+        List<ProjectTemplateInfo> overAllFileGistdataList = Lists.newArrayList();
+        List<Workattachment> workAttachments = Lists.newArrayList();
+        for (String contentId: list) {
+            projectContentData = projectContentDataService.get(contentId);
+            workAttachments.addAll(projectContentData.getWorkAttachments());
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                //捞取对应的依据性明细列表信息
+                //获取该工作内容的依据性资料信息
+                List<ProjectBasedData> projectBasedDataList =  projectTypeService.getAccrdingDataList(projectcontentinfo.getType());
+
+                if(projectBasedDataList.size()>0){
+                    for (ProjectBasedData projectBasedData: projectBasedDataList) {
+                        //遍历将信息添加到projectcontentinfo中的 overAllFileGistdataList中去
+                        ProjectTemplateInfo projectTemplateInfo = new ProjectTemplateInfo();
+                        projectTemplateInfo.setName(projectBasedData.getName());
+                        projectTemplateInfo.setAttachName(projectBasedData.getDataCategories());//添加资料类别展示列信息
+                        projectTemplateInfo.setId(projectBasedData.getId());
+                        //根据项目id和阶段信息id查询对应附件信息
+                        List<WorkClientAttachment> attachments = projectImplementEarlyService.getAttachmentsByDivIdTypeAndBasedDataId(projectContentData.getId(), projectBasedData.getId());
+                        projectTemplateInfo.setWorkAttachments(attachments);
+                        overAllFileGistdataList.add(projectTemplateInfo);
+                    }
+                }
+                //查询工作内容和依据资料引用关联关系
+                List<ProjectTemplateInfo> contentBasedInfoList = projectBasedDataService.getContentBasedInfoList(projectContentData.getId());
+                overAllFileGistdataList.addAll(contentBasedInfoList);
+                //还需要添加导入或者写入的文件信息
+                projectcontentinfo.setOverAllFileGistdataList(overAllFileGistdataList);
+            }
+            //将工作内容的id保存留作查询附件使用
+            if(StringUtils.isNotBlank(projectContentData.getId())){
+                projectcontentinfo.setProjectContentDataNewId(projectContentData.getId());
+            }
+        }
+        if(null != projectcontentinfo.getOverAllFileGistdataList() && projectcontentinfo.getOverAllFileGistdataList().size()>0){
+            List<ProjectTemplateInfo> newOverAllFileGistdataList = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (ProjectTemplateInfo projectTemplateInfo: projectcontentinfo.getOverAllFileGistdataList()) {
+                if(!idList.contains(projectTemplateInfo.getId())){
+                    idList.add(projectTemplateInfo.getId());
+                    newOverAllFileGistdataList.add(projectTemplateInfo);
+                }
+            }
+            projectcontentinfo.setOverAllFileGistdataList(newOverAllFileGistdataList);
+        }
+        if(workAttachments.size()>0){
+            List<Workattachment> newWorkAttachments = Lists.newArrayList();
+            List<String> idList = Lists.newArrayList();
+            for (Workattachment workAttachment: workAttachments) {
+                if(!idList.contains(workAttachment.getId())){
+                    idList.add(workAttachment.getId());
+                    newWorkAttachments.add(workAttachment);
+                }
+            }
+            projectContentData.setWorkAttachments(newWorkAttachments);
+        }
         projectContentData.setType(projectcontentinfo.getType());
         projectcontentinfo.setProjectContentData(projectContentData);
         model.addAttribute("projectcontentinfo", projectcontentinfo);

+ 29 - 0
src/main/java/com/jeeplus/modules/sys/service/WorkattachmentService.java

@@ -446,6 +446,35 @@ public class WorkattachmentService extends CrudService<WorkattachmentDao, Workat
 	}
 
 	/**
+	 * 获取附件信息
+	 * @param workClientAttachment
+	 * @return
+	 */
+	public List<WorkClientAttachment> getListOnOverAll(WorkClientAttachment workClientAttachment){
+		List<WorkClientAttachment> list = workClientAttachmentDao.getListOnOverAll(workClientAttachment);
+		CollectAccessoryInfo cAInfo = new CollectAccessoryInfo();
+		User loginUser = UserUtils.getUser();
+		if(StringUtils.isNotBlank(loginUser.getId())){
+			cAInfo.setOfficeId(loginUser.getOffice().getId());
+			cAInfo.setCompanyId(loginUser.getCompany().getId());
+			cAInfo.setCreateBy(loginUser);
+		}
+		//遍历附件信息,判定改附件信息是否被收藏
+		for (WorkClientAttachment info: list) {
+			cAInfo.setUrl(info.getUrl());
+			CollectAccessoryInfo collectAccessoryInfo = projectAccessoryDao.getCollectAccessoryInfo1(cAInfo);
+			if(null != collectAccessoryInfo){
+				info.setCollectFlag("1");
+			}else{
+				info.setCollectFlag("0");
+			}
+		}
+		//数据处理
+		workClientAttachmentManage(list);
+		return list;
+	}
+
+	/**
 	 * 数据处理
 	 * @param list
 	 */

+ 8 - 1
src/main/java/com/jeeplus/modules/workclientinfo/dao/WorkClientAttachmentDao.java

@@ -22,6 +22,13 @@ public interface WorkClientAttachmentDao extends CrudDao<WorkClientAttachment> {
     List<WorkClientAttachment> getList(WorkClientAttachment attchment);
 
     /**
+     * 全过程阶段信息查询
+     * @param attchment
+     * @return
+     */
+    List<WorkClientAttachment> getListOnOverAll(WorkClientAttachment attchment);
+
+    /**
      * 新增附件信息
      * @param attchment
      */
@@ -33,4 +40,4 @@ public interface WorkClientAttachmentDao extends CrudDao<WorkClientAttachment> {
      * @return
      */
     Integer deleteByattachmentIdAndProjectId(WorkClientAttachment attchment);
-}
+}

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

@@ -32,6 +32,7 @@ public class WorkClientAttachment extends DataEntity<WorkClientAttachment> {
 	private String createName;	//创建人
 	private String sort;	//排序
 	private String description;	//说明
+	private String divIdType;//判定条件
 
 	public WorkClientAttachment() {
 		super();
@@ -157,4 +158,12 @@ public class WorkClientAttachment extends DataEntity<WorkClientAttachment> {
 	public void setDescription(String description) {
 		this.description = description;
 	}
+
+	public String getDivIdType() {
+		return divIdType;
+	}
+
+	public void setDivIdType(String divIdType) {
+		this.divIdType = divIdType;
+	}
 }

+ 9 - 1
src/main/java/com/jeeplus/modules/workcontent/dao/WorkScheduleDao.java

@@ -7,6 +7,7 @@ import com.jeeplus.common.persistence.CrudDao;
 import com.jeeplus.common.persistence.annotation.MyBatisDao;
 import com.jeeplus.modules.workcontent.entity.WorkPreliminaryDesignEstimate;
 import com.jeeplus.modules.workcontent.entity.WorkScheduleInfo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -41,4 +42,11 @@ public interface WorkScheduleDao extends CrudDao<WorkScheduleInfo> {
      * @return
      */
     List<WorkScheduleInfo> findListByProjectId(WorkScheduleInfo workScheduleInfo);
-}
+
+    /**
+     * 根据项目id查询对应的所有contentid
+     * @param projectId
+     * @return
+     */
+    List<String> getProjectOnContentIdList(@Param("projectId")String projectId, @Param("type")String type);
+}

+ 15 - 6
src/main/java/com/jeeplus/modules/workcontent/service/WorkScheduleService.java

@@ -28,7 +28,7 @@ public class WorkScheduleService extends CrudService<WorkScheduleDao, WorkSchedu
 	public WorkScheduleInfo get(String id) {
 		return super.get(id);
 	}
-	
+
 	public List<WorkScheduleInfo> findList(WorkScheduleInfo workPreliminaryDesignEstimate) {
 		return super.findList(workPreliminaryDesignEstimate);
 	}
@@ -36,21 +36,21 @@ public class WorkScheduleService extends CrudService<WorkScheduleDao, WorkSchedu
 	public List<WorkScheduleInfo> findListByProjectId(WorkScheduleInfo workPreliminaryDesignEstimate) {
 		return dao.findListByProjectId(workPreliminaryDesignEstimate);
 	}
-	
+
 	public Page<WorkScheduleInfo> findPage(Page<WorkScheduleInfo> page, WorkScheduleInfo workPreliminaryDesignEstimate) {
 		return super.findPage(page, workPreliminaryDesignEstimate);
 	}
-	
+
 	@Transactional(readOnly = false)
 	public void save(WorkScheduleInfo workPreliminaryDesignEstimate) {
 		super.save(workPreliminaryDesignEstimate);
 	}
-	
+
 	@Transactional(readOnly = false)
 	public void delete(WorkScheduleInfo workPreliminaryDesignEstimate) {
 		super.delete(workPreliminaryDesignEstimate);
 	}
-	
+
     @Override
     @Transactional(readOnly = false)
     public void saveDetails(String detailStr, String projectId, String contentId,String contractId) {
@@ -80,4 +80,13 @@ public class WorkScheduleService extends CrudService<WorkScheduleDao, WorkSchedu
 		return tableType;
 	}
 
-}
+	/**
+	 * 根据项目id查询对应的所有contentid
+	 * @return
+	 */
+    public List<String> getProjectOnContentIdList(String projectId,String type){
+		List<String> contentId = dao.getProjectOnContentIdList(projectId,type);
+		return contentId;
+	}
+
+}

+ 1 - 3
src/main/java/com/jeeplus/modules/workcontent/web/WorkContentCtrlpriceController.java

@@ -78,9 +78,7 @@ public class WorkContentCtrlpriceController extends BaseController {
 
 		if(ctrlpricelist.size()>0){
 			Set set = new HashSet<>();
-			for (WorkContentCtrlprice info: ctrlpricelist) {
-				set.add(info.getType());
-			}
+			set.add("ctrlprice");
 			signList = new ArrayList<>(set);
 		}
 		model.addAttribute("signList", signList);

+ 1 - 1
src/main/resources/mappings/modules/constructionContract/contractDao.xml

@@ -268,4 +268,4 @@
 				a.project_name AS "projectName"
 		from rural_project_records a where a.id=#{projectId} and a.del_flag=0
 	</select>
-</mapper>
+</mapper>

+ 8 - 0
src/main/resources/mappings/modules/projectAccessory/ProjectTemplateDao.xml

@@ -313,4 +313,12 @@
 			and a.attach_name = #{name}
 		</where>
 	</select>
+
+	<select id="getProjectType" resultType="com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo">
+		select a.id as id, a.type_name as name,
+		a.choose_condition as chooseCondition
+		,a.data_categories as "dataCategories"
+		from project_type a
+		where id = #{id}
+	</select>
 </mapper>

+ 16 - 1
src/main/resources/mappings/modules/projectType/ProjectTypeDao.xml

@@ -18,6 +18,7 @@
 		a.choose_condition as "chooseCondition",
 		a.forbidden as "forbidden",
 		a.hint_content as "hintContent"
+		,a.data_categories as "dataCategories"
 	</sql>
 
 
@@ -56,6 +57,7 @@
 		select a.id as "id",
 		a.create_date as "createDate",a.create_by as "createId",
 		 a.type_name as "name",a.parent_id as "pid",a.tier,a.choose_condition as chooseCondition,a.forbidden as forbidden
+		,a.data_categories as "dataCategories"
 		from project_type a
 		<where>
 			a.del_flag = 0
@@ -112,6 +114,7 @@
 			tier,
 			choose_condition,
 			hint_content
+			,data_categories
 		) VALUES (
 			#{id},
 			#{parentId},
@@ -127,6 +130,7 @@
 			#{tier},
 			#{chooseCondition},
 			#{hintContent}
+			,#{dataCategories}
 		)
 	</insert>
 
@@ -140,6 +144,7 @@
 			choose_condition = #{chooseCondition},
 			remarks = #{remarks},
 			hint_content = #{hintContent}
+			,data_categories = #{dataCategories}
 		WHERE id = #{id}
 	</update>
 
@@ -185,6 +190,16 @@
 	<select id="getAccrdingDataList" resultType="ProjectBasedData">
 		select a.id as id,#{typeId} as number, a.type_name as name,
 		a.choose_condition as chooseCondition,pt.type_name as `type`,pt.type_name as `typeLabel`
+		,a.data_categories as "dataCategories"
+		from project_type a
+		left join project_type pt on a.parent_id = pt.type_id
+		where a.parent_id =#{typeId}
+	</select>
+
+	<select id="getAchievementFileDataList" resultType="ProjectAchievementFileData">
+		select a.id as id,#{typeId} as number, a.type_name as name,
+		a.choose_condition as chooseCondition,pt.type_name as `type`,pt.type_name as `typeLabel`
+		,a.data_categories as "dataCategories"
 		from project_type a
 		left join project_type pt on a.parent_id = pt.type_id
 		where a.parent_id =#{typeId}
@@ -210,4 +225,4 @@
 		update project_type set forbidden=#{forbidden} where id=#{id};
 	</update>
 
-</mapper>
+</mapper>

+ 180 - 20
src/main/resources/mappings/modules/projectcontentinfo/ProjectBasedDataDao.xml

@@ -1,7 +1,7 @@
 <?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.projectcontentinfo.dao.ProjectBasedDataDao">
-    
+
 	<sql id="projectBasedDataColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
@@ -23,15 +23,15 @@
 		a.upload_date AS "uploadDate",
 		u.name AS "uploadUser.name"
 	</sql>
-	
+
 	<sql id="projectBasedDataJoins">
 		LEFT JOIN project_records r ON r.id = a.project_id
 		LEFT JOIN sys_user u ON u.id = a.upload_user
 	</sql>
-	
-    
+
+
 	<select id="get" resultType="ProjectBasedData" >
-		SELECT 
+		SELECT
 			<include refid="projectBasedDataColumns"/>
 		FROM project_based_data a
 		<include refid="projectBasedDataJoins"/>
@@ -49,9 +49,9 @@
 		AND a.del_flag = '0'
 		ORDER BY a.update_date DESC
 	</select>
-	
+
 	<select id="findList" resultType="ProjectBasedData" >
-		SELECT 
+		SELECT
 			<include refid="projectBasedDataColumns"/>
 		FROM project_based_data a
 		<include refid="projectBasedDataJoins"/>
@@ -141,15 +141,15 @@
 			</otherwise>
 		</choose>
 	</select>
-	
+
 	<select id="findAllList" resultType="ProjectBasedData" >
-		SELECT 
+		SELECT
 			<include refid="projectBasedDataColumns"/>
 		FROM project_based_data a
 		<include refid="projectBasedDataJoins"/>
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
-		</where>		
+		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
@@ -171,7 +171,7 @@
 		ORDER BY a.number DESC
 		limit 1
 	</select>
-	
+
 	<insert id="insert">
 		INSERT INTO project_based_data(
 			id,
@@ -213,9 +213,9 @@
 			#{uploadDate}
 		)
 	</insert>
-	
+
 	<update id="update">
-		UPDATE project_based_data SET 	
+		UPDATE project_based_data SET
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
 			remarks = #{remarks},
@@ -232,22 +232,22 @@
 			upload_date = #{uploadDate}
 		WHERE id = #{id}
 	</update>
-	
-	
+
+
 	<!--物理删除-->
 	<update id="delete">
 		DELETE FROM project_based_data
 		WHERE id = #{id}
 	</update>
-	
+
 	<!--逻辑删除-->
 	<update id="deleteByLogic">
-		UPDATE project_based_data SET 
+		UPDATE project_based_data SET
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
-	
-	
+
+
 	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
 	<select id="findUniqueByProperty" resultType="ProjectBasedData" statementType="STATEMENT">
 		select * FROM project_based_data  where ${propertyName} = '${value}'
@@ -276,4 +276,164 @@
 			</if>
 		</where>
 	</delete>
-</mapper>
+
+	<select id="getContentBasedInfoList" resultType="ProjectTemplateInfo">
+		select id as "id",name as "name",type as "attachName" from project_based_data a
+		left join over_all_content_based_info b on a.id = b.based_id
+		where b.content_id = #{contentId}
+	</select>
+
+	<select id="getBasedInfo" resultType="ProjectTemplateInfo">
+		select id as "id",name as "name",type as "attachName" from project_based_data a
+		where a.id = #{id}
+	</select>
+
+	<select id="getAchievementInfo" resultType="ProjectTemplateInfo">
+		select id as "id",name as "name",type as "attachName" from project_achievement_file_data a
+		where a.id = #{id}
+	</select>
+
+	<insert id="saveBasedIdAndContentId">
+		insert into over_all_content_based_info (content_id, based_id)
+		values
+		  (#{contentId}, #{basedId})
+	</insert>
+
+
+
+	<select id="getContentBasedCount" resultType="java.lang.Integer">
+		select count(1) from over_all_content_based_info
+		where content_id = #{contentId}
+		and based_id = #{basedId}
+	</select>
+
+
+	<insert id="saveAchievementFileData">
+		INSERT INTO project_achievement_file_data(
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			company_id,
+			office_id,
+			name,
+			number,
+			type,
+			provide_date,
+			project_id,
+			upload_user,
+			upload_date
+		) VALUES (
+			#{id},
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{companyId},
+			#{officeId},
+			#{name},
+			#{number},
+			#{type},
+			#{provideDate},
+			#{project.id},
+			#{uploadUser.id},
+			#{uploadDate}
+		)
+	</insert>
+
+
+	<select id="getAchievementFileDataNumber" resultType="ProjectAchievementFileData" >
+		SELECT
+			a.id AS "id",
+			a.number AS "number"
+		FROM project_achievement_file_data a
+		WHERE
+		a.del_flag = #{DEL_FLAG_NORMAL}
+		AND a.project_id = #{project.id}
+		ORDER BY a.number DESC
+		limit 1
+	</select>
+
+
+
+	<select id="getAchievementFileDataList" resultType="ProjectTemplateInfo">
+		select id as "id",name as "name",type as "attachName" from project_achievement_file_data a
+		left join over_all_content_achievement_info b on a.id = b.achievement_id
+		where b.content_id = #{contentId}
+	</select>
+
+	<select id="getContentAchievementCount" resultType="java.lang.Integer">
+		select count(1) from over_all_content_achievement_info
+		where content_id = #{contentId}
+		and achievement_id = #{basedId}
+	</select>
+
+	<insert id="saveAchievementIdAndContentId">
+		insert into over_all_content_achievement_info (content_id, achievement_id)
+		values
+		  (#{contentId}, #{basedId})
+	</insert>
+
+
+	<select id="findAchievementPage" resultType="ProjectBasedData" >
+		SELECT
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.company_id AS "companyId",
+		a.office_id AS "officeId",
+		a.name AS "name",
+		a.number AS "number",
+		a.type AS "type",
+		a.provide_date AS "provideDate",
+		a.project_id AS "project.id",
+		a.upload_user AS "uploadUser.id",
+		a.upload_date AS "uploadDate",
+		u.name AS "uploadUser.name"
+		FROM project_achievement_file_data a
+		<include refid="projectBasedDataJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			<if test="project != null and project.id != null and project.id != ''">
+				AND a.project_id = #{project.id}
+			</if>
+			<if test="type != null and type != ''">
+				AND a.type = #{type}
+			</if>
+			<if test="name != null and name != ''">
+				AND a.name like
+				<if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
+				<if test="dbName == 'mysql'">CONCAT('%', #{name}, '%')</if>
+			</if>
+			<if test="number != null and number != ''">
+				AND a.number = #{number}
+			</if>
+			<if test="uploadUser!=null and uploadUser.id != null and uploadUser.id != ''">
+				AND a.upload_user = #{uploadUser.id}
+			</if>
+			<if test="startDate != null and startDate != ''">
+				AND a.upload_date &gt;= #{startDate}
+			</if>
+			<if test="endDate != null and endDate != ''">
+				AND a.upload_date &lt;= #{endDate}
+			</if>
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+</mapper>

+ 40 - 17
src/main/resources/mappings/modules/projectcontentinfo/ProjectContentDataDao.xml

@@ -1,7 +1,7 @@
 <?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.projectcontentinfo.dao.ProjectContentDataDao">
-    
+
 	<sql id="projectContentDataColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
@@ -21,22 +21,22 @@
 		a.contract_id AS "contractId",
 		su.name AS "master.name"
 	</sql>
-	
+
 	<sql id="projectContentDataJoins">
         LEFT JOIN sys_user su ON su.id = a.master
 	</sql>
-	
-    
+
+
 	<select id="get" resultType="ProjectContentData" >
-		SELECT 
+		SELECT
 			<include refid="projectContentDataColumns"/>
 		FROM project_content_data a
 		<include refid="projectContentDataJoins"/>
 		WHERE a.id = #{id}
 	</select>
-	
+
 	<select id="findList" resultType="ProjectContentData" >
-		SELECT 
+		SELECT
 			<include refid="projectContentDataColumns"/>
 		FROM project_content_data a
 		<include refid="projectContentDataJoins"/>
@@ -138,13 +138,13 @@
 	</select>
 
 	<select id="findAllList" resultType="ProjectContentData" >
-		SELECT 
+		SELECT
 			<include refid="projectContentDataColumns"/>
 		FROM project_content_data a
 		<include refid="projectContentDataJoins"/>
 		<where>
 			a.del_flag = #{DEL_FLAG_NORMAL}
-		</where>		
+		</where>
 		<choose>
 			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
 				ORDER BY ${page.orderBy}
@@ -217,7 +217,7 @@
 	</insert>
 
 	<update id="update">
-		UPDATE project_content_data SET 	
+		UPDATE project_content_data SET
 			update_by = #{updateBy.id},
 			update_date = #{updateDate},
 			remarks = #{remarks},
@@ -231,23 +231,23 @@
 			content_details_id = #{contentDetailsId}
 		WHERE id = #{id}
 	</update>
-	
-	
+
+
 	<!--物理删除-->
 	<update id="delete">
 		UPDATE project_content_data SET
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
-	
+
 	<!--逻辑删除-->
 	<update id="deleteByLogic">
-		UPDATE project_content_data SET 
+		UPDATE project_content_data SET
 			del_flag = #{DEL_FLAG_DELETE}
 		WHERE id = #{id}
 	</update>
-	
-	
+
+
 	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
 	<select id="findUniqueByProperty" resultType="ProjectContentData" statementType="STATEMENT">
 		select * FROM project_content_data  where ${propertyName} = '${value}'
@@ -306,6 +306,23 @@
 		where a.project_id = #{projectId} and pt.parent_id =#{projectTypeParentId} and a.del_flag = 0 order by a.update_date desc
 	</select>
 
+	<select id="getProjectContentDataByTypeIdList" resultType="com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData">
+		select a.id as "id", a.create_by as "createBy.id", a.create_date as "createDate",
+		a.project_id as "pid", a.name as "projectName", "" as projectId,
+		"0" as projectStatus,su.name as "projectRegistrant" ,
+		pt.type_name as projectLeader,pt.id as projectTypeId,
+		ppt.type_name as clientName,prd.status as status
+		from project_content_data a
+		left join sys_user su on su.id = a.create_by
+		left join project_type pt on a.type = pt.type_id
+		left join project_type ppt on pt.parent_id = ppt.id
+		left join project_content_report pcr on pcr.content_id = a.id
+		left join project_report_data prd on prd.id = pcr.report_id
+		where a.project_id = #{projectId} and pt.parent_id =#{projectTypeParentId}
+		 and pt.id = #{projectTypeId}
+		 and a.del_flag = 0 order by a.update_date desc
+	</select>
+
 
 	<select id="getProjectContentDataListOnImplement" resultType="com.jeeplus.modules.projectrecord.entity.ProjectRecordTreeData">
 		select a.id as "id", a.create_by as "createBy.id", a.create_date as "createDate",
@@ -383,4 +400,10 @@
 		where based_id = #{basedId}
 		and content_id = #{contentId}
 	</delete>
-</mapper>
+
+	<update id="updateId">
+		UPDATE project_content_data SET
+		id = #{newId}
+		where id = #{oldId}
+	</update>
+</mapper>

+ 24 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectcontentinfoDao.xml

@@ -623,4 +623,28 @@
 		left join work_staff_achives wsa on a.staff_id = wsa.id
 		where wsa.user_id = #{userId} and a.del_flag=0
 	</select>
+
+	<insert id="insertContentBasedInfo">
+		insert into over_all_content_based_info (content_id, based_id)
+		values
+		  (#{contentId}, #{basedId})
+	</insert>
+
+	<select id="getContentBasedCount" resultType="java.lang.Integer">
+		select count(1) from over_all_content_based_info
+		where content_id = #{contentId}
+		and based_id = #{basedId}
+	</select>
+
+	<insert id="insertContentAchievementInfo">
+		insert into over_all_content_achievement_info (content_id, achievement_id)
+		values
+		  (#{contentId}, #{achievementId})
+	</insert>
+
+	<select id="getContentAchievementInfo" resultType="java.lang.Integer">
+		select count(1) from over_all_content_achievement_info
+		where content_id = #{contentId}
+		and achievement_id = #{achievementId}
+	</select>
 </mapper>

+ 15 - 3
src/main/resources/mappings/modules/projectrecord/ProjectImplementEarlyDao.xml

@@ -44,11 +44,11 @@
 		a.total_fees AS "totalFees",
 		a.type_id As "projectTypeId"
 	</sql>
-	
+
 	<sql id="projectRecordsJoins">
 		LEFT JOIN sys_area area ON area.id = a.area_id
 	</sql>
-	
+
 	<select id="getProjectRecodesList" resultType="ProjectImplementEarly" >
 		SELECT
 			<include refid="projectRecordsColumns"/>
@@ -126,6 +126,12 @@
 			<if test="projectType !=null and projectType !=''">
 				AND a.project_type = #{projectType}
 			</if>
+			<if test="idList!=null and idList.size!=0">
+				and a.id in
+				<foreach collection="idList" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</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>
@@ -212,6 +218,12 @@
 			<if test="projectType !=null and projectType !=''">
 				AND a.project_type = #{projectType}
 			</if>
+			<if test="idList!=null and idList.size!=0">
+				and a.id in
+				<foreach collection="idList" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</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>
@@ -243,4 +255,4 @@
 	<delete id="delProjectContrntAndBasedId">
 		delete from project_content_based_relation where content_id = #{contentId} and based_id = #{basedId}
 	</delete>
-</mapper>
+</mapper>

+ 12 - 0
src/main/resources/mappings/modules/projectrecord/ProjectRecordsDao.xml

@@ -163,6 +163,12 @@
 			<if test="projectType !=null and projectType !=''">
 				and project_type= #{projectType}
 			</if>
+			<if test="idList!=null and idList.size!=0">
+				and a.id in
+				<foreach collection="idList" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
             AND  a.status != 7 AND a.del_flag = #{DEL_FLAG_NORMAL}
             <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} )
@@ -251,6 +257,12 @@
 			<if test="projectType !=null and projectType !=''">
 				and project_type= #{projectType}
 			</if>
+			<if test="idList!=null and idList.size!=0">
+				and a.id in
+				<foreach collection="idList" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
             AND  a.status != 7 AND a.del_flag = #{DEL_FLAG_NORMAL}
             <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} )

+ 28 - 0
src/main/resources/mappings/modules/workclientinfo/WorkClientAttachmentDao.xml

@@ -21,6 +21,7 @@
         createBy.name AS "createBy.name"
         ,createBy.name AS "createName"
         ,a.description AS "description"
+        ,a.div_id_type AS "divIdType"
     </sql>
 
     <sql id="workClientAttachmentJoins">
@@ -104,6 +105,9 @@
         <if test="description != null and description != ''">
             ,description
         </if>
+        <if test="divIdType != null and divIdType != ''">
+            ,div_id_type
+        </if>
         ,file_size
         ) VALUES (
         #{id},
@@ -129,6 +133,9 @@
         <if test="description != null and description != ''">
             ,#{description}
         </if>
+        <if test="divIdType != null and divIdType != ''">
+            ,#{divIdType}
+        </if>
         ,#{fileSize}
         )
     </insert>
@@ -165,6 +172,9 @@
         <if test="description != null and description != ''">
             ,description = #{description}
         </if>
+        <if test="divIdType != null and divIdType != ''">
+            ,div_id_type = #{divIdType}
+        </if>
         WHERE id = #{id}
     </update>
 
@@ -211,6 +221,24 @@
         ORDER BY a.sort,a.update_date DESC
     </select>
 
+    <select id="getListOnOverAll" resultType="WorkClientAttachment" >
+        SELECT
+        <include refid="workClientAttachmentColumns"/>
+        FROM work_attachment a
+        <include refid="workClientAttachmentJoins"/>
+        <where>
+            a.del_flag = #{DEL_FLAG_NORMAL}
+            <if test="attachmentId != null and attachmentId != ''">
+                AND a.attachment_id = #{attachmentId}
+            </if>
+            <if test="divIdType != null and divIdType != ''">
+                AND div_id_type = #{divIdType}
+            </if>
+        </where>
+
+        ORDER BY a.sort,a.update_date DESC
+    </select>
+
 
     <!--物理删除-->
     <update id="deleteByattachmentIdAndProjectId">

+ 25 - 15
src/main/resources/mappings/modules/workcontent/WorkScheduleDao.xml

@@ -1,7 +1,7 @@
 <?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.workcontent.dao.WorkScheduleDao">
-    
+
 	<sql id="workPreliminaryDesignEstimateColumns">
 		a.id AS "id",
 		a.create_by AS "createBy.id",
@@ -27,17 +27,17 @@
 		a.type as "type",
 		a.contract_id as "contractId"
 	</sql>
-	
+
 
 	<select id="get" resultType="com.jeeplus.modules.workcontent.entity.WorkScheduleInfo" >
-		SELECT 
+		SELECT
 			<include refid="workPreliminaryDesignEstimateColumns"/>
 		FROM work_schedule_info a
 		WHERE a.id = #{id}
 	</select>
-	
+
 	<select id="findList" resultType="com.jeeplus.modules.workcontent.entity.WorkScheduleInfo" >
-		SELECT 
+		SELECT
 			<include refid="workPreliminaryDesignEstimateColumns"/>
 		FROM work_schedule_info a
 		<where>
@@ -80,9 +80,9 @@
 			</otherwise>
 		</choose>
 	</select>
-	
+
 	<select id="findAllList" resultType="com.jeeplus.modules.workcontent.entity.WorkScheduleInfo" >
-		SELECT 
+		SELECT
 			<include refid="workPreliminaryDesignEstimateColumns"/>
 		FROM work_schedule_info a
 		<where>
@@ -97,7 +97,7 @@
 			</otherwise>
 		</choose>
 	</select>
-	
+
 	<insert id="insert">
 		INSERT INTO work_schedule_info(
 			id,
@@ -201,7 +201,7 @@
 			)
         </foreach>
 	</insert>
-	
+
 	<update id="update">
 		UPDATE work_schedule_info SET
 			update_by = #{updateBy.id},
@@ -225,14 +225,14 @@
 			type = #{type}
 		WHERE id = #{id}
 	</update>
-	
-	
+
+
 	<!--物理删除-->
 	<update id="delete">
 		DELETE FROM work_schedule_info
 		WHERE id = #{id}
 	</update>
-	
+
 	<!--逻辑删除-->
 	<update id="deleteByLogic">
 		UPDATE work_schedule_info SET
@@ -244,8 +244,8 @@
 		DELETE FROM work_schedule_info
 		WHERE content_id = #{id}
 	</delete>
-	
-	
+
+
 	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
 	<select id="findUniqueByProperty" resultType="com.jeeplus.modules.workcontent.entity.WorkScheduleInfo" statementType="STATEMENT">
 		select * FROM work_schedule_info  where ${propertyName} = '${value}'
@@ -257,4 +257,14 @@
 		) a
 	</select>
 
-</mapper>
+	<select id="getProjectOnContentIdList" resultType="java.lang.String" >
+		SELECT
+		a.id AS "contentId"
+		FROM project_content_data a
+		where
+			a.project_id = #{projectId}
+			and a.type= #{type}
+			AND a.del_flag = 0
+	</select>
+
+</mapper>

+ 3 - 3
src/main/webapp/WEB-INF/tags/sys/gridselectBaseData.tag

@@ -25,7 +25,7 @@
 function searchGrid${id}(){
     var uri = "${url}";
 	top.layer.open({
-	    type: 2,  
+	    type: 2,
 	    area: ['90%','90%'],
 	    title:"${title}",
 	    name:'friend',
@@ -45,7 +45,7 @@ function searchGrid${id}(){
 			 top.layer.close(index);//关闭对话框。
            	 setValuee(item);
 		  },
-		  cancel: function(index){ 
+		  cancel: function(index){
 	       }
 	});
 
@@ -53,7 +53,7 @@ function searchGrid${id}(){
 </script>
 <div>
 <span class="input-group-btn">
-     <a href="#" style="font-size:14px;" onclick="searchGrid${id}()" id="${id}Button" class="nav-btn nav-btn-add"><i class="fa fa-search-plus"></i>引用</a>
+     <a href="javascript:void(0)" style="font-size:14px;" onclick="searchGrid${id}()" id="${id}Button" class="nav-btn nav-btn-add"><i class="fa fa-search-plus"></i>引用</a>
     </span>
 </div>
 	 <label id="${id}Name-error" class="error" for="${id}Name" style="display:none"></label>

+ 180 - 2
src/main/webapp/static/bos/reportDataBOSUpload.js

@@ -11,8 +11,187 @@ var buckName='newxgccpm'
 function reportDataMultipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt) {
     console.log("-----------------------start");
         multitest(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,size, cpt);
+    file.name.replace(" ","")
+    file.name.replace(/—/g,"")
+    var fileName = file.name;
+    // 将单引号‘’都转换成',将双引号“”都转换成"
+    fileName = fileName.replace(/\’|\‘/g,"'").replace(/\“|\”/g,"\"");
+    // 将中括号【】转换成[],将大括号{}转换成{}
+    fileName = fileName.replace(/\【/g,"(").replace(/\】/g,")").replace(/\{/g,"(").replace(/\}/g,")");
+    fileName = fileName.replace(/\[/g,"(").replace(/\]/g,")").replace(/\{/g,"(").replace(/\}/g,")");
+    // 将逗号,转换成,,将:转换成:
+    fileName = fileName.replace(/,/g,",").replace(/:/g,":");
+    //将中文——转换为英文-
+    fileName = fileName.replace(/—/g,"-")
+    fileName = fileName.replace(/……/g,"")
+    fileName = fileName.replace(/±/g,"")
+    fileName = fileName.replace(/#/g,"")
+    fileName = fileName.replace(/%/g,"")
+    var dfl=new File([file],fileName,{type:file.type});
+    file = dfl
+
+    requestUrl = realPath+"/previewController/getAccess";
+    OSS.urllib.request(requestUrl, {method: 'GET'}, function (err, response) {
+        if (err) {
+            console.log(err);
+            $.ajax({
+                type: "post",
+                url: realPath + "/previewController/saveJSError",
+                data: {object: err.toString()},
+                async: false,
+                success: function (data) {
+                }
+            });
+            return alert(err);
+        }
+        try {
+            result = JSON.parse(response);
+        } catch (e) {
+            errmsg = 'parse sts response info error: ' + e.message;
+            return alert(errmsg);
+        }
+        console.log("---------result" + result);
+        client = new OSS.Wrapper({
+            accessKeyId: result.AccessKeyId,
+            accessKeySecret: result.AccessKeySecret,
+            stsToken: result.SecurityToken,
+            bucket: result.Bucket,
+            endpoint: result.Endpoint,
+            timeout: '30000'
+        });
+        storeAs = "attachment-file/" + storeAs + "/" + today + new Date().getTime() + file.name;
+        CollectMultitest(client, storeAs, file, attachmentId, attachmentFlag, uploadPath.replace('http://dmtest-test.oss-cn-shanghai.aliyuncs.com', result.AliyunUrl), divId, size, cpt);
+    })
+    };
+
+
+function CollectMultitest (ossClient, storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt) {
+
+    var names =  storeAs.split("/");
+    var name = names[names.length-1];
+    ossClient.multipartUpload(storeAs, file,{
+        partSize: 1 * 1024 * 1024,
+        parallel: 5,
+        progress: function* (percent, cpt) {
+            var p = Math.floor(percent*100);
+            $("#jindutiao"+divId).attr("style","width: "+p+"%");
+            $("#jindutiao"+divId).attr("aria-valuenow",p+"%");
+            $("#baifenbi"+divId).html(p+"%");
+            $("#fileName"+divId).html(file.name);
+            checkpoint_temp = cpt;
+        }
+    }).then(function (result) {
+        var fileLocation = "";
+        var lookUrl = "";
+        //获取文件存储位置(0:本地;1:百度云;2:阿里云)
+        $.ajax({
+            type:"get",
+            url:realPath+"/bos/getFileStorageLocation",
+            async: false,
+            success:function(data){
+                fileLocation = data.fileLocation;
+            }
+        });
+
+        returnUrl = realPath+"/sys/workattachment/saveAttachment";
+        $.ajax({
+            type:'post',
+            url:returnUrl,
+            data:{
+                "attachmentName":file['name'],
+                "attachmentId":attachmentId,
+                "attachmentFlag":attachmentFlag,
+                "fileSize":file['size'],
+                "url":"/"+storeAs
+            },
+            success:function(data){
+                var lowerType = data.type.toLowerCase();
+                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",lowerType)){
+                                    str = str +'<img src="'+lookUrl+'" width="50" height="50" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/picturePreview?url=' +lookUrl+ '\',\'90%\',\'90%\')" alt="'+data.attachmentName+'"/>';
+                                }else if(isContains("pdf",lowerType)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+lookUrl+'\',1)">'+data.attachmentName+'</a>';
+                                }else if(isContains("rar,zip,jar,7z",lowerType)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+lookUrl+'\',3)">'+data.attachmentName+'</a>';
+                                }else if(isContains("avi,wmv,mpg,mpeg,mov,rm,ram,swf,flv,mp4,rmvb",lowerType)){
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/videoPreview?url=' +lookUrl+ '\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                                }else {
+                                    str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+lookUrl+'\',2)">'+data.attachmentName+'</a>';
+                                }
+                            }
+                        });
+
+                    }else{
+                        if (isContains("jpg,png,gif,bmp,jpeg",lowerType)){
+                            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",lowerType)){
+                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+data.url+'\',1)">'+data.attachmentName+'</a>';
+                        }else if(isContains("rar,zip,jar,7z",lowerType)){
+                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+data.url+'\',3)">'+data.attachmentName+'</a>';
+                        }else if(isContains("avi,wmv,mpg,mpeg,mov,rm,ram,swf,flv,mp4,rmvb",lowerType)){
+                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openDialogView(\'预览\',\''+ '/a/sys/picturepreview/videoPreview?url=' +lookUrl+ '\',\'90%\',\'90%\')">'+data.attachmentName+'</a>';
+                        }else {
+                            str = str + '<a class="attention-info" href="javascript:void(0)" onclick="openPreview(\''+data.url+'\',2)">'+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="1"/>'+
+                        '<input name="workAttachments['+lenght+'].attachmentFlag" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentFlag+'"/>'+
+                        '<input name="workAttachments['+lenght+'].quoteResult" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="0"/>'+
+                        '<input name="workAttachments['+lenght+'].fileSize" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.fileSize+'"/>'+
+
+                        '</td>'+
+                        '<td class="op-td">'+
+                        '<div class="op-btn-box">';
+                    if(2 == fileLocation){
+                        if(isContains("pdf",lowerType)){
+                            str = str +'<a href="'+lookUrl+'" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>';
+                        }else{
+                            str = str +'<a href="'+lookUrl+'" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>';
+                        }
+                    }else{
+                        str = str +'<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>';
+                    }
+                    str = str +  '<a href="javascript:void(0)" onclick="deleteFileFromAliyun1(this,\''+realPath+'/a/sys/workattachment/deleteFileFromAliyun?url='+encodeURIComponent(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>';
+                    $("#file"+divId).append(str);
+                }else {
+                    parent.layer.msg("上传失败!",{icon:2});
+                }
+            }
+        })
+    }).catch(function (err) {
+        console.log("err------ err:");
+        console.log(err);
+    });
 };
 
+
 function multitest (storeAs, file,attachmentId,attachmentFlag,uploadPath,divId, size,cpt) {
     var formdata = new FormData();
     formdata.append("storeAs",storeAs);
@@ -73,7 +252,6 @@ function multitest (storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,
                                 '<input name="workAttachments['+lenght+'].attachmentFlag" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="'+data.attachmentFlag+'"/>'+
                                 '<input name="workAttachments['+lenght+'].quoteResult" type="hidden" readonly="readonly" maxlength="20" style="width:140px;" class="form-control" value="0"/>'+
                                 '</td>'+
-                                '<td >否</td>'+
                                 '<td class="op-td">'+
                                 '<div class="op-btn-box">' +
                                 // '<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>'+
@@ -216,4 +394,4 @@ function deleteFileFrom(obj,deleteUrl,addFile,divId,trId){
             }
         }
     });
-}
+}

+ 7 - 1
src/main/webapp/webpage/modules/project/type/accrding/projectAccrdingTypeFormSubordinate.jsp

@@ -54,6 +54,12 @@
 						<form:input path="typeName" htmlEscape="false" class="form-control layui-input"/>
 					</div>
 				</div>
+				<div class="layui-item layui-col-sm12">
+					<label class="layui-form-label">资料类别:</label>
+					<div class="layui-input-block">
+						<form:input path="dataCategories" htmlEscape="false" class="form-control layui-input"/>
+					</div>
+				</div>
 
 				<div class="layui-item layui-col-sm6 lw7">
 					<label class="layui-form-label"><span class="require-item">*</span>是否必填:</label>
@@ -71,4 +77,4 @@
 	</div>
 </div>
 </body>
-</html>
+</html>

+ 2 - 1
src/main/webapp/webpage/modules/project/type/accrding/projectAccrdingTypeList.jsp

@@ -133,6 +133,7 @@
 								return "";
 							}
 						}},
+					{field: 'dataCategories', title: '资料类别'},
 					{field: 'createDate', title: '创建时间',width:80},
 					{templet: complain, title: '操作',width:160}
 				]],
@@ -319,4 +320,4 @@
 	}
 </script>
 </body>
-</html>
+</html>

+ 13 - 13
src/main/webapp/webpage/modules/projectConstruction/projectConstructionForm.jsp

@@ -244,15 +244,15 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
-                    <label class="layui-form-label"><span class="require-item">*</span>合同编号:</label>
+                    <label class="layui-form-label">合同编号:</label>
                     <div class="layui-input-block">
-                        <form:input path="cnumber" htmlEscape="false"    class="form-control layui-input required"/>
+                        <form:input path="cnumber" htmlEscape="false" class="form-control layui-input "/>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
-                    <label class="layui-form-label"><span class="require-item">*</span>合同分类:</label>
+                    <label class="layui-form-label">合同分类:</label>
                     <div class="layui-input-block">
-                        <form:select path="contCate" class="form-control layui-input required">
+                        <form:select path="contCate" class="form-control layui-input">
                             <option value="" label=""/>
                             <c:forEach items="${fns:getDictList('content_contract_type')}" var="item">
                                 <optgroup value="${item.value}" label="${item.label}"/>
@@ -263,24 +263,24 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
-                    <label class="layui-form-label"><span class="require-item">*</span>合同属性:</label>
+                    <label class="layui-form-label">合同属性:</label>
                     <div class="layui-input-block">
-                        <form:select path="contAttr" class="form-control layui-input required">
+                        <form:select path="contAttr" class="form-control layui-input">
                             <form:option value="" label=""/>
                             <form:options items="${fns:getMainDictList('content_contract_attr')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
                         </form:select>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
-                    <label class="layui-form-label"><span class="require-item">*</span>发包人:</label>
+                    <label class="layui-form-label">发包人:</label>
                     <div class="layui-input-block">
-                        <form:input path="lettingAgent" htmlEscape="false"    class="form-control layui-input required"/>
+                        <form:input path="lettingAgent" htmlEscape="false"    class="form-control layui-input"/>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
-                    <label class="layui-form-label"><span class="require-item">*</span>承包人:</label>
+                    <label class="layui-form-label">承包人:</label>
                     <div class="layui-input-block">
-                        <form:input path="contractor" htmlEscape="false"    class="form-control layui-input required"/>
+                        <form:input path="contractor" htmlEscape="false"    class="form-control layui-input"/>
                     </div>
                 </div>
             </div>
@@ -364,9 +364,9 @@
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
-                    <label class="layui-form-label"><span class="require-item">*</span>支付金额:</label>
+                    <label class="layui-form-label">支付金额:</label>
                     <div class="layui-input-block">
-                        <input name="payAmtStr" htmlEscape="false"  value="<fmt:formatNumber value="${constructionContract.payAmt}" pattern="#,##0.00#"/>" class="form-control layui-input required number"/>
+                        <input name="payAmtStr" htmlEscape="false"  value="<fmt:formatNumber value="${constructionContract.payAmt}" pattern="#,##0.00#"/>" class="form-control layui-input number"/>
                     </div>
                 </div>
                 <div class="layui-item layui-col-sm6">
@@ -624,4 +624,4 @@
     }
 </script>
 </body>
-</html>
+</html>

+ 8 - 8
src/main/webapp/webpage/modules/projectcontentinfo/basedDataForm.jsp

@@ -6,7 +6,7 @@
 	<meta name="decorator" content="default"/>
 	<link href="${ctxStatic}/bootstrap-select-1.12.4/css/bootstrap-select.min.css" rel="stylesheet" />
 	<script src="${ctxStatic}/bootstrap-select-1.12.4/js/bootstrap-select.min.js"></script>
-	<script src="${ctxStatic}/bos/reportDataBOSUpload.js"></script>
+	<script type="text/javascript" src="${ctxStatic}/oss/ossupload.js"></script>
 	<style>
 		label.error{
 			top:40px;
@@ -51,7 +51,6 @@
             $("#attachment_btn").click(function () {
                 $("#attachment_file").click();
             });
-            $('#type').selectpicker('val',arr);
         });
 
         function insertTitle(tValue){
@@ -65,7 +64,7 @@
             var uploadPath="http://gangwan-app.oss-cn-hangzhou.aliyuncs.com/"+storeAs;/*将这段字符串存到数据库即可*/
             var divId = "_attachment";
             $("#addFile"+divId).show();
-            reportDataMultipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,"0");}
+				multipartUploadWithSts(storeAs, file,attachmentId,attachmentFlag,uploadPath,divId,"0");}
         }
 
         function setValuee(obj){
@@ -83,6 +82,7 @@
 			<form:hidden path="edit"/>
 			<form:hidden path="parentIds"/>
 			<form:hidden path="project.id"/>
+			<form:hidden path="projectContentDataNewId"/>
 			<form:hidden path="projectBasedData.id"/>
 			<sys:message content="${message}"/>
 
@@ -152,8 +152,8 @@
 				<div class="layui-item nav-btns">
 					<a id="attachment_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>
 
-					<sys:gridselectBaseData url="${ctx}/projectcontentinfo/projectReportData/getContainReportData" id="baseData" title="选择成果文件"
-											cssClass="form-control" projectId="${projectcontentinfo.project.id}" fieldLabels="" fieldKeys=""  searchLabel="${fns:urlEncode('成果文件名')}" searchKey="name"></sys:gridselectBaseData>
+					<%--<sys:gridselectBaseData url="${ctx}/projectcontentinfo/projectReportData/getContainReportData" id="baseData" title="选择成果文件"
+											cssClass="form-control" projectId="${projectcontentinfo.project.id}" fieldLabels="" fieldKeys=""  searchLabel="${fns:urlEncode('成果文件名')}" searchKey="name"></sys:gridselectBaseData>--%>
 				</div>
 				<div id="addFile_attachment" style="display: none" class="upload-progress">
 					<span id="fileName_attachment" ></span>
@@ -173,7 +173,7 @@
 							<th>文件预览</th>
 							<th>上传人</th>
 							<th>上传时间</th>
-							<th>是否引用成果文件</th>
+							<%--<th>是否引用成果文件</th>--%>
 							<th width="150px">操作</th>
 						</tr>
 						</thead>
@@ -231,10 +231,10 @@
 									${workClientAttachment.createBy.name}
 								</td>
 								<td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
-								<td>
+								<%--<td>
 									<c:if test="${workClientAttachment.quoteResult==0}">否</c:if>
 									<c:if test="${workClientAttachment.quoteResult==1}">是</c:if>
-								</td>
+								</td>--%>
 								<td class="op-td">
 									<div class="op-btn-box" >
 											<%--附件下载删除--%>

File diff suppressed because it is too large
+ 540 - 68
src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsForm.jsp


+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/armorForMaterials/armorForMaterialsList.jsp

@@ -164,6 +164,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/armorForMaterials/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -264,7 +265,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/armorForMaterials/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/armorForMaterials/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -283,7 +284,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=armor&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=armor&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -329,7 +330,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增甲供物资信息\', \'${ctx}/project/armorForMaterials/form?project.id='+d.pid+'&contract.id='+d.id+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增甲供物资信息\', \'${ctx}/project/armorForMaterials/form?project.id='+d.pid+'&contract.id='+d.id+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -339,7 +340,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=armor&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs" > 编辑</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=armor&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs" > 编辑</a>',
                         '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                         +'</div>'
                     ].join('');
@@ -505,4 +506,4 @@
     }
 </script>
 </body>
-</html>
+</html>

File diff suppressed because it is too large
+ 536 - 67
src/main/webapp/webpage/modules/projectrecord/claim/projectClaimForm.jsp


+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/claim/projectClaimList.jsp

@@ -164,6 +164,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/projectClaim/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -264,7 +265,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/projectClaim/getVisaList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/projectClaim/getVisaList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -283,7 +284,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=claim&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=claim&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     /*{field: 'sendMoney', align:'center', title: '送审金额',templet: function(d){
@@ -349,7 +350,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增索赔内容\', \'${ctx}/project/projectClaim/form?type=3&project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')" class=" layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增索赔内容\', \'${ctx}/project/projectClaim/form?type=3&project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')" class=" layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -360,7 +361,7 @@
                     if(d.status =="10"){
                         return [
                             '<div class=\"layui-btn-group\">'+
-                            '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改索赔信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=claim&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class=" layui-btn layui-btn-xs" > 编辑</a>',
+                            '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改索赔信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=claim&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class=" layui-btn layui-btn-xs" > 编辑</a>',
                             '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                             +'</div>'
                         ].join('');
@@ -530,4 +531,4 @@
     }
 </script>
 </body>
-</html>
+</html>

+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/concealProject/concealProjectList.jsp

@@ -165,6 +165,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/concealProject/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -265,7 +266,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/concealProject/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/concealProject/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -284,7 +285,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=conceal&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=conceal&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -330,7 +331,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增隐蔽工程量\', \'${ctx}/project/concealProject/form?project.id='+d.pid+'&contract.id='+d.id+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs  layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增隐蔽工程量\', \'${ctx}/project/concealProject/form?project.id='+d.pid+'&contract.id='+d.id+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs  layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -340,7 +341,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=conceal&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs" > 编辑</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=conceal&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs" > 编辑</a>',
                         '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                         +'</div>'
                     ].join('');
@@ -506,4 +507,4 @@
     }
 </script>
 </body>
-</html>
+</html>

File diff suppressed because it is too large
+ 537 - 69
src/main/webapp/webpage/modules/projectrecord/concealProject/workContentForm.jsp


+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/contractMaterial/materialList.jsp

@@ -165,6 +165,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/contractMaterial/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -265,7 +266,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/contractMaterial/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/contractMaterial/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -284,7 +285,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=material&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看隐蔽工程量信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=material&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -330,7 +331,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工作内容\', \'${ctx}/project/contractMaterial/form?project.id='+d.pid+'&contract.id='+d.id+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')"  class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工作内容\', \'${ctx}/project/contractMaterial/form?project.id='+d.pid+'&contract.id='+d.id+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')"  class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -340,7 +341,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=material&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs" > 编辑</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改隐蔽工程量信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=material&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs" > 编辑</a>',
                         '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                         +'</div>'
                     ].join('');
@@ -506,4 +507,4 @@
     }
 </script>
 </body>
-</html>
+</html>

File diff suppressed because it is too large
+ 540 - 69
src/main/webapp/webpage/modules/projectrecord/contractMaterial/workMaterialForm.jsp


File diff suppressed because it is too large
+ 537 - 85
src/main/webapp/webpage/modules/projectrecord/design/projectDesignForm.jsp


File diff suppressed because it is too large
+ 540 - 71
src/main/webapp/webpage/modules/projectrecord/distributionSettlement/distributionSettlementForm.jsp


+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/distributionSettlement/distributionSettlementList.jsp

@@ -164,6 +164,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/distributionSettlement/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -264,7 +265,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/distributionSettlement/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/distributionSettlement/getProjectList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -283,7 +284,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=distribution&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=distribution&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -329,7 +330,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增分布结算信息\', \'${ctx}/project/distributionSettlement/form?project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增分布结算信息\', \'${ctx}/project/distributionSettlement/form?project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -340,7 +341,7 @@
                     if(d.status =="10"){
                         return [
                             '<div class=\"layui-btn-group\">'+
-                            '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改分布结算信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=distribution&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs"" > 编辑</a>',
+                            '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改分布结算信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=distribution&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs"" > 编辑</a>',
                             '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                             +'</div>'
                         ].join('');
@@ -509,4 +510,4 @@
     }
 </script>
 </body>
-</html>
+</html>

+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/implementCompletion/projectImplementCompletionList.jsp

@@ -180,6 +180,7 @@
 				<form:form id="searchForm" modelAttribute="projectImplementEarly" action="${ctx}/project/projectImplementCompletion/" method="post" class="form-inline">
 					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
 					<div class="commonQuery lw6">
 						<div class="layui-item query athird">
@@ -296,7 +297,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/projectImplementCompletion/getProjectList?projectId=${projectRecords.id}&pageNo=${page.pageNo}&projectName='+$("#projectName").val()+'&leaderNameStr='+$("#leaderNameStr").val()+'&workContractInfo.name='+workContractInfoName+'&workContractInfo.client.name='+workContractInfoClientName,
+                url: '${ctx}/project/projectImplementCompletion/getProjectList?projectId=${projectRecords.id}&pageNo=${page.pageNo}&projectName='+$("#projectName").val()+'&leaderNameStr='+$("#leaderNameStr").val()+'&workContractInfo.name='+workContractInfoName+'&workContractInfo.client.name='+workContractInfoClientName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -305,7 +306,7 @@
                     	if(0 == d.pid){
 							return "<a class=\"attention-info pid\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projectName + "</a>";
 						}else{
-							return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看工作内容', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=completion&flag=modify&dictType=&id="+d.contentPId+"&parentIds="+d.parentIds+"&infoId="+d.id+"','95%', '95%')\">" + d.projectName + "</a>";
+							return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看工作内容', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=completion&flag=modify&dictType=&id="+d.contentPId+"&parentIds="+d.parentIds+"&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.projectName + "</a>";
 						}
 						}},
 					/*{field: 'clientName', align:'center', title: '委托方/当前阶段',templet: function(d){
@@ -386,7 +387,7 @@
 				if(1 == d.operationSign) {
 					return [
 						'<div class=\"layui-btn-group\">'+
-						'<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工作内容\', \'${ctx}/project/projectImplementCompletion/form?view=before&dictType=&parentIds=&projectContentId='+d.projectContentId+'&projectContentData.name='+d.projectName+'&project.id=' + d.id +'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+						'<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工作内容\', \'${ctx}/project/projectImplementCompletion/form?view=before&dictType=&parentIds=&projectContentId='+d.projectContentId+'&projectContentData.name='+d.projectName+'&project.id=' + d.id +'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
 
 						+'</div>'
 					].join('');
@@ -401,7 +402,7 @@
 						//子级内容
 						return [
 							'<div class=\"layui-btn-group\">'+
-							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改工作内容\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=complement&flag=modify&dictType=&id='+d.contentPId+'&parentIds='+d.parentIds+'&infoId='+d.id+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改工作内容\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=complement&flag=modify&dictType=&id='+d.contentPId+'&parentIds='+d.parentIds+'&infoId='+d.id+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
 							'<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
 
 							+'</div>'
@@ -573,4 +574,4 @@
 	}
 </script>
 </body>
-</html>
+</html>

+ 5 - 4
src/main/webapp/webpage/modules/projectrecord/implementEarly/projectImplementEarlyList.jsp

@@ -202,6 +202,7 @@
 				<form:form id="searchForm" modelAttribute="projectImplementEarly" action="${ctx}/project/projectImplementEarly/" method="post" class="form-inline">
 					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
 					<div class="commonQuery lw6">
 						<div class="layui-item query athird">
@@ -318,7 +319,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/projectImplementEarly/getProjectList?projectId=${projectRecords.id}&pageNo=${page.pageNo}&projectName='+$("#projectName").val()+'&leaderNameStr='+$("#leaderNameStr").val()+'&workContractInfo.name='+workContractInfoName+'&workContractInfo.client.name='+workContractInfoClientName,
+                url: '${ctx}/project/projectImplementEarly/getProjectList?projectId=${projectRecords.id}&pageNo=${page.pageNo}&projectName='+$("#projectName").val()+'&leaderNameStr='+$("#leaderNameStr").val()+'&workContractInfo.name='+workContractInfoName+'&workContractInfo.client.name='+workContractInfoClientName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -327,7 +328,7 @@
                     	if(0 == d.pid){
 							return "<a class=\"attention-info pid\" title=\"" + d.projectName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projectName + "</a>";
 						}else{
-							return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看工作内容', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=according&dictType=&id="+d.contentPId+"&parentIds="+d.parentIds+"&infoId="+d.id+"','95%', '95%')\">" + d.projectName + "</a>";
+							return "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看工作内容', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=according&dictType=&id="+d.contentPId+"&parentIds="+d.parentIds+"&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.projectName + "</a>";
 						}
 						}},
 					/*{field: 'clientName', align:'center', title: '委托方/当前阶段',templet: function(d){
@@ -408,7 +409,7 @@
 				if(1 == d.operationSign) {
 					return [
 						'<div class=\"layui-btn-group\">'+
-						'<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工作内容\', \'${ctx}/project/projectImplementEarly/form?view=before&dictType=&parentIds=&projectContentData.name='+d.projectName+'&projectContentId='+d.projectContentId+'&project.id=' + d.id +'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+						'<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工作内容\', \'${ctx}/project/projectImplementEarly/form?view=before&dictType=&parentIds=&projectContentData.name='+d.projectName+'&projectContentId='+d.projectContentId+'&project.id=' + d.id +'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
 						+'</div>'
 					].join('');
 				}else{
@@ -422,7 +423,7 @@
 						//子级内容
 						return [
 							'<div class=\"layui-btn-group\">'+
-							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改工作内容\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=early&flag=modify&dictType=&id='+d.contentPId+'&parentIds='+d.parentIds+'&infoId='+d.id+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green > 编辑</a>',
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改工作内容\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=early&flag=modify&dictType=&id='+d.contentPId+'&parentIds='+d.parentIds+'&infoId='+d.id+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green > 编辑</a>',
 							'<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 编辑</a>',
 							/*'<a href="${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId='+d.id+'&id='+d.contentPId+'&type=8&condition=record" onclick="return confirmxRefresh(\'确认要删除该工作内容报告吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',*/
 							+'</div>'

+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/implementStage/projectDesignList.jsp

@@ -165,6 +165,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/projectDesignChange/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -266,7 +267,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/projectDesignChange/getVisaList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/projectDesignChange/getVisaList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -285,7 +286,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=design&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=design&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     /*{field: 'sendMoney', align:'center', title: '送审金额',templet: function(d){
@@ -351,7 +352,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增设计变更内容\', \'${ctx}/project/projectDesignChange/form?type=2&project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')"  class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增设计变更内容\', \'${ctx}/project/projectDesignChange/form?type=2&project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')"  class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -362,7 +363,7 @@
                     if(d.status =="10"){
                         return [
                             '<div class=\"layui-btn-group\">'+
-                            '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改设计变更信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=design&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
+                            '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改设计变更信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=design&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
                             '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                             +'</div>'
                         ].join('');
@@ -531,4 +532,4 @@
     }
 </script>
 </body>
-</html>
+</html>

File diff suppressed because it is too large
+ 533 - 69
src/main/webapp/webpage/modules/projectrecord/implementStage/projectInterimPaymentForm.jsp


+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/implementStage/projectInterimPaymentList.jsp

@@ -201,6 +201,7 @@
 				<form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/projectInterimPayment/" method="post" class="form-inline">
 					<input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
 					<input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+					<input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
 					<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->
 					<div class="commonQuery lw6">
 						<div class="layui-item query athird">
@@ -303,7 +304,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/projectInterimPayment/getProjectList?pageNo=${page.pageNo}&contractName='+contractName+'&projectName='+projectName,
+                url: '${ctx}/project/projectInterimPayment/getProjectList?pageNo=${page.pageNo}&contractName='+contractName+'&projectName='+projectName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
 				cols: [[
 					{type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -322,7 +323,7 @@
 							}else if(d.condition ==2){
 								return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
 							}else{
-								return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=interim&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+								return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工程进度款信息', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=interim&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
 							}
 						}},
 					{field: 'date', align:'center', title: '创建日期',width:100,templet: function(d){
@@ -422,7 +423,7 @@
 				if(1 == d.operationSign) {
 					return [
 							'<div class=\"layui-btn-group\">'+
-						'<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工程进度款信息\', \'${ctx}/project/projectInterimPayment/form?project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+						'<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增工程进度款信息\', \'${ctx}/project/projectInterimPayment/form?project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
 							+'</div>'
 					].join('');
 				}else{
@@ -433,7 +434,7 @@
 					if(d.status =="10"){
 						return [
 							'<div class=\"layui-btn-group\">'+
-							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改工程进度款信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=interim&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
+							'<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改工程进度款信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=interim&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
 							'<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
 							/*'<a href="${ctx}/project/projectInterimPayment/deleteInterimPayment?id='+d.id+'" onclick="return confirmx(\'确认要删除该甲供物资信息吗?\', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>',*/
 							+'</div>'
@@ -612,4 +613,4 @@
 	}
 </script>
 </body>
-</html>
+</html>

+ 6 - 5
src/main/webapp/webpage/modules/projectrecord/implementStage/projectVisaList.jsp

@@ -165,6 +165,7 @@
                 <form:form id="searchForm" modelAttribute="constructionContract" action="${ctx}/project/projectVisa/list" method="post" class="form-inline">
                     <input id="pageNo" name="pageNo" type="hidden" value="${page.pageNo}"/>
                     <input id="pageSize" name="pageSize" type="hidden" value="${page.pageSize}"/>
+                    <input id="overallProjectTypeId" name="overallProjectTypeId" type="hidden" value="${overallProjectTypeId}"/>
                     <div class="commonQuery lw14">
                         <div class="layui-item query athird">
                             <label class="layui-form-label">项目名称:</label>
@@ -280,7 +281,7 @@
                 treeDefaultClose: true,//是否默认折叠
                 treeLinkage: true,//父级展开时是否自动展开所有子级
                 elem: '#permissionTable',
-                url: '${ctx}/project/projectVisa/getVisaList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName,
+                url: '${ctx}/project/projectVisa/getVisaList?pageNo=${page.pageNo}&projectName='+projectName+'&contractName='+contractName+'&overallProjectTypeId='+$("#overallProjectTypeId").val(),
                 page: false,
                 cols: [[
                     {type: 'numbers', align:'center', title: '序号' ,width:80},
@@ -299,7 +300,7 @@
                             }else if(d.condition ==2){
                                 return  "<a class=\"attention-info pid\" title=\"" + d.contractName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看合同信息', '${ctx}/project/constructionContract/view?id=" + d.contractId +"','95%', '95%')\">" + d.contractName + "</a>";
                             }else{
-                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=visa&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
+                                return "<a class=\"attention-info\" href=\"#\" onclick=\"openDialogView('查看工作内容详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=contentView&condition=visa&dictType=${dictType}&id="+d.contentPId+"&parentIds=${parentIds}&project.overallProjectTypeId=${overallProjectTypeId}&infoId="+d.id+"','95%', '95%')\">" + d.contractName + "</a>";
                             }
                         }},
                     {field: 'date', align:'center', title: '签证日期',width:100,templet: function(d){
@@ -346,7 +347,7 @@
                 if(1 == d.operationSign) {
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增签证内容\', \'${ctx}/project/projectVisa/form?type=1&project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'新增签证内容\', \'${ctx}/project/projectVisa/form?type=1&project.id='+d.pid+'&contract.id='+d.id+'&projectContentId='+d.projectContentId+'&contract.contractName='+d.contractName+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+' \',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-blue" > 新增</a>',
                         +'</div>'
                     ].join('');
                 }else{
@@ -357,7 +358,7 @@
                     if(d.status =="10"){
                     return [
                         '<div class=\"layui-btn-group\">'+
-                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改签证信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=visa&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
+                        '<a href="javascript:void(0)" onclick="openDialogreAudit(\'修改签证信息\', \'${ctx}/projectcontentinfo/projectcontentinfo/form?view=content&condition=visa&flag=modify&dictType=${dictType}&infoId='+d.id+'&id='+d.contentPId+'&project.overallProjectTypeId='+$("#overallProjectTypeId").val()+'\',\'95%\',\'95%\')" class="layui-btn layui-btn-xs layui-bg-green" > 编辑</a>',
                         '<a href="javascript:void(0)" onclick="confirmxHintContent(\'提示内容\', \'${ctx}/projectType/projectType/getHintContent?id='+d.projectTypeId+'\',\'95%\',\'95%\')" class="fa fa-search-plus layui-bg-orange layui-btn layui-btn-xs" > 提示</a>',
                         +'</div>'
                     ].join('');
@@ -526,4 +527,4 @@
     }
 </script>
 </body>
-</html>
+</html>

+ 36 - 3
src/main/webapp/webpage/modules/projectrecord/projectRecordsList.jsp

@@ -5,6 +5,8 @@
 	<title>项目登记</title>
 	<meta name="decorator" content="default"/>
     <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+	<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>--%>
     <style>
         .layui-table th{
@@ -304,6 +306,12 @@
 						<shiro:hasPermission name="project:projectRecords:export">
 							<table:exportExcel url="${ctx}/project/projectRecords/export"></table:exportExcel><!-- 导出按钮 -->
 						</shiro:hasPermission>
+						<shiro:hasPermission name="project:projectRecords:lockProject">
+							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="lockProject"> 锁定</button>
+						</shiro:hasPermission>
+						<shiro:hasPermission name="project:projectRecords:noLockProject">
+							<button type="button" data-toggle="tooltip" data-placement="top" class="layui-btn layui-btn-sm layui-bg-blue" id="noLockProject"> 解除锁定</button>
+						</shiro:hasPermission>
 						<button class="layui-btn layui-btn-sm" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"> 刷新</button>
 					</div>
 <%--					<shiro:hasPermission name="project:projectRecords:add">--%>
@@ -332,16 +340,17 @@
 	<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(){
         layui.table.render({
             limit:${ page.pageSize }
+			,id:"checkboxTable"
             ,elem: '#contentTable1'
             ,page: false
             ,cols: [[
-                // {checkbox: true, fixed: true},
+				{checkbox: true, fixed: true},
                 {field:'index',align:'center', title: '序号',width:40}
                 ,{field:'projName',align:'center', title: '项目名称',minWidth:200,templet:function(d){
                         return "<a class=\"attention-info\" title=\"" + d.projName + "\" href=\"javascript:void(0);\" onclick=\"openDialogView('查看项目', '${ctx}/project/projectRecords/view?id=" + d.id +"','95%', '95%')\">" + d.projName + "</a>";
@@ -447,6 +456,30 @@
             // ,even: true
             // ,height: 315
         });
+		$("#lockProject").bind("click",function () {
+			//获得表格CheckBox已经选中的行的信息
+			var checkList = layui.table.checkStatus('checkboxTable').data;
+			//定义数组存放批量删除的行的id
+			var listId = [];
+			//进行遍历所有选中行数据,拿出每一行的id存储到数组中
+			$.each(checkList, function (i, data) {
+				listId.push(data.id);
+			});
+			if (listId.length <= 0) {
+				layer.msg("请选择需要锁定的项目信息", {icon: 2})
+			} else {
+				$("#searchForm").attr("action","${ctx}/project/projectRecords/lockProject?listId="+ listId);
+				$("#searchForm").submit();
+				layer.msg("锁定成功", {icon: 1})
+				return true;
+			}
+		});
+		$("#noLockProject").bind("click",function () {
+			$("#searchForm").attr("action","${ctx}/project/projectRecords/noLockProject");
+			$("#searchForm").submit();
+			layer.msg("解除锁定成功", {icon: 1})
+			return true;
+		});
     })
 
     resizeListTable();
@@ -777,4 +810,4 @@
 	}
 </script>--%>
 </body>
-</html>
+</html>

+ 278 - 1
src/main/webapp/webpage/modules/projectrecord/summarizing/workContentView.jsp

@@ -5,6 +5,11 @@
 	<title>工作内容详情</title>
 	<meta name="decorator" content="default"/>
     <script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
+    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+    <script src="${ctxStatic}/common/html/js/script.js"></script>
+    <%@include file="/webpage/include/treetable.jsp" %>
 	<script type="text/javascript">
         $.fn.serializeJson=function(){
             var serializeObj={};
@@ -423,6 +428,57 @@
                 }
             })
         }
+        $(document).ready(function() {
+            $(".tabMove").mouseover(function(){
+                //tips层-下
+                var td=$(this)
+                var tdval=$(this).find("input").val();
+                layer.tips(tdval, td, {
+                    tips: 3
+                });
+            })
+        })
+        function listTr(obj){
+            var name=$(obj).attr("id");
+            var tiao="."+name;
+            var span=$(obj).find("td").eq(2);
+            // var ss=$(span).val().split(" ")[4];
+            $(span).toggle(function () {
+                $(tiao).hide();
+                $(span).find("span").eq(0).attr("class","default_shut")
+            },function () {
+                $(tiao).show();
+                $(span).find("span").eq(0).attr("class","default_open")
+            });
+        }
+
+        function openBill2(title,url,width,height,target,formId,tableId){
+            var rows = $(this).parent().prevAll().length + 1;
+            var frameIndex = parent.layer.getFrameIndex(window.name);
+            var urls = url+"&index="+frameIndex;
+            if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
+                width='auto';
+                height='auto';
+            }else{//如果是PC端,根据用户设置的width和height显示。
+
+            }
+            top.layer.open({
+                type: 2,
+                area: [width, height],
+                title: title,
+                skin:"two-btns",
+                maxmin: false, //开启最大化最小化按钮
+                content: urls ,
+                btn: ['关闭'],
+                yes: function(index, layero){
+                    top.layer.close(index)
+                },
+                cancel: function(index){
+                    top.layer.close(index)
+                }
+            });
+        }
+
     </script>
 </head>
 <body>
@@ -474,6 +530,227 @@
                     <div id="contentDetail"></div>
                 </div>
             </div>
+
+            <%--依据性文件--%>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>依据性资料明细</h2></div>
+                <div class="layui-item layui-col-xs12" style="padding:0 16px;">
+                    <table id="upTable1" class="table table-bordered table-condensed tree_table">
+                        <thead>
+                        <tr>
+                            <th width="200px">资料名称</th>
+                            <th width="200px">资料类别</th>
+                            <th width="200px">资料性质</th>
+                            <th width="35%">资料内容</th>
+                            <th width="160px">上传人</th>
+                            <th width="160px">上传日期</th>
+                            <th width="120px">文件大小(M)</th>
+                            <th width="100px">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody id="overAllFile_attachment">
+                        <c:forEach items="${projectcontentinfo.overAllFileGistdataList}" var = "fileAttachment" varStatus="status">
+                            <tr id="file_attachment_${fileAttachment.id}_tr_fu" onclick="listTr(this)">
+                                <td style="display:none"><span class="faid">${fileAttachment.id}</span></td>
+                                <td style="display:none">${fileAttachment.mustFlag}</td>
+                                <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.name}<input type="hidden" value="${fileAttachment.name}"/></td>
+                                <td style="white-space:normal; word-break:break-all;overflow:hidden;">${fileAttachment.attachName}</td>
+                                <td>
+                                    <div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileAttachment.attachTypes}</div>
+                                </td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td class="op-td">
+                                    <div class="op-btn-box" >
+                                        <a href="javascript:void(0)"  onclick="openBill2('浏览附件', '${ctx}/projectAccessory/projectAccessory/overAllWorkAttachmentView?attachmentId=${fileAttachment.id}&projectId=${projectcontentinfo.projectContentDataNewId}&uploadMode=${projectcontentinfo.uploadMode}','70%','80%',false,'inputForm','upTable1')" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 查看</a>
+                                    </div>
+                                </td>
+                                <td style="display:none">${fileAttachment.fileFlag}</td>
+
+                            </tr>
+                            <c:forEach items="${fileAttachment.workAttachments}" var = "workClientAttachment" varStatus="status">
+                                <tr class="file_attachment_${fileAttachment.id}_tr_fu">
+                                    <td></td>
+                                    <td></td>
+                                    <td></td>
+                                    <c:choose>
+                                        <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:when>
+                                        <c:otherwise>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:otherwise>
+                                    </c:choose>
+                                    <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.createName}')">${workClientAttachment.createName}</td>
+
+                                    <td class="op-td" style="text-align:center;">
+                                        <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
+                                    </td>
+
+                                    <td class="op-td">${workClientAttachment.fileSize}</td>
+                                    <td class="op-td">
+                                        <div class="op-btn-box" >
+                                                <%--附件下载删除--%>
+                                            <c:choose>
+                                                <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                </c:otherwise>
+                                            </c:choose>
+
+                                                <%--											<a href="javascript:void(0)"  onclick="openBill2('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileAttachment.id}&projectId=${project.id}','70%','80%',false,'inputForm','upTable',this)" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>--%>
+                                        </div>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+
+
+            <%--成果文件--%>
+            <div class="form-group layui-row">
+                <div class="form-group-label"><h2>成果信息</h2></div>
+                <div class="layui-item layui-col-xs12" style="padding:0 16px;">
+                    <table id="upTable" class="table table-bordered table-condensed details">
+                        <thead>
+                        <tr>
+                            <th>文件名称</th>
+                            <th>上传人</th>
+                            <th>上传时间</th>
+                            <th width="150px">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody id="file_attachment">
+                        <c:forEach items="${projectcontentinfo.projectContentData.workAttachments}" var = "workClientAttachment" varStatus="status">
+                            <tr>
+                                <c:choose>
+                                    <c:when test="${projectcontentinfo.projectContentData.uploadMode == 2}">
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.temporaryUrl}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.temporaryUrl}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                    </c:when>
+                                    <c:otherwise>
+                                        <c:choose>
+                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                            </c:when>
+                                            <c:otherwise>
+                                                <c:choose>
+                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
+                                                    </c:when>
+                                                    <c:otherwise>
+                                                        <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
+                                                    </c:otherwise>
+                                                </c:choose>
+                                            </c:otherwise>
+                                        </c:choose>
+                                    </c:otherwise>
+                                </c:choose>
+
+                                <td>${workClientAttachment.createBy.name}</td>
+                                <td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
+                                <td class="op-td">
+                                    <div class="op-btn-box" >
+                                        <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                    </div>
+                                </td>
+                            </tr>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
         </form:form>
     </div>
 </div>
@@ -743,4 +1020,4 @@
     }
 </script>
 </body>
-</html>
+</html>

File diff suppressed because it is too large
+ 537 - 71
src/main/webapp/webpage/modules/projectrecord/visa/projectVisaForm.jsp


File diff suppressed because it is too large
+ 559 - 91
src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentForm.jsp


+ 285 - 83
src/main/webapp/webpage/modules/projectrecord/workContentFromAndView/workContentView.jsp

@@ -5,6 +5,11 @@
 	<title>工作内容详情</title>
 	<meta name="decorator" content="default"/>
     <script src="${ctxStatic}/layer-v2.3/layui/xmSelect.js" charset="utf-8"></script>
+    <script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+    <link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+    <link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+    <script src="${ctxStatic}/common/html/js/script.js"></script>
+    <%@include file="/webpage/include/treetable.jsp" %>
 	<script type="text/javascript">
         $.fn.serializeJson=function(){
             var serializeObj={};
@@ -77,6 +82,31 @@
             initControlData("1");
         });
 
+        $(document).ready(function() {
+            $(".tabMove").mouseover(function(){
+                //tips层-下
+                var td=$(this)
+                var tdval=$(this).find("input").val();
+                layer.tips(tdval, td, {
+                    tips: 3
+                });
+            })
+        })
+
+        function listTr(obj){
+            var name=$(obj).attr("id");
+            var tiao="."+name;
+            var span=$(obj).find("td").eq(2);
+            // var ss=$(span).val().split(" ")[4];
+            $(span).toggle(function () {
+                $(tiao).hide();
+                $(span).find("span").eq(0).attr("class","default_shut")
+            },function () {
+                $(tiao).show();
+                $(span).find("span").eq(0).attr("class","default_open")
+            });
+        }
+
         function openDialogre(title,url,width,height,formId){
 
             if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端,就使用自适应大小弹窗
@@ -595,14 +625,153 @@
                     </div>
                 </div>
             </div>
+
+
             <div class="form-group layui-row">
                 <div class="form-group-label"><h2>依据性资料明细</h2></div>
+                <div class="layui-item layui-col-xs12" style="padding:0 16px;">
+                    <table id="upTable1" class="table table-bordered table-condensed tree_table">
+                        <thead>
+                        <tr>
+                            <th width="200px">资料名称</th>
+                            <th width="200px">资料类别</th>
+                            <th width="200px">资料性质</th>
+                            <th width="35%">资料内容</th>
+                            <th width="160px">上传人</th>
+                            <th width="160px">上传日期</th>
+                            <th width="120px">文件大小(M)</th>
+                            <th width="100px">操作</th>
+                        </tr>
+                        </thead>
+                        <tbody id="overAllFile_attachment">
+                        <c:forEach items="${projectcontentinfo.overAllFileGistdataList}" var = "fileAttachment" varStatus="status">
+                            <tr id="file_attachment_${fileAttachment.id}_tr_fu" onclick="listTr(this)">
+                                <td style="display:none"><span class="faid">${fileAttachment.id}</span></td>
+                                <td style="display:none">${fileAttachment.mustFlag}</td>
+                                <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.name}<input type="hidden" value="${fileAttachment.name}"/></td>
+                                <td style="white-space:normal; word-break:break-all;overflow:hidden;">${fileAttachment.attachName}</td>
+                                <td>
+                                    <div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileAttachment.attachTypes}</div>
+                                </td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td style="display:none">${fileAttachment.fileFlag}</td>
+
+                            </tr>
+                            <c:forEach items="${fileAttachment.workAttachments}" var = "workClientAttachment" varStatus="status">
+                                <tr class="file_attachment_${fileAttachment.id}_tr_fu">
+                                    <td></td>
+                                    <td></td>
+                                    <td></td>
+                                    <c:choose>
+                                        <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:when>
+                                        <c:otherwise>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+                                                    <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:otherwise>
+                                    </c:choose>
+                                    <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.createName}')">${workClientAttachment.createName}</td>
+
+                                    <td class="op-td" style="text-align:center;">
+                                        <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
+                                    </td>
+
+                                    <td class="op-td">${workClientAttachment.fileSize}</td>
+                                    <td class="op-td">
+                                        <div class="op-btn-box" >
+                                                <%--附件下载删除--%>
+                                            <c:choose>
+                                                <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </div>
+                                    </td>
+                                </tr>
+                            </c:forEach>
+                        </c:forEach>
+                        </tbody>
+                    </table>
+                </div>
+            </div>
+            <%--<div class="form-group layui-row">
+                <div class="form-group-label"><h2>依据性资料明细</h2></div>
                 <div class="layui-item layui-col-xs12 form-table-container">
                     <table id="contentTableBase" class="table table-bordered table-condensed details">
                         <thead>
                         <tr>
                             <th class="hide"></th>
-                                <%--<th >资料编号</th>--%>
+                                &lt;%&ndash;<th >资料编号</th>&ndash;%&gt;
                             <th >资料名称</th>
                             <th >资料类别</th>
                             <th >资料性质</th>
@@ -618,9 +787,9 @@
                                 <td class="hide">
                                     <input type="hidden" id="workBaseDataList${idx.index}_id" value="${projectBasedData.id}">
                                 </td>
-                                    <%--<td style="text-align:center;">
+                                    &lt;%&ndash;<td style="text-align:center;">
                                             ${projectBasedData.number}
-                                    </td>--%>
+                                    </td>&ndash;%&gt;
                                 <td style="text-align:center;">
                                         ${projectBasedData.name}
                                 </td>
@@ -707,7 +876,7 @@
                         </tbody>
                     </table>
                 </div>
-            </div>
+            </div>--%>
             <script type="text/template" id="workBaseDataTpl">//<!--
                 <tr id="budgetList{{idx}}">
                     <td class="hide">
@@ -931,7 +1100,7 @@
                     </table>
                 </div>
             </div>
-            <div class="form-group layui-row">
+            <%--<div class="form-group layui-row">
                 <div class="form-group-label"><h2>附件信息</h2></div>
                 <div class="layui-item layui-col-xs12 form-table-container" >
                     <table id="contentTable1" class="table table-bordered table-condensed details">
@@ -1001,101 +1170,134 @@
                         </tbody>
                     </table>
                 </div>
-            </div>
+            </div>--%>
             <div class="form-group layui-row">
                 <div class="form-group-label"><h2>成果文件</h2></div>
                 <div class="layui-item layui-col-xs12" style="padding:0 16px;">
-                    <table id="upTable" class="table table-bordered table-condensed details">
+                    <table id="upTable" class="table table-bordered table-condensed tree_table">
                         <thead>
                         <tr>
-                                <%-- <th>序号</th>--%>
-                            <th>文件预览</th>
-                            <th>上传人</th>
-                            <th>上传时间</th>
-                            <th width="200px">操作</th>
+                            <th width="200px">资料名称</th>
+                            <th width="35%">资料内容</th>
+                            <th width="160px">上传人</th>
+                            <th width="160px">上传日期</th>
+                            <th width="120px">文件大小(M)</th>
+                            <th width="100px">操作</th>
                         </tr>
                         </thead>
                         <tbody id="file_attachment">
-                        <c:forEach items="${projectcontentinfo.projectReportData.workAttachments}" var = "workClientAttachment" varStatus="status">
-                            <tr>
-                                    <%-- <td>${status.index + 1}</td>--%>
-                                        <c:choose>
-                                            <c:when test="${projectcontentinfo.projectReportData.uploadMode == 2}">
-                                                <c:choose>
-                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                        <c:forEach items="${projectcontentinfo.projectAchievementFileDataList}" var = "fileAttachment" varStatus="status">
+                            <tr id="file_attachment_${fileAttachment.id}_tr_fu" onclick="listTr(this)">
+                                <td style="display:none"><span class="faid">${fileAttachment.id}</span></td>
+                                <td style="display:none">${fileAttachment.mustFlag}</td>
+                                <td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.name}<input type="hidden" value="${fileAttachment.name}"/></td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td></td>
+                                <td class="op-td">
+                                </td>
+                                <td style="display:none">${fileAttachment.fileFlag}</td>
+
+                            </tr>
+                            <c:forEach items="${fileAttachment.workAttachments}" var = "workClientAttachment" varStatus="status">
+                                <tr class="file_attachment_${fileAttachment.id}_tr_fu">
+                                    <td></td>
+                                    <c:choose>
+                                        <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
-                                                        <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
-                                                    </c:when>
-                                                    <c:otherwise>
-                                                        <c:choose>
-                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
-                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.temporaryUrl}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
-                                                            </c:when>
-                                                            <c:otherwise>
-                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.temporaryUrl}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
-                                                            </c:otherwise>
-                                                        </c:choose>
-                                                    </c:otherwise>
-                                                </c:choose>
-                                            </c:when>
-                                            <c:otherwise>
-                                                <c:choose>
-                                                    <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                    <td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:when>
+                                        <c:otherwise>
+                                            <c:choose>
+                                                <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
                                                            or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
-                                                        <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
-                                                    </c:when>
-                                                    <c:otherwise>
-                                                        <c:choose>
-                                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
-                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%','1')">${workClientAttachment.attachmentName}</a></td>
-                                                            </c:when>
-                                                            <c:otherwise>
-                                                                <td><a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workClientAttachment.url}','90%','90%')">${workClientAttachment.attachmentName}</a></td>
-                                                            </c:otherwise>
-                                                        </c:choose>
-                                                    </c:otherwise>
-                                                </c:choose>
-                                            </c:otherwise>
-                                        </c:choose>
+                                                    <td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}"></td>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <c:choose>
+                                                                <c:when test="${fn:containsIgnoreCase(fileOther.attachName,'rar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+																					   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:when>
+                                                                <c:otherwise>
+                                                                    <td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+                                                                </c:otherwise>
+                                                            </c:choose>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:otherwise>
+                                            </c:choose>
+                                        </c:otherwise>
+                                    </c:choose>
+                                    <td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.createName}')">${workClientAttachment.createName}</td>
 
-                                <td>${workClientAttachment.createBy.name}</td>
-                                <td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
-                                <td class="op-td">
-                                    <div class="op-btn-box" >
-                                        <c:set var="signflag" value="${fns:getSysParam('sign_flag',fns:getUser())}"/>
-                                        <c:choose>
-                                            <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')
-                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'doc')
-                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'docx')
-                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'xls')
-                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'xlsx')
-                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'ppt')
-                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'pptx')}">
-                                                <c:if test="${not empty gzr && gzr eq 'gzr'}">
-                                                    <a href="${ctx}/isignature/iSignatureDocument/sign?recordId=${workClientAttachment.id}&type=report" class="op-btn op-btn-sign" target="_blank">签章</a>
-                                                </c:if>
-                                                <c:choose>
-                                                    <c:when test="${signflag == '是'}">
-                                                        <a href="javascript:location.href='${ctx}/isignature/iSignatureDocument/download?recordId=${workClientAttachment.id}'" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
-                                                    </c:when>
-                                                    <c:otherwise>
-                                                        <a href="javascript:location.href='${ctx}/workcontractinfo/workContractInfo/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
-                                                    </c:otherwise>
-                                                </c:choose>
-                                            </c:when>
-                                            <c:otherwise>
-                                                <a href="javascript:location.href='${ctx}/workcontractinfo/workContractInfo/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
-                                            </c:otherwise>
-                                        </c:choose>
-                                    </div>
-                                </td>
-                            </tr>
+                                    <td class="op-td" style="text-align:center;">
+                                        <fmt:formatDate value="${workClientAttachment.createDate}" type="date"/>
+                                    </td>
+
+                                    <td class="op-td">${workClientAttachment.fileSize}</td>
+                                    <td class="op-td">
+                                        <div class="op-btn-box" >
+                                                <%--附件下载删除--%>
+                                            <c:choose>
+                                                <c:when test="${projectcontentinfo.uploadMode == 2}">
+                                                    <c:choose>
+                                                        <c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+                                                            <a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:when>
+                                                        <c:otherwise>
+                                                            <a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                        </c:otherwise>
+                                                    </c:choose>
+                                                </c:when>
+                                                <c:otherwise>
+                                                    <a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+                                                </c:otherwise>
+                                            </c:choose>
+
+                                                <%--											<a href="javascript:void(0)"  onclick="openBill2('编辑附件', '${ctx}/projectAccessory/projectAccessory/workAttachmentForm?attachmentId=${fileAttachment.id}&projectId=${project.id}','70%','80%',false,'inputForm','upTable',this)" class="op-btn op-btn-edit" ><i class="fa fa-edit"></i> 编辑</a>--%>
+                                        </div>
+                                    </td>
+                                </tr>
+                            </c:forEach>
                         </c:forEach>
                         </tbody>
                     </table>

+ 4 - 4
src/main/webapp/webpage/modules/sys/gridselectProjbasedata.jsp

@@ -5,11 +5,11 @@
 	<meta name="decorator" content="default"/>
 	<script type="text/javascript">
 		$(document).ready(function() {
-			    $('#contentTable thead tr th input.i-checks').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
+			    $('#contentTable thead tr th input.i-checks').on('ifChecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定
 			    	  $('#contentTable tbody tr td input.i-checks').iCheck('check');
 			    	});
 
-			    $('#contentTable thead tr th input.i-checks').on('ifUnchecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定 
+			    $('#contentTable thead tr th input.i-checks').on('ifUnchecked', function(event){ //ifCreated 事件应该在插件初始化之前绑定
 			    	  $('#contentTable tbody tr td input.i-checks').iCheck('uncheck');
 			    	});
 		});
@@ -115,7 +115,7 @@
 					</c:when>
 						<c:otherwise>
 							<tr>
-								<td colspan="15" align="center">
+								<td colspan="6" align="center">
 									暂无数据
 								</td>
 							</tr>
@@ -131,4 +131,4 @@
 	</div>
 </div>
 </body>
-</html>
+</html>

+ 34 - 26
src/main/webapp/webpage/modules/workcontent/workContentCtrlpriceList.jsp

@@ -49,8 +49,8 @@
         <div class="layui-input-block">
             <select id="inventoryType" subName="inventoryType" class="form-control layui-input required">
                 <option value=""></option>
-                <option value="01" <c:if test="${ctrlpricelist[0].inventoryType == '01'}">selected</c:if>>工程量清单</option>
-                <option value="02" <c:if test="${ctrlpricelist[0].inventoryType == '02'}">selected</c:if>>控制价</option>
+                <option value="01" <c:if test="${inventoryType == '01'}">selected</c:if>>工程量清单</option>
+                <option value="02" <c:if test="${inventoryType == '02'}">selected</c:if>>控制价</option>
             </select>
         </div>
     </div>
@@ -296,33 +296,41 @@
                 var inventoryType = $("#inventoryType").val();
                 var costList = $("#ctrlpriceList tr");
                 var contentStr = "[";
-                for(var j=0; j<costList.length;j++){
-                    contentStr+="{"
-                    var idstr = $(costList[j]).attr("id");
-                    var detail = $("tr[id="+idstr+"] .contentDetail");
-                    for(var i=0; i<detail.length;i++){
-                        contentStr+="'"
-                        contentStr+=$(detail[i]).attr("subName");
-                        contentStr+="'"
-                        contentStr+=":";
-                        contentStr+="'"
-                        contentStr+=$(detail[i]).val();
-                        contentStr+="'"
-                        contentStr+=","
-                    }
-                    contentStr+="'inventoryType':'";
-                    contentStr+=inventoryType;
-                    contentStr+="'"
-                    contentStr+="}"
-                    if(j!=costList.length-1){
-                        contentStr+=","
-                    }
-                }
-                contentStr += "]";
+                if(costList.length>0){
+					for(var j=0; j<costList.length;j++){
+						contentStr+="{"
+						var idstr = $(costList[j]).attr("id");
+						var detail = $("tr[id="+idstr+"] .contentDetail");
+						for(var i=0; i<detail.length;i++){
+							contentStr+="'"
+							contentStr+=$(detail[i]).attr("subName");
+							contentStr+="'"
+							contentStr+=":";
+							contentStr+="'"
+							contentStr+=$(detail[i]).val();
+							contentStr+="'"
+							contentStr+=","
+						}
+						contentStr+="'inventoryType':'";
+						contentStr+=inventoryType;
+						contentStr+="'"
+						contentStr+="}"
+						if(j!=costList.length-1){
+							contentStr+=","
+						}
+					}
+				}else{
+					contentStr+="{"
+					contentStr+="'inventoryType':'";
+					contentStr+=inventoryType;
+					contentStr+="'"
+					contentStr+="}"
+				}
+				contentStr += "]";
                 return contentStr;
             }
 			function genSecondDetailStr(){
 				return '';
 			}
         </script>
-</form>
+</form>