diff --git a/src/main/java/com/xqopen/kehui/flows/util/ProjectInitListener.java b/src/main/java/com/xqopen/kehui/flows/util/ProjectInitListener.java index 0e2cdcd..fb3c5aa 100644 --- a/src/main/java/com/xqopen/kehui/flows/util/ProjectInitListener.java +++ b/src/main/java/com/xqopen/kehui/flows/util/ProjectInitListener.java @@ -3,6 +3,7 @@ package com.xqopen.kehui.flows.util; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.xqopen.kehui.common.service.ISystemUserLoginService; import com.xqopen.kehui.exception.ErrorCode; import com.xqopen.kehui.exception.XQException; import com.xqopen.kehui.flows.service.IFlowsService; @@ -31,6 +32,8 @@ public class ProjectInitListener implements ExecutionListener { IFlowsService flowsService; @Autowired IProjectInfoService projectInfoService; + @Autowired + ISystemUserLoginService systemUserLoginService; @Override @Transactional @@ -45,9 +48,10 @@ public class ProjectInitListener implements ExecutionListener { ProjectInfo projectInfo = projectInfoService.selectOne(wrapper); if (!ObjectUtils.isEmpty(projectInfo)) { JSONObject ext = projectInfo.getExt(); - JSONArray depts= (JSONArray) ext.get("executeDepts"); + //根据部门批量添加部门周报填报 + JSONArray depts = (JSONArray) ext.get("executeDepts"); ArrayList weeklyArrayList = new ArrayList<>(); - if(!ObjectUtils.isEmpty(depts)){ + if (!ObjectUtils.isEmpty(depts)) { depts.forEach(a -> { ProjectWeekly projectWeekly = new ProjectWeekly(); projectWeekly.setProjectId(String.valueOf(projectInfo.getId())); @@ -56,15 +60,26 @@ public class ProjectInitListener implements ExecutionListener { projectWeekly.setDeptId(a.toString()); weeklyArrayList.add(projectWeekly); }); - System.out.println(weeklyArrayList); + //添加项目专员/负责人假数据,方便周报填报页面查看所有(暂时) + String draftManId = String.valueOf(ext.get("draftManId")); + JSONArray projectManagerData = (JSONArray) ext.get("projectManagerData"); + String projectManager = String.valueOf(projectManagerData.get(1)); + ArrayList list = new ArrayList<>(); + list.add(draftManId); + if(!draftManId.equals(projectManager))list.add(projectManager);//避免角色是同一个人重复 + list.forEach(a -> { + ProjectWeekly projectWeekly = new ProjectWeekly(); + projectWeekly.setProjectId(String.valueOf(projectInfo.getId())); + projectWeekly.setWeeklyType("1"); + projectWeekly.setDeptId(""); + projectWeekly.setCreatedAt(new Timestamp(System.currentTimeMillis())); + projectWeekly.setIsDeleted("1"); + projectWeekly.setUserId(a); + projectWeekly.setCreatedBy(a); + weeklyArrayList.add(projectWeekly); + }); projectWeeklyService.insertBatch(weeklyArrayList); } -// if(!StringUtils.isEmpty(projectInfo.getProjectName())&& !StringUtils.isEmpty(projectInfo.getProjectNo())){ -// ProjectWeekly projectWeekly = new ProjectWeekly(); -// projectWeekly.setProjectId(String.valueOf(projectInfo.getId())); -// projectWeekly.setWeeklyType("1"); -// projectWeeklyService.insert(projectWeekly); -// } } } } catch (Exception e) { diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml index 9944c4b..7f85be7 100644 --- a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectWeeklyDao.xml @@ -5,15 +5,15 @@ - - - - - - - - - + + + + + + + + + @@ -28,8 +28,14 @@ left join personal_member pm on pm.id_ =sl.userinfo_id left join project_info pi on pi.id_=cast(pw.project_id as BIGINT) where - pw.is_deleted='0' and pw.is_complete='0' - + pw.is_complete='0' + + and pw.is_deleted=#{projectWeekly.isDeleted} + + + and pw.user_id=#{projectWeekly.userId} + + and pw.id_=#{projectWeekly.id} diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java b/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java index 45c5107..e605b99 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java @@ -149,7 +149,7 @@ public class ProjectInitComtroller implements ProjectInitApi { if (!ObjectUtils.isEmpty(initDto)) { if (!ObjectUtils.isEmpty(initDto.getMap())) { map = initDto.getMap(); - if (!ObjectUtils.isEmpty(map)) { + if (!ObjectUtils.isEmpty(map)) {//存入流程委托人,并将前台传的人事ID转为账号ID if (!ObjectUtils.isEmpty(map.get("projectManagerData"))) { SystemUserLogin systemUserLogin = getSystemUserLogin(map, "projectManagerData"); map.put("projectManagerData", systemUserLogin.getId()); diff --git a/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java b/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java index c57910e..5b0d9c1 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectWeeklyController.java @@ -108,7 +108,7 @@ public class ProjectWeeklyController implements ProjectWeeklyApi { @Override @PostMapping(Api.PROJECT_WEEKLY) public String list(@RequestHeader("userId") Long userId, @RequestBody ProjectWeeklyFindReq projectWeeklyFindReq) throws XQException { - try { + try {//基本分页查询 if (!ObjectUtils.isEmpty(projectWeeklyFindReq)) { if (!ObjectUtils.isEmpty(userId)) projectWeeklyFindReq.setUserId(String.valueOf(userId)); if (projectWeeklyFindReq.getPageNo() == null || projectWeeklyFindReq.getPageNo() == 0) { @@ -119,12 +119,31 @@ public class ProjectWeeklyController implements ProjectWeeklyApi { } Page page = new Page<>(projectWeeklyFindReq.getPageNo(), projectWeeklyFindReq.getPageSize()); ProjectWeekly projectWeekly = new ProjectWeekly(); - projectWeekly.setIsComplete("0"); projectWeekly.setIsDeleted("0"); projectWeekly.setUserId(String.valueOf(userId)); projectWeekly.setWeeklyType("0"); - List list = projectWeeklyService.getList(page, projectWeekly); + + //判断当前账号是否是项目专员/负责人 + //因为json里面存的是人事id,通过账号找不到,先把账号id转为人事id + EntityWrapper userLoginEntityWrapper = new EntityWrapper<>(); + userLoginEntityWrapper.eq("id_",userId); + SystemUserLogin systemUserLogin = systemUserLoginService.selectOne(userLoginEntityWrapper); + EntityWrapper weeklyEntityWrapper = new EntityWrapper<>(); + weeklyEntityWrapper.eq("user_id",String.valueOf(systemUserLogin.getUserinfoId())); + weeklyEntityWrapper.eq("weekly_type","1"); + weeklyEntityWrapper.eq("dept_id",""); + weeklyEntityWrapper.eq("is_deleted","1"); + ProjectWeekly weekly = projectWeeklyService.selectOne(weeklyEntityWrapper); + if (!ObjectUtils.isEmpty(weekly)) {//如果查到确实是项目专员/负责人,通过项目ID拿到所有人的专项填报 + ProjectWeekly projectWeekly1 = new ProjectWeekly(); + projectWeekly1.setIsDeleted("0"); + projectWeekly1.setWeeklyType("0"); + projectWeekly1.setProjectId(weekly.getProjectId()); + list.addAll(projectWeeklyService.getList(page, projectWeekly1)); + } + + //组装结果集 ProjectWeeklyListResp listResp = new ProjectWeeklyListResp(); listResp.setLs(list); listResp.setPages(page.getPages()); diff --git a/src/main/java/com/xqopen/kehui/project/service/impl/IProjectWeeklyServiceImpl.java b/src/main/java/com/xqopen/kehui/project/service/impl/IProjectWeeklyServiceImpl.java index 45353ce..a9f054f 100644 --- a/src/main/java/com/xqopen/kehui/project/service/impl/IProjectWeeklyServiceImpl.java +++ b/src/main/java/com/xqopen/kehui/project/service/impl/IProjectWeeklyServiceImpl.java @@ -19,6 +19,5 @@ public class IProjectWeeklyServiceImpl extends ServiceImpl getList(Page page, ProjectWeekly projectWeekly) { return projectWeeklyDao.getList(page,projectWeekly); -// return null; } }