修改对接火山引擎接口-获取项目统计信息

This commit is contained in:
高嵩
2023-04-22 23:55:25 +08:00
parent f5ff2420bc
commit 0b9d54f0db
3 changed files with 115 additions and 2 deletions
@@ -1,5 +1,6 @@
package com.jero.modules.project.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
@@ -272,8 +273,9 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
@AutoLog(value = "对接火山引擎接口getProjectInfo")
@ApiOperation(value="对接火山引擎接口-获取项目统计信息", notes="对接火山引擎接口-获取项目统计信息")
@PostMapping(value = "/getProjectInfo")
public Result<?> getProjectInfo(@RequestBody JSONObject jsonObject){
return Result.OK(jsonObject);
public Result<?> getProjectInfo(){
JSONArray resList = projectLibraryBaseService.getProjectInfo();
return Result.OK(resList);
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.project.service;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.entity.ProjectLibraryBase;
@@ -146,4 +147,10 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
* @return
*/
ProjectLibraryBase selectById(String projectLibraryId);
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
JSONArray getProjectInfo();
}
@@ -1,5 +1,7 @@
package com.jero.modules.project.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -22,6 +24,7 @@ import com.jero.modules.project.mapper.ProjectRelatedPersonnelMapper;
import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectUserPermissionMapper;
import com.jero.modules.project.service.*;
import com.jero.modules.project.vo.TimeNodeVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
@@ -57,6 +60,7 @@ import java.io.IOException;
import java.io.OutputStream;
import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -153,6 +157,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
@Autowired
private IProcessInfoDetailEOService processInfoDetailEOService;
private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
/**
* 保存
*
@@ -2075,6 +2081,104 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
return result;
}
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
@Override
public JSONArray getProjectInfo() {
Date now = new Date();
List<ProjectLibraryBase> plbList = this.getList(new ProjectLibraryBase());
JSONArray resList = new JSONArray();
for (ProjectLibraryBase plb: plbList) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("projectId",plb.getId());
jsonObject.put("projectName",plb.getShowName());
List<List<TimeNodeVO>> TimeNodeVOsList = projectTaskPlanningService.queryByProjectId(plb.getId(),CutEnum.CN.getValue());
//获取前置节点
TimeNodeVO preNodeTnVo = null;
//获取后置节点
TimeNodeVO postNodeTnVo = null;
if (ObjectUtils.isNotEmpty(TimeNodeVOsList) && TimeNodeVOsList.size() > 0) {
List<TimeNodeVO> TimeNodeVOList = TimeNodeVOsList.get(0);
for (TimeNodeVO tnVo : TimeNodeVOList) {
if (null != postNodeTnVo) {
break;
}
if (now.after(tnVo.getTime())) {
preNodeTnVo = tnVo;
}
if (now.before(tnVo.getTime())) {
postNodeTnVo = tnVo;
}
}
}
JSONArray preNodeList = getNodeList(preNodeTnVo);
jsonObject.put("preNode", preNodeList);
JSONArray postNodeList = getNodeList(postNodeTnVo);
jsonObject.put("postNode",postNodeList);
resList.add(jsonObject);
}
return resList;
}
private JSONArray getNodeList(TimeNodeVO nodeTnVo) {
//根据节点获取对应进度和时间
JSONArray nodeList = new JSONArray();
if(ObjectUtils.isNotEmpty(nodeTnVo)){
if(ProjectTaskPlanningNameEnum.LIST_CONFIRMATION.getName().equals(nodeTnVo.getName()) || ProjectTaskPlanningNameEnum.LEGAL_TASK_CONFIRMATION.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "法规任务确认");
preNode.put("progress", 0.23);
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "认证任务确认");
preNode1.put("progress", 0.23);
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.DESIGN_DEADLINE.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "设计符合性流程");
preNode.put("progress", 0.55);
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}else if(ProjectTaskPlanningNameEnum.PREHOMO_DEADLINE.getName().equals(nodeTnVo.getName()) ||ProjectTaskPlanningNameEnum.ATTESTATION_START_TIME.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "Pre-Homo流程");
preNode.put("progress", 0.85);
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "参数收集进度");
preNode1.put("progress", 0.66);
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.CERTIFICATION_SUBMISSION.getName().equals(nodeTnVo.getName()) || ProjectTaskPlanningNameEnum.ATTESTATION_END_TIME.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "认证进度");
preNode.put("progress", 0.44);
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
JSONObject preNode1 = new JSONObject();
preNode1.put("nodeName", "参数收集进度");
preNode1.put("progress", 0.66);
preNode1.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode1);
}else if(ProjectTaskPlanningNameEnum.VERIFY_DEADLINE.getName().equals(nodeTnVo.getName())){
JSONObject preNode = new JSONObject();
preNode.put("nodeName", "验证符合性流程");
preNode.put("progress", 0.10);
preNode.put("date", sdf.format(nodeTnVo.getTime()));
nodeList.add(preNode);
}
}
return nodeList;
}
}