From 2f3fd0d8adfc88812589376f48d881ca09861cbd Mon Sep 17 00:00:00 2001 From: zty <1048209592@qq.com> Date: Fri, 9 Aug 2024 16:55:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E9=A1=B9=E7=9B=AE=E5=AD=A3=E5=BA=A6=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=97=B6=E5=A2=9E=E5=8A=A0=E9=80=BB=E8=BE=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=202.=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9/=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=A2=9E=E5=8A=A0=E6=A0=A1=E9=AA=8C=EF=BC=8C=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E6=97=B6=E4=BF=AE=E5=A4=8D=E6=9D=83=E9=99=90=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xml/ProjectAssessmentIndicatorsMapper.xml | 2 +- .../project/action/ProjectInitComtroller.java | 74 ++++++++++++++++++- 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectAssessmentIndicatorsMapper.xml b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectAssessmentIndicatorsMapper.xml index 5fe20aa..0eb3306 100644 --- a/src/main/java/com/xqopen/kehui/mapper/xml/ProjectAssessmentIndicatorsMapper.xml +++ b/src/main/java/com/xqopen/kehui/mapper/xml/ProjectAssessmentIndicatorsMapper.xml @@ -58,7 +58,7 @@ from project_assessment_indicators a right join(SELECT quarter, AVG((ext_ ->> 'sum')::FLOAT), project_id from project_assessment_indicators - WHERE project_id = #{map.projectId} + WHERE project_id = #{map.projectId} and is_deleted='0' and ext_ ->> 'executor' like CONCAT('%', #{map.userId}, '%') 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 d7afab8..b14924f 100644 --- a/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java +++ b/src/main/java/com/xqopen/kehui/project/action/ProjectInitComtroller.java @@ -113,6 +113,24 @@ public class ProjectInitComtroller implements ProjectInitApi { @Autowired ProjectInfoController projectInfoController; + private void verification(ProjectInfoReq infoReq) throws XQException { + if (StringUtils.isEmpty(infoReq.getProjectName())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTNAME_EMPTY_ERROR, null); + } + if (StringUtils.isEmpty(infoReq.getProjectCategory())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTCATEGORY_EMPTY_ERROR, null); + } + if (StringUtils.isEmpty(infoReq.getProjectStep())) { + throw new XQException(ErrorCode.PROJECTINFO_PROJECTSTEP_EMPTY_ERROR, null); + } + JSONObject ext = infoReq.getExt(); + JSONArray jsonArray = ext.getJSONArray("membersList"); + List membersList = ext.getJSONArray("membersList").toJavaList(ProjectMembers.class); + if (membersList == null || membersList.size() <= 0) { + throw new XQException(ErrorCode.PROJECTINFO_MEMBERSLIST_EMPTY_ERROR, null); + } + } + /** * 新增项目立项 * @@ -253,7 +271,7 @@ public class ProjectInitComtroller implements ProjectInitApi { indicatorsService.insertBatch(indicatorsList); ProjectInfo projectInfo = infoService.selectById(info.getId()); JSONObject ext1 = projectInfo.getExt(); - ext1.put("membersList",indicatorsList); + ext1.put("membersList", indicatorsList); projectInfo.setExt(ext1); infoService.updateById(projectInfo); } @@ -401,7 +419,18 @@ public class ProjectInitComtroller implements ProjectInitApi { public String edit(@RequestHeader("userId") Long userId, @RequestBody ProjectInfoInitDto initDto, @PathVariable("id") Long id) throws XQException { try { - ProjectInfoReq infoReq = new ProjectInfoReq(); + ProjectInfoReq infoReq = initDto.getProjectInfoReq(); + verification(infoReq); + //判断项目名是否重复 + EntityWrapper wrapper = new EntityWrapper<>(); + wrapper.eq("project_name", infoReq.getProjectName()); + wrapper.eq("project_category", "init"); + wrapper.eq("is_deleted", false); + wrapper.ne(ProjectInfo.ID_,id); + List infos = projectInfoService.selectList(wrapper); + if (!ObjectUtils.isEmpty(infos)) { + return ApiResponse.fillFail("项目名称已存在!"); + } List membersList = new ArrayList<>(); if (!ObjectUtils.isEmpty(initDto)) { infoReq = initDto.getProjectInfoReq(); @@ -410,8 +439,45 @@ public class ProjectInitComtroller implements ProjectInitApi { if (!ObjectUtils.isEmpty(id)) { indicatorsService.updateByProjectId(id); if (!ObjectUtils.isEmpty(membersList)) { - membersList.forEach(a -> a.setProjectId(id)); - indicatorsService.insertBatch(membersList); + ProjectInfo info = projectInfoService.selectById(id); + JSONObject ext = info.getExt(); + String projectManagerData = String.valueOf(((JSONArray) ext.get("projectManagerData")).get(1)); + if (!membersList.isEmpty()) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("executor", getSystemUserLogin(projectManagerData).getId());//第一个节点执行人一定是项目负责人 + jsonObject.put("historyExecutor", jsonObject.get("executor")); + jsonObject.put("taskName", "季度审核填报"); + jsonObject.put("projectManager", jsonObject.get("executor")); + membersList.forEach(item -> { + item.setProjectId(info.getId()); + item.setCreatedBy(userId); + item.setExt(jsonObject); + item.setCreatedAt(new Timestamp(System.currentTimeMillis())); + item.setUpdatedBy(null); + }); + Map> collect = membersList.stream().collect(Collectors.groupingBy(ProjectAssessmentIndicators::getQuarter)); + List indicatorsList = new ArrayList<>(); + collect.forEach((a, b) -> { + String budgetRate = new String();//预算执行率 + for (int i = 0; i < b.size(); i++) { + ProjectAssessmentIndicators projectAssessmentIndicators = b.get(i); + if (!StringUtils.isEmpty(projectAssessmentIndicators.getBudgetRate())) { + budgetRate = projectAssessmentIndicators.getBudgetRate(); + } else { + projectAssessmentIndicators.setBudgetRate(budgetRate); + } + indicatorsList.add(b.get(i)); + } + }); + indicatorsService.insertBatch(indicatorsList); + ProjectInfo projectInfo = infoService.selectById(info.getId()); + JSONObject ext1 = projectInfo.getExt(); + ext1.put("membersList", indicatorsList); + projectInfo.setExt(ext1); + infoService.updateById(projectInfo); + } +// membersList.forEach(a -> a.setProjectId(id)); +// indicatorsService.insertBatch(membersList); } } }