Browse Source

项目管理-工作内容管理-报告的:工作内容类型-成果类型-符合标准进行级联管理

user5 5 năm trước cách đây
mục cha
commit
c01aa73d74

+ 151 - 43
src/main/java/com/jeeplus/modules/projectcontentinfo/service/ProjectcontentinfoService.java

@@ -7,6 +7,7 @@ import com.google.common.collect.Maps;
 import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.CrudService;
 import com.jeeplus.common.utils.MyBeanUtils;
+import com.jeeplus.common.utils.SpringContextHolder;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.isignature.service.ISignatureDocumentService;
 import com.jeeplus.modules.projectcontentinfo.dao.ProjectContentChangeDao;
@@ -18,10 +19,10 @@ import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
 import com.jeeplus.modules.projectreportnum.service.ProjectReportNumService;
 import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectcontentinfo;
+import com.jeeplus.modules.sys.dao.MainDictDetailDao;
 import com.jeeplus.modules.sys.dao.WorkattachmentDao;
-import com.jeeplus.modules.sys.entity.Office;
-import com.jeeplus.modules.sys.entity.User;
-import com.jeeplus.modules.sys.entity.Workattachment;
+import com.jeeplus.modules.sys.entity.*;
+import com.jeeplus.modules.sys.service.MainDictService;
 import com.jeeplus.modules.sys.utils.DictUtils;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workactivity.service.WorkActivityProcessService;
@@ -80,6 +81,10 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 	@Autowired
 	private ProjectReportNumService projectReportNumService;
 
+	private static MainDictDetailDao mainDictDetailDao = SpringContextHolder.getBean(MainDictDetailDao.class);
+
+	private static MainDictService mainDictService = SpringContextHolder.getBean(MainDictService.class);
+
 	public Projectcontentinfo get(String id) {
 		return super.get(id);
 	}
@@ -272,7 +277,7 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 			dataName = projectContentData.getNumber()+projectContentData.getName();
 			infoId = projectContentData.getId();
 			save = true;
-		}else if (projectcontentinfo.getProjectReportData()!=null){
+		}else if (projectcontentinfo.getProjectReportData()!=null) {
 			//保存工作报告相关数据
 			ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
 			projectContentDataList = projectReportData.getProjectContentDataList();
@@ -280,38 +285,74 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 			projectReportData.setOfficeId(contentinfo.getOfficeId());
 			projectReportData.setProject(contentinfo.getProject());
 			Boolean status = false;
-			if (StringUtils.isBlank(projectReportData.getId())){
+			if (StringUtils.isBlank(projectReportData.getId())) {
 				status = true;
 				projectReportData.setFileStatus("1");
 			}
-			if (type==1){
-				//暂存
-				projectReportData.setStatus("1");
-				String num = projectReportData.getNumber();
-				if(StringUtils.isNotBlank(num)){
-					projectReportNumService.updateNum(num);
-				}
-				projectReportDataService.save(projectReportData);
-			}else {
-				//送审
-				Map<String, Object> variables = Maps.newHashMap();
-				projectReportData.setStatus("2");
-				String processInstanceId = "";
-				//判断是否存在撤回
-				if (StringUtils.isNotBlank(projectReportData.getId())){
-					ProjectReportData old = projectReportDataService.get(projectReportData.getId());
-					if (StringUtils.isNotBlank(old.getProcessInstanceId())){
-						processInstanceId = old.getProcessInstanceId();
+			if (type == 1) {
+				//如果复核标准无需复核,则直接完成,无需进行审批
+				if ("0".equals(projectcontentinfo.getProjectReportData().getReviewStandard())) {
+					//直接完成
+					projectReportData.setStatus("5");
+					String num = projectReportData.getNumber();
+					if (StringUtils.isNotBlank(num)) {
+						projectReportNumService.updateNum(num);
 					}
+					projectReportDataService.save(projectReportData);
+				}else {
+					//暂存
+					projectReportData.setStatus("1");
+					String num = projectReportData.getNumber();
+					if (StringUtils.isNotBlank(num)) {
+						projectReportNumService.updateNum(num);
+					}
+					projectReportDataService.save(projectReportData);
 				}
-				//获取项目信息
-				ProjectRecords projectRecord = projectRecordsService.getMasters(projectcontentinfo.getProject().getId());
-				projectcontentinfo.setProject(projectRecord);
-				if (type == 2) {
-					//启动流程
-					String str = projectReportDataService.save(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
-					if (!str.equals("true")){
-						return str;
+			} else {
+				//如果复核标准无需复核,则直接完成,无需进行审批
+				if ("0".equals(projectcontentinfo.getProjectReportData().getReviewStandard())) {
+					//直接完成
+					if (StringUtils.isNotBlank(projectReportData.getReportId())){
+						projectReportData.setId(projectReportData.getReportId());
+						projectReportData.setReportId(null);
+					}
+					projectReportData.setStatus("5");
+					String num = projectReportData.getNumber();
+					if (StringUtils.isNotBlank(num)) {
+						projectReportNumService.updateNum(num);
+					}
+					projectReportDataService.save(projectReportData);
+				}else{
+					//送审
+					Map<String, Object> variables = Maps.newHashMap();
+					projectReportData.setStatus("2");
+					String processInstanceId = "";
+					//判断是否存在撤回
+					if (StringUtils.isNotBlank(projectReportData.getId())) {
+						ProjectReportData old = projectReportDataService.get(projectReportData.getId());
+						if (StringUtils.isNotBlank(old.getProcessInstanceId())) {
+							processInstanceId = old.getProcessInstanceId();
+						}
+					}
+					//获取项目信息
+					ProjectRecords projectRecord = projectRecordsService.getMasters(projectcontentinfo.getProject().getId());
+					projectcontentinfo.setProject(projectRecord);
+					if (type == 2) {
+						//如果复核标准无需复核,则直接完成,无需进行审批
+						if ("0".equals(projectcontentinfo.getProjectReportData().getReviewStandard())) {
+							//直接完成
+							projectReportData.setStatus("5");
+							String num = projectReportData.getNumber();
+							if (StringUtils.isNotBlank(num)) {
+								projectReportNumService.updateNum(num);
+							}
+							projectReportDataService.save(projectReportData);
+						}
+						//启动流程
+						String str = projectReportDataService.save(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
+						if (!str.equals("true")) {
+							return str;
+						}
 					}
 				}
 			}
@@ -940,8 +981,11 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 				}
 			}
 			if (type==1){
-				projectReportData.setStatus("1");
-				projectReportChangeService.save(projectReportData);
+				//如果复核标准无需复核,则直接完成,无需进行审批
+				if (!"0".equals(projectcontentinfo.getProjectReportData().getReviewStandard())) {
+					projectReportData.setStatus("1");
+					projectReportChangeService.save(projectReportData);
+				}
 			}else {
 				Map<String, Object> variables = Maps.newHashMap();
 				projectReportData.setStatus("2");
@@ -958,9 +1002,12 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 					projectReportData.setOfficeId(projectRecord.getOffice().getId());
 				}
 				if (type==2) {
-					String str = projectReportChangeService.save(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
-					if (!str.equals("true")) {
-						return false;
+					//如果复核标准无需复核,则直接完成,无需进行审批
+					if (!"0".equals(projectcontentinfo.getProjectReportData().getReviewStandard())) {
+						String str = projectReportChangeService.save(projectReportData, variables, processInstanceId, projectcontentinfo.getProject().getProjectLeaders());
+						if (!str.equals("true")) {
+							return false;
+						}
 					}
 				}
 			}
@@ -971,14 +1018,29 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 				reportData.setBeforeCount(0);
 				projectReportChangeService.insert(reportData);
 			}
-			reportData.setStatus("8");
-				/*if ("3".equals(reportData.getFileStatus())){
-					reportData.setFileStatus("1");
-				}*/
-			projectReportDataService.save(reportData);
 			ProjectReportRecord projectReportRecord = new ProjectReportRecord();
-			projectReportRecord.setReport(reportData);
-			projectReportRecord.setStatus("2");
+			//如果复核标准无需复核,则直接完成,无需进行审批
+			if ("0".equals(projectcontentinfo.getProjectReportData().getReviewStandard())) {
+				//直接完成
+				if (StringUtils.isNotBlank(projectReportData.getReportId())){
+					projectReportData.setId(projectReportData.getReportId());
+					projectReportData.setReportId(null);
+				}
+				projectReportData.setStatus("5");
+				String num = projectReportData.getNumber();
+				if (StringUtils.isNotBlank(num)) {
+					projectReportNumService.updateNum(num);
+				}
+				projectReportDataService.update(projectReportData);
+				projectReportRecord.setReport(projectReportData);
+				projectReportRecord.setStatus("5");
+			}else {
+				//变更修改
+				reportData.setStatus("8");
+				projectReportDataService.save(reportData);
+				projectReportRecord.setReport(reportData);
+				projectReportRecord.setStatus("2");
+			}
 			List<ProjectReportRecord> projectReportRecords = projectReportRecordService.findList(projectReportRecord);
 			if (projectReportRecords!=null && projectReportRecords.size()!=0){
 				for (ProjectReportRecord reportRecord:projectReportRecords){
@@ -1285,4 +1347,50 @@ public class ProjectcontentinfoService extends CrudService<ProjectcontentinfoDao
 		return filename;
 	}
 
+	public List<MainDictDetail> getAchievementTypeList(String achievementParentId){
+		String type = "achievement_type";
+		List<MainDictDetail> dictList=new ArrayList<>();
+		String comId=UserUtils.getSelectCompany().getId();
+		String branchId=UserUtils.getSelectBranchOffice();
+		MainDict mainDict = mainDictService.getIdByName(type);
+		try {
+			MainDictDetail mainDictDetail = new MainDictDetail();
+			if("1".equals(mainDict.getDictType())){
+				mainDictDetail.setBranchOffice(comId);
+			}else{
+				mainDictDetail.setBranchOffice(branchId);
+			}
+			mainDictDetail.setAchievementParentId(achievementParentId);
+			mainDictDetail.setType(type);
+			dictList = mainDictDetailDao.findAchievementParentIdList(mainDictDetail);
+			return dictList;
+		} catch (Exception e) {
+			System.out.println("获取业务字典失败!");
+		}
+		return dictList;
+	}
+
+	public List<MainDictDetail> getReviewStandardList(String reviewStandardParentId){
+		String type = "reviewStandard";
+		List<MainDictDetail> dictList=new ArrayList<>();
+		String comId=UserUtils.getSelectCompany().getId();
+		String branchId=UserUtils.getSelectBranchOffice();
+		MainDict mainDict = mainDictService.getIdByName(type);
+		try {
+			MainDictDetail mainDictDetail = new MainDictDetail();
+			if("1".equals(mainDict.getDictType())){
+				mainDictDetail.setBranchOffice(comId);
+			}else{
+				mainDictDetail.setBranchOffice(branchId);
+			}
+			mainDictDetail.setReviewStandardParentId(reviewStandardParentId);
+			mainDictDetail.setType(type);
+			dictList = mainDictDetailDao.findReviewStandardParentIdList(mainDictDetail);
+			return dictList;
+		} catch (Exception e) {
+			System.out.println("获取业务字典失败!");
+		}
+		return dictList;
+	}
+
 }

+ 60 - 9
src/main/java/com/jeeplus/modules/projectcontentinfo/web/ProjectcontentinfoController.java

@@ -23,14 +23,13 @@ import com.jeeplus.modules.projectcontroltable.service.ProjectControlTableServic
 import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
 import com.jeeplus.modules.projectrecord.enums.ProjectStatusEnum;
 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;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
 import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
-import com.jeeplus.modules.workgoout.entity.GoOut;
 import com.jeeplus.modules.workreview.entity.WorkReviewAudit;
-import com.jeeplus.modules.workreview.entity.WorkReviewStandard;
 import com.jeeplus.modules.workreview.service.WorkReviewStandardService;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.history.HistoricProcessInstance;
@@ -48,8 +47,10 @@ import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.net.Socket;
-import java.util.*;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 工作内容管理Controller
@@ -672,6 +673,9 @@ public class ProjectcontentinfoController extends BaseController {
 			}
 			projectcontentinfo.setProjectReportData(projectReportData);
 			model.addAttribute("projectcontentinfo", projectcontentinfo);
+			model.addAttribute("achievementParentId", projectReportData.getType());
+			model.addAttribute("achievementId", projectReportData.getAchievementType());
+			model.addAttribute("reviewStandard", projectReportData.getReviewStandard());
 			if (projectcontentinfo.getView().equals("reportView")){
 				return "modules/projectcontentinfo/reportView";
 			}else  if(projectcontentinfo.getView().equals("reportViewGzr")){
@@ -763,8 +767,8 @@ public class ProjectcontentinfoController extends BaseController {
 
 	@RequestMapping(value = {"save"})
 	public String save(Projectcontentinfo projectcontentinfo, HttpServletRequest request, HttpServletResponse response, Model model
-			,RedirectAttributes redirectAttributes){
-		try{
+			,RedirectAttributes redirectAttributes) throws Exception {
+		/*try{*/
 			String str = projectcontentinfoService.saveData(projectcontentinfo,1);
 			if( projectcontentinfo.getProjectContentData() != null && StringUtils.isNotBlank(projectcontentinfo.getProjectContentData().getType())){
 				ProjectContentData projectContentData = projectcontentinfo.getProjectContentData();
@@ -810,9 +814,9 @@ public class ProjectcontentinfoController extends BaseController {
 					return "redirect:"+Global.getAdminPath()+"/projectcontentinfo/projectcontentinfo/?id="+projectcontentinfo.getId();
 				}
 			}
-		}catch (Exception e){
+		/*}catch (Exception e){
 			logger.error("ProjectcontentinfoController save Exception e"+e);
-		}
+		}*/
 		if(UserUtils.isManager()){
 			model.addAttribute("flag","1");
 		}
@@ -827,7 +831,7 @@ public class ProjectcontentinfoController extends BaseController {
 							 Model model,RedirectAttributes redirectAttributes)  {
 		try{
 			String str = projectcontentinfoService.saveData(projectcontentinfo,2);
-			addMessage(redirectAttributes, "发起报告审批"+(str.equals("true")?"成功":"失败"));
+			addMessage(redirectAttributes, "提交成果文件"+(str.equals("true")?"成功":"失败"));
 			ProjectReportData projectReportData = projectcontentinfo.getProjectReportData();
 			if (projectReportData!=null){
 				//List<ProjectReportData> list = projectReportDataService.findList(projectReportData);
@@ -1445,4 +1449,51 @@ public class ProjectcontentinfoController extends BaseController {
 		return  act;
 	}
 
+	/**
+	 * 根据工作内容查询成果类型
+	 * @param achievementParentId
+	 * @return
+	 */
+	@RequestMapping("getAchievementTypeList")
+	@ResponseBody
+	public AjaxJson getAchievementTypeList(String achievementParentId){
+		AjaxJson ajaxJson = new AjaxJson();
+		try {
+			List<MainDictDetail> getAchievementTypeList = projectcontentinfoService.getAchievementTypeList(achievementParentId);
+			ajaxJson.getBody().put("list",getAchievementTypeList);
+			ajaxJson.setMsg("获取数据成功");
+		}catch (Exception e){
+			logger.error("获取数据异常!",e);
+			ajaxJson.setSuccess(false);
+			ajaxJson.setMsg("获取数据异常");
+		}
+		return  ajaxJson;
+	}
+
+	/**
+	 * 根据成果类型查询复核条件
+	 * @param reviewStandardParentId
+	 * @return
+	 */
+	@RequestMapping("getReviewStandardList")
+	@ResponseBody
+	public AjaxJson getReviewStandardList(String reviewStandardParentId){
+		AjaxJson ajaxJson = new AjaxJson();
+		try {
+			List<MainDictDetail> getReviewStandardList = projectcontentinfoService.getReviewStandardList(reviewStandardParentId);
+			MainDictDetail reviewStandard = new MainDictDetail();
+			reviewStandard.setType("reviewStandard");
+			reviewStandard.setValue("0");
+			reviewStandard.setLabel("无需复核");
+			getReviewStandardList.add(reviewStandard);
+			ajaxJson.getBody().put("list",getReviewStandardList);
+			ajaxJson.setMsg("获取数据成功");
+		}catch (Exception e){
+			logger.error("获取数据异常!",e);
+			ajaxJson.setSuccess(false);
+			ajaxJson.setMsg("获取数据异常");
+		}
+		return  ajaxJson;
+	}
+
 }

+ 2 - 0
src/main/java/com/jeeplus/modules/sys/dao/MainDictDetailDao.java

@@ -48,4 +48,6 @@ public interface MainDictDetailDao extends CrudDao<MainDictDetail> {
     public List<MainDictDetail> findAllListView(MainDictDetail mainDictDetail);
     public MainDictDetail getId(@Param("typeName")String typeName, @Param("companyId")String companyId, @Param("name")String name);
     public List<MainDictDetail> findJedisAllList(MainDictDetail mainDictDetail);
+    public List<MainDictDetail> findAchievementParentIdList(MainDictDetail mainDictDetail);
+    public List<MainDictDetail> findReviewStandardParentIdList(MainDictDetail mainDictDetail);
 }

+ 18 - 0
src/main/java/com/jeeplus/modules/sys/entity/MainDictDetail.java

@@ -34,6 +34,8 @@ public class MainDictDetail extends DataEntity<MainDictDetail> {
 	private String branchOffice;
 	private String level;//字典级别
 	private String newId;
+	private String achievementParentId;//工作内容父级编码
+	private String reviewStandardParentId;//成果类型父级编码
 
 	public String getNewId() {
 		return newId;
@@ -199,4 +201,20 @@ public class MainDictDetail extends DataEntity<MainDictDetail> {
 	public void setTypeId(String typeId) {
 		this.typeId = typeId;
 	}
+
+	public String getAchievementParentId() {
+		return achievementParentId;
+	}
+
+	public void setAchievementParentId(String achievementParentId) {
+		this.achievementParentId = achievementParentId;
+	}
+
+	public String getReviewStandardParentId() {
+		return reviewStandardParentId;
+	}
+
+	public void setReviewStandardParentId(String reviewStandardParentId) {
+		this.reviewStandardParentId = reviewStandardParentId;
+	}
 }

+ 17 - 18
src/main/java/com/jeeplus/modules/sys/utils/DictUtils.java

@@ -3,33 +3,29 @@
  */
 package com.jeeplus.modules.sys.utils;
 
-import java.beans.IntrospectionException;
-import java.beans.PropertyDescriptor;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
 import com.alibaba.fastjson.JSON;
-import com.jeeplus.common.utils.JedisUtils;
-import com.jeeplus.modules.sys.dao.MainDictDetailDao;
-import com.jeeplus.modules.sys.entity.MainDict;
-import com.jeeplus.modules.sys.entity.MainDictDetail;
-import com.jeeplus.modules.sys.entity.Office;
-import com.jeeplus.modules.sys.service.MainDictService;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-import org.apache.commons.lang3.StringUtils;
-
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.jeeplus.common.utils.CacheUtils;
+import com.jeeplus.common.utils.JedisUtils;
 import com.jeeplus.common.utils.SpringContextHolder;
 import com.jeeplus.modules.sys.dao.DictDao;
+import com.jeeplus.modules.sys.dao.MainDictDetailDao;
 import com.jeeplus.modules.sys.entity.Dict;
+import com.jeeplus.modules.sys.entity.MainDict;
+import com.jeeplus.modules.sys.entity.MainDictDetail;
+import com.jeeplus.modules.sys.service.MainDictService;
+import org.apache.commons.lang3.StringUtils;
 import redis.clients.jedis.Jedis;
 
+import java.beans.IntrospectionException;
+import java.beans.PropertyDescriptor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
 /**
  * 字典工具类
  * @author jeeplus
@@ -63,6 +59,9 @@ public class DictUtils {
 	 */
 	public static String getMainDictLabel(String value, String type, String defaultValue){
 		if (StringUtils.isNotBlank(type) && StringUtils.isNotBlank(value)){
+			if ("0".equals(value) && "reviewStandard".equals(type)){
+				return "无需复核";
+			}
 			for (MainDictDetail mainDictDetail : getMainDictList(type)){
 				if (type.equals(mainDictDetail.getType()) && value.equals(mainDictDetail.getValue())){
 					return mainDictDetail.getLabel();

+ 9 - 6
src/main/java/com/jeeplus/modules/workreview/service/WorkReviewStandardService.java

@@ -3,22 +3,21 @@
  */
 package com.jeeplus.modules.workreview.service;
 
-import java.util.*;
-
 import com.google.common.collect.Lists;
+import com.jeeplus.common.persistence.Page;
 import com.jeeplus.common.service.TreeService;
 import com.jeeplus.common.utils.StringUtils;
 import com.jeeplus.modules.sys.entity.Office;
 import com.jeeplus.modules.sys.utils.UserUtils;
 import com.jeeplus.modules.workreview.dao.WorkReviewAuditDao;
+import com.jeeplus.modules.workreview.dao.WorkReviewStandardDao;
 import com.jeeplus.modules.workreview.entity.WorkReviewAudit;
+import com.jeeplus.modules.workreview.entity.WorkReviewStandard;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.jeeplus.common.persistence.Page;
-import com.jeeplus.modules.workreview.entity.WorkReviewStandard;
-import com.jeeplus.modules.workreview.dao.WorkReviewStandardDao;
+import java.util.*;
 
 /**
  * 复核标准Service
@@ -195,7 +194,11 @@ public class WorkReviewStandardService extends TreeService<WorkReviewStandardDao
             }
         }
         workReviewAudit.setCompanyId(UserUtils.getSelectCompany().getId());
-        workReviewAuditDao.insert(workReviewAudit);
+        if (StringUtils.isNotBlank(workReviewAudit.getId())){
+            workReviewAuditDao.update(workReviewAudit);
+        }else {
+            workReviewAuditDao.insert(workReviewAudit);
+        }
 	}
 	@Transactional(readOnly = false)
     public void updateAudit(WorkReviewAudit workReviewAudit) {

+ 68 - 4
src/main/resources/mappings/modules/sys/MainDictDetailDao.xml

@@ -29,7 +29,9 @@
 		c.type_name AS "mainDict.typeName",
 		c.type_name as "type",
 		a.branch_office as "branchOffice",
-		a.level as "level"
+		a.level as "level",
+		a.achievement_parent_id as "achievementParentId",
+		a.reviewStandard_parent_id as "reviewStandardParentId"
 	</sql>
 	
 	<sql id="mainDictDetailJoins">
@@ -139,7 +141,9 @@
 			sort,
 			type_id,
 			branch_office,
-			level
+			level,
+			achievement_parent_id,
+			reviewStandard_parent_id
 		) VALUES (
 			#{id},
 			#{createBy.id},
@@ -158,7 +162,9 @@
 			#{sort},
 			#{typeId},
 			#{branchOffice},
-			#{level}
+			#{level},
+			#{achievementParentId},
+			#{reviewStandardParentId}
 		)
 	</insert>
 	
@@ -177,7 +183,9 @@
 			sort = #{sort},
 			type_id=#{typeId},
 			branch_office=#{branchOffice},
-			level=#{level}
+			level=#{level},
+			achievement_parent_id = #{achievementParentId},
+			reviewStandard_parent_id = #{reviewStandardParentId}
 		WHERE id = #{id}
 	</update>
 	
@@ -287,4 +295,60 @@
         </where>
         ORDER BY a.parent_ids ASC ,a.sort*1 ASC
     </select>
+
+    <select id="findAchievementParentIdList" resultType="MainDictDetail" >
+        SELECT
+		c.type_name as "type",
+        a.detail_key AS "value",
+        a.detail_name AS "label"
+        FROM main_dict_detail a
+		LEFT JOIN main_dict c on a.type_id = c.id
+        <where>
+            a.del_flag = #{DEL_FLAG_NORMAL}
+            <if test="type != null and type != ''">
+                and c.type_name = #{type}
+            </if>
+            <if test="company != null and company.id != '' and company.id != null">
+                and a.company_id = #{company.id}
+            </if>
+            <if test="branchOffice != null and branchOffice != ''">
+                and a.branch_office = #{branchOffice}
+            </if>
+            <if test="level != null and level != ''">
+                and a.level = #{level}
+            </if>
+            <if test="achievementParentId != null and achievementParentId != ''">
+                and a.achievement_parent_id = #{achievementParentId}
+            </if>
+        </where>
+        ORDER BY a.parent_ids ASC ,a.sort*1 ASC
+    </select>
+
+    <select id="findReviewStandardParentIdList" resultType="MainDictDetail" >
+        SELECT
+		c.type_name as "type",
+        a.detail_key AS "value",
+        a.detail_name AS "label"
+        FROM main_dict_detail a
+		LEFT JOIN main_dict c on a.type_id = c.id
+        <where>
+            a.del_flag = #{DEL_FLAG_NORMAL}
+            <if test="type != null and type != ''">
+                and c.type_name = #{type}
+            </if>
+            <if test="company != null and company.id != '' and company.id != null">
+                and a.company_id = #{company.id}
+            </if>
+            <if test="branchOffice != null and branchOffice != ''">
+                and a.branch_office = #{branchOffice}
+            </if>
+            <if test="level != null and level != ''">
+                and a.level = #{level}
+            </if>
+            <if test="reviewStandardParentId != null and reviewStandardParentId != ''">
+                and a.reviewStandard_parent_id = #{reviewStandardParentId}
+            </if>
+        </where>
+        ORDER BY a.parent_ids ASC ,a.sort*1 ASC
+    </select>
 </mapper>

+ 17 - 7
src/main/webapp/webpage/modules/projectcontentinfo/projectcontentinfoForm.jsp

@@ -59,7 +59,7 @@
                 skin: 'three-btns',
                 maxmin: true, //开启最大化最小化按钮
                 content: url ,
-                btn: ['送审','关闭'],
+                btn: ['提交','关闭'],
                 btn1: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -96,7 +96,7 @@
                 skin: 'three-btns',
                 maxmin: true, //开启最大化最小化按钮
                 content: url ,
-                btn: ['送审','暂存','关闭'],
+                btn: ['提交','暂存','关闭'],
                 btn1: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -407,13 +407,13 @@
 					</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 class="layui-item nav-btns">
 						<c:if test="${empty change}">
 							<a href="javascript:void(0)" onclick="openDialogWork1('领取报告号', '${ctx}/projectreportnum/projectReportNum/list','60%','95%',false,'inputForm')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp; 领取报告号</a>
 						</c:if>
 						<c:if test="${empty change}">
-							<a href="javascript:void(0)" onclick="openDialogres('新增报告文件', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=report&dictType=${dictType}&id=${id}&parentIds=${parentIds}','95%','95%',false,'inputForm')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp; 新增报告</a>
+							<a href="javascript:void(0)" onclick="openDialogres('新增成果文件', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=report&dictType=${dictType}&id=${id}&parentIds=${parentIds}','95%','95%',false,'inputForm')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp; 新增成果文件</a>
 						</c:if>
 						</div>
 					<div class="layui-item layui-col-xs12 form-table-container">
@@ -421,12 +421,14 @@
 							<thead>
 							<tr>
 								<th>报告编号</th>
-								<th>报告名称</th>
+								<th width="110">成果文件名称</th>
 								<th width="110">工作内容类型</th>
+								<th width="110">成果类型</th>
+								<th width="110">符合标准</th>
 								<th width="80">签章类型</th>
 								<th width="90">创建日期</th>
 								<th width="80">状态</th>
-								<th width="130">操作</th>
+								<th width="80">操作</th>
 							</tr>
 							</thead>
 							<tbody>
@@ -445,6 +447,14 @@
 											<td title="${fns:getContentTypeName(projectReportData.type,"")}">
 													${fns:getContentTypeName(projectReportData.type,"")}
 											</td>
+
+											<td title="${fns:getMainDictLabel(projectReportData.achievementType,'achievement_type',"")}">
+													${fns:getMainDictLabel(projectReportData.achievementType,'achievement_type',"")}
+											</td>
+											<td title="${fns:getMainDictLabel(projectReportData.reviewStandard, 'reviewStandard', '')}">
+													${fns:getMainDictLabel(projectReportData.reviewStandard, 'reviewStandard', '')}
+											</td>
+
 											<td title="${projectReportData.reportType}">
 													${projectReportData.reportType}
 											</td>
@@ -489,7 +499,7 @@
 															<a href="${ctx}/projectcontentinfo/projectcontentinfo/delete?infoId=${projectReportData.id}&id=${id}&type=8" onclick="return confirmxRefresh('确认要删除该工作内容报告吗?', this.href)"   class="op-btn op-btn-delete"><i class="fa fa-trash"></i> 删除</a>
 														</c:if>
 														<c:if test="${projectReportData.status eq '5'}">
-															<a href="javascript:void(0)" onclick="openDialogres('报告变更', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportChange&dictType=${dictType}&id=${id}&parentIds=${parentIds}&projectReportData.id=${projectReportData.id}','95%','95%',false,'inputForm')" class="op-btn op-btn-revert" ><i class="fa fa-edit"></i> 变更</a>
+															<%--<a href="javascript:void(0)" onclick="openDialogres('报告变更', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportChange&dictType=${dictType}&id=${id}&parentIds=${parentIds}&projectReportData.id=${projectReportData.id}','95%','95%',false,'inputForm')" class="op-btn op-btn-revert" ><i class="fa fa-edit"></i> 变更</a>--%>
 															<a href="javascript:void(0)" onclick="openDialogres('报告作废', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportInvalid&dictType=${dictType}&id=${id}&parentIds=${parentIds}&projectReportData.id=${projectReportData.id}','95%','95%',false,'inputForm')" class="op-btn op-btn-invalid"><i class="fa fa-trash-o"></i> 作废</a>
 														</c:if>
 													</c:if>

+ 223 - 10
src/main/webapp/webpage/modules/projectcontentinfo/reportChange.jsp

@@ -9,10 +9,45 @@
 		var dataList;
         function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
             if(validateForm.form()){
+                var type = $("#achievementParentIdHidden").val();
+                if(null == type || '' == type){
+                    layer.msg('工作内容类型不能为空', {icon: 5});
+                    return false;
+                }
+                var achievementId = $("#achievementIdHidden").val();
+                if(null == achievementId || '' == achievementId){
+                    layer.msg('成果类型不能为空', {icon: 5});
+                    return false;
+                }
+                var reviewStandard = $("#reviewStandardHidden").val();
+                if(null == reviewStandard || '' == reviewStandard){
+                    layer.msg('复核标准不能为空', {icon: 5});
+                    return false;
+                }
+                var reportType = $("#reportType").val();
+                if(null == reportType || '' == reportType){
+                    layer.msg('签章类型不能为空', {icon: 5});
+                    return false;
+                }
+
                 if(obj == 1){
-                    $("#inputForm").attr("action","${ctx}/projectcontentinfo/projectcontentinfo/saveChangeAudit?view=reportChangeAudit");
+                    var info = false;
+                    if(dataList == undefined){
+                        dataList = ${fns:toJson(projectcontentinfo.projectReportData.projectReviewList)}
+                    }
+                    for (var i=0; i<dataList.length; i++){
+                        console.log($("#audit"+dataList[i].id).val())
+                        if($("#audit"+dataList[i].id).val() == 0){
+                            info = true;
+                        }
+                    }
+                    if (info){
+                        parent.layer.msg("请先确认质量符合内容!", {icon: 2});
+                        return false;
+                    }
+                    $("#inputForm").attr("action","${ctx}/projectcontentinfo/projectcontentinfo/saveReport?view=report");
                 }else{
-                    $("#inputForm").attr("action","${ctx}/projectcontentinfo/projectcontentinfo/saveChange?view=reportChange");
+                    $("#inputForm").attr("action","${ctx}/projectcontentinfo/projectcontentinfo/save?view=report");
                 }
                 $("#inputForm").submit();
                 return true;
@@ -20,8 +55,69 @@
 
             return false;
         }
-
         $(document).ready(function() {
+            var achievementParentId = $("#achievementParentIdHidden").val();
+            var achievementId = $("#achievementIdHidden").val();
+            var reviewStandard = $("#reviewStandardHidden").val();
+            if (0==achievementParentId || ''==achievementParentId){
+                $('#achievementType').empty();
+            }else{
+                $.ajax({
+                    type:"post",
+                    url:'${ctx}/projectcontentinfo/projectcontentinfo/getAchievementTypeList',
+                    data:{"achievementParentId":achievementParentId},
+                    dataType:"json",
+                    success:function(data){
+                        if(data.success) {
+                            $('#achievementType').html('<option value="">请选择成果类型</option>')
+                            var list = eval(data.body.list);
+                            dataList=list;
+                            for(var i in list){
+                                var flag = false;
+                                if (achievementId == dataList[i].value){
+                                    flag = true;
+                                }
+                                $('#achievementType').append(new Option(dataList[i].label, dataList[i].value,null,flag));
+                            }
+
+                            layui.form.render("select");
+                        }else {
+                            top.layer.msg("获取数据失败!", {icon: 0});
+                        }
+                    }
+                })}
+
+            if (0==achievementId || ''==achievementId){
+                $('#achievementType').empty();
+            }else{
+                $.ajax({
+                    type:"post",
+                    url:'${ctx}/projectcontentinfo/projectcontentinfo/getReviewStandardList',
+                    data:{"reviewStandardParentId":achievementId},
+                    dataType:"json",
+                    success:function(data){
+                        if(data.success) {
+                            $('#reviewStandard').html('<option value="">请选择复核标准</option>')
+                            var list = eval(data.body.list);
+                            dataList=list;
+                            for(var i in list){
+                                var flag = false;
+                                if (reviewStandard == dataList[i].value){
+                                    flag = true;
+                                }
+                                $('#reviewStandard').append(new Option(dataList[i].label, dataList[i].value,null,flag));
+                            }
+
+                            layui.form.render("select");
+                        }else {
+                            top.layer.msg("获取数据失败!", {icon: 0});
+                        }
+                    }
+                })
+            }
+
+
+
             validateForm = $("#inputForm").validate({
                 submitHandler: function(form){
                     loading('正在提交,请稍等...');
@@ -226,7 +322,7 @@
 <body>
 <div class="single-form">
 	<div class="container${container}">
-		<form:form id="inputForm" modelAttribute="projectcontentinfo" method="post" class="form-horizontal">
+		<form:form id="inputForm" modelAttribute="projectcontentinfo" method="post" class="layui-form">
 			<form:hidden path="id"/>
 			<form:hidden path="name"/>
 			<form:hidden path="parentIds"/>
@@ -235,6 +331,12 @@
 			<form:hidden path="projectReportData.id"/>
 			<form:hidden path="projectReportData.createBy.id"/>
 			<form:hidden path="projectReportData.reportId"/>
+			<input type="hidden" id="achievementParentIdHidden" value="${achievementParentId}">
+			<input type="hidden" id="achievementIdHidden" value="${achievementId}">
+			<input type="hidden" id="reviewStandardHidden" value="${reviewStandard}">
+			<input type="hidden" name="projectReportData.type" value="${achievementParentId}">
+			<input type="hidden" name="projectReportData.achievementType" value="${achievementId}">
+			<input type="hidden" name="projectReportData.reviewStandard" value="${reviewStandard}">
 			<sys:message content="${message}"/>
 			<div class="form-group layui-row first lw12">
 				<div class="form-group-label"><h2>基本信息</h2></div>
@@ -263,7 +365,7 @@
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>工作内容类型:</label>
 					<div class="layui-input-block">
-						<form:select path="projectReportData.type"  htmlEscape="false"   class="form-control simple-select required">
+						<form:select path="projectReportData.type"  htmlEscape="false" disabled="true"  lay-verify="type" lay-filter="achievementFilter" class="required">
 							<form:option value="" label=""/>
 							<optgroup label="决策阶段"/>
 							<form:options items="${fns:getProjectContentTypeList('1',projectcontentinfo.project.id)}" itemLabel="typeName" itemValue="typeId"></form:options>
@@ -283,19 +385,21 @@
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>成果类型:</label>
 					<div class="layui-input-block">
-						<form:select  path="projectReportData.achievementType" class="form-control simple-select required">
+						<select name="projectReportData.achievementType" id="achievementType"  disabled="true" lay-verify="achievementType" lay-filter="reviewStandardFilter"></select>
+						<%--<form:select  path="projectReportData.achievementType" class="form-control simple-select required">
 							<form:option value="" label=""/>
 							<form:options items="${fns:getMainDictList('achievement_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-						</form:select>
+						</form:select>--%>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>复核标准:</label>
 					<div class="layui-input-block">
-						<form:select  path="projectReportData.reviewStandard" class="form-control simple-select required" onchange="addReview(this.value)">
+						<select name="projectReportData.reviewStandard" id="reviewStandard"  disabled="true" class="required" lay-filter="addReview"></select>
+						<%--<form:select  path="projectReportData.reviewStandard" class="form-control simple-select required" onchange="addReview(this.value)">
 							<form:option value="" label=""/>
 							<form:options items="${fns:getDictList('reviewStandard')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-						</form:select>
+						</form:select>--%>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">
@@ -321,7 +425,7 @@
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label"><span class="require-item">*</span>签章类型:</label>
 					<div class="layui-input-block">
-						<form:select path="projectReportData.reportType" class="form-control simple-select required">
+						<form:select id="reportType" path="projectReportData.reportType" class="form-control simple-select required">
 							<form:option value="" label=""/>
 							<form:option value="电子章" label="电子章"/>
 							<form:option value="实体章" label="实体章"/>
@@ -842,5 +946,114 @@
 		</form:form>
 	</div>
 </div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use(['form', 'layedit', 'laydate'], function(){
+        var form = layui.form
+            ,layer = layui.layer
+            ,layedit = layui.layedit
+            ,laydate = layui.laydate;
+        layui.form.on('select(achievementFilter)',function(data) {
+            var achievementParentId = data.value;
+            if (0==achievementParentId || ''==achievementParentId){
+                $('#achievementType').empty();
+                return false;
+            }
+            $("#achievementParentIdHidden").val(achievementParentId);
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectcontentinfo/getAchievementTypeList',
+                data:{"achievementParentId":achievementParentId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $('#achievementType').html('<option value="">请选择成果类型</option>')
+                        var list = eval(data.body.list);
+                        dataList=list;
+                        for(var i in list){
+                            $('#achievementType').append(new Option(dataList[i].label, dataList[i].value));
+                        }
+
+                        layui.form.render("select");
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })
+        });
+
+        layui.form.on('select(reviewStandardFilter)',function(data) {
+            var reviewStandardParentId = data.value;
+            $("#achievementIdHidden").val(reviewStandardParentId)
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectcontentinfo/getReviewStandardList',
+                data:{"reviewStandardParentId":reviewStandardParentId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $('#reviewStandard').html('<option value="">请选择复核标准</option>')
+                        var list = eval(data.body.list);
+                        dataList=list;
+                        for(var i in list){
+                            $('#reviewStandard').append(new Option(dataList[i].label, dataList[i].value));
+                        }
+
+                        layui.form.render("select");
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })
+        });
+
+
+        layui.form.on('select(addReview)',function(obj) {
+            obj = obj.value;
+            var infoId = $("#id").val();
+            var name = $("#name").val();
+            $("#reviewStandardHidden").val(obj);
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectContentData/addReview',
+                data:{"reviewId":obj,"name":name,"infoId":infoId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $("#projectContentDataList2").html("");
+                        var list = eval(data.body.list);
+                        dataList=list
+                        for(var i in list){
+                            var tr = "<tr>" +
+                                "<td>" +
+                                "<input id=\"projectReviewList"+i+"_id\" name=\"projectReportData.projectReviewList["+i+"].id\" type=\"hidden\" value=\""+list[i].id+"\"/>" +
+                                "<input id=\"projectReviewList"+i+"_delFalg\" name=\"projectReportData.projectReviewList["+i+"].delFalg\" type=\"hidden\" value=\"1\"/>" +
+                                "<input id=\"projectReviewList"+i+"_remarks\" name=\"projectReportData.projectReviewList["+i+"].remarks\" type=\"hidden\" value=\"\"/>" +
+                                ""+(parseInt(i)+1)+"" +
+                                "</td>" +
+                                "<td>" +
+                                ""+list[i].standardDetail+"" +
+                                "</td>" +
+                                "<td>" +
+                                "<div id = \"check1"+list[i].id+"\">\n" +
+                                "<input type=\"hidden\" id=\"audit"+list[i].id+"\" value=\"0\"/>\n" +
+                                "<a href=\"projectReviewList"+list[i]+"\" onclick=\"return reviewAudits('确认要审核该质量复核内容吗?', this.href,'"+list[i].id+"','#projectReviewList"+i+"_remarks')\" style=\"color:#fff;\" class=\"op-btn op-btn-edit\">确认</a>" +
+                                "</div>\n" +
+                                "<div id = \"check2"+list[i].id+"\" class=\"check-ok\" style=\"display: none\">" +
+                                "<i class=\"fa fa-check\"></i>" +
+                                "</div>"
+                            "</td>" +
+                            "</tr>";
+                            $("#projectContentDataList2").append(tr);
+                        }
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })
+        });
+
+    })
+</script>
 </body>
 </html>

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

@@ -15,6 +15,27 @@
         var dataList;
         function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
             if(validateForm.form()){
+                var type = $("#achievementParentIdHidden").val();
+                if(null == type || '' == type){
+                    layer.msg('工作内容类型不能为空', {icon: 5});
+                    return false;
+				}
+                var achievementId = $("#achievementIdHidden").val();
+                if(null == achievementId || '' == achievementId){
+                    layer.msg('成果类型不能为空', {icon: 5});
+                    return false;
+				}
+                var reviewStandard = $("#reviewStandardHidden").val();
+                if(null == reviewStandard || '' == reviewStandard){
+                    layer.msg('复核标准不能为空', {icon: 5});
+                    return false;
+				}
+				var reportType = $("#reportType").val();
+                if(null == reportType || '' == reportType){
+                    layer.msg('签章类型不能为空', {icon: 5});
+                    return false;
+                }
+
                 if(obj == 1){
 					var info = false;
 					if(dataList == undefined){
@@ -41,6 +62,68 @@
             return false;
         }
         $(document).ready(function() {
+            var achievementParentId = $("#achievementParentIdHidden").val();
+            var achievementId = $("#achievementIdHidden").val();
+            var reviewStandard = $("#reviewStandardHidden").val();
+            if (0==achievementParentId || ''==achievementParentId){
+                $('#achievementType').empty();
+            }else{
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectcontentinfo/getAchievementTypeList',
+                data:{"achievementParentId":achievementParentId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $('#achievementType').html('<option value="">请选择成果类型</option>')
+                        var list = eval(data.body.list);
+                        dataList=list;
+                        for(var i in list){
+                            var flag = false;
+                            if (achievementId == dataList[i].value){
+                                flag = true;
+                            }
+                            $('#achievementType').append(new Option(dataList[i].label, dataList[i].value,null,flag));
+                        }
+
+                        layui.form.render("select");
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })}
+
+			if (0==achievementId || ''==achievementId){
+                $('#achievementType').empty();
+            }else{
+                $.ajax({
+                    type:"post",
+                    url:'${ctx}/projectcontentinfo/projectcontentinfo/getReviewStandardList',
+                    data:{"reviewStandardParentId":achievementId},
+                    dataType:"json",
+                    success:function(data){
+                        if(data.success) {
+                            $('#reviewStandard').html('<option value="">请选择复核标准</option>')
+                            var list = eval(data.body.list);
+                            dataList=list;
+                            for(var i in list){
+                                var flag = false;
+                                if (reviewStandard == dataList[i].value){
+                                    flag = true;
+                                }
+                                $('#reviewStandard').append(new Option(dataList[i].label, dataList[i].value,null,flag));
+                            }
+
+                            layui.form.render("select");
+                        }else {
+                            top.layer.msg("获取数据失败!", {icon: 0});
+                        }
+                    }
+                })
+            }
+
+
+
             validateForm = $("#inputForm").validate({
                 submitHandler: function(form){
                     loading('正在提交,请稍等...');
@@ -287,17 +370,21 @@
         }
 
 	</script>
+
 </head>
 <body>
 <div class="single-form">
 	<div class="container${container}">
-		<form:form id="inputForm" modelAttribute="projectcontentinfo" action="${ctx}/projectcontentinfo/projectcontentinfo/save?view=report" method="post" class="form-horizontal">
+		<form:form id="inputForm" modelAttribute="projectcontentinfo" action="${ctx}/projectcontentinfo/projectcontentinfo/save?view=report" method="post" class="layui-form">
 		<form:hidden path="id"/>
 		<form:hidden path="name"/>
 		<form:hidden path="parentIds"/>
 		<form:hidden path="edit"/>
 		<form:hidden path="projectReportData.id"/>
 		<form:hidden path="projectReportData.createBy.id"/>
+			<input type="hidden" id="achievementParentIdHidden" value="${achievementParentId}">
+			<input type="hidden" id="achievementIdHidden" value="${achievementId}">
+			<input type="hidden" id="reviewStandardHidden" value="${reviewStandard}">
 		<sys:message content="${message}"/>
 		<div class="form-group layui-row first lw12">
 			<div class="form-group-label"><h2>基本信息</h2></div>
@@ -326,7 +413,7 @@
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label"><span class="require-item">*</span>工作内容类型:</label>
 				<div class="layui-input-block">
-					<form:select path="projectReportData.type"  htmlEscape="false"   class="form-control simple-select required">
+					<form:select path="projectReportData.type"  htmlEscape="false" lay-verify="type" lay-filter="achievementFilter" class="required">
 						<form:option value="" label=""/>
 						<optgroup label="决策阶段"/>
 						<form:options items="${fns:getProjectContentTypeList('1',projectcontentinfo.project.id)}" itemLabel="typeName" itemValue="typeId"></form:options>
@@ -346,19 +433,21 @@
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label"><span class="require-item">*</span>成果类型:</label>
 				<div class="layui-input-block">
-					<form:select  path="projectReportData.achievementType" class="form-control simple-select required">
+					<select name="projectReportData.achievementType" id="achievementType" lay-verify="achievementType" lay-filter="reviewStandardFilter"></select>
+					<%--<form:select  path="projectReportData.achievementType" class="required">
 						<form:option value="" label=""/>
 						<form:options items="${fns:getMainDictList('achievement_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-					</form:select>
+					</form:select>--%>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label"><span class="require-item">*</span>复核标准:</label>
 				<div class="layui-input-block">
-					<form:select  path="projectReportData.reviewStandard" class="form-control simple-select" onchange="addReview(this.value)">
+					<select name="projectReportData.reviewStandard" id="reviewStandard"  class="required" lay-filter="addReview"></select>
+					<%--<form:select  path="projectReportData.reviewStandard" lay-filter="addReview" onchange="addReview(this.value)">
 						<form:option value="" label=""/>
-						<form:options items="${fns:getDictList('reviewStandard')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
-					</form:select>
+						<form:options items="${fns:getMainDictList('reviewStandard')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+					</form:select>--%>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">
@@ -384,7 +473,7 @@
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label"><span class="require-item">*</span>签章类型:</label>
 				<div class="layui-input-block">
-					<form:select path="projectReportData.reportType" class="form-control simple-select required">
+					<form:select path="projectReportData.reportType" id="reportType" lay-verify="required"  class="required">
 						<form:option value="" label=""/>
 						<form:option value="电子章" label="电子章"/>
 						<form:option value="实体章" label="实体章"/>
@@ -900,5 +989,114 @@
 		</form:form>
 	</div>
 </div>
+<script src="${ctxStatic}/layer-v2.3/layui/layui.all.js" charset="utf-8"></script>
+<script>
+    layui.use(['form', 'layedit', 'laydate'], function(){
+        var form = layui.form
+            ,layer = layui.layer
+            ,layedit = layui.layedit
+            ,laydate = layui.laydate;
+        layui.form.on('select(achievementFilter)',function(data) {
+            var achievementParentId = data.value;
+            if (0==achievementParentId || ''==achievementParentId){
+                $('#achievementType').empty();
+                return false;
+			}
+            $("#achievementParentIdHidden").val(achievementParentId);
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectcontentinfo/getAchievementTypeList',
+                data:{"achievementParentId":achievementParentId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $('#achievementType').html('<option value="">请选择成果类型</option>')
+                        var list = eval(data.body.list);
+                        dataList=list;
+                        for(var i in list){
+                            $('#achievementType').append(new Option(dataList[i].label, dataList[i].value));
+                        }
+
+                        layui.form.render("select");
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })
+        });
+
+        layui.form.on('select(reviewStandardFilter)',function(data) {
+            var reviewStandardParentId = data.value;
+            $("#achievementIdHidden").val(reviewStandardParentId)
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectcontentinfo/getReviewStandardList',
+                data:{"reviewStandardParentId":reviewStandardParentId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $('#reviewStandard').html('<option value="">请选择复核标准</option>')
+                        var list = eval(data.body.list);
+                        dataList=list;
+                        for(var i in list){
+                            $('#reviewStandard').append(new Option(dataList[i].label, dataList[i].value));
+                        }
+
+                        layui.form.render("select");
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })
+        });
+
+
+        layui.form.on('select(addReview)',function(obj) {
+            obj = obj.value;
+            var infoId = $("#id").val();
+            var name = $("#name").val();
+            $("#reviewStandardHidden").val(obj);
+            $.ajax({
+                type:"post",
+                url:'${ctx}/projectcontentinfo/projectContentData/addReview',
+                data:{"reviewId":obj,"name":name,"infoId":infoId},
+                dataType:"json",
+                success:function(data){
+                    if(data.success) {
+                        $("#projectContentDataList2").html("");
+                        var list = eval(data.body.list);
+                        dataList=list
+                        for(var i in list){
+                            var tr = "<tr>" +
+                                "<td>" +
+                                "<input id=\"projectReviewList"+i+"_id\" name=\"projectReportData.projectReviewList["+i+"].id\" type=\"hidden\" value=\""+list[i].id+"\"/>" +
+                                "<input id=\"projectReviewList"+i+"_delFalg\" name=\"projectReportData.projectReviewList["+i+"].delFalg\" type=\"hidden\" value=\"1\"/>" +
+                                "<input id=\"projectReviewList"+i+"_remarks\" name=\"projectReportData.projectReviewList["+i+"].remarks\" type=\"hidden\" value=\"\"/>" +
+                                ""+(parseInt(i)+1)+"" +
+                                "</td>" +
+                                "<td>" +
+                                ""+list[i].standardDetail+"" +
+                                "</td>" +
+                                "<td>" +
+                                "<div id = \"check1"+list[i].id+"\">\n" +
+                                "<input type=\"hidden\" id=\"audit"+list[i].id+"\" value=\"0\"/>\n" +
+                                "<a href=\"projectReviewList"+list[i]+"\" onclick=\"return reviewAudits('确认要审核该质量复核内容吗?', this.href,'"+list[i].id+"','#projectReviewList"+i+"_remarks')\" style=\"color:#fff;\" class=\"op-btn op-btn-edit\">确认</a>" +
+                                "</div>\n" +
+                                "<div id = \"check2"+list[i].id+"\" class=\"check-ok\" style=\"display: none\">" +
+                                "<i class=\"fa fa-check\"></i>" +
+                                "</div>"
+                            "</td>" +
+                            "</tr>";
+                            $("#projectContentDataList2").append(tr);
+                        }
+                    }else {
+                        top.layer.msg("获取数据失败!", {icon: 0});
+                    }
+                }
+            })
+        });
+
+    })
+</script>
 </body>
 </html>

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

@@ -108,7 +108,7 @@
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">复核标准:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getMainDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

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

@@ -93,7 +93,8 @@
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">复核标准:</label>
 					<div class="layui-input-block">
-						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>
+						<%--<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>--%>
+						<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getMainDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">

+ 21 - 11
src/main/webapp/webpage/modules/projectcontentinfo/reportInvalidList.jsp

@@ -142,9 +142,9 @@
 		<div class="full-width fl">
 			<div class="list-form-tab" id="tabDiv">
 				<ul class="list-tabs" >
-					<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}">报告列表</a></li>
-					<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=change">报告变更</a></li>
-					<li class="active"><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=invalid">报告作废</a></li>
+					<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}">成果文件列表</a></li>
+					<%--<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=change">成果文件变更</a></li>--%>
+					<li class="active"><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=invalid">成果文件作废</a></li>
 				</ul>
 			</div>
 			<div class=" layui-row" id="queryDiv">
@@ -157,13 +157,13 @@
 					<%--<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->--%>
 					<div class="commonQuery lw9">
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告名称:</label>
+							<label class="layui-form-label">成果文件名称:</label>
 							<div class="layui-input-block">
 								<form:input path="projectReportData.name" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
 							</div>
 						</div>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告日期:</label>
+							<label class="layui-form-label">提交日期:</label>
 							<div class="layui-input-block">
 								<input id="beginDate" placeholder="开始时间" name="projectReportData.startDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
 									   value="<fmt:formatDate value="${projectcontentinfo.projectReportData.startDate}" pattern="yyyy-MM-dd"/>"/>
@@ -205,7 +205,7 @@
 							</div>
 						</div>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告编号:</label>
+							<label class="layui-form-label">成果文件编号:</label>
 							<div class="layui-input-block">
 								<form:input path="projectReportData.number" htmlEscape="false" maxlength="255"   class=" form-control layui-input"/>
 							</div>
@@ -257,20 +257,28 @@
             ,cols: [[
                 // {checkbox: true, fixed: true},
                 {field:'index',align:'center', title: '序号',width:40}
-                ,{field:'number',align:'center',minWidth:170,title: '报告编号',templet:function(d){
+                ,{field:'number',align:'center',minWidth:170,title: '成果文件编号',templet:function(d){
                         return "<span title='"+ d.number +"'>" + d.number + "</span>";
                     }}
-                ,{field:'name',align:'center',minWidth:170, title: '报告名称',templet:function(d){
+                ,{field:'name',align:'center',minWidth:170, title: '成果文件名称',templet:function(d){
                     var xml = "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看报告详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportView&dictType=" + d.dictType +"&id="+ d.id + "&parentIds=" + d.pid + "&infoId=" + d.bid + "','95%','95%')\">" +
                         "<span title=" + d.name + ">" + d.name + "</span></a>";
                     return xml;
                 }}
-                ,{field:'type',align:'center', title: '工作内容类型', width:150, sort: true,templet:function(d){
+
+                ,{field:'achievementType',align:'center', title: '成果类型', width:150, sort: true,templet:function(d){
+                        return "<span title='"+ d.achievementType +"'>" + d.achievementType + "</span>";
+                    }}
+                ,{field:'reviewStandard',align:'center', title: '符合标准', width:150, sort: true,templet:function(d){
+                        return "<span title='"+ d.reviewStandard +"'>" + d.reviewStandard + "</span>";
+                    }}
+
+				,{field:'type',align:'center', title: '工作内容类型', width:150, sort: true,templet:function(d){
                         return "<span title='"+ d.type +"'>" + d.type + "</span>";
                     }}
-                ,{field:'master',align:'center', title: '负责人', width:80,templet:function(d){
+                /*,{field:'master',align:'center', title: '负责人', width:80,templet:function(d){
                         return "<span title='"+ d.master +"'>" + d.master + "</span>";
-                    }}
+                    }}*/
                 ,{field:'reportDate', align:'center',title: '报告日期', width:80}
                 ,{ title: '状态', align:'center',sort: true, width:70,templet:function(d){
                         var st = getAuditInvalidState(d.invalidStatus);
@@ -312,6 +320,8 @@
                     ,"number":"${projectReportData.number}"
                     ,"name":"<c:out value="${projectReportData.name}" escapeXml="true"/>"
                     ,"type":"${fns:getContentTypeName(projectReportData.type,"")}"
+                    ,"achievementType":"${fns:getMainDictLabel(projectReportData.achievementType,'achievement_type',"")}"
+                    ,"reviewStandard":"${fns:getMainDictLabel(projectReportData.reviewStandard, 'reviewStandard', '')}"
                     ,"master":"<c:out value="${projectReportData.master.name}" escapeXml="true"/>"
                     ,"invalidStatus":"${projectReportData.invalidStatus}"
                     ,"reportDate":"<fmt:formatDate value="${projectReportData.reportDate}" pattern="yyyy-MM-dd"/>"

+ 25 - 15
src/main/webapp/webpage/modules/projectcontentinfo/reportList.jsp

@@ -99,7 +99,7 @@
                 skin: 'three-btns',
                 maxmin: true, //开启最大化最小化按钮
                 content: url ,
-                btn: ['送审','暂存','关闭'],
+                btn: ['提交','暂存','关闭'],
                 btn1: function(index, layero){
                     var body = top.layer.getChildFrame('body', index);
                     var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
@@ -182,9 +182,9 @@
 		<div class="full-width fl">
 			<div class="list-form-tab" id="tabDiv">
 				<ul class="list-tabs" >
-					<li class="active"><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}">报告列表</a></li>
-					<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=change">报告变更</a></li>
-					<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=invalid">报告作废</a></li>
+					<li class="active"><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}">成果文件列表</a></li>
+					<%--<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=change">成果文件变更</a></li>--%>
+					<li><a href="${ctx}/projectcontentinfo/projectcontentinfo/list?type=8&project.id=${projectRecords.id}&id=${id}&view=invalid">成果文件作废</a></li>
 				</ul>
 			</div>
 			<div class=" layui-row" id="queryDiv">
@@ -196,13 +196,13 @@
 					<%--<table:sortColumn id="orderBy" name="orderBy" value="${page.orderBy}" callback="sortOrRefresh();"/><!-- 支持排序 -->--%>
 					<div class="commonQuery lw9">
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告名称:</label>
+							<label class="layui-form-label">成果文件名称:</label>
 							<div class="layui-input-block">
 								<form:input path="projectReportData.name" htmlEscape="false" maxlength="64"  class=" form-control  layui-input"/>
 							</div>
 						</div>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告日期:</label>
+							<label class="layui-form-label">提交日期:</label>
 							<div class="layui-input-block">
 								<input id="beginDate" placeholder="开始时间" name="projectReportData.startDate" type="text" readonly="readonly" maxlength="20" class="laydate-icondate form-control layer-date layui-input laydate-icon query-group"
 									   value="<fmt:formatDate value="${projectcontentinfo.projectReportData.startDate}" pattern="yyyy-MM-dd"/>"/>
@@ -246,7 +246,7 @@
 							</div>
 						</div>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告编号:</label>
+							<label class="layui-form-label">成果文件编号:</label>
 							<div class="layui-input-block">
 								<form:input path="projectReportData.number" htmlEscape="false" maxlength="255"   class=" form-control layui-input"/>
 							</div>
@@ -258,7 +258,7 @@
 												title="用户" url="/sys/office/treeDataAll?type=3" cssClass="form-control layui-input" allowClear="true" notAllowSelectParent="true"/></div>
 						</div>
 						<div class="layui-item query athird">
-							<label class="layui-form-label">报告状态:</label>
+							<label class="layui-form-label">成果文件状态:</label>
 							<div class="layui-input-block with-icon">
 								<form:select path="projectReportData.status" class="form-control simple-select">
 								<form:option value="" label=""/>
@@ -277,7 +277,7 @@
 				<div class="nav-btns">
 					<c:if test="${empty change}">
 						<a href="javascript:void(0)" onclick="openDialogWork1('领取报告号', '${ctx}/projectreportnum/projectReportNum/list','60%','95%',false,'inputForm')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp; 领取报告号</a>
-						<a href="javascript:void(0)" onclick="openDialogres('新增报告', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=report&dictType=${dictType}&id=${id}&parentIds=${parentIds}','95%','95%',false,'inputForm')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp; 新增报告</a>
+						<a href="javascript:void(0)" onclick="openDialogres('新增成果文件', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=report&dictType=${dictType}&id=${id}&parentIds=${parentIds}','95%','95%',false,'inputForm')" class="nav-btn nav-btn-add" ><i class="fa fa-plus"></i>&nbsp; 新增成果文件</a>
 						<button class="nav-btn nav-btn-refresh" data-toggle="tooltip" data-placement="left" onclick="sortOrRefresh()" title="刷新"><i class="glyphicon glyphicon-repeat"></i>&nbsp;刷新</button>
 					</c:if>
 					<div style="clear: both;"></div>
@@ -302,10 +302,10 @@
             ,cols: [[
                 // {checkbox: true, fixed: true},
                 {field:'index',align:'center', title: '序号',width:40}
-                ,{field:'number',align:'center',minWidth:170,title: '报告编号',templet:function(d){
+                ,{field:'number',align:'center',minWidth:170,title: '成果文件编号',templet:function(d){
                         return "<span title='"+ d.number +"'>" + d.number + "</span>";
                     }}
-                ,{field:'name',align:'center',minWidth:170, title: '报告名称',templet:function(d){
+                ,{field:'name',align:'center',minWidth:170, title: '成果文件名称',templet:function(d){
                     var xml = "<a class=\"attention-info\" href=\"javascript:void(0)\" onclick=\"openDialogView('查看报告详情', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportView&dictType=" + d.dictType +"&id="+ d.id + "&parentIds=" + d.pid + "&infoId=" + d.bid + "','95%','95%')\">" +
                         "<span title=" + d.name + ">" + d.name + "</span></a>";
                     return xml;
@@ -313,10 +313,18 @@
                 ,{field:'type',align:'center', title: '工作内容类型', width:150, sort: true,templet:function(d){
                         return "<span title='"+ d.type +"'>" + d.type + "</span>";
                     }}
-                ,{field:'master',align:'center', title: '负责人', width:80,templet:function(d){
-                        return "<span title='"+ d.master +"'>" + d.master + "</span>";
+
+                ,{field:'achievementType',align:'center', title: '成果类型', width:150, sort: true,templet:function(d){
+                        return "<span title='"+ d.achievementType +"'>" + d.achievementType + "</span>";
+                    }}
+                ,{field:'reviewStandard',align:'center', title: '符合标准', width:150, sort: true,templet:function(d){
+                        return "<span title='"+ d.reviewStandard +"'>" + d.reviewStandard + "</span>";
                     }}
-                ,{field:'reportDate', align:'center',title: '报告日期', width:80}
+
+                /*,{field:'master',align:'center', title: '负责人', width:80,templet:function(d){
+                        return "<span title='"+ d.master +"'>" + d.master + "</span>";
+                    }}*/
+                ,{field:'reportDate', align:'center',title: '提交日期', width:80}
                 ,{ title: '状态', align:'center',sort: true, width:70,templet:function(d){
                         var st = getAuditState(d.status);
                         if(st.action)
@@ -342,7 +350,7 @@
                     if(d.candelete != undefined && d.candelete == "1")
                         xml +="<a href=\"${ctx}/projectcontentinfo/projectcontentinfo/delete?id=" + d.id + "&infoId=" + d.bid + "&type=8\" onclick=\"return confirmxRefresh('确认要删除该报告吗?', this.href)\"   class=\"op-btn op-btn-delete\"><i class=\"fa fa-trash\"></i> 删除</a>";
                     if(d.canedit4 != undefined && d.canedit4 == "1"){
-                        xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogres('报告变更', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportChange&dictType="+ d.dictType + "&id=" + d.id + "&parentIds="+ d.pid + "&projectReportData.id=" + d.bid + "','95%','95%')\" class=\"op-btn op-btn-revert\" ><i class=\"fa fa-edit\"></i> 变更</a>";
+                        <%--xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogres('报告变更', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportChange&dictType="+ d.dictType + "&id=" + d.id + "&parentIds="+ d.pid + "&projectReportData.id=" + d.bid + "','95%','95%')\" class=\"op-btn op-btn-revert\" ><i class=\"fa fa-edit\"></i> 变更</a>";--%>
                         xml +="<a href=\"javascript:void(0)\" onclick=\"openDialogres('报告作废', '${ctx}/projectcontentinfo/projectcontentinfo/form?view=reportInvalid&dictType="+ d.dictType + "&id=" + d.id + "&parentIds="+ d.pid + "&projectReportData.id=" + d.bid + "','95%','95%')\" class=\"op-btn op-btn-invalid\" ><i class=\"fa fa-edit\"></i> 作废</a>";
 					}
 					return xml;
@@ -361,6 +369,8 @@
                     ,"number":"${projectReportData.number}"
                     ,"name":"<c:out value="${projectReportData.name}" escapeXml="true"/>"
                     ,"type":"${fns:getContentTypeName(projectReportData.type,"")}"
+                    ,"achievementType":"${fns:getMainDictLabel(projectReportData.achievementType,'achievement_type',"")}"
+                    ,"reviewStandard":"${fns:getMainDictLabel(projectReportData.reviewStandard, 'reviewStandard', '')}"
                     ,"master":"<c:out value="${projectReportData.master.name}" escapeXml="true"/>"
                     ,"status":"${projectReportData.status}"
                     ,"reportDate":"<fmt:formatDate value="${projectReportData.reportDate}" pattern="yyyy-MM-dd"/>"

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

@@ -51,7 +51,7 @@
 			<div class="layui-item layui-col-sm6">
 				<label class="layui-form-label">复核标准:</label>
 				<div class="layui-input-block">
-					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${fns:getMainDictLabel(projectcontentinfo.projectReportData.reviewStandard, 'reviewStandard', '')}"/>
 				</div>
 			</div>
 			<div class="layui-item layui-col-sm6">

+ 86 - 1
src/main/webapp/webpage/modules/sys/mainDictDetailForm.jsp

@@ -17,6 +17,16 @@
                 top.layer.msg('键值不能为空!', {icon: 0});
                 return false;
             }
+
+			if("achievement_type" == $("#typeName").val()){
+                var achievementParentId=$("#achievementParentId").val();
+                if(achievementParentId==null||achievementParentId==""){
+                    top.layer.msg('工作内容类型不能为空!', {icon: 0});
+                    return false;
+                }
+			}
+
+
             var state=false;
             var branchOffice=$("#branchOffice").val();
             $.ajax({
@@ -57,6 +67,29 @@
 		}
         var validateForm;
 		$(document).ready(function() {
+            var achievementParentIdDiv = $("#typeName").val();
+            if("achievement_type" == achievementParentIdDiv){
+                $("#achievementParentIdDiv").show();
+            }else{
+                $("#achievementParentIdDiv").hide();
+            }
+
+            if("reviewStandard" == achievementParentIdDiv){
+                $("#reviewStandardParentIdDiv").show();
+            }else{
+                $("#reviewStandardParentIdDiv").hide();
+            }
+
+            var tp2 = "${mainDictDetail.achievementParentId}"
+            if((tp2!=null && tp2!='')){
+                $(document.getElementById("achievementParentId")).attr("disabled","disabled");
+            }
+
+            var tp3 = "${mainDictDetail.reviewStandardParentId}"
+            if((tp3!=null && tp3!='')){
+                $(document.getElementById("reviewStandardParentId")).attr("disabled","disabled");
+            }
+
 		    if( $("#id").val()!=null&& $("#id").val()!=''){
                 $("#detailKey").attr("readonly",true);
 			}
@@ -75,6 +108,25 @@
 					}
 				}
 			});
+
+            $("#typeName").blur(function(){
+                var typeName = $(this).val();
+                if("achievement_type" == typeName){
+                    $("#achievementParentIdDiv").show();
+                }else{
+                    $("#achievementParentIdDiv").hide();
+                }
+            })
+
+            $("#typeName").blur(function(){
+                var reviewStandard = $(this).val();
+                if("reviewStandard" == reviewStandard){
+                    $("#reviewStandardParentIdDiv").show();
+                }else{
+                    $("#reviewStandardParentIdDiv").hide();
+                }
+            })
+
             /*jQuery.validator.addMethod("detailKey", function(value, element) {
                 var flag = true;
                 $.ajax({
@@ -132,6 +184,39 @@
 										   title="字典明细" url="/sys/mainDictDetail/treeData?typeId=1&company=${mainDictDetail.branchOffice}" isAll="true" typeName="${mainDict.typeName}" cssClass="form-control layui-input" notAllowSelectParent="false"/>
 					</div>
 				</div>
+
+				<div class="layui-item layui-col-sm6" id="achievementParentIdDiv" style="display: none;">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>工作内容类型节点:</label>
+					<div class="layui-input-block">
+						<form:select id="achievementParentId" path="achievementParentId"  htmlEscape="false"   onchange="changeContentDetail(this)"  class="form-control simple-select required">
+							<form:option value=""></form:option>
+							<optgroup label="决策阶段"/>
+							<form:options items="${fns:getContentTypeList('1')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="设计阶段"/>
+							<form:options items="${fns:getContentTypeList('2')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="发承包阶段"/>
+							<form:options items="${fns:getContentTypeList('3')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="实施阶段"/>
+							<form:options items="${fns:getContentTypeList('4')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="竣工阶段"/>
+							<form:options items="${fns:getContentTypeList('5')}" itemLabel="typeName" itemValue="typeId"></form:options>
+							<optgroup label="运营阶段"/>
+							<form:options items="${fns:getContentTypeList('6')}" itemLabel="typeName" itemValue="typeId"></form:options>
+						</form:select>
+					</div>
+				</div>
+
+				<div class="layui-item layui-col-sm6" id="reviewStandardParentIdDiv" style="display: none;">
+					<label class="layui-form-label double-line"><span class="require-item">*</span>成果类型节点:</label>
+					<div class="layui-input-block">
+							<form:select  path="reviewStandardParentId" class="form-control simple-select required">
+                                <form:option value="" label=""/>
+                                <form:options items="${fns:getMainDictList('achievement_type')}" itemLabel="label" itemValue="value" htmlEscape="false"/>
+                            </form:select>
+					</div>
+				</div>
+
+
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">类型名称:</label>
 					<div class="layui-input-block">
@@ -142,7 +227,7 @@
 				<div class="layui-item layui-col-sm6">
 					<label class="layui-form-label">所属类型:</label>
 					<div class="layui-input-block">
-						<input htmlEscape="false" readonly="true"   class="form-control layui-input required" value="${mainDict.typeName}"/>
+						<input id="typeName" htmlEscape="false" readonly="true"   class="form-control layui-input required" value="${mainDict.typeName}"/>
 					</div>
 				</div>
 				<div class="layui-item layui-col-sm6">

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

@@ -8,7 +8,7 @@
             <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="02" <c:if test="${ctrlpricelist[0].inventoryType == '02'}">selected</c:if>>控制价</option>
             </select>
         </div>
     </div>