Browse Source

layui树形与通知

wangqiang 2 years ago
parent
commit
da2ad36c26
19 changed files with 2551 additions and 1221 deletions
  1. 45 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectMaterialChooseDao.java
  2. 41 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectMaterialChoose.java
  3. 36 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectMaterialDefectRecord.java
  4. 66 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ZuZhi.java
  5. 56 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectMaterialChooseService.java
  6. 3 0
      src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectMaterialDefectRecordService.java
  7. 264 11
      src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectReportDefectRecordController.java
  8. 55 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/entity/RuralProjectRecords.java
  9. 30 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java
  10. 99 5
      src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java
  11. 16 0
      src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java
  12. 155 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectMaterialChooseDao.xml
  13. 1 0
      src/main/resources/mappings/modules/projectcontentinfo/ProjectReportRecordDao.xml
  14. 6 2
      src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageDao.xml
  15. 1 1
      src/main/webapp/webpage/modules/projectrecord/projectRecordsAlterForm.jsp
  16. 1328 1062
      src/main/webapp/webpage/modules/ruralprojectrecords/record/cost/projectRecordDescriptionForm.jsp
  17. 89 24
      src/main/webapp/webpage/modules/ruralprojectrecords/record/projectRepordDescriptionAudit.jsp
  18. 175 88
      src/main/webapp/webpage/modules/ruralprojectrecords/record/projectRepordDescriptionModify.jsp
  19. 85 23
      src/main/webapp/webpage/modules/ruralprojectrecords/record/projectRepordDescriptionView.jsp

+ 45 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/dao/ProjectMaterialChooseDao.java

@@ -0,0 +1,45 @@
+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.ProjectMaterialChoose;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectMaterialDefectRecord;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 缺失文件说明选择树形展示Dao
+ * @author: 王强
+ * @create: 2023-03-14 15:50
+ **/
+@MyBatisDao
+public interface ProjectMaterialChooseDao extends CrudDao<ProjectMaterialChoose> {
+
+    /**
+     * 将选择的树形数据保存起来
+     * @param list
+     */
+    void insertList(@Param("list")List<ProjectMaterialChoose> list);
+
+    /**
+     * 根据reportId获取所有的子级id
+     * @param reportId
+     * @return
+     */
+    List<String> getAllChildId(String reportId);
+
+    String getStatusById(String reportId);
+
+    void deleteByReportId(String reportId);
+
+    void updateInfoById(@Param("id") String id, @Param("date") Date date, @Param("count") int count);
+
+    /**
+     * 获取所有的项目信息
+     * @return
+     */
+    List<RuralProjectRecords> getDescriptMissData();
+}

+ 41 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectMaterialChoose.java

@@ -0,0 +1,41 @@
+package com.jeeplus.modules.projectcontentinfo.entity;
+
+import com.jeeplus.common.persistence.ActEntity;
+import com.jeeplus.common.persistence.DataEntity;
+
+/**
+ * 缺失文件说明选择树形展示
+ * @author: 王强
+ * @create: 2023-03-14 15:38
+ **/
+public class ProjectMaterialChoose extends DataEntity<ProjectMaterialChoose> {
+
+    private String reportId;		//项目id
+    private String childId;		    //子级id
+    private String parentId;		//父级id
+
+
+    public String getReportId() {
+        return reportId;
+    }
+
+    public void setReportId(String reportId) {
+        this.reportId = reportId;
+    }
+
+    public String getChildId() {
+        return childId;
+    }
+
+    public void setChildId(String childId) {
+        this.childId = childId;
+    }
+
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+}

+ 36 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ProjectMaterialDefectRecord.java

@@ -49,6 +49,10 @@ public class ProjectMaterialDefectRecord extends ActEntity<ProjectMaterialDefect
 	private String condition;    //判定条件
 	private String flag;    //判定条件
 	private String holdFlag;    //暂存判定条件
+	private String hiatus;    //短期/永久(0:短期,1:永久)
+	private int reminderCount; //提醒次数
+	private Date approvalTime; //审核通过时间
+	private Date remindTime; //审核通过时间
 
 	private List<ProjectTemplateInfo> fileAttachmentList;   //报告文件
 	private List<ProjectTemplateInfo> fileGistdataList;   //依据性文件
@@ -58,6 +62,30 @@ public class ProjectMaterialDefectRecord extends ActEntity<ProjectMaterialDefect
 
 	private Integer type;//(1:ProjectReportRecord  2:RuralProjectReportRecord)
 
+	public int getReminderCount() {
+		return reminderCount;
+	}
+
+	public void setReminderCount(int reminderCount) {
+		this.reminderCount = reminderCount;
+	}
+
+	public Date getApprovalTime() {
+		return approvalTime;
+	}
+
+	public void setApprovalTime(Date approvalTime) {
+		this.approvalTime = approvalTime;
+	}
+
+	public Date getRemindTime() {
+		return remindTime;
+	}
+
+	public void setRemindTime(Date remindTime) {
+		this.remindTime = remindTime;
+	}
+
 	public Integer getType() {
 		return type;
 	}
@@ -70,6 +98,14 @@ public class ProjectMaterialDefectRecord extends ActEntity<ProjectMaterialDefect
 		return reportId;
 	}
 
+	public String getHiatus() {
+		return hiatus;
+	}
+
+	public void setHiatus(String hiatus) {
+		this.hiatus = hiatus;
+	}
+
 	public void setReportId(String reportId) {
 		this.reportId = reportId;
 	}

+ 66 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/entity/ZuZhi.java

@@ -0,0 +1,66 @@
+package com.jeeplus.modules.projectcontentinfo.entity;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author: 王强
+ * @create: 2023-03-13 15:05
+ **/
+public class ZuZhi implements Serializable {
+
+    private String id;
+    private String title;     //标题
+    private boolean checked;  //是否被选择
+    private boolean spread;   //是否展开 默认false
+    private List<ZuZhi> children;
+    private boolean disabled;  //是否禁用
+
+    public boolean isDisabled() {
+        return disabled;
+    }
+
+    public void setDisabled(boolean disabled) {
+        this.disabled = disabled;
+    }
+
+    public boolean isSpread() {
+        return spread;
+    }
+
+    public void setSpread(boolean spread) {
+        this.spread = spread;
+    }
+
+    public boolean isChecked() {
+        return checked;
+    }
+
+    public void setChecked(boolean checked) {
+        this.checked = checked;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public List<ZuZhi> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<ZuZhi> children) {
+        this.children = children;
+    }
+}

+ 56 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectMaterialChooseService.java

@@ -0,0 +1,56 @@
+package com.jeeplus.modules.projectcontentinfo.service;
+
+import com.jeeplus.common.service.CrudService;
+import com.jeeplus.modules.projectcontentinfo.dao.ProjectMaterialChooseDao;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectMaterialChoose;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectMaterialDefectRecord;
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 缺失文件说明选择树形展示Service
+ * @author: 王强
+ * @create: 2023-03-14 15:54
+ **/
+@Service
+@Transactional(readOnly = true)
+public class ProjectMaterialChooseService extends CrudService<ProjectMaterialChooseDao, ProjectMaterialChoose> {
+
+    @Transactional(readOnly = false)
+    public void insert(List<ProjectMaterialChoose> chooseList){
+        dao.insertList(chooseList);
+    }
+    @Transactional(readOnly = false)
+    public void deleteByReportId(String reportId){
+        dao.deleteByReportId(reportId);
+    }
+
+    /**
+     * 根据reportId获取所有的子级id
+     * @param reportId
+     * @return
+     */
+    public List<String> getAllChildId(String reportId){
+        return dao.getAllChildId(reportId);
+    }
+
+    public String getStatusById(String reportId){
+        return dao.getStatusById(reportId);
+    }
+
+    /**
+     * 获取所有需要提醒的项目信息
+     * @return
+     */
+    public List<RuralProjectRecords> getDescriptMissData(){
+        return dao.getDescriptMissData();
+    }
+
+    public void updateInfoById(String id, Date date,int count){
+        dao.updateInfoById(id,date,count);
+    }
+}

+ 3 - 0
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectMaterialDefectRecordService.java

@@ -287,6 +287,9 @@ public class ProjectMaterialDefectRecordService extends CrudService<ProjectRepor
                 projectReportData.setFileStatus("3");
                 projectReportDataService.updateFileStatus(projectReportData);
                 projectReportRecord.setStatus("5");
+                //设置资料缺失说明审核通过时间
+                projectReportRecord.setApprovalTime(new Date());
+
                 WorkProjectNotify notify = new WorkProjectNotify();
                 notify.setNotifyId(projectReportRecord.getId());
                 userList = workProjectNotifyService.readByNotifyId(notify);

+ 264 - 11
src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectReportDefectRecordController.java

@@ -3,6 +3,9 @@
  */
 package com.jeeplus.modules.projectcontentinfo.web;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.jeeplus.common.config.Global;
 import com.jeeplus.common.persistence.Page;
@@ -18,9 +21,8 @@ import com.jeeplus.modules.projectAccessory.entity.ProjectAccessoryRelationInfo;
 import com.jeeplus.modules.projectAccessory.entity.ProjectTemplateInfo;
 import com.jeeplus.modules.projectAccessory.service.ProjectTemplateService;
 import com.jeeplus.modules.projectEngineering.service.ProjectEngineeringService;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectMaterialDefectRecord;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
+import com.jeeplus.modules.projectcontentinfo.entity.*;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectMaterialChooseService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectMaterialDefectRecordService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportRecordService;
@@ -36,6 +38,7 @@ import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.task.Task;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.codehaus.jackson.JsonNode;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
@@ -46,10 +49,8 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.ConstraintViolationException;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
+import java.util.zip.ZipEntry;
 
 /**
  * 报告归档Controller
@@ -76,6 +77,198 @@ public class ProjectReportDefectRecordController extends BaseController {
 	private RuralProjectMessageNewService ruralProjectMessageService;
 	@Autowired
 	private ProjectTemplateService projectTemplateService;
+	@Autowired
+	private ProjectMaterialChooseService chooseService;
+
+	/**
+	 * 获取组织架构
+	 * @param request
+	 * @return
+	 */
+	@SuppressWarnings("unlikely-arg-type")
+	@RequestMapping(value="/getZuzhi")
+	@ResponseBody
+	public List<ZuZhi> getZuzhi(HttpServletRequest request,ProjectMaterialDefectRecord materialDefectRecord) {
+		//查询“配农网”工程类型id
+		String engineeringId = engineeringService.getEngineeringId("202");
+		//获取项目信息
+		RuralProjectRecords ruralProjectRecords = projectRecordsService.get(materialDefectRecord.getReportId());
+		ProjectAccessoryRelationInfo relateInfo = new ProjectAccessoryRelationInfo();
+		//添加项目类型
+		relateInfo.setAttachmentProjectType(ruralProjectRecords.getProjectType());
+		relateInfo.setAttachmentProjectSort(ruralProjectRecords.getAttachmentProjectSort());
+		//判断是否为打包项目,打包项目无需查看项目送审金额是否为500w以上判定
+		String money=ruralProjectRecords.getSubmitMoney();
+		Integer approvalMoney=null;
+		if(StringUtils.isBlank(money)){
+			approvalMoney=1;
+		}else{
+			approvalMoney=Integer.parseInt(money);
+		}
+		switch (approvalMoney){
+			case 0:
+				//金额为0
+				relateInfo.setAttachmentProjectApprovalMoney(null);
+				break;
+			case 1:
+				//500w以下金额状态
+				relateInfo.setAttachmentProjectApprovalMoney("1");
+				break;
+			case 2:
+				//500w以上金额状态
+				relateInfo.setAttachmentProjectApprovalMoney("2");
+				break;
+		}
+
+		//添加报告类型
+		relateInfo.setRequiredStage(2);
+		relateInfo.setId(ruralProjectRecords.getId());
+		List<MainDictDetail> mainDictDetails = projectTemplateService.attachmentTemplateList();
+
+		projectTemplateService.disposeProjectTemplateFile(mainDictDetails,relateInfo,engineeringId,ruralProjectRecords,materialDefectRecord,"");
+
+		//根据reportId获取所有的选择过的树形文件类型数据
+		List<String> childIdList = chooseService.getAllChildId(materialDefectRecord.getId());
+
+		//根据id查流程状态
+		String status = chooseService.getStatusById(materialDefectRecord.getId());
+
+		List<ZuZhi> zuList = new ArrayList<>();
+		List<ZuZhi> childList01 = new ArrayList<>();
+		List<ZuZhi> childList02 = new ArrayList<>();
+		List<ZuZhi> childList03 = new ArrayList<>();
+		for (int i=0;i<mainDictDetails.size();i++){
+			ZuZhi zuZhi = new ZuZhi();
+			zuZhi.setId(mainDictDetails.get(i).getValue());
+			zuZhi.setTitle(mainDictDetails.get(i).getLabel());
+			if (mainDictDetails.get(i).getLabel().equals("成果文件")){
+				materialDefectRecord.getFileAttachmentList().forEach(att->{
+					if (StringUtils.isNotEmpty(status) && (status.equals("2") || status.equals("5"))){
+						if (childIdList.contains(att.getId())){
+							ZuZhi child01 = new ZuZhi();
+							child01.setId(att.getId());
+							child01.setTitle(att.getAttachName());
+							zuZhi.setSpread(true);
+							child01.setChecked(true);
+							childList01.add(child01);
+						}
+					} else {
+						ZuZhi child01 = new ZuZhi();
+						child01.setId(att.getId());
+						child01.setTitle(att.getAttachName());
+						if (childIdList.contains(att.getId())){
+							zuZhi.setSpread(true);
+							child01.setChecked(true);
+						}
+						childList01.add(child01);
+					}
+
+				});
+				if (childList01.size()>0){
+					zuZhi.setChildren(childList01);
+				}
+//				zuZhi.setChildren(childList01);
+			}
+			if (mainDictDetails.get(i).getLabel().equals("依据文件")){
+				materialDefectRecord.getFileGistdataList().forEach(att->{
+					if (StringUtils.isNotEmpty(status) && (status.equals("2") || status.equals("5"))){
+						if (childIdList.contains(att.getId())){
+							ZuZhi child02 = new ZuZhi();
+							child02.setId(att.getId());
+							child02.setTitle(att.getAttachName());
+							zuZhi.setSpread(true);
+							child02.setChecked(true);
+							childList02.add(child02);
+						}
+
+					} else {
+						ZuZhi child02 = new ZuZhi();
+						child02.setId(att.getId());
+						child02.setTitle(att.getAttachName());
+						if (childIdList.contains(att.getId())){
+							zuZhi.setSpread(true);
+							child02.setChecked(true);
+						}
+						childList02.add(child02);
+					}
+
+				});
+				if (childList02.size()>0){
+					zuZhi.setChildren(childList02);
+				}
+			}
+			if (mainDictDetails.get(i).getLabel().equals("其他文件")){
+				materialDefectRecord.getFileOtherList().forEach(att->{
+					if (StringUtils.isNotEmpty(status) && (status.equals("2") || status.equals("5"))){
+						if (childIdList.contains(att.getId())){
+							ZuZhi child03 = new ZuZhi();
+							child03.setId(att.getId());
+							child03.setTitle(att.getAttachName());
+							zuZhi.setSpread(true);
+							child03.setChecked(true);
+							childList03.add(child03);
+						}
+					}else {
+						ZuZhi child03 = new ZuZhi();
+						child03.setId(att.getId());
+						child03.setTitle(att.getAttachName());
+						if (childIdList.contains(att.getId())){
+							zuZhi.setSpread(true);
+							child03.setChecked(true);
+						}
+						childList03.add(child03);
+					}
+
+
+				});
+				if (childList03.size()>0){
+					zuZhi.setChildren(childList03);
+				}
+			}
+			if (null != zuZhi.getChildren()){
+				zuList.add(zuZhi);
+			}
+		}
+
+
+//		ZuZhi zuZhi = new ZuZhi();
+//		zuZhi.setId("1");
+//		zuZhi.setTitle("成果文件");
+//		materialDefectRecord.getFileAttachmentList().forEach(att->{
+//			ZuZhi child01 = new ZuZhi();
+//			child01.setId(att.getId());
+//			child01.setTitle(att.getAttachName());
+//			childList01.add(child01);
+//		});
+//		zuZhi.setChildren(childList01);
+//
+//		ZuZhi zuZhi02 = new ZuZhi();
+//		zuZhi02.setId("2");
+//		zuZhi02.setTitle("依据性文件");
+//		materialDefectRecord.getFileGistdataList().forEach(att->{
+//			ZuZhi child02 = new ZuZhi();
+//			child02.setId(att.getId());
+//			child02.setTitle(att.getAttachName());
+//			childList02.add(child02);
+//		});
+//		zuZhi02.setChildren(childList02);
+//
+//		ZuZhi zuZhi03 = new ZuZhi();
+//		zuZhi03.setId("3");
+//		zuZhi03.setTitle("其他文件");
+//		materialDefectRecord.getFileOtherList().forEach(att->{
+//			ZuZhi child03 = new ZuZhi();
+//			child03.setId(att.getId());
+//			child03.setTitle(att.getAttachName());
+//			childList03.add(child03);
+//		});
+//		zuZhi03.setChildren(childList03);
+//		zuList.add(zuZhi);
+//		zuList.add(zuZhi02);
+//		zuList.add(zuZhi03);
+		return zuList;
+	}
+
 	/**
 	 * 跳转到资料缺失说明页面
 	 */
@@ -404,10 +597,38 @@ public class ProjectReportDefectRecordController extends BaseController {
 	 * 保存归档资料缺失说明
 	 */
 	@RequestMapping(value = "saveDefectRecord")
-	public String saveDefectRecord(ProjectMaterialDefectRecord materialDefectRecord, Model model, RedirectAttributes redirectAttributes,Integer saveAuditFlag) throws Exception{
+	public String saveDefectRecord(ProjectMaterialDefectRecord materialDefectRecord, Model model, RedirectAttributes redirectAttributes,Integer saveAuditFlag,String zuZhiList) throws Exception{
 		if (!beanValidator(model, materialDefectRecord)){
 			return formDescription(materialDefectRecord, model);
 		}
+		String test = zuZhiList.replace("&quot;","\"");
+		List<ZuZhi> zhiList = JSONArray.parseArray(test,ZuZhi.class);
+//		List<ProjectMaterialChoose> chooseList = new ArrayList<>();
+//
+//		chooseService.deleteByReportId(materialDefectRecord.getId());
+//
+//		//将选择的成果文件等相关信息保存起来
+//		for (int i=0;i<zhiList.size();i++){
+//			for (int k=0;k<zhiList.get(i).getChildren().size();k++){
+//				ProjectMaterialChoose choose = new ProjectMaterialChoose();
+//				//创建一个UUID
+//				String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+//				choose.setCreateBy(UserUtils.getUser());
+//				choose.setCreateDate(new Date());
+//				choose.setUpdateBy(UserUtils.getUser());
+//				choose.setUpdateDate(new Date());
+//				choose.setDelFlag("0");
+//				choose.setId(uuid);
+//				choose.setParentId(zhiList.get(i).getId());
+//				choose.setChildId(zhiList.get(i).getChildren().get(k).getId());
+//				choose.setReportId(materialDefectRecord.getId());
+//				chooseList.add(choose);
+//			}
+//		}
+//		if (chooseList.size()>0){
+//			chooseService.insert(chooseList);
+//		}
+
 		try {
 			//获取创建者信息
 			User user = materialDefectRecord.getCreateBy();
@@ -454,13 +675,13 @@ public class ProjectReportDefectRecordController extends BaseController {
 				if (StringUtils.isNotBlank(materialDefectRecord.getView()) && materialDefectRecord.getView().equals("modify")){
 					materialDefectRecord.setStatus("2");
 				}
-				ruralProjectMessageService.saveProjectReportRecord(t,variables,processInstanceId);//保存
+				ruralProjectMessageService.saveProjectReportRecord(t,variables,processInstanceId,zhiList);//保存
 			}else {//新增表单保存
 //                ProjectReportRecord reportRecord = projectReportRecordService.getprojectReportRecord(materialDefectRecord.getReport().getId());//从数据库取出记录的值
 //                if(null !=reportRecord){
 //                    projectReportRecord.setId(reportRecord.getId());
 //                }
-				ruralProjectMessageService.saveProjectReportRecord(materialDefectRecord,variables,processInstanceId);//保存
+				ruralProjectMessageService.saveProjectReportRecord(materialDefectRecord,variables,processInstanceId,zhiList);//保存
 			}
 			addMessage(redirectAttributes, "保存报告归档资料缺失说明成功");
 		}catch (Exception e){
@@ -686,8 +907,13 @@ public class ProjectReportDefectRecordController extends BaseController {
 	//归档资料缺失说明
 	@RequestMapping(value = {"descriptionAuditSave"})
 	public String descriptionAuditSave(ProjectMaterialDefectRecord materialDefectRecord, HttpServletRequest request, HttpServletResponse response, Model model,
-									   RedirectAttributes redirectAttributes) {
+									   RedirectAttributes redirectAttributes,String zuZhiList) {
 		try {
+
+			String test = zuZhiList.replace("&quot;","\"");
+			List<ZuZhi> zhiList = JSONArray.parseArray(test,ZuZhi.class);
+			List<ProjectMaterialChoose> chooseList = new ArrayList<>();
+
 			ProjectMaterialDefectRecord defectRecord = materialDefectRecordService.getMaterialDefectRecord(materialDefectRecord.getId());
 			MyBeanUtils.copyBeanNotNull2Bean(materialDefectRecord, defectRecord);//将编辑表单中的非NULL值覆盖数据库记录中的值
 			//查询项目新增报告信息
@@ -709,6 +935,33 @@ public class ProjectReportDefectRecordController extends BaseController {
 			}
 
 			String flag = defectRecord.getAct().getFlag();
+
+			 if (StringUtils.isEmpty(flag)){
+				 chooseService.deleteByReportId(materialDefectRecord.getId());
+
+				 //将选择的成果文件等相关信息保存起来
+				 for (int i=0;i<zhiList.size();i++){
+					 for (int k=0;k<zhiList.get(i).getChildren().size();k++){
+						 ProjectMaterialChoose choose = new ProjectMaterialChoose();
+						 //创建一个UUID
+						 String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+						 choose.setCreateBy(UserUtils.getUser());
+						 choose.setCreateDate(new Date());
+						 choose.setUpdateBy(UserUtils.getUser());
+						 choose.setUpdateDate(new Date());
+						 choose.setDelFlag("0");
+						 choose.setId(uuid);
+						 choose.setParentId(zhiList.get(i).getId());
+						 choose.setChildId(zhiList.get(i).getChildren().get(k).getId());
+						 choose.setReportId(materialDefectRecord.getId());
+						 chooseList.add(choose);
+					 }
+				 }
+				 if (chooseList.size()>0){
+					 chooseService.insert(chooseList);
+				 }
+			 }
+
 			if ("yes".equals(flag) && (users==null || users.size()==0)){
 				addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
 			}else {

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

@@ -30,6 +30,29 @@ import java.util.List;
  */
 public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 
+	private Integer reminderCount; //提醒次数
+	private Date approvalTime;	//审核通过时间
+	private Date remindTime;	//提醒时间
+	private String hiatus;	//短期/永久(0:短期,1:永久)
+	private String pmdrCompanyId;
+	private String pmdrCreateBy;
+
+	public String getPmdrCreateBy() {
+		return pmdrCreateBy;
+	}
+
+	public void setPmdrCreateBy(String pmdrCreateBy) {
+		this.pmdrCreateBy = pmdrCreateBy;
+	}
+
+	public String getPmdrCompanyId() {
+		return pmdrCompanyId;
+	}
+
+	public void setPmdrCompanyId(String pmdrCompanyId) {
+		this.pmdrCompanyId = pmdrCompanyId;
+	}
+
 	public static final String SERIAL_BIZCODE ="1";
 	public static final String PROJECT_COST_APPRAISAL ="100";//工程造价鉴定模板key
 	public static final String ECONOMIC_EVALUATION="101";//经济评价模板key
@@ -322,6 +345,38 @@ public class RuralProjectRecords extends ActEntity<RuralProjectRecords> {
 	private List<ProjectReportData> projectReportData = Lists.newArrayList();
 	private List<ProjectFilingBatchProInfo> proInfos=Lists.newArrayList();
 
+	public Integer getReminderCount() {
+		return reminderCount;
+	}
+
+	public void setReminderCount(Integer reminderCount) {
+		this.reminderCount = reminderCount;
+	}
+
+	public Date getApprovalTime() {
+		return approvalTime;
+	}
+
+	public void setApprovalTime(Date approvalTime) {
+		this.approvalTime = approvalTime;
+	}
+
+	public Date getRemindTime() {
+		return remindTime;
+	}
+
+	public void setRemindTime(Date remindTime) {
+		this.remindTime = remindTime;
+	}
+
+	public String getHiatus() {
+		return hiatus;
+	}
+
+	public void setHiatus(String hiatus) {
+		this.hiatus = hiatus;
+	}
+
 	public String getPrrId() {
 		return prrId;
 	}

+ 30 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectMessageNewService.java

@@ -25,11 +25,9 @@ import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingbatchRelation;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectContentChangeDao;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectReportDataDao;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectcontentinfoDao;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectMaterialDefectRecord;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
-import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportRecord;
-import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.entity.*;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectContentDataService;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectMaterialChooseService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectcontentinfoService;
 import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
@@ -204,6 +202,8 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
     private ProjectPlanDao projectPlanDao;
     @Autowired
     private RuralProjectMessageService ruralProjectMessageService;
+    @Autowired
+    private ProjectMaterialChooseService chooseService;
 
     private static byte[] SYN_BYTE = new byte[0];
 
@@ -3223,7 +3223,7 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
      * @param variables
      */
     @Transactional(readOnly = false)
-    public String saveProjectReportRecord(ProjectMaterialDefectRecord materialDefectRecord, Map<String, Object> variables, String processInstanceId) {
+    public String saveProjectReportRecord(ProjectMaterialDefectRecord materialDefectRecord, Map<String, Object> variables, String processInstanceId,List<ZuZhi> zhiList) {
 
         User user = UserUtils.getUser();
         Boolean insert = false;
@@ -3245,6 +3245,31 @@ public class RuralProjectMessageNewService extends CrudService<RuralProjectMessa
         if("1".equals(materialDefectRecord.getFlag())){
             return "true";
         }
+        List<ProjectMaterialChoose> chooseList = new ArrayList<>();
+
+        chooseService.deleteByReportId(materialDefectRecord.getId());
+
+        //将选择的成果文件等相关信息保存起来
+        for (int i=0;i<zhiList.size();i++){
+            for (int k=0;k<zhiList.get(i).getChildren().size();k++){
+                ProjectMaterialChoose choose = new ProjectMaterialChoose();
+                //创建一个UUID
+                String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
+                choose.setCreateBy(UserUtils.getUser());
+                choose.setCreateDate(new Date());
+                choose.setUpdateBy(UserUtils.getUser());
+                choose.setUpdateDate(new Date());
+                choose.setDelFlag("0");
+                choose.setId(uuid);
+                choose.setParentId(zhiList.get(i).getId());
+                choose.setChildId(zhiList.get(i).getChildren().get(k).getId());
+                choose.setReportId(materialDefectRecord.getId());
+                chooseList.add(choose);
+            }
+        }
+        if (chooseList.size()>0){
+            chooseService.insert(chooseList);
+        }
         //获取项目信息
         RuralProjectRecords record = ruralProjectRecordsService.get(materialDefectRecord.getReport().getProject().getId());
         //查询项目新增报告信息

+ 99 - 5
src/main/java/com/jeeplus/modules/ruralprojectrecords/service/RuralProjectRecordsService.java

@@ -10,10 +10,7 @@ import com.jeeplus.common.config.Global;
 import com.jeeplus.common.oss.OSSClientUtil;
 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;
@@ -27,9 +24,11 @@ import com.jeeplus.modules.projectFilingBatch.entity.ProjectFilingBatchImportInf
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectReportDataDao;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectReportDataTwoDao;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectcontentinfoDao;
+import com.jeeplus.modules.projectcontentinfo.entity.ProjectMaterialDefectRecord;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportData;
 import com.jeeplus.modules.projectcontentinfo.entity.ProjectReportDataTwo;
 import com.jeeplus.modules.projectcontentinfo.entity.Projectcontentinfo;
+import com.jeeplus.modules.projectcontentinfo.service.ProjectMaterialChooseService;
 import com.jeeplus.modules.projectcontentinfo.service.ProjectReportDataService;
 import com.jeeplus.modules.projectrecord.dao.ProjectPlanDao;
 import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
@@ -192,6 +191,14 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	private StatementCompanyComprehensiveService statementCompanyComprehensiveService;
 	@Autowired
 	private RuralProjectRecordsDao ruralProjectRecordsDao;
+	@Autowired
+	private ProjectMaterialChooseService chooseService;
+//	@Autowired
+//	private RuralProjectRecordsService projectRecordsService;
+//	@Autowired
+//	private RuralProjectMessageNewService ruralProjectMessageService;
+//	@Autowired
+//	private RuralProjectRecordsService ruralProjectRecordsService;
 
 	/**
 	 * 获取咨询项目类别
@@ -2993,7 +3000,94 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		}
 	}
 
-
+	/**
+	 * 资料缺失说明归档提醒
+	 * @return
+	 */
+	@Transactional(readOnly = false)
+	public void saveDescriptMissData() throws Exception {
+		ProjectMaterialDefectRecord defectRecord = new ProjectMaterialDefectRecord();
+		ProjectRecords projectRecords = new ProjectRecords();
+
+		List<RuralProjectRecords> defectRecordList = chooseService.getDescriptMissData();
+		for (int i=0;i<defectRecordList.size();i++){
+//			RuralProjectRecords ruralProjectRecords = projectRecordsService.get(defectRecordList.get(i).getPrdId());
+//			MyBeanUtils.copyBeanNotNull2Bean(ruralProjectRecords, projectRecords);
+//			//获取合同信息
+//			WorkContractInfo projectContractInfo = ruralProjectMessageService.getProjectContractInfo(projectRecords.getWorkContractInfo().getId());
+//			projectRecords.setWorkContractInfo(projectContractInfo);
+//			ProjectReportData reportData = ruralProjectMessageService.getProjectReportDateByProjectId(defectRecordList.get(i).getPrdId());
+//			reportData.setProject(projectRecords);
+//			defectRecord.setReport(reportData);
+//			defectRecord.setUploadMode(uploadMode);
+//			//获取项目信息
+//			RuralProjectRecords record = ruralProjectRecordsService.get(defectRecord.getReport().getProject().getId());
+//			//查询项目新增报告信息
+//			ProjectReportData reportData2 = projectReportDataService.get(record.getPrdId());
+//			String title = "项目【"+ record.getProjectName()+"】资料缺失申请待审批";
+//			String str = "项目【"+ record.getProjectName()+"】资料缺失申请待审批";
+//			String str = "报告号:" + record.getProjectReportNumber() + "。项目【" + record.getProjectName()+"】资料缺失说明审核通过第" + defectRecordList.get(i).getReminderCount() +"提醒归档";
+
+			//短期的第一次提醒为审核通过的30天后,之后为7天提醒一次
+			if (null == defectRecordList.get(i).getReminderCount() || defectRecordList.get(i).getReminderCount() == 0 ){
+				//第一次提醒  30天
+				String title = "报告号:" + defectRecordList.get(i).getProjectReportNumber() + "。项目【" + defectRecordList.get(i).getProjectName()+"】资料缺失说明审核通过第" + 1 +"次提醒归档";
+				String str = "报告号:" + defectRecordList.get(i).getProjectReportNumber() + "。项目【" + defectRecordList.get(i).getProjectName()+"】资料缺失说明审核通过第" + 1 +"次提醒归档";
+				Calendar cal = Calendar.getInstance();
+				Date date30 = defectRecordList.get(i).getApprovalTime();
+				cal.setTime(date30);
+//				cal.add(Calendar.HOUR_OF_DAY,1);//往后取一个月
+				cal.add(Calendar.MONTH,1);//往后取一个月
+				Calendar cal2 = Calendar.getInstance();
+				cal2.setTime(new Date());
+				User user = UserUtils.get(defectRecordList.get(i).getPmdrCreateBy());
+				if (cal2.after(cal)){
+					WorkProjectNotify workProjectNotify = UtilNotify
+							.saveNotify(defectRecordList.get(i).getPmdrId(),
+									user,
+									defectRecordList.get(i).getPmdrCompanyId(),
+									title,
+									str,
+									"99",
+									"0",
+									"待通知",
+									""
+							);
+					workProjectNotifyService.save(workProjectNotify);
+					//修改提醒次数及提醒时间
+					chooseService.updateInfoById(defectRecordList.get(i).getPmdrId(),new Date(), (defectRecordList.get(i).getReminderCount()+1));
+				}
+			} else {
+				//7天提醒一次
+				String title = "报告号:" + defectRecordList.get(i).getProjectReportNumber() + "。项目【" + defectRecordList.get(i).getProjectName()+"】资料缺失说明审核通过第" + (defectRecordList.get(i).getReminderCount()+1) +"次提醒归档";
+				String str = "报告号:" + defectRecordList.get(i).getProjectReportNumber() + "。项目【" + defectRecordList.get(i).getProjectName()+"】资料缺失说明审核通过第" + (defectRecordList.get(i).getReminderCount()+1) +"次提醒归档";
+				Calendar cal = Calendar.getInstance();
+				Date date7 = defectRecordList.get(i).getRemindTime();
+				cal.setTime(date7);
+				cal.add(Calendar.DAY_OF_MONTH,7);//往后取7天
+//				cal.add(Calendar.MINUTE,1);//往后取7天
+				Calendar cal2 = Calendar.getInstance();
+				cal2.setTime(new Date());
+				User user = UserUtils.get(defectRecordList.get(i).getPmdrCreateBy());
+				if (cal2.after(cal)) {
+					WorkProjectNotify workProjectNotify = UtilNotify
+							.saveNotify(defectRecordList.get(i).getPmdrId(),
+									user,
+									defectRecordList.get(i).getPmdrCompanyId(),
+									title,
+									str,
+									"99",
+									"0",
+									"待通知",
+									""
+							);
+					workProjectNotifyService.save(workProjectNotify);
+					//修改提醒次数及提醒时间
+					chooseService.updateInfoById(defectRecordList.get(i).getPmdrId(),new Date(), (defectRecordList.get(i).getReminderCount()+1));
+				}
+			}
+		}
+	}
 
 	/**
 	 * 获取项目即将超期还未归档并进行通知(电子归档)

+ 16 - 0
src/main/java/com/jeeplus/modules/ruralprojectrecords/web/RuralProjectSignatureOldMessageDisposeController.java

@@ -283,6 +283,22 @@ public class RuralProjectSignatureOldMessageDisposeController extends BaseContro
         return map;
     }
 
+    /**
+     * 资料缺失说明归档提醒
+     * @return
+     */
+    @RequestMapping(value = "/descriptMissData")
+    @ResponseBody
+    @Transactional(readOnly = false)
+    public Map<String,Object> descriptMissData() throws Exception {
+        Map<String,Object> map = new HashMap<>();
+        logger.info("-----------资料缺失说明未归档定时任务开始------------------");
+        projectRecordsService.saveDescriptMissData();
+        logger.info("------------资料缺失说明未归档定时任务结束------------------");
+        map.put("msg","处理完成");
+        return map;
+    }
+
 
     /**
      * A类项目纸质归档签发后40天提醒通知

+ 155 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectMaterialChooseDao.xml

@@ -0,0 +1,155 @@
+<?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.ProjectMaterialChooseDao">
+
+    <sql id="projectRecordsColumns">
+		distinct a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.del_flag AS "delFlag",
+		a.contract_id AS "workContractInfo.id",
+		a.project_id AS "projectId",
+		a.project_name AS "projectName",
+		a.scale_type AS "scaleType",
+		a.scale_unit AS "scaleUnit",
+		a.scale_quantity AS "scaleQuantity",
+		a.area_id AS "area.id",
+		a.project_site AS "projectSite",
+		a.project_desc AS "projectDesc",
+		a.remarks AS "remarks",
+		a.status AS "projectStatus",
+		a.process_instance_id AS "processInstanceId",
+		a.company_id AS "company.id",
+		a.office_id AS "office.id",
+		a.alter_process_id AS "alterProcessId",
+		area.name AS "area.name",
+		a.province,
+		a.city,
+		a.area_name AS "county",
+		a.project_structure AS "projectStructure",
+		a.on_ground_num AS "onGroundNum",
+		a.under_ground_num AS "underGroundNum",
+		a.building_scale AS "buildingScale",
+		a.measuring_unit AS "measuringUnit",
+		a.project_use AS "projectUse",
+		a.install_fees AS "installFees",
+		a.building_fees AS "buildingFees",
+		a.building_percent AS "buildingPercent",
+		a.install_percent AS "installPercent",
+		a.unit_fees AS "unitFees",
+		a.building_unit_fees AS "buildingUnitFees",
+		a.install_unit_fees AS "installUnitFees",
+		a.total_fees AS "totalFees",
+		a.start_date AS "startDate",
+		a.ending_date AS "endingDate",
+		a.estimate_total_fees AS "estimateTotalFees",
+		a.construction_unit as "constructionUnit",
+		a.construction_linkman as "constructionLinkman",
+		a.project_type as "projectType",
+		a.over_due_status as "overDueStatus",
+		a.attachment_project_sort as "attachmentProjectSort",
+		a.check_remarks as "checkRemarks",
+		a.project_properties As "projectProperties",
+		a.submit_scale As "submitScale",
+		ifnull(a.record_state,0) as "projectRecordStatus",
+		a.over_record_status as "overRecordStatus",
+		a.emergency_project AS "emergencyProject",
+		a.report_signature_flag as "reportSignatureFlag",
+		a.report_signature_document_id as "reportSignatureDocumentId",
+		a.report_signature_contract_id as "reportSignatureContractId",
+		a.report_signature_url as "reportSignatureUrl",
+		a.report_signature_invalid_document_id as "reportSignatureInvalidDocumentId",
+		a.report_signature_file_name as "reportSignatureFileName",
+		a.report_signature_upload_file_user as "reportSignatureUploadFileUser.id",
+		a.report_signature_upload_date as "reportSignatureUploadDate",
+		a.quality_signature_flag as "qualitySignatureFlag",
+		a.quality_signature_document_id as "qualitySignatureDocumentId",
+		a.quality_signature_contract_id as "qualitySignatureContractId",
+		a.quality_signature_invalid_document_id as "qualitySignatureInvalidDocumentId",
+		a.quality_signature_file_name as "qualitySignatureFileName",
+		a.quality_signature_upload_file_user as "qualitySignatureUploadFileUser.id",
+		a.quality_signature_upload_date as "qualitySignatureUploadDate",
+		a.belonging_department as "belongingDepartment"
+	</sql>
+
+    <sql id="projectRecordsJoins">
+		LEFT JOIN sys_area area ON area.id = a.area_id
+	</sql>
+
+    <insert id="insertList">
+        insert into project_material_project_choose
+        (
+			id,
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			del_flag,
+			report_id,
+			child_id,
+			parent_id
+		) values
+        <foreach collection="list" item="item" separator=",">
+            (
+            #{item.id},
+            #{item.createBy.id},
+            #{item.createDate},
+            #{item.updateBy.id},
+            #{item.updateDate},
+            #{item.delFlag},
+            #{item.reportId},
+            #{item.childId},
+            #{item.parentId}
+            )
+        </foreach>
+    </insert>
+	<update id="updateInfoById">
+		update project_material_defect_record set remind_time = #{date},reminder_count = #{count} where id = #{id}
+	</update>
+	<delete id="deleteByReportId">
+        delete FROM project_material_project_choose where report_id = #{reportId}
+    </delete>
+    <select id="getAllChildId" resultType="java.lang.String">
+        select child_id from project_material_project_choose where report_id = #{reportId} and del_flag = '0'
+    </select>
+    <select id="getStatusById" resultType="java.lang.String">
+        select status from project_material_defect_record where id = #{reportId} and del_flag = '0'
+    </select>
+    <select id="getDescriptMissData"
+            resultType="com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords">
+        SELECT
+        <include refid="projectRecordsColumns"/>
+
+        ,(SELECT group_concat( su.NAME ) FROM work_project_user wpu LEFT JOIN sys_user su ON su.id = wpu.user_id WHERE wpu.project_id = a.id ) AS "leaderNameStr",
+        (SELECT group_concat( su.id ) FROM work_project_user wpu LEFT JOIN sys_user su ON su.id = wpu.user_id WHERE wpu.project_id = a.id ) AS "leaderNameIds",
+        (select group_concat(office.name) from sys_office office left join sys_user suo on suo.office_id = office.id left join work_project_user wpu ON suo.id = wpu.user_id where wpu.project_id = a.id) AS "officeName"
+        ,a.file_num AS "fileNum"
+        ,a.check_process_instance_id AS "checkProcessInstanceId"
+        ,su.name AS "createBy.name"
+        ,o.top_company AS "office.name"
+        ,prd.number AS "projectReportNumber"
+        ,prd.id AS "prdId"
+        ,prr.id As "prrid"
+        ,a.project_master_id as "projectMasterId"
+        ,a.submit_money as "submitMoney"
+        ,a.engineering_type as "engineeringType"
+        ,supmi.name as "projectMasterName",
+		pmdr.reminder_count as "reminderCount",
+		pmdr.approval_time as "approvalTime",
+		pmdr.remind_time as "remindTime",
+		pmdr.id as "pmdrId",
+		pmdr.company_id as "pmdrCompanyId",
+		pmdr.create_by as "pmdrCreateBy"
+        FROM rural_project_records a
+        <include refid="projectRecordsJoins"/>
+        LEFT JOIN sys_user su ON su.id = a.create_by
+        LEFT JOIN sys_user supmi ON supmi.id = a.project_master_id
+        left join project_report_data prd on prd.project_id = a.id
+        LEFT JOIN rural_project_report_record prr on prd.id = prr.report_id
+        LEFT JOIN sys_office o ON o.id = a.office_id
+        LEFT JOIN project_material_defect_record pmdr on prd.id = pmdr.report_id
+        WHERE pmdr.`status` = '5' and pmdr.hiatus = '0'
+    </select>
+</mapper>

+ 1 - 0
src/main/resources/mappings/modules/projectcontentinfo/ProjectReportRecordDao.xml

@@ -47,6 +47,7 @@
 		a.office_id AS "officeId",
 		a.date AS "date",
 		a.status AS "status",
+		a.hiatus AS "hiatus",
 		a.process_instance_id AS "processInstanceId",
 		u.name AS "createBy.name",
 		d.name AS "report.name",

+ 6 - 2
src/main/resources/mappings/modules/ruralprojectrecords/RuralProjectMessageDao.xml

@@ -1439,7 +1439,8 @@
 		office_id,
 		date,
 		status,
-		process_instance_id
+		process_instance_id,
+		hiatus
 		) VALUES (
 		#{id},
 		#{createBy.id},
@@ -1453,7 +1454,8 @@
 		#{officeId},
 		#{date},
 		#{status},
-		#{processInstanceId}
+		#{processInstanceId},
+		#{hiatus}
 		)
 	</insert>
 
@@ -1487,6 +1489,8 @@
 		office_id = #{officeId},
 		date = #{date},
 		status = #{status},
+		hiatus = #{hiatus},
+		approval_time = #{approvalTime},
 		process_instance_id = #{processInstanceId}
 		WHERE id = #{id}
 	</update>

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

@@ -1268,4 +1268,4 @@
     </div>
 </div>
 </body>
-</html>
+</html>

File diff suppressed because it is too large
+ 1328 - 1062
src/main/webapp/webpage/modules/ruralprojectrecords/record/cost/projectRecordDescriptionForm.jsp


+ 89 - 24
src/main/webapp/webpage/modules/ruralprojectrecords/record/projectRepordDescriptionAudit.jsp

@@ -1,17 +1,68 @@
 <%@ page contentType="text/html;charset=UTF-8" %>
-<%@ include file="/webpage/include/taglib.jsp"%>
+<%@ include file="/webpage/include/taglib.jsp" %>
 <html>
 <head>
 	<title>合同归档管理</title>
 	<meta name="decorator" content="default"/>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/common/css/style.css"/>
 	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+	<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></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" />
-	<link rel='stylesheet' type="text/css" href="${ctxStatic}/common/css/style.css"/>
+	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
 	<%@include file="/webpage/include/treetable.jsp" %>
+
+	<script type="text/javascript">
+		layui.use(['tree', 'util'], function() {
+			var reportId = "${materialDefectRecord.reportId}"
+			var id = "${materialDefectRecord.id}"
+			console.log('reportId', reportId)
+			let re = [];
+			$.ajax({
+				//几个参数需要注意一下
+				type: "post",//方法类型
+				dataType: "json",//预期服务器返回的数据类型
+				url: '${ctx}/projectReportDefectRecord/projectReportDefectRecord/getZuzhi',
+				data: {"reportId": reportId,"id": id},
+				success: function (result) {
+					console.log('result', result)
+					re=result;
+					// var tree = layui.tree;
+					// var util = layui.util
+					var tree = layui.tree
+							, layer = layui.layer
+							, util = layui.util
+							, data = re
+					// , data = [{
+					// id: 1,
+					// title: '成果文件'
+					// , children: re}]
+					console.log('tree', tree)
+					tree.render({
+						elem: '#test2'
+						,data: data
+						,showCheckbox: false  //是否显示复选框
+						,id: 'demoId1'
+						,isJump: false //是否允许点击节点时弹出新窗口跳转
+					});
+				},
+				error : function(e) {
+					alert("发生未知错误!");
+				}
+			});
+		});
+	</script>
+
 	<script type="text/javascript">
+
         var validateForm;
         function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+
+			var tree = layui.tree;
+			var test = tree.getChecked('demoId1'); //获取选中节点的数据
+			document.getElementById('zuZhiList').value = JSON.stringify(test)
+
         	var fileNum =  $("#fileNum").val();
 			var fileNumTow =  $("#fileNumTow").val();
 			var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
@@ -417,15 +468,32 @@
 							</div>
 						</div>
 					</div>
+							<input id="zuZhiList" name="zuZhiList" htmlEscape="false" readonly="true" style="display: none"/>
 					<div class="form-group layui-row first lw12">
 						<div class="form-group-label"><h2>资料缺失说明</h2></div>
+						<div class="layui-item layui-col-sm6 lw7">
+							<label class="layui-form-label">短期/永久:</label>
+							<div class="layui-input-block">
+								<input type="radio" title="短期" lay-filter="ext" disabled name="hiatus" id="hiatus1" value="0" <c:if test="${materialDefectRecord.hiatus=='0'}">checked</c:if>>
+								<input type="radio" title="永久" lay-filter="ext" disabled name="hiatus" id="hiatus2" value="1" <c:if test="${materialDefectRecord.hiatus=='1'}">checked</c:if>>
+							</div>
+						</div>
+						<div class="layui-item layui-col-sm12  with-textarea">
+							<label class="layui-form-label"><span class="require-item">*</span>资料缺失说明:</label>
+							<div class="layui-input-block">
+								<form:textarea placeholder="请输入资料缺失说明:" path="remarks" readonly="true" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>
+							</div>
+						</div>
+<%--						<div class="layui-item layui-col-sm12  with-textarea">--%>
+<%--							<form:textarea placeholder="请输入资料缺失说明:" path="remarks" readonly="true" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>--%>
+<%--						</div>--%>
 						<div class="layui-item layui-col-sm12  with-textarea">
-							<form:textarea placeholder="请输入资料缺失说明:" path="remarks" readonly="true" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>
+							<div id="test2" class="demo-tree-more"></div>
 						</div>
 					</div>
 
 							<div class="form-group layui-row">
-								<div class="form-group-label"><h2>附件信息</h2></div>
+								<div class="form-group-label"><h2>说明扫描件</h2></div>
 								<div id="addFile_attachment" style="display: none" class="upload-progress">
 									<span id="fileName_attachment" ></span>
 									<b><span id="baifenbi_attachment" ></span></b>
@@ -603,8 +671,7 @@
 								</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 nav-btns">
 								</div>
@@ -652,7 +719,7 @@
 												<td>
 													<c:choose>
 														<c:when test="${fileAttachment.flag == 0}">
-<%--															<div><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>--%>
+&lt;%&ndash;															<div><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>&ndash;%&gt;
 															<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileAttachment.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileAttachment.attachTypes}</div>
 														</c:when>
 														<c:otherwise>
@@ -720,7 +787,7 @@
 																	</c:choose>
 																</c:otherwise>
 															</c:choose>
-															<%--											<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileAttachment.url}','90%','90%')">${fileAttachment.attachName} ; </a>--%>
+															&lt;%&ndash;											<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileAttachment.url}','90%','90%')">${fileAttachment.attachName} ; </a>&ndash;%&gt;
 														</c:otherwise>
 													</c:choose>
 												</td>
@@ -758,7 +825,7 @@
 															</c:when>
 															<c:otherwise>
 
-																<%--附件下载删除--%>
+																&lt;%&ndash;附件下载删除&ndash;%&gt;
 																<c:choose>
 																	<c:when test="${materialDefectRecord.uploadMode == 2}">
 																		<c:choose>
@@ -787,7 +854,7 @@
 							<div class="form-group layui-row">
 								<div class="form-group-label"><h2>依据性文件</h2></div>
 								<div class="layui-item nav-btns">
-										<%--<a id="gistdata_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>--%>
+										&lt;%&ndash;<a id="gistdata_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>&ndash;%&gt;
 								</div>
 								<div id="addFile_gistdata" style="display: none" class="upload-progress">
 									<span id="fileName_gistdata" ></span>
@@ -815,7 +882,7 @@
 										<tbody id="file_gistdata">
 										<c:forEach items="${materialDefectRecord.fileGistdataList}" var = "fileGistdata" varStatus="status">
 											<tr id="${fileGistdata.id}" pid="${fileGistdata.parent.id}">
-													<%-- <td>${status.index + 1}</td>--%>
+													&lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
 												<c:choose>
 													<c:when test="${fileGistdata.mustFlag == 1}">
 														<td class="tabMove" style="text-align: left;"><span style="color: red">* </span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>
@@ -834,7 +901,7 @@
 														<td>
 															<c:choose>
 																<c:when test="${fileGistdata.flag == 0}">
-<%--																	<div><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>--%>
+&lt;%&ndash;																	<div><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>&ndash;%&gt;
 																	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileGistdata.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileGistdata.attachTypes}</div>
 																</c:when>
 																<c:otherwise>
@@ -902,7 +969,7 @@
 																			</c:choose>
 																		</c:otherwise>
 																	</c:choose>
-																	<%--												<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileGistdata.url}','90%','90%')">${fileGistdata.attachName} ; </a>--%>
+																	&lt;%&ndash;												<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileGistdata.url}','90%','90%')">${fileGistdata.attachName} ; </a>&ndash;%&gt;
 																</c:otherwise>
 															</c:choose>
 														</td>
@@ -937,7 +1004,7 @@
 															</c:when>
 															<c:otherwise>
 
-																<%--附件下载删除--%>
+																&lt;%&ndash;附件下载删除&ndash;%&gt;
 																<c:choose>
 																	<c:when test="${materialDefectRecord.uploadMode == 2}">
 																		<c:choose>
@@ -968,7 +1035,7 @@
 							<div class="form-group layui-row">
 								<div class="form-group-label"><h2>其他文件</h2></div>
 								<div class="layui-item nav-btns">
-										<%--<a id="other_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>--%>
+										&lt;%&ndash;<a id="other_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>&ndash;%&gt;
 								</div>
 								<div id="addFile_other" style="display: none" class="upload-progress">
 									<span id="fileName_other" ></span>
@@ -996,7 +1063,7 @@
 										<tbody id="file_other">
 										<c:forEach items="${materialDefectRecord.fileOtherList}" var = "fileOther" varStatus="status">
 											<tr id="${fileOther.id}" pid="${fileOther.parent.id}">
-													<%-- <td>${status.index + 1}</td>--%>
+													&lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
 												<c:choose>
 													<c:when test="${fileOther.mustFlag == 1}">
 														<td class="tabMove" style="text-align: left;"><span style="color: red">* </span>${fileOther.attachName}<input type="hidden" value="${fileOther.attachName}"/></td>
@@ -1015,7 +1082,7 @@
 														<td>
 															<c:choose>
 																<c:when test="${fileOther.flag == 0}">
-<%--																	<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>--%>
+&lt;%&ndash;																	<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>&ndash;%&gt;
 																	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileOther.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileOther.attachTypes}</div>
 																</c:when>
 																<c:otherwise>
@@ -1117,7 +1184,7 @@
 
 															</c:when>
 															<c:otherwise>
-																<%--附件下载删除--%>
+																&lt;%&ndash;附件下载删除&ndash;%&gt;
 																<c:choose>
 																	<c:when test="${materialDefectRecord.uploadMode == 2}">
 																		<c:choose>
@@ -1144,9 +1211,7 @@
 										</tbody>
 									</table>
 								</div>
-							</div>
-
-
+							</div>--%>
 
 							<div class="form-group layui-row">
 								<div class="form-group-label"><h2>审批流程</h2></div>
@@ -1660,8 +1725,8 @@
 		<iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>
 	</div>
 </div>
-<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
-<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+<%--<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>--%>
+<%--<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>--%>
 <script>
 	function f1(row) {
 		// window.parent.document.getElementById('opinion').value = row;

+ 175 - 88
src/main/webapp/webpage/modules/ruralprojectrecords/record/projectRepordDescriptionModify.jsp

@@ -4,10 +4,63 @@
 <head>
 	<title>合同归档管理</title>
 	<meta name="decorator" content="default"/>
-	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
+<%--	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />--%>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+	<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
 	<%@include file="/webpage/include/treetable.jsp" %>
 
 	<script type="text/javascript">
+
+		layui.use(['tree', 'util'], function() {
+			var reportId = "${materialDefectRecord.reportId}"
+			var id = "${materialDefectRecord.id}"
+			console.log('reportId', reportId)
+			let re = [];
+			$.ajax({
+				//几个参数需要注意一下
+				type: "post",//方法类型
+				dataType: "json",//预期服务器返回的数据类型
+				url: '${ctx}/projectReportDefectRecord/projectReportDefectRecord/getZuzhi',
+				data: {"reportId": reportId,"id": id},
+				success: function (result) {
+					console.log('result', result)
+					re=result;
+					var tree = layui.tree;
+					var util = layui.util
+					var tree = layui.tree
+							, layer = layui.layer
+							, util = layui.util
+							, data = re
+					// , data = [{
+					// id: 1,
+					// title: '成果文件'
+					// , children: re}]
+					tree.render({
+						elem: '#test2'
+						,data: data
+						,showCheckbox: true  //是否显示复选框
+						,id: 'demoId1'
+						,isJump: false //是否允许点击节点时弹出新窗口跳转
+					});
+					util.event('lay-demo', {
+						getChecked: function(othis){
+							checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
+
+							layer.alert(JSON.stringify(checkedData), {shade:0});
+							console.log('checkedData',checkedData);
+						}
+					});
+				},
+				error : function(e) {
+					alert("发生未知错误!");
+				}
+			});
+		});
+
 		function listTr(obj){
 			var name=$(obj).attr("id");
 			var tiao="."+name;
@@ -23,63 +76,76 @@
 		}
         var validateForm;
         function doSubmit(){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+			var tree = layui.tree;
+			var test = tree.getChecked('demoId1'); //获取选中节点的数据
+			document.getElementById('zuZhiList').value = JSON.stringify(test)
+
             if(validateForm.form()){
 				var projectId = '${project.id}';
-				var leng = $("#file_attachment tr").length;
 				var boolFlag = true;
-				for(var i=0; i<leng; i++) {
-					var numberStr = $("#file_attachment tr").eq(i).find("td:first").html();
-					var second = $("#file_attachment tr").eq(i).find("td:eq(1)").html();
-					var name = $("#file_attachment tr").eq(i).find("td:eq(2)").html();
-					var fileFlag = $("#file_attachment tr").eq(i).find("td:last").html();
-					if(second == 1){
-						if(numberStr != undefined && numberStr !=null && numberStr !=''){
-							if (fileFlag==1){
-
-							}else{
-								top.layer.msg("请上传成果文件!", {icon: 0});
-								return false;
-							}
-						}
-					}
-				}
-				if(boolFlag){
-					var gistdata = $("#file_gistdata tr").length;
-					for(var i=0; i<gistdata; i++) {
-						var numberStr = $("#file_gistdata tr").eq(i).find("td:first").html();
-						var second = $("#file_gistdata tr").eq(i).find("td:eq(1)").html();
-						var fileFlag = $("#file_gistdata tr").eq(i).find("td:last").html();
-						if(second == 1){
-							if(numberStr != undefined && numberStr !=null && numberStr !=''){
-								if (fileFlag==1){
-
-								}else{
-									top.layer.msg("请上传依据性文件!", {icon: 0});
-									return false;
-								}
-							}
-						}
-					}
-				}
-				if(boolFlag){
-					var other = $("#file_other tr").length;
-					for(var i=0; i<other; i++) {
-						var numberStr = $("#file_other tr").eq(i).find("td:first").html();
-						var second = $("#file_other tr").eq(i).find("td:eq(1)").html();
-						var fileFlag = $("#file_other tr").eq(i).find("td:last").html();
-
-						if(second == 1){
-							if(numberStr != undefined && numberStr !=null && numberStr !=''){
-								if (fileFlag==1){
+				// if (boolFlag) {
+				//     var gistdata = $("#file_attachment01 tr").length;
+				//     console.log('说明扫描件数量:' + gistdata)
+				//     if (gistdata === 0) {
+				//         top.layer.msg("请上传说明扫描件!", {icon: 0});
+				//         return false;
+				//     }
+				// }
 
-								}else{
-									top.layer.msg("请上传其它文件!", {icon: 0});
-									return false;
-								}
-							}
-						}
-					}
-				}
+				// var leng = $("#file_attachment tr").length;
+				// for(var i=0; i<leng; i++) {
+				// 	var numberStr = $("#file_attachment tr").eq(i).find("td:first").html();
+				// 	var second = $("#file_attachment tr").eq(i).find("td:eq(1)").html();
+				// 	var name = $("#file_attachment tr").eq(i).find("td:eq(2)").html();
+				// 	var fileFlag = $("#file_attachment tr").eq(i).find("td:last").html();
+				// 	if(second == 1){
+				// 		if(numberStr != undefined && numberStr !=null && numberStr !=''){
+				// 			if (fileFlag==1){
+				//
+				// 			}else{
+				// 				top.layer.msg("请上传成果文件!", {icon: 0});
+				// 				return false;
+				// 			}
+				// 		}
+				// 	}
+				// }
+				// if(boolFlag){
+				// 	var gistdata = $("#file_gistdata tr").length;
+				// 	for(var i=0; i<gistdata; i++) {
+				// 		var numberStr = $("#file_gistdata tr").eq(i).find("td:first").html();
+				// 		var second = $("#file_gistdata tr").eq(i).find("td:eq(1)").html();
+				// 		var fileFlag = $("#file_gistdata tr").eq(i).find("td:last").html();
+				// 		if(second == 1){
+				// 			if(numberStr != undefined && numberStr !=null && numberStr !=''){
+				// 				if (fileFlag==1){
+				//
+				// 				}else{
+				// 					top.layer.msg("请上传依据性文件!", {icon: 0});
+				// 					return false;
+				// 				}
+				// 			}
+				// 		}
+				// 	}
+				// }
+				// if(boolFlag){
+				// 	var other = $("#file_other tr").length;
+				// 	for(var i=0; i<other; i++) {
+				// 		var numberStr = $("#file_other tr").eq(i).find("td:first").html();
+				// 		var second = $("#file_other tr").eq(i).find("td:eq(1)").html();
+				// 		var fileFlag = $("#file_other tr").eq(i).find("td:last").html();
+				//
+				// 		if(second == 1){
+				// 			if(numberStr != undefined && numberStr !=null && numberStr !=''){
+				// 				if (fileFlag==1){
+				//
+				// 				}else{
+				// 					top.layer.msg("请上传其它文件!", {icon: 0});
+				// 					return false;
+				// 				}
+				// 			}
+				// 		}
+				// 	}
+				// }
 				if(boolFlag) {
 					$("#inputForm").submit();
 					return true;
@@ -163,7 +229,7 @@
 <body>
 <div class="single-form">
 	<div class="container">
-		<form:form id="inputForm" modelAttribute="materialDefectRecord" action="${ctx}/projectReportDefectRecord/projectReportDefectRecord/descriptionAuditSave" method="post" class="form-horizontal">
+		<form:form id="inputForm" modelAttribute="materialDefectRecord" action="${ctx}/projectReportDefectRecord/projectReportDefectRecord/descriptionAuditSave" method="post" class="form-horizontal layui-form">
 			<form:hidden path="id"/>
 			<form:hidden path="type"/>
 			<form:hidden path="home"/>
@@ -236,16 +302,37 @@
 						<input id="recordDate" name="recordDate"  htmlEscape="false" readonly="true" class="form-control  layui-input" value="<fmt:formatDate value="${materialDefectRecord.createDate}" pattern="yyyy-MM-dd"/>"/>
 					</div>
 				</div>
-				<div class="layui-item layui-col-sm12">
+<%--				<div class="layui-item layui-col-sm12">--%>
+<%--					<label class="layui-form-label"><span class="require-item">*</span>资料缺失说明:</label>--%>
+<%--					<div class="layui-input-block">--%>
+<%--						<form:textarea placeholder="请输入资料缺失说明:" path="remarks" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>--%>
+<%--					</div>--%>
+<%--				</div>--%>
+			</div>
+			<div class="form-group layui-row first lw12">
+				<div class="form-group-label"><h2>资料缺失说明</h2></div>
+
+				<div class="layui-item layui-col-sm6 lw7">
+					<label class="layui-form-label">短期/永久:</label>
+					<div class="layui-input-block">
+						<input type="radio" title="短期" lay-filter="ext" name="hiatus" id="hiatus1" value="0" <c:if test="${materialDefectRecord.hiatus=='0'}">checked</c:if>>
+						<input type="radio" title="永久" lay-filter="ext" name="hiatus" id="hiatus2" value="1" <c:if test="${materialDefectRecord.hiatus=='1'}">checked</c:if>>
+					</div>
+				</div>
+				<div class="layui-item layui-col-sm12  with-textarea">
 					<label class="layui-form-label"><span class="require-item">*</span>资料缺失说明:</label>
 					<div class="layui-input-block">
-						<form:textarea placeholder="请输入资料缺失说明:" path="remarks" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>
+						<form:textarea placeholder="请输入资料缺失说明:" path="remarks" htmlEscape="false" rows="8"
+									   maxlength="255" class="form-control required"/>
 					</div>
 				</div>
+				<div class="layui-item layui-col-sm12  with-textarea">
+					<div id="test2" class="demo-tree-more"></div>
+				</div>
 			</div>
-
+			<input id="zuZhiList" name="zuZhiList" htmlEscape="false" readonly="true" style="display: none"/>
 			<div class="form-group layui-row">
-				<div class="form-group-label"><h2>附件信息</h2></div>
+				<div class="form-group-label"><h2>说明扫描件</h2></div>
 				<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:collectSelect  id="linkman" url="${ctx}/workclientinfo/workClientInfo/linkmanList"
@@ -433,7 +520,7 @@
 				</div>
 			</div>
 
-			<div class="form-group layui-row">
+			<%--<div class="form-group layui-row">
 				<div class="form-group-label"><h2>成果文件</h2></div>
 				<div id="addFile_attachment" style="display: none" class="upload-progress">
 					<span id="fileName_attachment" ></span>
@@ -450,7 +537,7 @@
 					<table id="upTable" class="table table-bordered table-condensed tree_table">
 						<thead>
 						<tr>
-								<%-- <th>序号</th>--%>
+								&lt;%&ndash; <th>序号</th>&ndash;%&gt;
 									<th width="20%">文件要求</th>
 									<th width="35%">文件描述/文件</th>
 									<th width="20%">文件类型</th>
@@ -472,9 +559,9 @@
 										<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.attachName}<input type="hidden" value="${fileAttachment.attachName}"/></td>
 									</c:otherwise>
 								</c:choose>
-<%--								<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.attachName}<input type="hidden" value="${fileAttachment.attachName}"/></td>--%>
+&lt;%&ndash;								<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileAttachment.attachName}<input type="hidden" value="${fileAttachment.attachName}"/></td>&ndash;%&gt;
 								<td>
-<%--									<div><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>--%>
+&lt;%&ndash;									<div><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>&ndash;%&gt;
 	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileAttachment.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileAttachment.attachTypes}</div>
 								</td>
 								<td></td>
@@ -554,9 +641,9 @@
 											</c:choose>
 										</c:otherwise>
 									</c:choose>
-<%--									<td>--%>
-<%--										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>--%>
-<%--									</td>--%>
+&lt;%&ndash;									<td>&ndash;%&gt;
+&lt;%&ndash;										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>&ndash;%&gt;
+&lt;%&ndash;									</td>&ndash;%&gt;
 									<td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
 
 
@@ -568,7 +655,7 @@
 									</td>
 									<td class="op-td">
 										<div class="op-btn-box" >
-												<%--附件下载删除--%>
+												&lt;%&ndash;附件下载删除&ndash;%&gt;
 											<c:choose>
 												<c:when test="${materialDefectRecord.uploadMode == 2}">
 													<c:choose>
@@ -585,7 +672,7 @@
 												</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>--%>
+												&lt;%&ndash;											<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>&ndash;%&gt;
 										</div>
 									</td>
 								</tr>
@@ -613,7 +700,7 @@
 					<table id="gistdata_upTable" class="table table-bordered table-condensed tree_table">
 						<thead>
 						<tr>
-								<%-- <th>序号</th>--%>
+								&lt;%&ndash; <th>序号</th>&ndash;%&gt;
 									<th width="20%">文件要求</th>
 									<th width="35%">文件描述/文件</th>
 									<th width="20%">文件类型</th>
@@ -625,7 +712,7 @@
 						<tbody id="file_gistdata">
 						<c:forEach items="${materialDefectRecord.fileGistdataList}" var = "fileGistdata" varStatus="status">
 							<tr  id="file_gistdata_${fileGistdata.id}_tr" onclick="listTr(this)">
-									<%-- <td>${status.index + 1}</td>--%>
+									&lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
 								<td style="display:none">${fileGistdata.id}</td>
 								<td style="display:none">${fileGistdata.mustFlag}</td>
 								<c:choose>
@@ -636,10 +723,10 @@
 										<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>
 									</c:otherwise>
 								</c:choose>
-<%--								<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>--%>
-<%--								<td></td>--%>
+&lt;%&ndash;								<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>&ndash;%&gt;
+&lt;%&ndash;								<td></td>&ndash;%&gt;
 								<td>
-<%--									<div><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>--%>
+&lt;%&ndash;									<div><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>&ndash;%&gt;
 	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileGistdata.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileGistdata.attachTypes}</div>
 								</td>
 								<td></td>
@@ -720,9 +807,9 @@
 											</c:choose>
 										</c:otherwise>
 									</c:choose>
-<%--									<td>--%>
-<%--										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>--%>
-<%--									</td>--%>
+&lt;%&ndash;									<td>&ndash;%&gt;
+&lt;%&ndash;										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>&ndash;%&gt;
+&lt;%&ndash;									</td>&ndash;%&gt;
 									<td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
 
 
@@ -734,7 +821,7 @@
 									</td>
 									<td class="op-td">
 										<div class="op-btn-box" >
-												<%--附件下载删除--%>
+												&lt;%&ndash;附件下载删除&ndash;%&gt;
 											<c:choose>
 												<c:when test="${materialDefectRecord.uploadMode == 2}">
 													<c:choose>
@@ -751,7 +838,7 @@
 												</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>--%>
+												&lt;%&ndash;											<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>&ndash;%&gt;
 										</div>
 									</td>
 								</tr>
@@ -779,7 +866,7 @@
 					<table id="upTable_other" class="table table-bordered table-condensed tree_table">
 						<thead>
 						<tr>
-								<%-- <th>序号</th>--%>
+								&lt;%&ndash; <th>序号</th>&ndash;%&gt;
 									<th width="20%">文件要求</th>
 									<th width="35%">文件描述/文件</th>
 									<th width="20%">文件类型</th>
@@ -791,7 +878,7 @@
 						<tbody id="file_other">
 						<c:forEach items="${materialDefectRecord.fileOtherList}" var = "fileOther" varStatus="status">
 							<tr id="file_other_${fileOther.id}_tr" onclick="listTr(this)">
-									<%-- <td>${status.index + 1}</td>--%>
+									&lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
 								<td style="display:none">${fileOther.id}</td>
 								<td style="display:none">${fileOther.mustFlag}</td>
 								<c:choose>
@@ -802,9 +889,9 @@
 										<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileOther.attachName}<input type="hidden" value="${fileOther.attachName}"/></td>
 									</c:otherwise>
 								</c:choose>
-<%--								<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileOther.attachName}<input type="hidden" value="${fileOther.attachName}"/></td>--%>
+&lt;%&ndash;								<td class="tabMove" style="text-align: left;"><span class='default_open' style="padding-right: 15px; "></span>${fileOther.attachName}<input type="hidden" value="${fileOther.attachName}"/></td>&ndash;%&gt;
 								<td>
-<%--									<div><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>--%>
+&lt;%&ndash;									<div><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>&ndash;%&gt;
 	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileOther.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileOther.attachTypes}</div>
 								</td>
 								<td></td>
@@ -885,9 +972,9 @@
 											</c:choose>
 										</c:otherwise>
 									</c:choose>
-<%--									<td>--%>
-<%--										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>--%>
-<%--									</td>--%>
+&lt;%&ndash;									<td>&ndash;%&gt;
+&lt;%&ndash;										<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${workAttachment.url}','90%','90%')">${workAttachment.attachmentName} ; </a>&ndash;%&gt;
+&lt;%&ndash;									</td>&ndash;%&gt;
 									<td class="op-td" style="white-space:normal; word-break:break-all;overflow:hidden;" onclick="readOpenInfo('${workClientAttachment.description}')">${workClientAttachment.description}</td>
 
 
@@ -899,7 +986,7 @@
 									</td>
 									<td class="op-td">
 										<div class="op-btn-box" >
-												<%--附件下载删除--%>
+												&lt;%&ndash;附件下载删除&ndash;%&gt;
 											<c:choose>
 												<c:when test="${materialDefectRecord.uploadMode == 2}">
 													<c:choose>
@@ -916,7 +1003,7 @@
 												</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>--%>
+												&lt;%&ndash;											<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>&ndash;%&gt;
 										</div>
 									</td>
 								</tr>
@@ -925,7 +1012,7 @@
 						</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 form-table-container" >

+ 85 - 23
src/main/webapp/webpage/modules/ruralprojectrecords/record/projectRepordDescriptionView.jsp

@@ -8,8 +8,51 @@
 	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
 	<link href="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.css" rel="stylesheet" />
 	<link rel='stylesheet' type="text/css" href="${ctxStatic}/common/css/style.css"/>
+	<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+	<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
+	<script type="text/javascript" src="${ctxStatic}/layui/layuidown.js"></script>
 	<%@include file="/webpage/include/treetable.jsp" %>
 	<script type="text/javascript">
+
+		layui.use(['tree', 'util'], function() {
+			var reportId = "${materialDefectRecord.reportId}"
+			var id = "${materialDefectRecord.id}"
+			console.log('reportId', reportId)
+			let re = [];
+			$.ajax({
+				//几个参数需要注意一下
+				type: "post",//方法类型
+				dataType: "json",//预期服务器返回的数据类型
+				url: '${ctx}/projectReportDefectRecord/projectReportDefectRecord/getZuzhi',
+				data: {"reportId": reportId,"id": id},
+				success: function (result) {
+					console.log('result', result)
+					re=result;
+					// var tree = layui.tree;
+					// var util = layui.util
+					var tree = layui.tree
+							, layer = layui.layer
+							, util = layui.util
+							, data = re
+					// , data = [{
+					// id: 1,
+					// title: '成果文件'
+					// , children: re}]
+					console.log('tree', tree)
+					tree.render({
+						elem: '#test2'
+						,data: data
+						,showCheckbox: false  //是否显示复选框
+						,id: 'demoId1'
+						,isJump: false //是否允许点击节点时弹出新窗口跳转
+					});
+				},
+				error : function(e) {
+					alert("发生未知错误!");
+				}
+			});
+		});
+
         $(document).ready(function() {
 			$("#upTable").treeTable({expandLevel : 5},{ expandable: true });
 			$("#gistdata_upTable").treeTable({expandLevel : 5},{ expandable: true });
@@ -385,14 +428,35 @@
 							</div>
 						</div>
 					</div>
-					<div class="form-group layui-row first lw12">
-						<div class="form-group-label"><h2>资料缺失说明</h2></div>
-						<div class="layui-item layui-col-sm12  with-textarea">
-							<form:textarea placeholder="请输入资料缺失说明:" path="remarks" readonly="true" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>
-						</div>
-					</div>
+<%--					<div class="form-group layui-row first lw12">--%>
+<%--						<div class="form-group-label"><h2>资料缺失说明</h2></div>--%>
+<%--						<div class="layui-item layui-col-sm12  with-textarea">--%>
+<%--							<form:textarea placeholder="请输入资料缺失说明:" path="remarks" readonly="true" htmlEscape="false" rows="8" maxlength="255" class="form-control required"/>--%>
+<%--						</div>--%>
+<%--					</div>--%>
+							<div class="form-group layui-row first lw12">
+								<div class="form-group-label"><h2>资料缺失说明</h2></div>
+
+								<div class="layui-item layui-col-sm6 lw7">
+									<label class="layui-form-label">短期/永久:</label>
+									<div class="layui-input-block">
+										<input type="radio" title="短期" lay-filter="ext" name="hiatus" id="hiatus1" value="0" <c:if test="${materialDefectRecord.hiatus=='0'}">checked</c:if>>
+										<input type="radio" title="永久" lay-filter="ext" name="hiatus" id="hiatus2" value="1" <c:if test="${materialDefectRecord.hiatus=='1'}">checked</c:if>>
+									</div>
+								</div>
+								<div class="layui-item layui-col-sm12  with-textarea">
+									<label class="layui-form-label">资料缺失说明:</label>
+									<div class="layui-input-block">
+										<form:textarea placeholder="请输入资料缺失说明:" path="remarks" htmlEscape="false" rows="8"
+													   maxlength="255" class="form-control required"/>
+									</div>
+								</div>
+								<div class="layui-item layui-col-sm12  with-textarea">
+									<div id="test2" class="demo-tree-more"></div>
+								</div>
+							</div>
 							<div class="form-group layui-row">
-								<div class="form-group-label"><h2>附件信息</h2></div>
+								<div class="form-group-label"><h2>说明扫描件</h2></div>
 								<div id="addFile_attachment" style="display: none" class="upload-progress">
 									<span id="fileName_attachment" ></span>
 									<b><span id="baifenbi_attachment" ></span></b>
@@ -570,7 +634,7 @@
 								</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 nav-btns">
 								</div>
@@ -618,7 +682,7 @@
 												<td>
 													<c:choose>
 														<c:when test="${fileAttachment.flag == 0}">
-<%--															<div><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>--%>
+&lt;%&ndash;															<div><span class="file_nei">内容:</span><div class="file_neirong">${fileAttachment.attachName}</div></div>&ndash;%&gt;
 															<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileAttachment.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileAttachment.attachTypes}</div>
 														</c:when>
 														<c:otherwise>
@@ -686,7 +750,7 @@
 																	</c:choose>
 																</c:otherwise>
 															</c:choose>
-															<%--											<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileAttachment.url}','90%','90%')">${fileAttachment.attachName} ; </a>--%>
+															&lt;%&ndash;											<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileAttachment.url}','90%','90%')">${fileAttachment.attachName} ; </a>&ndash;%&gt;
 														</c:otherwise>
 													</c:choose>
 												</td>
@@ -722,7 +786,7 @@
 															</c:when>
 															<c:otherwise>
 
-																<%--附件下载删除--%>
+																&lt;%&ndash;附件下载删除&ndash;%&gt;
 																<c:choose>
 																	<c:when test="${materialDefectRecord.uploadMode == 2}">
 																		<c:choose>
@@ -751,7 +815,7 @@
 							<div class="form-group layui-row">
 								<div class="form-group-label"><h2>依据性文件</h2></div>
 								<div class="layui-item nav-btns">
-										<%--<a id="gistdata_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>--%>
+										&lt;%&ndash;<a id="gistdata_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>&ndash;%&gt;
 								</div>
 								<div id="addFile_gistdata" style="display: none" class="upload-progress">
 									<span id="fileName_gistdata" ></span>
@@ -779,7 +843,7 @@
 										<tbody id="file_gistdata">
 										<c:forEach items="${materialDefectRecord.fileGistdataList}" var = "fileGistdata" varStatus="status">
 											<tr id="${fileGistdata.id}" pid="${fileGistdata.parent.id}">
-													<%-- <td>${status.index + 1}</td>--%>
+													&lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
 												<c:choose>
 													<c:when test="${fileGistdata.mustFlag == 1}">
 														<td class="tabMove" style="text-align: left;"><span style="color: red">* </span>${fileGistdata.attachName}<input type="hidden" value="${fileGistdata.attachName}"/></td>
@@ -798,7 +862,7 @@
 														<td>
 															<c:choose>
 																<c:when test="${fileGistdata.flag == 0}">
-<%--																	<div><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>--%>
+&lt;%&ndash;																	<div><span class="file_nei">内容:</span><div class="file_neirong">${fileGistdata.attachName}</div></div>&ndash;%&gt;
 																	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileGistdata.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileGistdata.attachTypes}</div>
 																</c:when>
 																<c:otherwise>
@@ -866,7 +930,7 @@
 																			</c:choose>
 																		</c:otherwise>
 																	</c:choose>
-																	<%--												<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileGistdata.url}','90%','90%')">${fileGistdata.attachName} ; </a>--%>
+																	&lt;%&ndash;												<a class="attention-info" href="javascript:void(0)" onclick="preview('预览','${fileGistdata.url}','90%','90%')">${fileGistdata.attachName} ; </a>&ndash;%&gt;
 																</c:otherwise>
 															</c:choose>
 														</td>
@@ -900,7 +964,7 @@
 															</c:when>
 															<c:otherwise>
 
-																<%--附件下载删除--%>
+																&lt;%&ndash;附件下载删除&ndash;%&gt;
 																<c:choose>
 																	<c:when test="${materialDefectRecord.uploadMode == 2}">
 																		<c:choose>
@@ -931,7 +995,7 @@
 							<div class="form-group layui-row">
 								<div class="form-group-label"><h2>其他文件</h2></div>
 								<div class="layui-item nav-btns">
-										<%--<a id="other_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>--%>
+										&lt;%&ndash;<a id="other_btn" class="nav-btn nav-btn-add" title="添加附件"><i class="fa fa-plus"></i>&nbsp;添加附件</a>&ndash;%&gt;
 								</div>
 								<div id="addFile_other" style="display: none" class="upload-progress">
 									<span id="fileName_other" ></span>
@@ -959,7 +1023,7 @@
 										<tbody id="file_other">
 										<c:forEach items="${materialDefectRecord.fileOtherList}" var = "fileOther" varStatus="status">
 											<tr id="${fileOther.id}" pid="${fileOther.parent.id}">
-													<%-- <td>${status.index + 1}</td>--%>
+													&lt;%&ndash; <td>${status.index + 1}</td>&ndash;%&gt;
 												<c:choose>
 													<c:when test="${fileOther.mustFlag == 1}">
 														<td class="tabMove" style="text-align: left;"><span style="color: red">* </span>${fileOther.attachName}<input type="hidden" value="${fileOther.attachName}"/></td>
@@ -978,7 +1042,7 @@
 														<td>
 															<c:choose>
 																<c:when test="${fileOther.flag == 0}">
-<%--																	<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>--%>
+&lt;%&ndash;																	<div style="overflow: hidden"><span class="file_nei">内容:</span><div class="file_neirong">${fileOther.attachName}</div></div>&ndash;%&gt;
 																	<div style="white-space:normal; word-break:break-all;overflow:hidden;"><span style="font-weight: bold">文件格式及大小:</span>${fileOther.attachLength}M;</div><div style="white-space:normal; word-break:break-all;overflow:hidden;">  ${fileOther.attachTypes}</div>
 																</c:when>
 																<c:otherwise>
@@ -1078,7 +1142,7 @@
 
 															</c:when>
 															<c:otherwise>
-																<%--附件下载删除--%>
+																&lt;%&ndash;附件下载删除&ndash;%&gt;
 																<c:choose>
 																	<c:when test="${materialDefectRecord.uploadMode == 2}">
 																		<c:choose>
@@ -1105,7 +1169,7 @@
 										</tbody>
 									</table>
 								</div>
-							</div>
+							</div>--%>
 
 
 
@@ -1616,8 +1680,6 @@
 		</form:form>
 	</div>
 </div>
-<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
-<script src="${ctxStatic}/layer-v2.3/layui/tableTree/treetable.js" charset="utf-8"></script>
 <script>
 	function f1(row) {
 		// window.parent.document.getElementById('opinion').value = row;