Browse Source

Merge remote-tracking branch 'origin/master'

tags/24080901
CMM 1 year ago
parent
commit
9c0d4275dd
7 changed files with 37 additions and 53 deletions
  1. +1
    -1
      pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/RegionLimitHelperImpl.java
  2. +8
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/expert/controller/ExpertController.java
  3. +4
    -2
      pmapi/src/main/java/com/ningdatech/pmapi/expert/manage/ExpertMetaApplyManage.java
  4. +4
    -4
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java
  5. +2
    -0
      pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java
  6. +16
    -43
      pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java
  7. +2
    -3
      pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java

+ 1
- 1
pmapi/src/main/java/com/ningdatech/pmapi/common/helper/impl/RegionLimitHelperImpl.java View File

@@ -115,7 +115,7 @@ public class RegionLimitHelperImpl extends AbstractRegionLimitHelper {
regionContainsBO.setParentRegionTreeLevel(expertAdminRegion.getRegionLevel());
regionContainsBOList.add(regionContainsBO);
}*/
return null;
return new ArrayList<>();
}




+ 8
- 0
pmapi/src/main/java/com/ningdatech/pmapi/expert/controller/ExpertController.java View File

@@ -16,6 +16,7 @@ import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;

/**
* <p>
@@ -46,6 +47,13 @@ public class ExpertController {
return expertManage.getExpertFullInfoDetail(null);
}


@GetMapping("/admin/detail")
@ApiOperation("专家管理员获取专家详细信息")
public ExpertFullInfoVO getExpertFullInfoDetail(@RequestParam(value = "expertUserId") @NotNull Long expertUserId) {
return expertManage.getExpertFullInfoDetail(expertUserId);
}

@PostMapping("/expert-library/list")
@ApiOperation("专家库列表查询接口")
public PageVo<ExpertAdminExpertManageListVO> getExpertLibraryList(


+ 4
- 2
pmapi/src/main/java/com/ningdatech/pmapi/expert/manage/ExpertMetaApplyManage.java View File

@@ -68,7 +68,7 @@ public class ExpertMetaApplyManage {
private final IExpertMetaApplyService iMetaApplyService;
private final IExpertDictionaryService expertDictionaryService;

// private final IExpertAdminManageService ExpertAdminManageService;
// private final IExpertAdminManageService ExpertAdminManageService;
private final RegionCacheHelper regionCacheHelper;
private final IExpertUserFullInfoService userFullInfoService;
private final DictionaryCache dictionaryCache;
@@ -89,7 +89,9 @@ public class ExpertMetaApplyManage {
ExpertAdminExpertManageQueryCmd queryCmd = buildExpertAdminExpertManageQueryCmd(req, viewRegions);
// TODO
// List<Long> filterExpertUserIdList = expertAdminManageService.filterExpertUserIdList(queryCmd);
List<Long> filterExpertUserIdList = new ArrayList<>();
List<ExpertUserFullInfo> expertUserFullInfoList = userFullInfoService.list();
// TODO 获取所有的专家审核列表
List<Long> filterExpertUserIdList = expertUserFullInfoList.stream().map(ExpertUserFullInfo::getUserId).distinct().collect(Collectors.toList());
if (CollUtil.isEmpty(filterExpertUserIdList)) {
return PageVo.empty();
}


+ 4
- 4
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/controller/AnnualPlanController.java View File

@@ -11,7 +11,6 @@ import com.ningdatech.pmapi.projectlib.model.req.StartProjectDeclareReq;
import com.ningdatech.pmapi.projectlib.model.vo.AnnualPlanListItemVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -69,16 +68,17 @@ public class AnnualPlanController {
annualPlanLibManage.importAnnualPlan(file);
}

@GetMapping("/modify")
@PostMapping("/modify")
@ApiOperation("年度计划编辑")
@WebLog("年度计划编辑")
public void modify(@RequestBody ProjectDTO req) {
annualPlanLibManage.updateAnnualPlan(req);
}

@PostMapping("/exportList")
@ApiOperation("项目库【列表|编辑表】导出")
public void exportList(@Valid @RequestBody ProjectListReq param, HttpServletResponse response){
annualPlanLibManage.exportList(param,response);
public void exportList(@Valid @RequestBody ProjectListReq param, HttpServletResponse response) {
annualPlanLibManage.exportList(param, response);
}

}

+ 2
- 0
pmapi/src/main/java/com/ningdatech/pmapi/projectlib/manage/AnnualPlanLibManage.java View File

@@ -127,6 +127,7 @@ public class AnnualPlanLibManage {
throw new BizException("开启方案申报失败");
}
});
projectService.updateBatchById(projects);
}

@Transactional(rollbackFor = Exception.class)
@@ -147,6 +148,7 @@ public class AnnualPlanLibManage {
public void suspendAnnualPlan(ProjectIdReq req) throws Exception {
Project project = projectService.getById(req.getProjectId());
stateMachine.execute(project, ProjectStatusChangeEvent.ANNUAL_PLAN_SUSPEND);
projectService.updateById(project);
}

@Transactional(rollbackFor = Exception.class)


+ 16
- 43
pmapi/src/main/java/com/ningdatech/pmapi/todocenter/manage/TodoCenterManage.java View File

@@ -8,6 +8,7 @@ import com.ningdatech.basic.exception.BizException;
import com.ningdatech.basic.function.VUtils;
import com.ningdatech.basic.model.PageVo;
import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.basic.util.NdDateUtils;
import com.ningdatech.pmapi.common.constant.CommonConst;
import com.ningdatech.pmapi.common.helper.UserInfoHelper;
import com.ningdatech.pmapi.common.model.entity.ExcelExportWriter;
@@ -123,26 +124,12 @@ public class TodoCenterManage {
}
List<String> instCodes = userTodoList.stream().map(ProcessTaskVo::getInstanceId).collect(Collectors.toList());

List<ProcessTaskVo> resList = new ArrayList<>();
List<String> instList = new ArrayList<>();
for (ProcessTaskVo processTaskVo : userTodoList) {
Map<String, ProcessTaskVo> map = resList.stream().collect(Collectors.toMap(ProcessTaskVo::getInstanceId, v -> v));
if (instList.contains(processTaskVo.getInstanceId())){
// 比较两个processTaskVo的endTime,保留最后处理的
ProcessTaskVo vo = map.get(processTaskVo.getInstanceId());
int compare = processTaskVo.getTaskEndTime().compareTo(vo.getTaskEndTime());
if (compare > 0){
instList.remove(processTaskVo.getInstanceId());
resList.remove(vo);
}else {
continue;
}
}
instList.add(processTaskVo.getInstanceId());
resList.add(processTaskVo);
}

Map<String, ProcessTaskVo> taskVoMap = resList.stream().collect(Collectors.toMap(ProcessTaskVo::getInstanceId, v -> v));
Set<String> processSet = Sets.newHashSet();
Map<String, ProcessTaskVo> taskMap = userTodoList.stream()
.sorted((t1,t2) -> t2.getTaskCreateTime().compareTo(t1.getTaskCreateTime()))
.collect(Collectors.toList()).stream()
.filter(v -> processSet.add(v.getInstanceId()))
.collect(Collectors.toMap(ProcessTaskVo::getInstanceId, v -> v));

//2.再分页查询项目信息
ProjectListReq projectListReq = new ProjectListReq();
@@ -158,7 +145,7 @@ public class TodoCenterManage {
ResToBeProcessedVO res = new ResToBeProcessedVO();
BeanUtils.copyProperties(d, res);
res.setProjectId(d.getId());
ProcessTaskVo taskVo = taskVoMap.get(d.getInstCode());
ProcessTaskVo taskVo = taskMap.get(d.getInstCode());
res.setNodeId(taskVo.getTaskDefKey());
res.setProcessStatusName(taskVo.getStatus());
res.setProcessLaunchTime(d.getCreateOn());
@@ -192,7 +179,6 @@ public class TodoCenterManage {
projectListReq.setInstCodes(instCodes);
BeanUtils.copyProperties(param, projectListReq);
List<Project> projects = CollUtil.isEmpty(userTodoList) ? Collections.emptyList() : projectLibManage.projectList(projectListReq);
PageVo<ProjectLibListItemVO> projectLibList = projectLibManage.projectLibList(projectListReq);

ExcelExportWriter excelExportWriter = new ExcelExportWriter();
String fileName = null;
@@ -646,26 +632,13 @@ public class TodoCenterManage {

List<String> instCodes = userIdoList.stream().map(ProcessTaskVo::getInstanceId).collect(Collectors.toList());

List<ProcessTaskVo> resList = new ArrayList<>();
List<String> instList = new ArrayList<>();
for (ProcessTaskVo processTaskVo : userIdoList) {
Map<String, ProcessTaskVo> map = resList.stream().collect(Collectors.toMap(ProcessTaskVo::getInstanceId, v -> v));
if (instList.contains(processTaskVo.getInstanceId())){
// 比较两个processTaskVo的endTime,保留最后处理的
ProcessTaskVo vo = map.get(processTaskVo.getInstanceId());
int compare = processTaskVo.getTaskEndTime().compareTo(vo.getTaskEndTime());
if (compare > 0){
instList.remove(processTaskVo.getInstanceId());
resList.remove(vo);
}else {
continue;
}
}
instList.add(processTaskVo.getInstanceId());
resList.add(processTaskVo);
}
Set<String> processSet = Sets.newHashSet();
Map<String, ProcessTaskVo> taskMap = userIdoList.stream()
.sorted((t1,t2) -> t2.getTaskEndTime().compareTo(t1.getTaskEndTime()))
.collect(Collectors.toList()).stream()
.filter(v -> processSet.add(v.getInstanceId()))
.collect(Collectors.toMap(ProcessTaskVo::getInstanceId, v -> v));

Map<String, ProcessTaskVo> taskVoMap = resList.stream().collect(Collectors.toMap(ProcessTaskVo::getInstanceId, v -> v));
// 分页查询项目信息
ProjectListReq projectListReq = new ProjectListReq();
projectListReq.setInstCodes(instCodes);
@@ -679,10 +652,10 @@ public class TodoCenterManage {
ResToBeProcessedVO res = new ResToBeProcessedVO();
BeanUtils.copyProperties(d, res);
res.setProjectId(d.getId());
ProcessTaskVo taskVo = taskVoMap.get(d.getInstCode());
ProcessTaskVo taskVo = taskMap.get(d.getInstCode());
res.setProcessStatusName(taskVo.getStatus());
res.setProcessLaunchTime(d.getCreateOn());
res.setProcessHandleTime(d.getUpdateOn());
res.setProcessHandleTime(NdDateUtils.date2LocalDateTime(taskVo.getTaskEndTime()));
return res;
}).collect(Collectors.toList());
return PageVo.of(resVos, projectPage.getTotal());


+ 2
- 3
pmapi/src/test/java/com/ningdatech/pmapi/statemachine/StateMachineTest.java View File

@@ -3,10 +3,9 @@ package com.ningdatech.pmapi.statemachine;
import com.alibaba.fastjson.JSON;
import com.ningdatech.pmapi.AppTests;
import com.ningdatech.pmapi.common.statemachine.util.StateMachineUtils;
import com.ningdatech.pmapi.common.statemachine.event.ProjectStatusChangeEvent;
import com.ningdatech.pmapi.projectlib.enumeration.ProjectStatusEnum;
import com.ningdatech.pmapi.projectlib.model.entity.Project;
import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import java.math.BigDecimal;
@@ -26,7 +25,7 @@ public class StateMachineTest extends AppTests {
public void stateMachineTest() throws Exception {
Project project = new Project();
project.setStage(ProjectStatusEnum.PROJECT_APPROVED.getCode());
project.setStatus(ProjectStatusEnum.FINAL_ACCEPTANCE_IS_UNDER_REVIEW.getCode());
project.setStatus(ProjectStatusEnum.IN_THE_ANNUAL_PLAN.getCode());
project.setDeclareAmount(BigDecimal.valueOf(2000));
stateMachineUtils.execute(project, stateMachineUtils.getProjectStatusPassEvent(project.getStatus()));
System.out.println(String.format("project:%s", JSON.toJSONString(project)));


Loading…
Cancel
Save