Bladeren bron

全过程管理 项目成员管理修改

user5 4 jaren geleden
bovenliggende
commit
965c96495c

+ 2 - 0
src/main/java/com/jeeplus/modules/projectrecord/dao/ProjectRecordsDao.java

@@ -26,6 +26,8 @@ public interface ProjectRecordsDao extends CrudDao<ProjectRecords> {
     void updateSelectiveById(ProjectRecords projectRecords);
 
     List<ProjectRecords> findListByStatus(ProjectRecords projectRecords);
+    List<ProjectRecords> processFindListByStatus(ProjectRecords projectRecords);
+    int processQueryCountByStatus(ProjectRecords records);
 
     void updateSelectiveByProjectId(ProjectRecords records);
 

+ 19 - 1
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectImplementEarlyService.java

@@ -340,7 +340,7 @@ public class ProjectImplementEarlyService extends CrudService<ProjectImplementEa
             WorkProjectNotify workProjectNotify = UtilNotify
                     .saveNotify(projectFollowReport.getId(),
                             null,
-                            projectFollowReport.getProject().getCompany().getId(),
+                            UserUtils.getSelectCompany().getId(),
                             titleStr,
                             contentStr,
                             "139",
@@ -421,6 +421,10 @@ public class ProjectImplementEarlyService extends CrudService<ProjectImplementEa
                 workActivityProcessService.deleteProcessInstanceId(processInstanceId);
                 workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
             }
+            //通知添加流程实例ID
+            workProjectNotify.setProcessInstanceId(processInstance.getId());
+            workProjectNotifyService.save(workProjectNotify);
+
             List<Activity> list = workActivityMenu.getActivities();
             if (list != null && list.size() != 0) {
                 workActivityProcessService.saveList(list, processInstance.getId());
@@ -602,6 +606,20 @@ public class ProjectImplementEarlyService extends CrudService<ProjectImplementEa
                 notify.setNotifyId(projectFollowReport.getId());
                 userList = workProjectNotifyService.readByNotifyId(notify);
                 users.add(projectFollowReport.getCreateBy());
+                if (projectFollowReport.getStatus()!= ProjectStatusEnum.RECALL.getValue()){
+                    projectFollowReport.setStatus(ProjectStatusEnum.REJECTED.getValue());
+					workProjectNotifyService
+							.save(UtilNotify
+									.saveNotify(projectFollowReport.getId(),
+                                            projectFollowReport.getCreateBy(),
+                                            UserUtils.getSelectCompany().getId(),
+											titleStr,
+											notifyStr,
+											"139",
+											"0",
+											"待通知",
+											notifyRole));
+                }
             } else {
                 WorkProjectNotify notify = new WorkProjectNotify();
                 notify.setNotifyId(projectFollowReport.getId());

+ 46 - 0
src/main/java/com/jeeplus/modules/projectrecord/service/ProjectRecordsService.java

@@ -307,6 +307,52 @@ public class ProjectRecordsService extends CrudService<ProjectRecordsDao, Projec
 		page.setList(recordsList);
 		return page;
 	}
+
+
+	/**
+	 * 全过程项目成员管理查询
+	 * @param page
+	 * @param projectRecords
+	 * @return
+	 */
+	public Page<ProjectRecords> processFindPageByStatus(Page<ProjectRecords> page, ProjectRecords projectRecords) {
+		//设置数据权限
+		if(!UserUtils.getUser().isAdmin()) {
+			String dataScopeSql = dataScopeFilterOR(projectRecords.getCurrentUser(), "o", "u", "s", MenuStatusEnum.WORK_RECORDS.getValue());
+			if(StringUtils.isBlank(dataScopeSql)){
+				dataScopeSql = dataScopeFilterOR(projectRecords.getCurrentUser(), "o", "u", "s", MenuStatusEnum.OVERALL_WORK_RECORDS.getValue());
+			}
+			projectRecords.getSqlMap().put("dsf", dataScopeSql);
+		}
+		int count = dao.processQueryCountByStatus(projectRecords);
+		page.setCount(count);
+		page.setCountFlag(false);
+		projectRecords.setPage(page);
+		List<ProjectRecords> recordsList = dao.processFindListByStatus(projectRecords);
+		//查询负责人信息
+		for (ProjectRecords records : recordsList) {
+			List<User> users = workProjectUserDao.queryProjectUsers(records.getId(), "1");
+			records.setProjectLeaders(users);
+			records.setLeaderNameStr(Collections3.extractToString(users, "name", ","));
+		}
+		for (ProjectRecords records : recordsList) {
+			List<User> users = workProjectUserDao.projectUsers(records.getId());
+			records.setMembercount(users.size());
+		}
+		//判断是否为无合同项目
+		for (ProjectRecords records : recordsList) {
+			if(StringUtils.isBlank(records.getWorkContractInfo().getId())){
+				List<WorkClientLinkman> clientLinkmanList = workClientLinkmanDao.queryProjectLinkmans(records.getId(), 1);
+				for(WorkClientLinkman linkman :clientLinkmanList){
+					WorkClientInfo clientInfo = workClientInfoService.get(linkman.getClientId().getId());
+					records.getWorkContractInfo().setClient(clientInfo);
+				}
+			}
+		}
+		page.setList(recordsList);
+		return page;
+	}
+
 	public Page<ProjectRecords> findPageByRe(Page<ProjectRecords> page, ProjectRecords projectRecords,String userId) {
 		projectRecords.setPage(page);
 		projectRecords.setUserId(userId);

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

@@ -76,7 +76,7 @@ public class ProjectRecordsUserController extends BaseController {
 	@RequestMapping(value = {"list", ""})
 	public String list(ProjectRecords projectRecords, HttpServletRequest request, HttpServletResponse response, Model model) {
 		projectRecords.setProjectStatus(5);
-		Page<ProjectRecords> page = projectRecordsService.findPageByStatus(new Page<ProjectRecords>(request, response), projectRecords);
+		Page<ProjectRecords> page = projectRecordsService.processFindPageByStatus(new Page<ProjectRecords>(request, response), projectRecords);
 		model.addAttribute("page", page);
 		return "modules/projectrecord/projectRecordUsersList";
 	}

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

@@ -298,12 +298,12 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		//保存项目负责人
 		List<User> leaders = projectRecords.getProjectLeaders();
 		this.saveProjectUsers(projectRecords.getId(), leaders, true);
-		//保存委托方联系人
+		//保存委托方联系人1
 		List<WorkClientLinkman> workClientLinkmanList = projectRecords.getWorkClientLinkmanList();
-		this.saveLinkmanInfos(projectRecords.getId(), workClientLinkmanList, true);
-		//保存施工方联系信息
+		this.saveLinkmanInfos(projectRecords.getId(), workClientLinkmanList, 1);
+		//保存施工方联系信息3
 		List<WorkClientLinkman> constructionLinkmanList = projectRecords.getWorkConstructionLinkmanList();
-		this.saveLinkmanInfos(projectRecords.getId(), constructionLinkmanList, false);
+		this.saveLinkmanInfos(projectRecords.getId(), constructionLinkmanList, 3);
         long t4 = System.currentTimeMillis();
 		//保存项目计划附件信息
 		if (projectRecords.getProjectStatus()== ProjectStatusEnum.INVALID.getValue()) {
@@ -366,7 +366,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 	 * @param linkmanList
 	 * @param isEntrust   是否委托方,1委托方,0施工方
 	 */
-	private void saveLinkmanInfos(String projectId, List<WorkClientLinkman> linkmanList, boolean isEntrust) {
+	private void saveLinkmanInfos(String projectId, List<WorkClientLinkman> linkmanList, int isEntrust) {
 		assert (projectId != null);
 		if(linkmanList == null || linkmanList.isEmpty()){
 		    return;
@@ -381,12 +381,12 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 		HashMap<String, Object> map = new HashMap<>(5);
 		map.put("projectId", projectId);
 		map.put("linkmanList", newLinkmanList);
-		int entrust = 0;
+		/*int entrust = 0;
 		if (isEntrust) {
 			entrust = 1;
-		}
-		clientLinkmanDao.deleteProjectLinkmans(projectId, entrust);
-		map.put("isEntrust", entrust);
+		}*/
+		clientLinkmanDao.deleteProjectLinkmans(projectId, isEntrust);
+		map.put("isEntrust", isEntrust);
 		//判断委托人是否含有数据
 		if(newLinkmanList.size()>0){
 			clientLinkmanDao.batchInsert(map);
@@ -510,7 +510,7 @@ public class RuralProjectRecordsService extends CrudService<RuralProjectRecordsD
 			linkman.setClientId(clientInfo);
 		}
 		projectRecords.setWorkClientLinkmanList(clientLinkmanList);
-		List<WorkClientLinkman> constructionLinkmanList = workClientLinkmanDao.queryProjectLinkmans(projectRecords.getId(), 0);
+		List<WorkClientLinkman> constructionLinkmanList = workClientLinkmanDao.queryProjectLinkmans(projectRecords.getId(), 3);
 		projectRecords.setWorkConstructionLinkmanList(constructionLinkmanList);
 	}
 

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

@@ -1070,4 +1070,93 @@
 			</if>
 		</where>
 	</select>
+
+
+
+	<select id="processFindListByStatus" resultType="ProjectRecords" >
+		SELECT
+		<include refid="projectRecordsColumns"/>
+		,
+		wci.name AS "workContractInfo.name",
+		wci.contract_num AS "workContractInfo.contractNum",
+		wct.id AS "workContractInfo.client.id",
+		wct.name AS "workContractInfo.client.name",
+		o.top_company AS "office.name"
+		FROM project_records a
+		<include refid="projectRecordsJoins"/>
+		LEFT JOIN work_project_user w on a.id = w.project_id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN sys_user su on w.user_id = su.id
+		LEFT JOIN sys_user u on a.create_by = u.id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		<where>
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%')
+			</if>
+			AND w.is_master = '1' AND  a.status  = '5' AND a.del_flag='0'
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND (s.id = #{currentUser.company.id} or find_in_set( #{currentUser.company.id}, s.parent_ids ) ))${sqlMap.dsf} )
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+		GROUP BY a.id
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+
+	<select id="processQueryCountByStatus" resultType="int" >
+		SELECT count(DISTINCT a.id)
+		FROM project_records a
+		LEFT JOIN work_project_user w on a.id = w.project_id
+		LEFT JOIN work_project_user w1 on a.id = w1.project_id
+		LEFT JOIN sys_user su on w.user_id = su.id
+		LEFT JOIN sys_user u on a.create_by = u.id
+		LEFT JOIN work_contract_info wci on a.contract_id = wci.id
+		LEFT JOIN work_client_info wct on wci.client_id = wct.id
+		LEFT JOIN sys_office s ON s.id = a.company_id
+		LEFT JOIN sys_office o ON o.id = a.office_id
+		<where>
+			<if test="projectId != null and projectId != ''">
+				AND a.project_id like concat('%',#{projectId},'%')
+			</if>
+			<if test="projectName != null and projectName != ''">
+				AND a.project_name like concat(concat('%',#{projectName}),'%')
+			</if>
+			<if test="workContractInfo !=null and workContractInfo.name !=null and workContractInfo.name !=''">
+				AND wci.name like concat(concat('%',#{workContractInfo.name}),'%')
+			</if>
+			<if test="workContractInfo!=null and workContractInfo.client !=null and workContractInfo.client.name !=null and workContractInfo.client.name !=''">
+				AND wct.name like concat(concat('%',#{workContractInfo.client.name}),'%')
+			</if>
+			<if test="leaderNameStr !=null and leaderNameStr !=''">
+				AND su.name like concat(concat('%',#{leaderNameStr}),'%')
+			</if>
+			AND w.is_master = '1' AND  a.status  = '5' AND a.del_flag='0'
+			<if test="sqlMap.dsf !=null and sqlMap.dsf!=''">
+				AND ((w1.user_id = #{currentUser.id} AND w1.del_flag='0' AND (s.id = #{currentUser.company.id} or find_in_set( #{currentUser.company.id}, s.parent_ids ) ))${sqlMap.dsf} )
+			</if>
+			AND a.del_flag = #{DEL_FLAG_NORMAL}
+		</where>
+	</select>
 </mapper>

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

@@ -101,7 +101,7 @@
 <body >
 <div class="single-form">
 	<div class="container">
-		<form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/ruralProject/ruralProjectRecords/saveAudit" method="post" class="form-horizontal">
+		<form:form id="inputForm" modelAttribute="projectRecords" enctype="multipart/form-data" action="${ctx}/project/projectRecords/saveAudit" method="post" class="form-horizontal">
 		<form:hidden path="id"/>
 		<form:hidden path="home"/>
 		<form:hidden path="workContractInfo.client.id" id="contractClientId" value="${projectRecords.workContractInfo.client.id}"/>