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);
}
}
}