From 28a8756f83356e124f72ca56bc61982b7d1cbd74 Mon Sep 17 00:00:00 2001 From: zty <1048209592@qq.com> Date: Fri, 2 Aug 2024 16:05:57 +0800 Subject: [PATCH] =?UTF-8?q?1.api=E5=A2=9E=E5=8A=A0=E7=BB=93=E9=A1=B9?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E8=B7=AF=E7=94=B1=202.=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E7=BB=93=E9=A1=B9=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E4=BB=A3?= =?UTF-8?q?=E5=8A=9E/=E5=B7=B2=E5=8A=9E=E5=88=A4=E6=96=AD=203.=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=93=E9=A1=B9=E5=AE=A1=E6=A0=B8=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=8E=86=E5=8F=B2?= =?UTF-8?q?=E5=A7=94=E6=89=98=E4=BA=BA=E5=AD=97=E6=AE=B5=204.=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AB=8B=E9=A1=B9=E7=9B=91=E6=8E=A7=E5=99=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BB=93=E9=A1=B9=E5=A7=94=E6=89=98=E4=BA=BA=E3=80=81?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E5=A7=94=E6=89=98=E4=BA=BA=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/xqopen/kehui/Api.java | 1 + .../kehui/flows/util/ProjectInitListener.java | 3 +- .../xqopen/kehui/mapper/ProjectInfoDao.java | 3 +- .../kehui/mapper/xml/ProjectInfoDao.xml | 18 ++-- .../project/action/ProjectInitComtroller.java | 102 +++++++++++------- .../project/service/IProjectInfoService.java | 5 +- .../service/impl/ProjectInfoServiceImpl.java | 5 +- 7 files changed, 87 insertions(+), 50 deletions(-) diff --git a/src/main/java/com/xqopen/kehui/Api.java b/src/main/java/com/xqopen/kehui/Api.java index 57825ff..ee88987 100644 --- a/src/main/java/com/xqopen/kehui/Api.java +++ b/src/main/java/com/xqopen/kehui/Api.java @@ -374,6 +374,7 @@ public class Api { public static final String PROJECT_INIT_CONCLUSION= PROJECT_INIT+"/conclusion"; public static final String PROJECT_INIT_CONCLUSION_LIST= PROJECT_INIT_CONCLUSION+"/list"; public static final String PROJECT_INIT_CONCLUSION_UPDATE= PROJECT_INIT_CONCLUSION+"/update"; + public static final String PROJECT_INIT_CONCLUSION_EXAMINE= PROJECT_INIT_CONCLUSION+"/examine"; /*** * 周报填报管理 */ 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 7d801cc..9599786 100644 --- a/src/main/java/com/xqopen/kehui/flows/util/ProjectInitListener.java +++ b/src/main/java/com/xqopen/kehui/flows/util/ProjectInitListener.java @@ -147,8 +147,9 @@ public class ProjectInitListener implements ExecutionListener { //添加季度审核的状态 JSONObject infoExt = projectInfo.getExt(); infoExt.put("taskName", "结项填报");//任务节点 -// infoExt.put("executor",executor); infoExt.put("executor", executor); + infoExt.put("endExecutor",String.valueOf(projectInfo.getCreatedBy()));//结项的第一个节点的委托人一定是项目专员也就是立项的创建人 + infoExt.put("endHistorical",infoExt.get("endExecutor"));//添加第一个历史委托人 // infoExt.put("executor",getSystemUserLogin(projectManager).getId());//当前委托人 //判断项目负责人是否是办公室部门的 EntityWrapper orgEntityWrapper = new EntityWrapper<>(); diff --git a/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java b/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java index fed38c6..ada413b 100644 --- a/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java +++ b/src/main/java/com/xqopen/kehui/mapper/ProjectInfoDao.java @@ -8,6 +8,7 @@ import com.xqopen.kehui.project.entity.ProjectInfo; import org.apache.ibatis.annotations.Param; import java.util.List; +import java.util.Map; /** *

@@ -41,5 +42,5 @@ public interface ProjectInfoDao extends BaseMapper { ProjectInfo getInfoByProName(@Param("projectName") String projectName); String getProId(@Param("projectName") String projectName); - List conclusionList(Page page,@Param("projectInfo") ProjectInfo projectInfo); + List conclusionList(Page page,@Param("map") Map map); } diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml index 74412e4..10d6ec2 100644 --- a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectInfoDao.xml @@ -167,15 +167,21 @@ where project_name = #{projectName} 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 237d294..60a18b3 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java @@ -145,9 +145,9 @@ public class ProjectInitComtroller implements ProjectInitApi { //项目编号:年份-部门-类别-序号 StringBuffer buffer = new StringBuffer(); buffer.append(year).append("-"); - ArrayList signedDepts= (ArrayList) infoExt.get("signedDepts");//获取立项部门 - String orgId= String.valueOf(signedDepts.get(0));//获取立项Id//根据项目名称拼接 - switch (orgId){ + ArrayList signedDepts = (ArrayList) infoExt.get("signedDepts");//获取立项部门 + String orgId = String.valueOf(signedDepts.get(0));//获取立项Id//根据项目名称拼接 + switch (orgId) { case "1215549953418465281": buffer.append("BGS");//办公室 break; @@ -167,7 +167,7 @@ public class ProjectInitComtroller implements ProjectInitApi { //项目类别 buffer.append("-"); String openRange = String.valueOf(infoExt.get("openRange")); - switch (openRange){ + switch (openRange) { case "1": buffer.append("TT"); break; @@ -195,8 +195,8 @@ public class ProjectInitComtroller implements ProjectInitApi { } //序号 EntityWrapper infoEntityWrapper = new EntityWrapper<>(); - infoEntityWrapper.eq(ProjectInfo.IS_DELETED,false); - infoEntityWrapper.like(ProjectInfo.PROJECT_NO,buffer.toString()); + infoEntityWrapper.eq(ProjectInfo.IS_DELETED, false); + infoEntityWrapper.like(ProjectInfo.PROJECT_NO, buffer.toString()); int count = infoService.selectCount(infoEntityWrapper); //条数 count++; buffer.append("-").append(String.format("%03d", count)); //生成编号 @@ -213,7 +213,7 @@ public class ProjectInitComtroller implements ProjectInitApi { if (!membersList.isEmpty()) { JSONObject jsonObject = new JSONObject(); jsonObject.put("executor", getSystemUserLogin(projectManagerData).getId());//第一个节点执行人一定是项目负责人 - jsonObject.put("historyExecutor",jsonObject.get("executor")); + jsonObject.put("historyExecutor", jsonObject.get("executor")); jsonObject.put("taskName", "季度审核填报"); jsonObject.put("projectManager", jsonObject.get("executor")); // jsonObject.put("projectAdmin", getSystemUserLogin(projectAdmin).getId()); @@ -401,9 +401,9 @@ public class ProjectInitComtroller implements ProjectInitApi { public String conclusionList(@RequestHeader Long userId, @RequestBody PageNoUtil pageNoUtil) throws XQException { try { Page page = new Page<>(pageNoUtil.getPageNo(), pageNoUtil.getPageSize()); - ProjectInfo info = pageNoUtil.getT(); - info.setCreatedBy(userId); - List list = infoService.conclusionList(page, info); + Map map = pageNoUtil.getMap(); + map.put("userId",userId); + List list = infoService.conclusionList(page, map); return ApiResponse.fillSuccess(new ResultListReqUtil(list, page.getTotal(), page.getPages())); } catch (Exception e) { log.error("ProjectInitController.conclusionList", e); @@ -450,75 +450,88 @@ public class ProjectInitComtroller implements ProjectInitApi { return ApiResponse.fillFail("错误请联系管理员"); } + /** + * 结项审核(流程) + * + * @param userId + * @param map + * @return + * @throws XQException + */ @Override + @PostMapping(Api.PROJECT_INIT_CONCLUSION_EXAMINE) public String examine(@RequestHeader Long userId, @RequestBody Map map) throws XQException { try { if (!ObjectUtils.isEmpty(map.get("id"))) { - Long id = Long.parseLong(String.valueOf(map.get("id")));//项目di + Long id = Long.parseLong(String.valueOf(map.get("id")));//项目id EntityWrapper infoEntityWrapper = new EntityWrapper<>(); infoEntityWrapper.eq(ProjectInfo.IS_DELETED, false); infoEntityWrapper.eq(ProjectInfo.ID_, id); ProjectInfo projectInfo = infoService.selectOne(infoEntityWrapper); if (!ObjectUtils.isEmpty(projectInfo)) { JSONObject ext = projectInfo.getExt(); - String taskName = String.valueOf(ext.get("taskName")); + String taskName = String.valueOf(ext.get("taskName"));//节点名称 String examine = String.valueOf(map.get("examine"));//通过or驳回 - String opinion = String.valueOf(map.get("opinion")); - if (!StringUtils.isEmpty(examine)) { + String opinion = String.valueOf(map.get("opinion"));//审核意见 + if (StringUtils.isEmpty(examine)) { return ApiResponse.fillFail("无法判断是提交还是驳回"); } + map.put("userId", String.valueOf(userId));//当前委托人id switch (taskName) { case "结项填报": if ("1".equals(examine)) { return ApiResponse.fillFail("结项填报无法驳回!"); } else if ("0".equals(examine)) { JSONArray projectManagerData = (JSONArray) ext.get("projectManagerData"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(projectManagerData.get(1)))); - map.put("taskName", "项目负责人审核"); + map.put("endExecutor", getSystemUserLogin(String.valueOf(projectManagerData.get(1))).getId()); + map.put("taskName", "项目负责人"); } break; - case "项目负责人审核": - map.put("projectManagerOpinion",opinion); + case "项目负责人": + map.put("projectManagerOpinion", opinion); if ("1".equals(examine)) { - JSONArray draftManId = (JSONArray) ext.get("draftManId"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(draftManId.get(1)))); + String draftManId = String.valueOf(ext.get("draftManId")); + map.put("endExecutor", getSystemUserLogin(draftManId).getId()); map.put("taskName", "结项填报"); } else if ("0".equals(examine)) { JSONArray projectAdmin = (JSONArray) ext.get("projectAdmin"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(projectAdmin.get(1)))); - map.put("taskName", "项目管理员审核"); + map.put("endExecutor", projectAdmin.get(0)); + map.put("taskName", "项目管理员"); } break; - case "项目管理员审核": + case "项目管理员": + map.put("projectAdminOpinion", opinion); if ("1".equals(examine)) { JSONArray projectManagerData = (JSONArray) ext.get("projectManagerData"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(projectManagerData.get(1)))); - map.put("taskName", "项目负责人审核"); + map.put("endExecutor", getSystemUserLogin(String.valueOf(projectManagerData.get(1))).getId()); + map.put("taskName", "项目负责人"); } else if ("0".equals(examine)) { JSONArray branchLeaders = (JSONArray) ext.get("branchLeaders"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(branchLeaders.get(1)))); - map.put("taskName", "分管领导审核"); + map.put("endExecutor", branchLeaders.get(0)); + map.put("taskName", "分管领导"); } break; - case "分管领导审核": + case "分管领导": + map.put("branchLeaderOpinion", opinion); if ("1".equals(examine)) { JSONArray projectAdmin = (JSONArray) ext.get("projectAdmin"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(projectAdmin.get(1)))); - map.put("taskName", "项目管理员审核"); + map.put("endExecutor", projectAdmin.get(0)); + map.put("taskName", "项目管理员"); } else if ("0".equals(examine)) { JSONArray MainLeader = (JSONArray) ext.get("MainLeader"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(MainLeader.get(1)))); - map.put("taskName", "主要领导批准"); + map.put("endExecutor", MainLeader.get(0)); + map.put("taskName", "主要领导"); } break; - case "主要领导批准": + case "主要领导": + map.put("mainLeaderOpinion", opinion); if ("1".equals(examine)) { - map.put("endExecutor", " "); - map.put("taskName", "结项完成"); + JSONArray branchLeaders = (JSONArray) ext.get("branchLeaders"); + map.put("endExecutor", branchLeaders.get(0)); + map.put("taskName", "分管领导"); } else if ("0".equals(examine)) { - JSONArray projectAdmin = (JSONArray) ext.get("projectAdmin"); - map.put("endExecutor", getSystemUserLogin(String.valueOf(projectAdmin.get(1)))); - map.put("taskName", "分管领导审核"); + map.put("endExecutor", ""); + map.put("taskName", "结项完成"); } break; } @@ -552,6 +565,19 @@ public class ProjectInitComtroller implements ProjectInitApi { String taskName = String.valueOf(map.get("taskName")); ext.put("taskName", taskName); ext.put("endExecutor", map.get("endExecutor")); + //添加审核意见 + Object projectManagerOpinion = map.get("projectManagerOpinion") != null ? ext.put("projectManagerOpinion", String.valueOf(map.get("projectManagerOpinion"))) : null; + Object projectAdminOpinion = map.get("projectAdminOpinion") != null ? ext.put("projectAdminOpinion", String.valueOf(map.get("projectManagerOpinion"))) : null; + Object branchLeaderOpinion = map.get("branchLeaderOpinion") != null ? ext.put("branchLeaderOpinion", String.valueOf(map.get("projectManagerOpinion"))) : null; + Object mainLeaderOpinion = map.get("mainLeaderOpinion") != null ? ext.put("mainLeaderOpinion", String.valueOf(map.get("projectManagerOpinion"))) : null; + if (ext.containsKey("endHistorical")) {//结项历史委托 + String endHistorical = String.valueOf(ext.get("endHistorical")); + if (!endHistorical.contains(String.valueOf(map.get("userId")))) { + endHistorical = endHistorical + "," + map.get("userId"); + ext.put("endHistorical", endHistorical); + } + } + projectInfo.setExt(ext); return infoService.updateById(projectInfo); } } diff --git a/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java b/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java index f082f03..94e71ff 100644 --- a/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java +++ b/src/main/java/com/xqopen/kehui/project/service/IProjectInfoService.java @@ -7,6 +7,7 @@ import com.xqopen.kehui.project.dto.ProjectInfoListItemResp; import com.xqopen.kehui.project.entity.ProjectInfo; import java.util.List; +import java.util.Map; /** *

@@ -32,8 +33,8 @@ public interface IProjectInfoService extends IService { /** * 根据创建id拿到结项列表,其实也就是立项人是谁,谁就能结项 * @param page - * @param projectInfo + * @param map * @return */ - List conclusionList(Page page, ProjectInfo projectInfo); + List conclusionList(Page page, Map map); } diff --git a/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java b/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java index fe80a37..5d06fb2 100644 --- a/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java +++ b/src/main/java/com/xqopen/kehui/project/service/impl/ProjectInfoServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; +import java.util.Map; /** *

@@ -55,7 +56,7 @@ public class ProjectInfoServiceImpl extends ServiceImpl conclusionList(Page page,ProjectInfo projectInfo) { - return infoDao.conclusionList(page,projectInfo); + public List conclusionList(Page page, Map map) { + return infoDao.conclusionList(page,map); } }