@@ -4,9 +4,6 @@ import lombok.Data; | |||||
import org.springframework.boot.context.properties.ConfigurationProperties; | import org.springframework.boot.context.properties.ConfigurationProperties; | ||||
import org.springframework.context.annotation.Configuration; | import org.springframework.context.annotation.Configuration; | ||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
/** | /** | ||||
* @author zpf | * @author zpf | ||||
* @date 2023/3/2 下午5:37 | * @date 2023/3/2 下午5:37 | ||||
@@ -65,7 +65,7 @@ public interface RegionConst { | |||||
String QN = "331127"; | String QN = "331127"; | ||||
String LQ = "331181"; | String LQ = "331181"; | ||||
List<String> LS_ARR = Lists.newArrayList(RC_LS,LS_KF,LD,QT,JY,SC,SY,YH,QY,QN,LQ); | |||||
List<String> LS_ARR = Lists.newArrayList(RC_LS, LS_KF, LD, QT, JY, SC, SY, YH, QY, QN, LQ); | |||||
//----------------------------------------地区父级ID(缩写PID)--------------------------------------------------------- | //----------------------------------------地区父级ID(缩写PID)--------------------------------------------------------- | ||||
@@ -2,7 +2,6 @@ package com.hz.pm.api.common.enumeration; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.Getter; | import lombok.Getter; | ||||
import lombok.NoArgsConstructor; | |||||
/** | /** | ||||
@@ -13,7 +12,7 @@ import lombok.NoArgsConstructor; | |||||
*/ | */ | ||||
@Getter | @Getter | ||||
@AllArgsConstructor | @AllArgsConstructor | ||||
@NoArgsConstructor | |||||
@SuppressWarnings("all") | |||||
public enum ExportOptionEnum { | public enum ExportOptionEnum { | ||||
/** | /** | ||||
* 导出选项 | * 导出选项 | ||||
@@ -142,14 +141,14 @@ public enum ExportOptionEnum { | |||||
projectRemarks(59, "备注"), | projectRemarks(59, "备注"), | ||||
processStatusName(60, "流程状态名称"), | processStatusName(60, "流程状态名称"), | ||||
processLaunchTime(61,"流程发起时间"), | |||||
processHandleTime(62,"流程处理时间"), | |||||
processLaunchTime(61, "流程发起时间"), | |||||
processHandleTime(62, "流程处理时间"), | |||||
projectStatusName(63,"项目状态名称"), | |||||
projectStatusName(63, "项目状态名称"), | |||||
createOn(64,"创建时间"), | |||||
createOn(64, "创建时间"), | |||||
updateOn(65,"更新时间"); | |||||
updateOn(65, "更新时间"); | |||||
private Integer code; | private Integer code; | ||||
@@ -98,30 +98,22 @@ public class RegionLimitHelperImpl extends AbstractRegionLimitHelper { | |||||
logger.error("getExpertAdminContainsRegion expertAdminUserId is null"); | logger.error("getExpertAdminContainsRegion expertAdminUserId is null"); | ||||
return new ArrayList<>(); | return new ArrayList<>(); | ||||
} | } | ||||
UserInfo userInfo = iUserInfoService.getById(expertAdminUserId); | UserInfo userInfo = iUserInfoService.getById(expertAdminUserId); | ||||
if (Objects.isNull(userInfo) || StringUtils.isBlank(userInfo.getRegionCode())) { | if (Objects.isNull(userInfo) || StringUtils.isBlank(userInfo.getRegionCode())) { | ||||
logger.error("getExpertAdminContainsRegion userInfo is null Or regionCode is null"); | logger.error("getExpertAdminContainsRegion userInfo is null Or regionCode is null"); | ||||
return new ArrayList<>(); | return new ArrayList<>(); | ||||
} | } | ||||
String regionCode = userInfo.getRegionCode(); | String regionCode = userInfo.getRegionCode(); | ||||
List<Region> regionList = regionService.list(Wrappers.lambdaQuery(Region.class) | List<Region> regionList = regionService.list(Wrappers.lambdaQuery(Region.class) | ||||
.eq(Region::getRegionCode, regionCode) | .eq(Region::getRegionCode, regionCode) | ||||
.orderByDesc(Region::getRegionLevel)); | .orderByDesc(Region::getRegionLevel)); | ||||
Region region = regionList.get(0); | Region region = regionList.get(0); | ||||
Collection<String> regionCodes = regionCache | Collection<String> regionCodes = regionCache | ||||
.listChildRegionCodeList(region.getRegionCode(), region.getRegionLevel()); | .listChildRegionCodeList(region.getRegionCode(), region.getRegionLevel()); | ||||
RegionContainsBO regionContainsBO = new RegionContainsBO(); | RegionContainsBO regionContainsBO = new RegionContainsBO(); | ||||
regionContainsBO.setContainsRegionCodeList(new ArrayList<>(regionCodes)); | regionContainsBO.setContainsRegionCodeList(new ArrayList<>(regionCodes)); | ||||
regionContainsBO.setParentRegionTreeLevel(region.getRegionLevel()); | regionContainsBO.setParentRegionTreeLevel(region.getRegionLevel()); | ||||
ArrayList<RegionContainsBO> regionContainsBOS = CollectionUtil.toList(regionContainsBO); | |||||
return regionContainsBOS; | |||||
return CollectionUtil.toList(regionContainsBO); | |||||
} | } | ||||
} | } |
@@ -1,16 +1,12 @@ | |||||
package com.hz.pm.api.common.statemachine.action; | package com.hz.pm.api.common.statemachine.action; | ||||
import com.hz.pm.api.common.constant.StateMachineConst; | import com.hz.pm.api.common.constant.StateMachineConst; | ||||
import com.hz.pm.api.common.statemachine.builder.ProjectDeclareStateMachineBuilder; | |||||
import com.hz.pm.api.common.statemachine.contants.RegionContant; | import com.hz.pm.api.common.statemachine.contants.RegionContant; | ||||
import com.hz.pm.api.common.statemachine.util.StateMachineUtils; | |||||
import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.messaging.Message; | import org.springframework.messaging.Message; | ||||
import org.springframework.statemachine.StateContext; | |||||
import org.springframework.statemachine.action.Action; | |||||
import org.springframework.statemachine.annotation.OnTransition; | import org.springframework.statemachine.annotation.OnTransition; | ||||
import org.springframework.statemachine.annotation.WithStateMachine; | import org.springframework.statemachine.annotation.WithStateMachine; | ||||
@@ -10,9 +10,11 @@ import java.util.List; | |||||
* @author liuxinxin | * @author liuxinxin | ||||
* @date 2022/7/28 下午2:14 | * @date 2022/7/28 下午2:14 | ||||
*/ | */ | ||||
public class DictUtils { | public class DictUtils { | ||||
private DictUtils() { | |||||
} | |||||
public static Boolean isValueEquals(List<DictionaryFieldInfo> list1, List<DictionaryFieldInfo> list2) { | public static Boolean isValueEquals(List<DictionaryFieldInfo> list1, List<DictionaryFieldInfo> list2) { | ||||
if (CollUtil.isEmpty(list1) && CollUtil.isEmpty(list2)) { | if (CollUtil.isEmpty(list1) && CollUtil.isEmpty(list2)) { | ||||
return true; | return true; | ||||
@@ -7,6 +7,10 @@ import java.nio.charset.StandardCharsets; | |||||
import java.security.MessageDigest; | import java.security.MessageDigest; | ||||
public class Md5Utils { | public class Md5Utils { | ||||
private Md5Utils() { | |||||
} | |||||
private static final Logger LOGGER = LoggerFactory.getLogger(Md5Utils.class); | private static final Logger LOGGER = LoggerFactory.getLogger(Md5Utils.class); | ||||
public static byte[] md5(String s) { | public static byte[] md5(String s) { | ||||
@@ -16,7 +16,11 @@ import java.util.Objects; | |||||
*/ | */ | ||||
@Slf4j | @Slf4j | ||||
public class RefreshKeyUtil { | public class RefreshKeyUtil { | ||||
public static String getRequestSecret(String appKey, String appSecret,Long requestTime) { | |||||
private RefreshKeyUtil() { | |||||
} | |||||
public static String getRequestSecret(String appKey, String appSecret, Long requestTime) { | |||||
// 刷新秘钥 | // 刷新秘钥 | ||||
HttpUtil httpUtil = HttpUtil.getInstance(); | HttpUtil httpUtil = HttpUtil.getInstance(); | ||||
log.info("请求密钥" + appSecret); | log.info("请求密钥" + appSecret); | ||||
@@ -10,9 +10,11 @@ import java.util.List; | |||||
* @author liuxinxin | * @author liuxinxin | ||||
* @date 2022/7/28 下午2:27 | * @date 2022/7/28 下午2:27 | ||||
*/ | */ | ||||
public class RegionUtils { | public class RegionUtils { | ||||
private RegionUtils() { | |||||
} | |||||
public static Boolean isValueEquals(ExpertRegionInfo regionInfo1, ExpertRegionInfo regionInfo2) { | public static Boolean isValueEquals(ExpertRegionInfo regionInfo1, ExpertRegionInfo regionInfo2) { | ||||
if (null == regionInfo1.getRegionCode() && null == regionInfo1.getRegionLevel()) { | if (null == regionInfo1.getRegionCode() && null == regionInfo1.getRegionLevel()) { | ||||
return false; | return false; | ||||
@@ -1,14 +1,13 @@ | |||||
package com.hz.pm.api.dashboard.handle; | package com.hz.pm.api.dashboard.handle; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.github.xiaoymin.knife4j.core.util.CommonUtils; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.util.BizUtils; | import com.hz.pm.api.common.util.BizUtils; | ||||
import com.hz.pm.api.dashboard.constant.DashboardConstant; | import com.hz.pm.api.dashboard.constant.DashboardConstant; | ||||
import com.hz.pm.api.dashboard.model.vo.ProtraitProjectStatusSituationVO; | import com.hz.pm.api.dashboard.model.vo.ProtraitProjectStatusSituationVO; | ||||
import com.hz.pm.api.performance.model.entity.PerformanceAppraisalProject; | import com.hz.pm.api.performance.model.entity.PerformanceAppraisalProject; | ||||
import com.hz.pm.api.performance.service.IPerformanceAppraisalProjectService; | import com.hz.pm.api.performance.service.IPerformanceAppraisalProjectService; | ||||
import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | ||||
@@ -43,17 +42,18 @@ public class ProjectStatusHandler { | |||||
private final INdProjectStatusChangeService statusChangeService; | private final INdProjectStatusChangeService statusChangeService; | ||||
private final HistoryService historyService; | private final HistoryService historyService; | ||||
private final IPerformanceAppraisalProjectService performanceAppraisalProjectService; | private final IPerformanceAppraisalProjectService performanceAppraisalProjectService; | ||||
/** | /** | ||||
* 不同的项目状态 去求不同的审批完成时间 审批类型的 | * 不同的项目状态 去求不同的审批完成时间 审批类型的 | ||||
* @param project | |||||
* @return | |||||
* | |||||
* @param project \ | |||||
* @return \ | |||||
*/ | */ | ||||
public ProtraitProjectStatusSituationVO generateApproveStatus(Project project,String statusName,Integer instType) { | |||||
public ProtraitProjectStatusSituationVO generateApproveStatus(Project project, String statusName, Integer instType) { | |||||
ProtraitProjectStatusSituationVO vo = new ProtraitProjectStatusSituationVO(); | ProtraitProjectStatusSituationVO vo = new ProtraitProjectStatusSituationVO(); | ||||
if(Objects.isNull(project)){ | |||||
if (Objects.isNull(project)) { | |||||
return vo; | return vo; | ||||
} | } | ||||
vo.setStatusName(statusName); | vo.setStatusName(statusName); | ||||
@@ -67,7 +67,7 @@ public class ProjectStatusHandler { | |||||
.in(ProjectInst::getProjectId, ids) | .in(ProjectInst::getProjectId, ids) | ||||
.eq(ProjectInst::getInstType, instType) | .eq(ProjectInst::getInstType, instType) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if(Objects.isNull(unitInst)){ | |||||
if (Objects.isNull(unitInst)) { | |||||
return vo; | return vo; | ||||
} | } | ||||
//查询 这个实例 的完成时间 | //查询 这个实例 的完成时间 | ||||
@@ -75,7 +75,7 @@ public class ProjectStatusHandler { | |||||
.finished() | .finished() | ||||
.processInstanceId(unitInst.getInstCode()) | .processInstanceId(unitInst.getInstCode()) | ||||
.singleResult(); | .singleResult(); | ||||
if(Objects.isNull(instance)){ | |||||
if (Objects.isNull(instance)) { | |||||
return vo; | return vo; | ||||
} | } | ||||
Date endTime = instance.getEndTime(); | Date endTime = instance.getEndTime(); | ||||
@@ -85,29 +85,28 @@ public class ProjectStatusHandler { | |||||
/** | /** | ||||
* 不同的项目状态 去求不同的审批完成时间 非审批类型的 | * 不同的项目状态 去求不同的审批完成时间 非审批类型的 | ||||
* @param project | |||||
* @return | |||||
* | |||||
* @param project \ | |||||
* @return \ | |||||
*/ | */ | ||||
public ProtraitProjectStatusSituationVO generateStatus(Project project,String statusName, | |||||
Integer beforeStatusCode,Integer afterStatusCode) { | |||||
public ProtraitProjectStatusSituationVO generateStatus(Project project, String statusName, | |||||
Integer currStatus, Integer nextStatus) { | |||||
ProtraitProjectStatusSituationVO vo = new ProtraitProjectStatusSituationVO(); | ProtraitProjectStatusSituationVO vo = new ProtraitProjectStatusSituationVO(); | ||||
if(Objects.isNull(project)){ | |||||
if (Objects.isNull(project)) { | |||||
return vo; | return vo; | ||||
} | } | ||||
vo.setStatusName(statusName); | vo.setStatusName(statusName); | ||||
//查询 单位内部审核完成的时间 | //查询 单位内部审核完成的时间 | ||||
String projectCode = project.getProjectCode(); | String projectCode = project.getProjectCode(); | ||||
List<Project> projects = projectService.list(Wrappers.lambdaQuery(Project.class) | |||||
.eq(Project::getProjectCode, projectCode)); | |||||
List<Long> ids = projects.stream().map(Project::getId).collect(Collectors.toList()); | |||||
//查询 状态机流转的时间点 | //查询 状态机流转的时间点 | ||||
ProjectStatusChange statusChange = statusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | |||||
.eq(ProjectStatusChange::getBeforeStatus, beforeStatusCode) | |||||
LambdaQueryWrapper<ProjectStatusChange> pscQuery = Wrappers | |||||
.lambdaQuery(ProjectStatusChange.class) | |||||
.eq(ProjectStatusChange::getBeforeStatus, currStatus) | |||||
.eq(ProjectStatusChange::getProjectCode, projectCode) | .eq(ProjectStatusChange::getProjectCode, projectCode) | ||||
.eq(ProjectStatusChange::getAfterStatus, afterStatusCode) | |||||
.last(BizConst.LIMIT_1)); | |||||
if(Objects.isNull(statusChange)){ | |||||
.eq(ProjectStatusChange::getAfterStatus, nextStatus) | |||||
.last(BizConst.LIMIT_1); | |||||
ProjectStatusChange statusChange = statusChangeService.getOne(pscQuery); | |||||
if (Objects.isNull(statusChange)) { | |||||
return vo; | return vo; | ||||
} | } | ||||
vo.setStatusTime(statusChange.getCreateOn()); | vo.setStatusTime(statusChange.getCreateOn()); | ||||
@@ -116,23 +115,26 @@ public class ProjectStatusHandler { | |||||
/** | /** | ||||
* 绩效 | * 绩效 | ||||
* @param project | |||||
* @return | |||||
* | |||||
* @param project \ | |||||
* @return \ | |||||
*/ | */ | ||||
public ProtraitProjectStatusSituationVO generatePerformanceStatus(Project project) { | public ProtraitProjectStatusSituationVO generatePerformanceStatus(Project project) { | ||||
ProtraitProjectStatusSituationVO vo = new ProtraitProjectStatusSituationVO(); | ProtraitProjectStatusSituationVO vo = new ProtraitProjectStatusSituationVO(); | ||||
vo.setStatusName(DashboardConstant.Protrait.PERFORMANCE); | vo.setStatusName(DashboardConstant.Protrait.PERFORMANCE); | ||||
if(Objects.isNull(project)){ | |||||
if (Objects.isNull(project)) { | |||||
return vo; | return vo; | ||||
} | } | ||||
//查询 绩效完成 核查时间 | //查询 绩效完成 核查时间 | ||||
String projectCode = project.getProjectCode(); | String projectCode = project.getProjectCode(); | ||||
PerformanceAppraisalProject performance = performanceAppraisalProjectService.getOne(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | |||||
.eq(PerformanceAppraisalProject::getProjectCode,projectCode) | |||||
LambdaQueryWrapper<PerformanceAppraisalProject> papQuery = Wrappers | |||||
.lambdaQuery(PerformanceAppraisalProject.class) | |||||
.eq(PerformanceAppraisalProject::getProjectCode, projectCode) | |||||
.isNotNull(PerformanceAppraisalProject::getVerifyTotalScore) | .isNotNull(PerformanceAppraisalProject::getVerifyTotalScore) | ||||
.isNotNull(PerformanceAppraisalProject::getVerifyScoreTime) | .isNotNull(PerformanceAppraisalProject::getVerifyScoreTime) | ||||
.last(BizConst.LIMIT_1)); | |||||
if(Objects.nonNull(performance)){ | |||||
.last(BizConst.LIMIT_1); | |||||
PerformanceAppraisalProject performance = performanceAppraisalProjectService.getOne(papQuery); | |||||
if (Objects.nonNull(performance)) { | |||||
vo.setStatusTime(performance.getVerifyScoreTime()); | vo.setStatusTime(performance.getVerifyScoreTime()); | ||||
} | } | ||||
return vo; | return vo; | ||||
@@ -58,30 +58,31 @@ public class ExpertStatisticsManage { | |||||
private final IMetaDictionaryService metaDictionaryService; | private final IMetaDictionaryService metaDictionaryService; | ||||
private Integer[] years = new Integer[]{LocalDateTime.now().getYear()-2, | |||||
LocalDateTime.now().getYear()-1,LocalDateTime.now().getYear(), | |||||
LocalDateTime.now().getYear()+1,LocalDateTime.now().getYear()+2}; | |||||
private Integer[] years = new Integer[]{LocalDateTime.now().getYear() - 2, | |||||
LocalDateTime.now().getYear() - 1, LocalDateTime.now().getYear(), | |||||
LocalDateTime.now().getYear() + 1, LocalDateTime.now().getYear() + 2}; | |||||
private Integer[] threeYears = new Integer[]{LocalDateTime.now().getYear()-2, | |||||
LocalDateTime.now().getYear()-1,LocalDateTime.now().getYear()}; | |||||
private Integer[] threeYears = new Integer[]{LocalDateTime.now().getYear() - 2, | |||||
LocalDateTime.now().getYear() - 1, LocalDateTime.now().getYear()}; | |||||
private String[] SHENGWEIDU = new String[]{DashboardConstant.Expert.NETWORK_CODE, | private String[] SHENGWEIDU = new String[]{DashboardConstant.Expert.NETWORK_CODE, | ||||
DashboardConstant.Expert.DANGZHENG_CODE,DashboardConstant.Expert.FANGAN_CODE, | |||||
DashboardConstant.Expert.JISHU_CODE,DashboardConstant.Expert.XINCHUANG_CODE, | |||||
DashboardConstant.Expert.DANGZHENG_CODE, DashboardConstant.Expert.FANGAN_CODE, | |||||
DashboardConstant.Expert.JISHU_CODE, DashboardConstant.Expert.XINCHUANG_CODE, | |||||
DashboardConstant.Expert.RUANYING_CODE}; | DashboardConstant.Expert.RUANYING_CODE}; | ||||
private String[] SHIWEIDU = new String[]{DashboardConstant.Expert.CAIWU_CODE, | private String[] SHIWEIDU = new String[]{DashboardConstant.Expert.CAIWU_CODE, | ||||
DashboardConstant.Expert.XINXIHUA_CODE,DashboardConstant.Expert.XINCHUANG_OTTHER_CODE}; | |||||
DashboardConstant.Expert.XINXIHUA_CODE, DashboardConstant.Expert.XINCHUANG_OTTHER_CODE}; | |||||
private String[] TYPES = new String[]{DashboardConstant.Expert.EXPERT_TYPE_INNER, | private String[] TYPES = new String[]{DashboardConstant.Expert.EXPERT_TYPE_INNER, | ||||
DashboardConstant.Expert.EXPERT_TYPE_OUT}; | DashboardConstant.Expert.EXPERT_TYPE_OUT}; | ||||
private String[] LEVELS = new String[]{DashboardConstant.Expert.EXPERT_LEVEL_ZHENGGAO, | private String[] LEVELS = new String[]{DashboardConstant.Expert.EXPERT_LEVEL_ZHENGGAO, | ||||
DashboardConstant.Expert.EXPERT_LEVEL_FUGAO,DashboardConstant.Expert.EXPERT_LEVEL_MID, | |||||
DashboardConstant.Expert.EXPERT_LEVEL_CHUJI,DashboardConstant.Expert.EXPERT_LEVEL_NULL}; | |||||
DashboardConstant.Expert.EXPERT_LEVEL_FUGAO, DashboardConstant.Expert.EXPERT_LEVEL_MID, | |||||
DashboardConstant.Expert.EXPERT_LEVEL_CHUJI, DashboardConstant.Expert.EXPERT_LEVEL_NULL}; | |||||
/** | /** | ||||
* 专家统计 | * 专家统计 | ||||
* | |||||
* @param year | * @param year | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -107,16 +108,16 @@ public class ExpertStatisticsManage { | |||||
CompletableFuture.allOf( | CompletableFuture.allOf( | ||||
CompletableFuture.runAsync(() -> { | CompletableFuture.runAsync(() -> { | ||||
//选择的年份去计算的数据 | //选择的年份去计算的数据 | ||||
yearCompleteExpert(res,year,experts,intentionWorkRegions,expertTags, | |||||
tags,expertDictionaries,dictionMap); | |||||
yearCompleteExpert(res, year, experts, intentionWorkRegions, expertTags, | |||||
tags, expertDictionaries, dictionMap); | |||||
}, ForkJoinPool.commonPool()), | }, ForkJoinPool.commonPool()), | ||||
CompletableFuture.runAsync(() -> { | CompletableFuture.runAsync(() -> { | ||||
//近三年 | //近三年 | ||||
threeYearsCompleteExpert(res,experts); | |||||
threeYearsCompleteExpert(res, experts); | |||||
}, ForkJoinPool.commonPool()), | }, ForkJoinPool.commonPool()), | ||||
CompletableFuture.runAsync(() -> { | CompletableFuture.runAsync(() -> { | ||||
//近一年 | //近一年 | ||||
lastYearsCompleteExpert(res,experts); | |||||
lastYearsCompleteExpert(res, experts); | |||||
}, ForkJoinPool.commonPool()) | }, ForkJoinPool.commonPool()) | ||||
).join(); | ).join(); | ||||
@@ -125,9 +126,10 @@ public class ExpertStatisticsManage { | |||||
/** | /** | ||||
* 近一年 | * 近一年 | ||||
* | |||||
* @param res | * @param res | ||||
*/ | */ | ||||
private void lastYearsCompleteExpert(ExpertStatisticsVO res,List<ExpertUserFullInfo> experts) { | |||||
private void lastYearsCompleteExpert(ExpertStatisticsVO res, List<ExpertUserFullInfo> experts) { | |||||
List<ExpertUserFullInfo> lastYear = experts.stream().filter(expert -> { | List<ExpertUserFullInfo> lastYear = experts.stream().filter(expert -> { | ||||
if (expert.getCreateOn().compareTo(LocalDateTime.now().plusYears(-1)) >= 0 && | if (expert.getCreateOn().compareTo(LocalDateTime.now().plusYears(-1)) >= 0 && | ||||
expert.getCreateOn().compareTo(LocalDateTime.now()) <= 0) { | expert.getCreateOn().compareTo(LocalDateTime.now()) <= 0) { | ||||
@@ -140,12 +142,13 @@ public class ExpertStatisticsManage { | |||||
/** | /** | ||||
* 近三年 | * 近三年 | ||||
* | |||||
* @param res | * @param res | ||||
*/ | */ | ||||
private void threeYearsCompleteExpert(ExpertStatisticsVO res,List<ExpertUserFullInfo> experts) { | |||||
private void threeYearsCompleteExpert(ExpertStatisticsVO res, List<ExpertUserFullInfo> experts) { | |||||
List<DataDTO> threeYearsAdds = Lists.newArrayList(); | List<DataDTO> threeYearsAdds = Lists.newArrayList(); | ||||
for (Integer year : threeYears){ | |||||
threeYearsAdds.add(DataDTO.of(year.toString(),year.toString(), | |||||
for (Integer year : threeYears) { | |||||
threeYearsAdds.add(DataDTO.of(year.toString(), year.toString(), | |||||
experts.stream().filter(e -> { | experts.stream().filter(e -> { | ||||
if (Objects.nonNull(e.getCreateOn()) && year.equals(e.getCreateOn().getYear())) { | if (Objects.nonNull(e.getCreateOn()) && year.equals(e.getCreateOn().getYear())) { | ||||
return Boolean.TRUE; | return Boolean.TRUE; | ||||
@@ -158,12 +161,13 @@ public class ExpertStatisticsManage { | |||||
/** | /** | ||||
* 选择年份或者全部 | * 选择年份或者全部 | ||||
* @param res | |||||
* @param year | |||||
* | |||||
* @param res \ | |||||
* @param year \ | |||||
*/ | */ | ||||
private void yearCompleteExpert(ExpertStatisticsVO res, Integer year, | private void yearCompleteExpert(ExpertStatisticsVO res, Integer year, | ||||
List<ExpertUserFullInfo> experts,List<ExpertIntentionWorkRegion> intentionWorkRegions, | |||||
List<ExpertTag> expertTags,List<TagDTO> tags,List<ExpertDictionary> expertDictionaries, | |||||
List<ExpertUserFullInfo> experts, List<ExpertIntentionWorkRegion> intentionWorkRegions, | |||||
List<ExpertTag> expertTags, List<TagDTO> tags, List<ExpertDictionary> expertDictionaries, | |||||
Map<String, String> dictionMap) { | Map<String, String> dictionMap) { | ||||
res.setTotal(experts.size()); | res.setTotal(experts.size()); | ||||
@@ -188,22 +192,23 @@ public class ExpertStatisticsManage { | |||||
computeRegionExperts(res, intentionWorkRegions, expertMap, regions); | computeRegionExperts(res, intentionWorkRegions, expertMap, regions); | ||||
//计算专家特长 | //计算专家特长 | ||||
computeRegionDistribution(res,experts,expertTags,tags); | |||||
computeRegionDistribution(res, experts, expertTags, tags); | |||||
//计算专家类型 | //计算专家类型 | ||||
computeTypes(res,experts,expertDictionaries,dictionMap); | |||||
computeTypes(res, experts, expertDictionaries, dictionMap); | |||||
//计算专家等级 | //计算专家等级 | ||||
computeLevels(res,experts,expertDictionaries,dictionMap); | |||||
computeLevels(res, experts, expertDictionaries, dictionMap); | |||||
} | } | ||||
/** | /** | ||||
* 计算 专家等级 | * 计算 专家等级 | ||||
* | |||||
* @param res | * @param res | ||||
* @param experts | * @param experts | ||||
*/ | */ | ||||
private void computeLevels(ExpertStatisticsVO res, List<ExpertUserFullInfo> experts, | private void computeLevels(ExpertStatisticsVO res, List<ExpertUserFullInfo> experts, | ||||
List<ExpertDictionary> expertDictionaries,Map<String, String> dictionMap) { | |||||
List<ExpertDictionary> expertDictionaries, Map<String, String> dictionMap) { | |||||
List<DataDTO> levels = Lists.newArrayList(); | List<DataDTO> levels = Lists.newArrayList(); | ||||
Set<Long> userSets = Sets.newHashSet(); | Set<Long> userSets = Sets.newHashSet(); | ||||
@@ -213,9 +218,9 @@ public class ExpertStatisticsManage { | |||||
Map<String, List<ExpertDictionary>> dictionaryMap = expertDictionaries.stream() | Map<String, List<ExpertDictionary>> dictionaryMap = expertDictionaries.stream() | ||||
.collect(Collectors.groupingBy(ExpertDictionary::getDictionaryCode)); | .collect(Collectors.groupingBy(ExpertDictionary::getDictionaryCode)); | ||||
for(String levelCode : LEVELS){ | |||||
for (String levelCode : LEVELS) { | |||||
int num = 0; | int num = 0; | ||||
if(dictionaryMap.containsKey(levelCode)){ | |||||
if (dictionaryMap.containsKey(levelCode)) { | |||||
List<ExpertDictionary> dictionaries = dictionaryMap.get(levelCode); | List<ExpertDictionary> dictionaries = dictionaryMap.get(levelCode); | ||||
num = dictionaries.stream().filter(d -> { | num = dictionaries.stream().filter(d -> { | ||||
if (expertUserFullInfoMap.containsKey(d.getUserId())) { | if (expertUserFullInfoMap.containsKey(d.getUserId())) { | ||||
@@ -224,7 +229,7 @@ public class ExpertStatisticsManage { | |||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
}).collect(Collectors.toList()).size(); | }).collect(Collectors.toList()).size(); | ||||
} | } | ||||
levels.add(DataDTO.of(dictionMap.get(levelCode),levelCode,num)); | |||||
levels.add(DataDTO.of(dictionMap.get(levelCode), levelCode, num)); | |||||
} | } | ||||
res.setLevels(levels); | res.setLevels(levels); | ||||
@@ -232,11 +237,12 @@ public class ExpertStatisticsManage { | |||||
/** | /** | ||||
* 计算 专家类型 | * 计算 专家类型 | ||||
* | |||||
* @param res | * @param res | ||||
* @param experts | * @param experts | ||||
*/ | */ | ||||
private void computeTypes(ExpertStatisticsVO res, List<ExpertUserFullInfo> experts, | private void computeTypes(ExpertStatisticsVO res, List<ExpertUserFullInfo> experts, | ||||
List<ExpertDictionary> expertDictionaries,Map<String, String> dictionMap) { | |||||
List<ExpertDictionary> expertDictionaries, Map<String, String> dictionMap) { | |||||
List<DataDTO> types = Lists.newArrayList(); | List<DataDTO> types = Lists.newArrayList(); | ||||
Set<Long> userSets = Sets.newHashSet(); | Set<Long> userSets = Sets.newHashSet(); | ||||
@@ -246,18 +252,18 @@ public class ExpertStatisticsManage { | |||||
Map<String, List<ExpertDictionary>> dictionaryMap = expertDictionaries.stream() | Map<String, List<ExpertDictionary>> dictionaryMap = expertDictionaries.stream() | ||||
.collect(Collectors.groupingBy(ExpertDictionary::getDictionaryCode)); | .collect(Collectors.groupingBy(ExpertDictionary::getDictionaryCode)); | ||||
for(String typeCode : TYPES){ | |||||
for (String typeCode : TYPES) { | |||||
int num = 0; | int num = 0; | ||||
if(dictionaryMap.containsKey(typeCode)){ | |||||
if (dictionaryMap.containsKey(typeCode)) { | |||||
List<ExpertDictionary> dictionaries = dictionaryMap.get(typeCode); | List<ExpertDictionary> dictionaries = dictionaryMap.get(typeCode); | ||||
num = dictionaries.stream().filter(d -> { | num = dictionaries.stream().filter(d -> { | ||||
if(expertUserFullInfoMap.containsKey(d.getUserId())){ | |||||
if (expertUserFullInfoMap.containsKey(d.getUserId())) { | |||||
return Boolean.TRUE; | return Boolean.TRUE; | ||||
} | } | ||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
}).collect(Collectors.toList()).size(); | }).collect(Collectors.toList()).size(); | ||||
} | } | ||||
types.add(DataDTO.of(dictionMap.get(typeCode),typeCode,num)); | |||||
types.add(DataDTO.of(dictionMap.get(typeCode), typeCode, num)); | |||||
} | } | ||||
res.setTypes(types); | res.setTypes(types); | ||||
@@ -271,7 +277,7 @@ public class ExpertStatisticsManage { | |||||
.filter(u -> userSets.add(u.getUserId())) | .filter(u -> userSets.add(u.getUserId())) | ||||
.collect(Collectors.toMap(ExpertUserFullInfo::getUserId, e -> e)); | .collect(Collectors.toMap(ExpertUserFullInfo::getUserId, e -> e)); | ||||
Map<String,List<DataDTO>> typeDistribution = Maps.newHashMap(); | |||||
Map<String, List<DataDTO>> typeDistribution = Maps.newHashMap(); | |||||
Map<String, List<ExpertTag>> tagsMap = | Map<String, List<ExpertTag>> tagsMap = | ||||
expertTags.stream().filter(e -> Objects.nonNull(e.getTagCode())) | expertTags.stream().filter(e -> Objects.nonNull(e.getTagCode())) | ||||
@@ -283,25 +289,26 @@ public class ExpertStatisticsManage { | |||||
//1.省维度 | //1.省维度 | ||||
List<DataDTO> shengWeidu = Lists.newArrayList(); | List<DataDTO> shengWeidu = Lists.newArrayList(); | ||||
for(String code : SHENGWEIDU){ | |||||
for (String code : SHENGWEIDU) { | |||||
shengWeidu.add(getExpertData(expertUserFullInfoMap, | shengWeidu.add(getExpertData(expertUserFullInfoMap, | ||||
tagsMap, tagNameMap, code)); | tagsMap, tagNameMap, code)); | ||||
} | } | ||||
//2.市维度 | //2.市维度 | ||||
List<DataDTO> shiWeidu = Lists.newArrayList(); | List<DataDTO> shiWeidu = Lists.newArrayList(); | ||||
for(String code : SHIWEIDU){ | |||||
for (String code : SHIWEIDU) { | |||||
shiWeidu.add(getExpertData(expertUserFullInfoMap, | shiWeidu.add(getExpertData(expertUserFullInfoMap, | ||||
tagsMap, tagNameMap, code)); | tagsMap, tagNameMap, code)); | ||||
} | } | ||||
typeDistribution.put(DashboardConstant.Expert.DISTRIBUTION_SHENG,shengWeidu); | |||||
typeDistribution.put(DashboardConstant.Expert.DISTRIBUTION_SHI,shiWeidu); | |||||
typeDistribution.put(DashboardConstant.Expert.DISTRIBUTION_SHENG, shengWeidu); | |||||
typeDistribution.put(DashboardConstant.Expert.DISTRIBUTION_SHI, shiWeidu); | |||||
res.setTypeDistribution(typeDistribution); | res.setTypeDistribution(typeDistribution); | ||||
} | } | ||||
/** | /** | ||||
* 包装 | * 包装 | ||||
* | |||||
* @param expertUserFullInfoMap | * @param expertUserFullInfoMap | ||||
* @param tagsMap | * @param tagsMap | ||||
* @param tagNameMap | * @param tagNameMap | ||||
@@ -310,27 +317,27 @@ public class ExpertStatisticsManage { | |||||
*/ | */ | ||||
private static DataDTO getExpertData(Map<Long, ExpertUserFullInfo> expertUserFullInfoMap, Map<String, List<ExpertTag>> tagsMap, Map<String, String> tagNameMap, String code) { | private static DataDTO getExpertData(Map<Long, ExpertUserFullInfo> expertUserFullInfoMap, Map<String, List<ExpertTag>> tagsMap, Map<String, String> tagNameMap, String code) { | ||||
int num = 0; | int num = 0; | ||||
if(tagsMap.containsKey(code)){ | |||||
if (tagsMap.containsKey(code)) { | |||||
List<ExpertTag> ets = tagsMap.get(code); | List<ExpertTag> ets = tagsMap.get(code); | ||||
num = ets.stream().filter(e -> { | num = ets.stream().filter(e -> { | ||||
if(expertUserFullInfoMap.containsKey(e.getUserId())){ | |||||
if (expertUserFullInfoMap.containsKey(e.getUserId())) { | |||||
return Boolean.TRUE; | return Boolean.TRUE; | ||||
} | } | ||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
}).collect(Collectors.toList()).size(); | }).collect(Collectors.toList()).size(); | ||||
} | } | ||||
return DataDTO.of(tagNameMap.get(code),code,num); | |||||
return DataDTO.of(tagNameMap.get(code), code, num); | |||||
} | } | ||||
//计算区域专家 | //计算区域专家 | ||||
private static void computeRegionExperts(ExpertStatisticsVO res, List<ExpertIntentionWorkRegion> intentionWorkRegions, Map<Long, ExpertUserFullInfo> expertMap, List<RegionDTO> regions) { | private static void computeRegionExperts(ExpertStatisticsVO res, List<ExpertIntentionWorkRegion> intentionWorkRegions, Map<Long, ExpertUserFullInfo> expertMap, List<RegionDTO> regions) { | ||||
List<DataDTO> regionExpert = Lists.newArrayList(); | List<DataDTO> regionExpert = Lists.newArrayList(); | ||||
for(RegionDTO region : regions){ | |||||
regionExpert.add(DataDTO.of(region.getRegionName(),region.getRegionCode(), | |||||
for (RegionDTO region : regions) { | |||||
regionExpert.add(DataDTO.of(region.getRegionName(), region.getRegionCode(), | |||||
intentionWorkRegions.stream().filter(w -> { | intentionWorkRegions.stream().filter(w -> { | ||||
if(Objects.nonNull(w) && Objects.nonNull(w.getRegionCode()) && | |||||
if (Objects.nonNull(w) && Objects.nonNull(w.getRegionCode()) && | |||||
w.getRegionCode().equals(region.getRegionCode()) && | w.getRegionCode().equals(region.getRegionCode()) && | ||||
expertMap.containsKey(w.getUserId())){ | |||||
expertMap.containsKey(w.getUserId())) { | |||||
return Boolean.TRUE; | return Boolean.TRUE; | ||||
} | } | ||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
@@ -64,7 +64,6 @@ public class ProjectCostStatisticsManage { | |||||
DataDTO pricingAvg = new DataDTO(); | DataDTO pricingAvg = new DataDTO(); | ||||
pricingAvg.setName("核价费"); | pricingAvg.setName("核价费"); | ||||
BigDecimal reviewTwoYearTotal = BigDecimal.ZERO; | BigDecimal reviewTwoYearTotal = BigDecimal.ZERO; | ||||
BigDecimal pricingTwoYearTotal = BigDecimal.ZERO; | |||||
for(Integer thisYear : thisTwoYears){ | for(Integer thisYear : thisTwoYears){ | ||||
//查出 年份的 会议数据 | //查出 年份的 会议数据 | ||||
List<Meeting> yearMeetings = meetings.stream().filter(m -> { | List<Meeting> yearMeetings = meetings.stream().filter(m -> { | ||||
@@ -1,8 +1,5 @@ | |||||
package com.hz.pm.api.dashboard.model.vo; | package com.hz.pm.api.dashboard.model.vo; | ||||
import com.hz.pm.api.common.compare.Compare; | |||||
import com.hz.pm.api.dashboard.model.basic.AnalysisChart; | |||||
import com.hz.pm.api.dashboard.model.basic.StarExpertBO; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -12,8 +12,10 @@ import java.util.stream.Collectors; | |||||
* @author liuxinxin | * @author liuxinxin | ||||
* @date 2022/7/25 下午4:30 | * @date 2022/7/25 下午4:30 | ||||
*/ | */ | ||||
public class DictAssembler { | |||||
public class DictionaryAssembler { | |||||
private DictAssembler() { | |||||
} | |||||
public static List<DictionaryFieldInfo> toDictFieldInfoList(List<ExpertDictionary> expertDictList) { | public static List<DictionaryFieldInfo> toDictFieldInfoList(List<ExpertDictionary> expertDictList) { | ||||
if (CollUtil.isEmpty(expertDictList)) { | if (CollUtil.isEmpty(expertDictList)) { |
@@ -423,11 +423,11 @@ public class ExpertUserInfoAssembler { | |||||
List<ExpertDictionary> userExpertDictList = expertDictMap.getOrDefault(userId, Collections.emptyList()); | List<ExpertDictionary> userExpertDictList = expertDictMap.getOrDefault(userId, Collections.emptyList()); | ||||
Map<String, List<ExpertDictionary>> fieldExpertDictMap = userExpertDictList.stream().collect(Collectors.groupingBy(ExpertDictionary::getExpertInfoField)); | Map<String, List<ExpertDictionary>> fieldExpertDictMap = userExpertDictList.stream().collect(Collectors.groupingBy(ExpertDictionary::getExpertInfoField)); | ||||
adminManageExpertListItem.setExpertType( | adminManageExpertListItem.setExpertType( | ||||
DictionaryAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.EXPERT_TYPE.getKey()))); | |||||
DictAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.EXPERT_TYPE.getKey()))); | |||||
adminManageExpertListItem.setCompanyAttribute( | adminManageExpertListItem.setCompanyAttribute( | ||||
DictionaryAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.COMPANY_ATTRIBUTE.getKey()))); | |||||
DictAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.COMPANY_ATTRIBUTE.getKey()))); | |||||
adminManageExpertListItem.setTitleLevel( | adminManageExpertListItem.setTitleLevel( | ||||
DictionaryAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.TITLE_LEVEL.getKey()))); | |||||
DictAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.TITLE_LEVEL.getKey()))); | |||||
// 装配标签数据 | // 装配标签数据 | ||||
List<ExpertTag> expertTagList = Objects.isNull(expertTagMap.get(userId)) ? new ArrayList<>() : expertTagMap.get(userId); | List<ExpertTag> expertTagList = Objects.isNull(expertTagMap.get(userId)) ? new ArrayList<>() : expertTagMap.get(userId); | ||||
Map<String, List<ExpertTag>> fieldExpertTagMap = expertTagList.stream().collect(Collectors.groupingBy(ExpertTag::getExpertInfoField)); | Map<String, List<ExpertTag>> fieldExpertTagMap = expertTagList.stream().collect(Collectors.groupingBy(ExpertTag::getExpertInfoField)); | ||||
@@ -446,13 +446,13 @@ public class ExpertUserInfoAssembler { | |||||
adminManageExpertListItem.setHometown(expertUserFullInfo.getHometown()); | adminManageExpertListItem.setHometown(expertUserFullInfo.getHometown()); | ||||
adminManageExpertListItem.setNationality(expertUserFullInfo.getNationality()); | adminManageExpertListItem.setNationality(expertUserFullInfo.getNationality()); | ||||
adminManageExpertListItem.setPolitical( | adminManageExpertListItem.setPolitical( | ||||
DictionaryAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.POLITICAL.getKey()))); | |||||
DictAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.POLITICAL.getKey()))); | |||||
adminManageExpertListItem.setIdCard(expertUserFullInfo.getIdCard()); | adminManageExpertListItem.setIdCard(expertUserFullInfo.getIdCard()); | ||||
adminManageExpertListItem.setBankNo(expertUserFullInfo.getBankNo()); | adminManageExpertListItem.setBankNo(expertUserFullInfo.getBankNo()); | ||||
adminManageExpertListItem.setEdu( | adminManageExpertListItem.setEdu( | ||||
DictionaryAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.EDU.getKey()))); | |||||
DictAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.EDU.getKey()))); | |||||
adminManageExpertListItem.setRecommendedWay( | adminManageExpertListItem.setRecommendedWay( | ||||
DictionaryAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.RECOMMENDED_WAY.getKey()))); | |||||
DictAssembler.toDictFieldInfoList(fieldExpertDictMap.get(DictExpertInfoTypeEnum.RECOMMENDED_WAY.getKey()))); | |||||
adminManageExpertListItem.setCreateTime(expertUserFullInfo.getCreateOn()); | adminManageExpertListItem.setCreateTime(expertUserFullInfo.getCreateOn()); | ||||
return adminManageExpertListItem; | return adminManageExpertListItem; | ||||
@@ -2,7 +2,6 @@ package com.hz.pm.api.expert.assembler; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | ||||
import com.hz.pm.api.expert.entity.ExpertMetaApply; | |||||
import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | ||||
import com.hz.pm.api.meta.model.bo.RegionContainsBO; | import com.hz.pm.api.meta.model.bo.RegionContainsBO; | ||||
@@ -15,8 +15,9 @@ import java.util.List; | |||||
* @date 2022/7/27 下午3:34 | * @date 2022/7/27 下午3:34 | ||||
* 专家修改信息需要审核的字段 | * 专家修改信息需要审核的字段 | ||||
*/ | */ | ||||
@AllArgsConstructor | |||||
@Getter | @Getter | ||||
@AllArgsConstructor | |||||
@SuppressWarnings("all") | |||||
public enum ExpertUserInfoSensitiveFieldEnum { | public enum ExpertUserInfoSensitiveFieldEnum { | ||||
// 手机号码 | // 手机号码 | ||||
@@ -65,4 +66,5 @@ public enum ExpertUserInfoSensitiveFieldEnum { | |||||
*/ | */ | ||||
list; | list; | ||||
} | } | ||||
} | } |
@@ -1,13 +1,12 @@ | |||||
package com.hz.pm.api.expert.controller; | package com.hz.pm.api.expert.controller; | ||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.hz.pm.api.expert.manage.ReviewTemplateSettingsManage; | import com.hz.pm.api.expert.manage.ReviewTemplateSettingsManage; | ||||
import com.hz.pm.api.expert.model.req.ReviewTemplateReq; | import com.hz.pm.api.expert.model.req.ReviewTemplateReq; | ||||
import com.hz.pm.api.expert.model.vo.ReviewTemplateVO; | import com.hz.pm.api.expert.model.vo.ReviewTemplateVO; | ||||
import com.ningdatech.log.annotation.WebLog; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
import io.swagger.annotations.ApiModelProperty; | |||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
@@ -6,9 +6,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.hz.pm.api.common.enumeration.BoolDisplayEnum; | import com.hz.pm.api.common.enumeration.BoolDisplayEnum; | ||||
import com.hz.pm.api.common.helper.RegionCacheHelper; | import com.hz.pm.api.common.helper.RegionCacheHelper; | ||||
import com.hz.pm.api.common.helper.RegionLimitHelper; | import com.hz.pm.api.common.helper.RegionLimitHelper; | ||||
@@ -43,6 +40,9 @@ import com.hz.pm.api.meta.model.entity.ExpertDictionary; | |||||
import com.hz.pm.api.meta.service.IExpertDictionaryService; | import com.hz.pm.api.meta.service.IExpertDictionaryService; | ||||
import com.hz.pm.api.sys.model.dto.RegionDTO; | import com.hz.pm.api.sys.model.dto.RegionDTO; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -464,27 +464,26 @@ public class ExpertMetaApplyManage { | |||||
} | } | ||||
} | } | ||||
// 审核结果 | // 审核结果 | ||||
List<String> applyStatusList = new ArrayList<>(); | |||||
List<String> applyStatusList; | |||||
if (CollUtil.isNotEmpty(applyListReq.getApplyStatusList())) { | if (CollUtil.isNotEmpty(applyListReq.getApplyStatusList())) { | ||||
applyStatusList = CollUtils.fieldList(applyListReq.getApplyStatusList(), ExpertApplyStatusEnum::getKey); | applyStatusList = CollUtils.fieldList(applyListReq.getApplyStatusList(), ExpertApplyStatusEnum::getKey); | ||||
; | |||||
} else { | |||||
applyStatusList = null; | |||||
} | } | ||||
LocalDateTime applyStartTime = applyListReq.getApplyStartTime(); | LocalDateTime applyStartTime = applyListReq.getApplyStartTime(); | ||||
LocalDateTime applyEndTime = applyListReq.getApplyEndTime(); | LocalDateTime applyEndTime = applyListReq.getApplyEndTime(); | ||||
// 不展示撤回的申请记录 | // 不展示撤回的申请记录 | ||||
LambdaQueryWrapper<ExpertMetaApply> expertMetaApplyListQuery = Wrappers.lambdaQuery(ExpertMetaApply.class) | |||||
.in(CollectionUtils.isNotEmpty(applyTypeList), ExpertMetaApply::getApplyType, applyTypeList) | |||||
.in(CollectionUtils.isNotEmpty(applyStatusList), ExpertMetaApply::getApplyStatus, applyStatusList) | |||||
return Wrappers.lambdaQuery(ExpertMetaApply.class) | |||||
.in(CollUtil.isNotEmpty(applyTypeList), ExpertMetaApply::getApplyType, applyTypeList) | |||||
.in(CollUtil.isNotEmpty(applyStatusList), ExpertMetaApply::getApplyStatus, applyStatusList) | |||||
.in(ExpertMetaApply::getDisplayEnable, BoolDisplayEnum.Y.name()) | .in(ExpertMetaApply::getDisplayEnable, BoolDisplayEnum.Y.name()) | ||||
.in(CollectionUtils.isNotEmpty(expertIdList), ExpertMetaApply::getUserId, expertIdList) | |||||
.in(CollUtil.isNotEmpty(expertIdList), ExpertMetaApply::getUserId, expertIdList) | |||||
.gt(Objects.nonNull(applyStartTime), ExpertMetaApply::getCreateOn, applyStartTime) | .gt(Objects.nonNull(applyStartTime), ExpertMetaApply::getCreateOn, applyStartTime) | ||||
.lt(Objects.nonNull(applyEndTime), ExpertMetaApply::getCreateOn, applyEndTime) | .lt(Objects.nonNull(applyEndTime), ExpertMetaApply::getCreateOn, applyEndTime) | ||||
.ne(ExpertMetaApply::getApplyStatus, ExpertApplyStatusEnum.REVOKED.getKey()) | .ne(ExpertMetaApply::getApplyStatus, ExpertApplyStatusEnum.REVOKED.getKey()) | ||||
.orderByDesc(ExpertMetaApply::getCreateOn); | .orderByDesc(ExpertMetaApply::getCreateOn); | ||||
return expertMetaApplyListQuery; | |||||
} | } | ||||
private ExpertStorageDealCmd buildExpertStorageDealCmd(MetaApplyResultRequest applyResultRequest, | private ExpertStorageDealCmd buildExpertStorageDealCmd(MetaApplyResultRequest applyResultRequest, | ||||
@@ -4,11 +4,6 @@ import cn.hutool.core.util.StrUtil; | |||||
import cn.hutool.json.JSONUtil; | import cn.hutool.json.JSONUtil; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.cache.lock.DistributedLock; | |||||
import com.ningdatech.file.entity.vo.result.AttachFileVo; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.hz.pm.api.expert.constant.ReviewResultEnum; | import com.hz.pm.api.expert.constant.ReviewResultEnum; | ||||
import com.hz.pm.api.expert.model.dto.ReviewTemplateOptionDTO; | import com.hz.pm.api.expert.model.dto.ReviewTemplateOptionDTO; | ||||
import com.hz.pm.api.expert.model.dto.ReviewTemplateSettingsDTO; | import com.hz.pm.api.expert.model.dto.ReviewTemplateSettingsDTO; | ||||
@@ -25,6 +20,11 @@ import com.hz.pm.api.meeting.service.IMeetingExpertService; | |||||
import com.hz.pm.api.meeting.service.IMeetingInnerProjectService; | import com.hz.pm.api.meeting.service.IMeetingInnerProjectService; | ||||
import com.hz.pm.api.meeting.service.IMeetingService; | import com.hz.pm.api.meeting.service.IMeetingService; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.cache.lock.DistributedLock; | |||||
import com.ningdatech.file.entity.vo.result.AttachFileVo; | |||||
import com.ningdatech.file.service.FileService; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -144,7 +144,7 @@ public class ExpertReviewManage { | |||||
} | } | ||||
List<Long> attachFileIds = CollUtils.fieldList(reviews, ExpertReview::getAttachFileId); | List<Long> attachFileIds = CollUtils.fieldList(reviews, ExpertReview::getAttachFileId); | ||||
Map<Long, AttachFileVo> fileMap = new HashMap<>(attachFileIds.size()); | Map<Long, AttachFileVo> fileMap = new HashMap<>(attachFileIds.size()); | ||||
if (attachFileIds.size() > 0) { | |||||
if (!attachFileIds.isEmpty()) { | |||||
List<AttachFileVo> files = fileService.getByIds(attachFileIds); | List<AttachFileVo> files = fileService.getByIds(attachFileIds); | ||||
files.forEach(w -> fileMap.put(w.getFileId(), w)); | files.forEach(w -> fileMap.put(w.getFileId(), w)); | ||||
} | } | ||||
@@ -192,7 +192,7 @@ public class ExpertReviewManage { | |||||
return tmpReviewDetail; | return tmpReviewDetail; | ||||
}); | }); | ||||
ExpertReviewDetailVO tmpReview = buildExpertReviewDetail(review); | ExpertReviewDetailVO tmpReview = buildExpertReviewDetail(review); | ||||
if (review.getIsFinal()) { | |||||
if (Boolean.TRUE.equals(review.getIsFinal())) { | |||||
reviewDetailByType.setFinalReview(tmpReview); | reviewDetailByType.setFinalReview(tmpReview); | ||||
} else { | } else { | ||||
reviewDetailByType.getTeamMemberReviews().add(tmpReview); | reviewDetailByType.getTeamMemberReviews().add(tmpReview); | ||||
@@ -5,9 +5,6 @@ import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Builder; | import lombok.Builder; | ||||
import lombok.Data; | import lombok.Data; | ||||
import javax.validation.Valid; | |||||
import javax.validation.constraints.NotEmpty; | |||||
import javax.validation.constraints.NotNull; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
@@ -86,7 +86,7 @@ public class ExpertAdminManageServiceImpl implements ExpertAdminManageService { | |||||
List<ExpertAdminExpertManageListDTO> recordList = new ArrayList<>(); | List<ExpertAdminExpertManageListDTO> recordList = new ArrayList<>(); | ||||
if (userIdList.size() != 0) { | |||||
if (!userIdList.isEmpty()) { | |||||
List<Long> currPageUserIdList = CollUtil.page(req.getPageNumber() - 1, req.getPageSize(), userIdList); | List<Long> currPageUserIdList = CollUtil.page(req.getPageNumber() - 1, req.getPageSize(), userIdList); | ||||
List<ExpertUserFullInfo> expertUserList = iExpertUserFullInfoService.listByUserIds(currPageUserIdList); | List<ExpertUserFullInfo> expertUserList = iExpertUserFullInfoService.listByUserIds(currPageUserIdList); | ||||
@@ -4,14 +4,13 @@ import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | ||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.expert.mapper.ExpertReviewMapper; | import com.hz.pm.api.expert.mapper.ExpertReviewMapper; | ||||
import com.hz.pm.api.expert.model.entity.ExpertReview; | import com.hz.pm.api.expert.model.entity.ExpertReview; | ||||
import com.hz.pm.api.expert.model.enumeration.ReviewTemplateTypeEnum; | |||||
import com.hz.pm.api.expert.service.IExpertReviewService; | import com.hz.pm.api.expert.service.IExpertReviewService; | ||||
import com.hz.pm.api.meeting.entity.domain.Meeting; | import com.hz.pm.api.meeting.entity.domain.Meeting; | ||||
import com.hz.pm.api.meeting.mapper.MeetingMapper; | import com.hz.pm.api.meeting.mapper.MeetingMapper; | ||||
import com.ningdatech.basic.util.CollUtils; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
@@ -68,20 +67,21 @@ public class ExpertReviewServiceImpl extends ServiceImpl<ExpertReviewMapper, Exp | |||||
@Override | @Override | ||||
public ExpertReview getFinalReview(String projectCode, Integer meetingType) { | public ExpertReview getFinalReview(String projectCode, Integer meetingType) { | ||||
List<Meeting> constructMeetings = meetingMapper.selectList(Wrappers.lambdaQuery(Meeting.class) | |||||
LambdaQueryWrapper<Meeting> mQuery = Wrappers.lambdaQuery(Meeting.class) | |||||
.select(Meeting::getId) | .select(Meeting::getId) | ||||
.eq(Meeting::getType, meetingType)); | |||||
.eq(Meeting::getType, meetingType); | |||||
List<Meeting> constructMeetings = meetingMapper.selectList(mQuery); | |||||
List<Long> meetingIds = constructMeetings.stream() | List<Long> meetingIds = constructMeetings.stream() | ||||
.map(Meeting::getId).collect(Collectors.toList()); | .map(Meeting::getId).collect(Collectors.toList()); | ||||
ExpertReview expertReview = null; | |||||
if(CollUtil.isNotEmpty(meetingIds)){ | |||||
expertReview = this.getOne(Wrappers.lambdaQuery(ExpertReview.class) | |||||
.eq(ExpertReview::getProjectCode, projectCode) | |||||
.eq(ExpertReview::getIsFinal, Boolean.TRUE) | |||||
.in(ExpertReview::getMeetingId,meetingIds) | |||||
.last(BizConst.LIMIT_1)); | |||||
if (CollUtil.isEmpty(meetingIds)) { | |||||
return null; | |||||
} | } | ||||
return expertReview; | |||||
LambdaQueryWrapper<ExpertReview> erQuery = Wrappers.lambdaQuery(ExpertReview.class) | |||||
.eq(ExpertReview::getProjectCode, projectCode) | |||||
.eq(ExpertReview::getIsFinal, Boolean.TRUE) | |||||
.in(ExpertReview::getMeetingId, meetingIds) | |||||
.last(BizConst.LIMIT_1); | |||||
return this.getOne(erQuery); | |||||
} | } | ||||
} | } |
@@ -1,13 +1,10 @@ | |||||
package com.hz.pm.api.expert.service.impl; | package com.hz.pm.api.expert.service.impl; | ||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | ||||
import com.hz.pm.api.expert.mapper.NdExpertUserFullInfoMapper; | import com.hz.pm.api.expert.mapper.NdExpertUserFullInfoMapper; | ||||
import com.hz.pm.api.expert.service.IExpertUserFullInfoService; | import com.hz.pm.api.expert.service.IExpertUserFullInfoService; | ||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -4,11 +4,6 @@ import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.file.entity.File; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.hz.pm.api.filemanage.model.dto.DocumentationGroupSaveDTO; | import com.hz.pm.api.filemanage.model.dto.DocumentationGroupSaveDTO; | ||||
import com.hz.pm.api.filemanage.model.dto.DocumentationSaveDTO; | import com.hz.pm.api.filemanage.model.dto.DocumentationSaveDTO; | ||||
import com.hz.pm.api.filemanage.model.entity.Documentation; | import com.hz.pm.api.filemanage.model.entity.Documentation; | ||||
@@ -20,6 +15,11 @@ import com.hz.pm.api.filemanage.service.IDocumentationGroupService; | |||||
import com.hz.pm.api.filemanage.service.IDocumentationService; | import com.hz.pm.api.filemanage.service.IDocumentationService; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.file.entity.File; | |||||
import com.ningdatech.file.service.FileService; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -48,17 +48,17 @@ public class DocumentationManage { | |||||
private final FileService fileService; | private final FileService fileService; | ||||
/** | /** | ||||
* | |||||
* @return | * @return | ||||
*/ | */ | ||||
public List<DocumentationGroupVO> groupList() { | public List<DocumentationGroupVO> groupList() { | ||||
List<DocumentationGroup> list = documentationGroupService.list(); | List<DocumentationGroup> list = documentationGroupService.list(); | ||||
return list.stream().map(g -> BeanUtil.copyProperties(g,DocumentationGroupVO.class)).collect(Collectors.toList()); | |||||
return list.stream().map(g -> BeanUtil.copyProperties(g, DocumentationGroupVO.class)).collect(Collectors.toList()); | |||||
} | } | ||||
/** | /** | ||||
* 文档列表 | * 文档列表 | ||||
* | |||||
* @param param | * @param param | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -67,33 +67,34 @@ public class DocumentationManage { | |||||
documentationService.page(page, Wrappers.lambdaQuery(Documentation.class) | documentationService.page(page, Wrappers.lambdaQuery(Documentation.class) | ||||
.eq(Objects.nonNull(param.getGroupId()), Documentation::getGroupId, param.getGroupId())); | .eq(Objects.nonNull(param.getGroupId()), Documentation::getGroupId, param.getGroupId())); | ||||
if(CollUtil.isEmpty(page.getRecords())){ | |||||
if (CollUtil.isEmpty(page.getRecords())) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
List<DocumentationVO> vos = page.getRecords().stream() | List<DocumentationVO> vos = page.getRecords().stream() | ||||
.map(d -> BeanUtil.copyProperties(d,DocumentationVO.class)) | |||||
.map(d -> BeanUtil.copyProperties(d, DocumentationVO.class)) | |||||
.collect(Collectors.toList()); | .collect(Collectors.toList()); | ||||
return PageVo.of(vos,page.getTotal()); | |||||
return PageVo.of(vos, page.getTotal()); | |||||
} | } | ||||
/** | /** | ||||
* 增加分组 | * 增加分组 | ||||
* | |||||
* @param dto | * @param dto | ||||
* @return | * @return | ||||
*/ | */ | ||||
public String addGroup(DocumentationGroupSaveDTO dto) { | public String addGroup(DocumentationGroupSaveDTO dto) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
if(documentationGroupService.count(Wrappers.lambdaQuery(DocumentationGroup.class) | |||||
.eq(DocumentationGroup::getName,dto.getName())) > 0){ | |||||
if (documentationGroupService.count(Wrappers.lambdaQuery(DocumentationGroup.class) | |||||
.eq(DocumentationGroup::getName, dto.getName())) > 0) { | |||||
throw new BizException("此分组名 已经存在"); | throw new BizException("此分组名 已经存在"); | ||||
} | } | ||||
DocumentationGroup documentationGroup = BeanUtil.copyProperties(dto, DocumentationGroup.class); | DocumentationGroup documentationGroup = BeanUtil.copyProperties(dto, DocumentationGroup.class); | ||||
documentationGroup.setCreateBy(user.getRealName()); | documentationGroup.setCreateBy(user.getRealName()); | ||||
documentationGroup.setCreateOn(LocalDateTime.now()); | documentationGroup.setCreateOn(LocalDateTime.now()); | ||||
if(documentationGroupService.save(documentationGroup)){ | |||||
if (documentationGroupService.save(documentationGroup)) { | |||||
return "添加成功"; | return "添加成功"; | ||||
} | } | ||||
return "添加失败"; | return "添加失败"; | ||||
@@ -101,6 +102,7 @@ public class DocumentationManage { | |||||
/** | /** | ||||
* 删除分组 同时删除文档 | * 删除分组 同时删除文档 | ||||
* | |||||
* @param id | * @param id | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -119,6 +121,7 @@ public class DocumentationManage { | |||||
/** | /** | ||||
* 上传文档 | * 上传文档 | ||||
* | |||||
* @param dto | * @param dto | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -137,11 +140,11 @@ public class DocumentationManage { | |||||
Documentation documentation = new Documentation(); | Documentation documentation = new Documentation(); | ||||
documentation.setCreateBy(user.getRealName()); | documentation.setCreateBy(user.getRealName()); | ||||
documentation.setCreateOn(LocalDateTime.now()); | documentation.setCreateOn(LocalDateTime.now()); | ||||
documentation.setSize(Objects.nonNull(file.getSize()) ? file.getSize()/1000L : 0L); | |||||
documentation.setSize(Objects.nonNull(file.getSize()) ? file.getSize() / 1000L : 0L); | |||||
documentation.setFileId(fileId); | documentation.setFileId(fileId); | ||||
documentation.setGroupId(dto.getGroupId()); | documentation.setGroupId(dto.getGroupId()); | ||||
documentation.setFileName(file.getOriginalFileName()); | documentation.setFileName(file.getOriginalFileName()); | ||||
if(documentationService.save(documentation)){ | |||||
if (documentationService.save(documentation)) { | |||||
documentation.setSort(documentation.getId().intValue()); | documentation.setSort(documentation.getId().intValue()); | ||||
documentationService.updateById(documentation); | documentationService.updateById(documentation); | ||||
} | } | ||||
@@ -151,6 +154,7 @@ public class DocumentationManage { | |||||
/** | /** | ||||
* 删除文档 | * 删除文档 | ||||
* | |||||
* @param id | * @param id | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -158,7 +162,7 @@ public class DocumentationManage { | |||||
Documentation doc = documentationService.getById(id); | Documentation doc = documentationService.getById(id); | ||||
VUtils.isTrue(Objects.isNull(doc)).throwMessage("该文档不存在!"); | VUtils.isTrue(Objects.isNull(doc)).throwMessage("该文档不存在!"); | ||||
if(documentationService.removeById(id)){ | |||||
if (documentationService.removeById(id)) { | |||||
return "删除成功"; | return "删除成功"; | ||||
} | } | ||||
return "删除失败"; | return "删除失败"; | ||||
@@ -166,9 +170,9 @@ public class DocumentationManage { | |||||
public DocumentationVO detail(Long id) { | public DocumentationVO detail(Long id) { | ||||
Documentation doc = documentationService.getById(id); | Documentation doc = documentationService.getById(id); | ||||
if(Objects.isNull(doc)){ | |||||
if (Objects.isNull(doc)) { | |||||
return null; | return null; | ||||
} | } | ||||
return BeanUtil.copyProperties(doc,DocumentationVO.class); | |||||
return BeanUtil.copyProperties(doc, DocumentationVO.class); | |||||
} | } | ||||
} | } |
@@ -8,6 +8,7 @@ import com.hz.pm.api.gov.model.req.*; | |||||
import com.hz.pm.api.gov.model.vo.*; | import com.hz.pm.api.gov.model.vo.*; | ||||
import com.hz.pm.api.gov.utils.ProjectCollectionUtil; | import com.hz.pm.api.gov.utils.ProjectCollectionUtil; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import java.util.Collections; | import java.util.Collections; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
@@ -21,14 +22,18 @@ import java.util.stream.Collectors; | |||||
*/ | */ | ||||
public class ProjectConvert { | public class ProjectConvert { | ||||
private ProjectConvert() { | |||||
} | |||||
/** | /** | ||||
* 6个 转换方法 | * 6个 转换方法 | ||||
* | |||||
* @param saveDTO | * @param saveDTO | ||||
* @return | * @return | ||||
*/ | */ | ||||
public static ProjectPushReq convert(GovBizProjectSaveDTO saveDTO) { | public static ProjectPushReq convert(GovBizProjectSaveDTO saveDTO) { | ||||
ProjectPushReq req = new ProjectPushReq(); | ProjectPushReq req = new ProjectPushReq(); | ||||
req.setBaseinfo(convertBase(saveDTO.getBaseinfo(),BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setBaseinfo(convertBase(saveDTO.getBaseinfo(), BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setApply(convertApply(saveDTO.getApply())); | req.setApply(convertApply(saveDTO.getApply())); | ||||
req.setApprove(convertApprove(saveDTO.getApprove())); | req.setApprove(convertApprove(saveDTO.getApprove())); | ||||
req.setCimplement(convertCimplement(saveDTO.getCimplement())); | req.setCimplement(convertCimplement(saveDTO.getCimplement())); | ||||
@@ -39,7 +44,7 @@ public class ProjectConvert { | |||||
public static ProjectPushReq convert(GovBizProjectDetailVO vo) { | public static ProjectPushReq convert(GovBizProjectDetailVO vo) { | ||||
ProjectPushReq req = new ProjectPushReq(); | ProjectPushReq req = new ProjectPushReq(); | ||||
req.setBaseinfo(convertBaseVo(vo.getBaseinfo(),BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setBaseinfo(convertBaseVo(vo.getBaseinfo(), BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setApply(convertApplyVo(vo.getApply())); | req.setApply(convertApplyVo(vo.getApply())); | ||||
req.setApprove(convertApproveVo(vo.getApprove())); | req.setApprove(convertApproveVo(vo.getApprove())); | ||||
req.setCimplement(convertCimplementVo(vo.getCimplement())); | req.setCimplement(convertCimplementVo(vo.getCimplement())); | ||||
@@ -50,7 +55,7 @@ public class ProjectConvert { | |||||
public static ProjectPushReq convertWithConvertPdf(GovBizProjectDetailVO vo) { | public static ProjectPushReq convertWithConvertPdf(GovBizProjectDetailVO vo) { | ||||
ProjectPushReq req = new ProjectPushReq(); | ProjectPushReq req = new ProjectPushReq(); | ||||
req.setBaseinfo(convertBaseVo(vo.getBaseinfo(),BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setBaseinfo(convertBaseVo(vo.getBaseinfo(), BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setApply(convertApplyVoWithConvertPdf(vo.getApply())); | req.setApply(convertApplyVoWithConvertPdf(vo.getApply())); | ||||
req.setApprove(convertApproveVoWithConvertPdf(vo.getApprove())); | req.setApprove(convertApproveVoWithConvertPdf(vo.getApprove())); | ||||
req.setCimplement(convertCimplementVoWithConvertPdf(vo.getCimplement())); | req.setCimplement(convertCimplementVoWithConvertPdf(vo.getCimplement())); | ||||
@@ -61,7 +66,7 @@ public class ProjectConvert { | |||||
public static ProjectPushReq convertWithConvertPdf(GovOperationProjectDetailVO vo) { | public static ProjectPushReq convertWithConvertPdf(GovOperationProjectDetailVO vo) { | ||||
ProjectPushReq req = new ProjectPushReq(); | ProjectPushReq req = new ProjectPushReq(); | ||||
req.setBaseinfo(convertBaseVo(vo.getBaseinfo(),BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setBaseinfo(convertBaseVo(vo.getBaseinfo(), BizProjectContant.EFFECTIVE_CODE)); | |||||
req.setApply(convertApplyVoWithConvertPdf(vo.getApply())); | req.setApply(convertApplyVoWithConvertPdf(vo.getApply())); | ||||
req.setApprove(convertApproveVoWithConvertPdf(vo.getApprove())); | req.setApprove(convertApproveVoWithConvertPdf(vo.getApprove())); | ||||
req.setCimplement(convertCimplementVoWithConvertPdf(vo.getCimplement())); | req.setCimplement(convertCimplementVoWithConvertPdf(vo.getCimplement())); | ||||
@@ -71,14 +76,14 @@ public class ProjectConvert { | |||||
} | } | ||||
private static List<ProjectProcureReq> convertProcures(List<GovBizProjectProcureDTO> procures) { | private static List<ProjectProcureReq> convertProcures(List<GovBizProjectProcureDTO> procures) { | ||||
if(CollUtil.isEmpty(procures)){ | |||||
if (CollUtil.isEmpty(procures)) { | |||||
return Collections.emptyList(); | return Collections.emptyList(); | ||||
} | } | ||||
List<ProjectProcureReq> req = procures.stream() | List<ProjectProcureReq> req = procures.stream() | ||||
.map(p -> { | .map(p -> { | ||||
ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); | ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); | ||||
if(Objects.nonNull(p.getId())){ | |||||
if (Objects.nonNull(p.getId())) { | |||||
r.setTongID(p.getId().intValue()); | r.setTongID(p.getId().intValue()); | ||||
} | } | ||||
r.setBaseWinningBidTime(ProjectCollectionUtil.convertLocalDateTime(p.getBaseWinningBidTime())); | r.setBaseWinningBidTime(ProjectCollectionUtil.convertLocalDateTime(p.getBaseWinningBidTime())); | ||||
@@ -90,14 +95,14 @@ public class ProjectConvert { | |||||
} | } | ||||
private static List<ProjectProcureReq> convertProcuresVo(List<GovBizProjectProcureVO> procures) { | private static List<ProjectProcureReq> convertProcuresVo(List<GovBizProjectProcureVO> procures) { | ||||
if(CollUtil.isEmpty(procures)){ | |||||
if (CollUtil.isEmpty(procures)) { | |||||
return Collections.emptyList(); | return Collections.emptyList(); | ||||
} | } | ||||
List<ProjectProcureReq> req = procures.stream() | List<ProjectProcureReq> req = procures.stream() | ||||
.map(p -> { | .map(p -> { | ||||
ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); | ProjectProcureReq r = BeanUtil.copyProperties(p, ProjectProcureReq.class); | ||||
if(Objects.nonNull(p.getId())){ | |||||
if (Objects.nonNull(p.getId())) { | |||||
r.setTongID(p.getId().intValue()); | r.setTongID(p.getId().intValue()); | ||||
} | } | ||||
r.setBaseWinningBidTime(ProjectCollectionUtil.convertLocalDateTime(p.getBaseWinningBidTime())); | r.setBaseWinningBidTime(ProjectCollectionUtil.convertLocalDateTime(p.getBaseWinningBidTime())); | ||||
@@ -109,7 +114,7 @@ public class ProjectConvert { | |||||
} | } | ||||
private static List<ProjectProcureReq> convertProcuresVoWithConvertPdf(List<GovBizProjectProcureVO> procures) { | private static List<ProjectProcureReq> convertProcuresVoWithConvertPdf(List<GovBizProjectProcureVO> procures) { | ||||
if(CollUtil.isEmpty(procures)){ | |||||
if (CollUtil.isEmpty(procures)) { | |||||
return Collections.emptyList(); | return Collections.emptyList(); | ||||
} | } | ||||
@@ -131,18 +136,18 @@ public class ProjectConvert { | |||||
} | } | ||||
private static ProjectMimplementReq convertMimplement(GovBizProjectMimplementDTO mimplement) { | private static ProjectMimplementReq convertMimplement(GovBizProjectMimplementDTO mimplement) { | ||||
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement,ProjectMimplementReq.class); | |||||
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); | |||||
return req; | return req; | ||||
} | } | ||||
private static ProjectMimplementReq convertMimplementVo(GovBizProjectMimplementVO mimplement) { | private static ProjectMimplementReq convertMimplementVo(GovBizProjectMimplementVO mimplement) { | ||||
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement,ProjectMimplementReq.class); | |||||
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); | |||||
return req; | return req; | ||||
} | } | ||||
private static ProjectMimplementReq convertMimplementVoWithConvertPdf(GovBizProjectMimplementVO mimplement) { | private static ProjectMimplementReq convertMimplementVoWithConvertPdf(GovBizProjectMimplementVO mimplement) { | ||||
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement,ProjectMimplementReq.class); | |||||
if(Objects.isNull(req)){ | |||||
ProjectMimplementReq req = BeanUtil.copyProperties(mimplement, ProjectMimplementReq.class); | |||||
if (Objects.isNull(req)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setBaseUserConsFile(StringUtils.isNotBlank(mimplement.getBaseUserConsFilePdf()) ? mimplement.getBaseUserConsFilePdf() : | req.setBaseUserConsFile(StringUtils.isNotBlank(mimplement.getBaseUserConsFilePdf()) ? mimplement.getBaseUserConsFilePdf() : | ||||
@@ -169,18 +174,18 @@ public class ProjectConvert { | |||||
} | } | ||||
public static ProjectCimplementReq convertCimplement(GovBizProjectCimplementDTO cimplement) { | public static ProjectCimplementReq convertCimplement(GovBizProjectCimplementDTO cimplement) { | ||||
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement,ProjectCimplementReq.class); | |||||
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement, ProjectCimplementReq.class); | |||||
return req; | return req; | ||||
} | } | ||||
public static ProjectCimplementReq convertCimplementVo(GovBizProjectCimplementVO cimplement) { | public static ProjectCimplementReq convertCimplementVo(GovBizProjectCimplementVO cimplement) { | ||||
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement,ProjectCimplementReq.class); | |||||
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement, ProjectCimplementReq.class); | |||||
return req; | return req; | ||||
} | } | ||||
public static ProjectCimplementReq convertCimplementVoWithConvertPdf(GovBizProjectCimplementVO cimplement) { | public static ProjectCimplementReq convertCimplementVoWithConvertPdf(GovBizProjectCimplementVO cimplement) { | ||||
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement,ProjectCimplementReq.class); | |||||
if(Objects.isNull(req)){ | |||||
ProjectCimplementReq req = BeanUtil.copyProperties(cimplement, ProjectCimplementReq.class); | |||||
if (Objects.isNull(req)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setBaseChangeFormFile(StringUtils.isNotBlank(cimplement.getBaseChangeFormFilePdf()) ? cimplement.getBaseChangeFormFilePdf() : | req.setBaseChangeFormFile(StringUtils.isNotBlank(cimplement.getBaseChangeFormFilePdf()) ? cimplement.getBaseChangeFormFilePdf() : | ||||
@@ -216,7 +221,7 @@ public class ProjectConvert { | |||||
public static ProjectApproveReq convertApprove(GovBizProjectApproveDTO approve) { | public static ProjectApproveReq convertApprove(GovBizProjectApproveDTO approve) { | ||||
ProjectApproveReq req = new ProjectApproveReq(); | ProjectApproveReq req = new ProjectApproveReq(); | ||||
if(Objects.isNull(approve)){ | |||||
if (Objects.isNull(approve)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setBaseProjId(approve.getBaseProjId()); | req.setBaseProjId(approve.getBaseProjId()); | ||||
@@ -241,7 +246,7 @@ public class ProjectConvert { | |||||
public static ProjectApproveReq convertApproveVo(GovBizProjectApproveVO approve) { | public static ProjectApproveReq convertApproveVo(GovBizProjectApproveVO approve) { | ||||
ProjectApproveReq req = new ProjectApproveReq(); | ProjectApproveReq req = new ProjectApproveReq(); | ||||
if(Objects.isNull(approve)){ | |||||
if (Objects.isNull(approve)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setBaseProjId(approve.getBaseProjId()); | req.setBaseProjId(approve.getBaseProjId()); | ||||
@@ -266,7 +271,7 @@ public class ProjectConvert { | |||||
public static ProjectApproveReq convertApproveVoWithConvertPdf(GovBizProjectApproveVO approve) { | public static ProjectApproveReq convertApproveVoWithConvertPdf(GovBizProjectApproveVO approve) { | ||||
ProjectApproveReq req = new ProjectApproveReq(); | ProjectApproveReq req = new ProjectApproveReq(); | ||||
if(Objects.isNull(approve)){ | |||||
if (Objects.isNull(approve)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setBaseProjId(approve.getBaseProjId()); | req.setBaseProjId(approve.getBaseProjId()); | ||||
@@ -274,7 +279,7 @@ public class ProjectConvert { | |||||
req.setOp(approve.getOp()); | req.setOp(approve.getOp()); | ||||
req.setApprovalFile(StringUtils.isNotBlank(approve.getApprovalFilePdf()) ? approve.getApprovalFilePdf() : | req.setApprovalFile(StringUtils.isNotBlank(approve.getApprovalFilePdf()) ? approve.getApprovalFilePdf() : | ||||
null); | null); | ||||
req.setBaseReviewCommentsFile(StringUtils.isNotBlank(approve.getBaseReviewCommentsFilePdf()) ? approve.getBaseReviewCommentsFilePdf(): | |||||
req.setBaseReviewCommentsFile(StringUtils.isNotBlank(approve.getBaseReviewCommentsFilePdf()) ? approve.getBaseReviewCommentsFilePdf() : | |||||
null); | null); | ||||
req.setPreliminaryDesignFile(StringUtils.isNotBlank(approve.getPreliminaryDesignFilePdf()) ? approve.getPreliminaryDesignFilePdf() : | req.setPreliminaryDesignFile(StringUtils.isNotBlank(approve.getPreliminaryDesignFilePdf()) ? approve.getPreliminaryDesignFilePdf() : | ||||
null); | null); | ||||
@@ -295,7 +300,7 @@ public class ProjectConvert { | |||||
public static ProjectApplyReq convertApply(GovBizProjectApplyDTO apply) { | public static ProjectApplyReq convertApply(GovBizProjectApplyDTO apply) { | ||||
ProjectApplyReq req = new ProjectApplyReq(); | ProjectApplyReq req = new ProjectApplyReq(); | ||||
if(Objects.isNull(apply)){ | |||||
if (Objects.isNull(apply)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setOp(apply.getOp()); | req.setOp(apply.getOp()); | ||||
@@ -336,7 +341,7 @@ public class ProjectConvert { | |||||
public static ProjectApplyReq convertApplyVo(GovBizProjectApplyVO apply) { | public static ProjectApplyReq convertApplyVo(GovBizProjectApplyVO apply) { | ||||
ProjectApplyReq req = new ProjectApplyReq(); | ProjectApplyReq req = new ProjectApplyReq(); | ||||
if(Objects.isNull(apply)){ | |||||
if (Objects.isNull(apply)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setOp(apply.getOp()); | req.setOp(apply.getOp()); | ||||
@@ -377,7 +382,7 @@ public class ProjectConvert { | |||||
public static ProjectApplyReq convertApplyVoWithConvertPdf(GovBizProjectApplyVO apply) { | public static ProjectApplyReq convertApplyVoWithConvertPdf(GovBizProjectApplyVO apply) { | ||||
ProjectApplyReq req = new ProjectApplyReq(); | ProjectApplyReq req = new ProjectApplyReq(); | ||||
if(Objects.isNull(apply)){ | |||||
if (Objects.isNull(apply)) { | |||||
return req; | return req; | ||||
} | } | ||||
req.setOp(apply.getOp()); | req.setOp(apply.getOp()); | ||||
@@ -391,10 +396,10 @@ public class ProjectConvert { | |||||
req.setBaseBrainName(apply.getBaseBrainName()); | req.setBaseBrainName(apply.getBaseBrainName()); | ||||
req.setBaseDevelopCode(apply.getBaseDevelopCode()); | req.setBaseDevelopCode(apply.getBaseDevelopCode()); | ||||
req.setBaseLowestLevel(apply.getBaseLowestLevel()); | req.setBaseLowestLevel(apply.getBaseLowestLevel()); | ||||
if(Objects.nonNull(apply.getMissing()) && apply.getMissing()){ | |||||
if (Objects.nonNull(apply.getMissing()) && apply.getMissing()) { | |||||
req.setBaseHistorProjId(BizProjectContant.ProjectCollection.MISSING_HIS_PROJ_ID); | req.setBaseHistorProjId(BizProjectContant.ProjectCollection.MISSING_HIS_PROJ_ID); | ||||
req.setBaseHistorProjName(BizProjectContant.ProjectCollection.MISSING_HIS_PROJ_NAME); | req.setBaseHistorProjName(BizProjectContant.ProjectCollection.MISSING_HIS_PROJ_NAME); | ||||
}else{ | |||||
} else { | |||||
req.setBaseHistorProjId(apply.getBaseHistorProjId()); | req.setBaseHistorProjId(apply.getBaseHistorProjId()); | ||||
req.setBaseHistorProjName(apply.getBaseHistorProjName()); | req.setBaseHistorProjName(apply.getBaseHistorProjName()); | ||||
} | } | ||||
@@ -427,20 +432,20 @@ public class ProjectConvert { | |||||
return req; | return req; | ||||
} | } | ||||
public static ProjectBaseInfoReq convertBase(GovBizProjectBaseinfoDTO baseinfo,String isEffective) { | |||||
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo,ProjectBaseInfoReq.class); | |||||
public static ProjectBaseInfoReq convertBase(GovBizProjectBaseinfoDTO baseinfo, String isEffective) { | |||||
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo, ProjectBaseInfoReq.class); | |||||
req.setIsEffective(isEffective); | req.setIsEffective(isEffective); | ||||
return req; | return req; | ||||
} | } | ||||
public static ProjectBaseInfoReq convertBaseVo(GovBizProjectBaseinfoVO baseinfo,String isEffective) { | |||||
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo,ProjectBaseInfoReq.class); | |||||
public static ProjectBaseInfoReq convertBaseVo(GovBizProjectBaseinfoVO baseinfo, String isEffective) { | |||||
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo, ProjectBaseInfoReq.class); | |||||
req.setIsEffective(isEffective); | req.setIsEffective(isEffective); | ||||
return req; | return req; | ||||
} | } | ||||
public static ProjectBaseInfoReq convertBaseVo(GovOperationProjectBaseinfoVO baseinfo,String isEffective) { | |||||
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo,ProjectBaseInfoReq.class); | |||||
public static ProjectBaseInfoReq convertBaseVo(GovOperationProjectBaseinfoVO baseinfo, String isEffective) { | |||||
ProjectBaseInfoReq req = BeanUtil.copyProperties(baseinfo, ProjectBaseInfoReq.class); | |||||
req.setIsEffective(isEffective); | req.setIsEffective(isEffective); | ||||
return req; | return req; | ||||
} | } | ||||
@@ -15,6 +15,9 @@ import java.util.Objects; | |||||
*/ | */ | ||||
public class ProjectCollectionUtil { | public class ProjectCollectionUtil { | ||||
private ProjectCollectionUtil() { | |||||
} | |||||
public static String convertLocalDateTime(LocalDateTime localDateTime){ | public static String convertLocalDateTime(LocalDateTime localDateTime){ | ||||
if(Objects.isNull(localDateTime)){ | if(Objects.isNull(localDateTime)){ | ||||
return StringUtils.EMPTY; | return StringUtils.EMPTY; | ||||
@@ -6,14 +6,11 @@ import com.alibaba.fastjson.JSON; | |||||
import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||
import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.irs.service.IRefreshTokenService; | |||||
import com.hz.pm.api.common.constant.RegionConst; | import com.hz.pm.api.common.constant.RegionConst; | ||||
import com.hz.pm.api.common.enumeration.CommonEnum; | import com.hz.pm.api.common.enumeration.CommonEnum; | ||||
import com.hz.pm.api.common.statemachine.util.StateMachineUtils; | import com.hz.pm.api.common.statemachine.util.StateMachineUtils; | ||||
import com.hz.pm.api.common.util.CryptUtils; | import com.hz.pm.api.common.util.CryptUtils; | ||||
import com.hz.pm.api.common.util.HttpUtil; | import com.hz.pm.api.common.util.HttpUtil; | ||||
import com.hz.pm.api.common.util.RefreshKeyUtil; | |||||
import com.hz.pm.api.irs.model.dto.ApiApplyDTO; | import com.hz.pm.api.irs.model.dto.ApiApplyDTO; | ||||
import com.hz.pm.api.irs.model.dto.ApiApplySearchResult; | import com.hz.pm.api.irs.model.dto.ApiApplySearchResult; | ||||
import com.hz.pm.api.irs.model.dto.PushProjectAppToIrsDTO; | import com.hz.pm.api.irs.model.dto.PushProjectAppToIrsDTO; | ||||
@@ -23,6 +20,8 @@ import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | ||||
import com.hz.pm.api.projectlib.service.IProjectApplicationService; | import com.hz.pm.api.projectlib.service.IProjectApplicationService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.irs.service.IRefreshTokenService; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
@@ -235,7 +234,7 @@ public class AppIrsManage { | |||||
"&appKey=" + searchAppKey + "&pageSize=1000&" + | "&appKey=" + searchAppKey + "&pageSize=1000&" + | ||||
"pageNum=1&areaCode=" + areaCode + | "pageNum=1&areaCode=" + areaCode + | ||||
"&deptCode=&name="; | "&deptCode=&name="; | ||||
log.info("查询应用目录:{}",url); | |||||
log.info("查询应用目录:{}", url); | |||||
RestTemplate restTemplate = new RestTemplate(); | RestTemplate restTemplate = new RestTemplate(); | ||||
ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class); | ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class); | ||||
@@ -262,11 +261,12 @@ public class AppIrsManage { | |||||
/** | /** | ||||
* 如果是市本级的 结尾改成01 还要转换开发区的code | * 如果是市本级的 结尾改成01 还要转换开发区的code | ||||
* | |||||
* @param areaCode | * @param areaCode | ||||
* @return | * @return | ||||
*/ | */ | ||||
private String convertAreaCode(String areaCode) { | private String convertAreaCode(String areaCode) { | ||||
if(RegionConst.RC_LS.equals(areaCode) || RegionConst.LS_KF.equals(areaCode)){ | |||||
if (RegionConst.RC_LS.equals(areaCode) || RegionConst.LS_KF.equals(areaCode)) { | |||||
return RegionConst.RC_LS_SBJ_IRS; | return RegionConst.RC_LS_SBJ_IRS; | ||||
} | } | ||||
return areaCode; | return areaCode; | ||||
@@ -3,10 +3,8 @@ package com.hz.pm.api.irs.model.dto; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
import org.apache.poi.ss.formula.functions.T; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.util.List; | |||||
/** | /** | ||||
* @Classname ApiDTO | * @Classname ApiDTO | ||||
@@ -68,7 +68,7 @@ public class ApiResponse<T> implements Serializable { | |||||
* @return ApiResponse | * @return ApiResponse | ||||
*/ | */ | ||||
public static <T> ApiResponse<T> of(Integer code, String message, T data,Boolean success) { | public static <T> ApiResponse<T> of(Integer code, String message, T data,Boolean success) { | ||||
return new ApiResponse<T>(code, message, data,success); | |||||
return new ApiResponse<>(code, message, data,success); | |||||
} | } | ||||
/** | /** | ||||
@@ -21,6 +21,9 @@ import java.util.Objects; | |||||
@Slf4j | @Slf4j | ||||
public class RefreshTokenUtil { | public class RefreshTokenUtil { | ||||
private RefreshTokenUtil() { | |||||
} | |||||
public static String refrshByAppScret() throws NoSuchAlgorithmException { | public static String refrshByAppScret() throws NoSuchAlgorithmException { | ||||
long timestamp = System.currentTimeMillis(); | long timestamp = System.currentTimeMillis(); | ||||
String appSecret = "e066f496194540afa829c66983d4710e"; | String appSecret = "e066f496194540afa829c66983d4710e"; | ||||
@@ -8,13 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.model.IdVo; | |||||
import com.ningdatech.basic.model.PagePo; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.file.entity.vo.result.AttachFileVo; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.hz.pm.api.common.model.FileBasicInfo; | import com.hz.pm.api.common.model.FileBasicInfo; | ||||
import com.hz.pm.api.common.model.entity.KeyValDTO; | import com.hz.pm.api.common.model.entity.KeyValDTO; | ||||
import com.hz.pm.api.common.util.BizUtils; | import com.hz.pm.api.common.util.BizUtils; | ||||
@@ -47,6 +40,13 @@ import com.hz.pm.api.meeting.service.IMeetingService; | |||||
import com.hz.pm.api.meeting.task.ExpertRandomInviteTask; | import com.hz.pm.api.meeting.task.ExpertRandomInviteTask; | ||||
import com.hz.pm.api.sms.utils.DateUtil; | import com.hz.pm.api.sms.utils.DateUtil; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.model.IdVo; | |||||
import com.ningdatech.basic.model.PagePo; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.ningdatech.file.entity.vo.result.AttachFileVo; | |||||
import com.ningdatech.file.service.FileService; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import org.springframework.aop.framework.AopContext; | import org.springframework.aop.framework.AopContext; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
@@ -112,7 +112,8 @@ public class LeaveManage { | |||||
return w.get(0); | return w.get(0); | ||||
}))); | }))); | ||||
List<Long> meetingIds = CollUtils.fieldList(expertMap.values(), MeetingExpert::getMeetingId); | List<Long> meetingIds = CollUtils.fieldList(expertMap.values(), MeetingExpert::getMeetingId); | ||||
LocalDateTime startTime = leaveTimes.get(0).getKey(), endTime = leaveTimes.get(leaveTimes.size() - 1).getValue(); | |||||
LocalDateTime startTime = leaveTimes.get(0).getKey(); | |||||
LocalDateTime endTime = leaveTimes.get(leaveTimes.size() - 1).getValue(); | |||||
LambdaQueryWrapper<Meeting> meetingQuery = Wrappers.lambdaQuery(Meeting.class) | LambdaQueryWrapper<Meeting> meetingQuery = Wrappers.lambdaQuery(Meeting.class) | ||||
.in(Meeting::getId, meetingIds) | .in(Meeting::getId, meetingIds) | ||||
.ne(Meeting::getStatus, MeetingStatusEnum.CANCELED.getCode()) | .ne(Meeting::getStatus, MeetingStatusEnum.CANCELED.getCode()) | ||||
@@ -131,7 +132,8 @@ public class LeaveManage { | |||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public IdVo<Long> askForLeave(LeaveCreateReq po) { | public IdVo<Long> askForLeave(LeaveCreateReq po) { | ||||
Long leaveUserId, applyUserId = Objects.requireNonNull(LoginUserUtil.getUserId()); | |||||
Long leaveUserId; | |||||
Long applyUserId = Objects.requireNonNull(LoginUserUtil.getUserId()); | |||||
leaveUserId = po.getExpertId() != null ? po.getExpertId() : applyUserId; | leaveUserId = po.getExpertId() != null ? po.getExpertId() : applyUserId; | ||||
boolean leaveForSelf = leaveUserId.equals(applyUserId); | boolean leaveForSelf = leaveUserId.equals(applyUserId); | ||||
if (!leaveForSelf) { | if (!leaveForSelf) { | ||||
@@ -325,7 +327,9 @@ public class LeaveManage { | |||||
if (page.getTotal() == 0) { | if (page.getTotal() == 0) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
List<Long> meetingIds = new ArrayList<>(), auditIds = new ArrayList<>(), fileIds = new ArrayList<>(); | |||||
List<Long> meetingIds = new ArrayList<>(); | |||||
List<Long> auditIds = new ArrayList<>(); | |||||
List<Long> fileIds = new ArrayList<>(); | |||||
page.getRecords().forEach(w -> { | page.getRecords().forEach(w -> { | ||||
if (w.getMeetingId() != 0) { | if (w.getMeetingId() != 0) { | ||||
meetingIds.add(w.getMeetingId()); | meetingIds.add(w.getMeetingId()); | ||||
@@ -485,11 +489,9 @@ public class LeaveManage { | |||||
.set(ExpertLeave::getUpdateOn, LocalDateTime.now()) | .set(ExpertLeave::getUpdateOn, LocalDateTime.now()) | ||||
.eq(ExpertLeave::getAuditId, applyId); | .eq(ExpertLeave::getAuditId, applyId); | ||||
ExpertLeave leave = leaveService.getByAuditId(applyId); | ExpertLeave leave = leaveService.getByAuditId(applyId); | ||||
ExpertUserFullInfo leaveUser = userFullInfoService.getByUserId(leave.getLeaveUserId()); | |||||
if (status) { | if (status) { | ||||
update.set(ExpertLeave::getStatus, LeaveStatusEnum.PASSED.getCode()); | update.set(ExpertLeave::getStatus, LeaveStatusEnum.PASSED.getCode()); | ||||
} else { | } else { | ||||
ExpertMetaApply metaApply = metaApplyService.getById(applyId); | |||||
update.set(ExpertLeave::getStatus, LeaveStatusEnum.UN_PASSED.getCode()); | update.set(ExpertLeave::getStatus, LeaveStatusEnum.UN_PASSED.getCode()); | ||||
LambdaQueryWrapper<ExpertLeaveDetail> delete = Wrappers.lambdaQuery(ExpertLeaveDetail.class) | LambdaQueryWrapper<ExpertLeaveDetail> delete = Wrappers.lambdaQuery(ExpertLeaveDetail.class) | ||||
.eq(ExpertLeaveDetail::getExpertLeaveId, leave.getId()); | .eq(ExpertLeaveDetail::getExpertLeaveId, leave.getId()); | ||||
@@ -1,7 +1,6 @@ | |||||
package com.hz.pm.api.meeting.entity.dto; | package com.hz.pm.api.meeting.entity.dto; | ||||
import com.fasterxml.jackson.annotation.JsonFormat; | import com.fasterxml.jackson.annotation.JsonFormat; | ||||
import com.hz.pm.api.sms.constant.DatePattern; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -5,16 +5,16 @@ import lombok.Data; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* ExpertAttendSummaryVo | |||||
* ExpertAttendStatVO | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author WendyYang | * @author WendyYang | ||||
* @since 11:18 2022/8/28 | * @since 11:18 2022/8/28 | ||||
*/ | */ | ||||
@Data | @Data | ||||
public class ExpertAttendSummaryVO { | |||||
public class ExpertAttendStatVO { | |||||
private transient Long expertId; | |||||
private Long expertId; | |||||
@ApiModelProperty("专家姓名") | @ApiModelProperty("专家姓名") | ||||
private String expertName; | private String expertName; |
@@ -6,7 +6,7 @@ import com.hz.pm.api.meta.manage.MetaManage; | |||||
import com.hz.pm.api.meta.model.po.ReqAddDictionaryPO; | import com.hz.pm.api.meta.model.po.ReqAddDictionaryPO; | ||||
import com.hz.pm.api.meta.model.po.ReqDictionaryListPO; | import com.hz.pm.api.meta.model.po.ReqDictionaryListPO; | ||||
import com.hz.pm.api.meta.model.vo.ResDictionaryListVO; | import com.hz.pm.api.meta.model.vo.ResDictionaryListVO; | ||||
import com.hz.pm.api.meta.validate.DictionaryRequestValidator; | |||||
import com.hz.pm.api.meta.validate.DictParamValidator; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
@@ -37,14 +37,14 @@ public class MetaDictionaryManageController { | |||||
@PostMapping("/list") | @PostMapping("/list") | ||||
@ApiOperation("字典筛选数据返回") | @ApiOperation("字典筛选数据返回") | ||||
public List<ResDictionaryListVO> expertDictList(@RequestBody ReqDictionaryListPO request) { | public List<ResDictionaryListVO> expertDictList(@RequestBody ReqDictionaryListPO request) { | ||||
DictionaryRequestValidator.dictionaryRequestValidator(request); | |||||
DictParamValidator.dictionaryRequestValidator(request); | |||||
return metaManage.getDictionaryList(request); | return metaManage.getDictionaryList(request); | ||||
} | } | ||||
@PostMapping("/common/list") | @PostMapping("/common/list") | ||||
@ApiOperation("通用字典筛选数据返回") | @ApiOperation("通用字典筛选数据返回") | ||||
public List<ResDictionaryListVO> commonDictList(@RequestBody ReqDictionaryListPO request) { | public List<ResDictionaryListVO> commonDictList(@RequestBody ReqDictionaryListPO request) { | ||||
DictionaryRequestValidator.dictionaryRequestValidator(request); | |||||
DictParamValidator.dictionaryRequestValidator(request); | |||||
return metaManage.commonDictList(request); | return metaManage.commonDictList(request); | ||||
} | } | ||||
@@ -1,6 +1,5 @@ | |||||
package com.hz.pm.api.meta.helper; | package com.hz.pm.api.meta.helper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | import com.hz.pm.api.expert.entity.ExpertUserFullInfo; | ||||
import com.hz.pm.api.expert.service.IExpertUserFullInfoService; | import com.hz.pm.api.expert.service.IExpertUserFullInfoService; | ||||
import com.hz.pm.api.meta.model.ExpertRegionInfo; | import com.hz.pm.api.meta.model.ExpertRegionInfo; | ||||
@@ -21,25 +20,23 @@ public class ExpertUserInfoHelperImpl implements ExpertUserInfoHelper { | |||||
/** | /** | ||||
* 获取专家 | * 获取专家 | ||||
* | * | ||||
* @param expertUserId | |||||
* @return | |||||
* @param expertUserId \ | |||||
* @return \ | |||||
*/ | */ | ||||
@Override | @Override | ||||
public ExpertUserFullInfo getExpertBasicFullInfo(Long expertUserId) { | public ExpertUserFullInfo getExpertBasicFullInfo(Long expertUserId) { | ||||
return iExpertUserFullInfoService | |||||
.getOne(Wrappers.lambdaQuery(ExpertUserFullInfo.class).eq(ExpertUserFullInfo::getUserId, expertUserId)); | |||||
return iExpertUserFullInfoService.getByUserId(expertUserId); | |||||
} | } | ||||
/** | /** | ||||
* 获取专家层级 | * 获取专家层级 | ||||
* | * | ||||
* @param expertUserId | |||||
* @return | |||||
* @param expertUserId \ | |||||
* @return \ | |||||
*/ | */ | ||||
@Override | @Override | ||||
public ExpertRegionInfo getExpertRegionInfo(Long expertUserId) { | public ExpertRegionInfo getExpertRegionInfo(Long expertUserId) { | ||||
ExpertUserFullInfo one = getExpertBasicFullInfo(expertUserId); | ExpertUserFullInfo one = getExpertBasicFullInfo(expertUserId); | ||||
Integer regionLevel = one.getRegionLevel(); | Integer regionLevel = one.getRegionLevel(); | ||||
String regionCode = one.getRegionCode(); | String regionCode = one.getRegionCode(); | ||||
ExpertRegionInfo expertRegionInfo = new ExpertRegionInfo(); | ExpertRegionInfo expertRegionInfo = new ExpertRegionInfo(); | ||||
@@ -48,15 +45,4 @@ public class ExpertUserInfoHelperImpl implements ExpertUserInfoHelper { | |||||
return expertRegionInfo; | return expertRegionInfo; | ||||
} | } | ||||
// /** | |||||
// * 专家是否已经出库 | |||||
// */ | |||||
// public Boolean isDelivery(Long expertUserId) { | |||||
// ExpertUserFullInfo one = getExpertBasicFullInfo(expertUserId); | |||||
// if (Objects.isNull(one)) { | |||||
// return true; | |||||
// } | |||||
// return ExpertAccountStatusEnum.DELIVERY.getKey().equals(one.getExpertAccountStatus()); | |||||
// } | |||||
} | } |
@@ -10,10 +10,7 @@ import io.micrometer.core.instrument.util.StringUtils; | |||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.ArrayList; | |||||
import java.util.HashMap; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.*; | |||||
/** | /** | ||||
* @author liuxinxin | * @author liuxinxin | ||||
@@ -99,9 +96,7 @@ public class TagsCacheImpl extends AbstractTagsCache { | |||||
List<TagTreeDTO> result = new ArrayList<>(); | List<TagTreeDTO> result = new ArrayList<>(); | ||||
result.add(tagTreeDTO); | result.add(tagTreeDTO); | ||||
if (tagTreeDTO.getChildren() != null && !tagTreeDTO.getChildren().isEmpty()) { | if (tagTreeDTO.getChildren() != null && !tagTreeDTO.getChildren().isEmpty()) { | ||||
tagTreeDTO.getChildren().forEach(node -> { | |||||
result.addAll(treeToList(node)); | |||||
}); | |||||
tagTreeDTO.getChildren().forEach(node -> result.addAll(treeToList(node))); | |||||
} | } | ||||
return result; | return result; | ||||
} | } | ||||
@@ -11,17 +11,20 @@ import java.util.List; | |||||
* @author liuxinxin | * @author liuxinxin | ||||
* @date 2022/7/21 下午6:15 | * @date 2022/7/21 下午6:15 | ||||
*/ | */ | ||||
public class DictParamValidator { | |||||
public class DictionaryRequestValidator { | |||||
private DictParamValidator() { | |||||
} | |||||
public static void dictionaryRequestValidator(ReqDictionaryListPO reqDictionaryListPO) { | |||||
List<String> dictionaryTypeList = reqDictionaryListPO.getDictionaryTypeList(); | |||||
if (CollectionUtils.isNotEmpty(dictionaryTypeList)) { | |||||
for (String dictionaryType : dictionaryTypeList) { | |||||
if (!DictExpertInfoTypeEnum.contains(dictionaryType)) { | |||||
throw new BizException("Illegal dictionaryType: " + dictionaryType); | |||||
public static void dictionaryRequestValidator(ReqDictionaryListPO req) { | |||||
List<String> dictTypeList = req.getDictionaryTypeList(); | |||||
if (CollectionUtils.isNotEmpty(dictTypeList)) { | |||||
for (String dictType : dictTypeList) { | |||||
if (!DictExpertInfoTypeEnum.contains(dictType)) { | |||||
throw new BizException("无效的字典信息: " + dictType); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } |
@@ -1,21 +1,23 @@ | |||||
package com.hz.pm.api.organization.entity; | package com.hz.pm.api.organization.entity; | ||||
import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
import io.swagger.annotations.ApiModel; | |||||
import lombok.Data; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* | |||||
* | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author Liuxinxin | * @author Liuxinxin | ||||
* @since 2023-03-09 | * @since 2023-03-09 | ||||
*/ | */ | ||||
@Data | |||||
@TableName("organization_main_manage_tag") | @TableName("organization_main_manage_tag") | ||||
@ApiModel(value = "OrganizationMainManageTag对象", description = "") | |||||
@ApiModel(value = "OrganizationMainManageTag对象") | |||||
public class OrganizationMainManageTag implements Serializable { | public class OrganizationMainManageTag implements Serializable { | ||||
private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
@@ -32,58 +34,4 @@ public class OrganizationMainManageTag implements Serializable { | |||||
private String organizationCode; | private String organizationCode; | ||||
public Long getId() { | |||||
return id; | |||||
} | |||||
public void setId(Long id) { | |||||
this.id = id; | |||||
} | |||||
public LocalDateTime getCreateOn() { | |||||
return createOn; | |||||
} | |||||
public void setCreateOn(LocalDateTime createOn) { | |||||
this.createOn = createOn; | |||||
} | |||||
public LocalDateTime getUpdateOn() { | |||||
return updateOn; | |||||
} | |||||
public void setUpdateOn(LocalDateTime updateOn) { | |||||
this.updateOn = updateOn; | |||||
} | |||||
public Long getCreateBy() { | |||||
return createBy; | |||||
} | |||||
public void setCreateBy(Long createBy) { | |||||
this.createBy = createBy; | |||||
} | |||||
public Long getUpdateBy() { | |||||
return updateBy; | |||||
} | |||||
public void setUpdateBy(Long updateBy) { | |||||
this.updateBy = updateBy; | |||||
} | |||||
public String getOrganizationCode() { | |||||
return organizationCode; | |||||
} | |||||
public void setOrganizationCode(String organizationCode) { | |||||
this.organizationCode = organizationCode; | |||||
} | |||||
@Override | |||||
public String toString() { | |||||
return "OrganizationMainManageTag{" + | |||||
"id=" + id + | |||||
", createOn=" + createOn + | |||||
", updateOn=" + updateOn + | |||||
", createBy=" + createBy + | |||||
", updateBy=" + updateBy + | |||||
", organizationCode=" + organizationCode + | |||||
"}"; | |||||
} | |||||
} | } |
@@ -8,7 +8,7 @@ import com.hz.pm.api.organization.model.entity.DingEmployeeInfo; | |||||
import com.hz.pm.api.organization.service.IDingEmployeeInfoService; | import com.hz.pm.api.organization.service.IDingEmployeeInfoService; | ||||
import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
import java.util.ArrayList; | |||||
import java.util.Collections; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
@@ -26,20 +26,18 @@ public class DingEmployeeInfoServiceImpl extends ServiceImpl<DingEmployeeInfoMap | |||||
@Override | @Override | ||||
public List<String> getEmployeesOrgCodeList(List<String> employeeCodeList) { | public List<String> getEmployeesOrgCodeList(List<String> employeeCodeList) { | ||||
if (CollUtil.isEmpty(employeeCodeList)) { | if (CollUtil.isEmpty(employeeCodeList)) { | ||||
return new ArrayList<>(); | |||||
return Collections.emptyList(); | |||||
} | } | ||||
List<DingEmployeeInfo> dingEmployeeInfoList = this.list(Wrappers.lambdaQuery(DingEmployeeInfo.class).in(DingEmployeeInfo::getEmployeeCode, employeeCodeList)); | List<DingEmployeeInfo> dingEmployeeInfoList = this.list(Wrappers.lambdaQuery(DingEmployeeInfo.class).in(DingEmployeeInfo::getEmployeeCode, employeeCodeList)); | ||||
List<String> orgCodeList = dingEmployeeInfoList.stream().map(DingEmployeeInfo::getOrganizationCode).distinct().collect(Collectors.toList()); | |||||
return orgCodeList; | |||||
return dingEmployeeInfoList.stream().map(DingEmployeeInfo::getOrganizationCode).distinct().collect(Collectors.toList()); | |||||
} | } | ||||
@Override | @Override | ||||
public List<DingEmployeeInfo> getEmployeeList(List<String> employeeCodeList) { | public List<DingEmployeeInfo> getEmployeeList(List<String> employeeCodeList) { | ||||
if (CollUtil.isEmpty(employeeCodeList)) { | if (CollUtil.isEmpty(employeeCodeList)) { | ||||
return new ArrayList<>(); | |||||
return Collections.emptyList(); | |||||
} | } | ||||
List<DingEmployeeInfo> dingEmployeeInfoList = this.list(Wrappers.lambdaQuery(DingEmployeeInfo.class) | |||||
return list(Wrappers.lambdaQuery(DingEmployeeInfo.class) | |||||
.in(DingEmployeeInfo::getEmployeeCode, employeeCodeList)); | .in(DingEmployeeInfo::getEmployeeCode, employeeCodeList)); | ||||
return dingEmployeeInfoList; | |||||
} | } | ||||
} | } |
@@ -1,20 +1,19 @@ | |||||
package com.hz.pm.api.performance.controller; | package com.hz.pm.api.performance.controller; | ||||
import javax.validation.Valid; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.hz.pm.api.performance.manage.AppAppraisalManage; | import com.hz.pm.api.performance.manage.AppAppraisalManage; | ||||
import com.hz.pm.api.performance.model.vo.*; | |||||
import org.springframework.web.bind.annotation.*; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.hz.pm.api.performance.manage.ReAppraisalManage; | |||||
import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | ||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalListReq; | import com.hz.pm.api.performance.model.req.PerformanceAppraisalListReq; | ||||
import com.hz.pm.api.performance.model.vo.AppAppraisalIndexDetailVO; | |||||
import com.hz.pm.api.performance.model.vo.PerformanceAppraisalAppVO; | |||||
import com.hz.pm.api.performance.model.vo.PerformanceAppraisalVO; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.web.bind.annotation.*; | |||||
import javax.validation.Valid; | |||||
/** | /** | ||||
* ReAppraisalController | * ReAppraisalController | ||||
@@ -1,29 +1,27 @@ | |||||
package com.hz.pm.api.performance.controller; | package com.hz.pm.api.performance.controller; | ||||
import javax.servlet.http.HttpServletResponse; | |||||
import javax.validation.Valid; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.performance.manage.ReAppraisalManage; | import com.hz.pm.api.performance.manage.ReAppraisalManage; | ||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalExportReq; | |||||
import org.springframework.web.bind.annotation.*; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | ||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalExportReq; | |||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalListReq; | import com.hz.pm.api.performance.model.req.PerformanceAppraisalListReq; | ||||
import com.hz.pm.api.performance.model.vo.PerformanceAppraisalProjectVO; | import com.hz.pm.api.performance.model.vo.PerformanceAppraisalProjectVO; | ||||
import com.hz.pm.api.performance.model.vo.PerformanceAppraisalVO; | import com.hz.pm.api.performance.model.vo.PerformanceAppraisalVO; | ||||
import com.hz.pm.api.performance.model.vo.ProjectAppraisalIndexDetailVO; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import org.springframework.web.bind.annotation.*; | |||||
import javax.servlet.http.HttpServletResponse; | |||||
import javax.validation.Valid; | |||||
/** | /** | ||||
* ReAppraisalController | * ReAppraisalController | ||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @return | |||||
* @since 2023/08/10 8:54 | * @since 2023/08/10 8:54 | ||||
*/ | */ | ||||
@RestController | @RestController | ||||
@@ -43,20 +41,20 @@ public class ReAppraisalController { | |||||
@GetMapping("/group-project-list/{groupId}") | @GetMapping("/group-project-list/{groupId}") | ||||
@ApiOperation("当前复评用户所在分组复评项目列表") | @ApiOperation("当前复评用户所在分组复评项目列表") | ||||
public PageVo<PerformanceAppraisalProjectVO> groupProjectList(@PathVariable Long groupId, PerformanceAppraisalListReq req) { | public PageVo<PerformanceAppraisalProjectVO> groupProjectList(@PathVariable Long groupId, PerformanceAppraisalListReq req) { | ||||
return reAppraisalManage.groupProjectList(groupId,req); | |||||
return reAppraisalManage.groupProjectList(groupId, req); | |||||
} | } | ||||
@PostMapping("/submit-reAppraisal") | @PostMapping("/submit-reAppraisal") | ||||
@ApiOperation("提交复评") | @ApiOperation("提交复评") | ||||
@WebLog(value = "提交复评",modular = "绩效评价-人工复评") | |||||
public String submitReAppraisal(@Valid @RequestBody ProjectAppraisalDTO param){ | |||||
@WebLog(value = "提交复评", modular = "绩效评价-人工复评") | |||||
public String submitReAppraisal(@Valid @RequestBody ProjectAppraisalDTO param) { | |||||
return reAppraisalManage.submitReAppraisal(param); | return reAppraisalManage.submitReAppraisal(param); | ||||
} | } | ||||
@GetMapping("/score/export") | @GetMapping("/score/export") | ||||
@ApiOperation("复评打分导出") | @ApiOperation("复评打分导出") | ||||
@WebLog(value = "复评打分导出",modular = "绩效评价-人工复评") | |||||
public void exportScore(@Valid @ModelAttribute PerformanceAppraisalExportReq param, HttpServletResponse response){ | |||||
@WebLog(value = "复评打分导出", modular = "绩效评价-人工复评") | |||||
public void exportScore(@Valid @ModelAttribute PerformanceAppraisalExportReq param, HttpServletResponse response) { | |||||
ExcelDownUtil.downXls(response, param, reAppraisalManage::exportScore); | ExcelDownUtil.downXls(response, param, reAppraisalManage::exportScore); | ||||
} | } | ||||
@@ -1,61 +1,57 @@ | |||||
package com.hz.pm.api.performance.manage; | package com.hz.pm.api.performance.manage; | ||||
import java.io.IOException; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
import java.util.*; | |||||
import java.util.stream.Collectors; | |||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import cn.hutool.core.map.MapUtil; | import cn.hutool.core.map.MapUtil; | ||||
import cn.hutool.core.util.CharsetUtil; | import cn.hutool.core.util.CharsetUtil; | ||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import com.alibaba.excel.write.builder.ExcelWriterBuilder; | import com.alibaba.excel.write.builder.ExcelWriterBuilder; | ||||
import com.google.common.collect.Lists; | |||||
import com.hz.pm.api.common.enumeration.CommonEnum; | |||||
import com.hz.pm.api.common.util.ExcelDownUtil; | |||||
import com.hz.pm.api.performance.model.dto.*; | |||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalExportReq; | |||||
import com.hz.pm.api.performance.util.*; | |||||
import com.hz.pm.api.portrait.model.entity.ProjectTag; | |||||
import com.hz.pm.api.portrait.service.IProjectTagService; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.apache.poi.ss.formula.functions.T; | |||||
import org.springframework.stereotype.Component; | |||||
import org.springframework.transaction.annotation.Transactional; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.StrPool; | |||||
import com.google.common.collect.Lists; | |||||
import com.hz.pm.api.common.enumeration.CommonEnum; | |||||
import com.hz.pm.api.common.util.ExcelDownUtil; | |||||
import com.hz.pm.api.performance.constant.BizConst; | import com.hz.pm.api.performance.constant.BizConst; | ||||
import com.hz.pm.api.performance.enumration.AppraisalTypeEnum; | import com.hz.pm.api.performance.enumration.AppraisalTypeEnum; | ||||
import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | |||||
import com.hz.pm.api.performance.model.dto.ProjectAppraisalInfoDTO; | |||||
import com.hz.pm.api.performance.model.entity.*; | import com.hz.pm.api.performance.model.entity.*; | ||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalExportReq; | |||||
import com.hz.pm.api.performance.model.req.PerformanceAppraisalListReq; | import com.hz.pm.api.performance.model.req.PerformanceAppraisalListReq; | ||||
import com.hz.pm.api.performance.model.vo.PerformanceAppraisalProjectVO; | import com.hz.pm.api.performance.model.vo.PerformanceAppraisalProjectVO; | ||||
import com.hz.pm.api.performance.model.vo.PerformanceAppraisalVO; | import com.hz.pm.api.performance.model.vo.PerformanceAppraisalVO; | ||||
import com.hz.pm.api.performance.service.*; | import com.hz.pm.api.performance.service.*; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeEnum; | |||||
import com.hz.pm.api.performance.util.*; | |||||
import com.hz.pm.api.portrait.model.entity.ProjectTag; | |||||
import com.hz.pm.api.portrait.service.IProjectTagService; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.sys.model.entity.Role; | import com.hz.pm.api.sys.model.entity.Role; | ||||
import com.hz.pm.api.sys.service.IRoleService; | import com.hz.pm.api.sys.service.IRoleService; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.StrPool; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.stereotype.Component; | |||||
import org.springframework.transaction.annotation.Transactional; | |||||
import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
import java.io.IOException; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
import java.util.*; | |||||
import java.util.stream.Collectors; | |||||
/** | /** | ||||
* ReAppraisalManage | * ReAppraisalManage | ||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/10 8:55 | * @since 2023/08/10 8:55 | ||||
*/ | */ | ||||
@@ -73,8 +69,10 @@ public class ReAppraisalManage { | |||||
private final IPerformanceAppraisalProjectGroupService groupService; | private final IPerformanceAppraisalProjectGroupService groupService; | ||||
private final IProjectTagService projectTagService; | private final IProjectTagService projectTagService; | ||||
private final IPerformanceIndicatorProjectTemplateService indicatorProjectTemplateService; | private final IPerformanceIndicatorProjectTemplateService indicatorProjectTemplateService; | ||||
/** | /** | ||||
* 复评-评价计划列表 | * 复评-评价计划列表 | ||||
* | |||||
* @param req | * @param req | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -86,12 +84,12 @@ public class ReAppraisalManage { | |||||
List<Long> roleIdList = userRoleList.stream().map(Role::getId).collect(Collectors.toList()); | List<Long> roleIdList = userRoleList.stream().map(Role::getId).collect(Collectors.toList()); | ||||
Role role = roleService.getOne(Wrappers.lambdaQuery(Role.class) | Role role = roleService.getOne(Wrappers.lambdaQuery(Role.class) | ||||
.eq(Role::getName, BizConst.REAPPRAISAL_ROLE)); | .eq(Role::getName, BizConst.REAPPRAISAL_ROLE)); | ||||
if (Objects.isNull(role)){ | |||||
if (Objects.isNull(role)) { | |||||
throw new BizException("登录用户没有复评员角色!"); | throw new BizException("登录用户没有复评员角色!"); | ||||
} | } | ||||
// 登录用户不是复评员,不能查看复评计划列表 | // 登录用户不是复评员,不能查看复评计划列表 | ||||
if (!roleIdList.contains(role.getId())){ | |||||
if (!roleIdList.contains(role.getId())) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -100,7 +98,7 @@ public class ReAppraisalManage { | |||||
.filter(p -> Objects.nonNull(p.getSelfAppraisalScoreTime())).collect(Collectors.toList()); | .filter(p -> Objects.nonNull(p.getSelfAppraisalScoreTime())).collect(Collectors.toList()); | ||||
// 已存在的评价计划添加的评价项目都未完成单位自评 | // 已存在的评价计划添加的评价项目都未完成单位自评 | ||||
if(CollUtil.isEmpty(paps)){ | |||||
if (CollUtil.isEmpty(paps)) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
Set<Long> paIds = paps.stream().map(PerformanceAppraisalProject::getAppraisalId).collect(Collectors.toSet()); | Set<Long> paIds = paps.stream().map(PerformanceAppraisalProject::getAppraisalId).collect(Collectors.toSet()); | ||||
@@ -114,7 +112,7 @@ public class ReAppraisalManage { | |||||
List<String> empCodeList = Lists.newArrayList(); | List<String> empCodeList = Lists.newArrayList(); | ||||
if (reAppraisalUsers.contains(StrPool.COMMA)) { | if (reAppraisalUsers.contains(StrPool.COMMA)) { | ||||
empCodeList.addAll(Arrays.asList(reAppraisalUsers.split(StrPool.COMMA))); | empCodeList.addAll(Arrays.asList(reAppraisalUsers.split(StrPool.COMMA))); | ||||
}else { | |||||
} else { | |||||
empCodeList.add(reAppraisalUsers); | empCodeList.add(reAppraisalUsers); | ||||
} | } | ||||
if (empCodeList.contains(employeeCode)) { | if (empCodeList.contains(employeeCode)) { | ||||
@@ -123,7 +121,7 @@ public class ReAppraisalManage { | |||||
return false; | return false; | ||||
}).collect(Collectors.toList()); | }).collect(Collectors.toList()); | ||||
// 当前登录复评员用户,没有参加评价计划 | // 当前登录复评员用户,没有参加评价计划 | ||||
if (CollUtil.isEmpty(groupList)){ | |||||
if (CollUtil.isEmpty(groupList)) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
// 获取分组所在的评价计划ID | // 获取分组所在的评价计划ID | ||||
@@ -133,9 +131,9 @@ public class ReAppraisalManage { | |||||
// 获取复评计划列表 | // 获取复评计划列表 | ||||
Page<PerformanceAppraisal> page = req.page(); | Page<PerformanceAppraisal> page = req.page(); | ||||
LambdaQueryWrapper<PerformanceAppraisal> wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class) | LambdaQueryWrapper<PerformanceAppraisal> wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class) | ||||
.in(PerformanceAppraisal::getId,appraisalIds) | |||||
.in(PerformanceAppraisal::getId, appraisalIds) | |||||
.orderByDesc(PerformanceAppraisal::getUpdateOn); | .orderByDesc(PerformanceAppraisal::getUpdateOn); | ||||
performanceAppraisalService.page(page,wrapper); | |||||
performanceAppraisalService.page(page, wrapper); | |||||
List<PerformanceAppraisalVO> res = page.getRecords().stream().map(p -> { | List<PerformanceAppraisalVO> res = page.getRecords().stream().map(p -> { | ||||
PerformanceAppraisalVO vo = BeanUtil.copyProperties(p, PerformanceAppraisalVO.class); | PerformanceAppraisalVO vo = BeanUtil.copyProperties(p, PerformanceAppraisalVO.class); | ||||
@@ -146,7 +144,7 @@ public class ReAppraisalManage { | |||||
} | } | ||||
return vo; | return vo; | ||||
}).collect(Collectors.toList()); | }).collect(Collectors.toList()); | ||||
return PageVo.of(res,page.getTotal()); | |||||
return PageVo.of(res, page.getTotal()); | |||||
} | } | ||||
/** | /** | ||||
@@ -163,10 +161,10 @@ public class ReAppraisalManage { | |||||
// 如果没有相关的打分信息,说明是当前登录复评用户是首次复评 | // 如果没有相关的打分信息,说明是当前登录复评用户是首次复评 | ||||
List<PerformanceAppraisalScoreInfo> scoreInfos = performanceAppraisalScoreInfoService.list(Wrappers.lambdaQuery(PerformanceAppraisalScoreInfo.class) | List<PerformanceAppraisalScoreInfo> scoreInfos = performanceAppraisalScoreInfoService.list(Wrappers.lambdaQuery(PerformanceAppraisalScoreInfo.class) | ||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalType, AppraisalTypeEnum.RE_APPRAISAL.getCode()) | .eq(PerformanceAppraisalScoreInfo::getAppraisalType, AppraisalTypeEnum.RE_APPRAISAL.getCode()) | ||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalProjectCode,projectCode) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalId,appraisalId) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalProjectCode, projectCode) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalId, appraisalId) | |||||
.eq(PerformanceAppraisalScoreInfo::getAppraisalEmployeeCode, employeeCode)); | .eq(PerformanceAppraisalScoreInfo::getAppraisalEmployeeCode, employeeCode)); | ||||
if (CollUtil.isEmpty(scoreInfos)){ | |||||
if (CollUtil.isEmpty(scoreInfos)) { | |||||
return true; | return true; | ||||
} | } | ||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
@@ -179,7 +177,7 @@ public class ReAppraisalManage { | |||||
// 获取分组内的项目信息 | // 获取分组内的项目信息 | ||||
PerformanceAppraisalProjectGroup projectGroup = groupService.getById(groupId); | PerformanceAppraisalProjectGroup projectGroup = groupService.getById(groupId); | ||||
if (Objects.isNull(projectGroup)){ | |||||
if (Objects.isNull(projectGroup)) { | |||||
throw new BizException("当前复评用户所在分组不存在!"); | throw new BizException("当前复评用户所在分组不存在!"); | ||||
} | } | ||||
String projectCodes = projectGroup.getProjectCodes(); | String projectCodes = projectGroup.getProjectCodes(); | ||||
@@ -190,10 +188,10 @@ public class ReAppraisalManage { | |||||
// 筛选出分组内已完成单位自评、需要复评的评价项目信息 | // 筛选出分组内已完成单位自评、需要复评的评价项目信息 | ||||
List<PerformanceAppraisalProject> appraisalProjects = performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | List<PerformanceAppraisalProject> appraisalProjects = performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | ||||
.in(PerformanceAppraisalProject::getProjectCode, projectCodeList) | .in(PerformanceAppraisalProject::getProjectCode, projectCodeList) | ||||
.eq(PerformanceAppraisalProject::getIsReAppraisal,Boolean.TRUE) | |||||
.eq(PerformanceAppraisalProject::getIsReAppraisal, Boolean.TRUE) | |||||
.eq(PerformanceAppraisalProject::getIsCompleteSelfAppraisal, Boolean.TRUE)); | .eq(PerformanceAppraisalProject::getIsCompleteSelfAppraisal, Boolean.TRUE)); | ||||
// 分组内已完成单位自评的项目信息不存在 | // 分组内已完成单位自评的项目信息不存在 | ||||
if (CollUtil.isEmpty(appraisalProjects)){ | |||||
if (CollUtil.isEmpty(appraisalProjects)) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
List<String> proCodeList = appraisalProjects.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toList()); | List<String> proCodeList = appraisalProjects.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toList()); | ||||
@@ -203,11 +201,11 @@ public class ReAppraisalManage { | |||||
LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class) | LambdaQueryWrapper<Project> wrapper = Wrappers.lambdaQuery(Project.class) | ||||
.in(Project::getProjectCode, proCodeList) | .in(Project::getProjectCode, proCodeList) | ||||
.eq(Project::getNewest, Boolean.TRUE) | .eq(Project::getNewest, Boolean.TRUE) | ||||
.like(StringUtils.isNotBlank(req.getProjectName()),Project::getProjectName,req.getProjectName()); | |||||
projectService.page(page,wrapper); | |||||
.like(StringUtils.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()); | |||||
projectService.page(page, wrapper); | |||||
// 分组内项目信息不存在 | // 分组内项目信息不存在 | ||||
if (CollUtil.isEmpty(page.getRecords())){ | |||||
if (CollUtil.isEmpty(page.getRecords())) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -217,8 +215,8 @@ public class ReAppraisalManage { | |||||
BeanUtil.copyProperties(appraisalProject, vo); | BeanUtil.copyProperties(appraisalProject, vo); | ||||
vo.setProjectId(appraisalProject.getProjectId()); | vo.setProjectId(appraisalProject.getProjectId()); | ||||
vo.setProjectTypeName(ProjectTypeNewEnum.getDesc(p.getProjectType())); | vo.setProjectTypeName(ProjectTypeNewEnum.getDesc(p.getProjectType())); | ||||
vo.setCanReAppraisal(checkCanReAppraisal(employeeCode,appraisalProject.getProjectCode(),appraisalId)); | |||||
if (Boolean.TRUE.equals(appraisalProject.getIsCompleteReAppraisal())){ | |||||
vo.setCanReAppraisal(checkCanReAppraisal(employeeCode, appraisalProject.getProjectCode(), appraisalId)); | |||||
if (Boolean.TRUE.equals(appraisalProject.getIsCompleteReAppraisal())) { | |||||
// 完成复评的项目可以进行核查 | // 完成复评的项目可以进行核查 | ||||
vo.setCanVerify(Boolean.TRUE); | vo.setCanVerify(Boolean.TRUE); | ||||
} | } | ||||
@@ -226,7 +224,7 @@ public class ReAppraisalManage { | |||||
return vo; | return vo; | ||||
}) | }) | ||||
.collect(Collectors.toList()); | .collect(Collectors.toList()); | ||||
return PageVo.of(res,page.getTotal()); | |||||
return PageVo.of(res, page.getTotal()); | |||||
} | } | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
@@ -245,7 +243,7 @@ public class ReAppraisalManage { | |||||
PerformanceAppraisalProject appraisalProject = performanceAppraisalProjectService.getOne(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | PerformanceAppraisalProject appraisalProject = performanceAppraisalProjectService.getOne(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | ||||
.eq(PerformanceAppraisalProject::getAppraisalId, appraisalId) | .eq(PerformanceAppraisalProject::getAppraisalId, appraisalId) | ||||
.eq(PerformanceAppraisalProject::getProjectId, appraisalProjectId) | .eq(PerformanceAppraisalProject::getProjectId, appraisalProjectId) | ||||
.eq(PerformanceAppraisalProject::getProjectCode,appraisalProjectCode)); | |||||
.eq(PerformanceAppraisalProject::getProjectCode, appraisalProjectCode)); | |||||
List<Long> ids = appraisalInfoList.stream() | List<Long> ids = appraisalInfoList.stream() | ||||
.map(ProjectAppraisalInfoDTO::getProjectTemplateDetailId) | .map(ProjectAppraisalInfoDTO::getProjectTemplateDetailId) | ||||
@@ -253,7 +251,7 @@ public class ReAppraisalManage { | |||||
// 查出项目模版详情信息 | // 查出项目模版详情信息 | ||||
List<PerformanceIndicatorProjectTemplateDetail> detailList = indicatorProjectTemplateDetailService.list(Wrappers.lambdaQuery(PerformanceIndicatorProjectTemplateDetail.class) | List<PerformanceIndicatorProjectTemplateDetail> detailList = indicatorProjectTemplateDetailService.list(Wrappers.lambdaQuery(PerformanceIndicatorProjectTemplateDetail.class) | ||||
.in(PerformanceIndicatorProjectTemplateDetail::getId, ids)); | .in(PerformanceIndicatorProjectTemplateDetail::getId, ids)); | ||||
if (CollUtil.isEmpty(detailList)){ | |||||
if (CollUtil.isEmpty(detailList)) { | |||||
throw new BizException("评价指标不存在!"); | throw new BizException("评价指标不存在!"); | ||||
} | } | ||||
Map<Long, PerformanceIndicatorProjectTemplateDetail> detailMap = detailList.stream().collect(Collectors.toMap(PerformanceIndicatorProjectTemplateDetail::getId, d -> d)); | Map<Long, PerformanceIndicatorProjectTemplateDetail> detailMap = detailList.stream().collect(Collectors.toMap(PerformanceIndicatorProjectTemplateDetail::getId, d -> d)); | ||||
@@ -261,7 +259,7 @@ public class ReAppraisalManage { | |||||
PerformanceIndicatorProjectTemplateDetail templateDetail = detailMap.get(a.getProjectTemplateDetailId()); | PerformanceIndicatorProjectTemplateDetail templateDetail = detailMap.get(a.getProjectTemplateDetailId()); | ||||
BigDecimal score = a.getScore(); | BigDecimal score = a.getScore(); | ||||
BigDecimal indexScore = templateDetail.getIndexScore(); | BigDecimal indexScore = templateDetail.getIndexScore(); | ||||
if (score.compareTo(indexScore) > 0 || score.compareTo(BigDecimal.ZERO) < 0){ | |||||
if (score.compareTo(indexScore) > 0 || score.compareTo(BigDecimal.ZERO) < 0) { | |||||
throw new BizException("复评得分必须大于等于0且小于等于指标分值!"); | throw new BizException("复评得分必须大于等于0且小于等于指标分值!"); | ||||
} | } | ||||
// 保存复评分数信息 | // 保存复评分数信息 | ||||
@@ -282,7 +280,7 @@ public class ReAppraisalManage { | |||||
return scoreInfo; | return scoreInfo; | ||||
}).collect(Collectors.toList()); | }).collect(Collectors.toList()); | ||||
if (performanceAppraisalScoreInfoService.saveBatch(scoreInfos)){ | |||||
if (performanceAppraisalScoreInfoService.saveBatch(scoreInfos)) { | |||||
// 计算复评总分并保存 | // 计算复评总分并保存 | ||||
BigDecimal reAppraisalTotalScore = appraisalInfoList.stream() | BigDecimal reAppraisalTotalScore = appraisalInfoList.stream() | ||||
.map(ProjectAppraisalInfoDTO::getScore) | .map(ProjectAppraisalInfoDTO::getScore) | ||||
@@ -290,11 +288,11 @@ public class ReAppraisalManage { | |||||
.reduce(BigDecimal.ZERO, BigDecimal::add); | .reduce(BigDecimal.ZERO, BigDecimal::add); | ||||
BigDecimal lastReappraisalTotalScore; | BigDecimal lastReappraisalTotalScore; | ||||
// 判断项目所在分组内其他复评人员是否已经打分 | // 判断项目所在分组内其他复评人员是否已经打分 | ||||
if (Objects.nonNull(appraisalProject.getReAppraisalTotalScore())){ | |||||
if (Objects.nonNull(appraisalProject.getReAppraisalTotalScore())) { | |||||
// 已经进行了复评,计算两个分值的平均分 | // 已经进行了复评,计算两个分值的平均分 | ||||
BigDecimal add = reAppraisalTotalScore.add(appraisalProject.getReAppraisalTotalScore()); | BigDecimal add = reAppraisalTotalScore.add(appraisalProject.getReAppraisalTotalScore()); | ||||
lastReappraisalTotalScore = add.divide(BigDecimal.valueOf(2)); | lastReappraisalTotalScore = add.divide(BigDecimal.valueOf(2)); | ||||
}else { | |||||
} else { | |||||
// 还没有进行过复评 | // 还没有进行过复评 | ||||
lastReappraisalTotalScore = reAppraisalTotalScore; | lastReappraisalTotalScore = reAppraisalTotalScore; | ||||
} | } | ||||
@@ -355,12 +353,12 @@ public class ReAppraisalManage { | |||||
String projectTagIds = String.join(StrPool.COMMA, strIdList); | String projectTagIds = String.join(StrPool.COMMA, strIdList); | ||||
Integer amountRange = null; | Integer amountRange = null; | ||||
if (approvalAmount.compareTo(BigDecimal.valueOf(BizConst.FIVE_MILLION)) < 0){ | |||||
if (approvalAmount.compareTo(BigDecimal.valueOf(BizConst.FIVE_MILLION)) < 0) { | |||||
amountRange = BizConst.AMOUNT_RANGE_ONE; | amountRange = BizConst.AMOUNT_RANGE_ONE; | ||||
} else if (approvalAmount.compareTo(BigDecimal.valueOf(BizConst.FIVE_MILLION)) >= 0 && | } else if (approvalAmount.compareTo(BigDecimal.valueOf(BizConst.FIVE_MILLION)) >= 0 && | ||||
approvalAmount.compareTo(BigDecimal.valueOf(BizConst.TWENTY_MILLION)) < 0) { | approvalAmount.compareTo(BigDecimal.valueOf(BizConst.TWENTY_MILLION)) < 0) { | ||||
amountRange = BizConst.AMOUNT_RANGE_TWO; | amountRange = BizConst.AMOUNT_RANGE_TWO; | ||||
}else if (approvalAmount.compareTo(BigDecimal.valueOf(BizConst.TWENTY_MILLION)) >= 0){ | |||||
} else if (approvalAmount.compareTo(BigDecimal.valueOf(BizConst.TWENTY_MILLION)) >= 0) { | |||||
amountRange = BizConst.AMOUNT_RANGE_THREE; | amountRange = BizConst.AMOUNT_RANGE_THREE; | ||||
} | } | ||||
LambdaQueryWrapper<PerformanceIndicatorProjectTemplate> wrapper = Wrappers.lambdaQuery(PerformanceIndicatorProjectTemplate.class) | LambdaQueryWrapper<PerformanceIndicatorProjectTemplate> wrapper = Wrappers.lambdaQuery(PerformanceIndicatorProjectTemplate.class) | ||||
@@ -368,12 +366,12 @@ public class ReAppraisalManage { | |||||
.eq(PerformanceIndicatorProjectTemplate::getProjectType, projectType) | .eq(PerformanceIndicatorProjectTemplate::getProjectType, projectType) | ||||
.eq(PerformanceIndicatorProjectTemplate::getProjectYear, projectYear) | .eq(PerformanceIndicatorProjectTemplate::getProjectYear, projectYear) | ||||
.eq(PerformanceIndicatorProjectTemplate::getAmountRange, amountRange) | .eq(PerformanceIndicatorProjectTemplate::getAmountRange, amountRange) | ||||
.eq(PerformanceIndicatorProjectTemplate::getProjectTagIds,projectTagIds) | |||||
.eq(PerformanceIndicatorProjectTemplate::getProjectTagIds, projectTagIds) | |||||
.eq(PerformanceIndicatorProjectTemplate::getStatus, CommonEnum.YES.getCode()) | .eq(PerformanceIndicatorProjectTemplate::getStatus, CommonEnum.YES.getCode()) | ||||
.orderByDesc(PerformanceIndicatorProjectTemplate::getUpdateOn); | .orderByDesc(PerformanceIndicatorProjectTemplate::getUpdateOn); | ||||
List<PerformanceIndicatorProjectTemplate> templates = indicatorProjectTemplateService.list(wrapper); | List<PerformanceIndicatorProjectTemplate> templates = indicatorProjectTemplateService.list(wrapper); | ||||
VUtils.isTrue(CollUtil.isEmpty(templates)).throwMessage("该项目匹配不到指标模板,请返回上一页或者刷新重试。"); | VUtils.isTrue(CollUtil.isEmpty(templates)).throwMessage("该项目匹配不到指标模板,请返回上一页或者刷新重试。"); | ||||
if (templates.size() > 1){ | |||||
if (templates.size() > 1) { | |||||
throw new BizException("当前项目匹配到多个模板,请返回模板库检查模板配置!"); | throw new BizException("当前项目匹配到多个模板,请返回模板库检查模板配置!"); | ||||
} | } | ||||
PerformanceIndicatorProjectTemplate projectTemplate = templates.get(0); | PerformanceIndicatorProjectTemplate projectTemplate = templates.get(0); | ||||
@@ -416,38 +414,38 @@ public class ReAppraisalManage { | |||||
if (Objects.nonNull(secondTemplateDetail)) { | if (Objects.nonNull(secondTemplateDetail)) { | ||||
// 一级指标名称 | // 一级指标名称 | ||||
Long firstId = secondTemplateDetail.getParentId(); | Long firstId = secondTemplateDetail.getParentId(); | ||||
if (Objects.nonNull(firstId)){ | |||||
if (Objects.nonNull(firstId)) { | |||||
PerformanceIndicatorProjectTemplateDetail firstTemplateDetail = templateDetailMap.get(firstId); | PerformanceIndicatorProjectTemplateDetail firstTemplateDetail = templateDetailMap.get(firstId); | ||||
if (Objects.nonNull(firstTemplateDetail)) { | if (Objects.nonNull(firstTemplateDetail)) { | ||||
scoreMap.put(BizConst.FIRST_INDEX_NAME,firstTemplateDetail.getName()); | |||||
scoreMap.put(BizConst.SECOND_INDEX_NAME,secondTemplateDetail.getName()); | |||||
scoreMap.put(BizConst.FIRST_INDEX_NAME, firstTemplateDetail.getName()); | |||||
scoreMap.put(BizConst.SECOND_INDEX_NAME, secondTemplateDetail.getName()); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
scoreMap.put(BizConst.THIRD_INDEX_NAME,thirdTemplateDetail.getName()); | |||||
scoreMap.put(BizConst.INDEX_SCORE,thirdTemplateDetail.getIndexScore()); | |||||
scoreMap.put(BizConst.INDEX_DETAIL,thirdTemplateDetail.getIndexDetail()); | |||||
scoreMap.put(BizConst.GRADE_DETAIL,thirdTemplateDetail.getGradeDetail()); | |||||
scoreMap.put(BizConst.SUPPORT_MATERIAL,thirdTemplateDetail.getSupportMaterial()); | |||||
scoreMap.put(BizConst.THIRD_INDEX_NAME, thirdTemplateDetail.getName()); | |||||
scoreMap.put(BizConst.INDEX_SCORE, thirdTemplateDetail.getIndexScore()); | |||||
scoreMap.put(BizConst.INDEX_DETAIL, thirdTemplateDetail.getIndexDetail()); | |||||
scoreMap.put(BizConst.GRADE_DETAIL, thirdTemplateDetail.getGradeDetail()); | |||||
scoreMap.put(BizConst.SUPPORT_MATERIAL, thirdTemplateDetail.getSupportMaterial()); | |||||
PerformanceAppraisalScoreInfo appraisalScoreInfo = scoreInfoMap.get(thirdTemplateDetail.getId()); | PerformanceAppraisalScoreInfo appraisalScoreInfo = scoreInfoMap.get(thirdTemplateDetail.getId()); | ||||
// 构建自评和复评打分信息 | // 构建自评和复评打分信息 | ||||
if (AppraisalTypeEnum.SELF_APPRAISAL.getCode().equals(appraisalScoreInfo.getAppraisalType())){ | |||||
scoreMap.put(BizConst.SELF_APPRAISAL_BASIS,appraisalScoreInfo.getAppraisalBasis()); | |||||
scoreMap.put(BizConst.SELF_APPRAISAL_SCORE,appraisalScoreInfo.getAppraisalScore()); | |||||
if (AppraisalTypeEnum.SELF_APPRAISAL.getCode().equals(appraisalScoreInfo.getAppraisalType())) { | |||||
scoreMap.put(BizConst.SELF_APPRAISAL_BASIS, appraisalScoreInfo.getAppraisalBasis()); | |||||
scoreMap.put(BizConst.SELF_APPRAISAL_SCORE, appraisalScoreInfo.getAppraisalScore()); | |||||
} else if (AppraisalTypeEnum.RE_APPRAISAL.getCode().equals(appraisalScoreInfo.getAppraisalType())) { | } else if (AppraisalTypeEnum.RE_APPRAISAL.getCode().equals(appraisalScoreInfo.getAppraisalType())) { | ||||
scoreMap.put(appraisalScoreInfo.getAppraisalEmployeeName() + BizConst.RE_APPRAISAL_BASIS, appraisalScoreInfo.getAppraisalBasis()); | scoreMap.put(appraisalScoreInfo.getAppraisalEmployeeName() + BizConst.RE_APPRAISAL_BASIS, appraisalScoreInfo.getAppraisalBasis()); | ||||
scoreMap.put(appraisalScoreInfo.getAppraisalEmployeeName() + BizConst.RE_APPRAISAL_SCORE, appraisalScoreInfo.getAppraisalScore()); | scoreMap.put(appraisalScoreInfo.getAppraisalEmployeeName() + BizConst.RE_APPRAISAL_SCORE, appraisalScoreInfo.getAppraisalScore()); | ||||
} | } | ||||
if (Boolean.TRUE.equals(thirdTemplateDetail.getIsAdditional())) { | if (Boolean.TRUE.equals(thirdTemplateDetail.getIsAdditional())) { | ||||
scoreMap.put(BizConst.IS_ADDITIONAL,CommonEnum.YES.getDesc()); | |||||
scoreMap.put(BizConst.IS_ADDITIONAL, CommonEnum.YES.getDesc()); | |||||
} else if (Boolean.FALSE.equals(thirdTemplateDetail.getIsAdditional())) { | } else if (Boolean.FALSE.equals(thirdTemplateDetail.getIsAdditional())) { | ||||
scoreMap.put(BizConst.IS_ADDITIONAL,CommonEnum.NO.getDesc()); | |||||
scoreMap.put(BizConst.IS_ADDITIONAL, CommonEnum.NO.getDesc()); | |||||
} | } | ||||
if (Boolean.FALSE.equals(thirdTemplateDetail.getIsAdditional())) { | if (Boolean.FALSE.equals(thirdTemplateDetail.getIsAdditional())) { | ||||
exportDataList.add(scoreMap); | exportDataList.add(scoreMap); | ||||
}else { | |||||
} else { | |||||
exportAdditionalDataList.add(scoreMap); | exportAdditionalDataList.add(scoreMap); | ||||
} | } | ||||
} | } | ||||
@@ -459,20 +457,20 @@ public class ReAppraisalManage { | |||||
int mergeRowIndex = 2; | int mergeRowIndex = 2; | ||||
List<ExcelHead> headList = Lists.newArrayList(); | List<ExcelHead> headList = Lists.newArrayList(); | ||||
headList.add(new ExcelHead(BizConst.FIRST_INDEX_NAME,BizConst.FIRST_INDEX_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SECOND_INDEX_NAME,BizConst.SECOND_INDEX_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.THIRD_INDEX_NAME,BizConst.THIRD_INDEX_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.INDEX_SCORE,BizConst.INDEX_SCORE_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.INDEX_DETAIL,BizConst.INDEX_DETAIL_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.GRADE_DETAIL,BizConst.GRADE_DETAIL_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SUPPORT_MATERIAL,BizConst.SUPPORT_MATERIAL_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SELF_APPRAISAL_BASIS,BizConst.SELF_APPRAISAL_BASIS_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SELF_APPRAISAL_SCORE,BizConst.SELF_APPRAISAL_SCORE_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.FIRST_INDEX_NAME, BizConst.FIRST_INDEX_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SECOND_INDEX_NAME, BizConst.SECOND_INDEX_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.THIRD_INDEX_NAME, BizConst.THIRD_INDEX_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.INDEX_SCORE, BizConst.INDEX_SCORE_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.INDEX_DETAIL, BizConst.INDEX_DETAIL_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.GRADE_DETAIL, BizConst.GRADE_DETAIL_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SUPPORT_MATERIAL, BizConst.SUPPORT_MATERIAL_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SELF_APPRAISAL_BASIS, BizConst.SELF_APPRAISAL_BASIS_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.SELF_APPRAISAL_SCORE, BizConst.SELF_APPRAISAL_SCORE_TITLE, StrPool.EMPTY)); | |||||
for (String reUser : reUserList) { | for (String reUser : reUserList) { | ||||
headList.add(new ExcelHead(reUser + BizConst.RE_APPRAISAL_BASIS,BizConst.RE_APPRAISAL_BASIS_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(reUser + BizConst.RE_APPRAISAL_SCORE,BizConst.RE_APPRAISAL_SCORE_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(reUser + BizConst.RE_APPRAISAL_BASIS, BizConst.RE_APPRAISAL_BASIS_TITLE, StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(reUser + BizConst.RE_APPRAISAL_SCORE, BizConst.RE_APPRAISAL_SCORE_TITLE, StrPool.EMPTY)); | |||||
} | } | ||||
headList.add(new ExcelHead(BizConst.IS_ADDITIONAL,BizConst.IS_ADDITIONAL_TITLE,StrPool.EMPTY)); | |||||
headList.add(new ExcelHead(BizConst.IS_ADDITIONAL, BizConst.IS_ADDITIONAL_TITLE, StrPool.EMPTY)); | |||||
// 数据导出处理函数 | // 数据导出处理函数 | ||||
try { | try { | ||||
@@ -482,9 +480,9 @@ public class ReAppraisalManage { | |||||
writerBuilder.file(response.getOutputStream()); | writerBuilder.file(response.getOutputStream()); | ||||
writerBuilder.autoCloseStream(true); | writerBuilder.autoCloseStream(true); | ||||
writerBuilder.registerWriteHandler(new ExcelSheetVerticalCellStyleStrategy()); | writerBuilder.registerWriteHandler(new ExcelSheetVerticalCellStyleStrategy()); | ||||
writerBuilder.registerWriteHandler(new MultiColumnMergeStrategy(exportDataList.size(),0,1)); | |||||
writerBuilder.registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex,mergeColumnIndex)); | |||||
writerBuilder.head(ExcelUtils.getHead(reUserList,Lists.newArrayList())) | |||||
writerBuilder.registerWriteHandler(new MultiColumnMergeStrategy(exportDataList.size(), 0, 1)); | |||||
writerBuilder.registerWriteHandler(new ExcelFillCellMergeStrategy(mergeRowIndex, mergeColumnIndex)); | |||||
writerBuilder.head(ExcelUtils.getHead(reUserList, Lists.newArrayList())) | |||||
.sheet(fileName) | .sheet(fileName) | ||||
.doWrite(ExcelUtils.convertData(headList, exportDataList)); | .doWrite(ExcelUtils.convertData(headList, exportDataList)); | ||||
} catch (IOException e) { | } catch (IOException e) { | ||||
@@ -1,24 +1,10 @@ | |||||
package com.hz.pm.api.performance.manage; | package com.hz.pm.api.performance.manage; | ||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
import java.util.Set; | |||||
import java.util.stream.Collectors; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.beans.BeanUtils; | |||||
import org.springframework.stereotype.Component; | |||||
import org.springframework.transaction.annotation.Transactional; | |||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.hz.pm.api.common.helper.UserInfoHelper; | import com.hz.pm.api.common.helper.UserInfoHelper; | ||||
import com.hz.pm.api.performance.enumration.RectifyStatusEnum; | import com.hz.pm.api.performance.enumration.RectifyStatusEnum; | ||||
import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | import com.hz.pm.api.performance.model.dto.ProjectAppraisalDTO; | ||||
@@ -31,7 +17,7 @@ import com.hz.pm.api.performance.model.vo.RectifyDetailVO; | |||||
import com.hz.pm.api.performance.service.IPerformanceAppraisalProjectService; | import com.hz.pm.api.performance.service.IPerformanceAppraisalProjectService; | ||||
import com.hz.pm.api.performance.service.IPerformanceAppraisalService; | import com.hz.pm.api.performance.service.IPerformanceAppraisalService; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeEnum; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.sys.model.entity.Role; | import com.hz.pm.api.sys.model.entity.Role; | ||||
@@ -40,16 +26,26 @@ import com.hz.pm.api.user.entity.enumeration.RoleEnum; | |||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.beans.BeanUtils; | |||||
import org.springframework.stereotype.Component; | |||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
import java.util.Set; | |||||
import java.util.stream.Collectors; | |||||
/** | /** | ||||
* RectifyManage | * RectifyManage | ||||
* | |||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/12 17:36 | * @since 2023/08/12 17:36 | ||||
*/ | */ | ||||
@@ -66,7 +62,7 @@ public class RectifyManage { | |||||
/** | /** | ||||
* 绩效列表 | * 绩效列表 | ||||
* | |||||
* | |||||
* @param req | * @param req | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -79,7 +75,7 @@ public class RectifyManage { | |||||
List<Role> userRoleList = user.getUserRoleList(); | List<Role> userRoleList = user.getUserRoleList(); | ||||
List<Long> roleIdList = userRoleList.stream().map(Role::getId).collect(Collectors.toList()); | List<Long> roleIdList = userRoleList.stream().map(Role::getId).collect(Collectors.toList()); | ||||
Role role = | Role role = | ||||
roleService.getOne(Wrappers.lambdaQuery(Role.class).eq(Role::getName, RoleEnum.COMPANY_MANAGER.getDesc())); | |||||
roleService.getOne(Wrappers.lambdaQuery(Role.class).eq(Role::getName, RoleEnum.COMPANY_MANAGER.getDesc())); | |||||
if (Objects.isNull(role)) { | if (Objects.isNull(role)) { | ||||
throw new BizException("登录用户没有单位管理员角色!"); | throw new BizException("登录用户没有单位管理员角色!"); | ||||
} | } | ||||
@@ -91,7 +87,7 @@ public class RectifyManage { | |||||
// 获取登录用户所在单位的所有已终验项目信息 | // 获取登录用户所在单位的所有已终验项目信息 | ||||
List<Project> projectLists = projectService.list(Wrappers.lambdaQuery(Project.class) | List<Project> projectLists = projectService.list(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getStatus, ProjectStatusEnum.ACCEPTED.getCode()).eq(Project::getBuildOrgCode, empPosUnitCode)); | |||||
.eq(Project::getStatus, ProjectStatusEnum.ACCEPTED.getCode()).eq(Project::getBuildOrgCode, empPosUnitCode)); | |||||
if (CollUtil.isEmpty(projectLists)) { | if (CollUtil.isEmpty(projectLists)) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
@@ -99,11 +95,11 @@ public class RectifyManage { | |||||
List<Long> projectIds = projectLists.stream().map(Project::getId).collect(Collectors.toList()); | List<Long> projectIds = projectLists.stream().map(Project::getId).collect(Collectors.toList()); | ||||
// 获取添加过该单位项目的所有评价计划信息,且评价计划内包含有需要整改项目 | // 获取添加过该单位项目的所有评价计划信息,且评价计划内包含有需要整改项目 | ||||
List<PerformanceAppraisalProject> paps = performanceAppraisalProjectService.list(Wrappers | List<PerformanceAppraisalProject> paps = performanceAppraisalProjectService.list(Wrappers | ||||
.lambdaQuery(PerformanceAppraisalProject.class).in(PerformanceAppraisalProject::getProjectId, projectIds) | |||||
.eq(PerformanceAppraisalProject::getIsRectify, Boolean.TRUE)); | |||||
.lambdaQuery(PerformanceAppraisalProject.class).in(PerformanceAppraisalProject::getProjectId, projectIds) | |||||
.eq(PerformanceAppraisalProject::getIsRectify, Boolean.TRUE)); | |||||
// 按评价计划分组 | // 按评价计划分组 | ||||
Map<Long, List<PerformanceAppraisalProject>> papsMap = | Map<Long, List<PerformanceAppraisalProject>> papsMap = | ||||
paps.stream().collect(Collectors.groupingBy(PerformanceAppraisalProject::getAppraisalId)); | |||||
paps.stream().collect(Collectors.groupingBy(PerformanceAppraisalProject::getAppraisalId)); | |||||
if (CollUtil.isEmpty(paps)) { | if (CollUtil.isEmpty(paps)) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -111,7 +107,7 @@ public class RectifyManage { | |||||
// 获取评价计划列表 | // 获取评价计划列表 | ||||
Page<PerformanceAppraisal> page = req.page(); | Page<PerformanceAppraisal> page = req.page(); | ||||
LambdaQueryWrapper<PerformanceAppraisal> wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class) | LambdaQueryWrapper<PerformanceAppraisal> wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class) | ||||
.in(PerformanceAppraisal::getId, paIds).orderByDesc(PerformanceAppraisal::getUpdateOn); | |||||
.in(PerformanceAppraisal::getId, paIds).orderByDesc(PerformanceAppraisal::getUpdateOn); | |||||
performanceAppraisalService.page(page, wrapper); | performanceAppraisalService.page(page, wrapper); | ||||
if (CollUtil.isEmpty(page.getRecords())) { | if (CollUtil.isEmpty(page.getRecords())) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
@@ -122,16 +118,16 @@ public class RectifyManage { | |||||
// 统计评价计划待整改项目数量(整改状态为:整改情况待提交、整改核查不通过) | // 统计评价计划待整改项目数量(整改状态为:整改情况待提交、整改核查不通过) | ||||
List<PerformanceAppraisalProject> projects = papsMap.get(p.getId()); | List<PerformanceAppraisalProject> projects = papsMap.get(p.getId()); | ||||
List<PerformanceAppraisalProject> unRectifyProjects = projects.stream() | List<PerformanceAppraisalProject> unRectifyProjects = projects.stream() | ||||
.filter(d -> RectifyStatusEnum.TO_BE_SUBMITTED.getCode().equals(d.getRectifyStatus()) | |||||
|| RectifyStatusEnum.NOT_APPROVED.getCode().equals(d.getRectifyStatus())) | |||||
.collect(Collectors.toList()); | |||||
.filter(d -> RectifyStatusEnum.TO_BE_SUBMITTED.getCode().equals(d.getRectifyStatus()) | |||||
|| RectifyStatusEnum.NOT_APPROVED.getCode().equals(d.getRectifyStatus())) | |||||
.collect(Collectors.toList()); | |||||
vo.setUnRectifyNumber(unRectifyProjects.size()); | vo.setUnRectifyNumber(unRectifyProjects.size()); | ||||
// 统计评价计划已整改项目数量(整改状态为:整改待审核、整改审核通过) | // 统计评价计划已整改项目数量(整改状态为:整改待审核、整改审核通过) | ||||
List<PerformanceAppraisalProject> rectifiedProjects = | List<PerformanceAppraisalProject> rectifiedProjects = | ||||
paps.stream() | |||||
.filter(d -> RectifyStatusEnum.TO_BE_REVIEWED.getCode().equals(d.getRectifyStatus()) | |||||
|| RectifyStatusEnum.APPROVED.getCode().equals(d.getRectifyStatus())) | |||||
.collect(Collectors.toList()); | |||||
paps.stream() | |||||
.filter(d -> RectifyStatusEnum.TO_BE_REVIEWED.getCode().equals(d.getRectifyStatus()) | |||||
|| RectifyStatusEnum.APPROVED.getCode().equals(d.getRectifyStatus())) | |||||
.collect(Collectors.toList()); | |||||
vo.setRectifiedNumber(rectifiedProjects.size()); | vo.setRectifiedNumber(rectifiedProjects.size()); | ||||
return vo; | return vo; | ||||
}).collect(Collectors.toList()); | }).collect(Collectors.toList()); | ||||
@@ -146,14 +142,14 @@ public class RectifyManage { | |||||
// 获取评价计划内已添加的待整改项目信息 | // 获取评价计划内已添加的待整改项目信息 | ||||
List<PerformanceAppraisalProject> paps = | List<PerformanceAppraisalProject> paps = | ||||
performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | |||||
.eq(PerformanceAppraisalProject::getAppraisalId, plan.getId()) | |||||
.eq(PerformanceAppraisalProject::getIsRectify, Boolean.TRUE) | |||||
.and(wp -> wp | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.TO_BE_SUBMITTED.getCode()).or() | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.NOT_APPROVED.getCode()))); | |||||
performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | |||||
.eq(PerformanceAppraisalProject::getAppraisalId, plan.getId()) | |||||
.eq(PerformanceAppraisalProject::getIsRectify, Boolean.TRUE) | |||||
.and(wp -> wp | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.TO_BE_SUBMITTED.getCode()).or() | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.NOT_APPROVED.getCode()))); | |||||
Map<Long, PerformanceAppraisalProject> papsMap = | Map<Long, PerformanceAppraisalProject> papsMap = | ||||
paps.stream().collect(Collectors.toMap(PerformanceAppraisalProject::getProjectId, p -> p)); | |||||
paps.stream().collect(Collectors.toMap(PerformanceAppraisalProject::getProjectId, p -> p)); | |||||
if (CollUtil.isEmpty(paps)) { | if (CollUtil.isEmpty(paps)) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
@@ -161,12 +157,12 @@ public class RectifyManage { | |||||
// 获取本单位在当前评价计划内的项目 | // 获取本单位在当前评价计划内的项目 | ||||
Set<String> projectCodes = | Set<String> projectCodes = | ||||
paps.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toSet()); | |||||
paps.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toSet()); | |||||
Page<Project> page = req.page(); | Page<Project> page = req.page(); | ||||
LambdaQueryWrapper<Project> wrapper = | LambdaQueryWrapper<Project> wrapper = | ||||
Wrappers.lambdaQuery(Project.class).in(Project::getProjectCode, projectCodes) | |||||
.eq(Project::getNewest, Boolean.TRUE).eq(Project::getBuildOrgCode, user.getEmpPosUnitCode()) | |||||
.like(StringUtils.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()); | |||||
Wrappers.lambdaQuery(Project.class).in(Project::getProjectCode, projectCodes) | |||||
.eq(Project::getNewest, Boolean.TRUE).eq(Project::getBuildOrgCode, user.getEmpPosUnitCode()) | |||||
.like(StringUtils.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()); | |||||
projectService.page(page, wrapper); | projectService.page(page, wrapper); | ||||
if (CollUtil.isEmpty(page.getRecords())) { | if (CollUtil.isEmpty(page.getRecords())) { | ||||
@@ -197,14 +193,14 @@ public class RectifyManage { | |||||
// 获取评价计划内已添加的已整改项目信息 | // 获取评价计划内已添加的已整改项目信息 | ||||
List<PerformanceAppraisalProject> paps = | List<PerformanceAppraisalProject> paps = | ||||
performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | |||||
.eq(PerformanceAppraisalProject::getAppraisalId, plan.getId()) | |||||
.eq(PerformanceAppraisalProject::getIsRectify, Boolean.TRUE) | |||||
.and(wp -> wp | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.TO_BE_REVIEWED.getCode()).or() | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.APPROVED.getCode()))); | |||||
performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) | |||||
.eq(PerformanceAppraisalProject::getAppraisalId, plan.getId()) | |||||
.eq(PerformanceAppraisalProject::getIsRectify, Boolean.TRUE) | |||||
.and(wp -> wp | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.TO_BE_REVIEWED.getCode()).or() | |||||
.eq(PerformanceAppraisalProject::getRectifyStatus, RectifyStatusEnum.APPROVED.getCode()))); | |||||
Map<Long, PerformanceAppraisalProject> papsMap = | Map<Long, PerformanceAppraisalProject> papsMap = | ||||
paps.stream().collect(Collectors.toMap(PerformanceAppraisalProject::getProjectId, p -> p)); | |||||
paps.stream().collect(Collectors.toMap(PerformanceAppraisalProject::getProjectId, p -> p)); | |||||
if (CollUtil.isEmpty(paps)) { | if (CollUtil.isEmpty(paps)) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
@@ -212,12 +208,12 @@ public class RectifyManage { | |||||
// 获取本单位在当前评价计划内的项目 | // 获取本单位在当前评价计划内的项目 | ||||
Set<String> projectCodes = | Set<String> projectCodes = | ||||
paps.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toSet()); | |||||
paps.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toSet()); | |||||
Page<Project> page = req.page(); | Page<Project> page = req.page(); | ||||
LambdaQueryWrapper<Project> wrapper = | LambdaQueryWrapper<Project> wrapper = | ||||
Wrappers.lambdaQuery(Project.class).in(Project::getProjectCode, projectCodes) | |||||
.eq(Project::getNewest, Boolean.TRUE).eq(Project::getBuildOrgCode, user.getEmpPosUnitCode()) | |||||
.like(StringUtils.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()); | |||||
Wrappers.lambdaQuery(Project.class).in(Project::getProjectCode, projectCodes) | |||||
.eq(Project::getNewest, Boolean.TRUE).eq(Project::getBuildOrgCode, user.getEmpPosUnitCode()) | |||||
.like(StringUtils.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()); | |||||
projectService.page(page, wrapper); | projectService.page(page, wrapper); | ||||
if (CollUtil.isEmpty(page.getRecords())) { | if (CollUtil.isEmpty(page.getRecords())) { | ||||
@@ -243,8 +239,8 @@ public class RectifyManage { | |||||
RectifyDetailVO vo = new RectifyDetailVO(); | RectifyDetailVO vo = new RectifyDetailVO(); | ||||
// 根据评价计划ID和项目编号获取评价项目信息 | // 根据评价计划ID和项目编号获取评价项目信息 | ||||
PerformanceAppraisalProject appraisalProject = performanceAppraisalProjectService.getOne(Wrappers | PerformanceAppraisalProject appraisalProject = performanceAppraisalProjectService.getOne(Wrappers | ||||
.lambdaQuery(PerformanceAppraisalProject.class).eq(PerformanceAppraisalProject::getAppraisalId, planId) | |||||
.eq(PerformanceAppraisalProject::getProjectCode, projectCode)); | |||||
.lambdaQuery(PerformanceAppraisalProject.class).eq(PerformanceAppraisalProject::getAppraisalId, planId) | |||||
.eq(PerformanceAppraisalProject::getProjectCode, projectCode)); | |||||
VUtils.isTrue(Objects.isNull(appraisalProject)).throwMessage("该项目已被移除评价计划,请返回上一页或者刷新重试!!"); | VUtils.isTrue(Objects.isNull(appraisalProject)).throwMessage("该项目已被移除评价计划,请返回上一页或者刷新重试!!"); | ||||
BeanUtils.copyProperties(appraisalProject, vo); | BeanUtils.copyProperties(appraisalProject, vo); | ||||
String rectifySubmitEmployeeCode = appraisalProject.getRectifySubmitEmployeeCode(); | String rectifySubmitEmployeeCode = appraisalProject.getRectifySubmitEmployeeCode(); | ||||
@@ -275,9 +271,9 @@ public class RectifyManage { | |||||
// 判断该项目是否还存在于计划或分组中 | // 判断该项目是否还存在于计划或分组中 | ||||
PerformanceAppraisalProject appraisalProject = performanceAppraisalProjectService.getOne(Wrappers | PerformanceAppraisalProject appraisalProject = performanceAppraisalProjectService.getOne(Wrappers | ||||
.lambdaQuery(PerformanceAppraisalProject.class).eq(PerformanceAppraisalProject::getAppraisalId, appraisalId) | |||||
.eq(PerformanceAppraisalProject::getProjectId, appraisalProjectId) | |||||
.eq(PerformanceAppraisalProject::getProjectCode, appraisalProjectCode)); | |||||
.lambdaQuery(PerformanceAppraisalProject.class).eq(PerformanceAppraisalProject::getAppraisalId, appraisalId) | |||||
.eq(PerformanceAppraisalProject::getProjectId, appraisalProjectId) | |||||
.eq(PerformanceAppraisalProject::getProjectCode, appraisalProjectCode)); | |||||
if (Objects.isNull(appraisalProject)) { | if (Objects.isNull(appraisalProject)) { | ||||
throw new BizException("该项目已被移除评价计划,请返回上一页或者刷新重试!"); | throw new BizException("该项目已被移除评价计划,请返回上一页或者刷新重试!"); | ||||
} | } | ||||
@@ -1,17 +1,17 @@ | |||||
package com.hz.pm.api.performance.model.dto; | package com.hz.pm.api.performance.model.dto; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import javax.validation.constraints.NotNull; | |||||
import javax.validation.constraints.Size; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import javax.validation.constraints.NotNull; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
/** | /** | ||||
* <p> | |||||
* 应用评价信息 | * 应用评价信息 | ||||
* @return | |||||
* </p> | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/08 18:46 | * @since 2023/08/08 18:46 | ||||
*/ | */ | ||||
@@ -3,14 +3,12 @@ package com.hz.pm.api.performance.model.dto; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import javax.validation.constraints.NotNull; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.math.BigDecimal; | |||||
import java.util.List; | import java.util.List; | ||||
/** | /** | ||||
* 项目评价信息 | * 项目评价信息 | ||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/08 18:46 | * @since 2023/08/08 18:46 | ||||
*/ | */ | ||||
@@ -1,14 +1,12 @@ | |||||
package com.hz.pm.api.performance.model.dto; | package com.hz.pm.api.performance.model.dto; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.util.List; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotNull; | import javax.validation.constraints.NotNull; | ||||
import javax.validation.constraints.Size; | import javax.validation.constraints.Size; | ||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
/** | /** | ||||
* 项目评价信息 | * 项目评价信息 | ||||
@@ -1,16 +1,14 @@ | |||||
package com.hz.pm.api.performance.model.dto; | package com.hz.pm.api.performance.model.dto; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import javax.validation.constraints.NotNull; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
/** | /** | ||||
* 应用评价信息 | * 应用评价信息 | ||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/08 18:46 | * @since 2023/08/08 18:46 | ||||
*/ | */ | ||||
@@ -1,14 +1,12 @@ | |||||
package com.hz.pm.api.performance.model.dto; | package com.hz.pm.api.performance.model.dto; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.util.List; | |||||
import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
/** | /** | ||||
* 绩效打分详情导出实体 | * 绩效打分详情导出实体 | ||||
* | * | ||||
@@ -21,50 +19,50 @@ public class ReAppraisalScoreExportDTO implements Serializable { | |||||
private static final long serialVersionUID = 1L; | private static final long serialVersionUID = 1L; | ||||
@ApiModelProperty("一级指标名称") | @ApiModelProperty("一级指标名称") | ||||
@ExcelProperty(value = "一级指标",index = 0) | |||||
@ExcelProperty(value = "一级指标", index = 0) | |||||
private String firstIndexName; | private String firstIndexName; | ||||
@ApiModelProperty("二级指标名称") | @ApiModelProperty("二级指标名称") | ||||
@ExcelProperty(value = "二级指标",index = 1) | |||||
@ExcelProperty(value = "二级指标", index = 1) | |||||
private String secondIndexName; | private String secondIndexName; | ||||
@ApiModelProperty("三级指标名称") | @ApiModelProperty("三级指标名称") | ||||
@ExcelProperty(value = "三级指标",index = 2) | |||||
@ExcelProperty(value = "三级指标", index = 2) | |||||
private String thirdIndexName; | private String thirdIndexName; | ||||
@ApiModelProperty("指标分值 3级指标才有") | @ApiModelProperty("指标分值 3级指标才有") | ||||
@ExcelProperty(value = "指标分值",index = 3) | |||||
@ExcelProperty(value = "指标分值", index = 3) | |||||
private BigDecimal indexScore; | private BigDecimal indexScore; | ||||
@ApiModelProperty("指标细则 3级指标才有") | @ApiModelProperty("指标细则 3级指标才有") | ||||
@ExcelProperty(value = "指标细则",index = 4) | |||||
@ExcelProperty(value = "指标细则", index = 4) | |||||
private String indexDetail; | private String indexDetail; | ||||
@ApiModelProperty("评分细则") | @ApiModelProperty("评分细则") | ||||
@ExcelProperty(value = "评分细则",index = 5) | |||||
@ExcelProperty(value = "评分细则", index = 5) | |||||
private String gradeDetail; | private String gradeDetail; | ||||
@ApiModelProperty("佐证材料描述") | @ApiModelProperty("佐证材料描述") | ||||
@ExcelProperty(value = "佐证材料",index = 6) | |||||
@ExcelProperty(value = "佐证材料", index = 6) | |||||
private String supportMaterial; | private String supportMaterial; | ||||
@ApiModelProperty("自评依据") | @ApiModelProperty("自评依据") | ||||
@ExcelProperty(value = "自评依据",index = 7) | |||||
@ExcelProperty(value = "自评依据", index = 7) | |||||
private String selfAppraisalBasis; | private String selfAppraisalBasis; | ||||
@ApiModelProperty("自评得分") | @ApiModelProperty("自评得分") | ||||
@ExcelProperty(value = "自评得分",index = 8) | |||||
@ExcelProperty(value = "自评得分", index = 8) | |||||
private BigDecimal selfAppraisalScore; | private BigDecimal selfAppraisalScore; | ||||
@ApiModelProperty("复评依据") | @ApiModelProperty("复评依据") | ||||
@ExcelProperty(value = "复评依据",index = 9) | |||||
@ExcelProperty(value = "复评依据", index = 9) | |||||
private String refAppraisalBasis; | private String refAppraisalBasis; | ||||
@ApiModelProperty("复评得分") | @ApiModelProperty("复评得分") | ||||
@ExcelProperty(value = "复评得分",index = 10) | |||||
@ExcelProperty(value = "复评得分", index = 10) | |||||
private BigDecimal reAppraisalScore; | private BigDecimal reAppraisalScore; | ||||
@ApiModelProperty("是否为附加指标") | @ApiModelProperty("是否为附加指标") | ||||
@ExcelProperty(value = "是否附加指标",index = 11) | |||||
@ExcelProperty(value = "是否附加指标", index = 11) | |||||
private String isAdditional; | private String isAdditional; | ||||
} | } |
@@ -3,17 +3,13 @@ package com.hz.pm.api.performance.model.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | import com.baomidou.mybatisplus.annotation.IdType; | ||||
import com.baomidou.mybatisplus.annotation.TableId; | import com.baomidou.mybatisplus.annotation.TableId; | ||||
import com.baomidou.mybatisplus.annotation.TableName; | import com.baomidou.mybatisplus.annotation.TableName; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import org.hibernate.validator.constraints.Range; | |||||
import javax.validation.constraints.Digits; | |||||
import javax.validation.constraints.Size; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -24,7 +20,7 @@ import javax.validation.constraints.Size; | |||||
* @since 2023-07-26 | * @since 2023-07-26 | ||||
*/ | */ | ||||
@TableName("nd_project_core_business_indicators") | @TableName("nd_project_core_business_indicators") | ||||
@ApiModel(value = "NdProjectCoreBusinessIndicators对象", description = "") | |||||
@ApiModel(value = "NdProjectCoreBusinessIndicators对象") | |||||
@Data | @Data | ||||
public class ProjectCoreBusinessIndicators implements Serializable { | public class ProjectCoreBusinessIndicators implements Serializable { | ||||
@@ -1,19 +1,17 @@ | |||||
package com.hz.pm.api.performance.model.vo; | package com.hz.pm.api.performance.model.vo; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import com.hz.pm.api.performance.model.entity.PerformanceAppraisalAppScoreInfo; | |||||
import com.hz.pm.api.performance.model.entity.PerformanceAppraisalScoreInfo; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | |||||
import java.util.List; | |||||
/** | /** | ||||
* <p> | |||||
* 应用评价指标 | * 应用评价指标 | ||||
* @return | |||||
* </p> | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/08 8:55 | * @since 2023/08/08 8:55 | ||||
*/ | */ | ||||
@@ -1,19 +1,18 @@ | |||||
package com.hz.pm.api.performance.model.vo; | package com.hz.pm.api.performance.model.vo; | ||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | /** | ||||
* <p> | |||||
* AppIndexDetailVO | * AppIndexDetailVO | ||||
* @return | |||||
* </p> | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/14 8:55 | * @since 2023/08/14 8:55 | ||||
*/ | */ | ||||
@@ -1,19 +1,18 @@ | |||||
package com.hz.pm.api.performance.model.vo; | package com.hz.pm.api.performance.model.vo; | ||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
/** | /** | ||||
* <p> | |||||
* AppIndexDetailVO | * AppIndexDetailVO | ||||
* @return | |||||
* </p> | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/08/14 8:55 | * @since 2023/08/14 8:55 | ||||
*/ | */ | ||||
@@ -1,19 +1,16 @@ | |||||
package com.hz.pm.api.performance.model.vo; | package com.hz.pm.api.performance.model.vo; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
/** | /** | ||||
* 绩效评价-项目指标库 | * 绩效评价-项目指标库 | ||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @since 2023/07/28 14:45 | * @since 2023/07/28 14:45 | ||||
*/ | */ | ||||
@@ -1,23 +1,19 @@ | |||||
package com.hz.pm.api.performance.model.vo; | package com.hz.pm.api.performance.model.vo; | ||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
import com.alibaba.fastjson.annotation.JSONField; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | import com.baomidou.mybatisplus.annotation.IdType; | ||||
import com.baomidou.mybatisplus.annotation.TableId; | import com.baomidou.mybatisplus.annotation.TableId; | ||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | |||||
import java.time.LocalDateTime; | |||||
/** | /** | ||||
* PerformanceAppraisalAppVO | * PerformanceAppraisalAppVO | ||||
* @return | |||||
* | |||||
* @author CMM | * @author CMM | ||||
* @return \ | |||||
*/ | */ | ||||
@Data | @Data | ||||
@ApiModel(value = "绩效评价应用对象", description = "绩效评价应用对象") | @ApiModel(value = "绩效评价应用对象", description = "绩效评价应用对象") | ||||
@@ -1,14 +1,12 @@ | |||||
package com.hz.pm.api.projectdeclared.controller; | package com.hz.pm.api.projectdeclared.controller; | ||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.projectdeclared.manage.ProjectAdjustmentManage; | |||||
import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | ||||
import com.hz.pm.api.projectdeclared.model.req.AdjustmentListReq; | import com.hz.pm.api.projectdeclared.model.req.AdjustmentListReq; | ||||
import com.hz.pm.api.projectdeclared.manage.ProjectAdjustmentManage; | |||||
import com.hz.pm.api.projectlib.manage.ProjectLibManage; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectListReq; | |||||
import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | ||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
@@ -17,7 +15,6 @@ import org.springframework.validation.annotation.Validated; | |||||
import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
import java.util.Arrays; | |||||
/** | /** | ||||
* @Classname ConstructionPlanController | * @Classname ConstructionPlanController | ||||
@@ -1,13 +1,11 @@ | |||||
package com.hz.pm.api.projectdeclared.controller; | package com.hz.pm.api.projectdeclared.controller; | ||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.hz.pm.api.projectdeclared.manage.ReviewChecklistManage; | import com.hz.pm.api.projectdeclared.manage.ReviewChecklistManage; | ||||
import com.hz.pm.api.projectdeclared.model.dto.ReviewChecklistApproveDTO; | import com.hz.pm.api.projectdeclared.model.dto.ReviewChecklistApproveDTO; | ||||
import com.hz.pm.api.projectdeclared.model.vo.ReviewCheckInfoVO; | |||||
import com.hz.pm.api.projectdeclared.model.vo.ReviewChecklistApproveVO; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectListReq; | import com.hz.pm.api.projectlib.model.req.ProjectListReq; | ||||
import com.hz.pm.api.projectlib.model.vo.ProjectReviewCheckListItemVO; | import com.hz.pm.api.projectlib.model.vo.ProjectReviewCheckListItemVO; | ||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.log.annotation.WebLog; | |||||
import com.wflow.bean.dto.FormsReviewChecklistDto; | import com.wflow.bean.dto.FormsReviewChecklistDto; | ||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
@@ -4,22 +4,15 @@ import cn.hutool.core.collection.CollUtil; | |||||
import com.alibaba.excel.EasyExcel; | import com.alibaba.excel.EasyExcel; | ||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | |||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.NdDateUtils; | |||||
import com.hz.pm.api.common.constant.CommonConst; | |||||
import com.hz.pm.api.common.helper.UserInfoHelper; | import com.hz.pm.api.common.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.common.util.ExcelExportStyle; | import com.hz.pm.api.common.util.ExcelExportStyle; | ||||
import com.hz.pm.api.projectdeclared.model.dto.DeclaredProjectExportDTO; | |||||
import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | ||||
import com.hz.pm.api.projectdeclared.model.dto.ProjectAdjustmentExportDTO; | import com.hz.pm.api.projectdeclared.model.dto.ProjectAdjustmentExportDTO; | ||||
import com.hz.pm.api.projectdeclared.model.req.AdjustmentListReq; | import com.hz.pm.api.projectdeclared.model.req.AdjustmentListReq; | ||||
import com.hz.pm.api.projectdeclared.utils.GenerateProjectCodeUtil; | import com.hz.pm.api.projectdeclared.utils.GenerateProjectCodeUtil; | ||||
import com.hz.pm.api.projectdeclared.utils.ReStartProcessMapUtil; | import com.hz.pm.api.projectdeclared.utils.ReStartProcessMapUtil; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeEnum; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | ||||
import com.hz.pm.api.projectlib.helper.ProjectHelper; | import com.hz.pm.api.projectlib.helper.ProjectHelper; | ||||
import com.hz.pm.api.projectlib.manage.ProjectLibManage; | import com.hz.pm.api.projectlib.manage.ProjectLibManage; | ||||
@@ -31,8 +24,10 @@ import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | |||||
import com.hz.pm.api.projectlib.service.IProjectApplicationService; | import com.hz.pm.api.projectlib.service.IProjectApplicationService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | |||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.NdDateUtils; | |||||
import com.wflow.exception.BusinessException; | import com.wflow.exception.BusinessException; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@@ -1,8 +1,6 @@ | |||||
package com.hz.pm.api.projectdeclared.manage; | package com.hz.pm.api.projectdeclared.manage; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.hz.pm.api.projectdeclared.converter.ApplicationConverter; | import com.hz.pm.api.projectdeclared.converter.ApplicationConverter; | ||||
import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
@@ -13,8 +11,9 @@ import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | |||||
import com.hz.pm.api.projectlib.service.IProjectApplicationService; | import com.hz.pm.api.projectlib.service.IProjectApplicationService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.provincial.service.IJoinReviewProvincialBureauService; | import com.hz.pm.api.provincial.service.IJoinReviewProvincialBureauService; | ||||
import com.hz.pm.api.staging.service.IProjectStagingService; | |||||
import com.hz.pm.api.todocenter.constant.TodoCenterConstant; | import com.hz.pm.api.todocenter.constant.TodoCenterConstant; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.wflow.exception.BusinessException; | import com.wflow.exception.BusinessException; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@@ -52,6 +51,7 @@ public class ReviewByProvincialDeptManage { | |||||
/** | /** | ||||
* 省级部门联审 | * 省级部门联审 | ||||
* | |||||
* @param project | * @param project | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -60,28 +60,26 @@ public class ReviewByProvincialDeptManage { | |||||
VUtils.isTrue(Objects.isNull(project.getId())).throwMessage("提交失败 缺少项目ID!"); | VUtils.isTrue(Objects.isNull(project.getId())).throwMessage("提交失败 缺少项目ID!"); | ||||
Project projectInfo = projectService.getById(project.getId()); | Project projectInfo = projectService.getById(project.getId()); | ||||
VUtils.isTrue(Objects.isNull(projectInfo)).throwMessage("提交失败 此项目不存在!"); | VUtils.isTrue(Objects.isNull(projectInfo)).throwMessage("提交失败 此项目不存在!"); | ||||
String regionCode = projectInfo.getAreaCode(); | |||||
//首先要判断 项目当前状态 是不是 省级部门联审 | //首先要判断 项目当前状态 是不是 省级部门联审 | ||||
VUtils.isTrue(!ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode().equals(projectInfo.getStatus()) || | VUtils.isTrue(!ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode().equals(projectInfo.getStatus()) || | ||||
!ProjectStatusEnum.NOT_APPROVED.getCode().equals(projectInfo.getStage())) | |||||
!ProjectStatusEnum.NOT_APPROVED.getCode().equals(projectInfo.getStage())) | |||||
.throwMessage("提交失败 该项目不是 省级部门联审状态状态或者未立项阶段"); | .throwMessage("提交失败 该项目不是 省级部门联审状态状态或者未立项阶段"); | ||||
// 对接省级联审的接口 | // 对接省级联审的接口 | ||||
List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) | List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) | ||||
.eq(ProjectApplication::getProjectId, projectInfo.getId())); | .eq(ProjectApplication::getProjectId, projectInfo.getId())); | ||||
if(joinReviewProvincialBureauService.pushImportProject( | |||||
ApplicationConverter.convertProject(projectInfo,applications,fileService,active))){ | |||||
if (joinReviewProvincialBureauService.pushImportProject(ApplicationConverter.convertProject(projectInfo, applications, fileService, active))) { | |||||
return Boolean.TRUE; | return Boolean.TRUE; | ||||
} | } | ||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
} | } | ||||
/** | /** | ||||
* 省级部门联审 重新提交 | * 省级部门联审 重新提交 | ||||
* @param declaringDTO | |||||
* @return | |||||
* | |||||
* @param declaringDTO \ | |||||
* @return \ | |||||
*/ | */ | ||||
@Transactional(rollbackFor = Exception.class) | @Transactional(rollbackFor = Exception.class) | ||||
public String restartTheProcess(DefaultDeclaredDTO declaringDTO) { | public String restartTheProcess(DefaultDeclaredDTO declaringDTO) { | ||||
@@ -89,7 +87,6 @@ public class ReviewByProvincialDeptManage { | |||||
VUtils.isTrue(Objects.isNull(project.getId())).throwMessage("提交失败 缺少项目ID!"); | VUtils.isTrue(Objects.isNull(project.getId())).throwMessage("提交失败 缺少项目ID!"); | ||||
Project projectInfo = projectService.getNewProject(project.getId()); | Project projectInfo = projectService.getNewProject(project.getId()); | ||||
VUtils.isTrue(Objects.isNull(projectInfo)).throwMessage("提交失败 此项目不存在!"); | VUtils.isTrue(Objects.isNull(projectInfo)).throwMessage("提交失败 此项目不存在!"); | ||||
String regionCode = projectInfo.getAreaCode(); | |||||
//首先要判断 项目当前状态 是不是 省级部门联审不通过 | //首先要判断 项目当前状态 是不是 省级部门联审不通过 | ||||
VUtils.isTrue(!ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode().equals(projectInfo.getStatus()) || | VUtils.isTrue(!ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode().equals(projectInfo.getStatus()) || | ||||
@@ -97,8 +94,8 @@ public class ReviewByProvincialDeptManage { | |||||
.throwMessage("提交失败 该项目不是 省级部门联审不通过状态或者未立项阶段"); | .throwMessage("提交失败 该项目不是 省级部门联审不通过状态或者未立项阶段"); | ||||
// 对接省级联审的接口 | // 对接省级联审的接口 | ||||
Project p = projectLibManage.saveProjectWithVersionAndStatus(project,null, | |||||
ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode(),Boolean.FALSE); | |||||
Project p = projectLibManage.saveProjectWithVersionAndStatus(project, null, | |||||
ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode(), Boolean.FALSE); | |||||
List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) | List<ProjectApplication> applications = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) | ||||
.eq(ProjectApplication::getProjectId, p.getId())); | .eq(ProjectApplication::getProjectId, p.getId())); | ||||
@@ -111,8 +108,8 @@ public class ReviewByProvincialDeptManage { | |||||
p.setInstCode(TodoCenterConstant.Declared.NULL_INST_CODE); | p.setInstCode(TodoCenterConstant.Declared.NULL_INST_CODE); | ||||
declaringDTO.getProjectInfo().setId(p.getId()); | declaringDTO.getProjectInfo().setId(p.getId()); | ||||
projectService.updateById(p); | projectService.updateById(p); | ||||
if(!joinReviewProvincialBureauService.pushImportProject( | |||||
ApplicationConverter.convertProject(p,applications,fileService,active))){ | |||||
if (!joinReviewProvincialBureauService.pushImportProject( | |||||
ApplicationConverter.convertProject(p, applications, fileService, active))) { | |||||
throw new BusinessException("提交省级部门联审失败"); | throw new BusinessException("提交省级部门联审失败"); | ||||
} | } | ||||
@@ -8,11 +8,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import com.google.common.collect.Sets; | import com.google.common.collect.Sets; | ||||
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.StrPool; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.constant.RegionConst; | import com.hz.pm.api.common.constant.RegionConst; | ||||
import com.hz.pm.api.common.helper.RegionCacheHelper; | import com.hz.pm.api.common.helper.RegionCacheHelper; | ||||
@@ -32,6 +27,11 @@ import com.hz.pm.api.projectlib.service.IProjectService; | |||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
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.StrPool; | |||||
import com.wflow.bean.dto.FormsReviewChecklistDto; | import com.wflow.bean.dto.FormsReviewChecklistDto; | ||||
import com.wflow.bean.dto.ReviewChecklistModuleDto; | import com.wflow.bean.dto.ReviewChecklistModuleDto; | ||||
import com.wflow.enums.ReviewChecklistResultEnum; | import com.wflow.enums.ReviewChecklistResultEnum; | ||||
@@ -40,6 +40,7 @@ import lombok.extern.slf4j.Slf4j; | |||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.beans.factory.annotation.Value; | import org.springframework.beans.factory.annotation.Value; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.*; | import java.util.*; | ||||
import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
@@ -70,14 +71,13 @@ public class ReviewChecklistManage { | |||||
//项目查最新 | //项目查最新 | ||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
//建设方案提交后的状态 | //建设方案提交后的状态 | ||||
query.ge(Project::getStatus,ProjectStatusEnum.SCHEME_UNDER_REVIEW.getCode()) | |||||
.ne(Project::getStatus,ProjectStatusEnum.PLAN_TO_BE_DECLARED.getCode()) | |||||
.eq(Project::getAreaCode,RegionConst.RC_LS); | |||||
query.ge(Project::getStatus, ProjectStatusEnum.SCHEME_UNDER_REVIEW.getCode()) | |||||
.ne(Project::getStatus, ProjectStatusEnum.PLAN_TO_BE_DECLARED.getCode()) | |||||
.eq(Project::getAreaCode, RegionConst.RC_LS); | |||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
buildReviewCheckPermission(query, user); | buildReviewCheckPermission(query, user); | ||||
Page<Project> page = projectService.page(req.page(), query); | Page<Project> page = projectService.page(req.page(), query); | ||||
long total; | |||||
if (CollUtil.isEmpty(page.getRecords())) { | if (CollUtil.isEmpty(page.getRecords())) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -90,17 +90,16 @@ public class ReviewChecklistManage { | |||||
Map<String, List<ReviewChecklistApprove>> approveMap = | Map<String, List<ReviewChecklistApprove>> approveMap = | ||||
approves.stream().collect(Collectors.groupingBy(ReviewChecklistApprove::getProjectCode)); | approves.stream().collect(Collectors.groupingBy(ReviewChecklistApprove::getProjectCode)); | ||||
List<String> reviewHumans = Lists.newArrayList();; | |||||
if(BizConst.DEV.equals(active)){ | |||||
List<String> reviewHumans; | |||||
if (BizConst.DEV.equals(active)) { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | ||||
}else{ | |||||
} else { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | ||||
} | } | ||||
List<UserFullInfoDTO> users = userInfoHelper.getUserFullInfoByEmployeeCodes(reviewHumans); | List<UserFullInfoDTO> users = userInfoHelper.getUserFullInfoByEmployeeCodes(reviewHumans); | ||||
Set<String> userSet = Sets.newHashSet(); | Set<String> userSet = Sets.newHashSet(); | ||||
Map<String, String> userMap = users.stream().filter(u -> userSet.add(u.getEmployeeCode())) | Map<String, String> userMap = users.stream().filter(u -> userSet.add(u.getEmployeeCode())) | ||||
.collect(Collectors.toMap(u -> u.getEmployeeCode() | |||||
, u -> u.getUsername())); | |||||
.collect(Collectors.toMap(UserFullInfoDTO::getEmployeeCode, UserFullInfoDTO::getUsername)); | |||||
List<ProjectReviewCheckListItemVO> records = CollUtils.convert(page.getRecords(), w -> { | List<ProjectReviewCheckListItemVO> records = CollUtils.convert(page.getRecords(), w -> { | ||||
ProjectReviewCheckListItemVO item = new ProjectReviewCheckListItemVO(); | ProjectReviewCheckListItemVO item = new ProjectReviewCheckListItemVO(); | ||||
item.setId(w.getId()); | item.setId(w.getId()); | ||||
@@ -121,76 +120,75 @@ public class ReviewChecklistManage { | |||||
item.setApprovedAmount(w.getApprovalAmount()); | item.setApprovedAmount(w.getApprovalAmount()); | ||||
item.setAnnualPlanAmount(w.getAnnualPlanAmount()); | item.setAnnualPlanAmount(w.getAnnualPlanAmount()); | ||||
// 审查人员情况 | // 审查人员情况 | ||||
item.setVerifiedHumans(computeVerify(item,approveMap.get(w.getProjectCode()),userMap,user)); | |||||
item.setVerifiedHumans(computeVerify(item, approveMap.get(w.getProjectCode()), userMap, user)); | |||||
item.setReviewCheckFinish(w.getReviewCheckFinish()); | item.setReviewCheckFinish(w.getReviewCheckFinish()); | ||||
return item; | return item; | ||||
}); | }); | ||||
return PageVo.of(records, page.getTotal()); | return PageVo.of(records, page.getTotal()); | ||||
} | } | ||||
private String computeVerify(ProjectReviewCheckListItemVO item,List<ReviewChecklistApprove> reviewChecklistApproves, | |||||
Map<String, String> userMap,UserInfoDetails user) { | |||||
List<String> reviewHumans = Lists.newArrayList();; | |||||
if(BizConst.DEV.equals(active)){ | |||||
private String computeVerify(ProjectReviewCheckListItemVO item, List<ReviewChecklistApprove> reviewChecklistApproves, | |||||
Map<String, String> userMap, UserInfoDetails user) { | |||||
List<String> reviewHumans; | |||||
if (BizConst.DEV.equals(active)) { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | ||||
}else{ | |||||
} else { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | ||||
} | } | ||||
Integer maxNums = reviewHumans.size(); | |||||
int maxNums = reviewHumans.size(); | |||||
Integer finishNums = 0; | Integer finishNums = 0; | ||||
Set<String> computeHumanSet = reviewHumans.stream().collect(Collectors.toSet()); | |||||
if(CollUtil.isEmpty(reviewChecklistApproves)){ | |||||
item.setReviewCheckNotApprove(convertUser(userMap,computeHumanSet)); | |||||
Set<String> computeHumanSet = new HashSet<>(reviewHumans); | |||||
if (CollUtil.isEmpty(reviewChecklistApproves)) { | |||||
item.setReviewCheckNotApprove(convertUser(userMap, computeHumanSet)); | |||||
return finishNums + StrPool.SLASH + maxNums; | return finishNums + StrPool.SLASH + maxNums; | ||||
} | } | ||||
for(ReviewChecklistApprove approve : reviewChecklistApproves){ | |||||
if(StringUtils.isNotBlank(approve.getCreateByCode()) || | |||||
computeHumanSet.contains(approve.getCreateByCode())){ | |||||
if(StringUtils.isNotBlank(user.getEmployeeCode()) && | |||||
user.getEmployeeCode().equals(approve.getCreateByCode())){ | |||||
for (ReviewChecklistApprove approve : reviewChecklistApproves) { | |||||
if (StringUtils.isNotBlank(approve.getCreateByCode()) || | |||||
computeHumanSet.contains(approve.getCreateByCode())) { | |||||
if (StringUtils.isNotBlank(user.getEmployeeCode()) && | |||||
user.getEmployeeCode().equals(approve.getCreateByCode())) { | |||||
item.setApproved(Boolean.TRUE); | item.setApproved(Boolean.TRUE); | ||||
} | } | ||||
if(computeHumanSet.remove(approve.getCreateByCode())){ | |||||
if (computeHumanSet.remove(approve.getCreateByCode())) { | |||||
//说明 有指定人 审核过 | //说明 有指定人 审核过 | ||||
finishNums++; | finishNums++; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
item.setReviewCheckNotApprove(convertUser(userMap,computeHumanSet)); | |||||
item.setReviewCheckNotApprove(convertUser(userMap, computeHumanSet)); | |||||
return finishNums + StrPool.SLASH + maxNums; | return finishNums + StrPool.SLASH + maxNums; | ||||
} | } | ||||
private String convertUser(Map<String, String> userMap, Set<String> computeHumanSet) { | private String convertUser(Map<String, String> userMap, Set<String> computeHumanSet) { | ||||
if(CollUtil.isEmpty(userMap) || CollUtil.isEmpty(computeHumanSet)){ | |||||
if (CollUtil.isEmpty(userMap) || CollUtil.isEmpty(computeHumanSet)) { | |||||
return StringUtils.EMPTY; | return StringUtils.EMPTY; | ||||
} | } | ||||
return computeHumanSet.stream().filter(s -> StringUtils.isNotBlank(s) && userMap.containsKey(s)) | return computeHumanSet.stream().filter(s -> StringUtils.isNotBlank(s) && userMap.containsKey(s)) | ||||
.map(s -> userMap.get(s)).collect(Collectors.joining(StrPool.COMMA)); | |||||
.map(userMap::get).collect(Collectors.joining(StrPool.COMMA)); | |||||
} | } | ||||
public UserFullInfoDTO buildReviewCheckPermission(LambdaQueryWrapper<Project> query, UserInfoDetails user) { | public UserFullInfoDTO buildReviewCheckPermission(LambdaQueryWrapper<Project> query, UserInfoDetails user) { | ||||
UserFullInfoDTO userDto = BeanUtil.copyProperties(user,UserFullInfoDTO.class); | |||||
UserFullInfoDTO userDto = BeanUtil.copyProperties(user, UserFullInfoDTO.class); | |||||
//1.只有 市本级能看到 | //1.只有 市本级能看到 | ||||
String regionCode = user.getRegionCode(); | String regionCode = user.getRegionCode(); | ||||
String employeeCode = user.getEmployeeCode(); | String employeeCode = user.getEmployeeCode(); | ||||
//如果是七大审查之一 就可以看 | //如果是七大审查之一 就可以看 | ||||
List<String> reviewHumans = Lists.newArrayList();; | |||||
if(BizConst.DEV.equals(active)){ | |||||
List<String> reviewHumans; | |||||
if (BizConst.DEV.equals(active)) { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | ||||
}else{ | |||||
} else { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | ||||
} | } | ||||
if(reviewHumans.contains(employeeCode)){ | |||||
if (reviewHumans.contains(employeeCode)) { | |||||
log.warn("为七大审查人之一 可以查看"); | log.warn("为七大审查人之一 可以查看"); | ||||
return userDto; | return userDto; | ||||
} | } | ||||
if(!regionCode.equals(RegionConst.RC_LS) || StringUtils.isBlank(employeeCode)){ | |||||
log.info("当前操作人 不是市本级 或者没有钉钉工号 :{},{},{}",user.getUsername(), | |||||
user.getRegionCode(),user.getEmployeeCode()); | |||||
if (!regionCode.equals(RegionConst.RC_LS) || StringUtils.isBlank(employeeCode)) { | |||||
log.info("当前操作人 不是市本级 或者没有钉钉工号 :{},{},{}", user.getUsername(), | |||||
user.getRegionCode(), user.getEmployeeCode()); | |||||
query.eq(Project::getId, 0L); | query.eq(Project::getId, 0L); | ||||
return userDto; | return userDto; | ||||
} | } | ||||
@@ -229,11 +227,12 @@ public class ReviewChecklistManage { | |||||
/** | /** | ||||
* 去审批 | * 去审批 | ||||
* | |||||
* @param dtos | * @param dtos | ||||
* @return | * @return | ||||
*/ | */ | ||||
public String approve(List<ReviewChecklistApproveDTO> dtos) { | public String approve(List<ReviewChecklistApproveDTO> dtos) { | ||||
if(CollUtil.isEmpty(dtos)){ | |||||
if (CollUtil.isEmpty(dtos)) { | |||||
throw new BizException("传入数据不能为空!"); | throw new BizException("传入数据不能为空!"); | ||||
} | } | ||||
ReviewChecklistApproveDTO reviewChecklistApproveFirst = dtos.get(0); | ReviewChecklistApproveDTO reviewChecklistApproveFirst = dtos.get(0); | ||||
@@ -243,23 +242,24 @@ public class ReviewChecklistManage { | |||||
Long userId = user.getUserId(); | Long userId = user.getUserId(); | ||||
String employeeCode = user.getEmployeeCode(); | String employeeCode = user.getEmployeeCode(); | ||||
String username = user.getUsername(); | String username = user.getUsername(); | ||||
List<String> reviewHumans = Lists.newArrayList();; | |||||
if(BizConst.DEV.equals(active)){ | |||||
List<String> reviewHumans; | |||||
; | |||||
if (BizConst.DEV.equals(active)) { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | ||||
}else{ | |||||
} else { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | ||||
} | } | ||||
if(StringUtils.isBlank(employeeCode) || !reviewHumans.contains(employeeCode)){ | |||||
if (StringUtils.isBlank(employeeCode) || !reviewHumans.contains(employeeCode)) { | |||||
throw new BizException("当前操作员 不是七大审查人之一!"); | throw new BizException("当前操作员 不是七大审查人之一!"); | ||||
} | } | ||||
VUtils.isTrue(reviewChecklistApproveService.count(Wrappers.lambdaQuery(ReviewChecklistApprove.class) | VUtils.isTrue(reviewChecklistApproveService.count(Wrappers.lambdaQuery(ReviewChecklistApprove.class) | ||||
.eq(ReviewChecklistApprove::getProjectCode,projectCode) | |||||
.eq(ReviewChecklistApprove::getCreateByCode,employeeCode)) > 0) | |||||
.eq(ReviewChecklistApprove::getProjectCode, projectCode) | |||||
.eq(ReviewChecklistApprove::getCreateByCode, employeeCode)) > 0) | |||||
.throwMessage("此项目 当前审查员 已经审批过 请不要重复审批"); | .throwMessage("此项目 当前审查员 已经审批过 请不要重复审批"); | ||||
for(ReviewChecklistApproveDTO dto : dtos){ | |||||
for (ReviewChecklistApproveDTO dto : dtos) { | |||||
ReviewChecklistApprove saveEntity = new ReviewChecklistApprove(); | ReviewChecklistApprove saveEntity = new ReviewChecklistApprove(); | ||||
saveEntity.setCreateBy(username); | saveEntity.setCreateBy(username); | ||||
saveEntity.setCreateById(userId); | saveEntity.setCreateById(userId); | ||||
@@ -281,6 +281,7 @@ public class ReviewChecklistManage { | |||||
/** | /** | ||||
* 查看待意见汇总 列表 | * 查看待意见汇总 列表 | ||||
* | |||||
* @param projectCode | * @param projectCode | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -288,7 +289,7 @@ public class ReviewChecklistManage { | |||||
List<ReviewChecklistApprove> approves = reviewChecklistApproveService.list(Wrappers.lambdaQuery(ReviewChecklistApprove.class) | List<ReviewChecklistApprove> approves = reviewChecklistApproveService.list(Wrappers.lambdaQuery(ReviewChecklistApprove.class) | ||||
.eq(ReviewChecklistApprove::getProjectCode, projectCode) | .eq(ReviewChecklistApprove::getProjectCode, projectCode) | ||||
.orderByAsc(ReviewChecklistApprove::getCreateOn)); | .orderByAsc(ReviewChecklistApprove::getCreateOn)); | ||||
if(CollUtil.isEmpty(approves)){ | |||||
if (CollUtil.isEmpty(approves)) { | |||||
return Collections.emptyList(); | return Collections.emptyList(); | ||||
} | } | ||||
@@ -300,23 +301,21 @@ public class ReviewChecklistManage { | |||||
List<ReviewChecklistApprove> dupTitle = approves.stream().filter(r -> titleSet.add(r.getTitle())) | List<ReviewChecklistApprove> dupTitle = approves.stream().filter(r -> titleSet.add(r.getTitle())) | ||||
.collect(Collectors.toList()); | .collect(Collectors.toList()); | ||||
List<FormsReviewChecklistDto> res = dupTitle.stream() | |||||
return dupTitle.stream() | |||||
.map(r -> { | .map(r -> { | ||||
FormsReviewChecklistDto vo = new FormsReviewChecklistDto(); | FormsReviewChecklistDto vo = new FormsReviewChecklistDto(); | ||||
vo.setTitle(r.getTitle()); | vo.setTitle(r.getTitle()); | ||||
if(groupTitleMap.containsKey(r.getTitle())){ | |||||
if (groupTitleMap.containsKey(r.getTitle())) { | |||||
List<ReviewChecklistApprove> reviewChecklistApproves = groupTitleMap.get(r.getTitle()); | List<ReviewChecklistApprove> reviewChecklistApproves = groupTitleMap.get(r.getTitle()); | ||||
vo.setModules(convertModules(reviewChecklistApproves)); | vo.setModules(convertModules(reviewChecklistApproves)); | ||||
} | } | ||||
return vo; | return vo; | ||||
}) | }) | ||||
.collect(Collectors.toList()); | .collect(Collectors.toList()); | ||||
return res; | |||||
} | } | ||||
public String summary(String projectCode) { | public String summary(String projectCode) { | ||||
//修改到 项目里去 | |||||
// 修改到 项目里去 | |||||
Project project = projectService.getProjectByCode(projectCode); | Project project = projectService.getProjectByCode(projectCode); | ||||
VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在"); | VUtils.isTrue(Objects.isNull(project)).throwMessage("项目不存在"); | ||||
VUtils.isTrue(Objects.nonNull(project.getReviewCheckFinish()) && project.getReviewCheckFinish()) | VUtils.isTrue(Objects.nonNull(project.getReviewCheckFinish()) && project.getReviewCheckFinish()) | ||||
@@ -325,30 +324,28 @@ public class ReviewChecklistManage { | |||||
List<ReviewChecklistApprove> approves = reviewChecklistApproveService.list(Wrappers.lambdaQuery(ReviewChecklistApprove.class) | List<ReviewChecklistApprove> approves = reviewChecklistApproveService.list(Wrappers.lambdaQuery(ReviewChecklistApprove.class) | ||||
.eq(ReviewChecklistApprove::getProjectCode, projectCode) | .eq(ReviewChecklistApprove::getProjectCode, projectCode) | ||||
.orderByAsc(ReviewChecklistApprove::getCreateOn)); | .orderByAsc(ReviewChecklistApprove::getCreateOn)); | ||||
if(CollUtil.isEmpty(approves)){ | |||||
if (CollUtil.isEmpty(approves)) { | |||||
throw new BizException("该项目 未被七大审查人 审批!"); | throw new BizException("该项目 未被七大审查人 审批!"); | ||||
} | } | ||||
List<String> reviewHumans = Lists.newArrayList();; | |||||
if(BizConst.DEV.equals(active)){ | |||||
List<String> reviewHumans; | |||||
if (BizConst.DEV.equals(active)) { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZYD; | ||||
}else{ | |||||
} else { | |||||
reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | reviewHumans = DeclaredProjectContant.ReviewChecklist.REVIEW_HUMANS_ZZD; | ||||
} | } | ||||
Set<String> computeHumanSet = reviewHumans.stream().collect(Collectors.toSet()); | |||||
for(ReviewChecklistApprove approve : approves){ | |||||
if(computeHumanSet.contains(approve.getCreateByCode())){ | |||||
computeHumanSet.remove(approve.getCreateByCode()); | |||||
} | |||||
Set<String> computeHumanSet = new HashSet<>(reviewHumans); | |||||
for (ReviewChecklistApprove approve : approves) { | |||||
computeHumanSet.remove(approve.getCreateByCode()); | |||||
} | } | ||||
if(CollUtil.isNotEmpty(computeHumanSet)){ | |||||
if (CollUtil.isNotEmpty(computeHumanSet)) { | |||||
throw new BizException("此项目的审查清单 未被七大审核人 审批完!"); | throw new BizException("此项目的审查清单 未被七大审核人 审批完!"); | ||||
} | } | ||||
//做成map 并且还要 未通过的 | //做成map 并且还要 未通过的 | ||||
Map<String, List<ReviewChecklistApprove>> groupTitleMap = approves.stream() | Map<String, List<ReviewChecklistApprove>> groupTitleMap = approves.stream() | ||||
.filter(r -> Objects.nonNull(r.getReviewResult()) && Lists.newArrayList( | .filter(r -> Objects.nonNull(r.getReviewResult()) && Lists.newArrayList( | ||||
ReviewChecklistResultEnum.NOT_PASS.getCode(),ReviewChecklistResultEnum.ONE_VOTE_VETO.getCode()) | |||||
ReviewChecklistResultEnum.NOT_PASS.getCode(), ReviewChecklistResultEnum.ONE_VOTE_VETO.getCode()) | |||||
.contains(r.getReviewResult())) | .contains(r.getReviewResult())) | ||||
.collect(Collectors.groupingBy(ReviewChecklistApprove::getTitle)); | .collect(Collectors.groupingBy(ReviewChecklistApprove::getTitle)); | ||||
//去重子标题 | //去重子标题 | ||||
@@ -359,7 +356,7 @@ public class ReviewChecklistManage { | |||||
.map(r -> { | .map(r -> { | ||||
FormsReviewChecklistDto vo = new FormsReviewChecklistDto(); | FormsReviewChecklistDto vo = new FormsReviewChecklistDto(); | ||||
vo.setTitle(r.getTitle()); | vo.setTitle(r.getTitle()); | ||||
if(groupTitleMap.containsKey(r.getTitle())){ | |||||
if (groupTitleMap.containsKey(r.getTitle())) { | |||||
List<ReviewChecklistApprove> reviewChecklistApproves = groupTitleMap.get(r.getTitle()); | List<ReviewChecklistApprove> reviewChecklistApproves = groupTitleMap.get(r.getTitle()); | ||||
vo.setModules(convertModulesFinal(reviewChecklistApproves)); | vo.setModules(convertModulesFinal(reviewChecklistApproves)); | ||||
} | } | ||||
@@ -391,20 +388,20 @@ public class ReviewChecklistManage { | |||||
vo.setRejectionSituation(r.getRejectionSituation()); | vo.setRejectionSituation(r.getRejectionSituation()); | ||||
vo.setResponseSituation(r.getResponseSituation()); | vo.setResponseSituation(r.getResponseSituation()); | ||||
vo.setCorrPageNum(r.getCorrPageNum()); | vo.setCorrPageNum(r.getCorrPageNum()); | ||||
if(groupSubTitleMap.containsKey(r.getSubTitle())){ | |||||
if (groupSubTitleMap.containsKey(r.getSubTitle())) { | |||||
List<ReviewChecklistApprove> approves = groupSubTitleMap.get(r.getSubTitle()); | List<ReviewChecklistApprove> approves = groupSubTitleMap.get(r.getSubTitle()); | ||||
StringBuffer reviewCommentsSb = new StringBuffer(); | |||||
for(ReviewChecklistApprove approve : approves){ | |||||
StringBuilder reviewCommentsSb = new StringBuilder(); | |||||
for (ReviewChecklistApprove approve : approves) { | |||||
ReviewChecklistResultEnum match = ReviewChecklistResultEnum.match(approve.getReviewResult()); | ReviewChecklistResultEnum match = ReviewChecklistResultEnum.match(approve.getReviewResult()); | ||||
reviewCommentsSb.append(approve.getCreateBy() + StrPool.COLON + (Objects.nonNull(match)?match.getDesc():StringUtils.EMPTY) + | |||||
(StringUtils.isNotBlank(approve.getReviewComments())?StrPool.COMMA+approve.getReviewComments():StringUtils.EMPTY) + "\n"); | |||||
reviewCommentsSb.append(approve.getCreateBy()) | |||||
.append(StrPool.COLON).append(Objects.nonNull(match) ? match.getDesc() : StringUtils.EMPTY) | |||||
.append(StringUtils.isNotBlank(approve.getReviewComments()) ? StrPool.COMMA + approve.getReviewComments() : StringUtils.EMPTY) | |||||
.append("\n"); | |||||
} | } | ||||
vo.setReviewComments(reviewCommentsSb.toString()); | vo.setReviewComments(reviewCommentsSb.toString()); | ||||
} | } | ||||
return vo; | return vo; | ||||
}) | |||||
.collect(Collectors.toList()); | |||||
}).collect(Collectors.toList()); | |||||
} | } | ||||
private List<ReviewChecklistModuleDto> convertModulesFinal(List<ReviewChecklistApprove> reviewChecklistApproves) { | private List<ReviewChecklistModuleDto> convertModulesFinal(List<ReviewChecklistApprove> reviewChecklistApproves) { | ||||
@@ -424,17 +421,16 @@ public class ReviewChecklistManage { | |||||
vo.setRejectionSituation(r.getRejectionSituation()); | vo.setRejectionSituation(r.getRejectionSituation()); | ||||
vo.setResponseSituation(r.getResponseSituation()); | vo.setResponseSituation(r.getResponseSituation()); | ||||
vo.setCorrPageNum(r.getCorrPageNum()); | vo.setCorrPageNum(r.getCorrPageNum()); | ||||
if(groupSubTitleMap.containsKey(r.getSubTitle())){ | |||||
if (groupSubTitleMap.containsKey(r.getSubTitle())) { | |||||
List<ReviewChecklistApprove> approves = groupSubTitleMap.get(r.getSubTitle()); | List<ReviewChecklistApprove> approves = groupSubTitleMap.get(r.getSubTitle()); | ||||
StringBuffer reviewCommentsSb = new StringBuffer(); | |||||
if(CollUtil.isEmpty(approves)){ | |||||
StringBuilder reviewCommentsSb = new StringBuilder(); | |||||
if (CollUtil.isEmpty(approves)) { | |||||
vo.setReviewComments("通过"); | vo.setReviewComments("通过"); | ||||
}else{ | |||||
} else { | |||||
Integer index = 1; | Integer index = 1; | ||||
for(ReviewChecklistApprove approve : approves){ | |||||
for (ReviewChecklistApprove approve : approves) { | |||||
ReviewChecklistResultEnum match = ReviewChecklistResultEnum.match(approve.getReviewResult()); | ReviewChecklistResultEnum match = ReviewChecklistResultEnum.match(approve.getReviewResult()); | ||||
reviewCommentsSb.append(index + StrPool.DOT + (Objects.nonNull(match)?match.getDesc():StringUtils.EMPTY) + | |||||
(StringUtils.isNotBlank(approve.getReviewComments())?StrPool.COMMA+approve.getReviewComments():StringUtils.EMPTY) + "\n"); | |||||
reviewCommentsSb.append(index).append(StrPool.DOT).append(Objects.nonNull(match) ? match.getDesc() : StringUtils.EMPTY).append(StringUtils.isNotBlank(approve.getReviewComments()) ? StrPool.COMMA + approve.getReviewComments() : StringUtils.EMPTY).append("\n"); | |||||
index++; | index++; | ||||
} | } | ||||
vo.setReviewComments(reviewCommentsSb.toString()); | vo.setReviewComments(reviewCommentsSb.toString()); | ||||
@@ -1,12 +1,11 @@ | |||||
package com.hz.pm.api.projectdeclared.mapper; | package com.hz.pm.api.projectdeclared.mapper; | ||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
import com.hz.pm.api.projectdeclared.model.entity.IrsApplication; | |||||
import com.hz.pm.api.projectdeclared.model.entity.NdPiotTasks; | import com.hz.pm.api.projectdeclared.model.entity.NdPiotTasks; | ||||
/** | /** | ||||
* <p> | * <p> | ||||
* Mapper 接口 | |||||
* Mapper 接口 | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author zpf | * @author zpf | ||||
@@ -10,7 +10,6 @@ import lombok.Data; | |||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDate; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
/** | /** | ||||
@@ -1,13 +1,13 @@ | |||||
package com.hz.pm.api.projectdeclared.model.vo; | package com.hz.pm.api.projectdeclared.model.vo; | ||||
import com.baomidou.mybatisplus.annotation.*; | |||||
import com.baomidou.mybatisplus.annotation.FieldFill; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import com.fasterxml.jackson.annotation.JsonFormat; | import com.fasterxml.jackson.annotation.JsonFormat; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDate; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -6,7 +6,6 @@ import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
import javax.validation.constraints.NotNull; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
/** | /** | ||||
@@ -1,14 +1,10 @@ | |||||
package com.hz.pm.api.projectdeclared.model.vo; | package com.hz.pm.api.projectdeclared.model.vo; | ||||
import com.wflow.enums.ReviewChecklistResultEnum; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.Data; | import lombok.Data; | ||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
/** | /** | ||||
* @Classname ReviewCheckInfoVO | * @Classname ReviewCheckInfoVO | ||||
* @Description | * @Description | ||||
@@ -8,7 +8,11 @@ package com.hz.pm.api.projectlib.constant; | |||||
*/ | */ | ||||
public interface ProjectConstant { | public interface ProjectConstant { | ||||
class ProjectLib{ | |||||
class ProjectLib { | |||||
private ProjectLib() { | |||||
} | |||||
public static final String PROJECT_BASIC = "basic"; | public static final String PROJECT_BASIC = "basic"; | ||||
public static final String PROJECT_CONSTRUCT = "construct"; | public static final String PROJECT_CONSTRUCT = "construct"; | ||||
@@ -1,31 +1,29 @@ | |||||
package com.hz.pm.api.projectlib.handle; | package com.hz.pm.api.projectlib.handle; | ||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import com.ningdatech.basic.util.NdDateUtils; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.constant.CommonConst; | |||||
import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | |||||
import com.hz.pm.api.projectlib.service.IProjectInstService; | |||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.projectlib.utils.ProjectVersionUtil; | |||||
import com.hz.pm.api.todocenter.constant.TodoCenterConstant; | import com.hz.pm.api.todocenter.constant.TodoCenterConstant; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
import com.ningdatech.basic.util.NdDateUtils; | |||||
import com.wflow.workflow.bean.process.ProgressNode; | import com.wflow.workflow.bean.process.ProgressNode; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import com.wflow.workflow.bean.vo.ProcessProgressVo; | |||||
import com.wflow.workflow.enums.ProcessStatusEnum; | |||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | |||||
import org.springframework.core.annotation.Order; | import org.springframework.core.annotation.Order; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.hz.pm.api.common.constant.CommonConst; | |||||
import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | |||||
import com.hz.pm.api.projectlib.service.IProjectInstService; | |||||
import com.wflow.workflow.bean.vo.ProcessProgressVo; | |||||
import com.wflow.workflow.enums.ProcessStatusEnum; | |||||
import com.wflow.workflow.service.ProcessInstanceService; | |||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
/** | /** | ||||
* 部门联审审核处理 | * 部门联审审核处理 | ||||
@@ -42,18 +40,17 @@ public class DeptUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
private final IProjectService projectService; | private final IProjectService projectService; | ||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
private final BuildUserUtils buildUserUtils; | private final BuildUserUtils buildUserUtils; | ||||
private final ProjectVersionUtil projectVersionUtil; | |||||
private Integer order = 5; | private Integer order = 5; | ||||
public DeptUnitedReviewHandle(IProjectInstService projectInstService,IProjectService projectService | |||||
, ProcessInstanceService processInstanceService, BuildUserUtils buildUserUtils, | |||||
ProjectVersionUtil projectVersionUtil){ | |||||
public DeptUnitedReviewHandle(IProjectInstService projectInstService, | |||||
IProjectService projectService, | |||||
ProcessInstanceService processInstanceService, | |||||
BuildUserUtils buildUserUtils) { | |||||
this.projectInstService = projectInstService; | this.projectInstService = projectInstService; | ||||
this.projectService = projectService; | this.projectService = projectService; | ||||
this.processInstanceService = processInstanceService; | this.processInstanceService = processInstanceService; | ||||
this.buildUserUtils = buildUserUtils; | this.buildUserUtils = buildUserUtils; | ||||
this.projectVersionUtil = projectVersionUtil; | |||||
} | } | ||||
@Override | @Override | ||||
@@ -70,7 +67,7 @@ public class DeptUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
.ne(ProjectInst::getInstCode, TodoCenterConstant.Declared.NULL_INST_CODE) | .ne(ProjectInst::getInstCode, TodoCenterConstant.Declared.NULL_INST_CODE) | ||||
.orderByDesc(ProjectInst::getCreatOn) | .orderByDesc(ProjectInst::getCreatOn) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if (Objects.isNull(projectInst)){ | |||||
if (Objects.isNull(projectInst)) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | ||||
processDetailVO.setProcessName(CommonConst.DEPT_UNITED_REVIEW); | processDetailVO.setProcessName(CommonConst.DEPT_UNITED_REVIEW); | ||||
processSchedule.add(processDetailVO); | processSchedule.add(processDetailVO); | ||||
@@ -79,7 +76,7 @@ public class DeptUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
String instCode = projectInst.getInstCode(); | String instCode = projectInst.getInstCode(); | ||||
ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, instCode); | ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, instCode); | ||||
String status = instanceDetail.getStatus(); | String status = instanceDetail.getStatus(); | ||||
if (ProcessStatusEnum.UNDER_REVIEW.getDesc().equals(status)){ | |||||
if (ProcessStatusEnum.UNDER_REVIEW.getDesc().equals(status)) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.ON_GOING); | processDetailVO.setStepStatus(StepStatusEnum.ON_GOING); | ||||
} else if (ProcessStatusEnum.BE_REJECTED.getDesc().equals(status)) { | } else if (ProcessStatusEnum.BE_REJECTED.getDesc().equals(status)) { | ||||
processDetailVO.setStepStatus(StepStatusEnum.REJECTED); | processDetailVO.setStepStatus(StepStatusEnum.REJECTED); | ||||
@@ -98,7 +95,7 @@ public class DeptUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
LocalDateTime finishTime = NdDateUtils.date2LocalDateTime(progressNode.getFinishTime()); | LocalDateTime finishTime = NdDateUtils.date2LocalDateTime(progressNode.getFinishTime()); | ||||
processDetailVO.setFinishTime(finishTime); | processDetailVO.setFinishTime(finishTime); | ||||
} | } | ||||
}else { | |||||
} else { | |||||
LocalDateTime finishTime = NdDateUtils.date2LocalDateTime(instanceDetail.getStartTime()); | LocalDateTime finishTime = NdDateUtils.date2LocalDateTime(instanceDetail.getStartTime()); | ||||
processDetailVO.setFinishTime(finishTime); | processDetailVO.setFinishTime(finishTime); | ||||
} | } | ||||
@@ -14,11 +14,11 @@ import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.service.ProcessModelService; | import com.wflow.workflow.service.ProcessModelService; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.Collections; | import java.util.Collections; | ||||
import java.util.Comparator; | import java.util.Comparator; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
import java.util.stream.Collectors; | |||||
/** | /** | ||||
* 流程执行链 | * 流程执行链 | ||||
@@ -46,56 +46,55 @@ public class ProcessExecuteChainHandle { | |||||
/** | /** | ||||
* 遍历处理链,通过前缀判断能否处理逻辑,如果不能继续遍历 | * 遍历处理链,通过前缀判断能否处理逻辑,如果不能继续遍历 | ||||
* | |||||
* @param projectId | * @param projectId | ||||
* @return void | * @return void | ||||
* @author CMM | * @author CMM | ||||
* @since 2023/02/26 | * @since 2023/02/26 | ||||
*/ | */ | ||||
public List<ProcessDetailVO> handle(Long projectId, List<ProcessDetailVO> processSchedule){ | |||||
public List<ProcessDetailVO> handle(Long projectId, List<ProcessDetailVO> processSchedule) { | |||||
Project project = projectService.getById(projectId); | Project project = projectService.getById(projectId); | ||||
List<AbstractProcessBusinessHandle> handles = Lists.newArrayList(); | List<AbstractProcessBusinessHandle> handles = Lists.newArrayList(); | ||||
for (AbstractProcessBusinessHandle processBusinessHandle : processBusinessHandles) { | for (AbstractProcessBusinessHandle processBusinessHandle : processBusinessHandles) { | ||||
if(Objects.nonNull(project) && RegionContant.LS_LQ_CODE.equals(project.getAreaCode())) { | |||||
if(processBusinessHandle instanceof AnnualPlanHandle){ | |||||
if (Objects.nonNull(project) && RegionContant.LS_LQ_CODE.equals(project.getAreaCode())) { | |||||
if (processBusinessHandle instanceof AnnualPlanHandle) { | |||||
processBusinessHandle.setOrder(7); | processBusinessHandle.setOrder(7); | ||||
}else if(processBusinessHandle instanceof ConstructionPlanReviewHandle){ | |||||
} else if (processBusinessHandle instanceof ConstructionPlanReviewHandle) { | |||||
processBusinessHandle.setOrder(6); | processBusinessHandle.setOrder(6); | ||||
} | } | ||||
}else{ | |||||
if(processBusinessHandle instanceof AnnualPlanHandle){ | |||||
} else { | |||||
if (processBusinessHandle instanceof AnnualPlanHandle) { | |||||
processBusinessHandle.setOrder(6); | processBusinessHandle.setOrder(6); | ||||
}else if(processBusinessHandle instanceof ConstructionPlanReviewHandle){ | |||||
} else if (processBusinessHandle instanceof ConstructionPlanReviewHandle) { | |||||
processBusinessHandle.setOrder(7); | processBusinessHandle.setOrder(7); | ||||
} | } | ||||
} | } | ||||
//建设方案 | //建设方案 | ||||
if(processBusinessHandle instanceof ConstructionPlanReviewHandle){ | |||||
if (processBusinessHandle instanceof ConstructionPlanReviewHandle) { | |||||
WflowModels model = processModelService.getOne(Wrappers.lambdaQuery(WflowModels.class) | WflowModels model = processModelService.getOne(Wrappers.lambdaQuery(WflowModels.class) | ||||
.eq(WflowModels::getRegionCode, project.getAreaCode()) | .eq(WflowModels::getRegionCode, project.getAreaCode()) | ||||
.eq(WflowModels::getProcessType, ProjectProcessStageEnum.CONSTRUCTION_PROJECT_APPROVAL_PROCESS.getCode()) | .eq(WflowModels::getProcessType, ProjectProcessStageEnum.CONSTRUCTION_PROJECT_APPROVAL_PROCESS.getCode()) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if(Objects.nonNull(model)){ | |||||
if(!model.getIsStop()){ | |||||
if (Objects.nonNull(model)) { | |||||
if (!model.getIsStop()) { | |||||
handles.add(processBusinessHandle); | handles.add(processBusinessHandle); | ||||
} | } | ||||
} | } | ||||
}else if(processBusinessHandle instanceof ProvinceUnitedReviewHandle){ | |||||
} else if (processBusinessHandle instanceof ProvinceUnitedReviewHandle) { | |||||
//省级联审 | //省级联审 | ||||
if (StateMachineUtils.isCityProject(project) && StateMachineUtils.judgeDeclareAmount(project, | if (StateMachineUtils.isCityProject(project) && StateMachineUtils.judgeDeclareAmount(project, | ||||
ProjectDeclareConst.Number.DECLARE_AMOUNT_JUDGEMENT)){ | |||||
ProjectDeclareConst.Number.DECLARE_AMOUNT_JUDGEMENT)) { | |||||
handles.add(processBusinessHandle); | handles.add(processBusinessHandle); | ||||
} | } | ||||
}else{ | |||||
} else { | |||||
handles.add(processBusinessHandle); | handles.add(processBusinessHandle); | ||||
} | } | ||||
} | } | ||||
handles = handles.stream() | |||||
.sorted(Comparator.comparing(AbstractProcessBusinessHandle::getOrder)) | |||||
.collect(Collectors.toList()); | |||||
if (handles.size() > 0) { | |||||
if (!handles.isEmpty()) { | |||||
handles.sort(Comparator.comparing(AbstractProcessBusinessHandle::getOrder)); | |||||
for (AbstractProcessBusinessHandle processBusinessHandle : handles) { | for (AbstractProcessBusinessHandle processBusinessHandle : handles) { | ||||
processBusinessHandle.businessHandle(projectId, processSchedule); | processBusinessHandle.businessHandle(projectId, processSchedule); | ||||
} | } | ||||
@@ -1,25 +1,23 @@ | |||||
package com.hz.pm.api.projectlib.handle; | package com.hz.pm.api.projectlib.handle; | ||||
import java.util.*; | |||||
import java.util.stream.Collectors; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.hz.pm.api.common.constant.BizConst; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.enums.StepStatusEnum; | |||||
import org.springframework.core.annotation.Order; | |||||
import org.springframework.stereotype.Component; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.constant.BizConst; | |||||
import com.hz.pm.api.common.constant.CommonConst; | import com.hz.pm.api.common.constant.CommonConst; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.manage.AnnualPlanLibManage; | import com.hz.pm.api.projectlib.manage.AnnualPlanLibManage; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | ||||
import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService; | import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.enums.StepStatusEnum; | |||||
import org.springframework.core.annotation.Order; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.Arrays; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
import static com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum.*; | import static com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum.*; | ||||
@@ -10,9 +10,9 @@ import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService; | |||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.core.annotation.Order; | import org.springframework.core.annotation.Order; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
@@ -31,7 +31,7 @@ public class ProvinceUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
private Integer order = 3; | private Integer order = 3; | ||||
public ProvinceUnitedReviewHandle(IProjectService projectService, | public ProvinceUnitedReviewHandle(IProjectService projectService, | ||||
INdProjectStatusChangeService projectStatusChangeService){ | |||||
INdProjectStatusChangeService projectStatusChangeService) { | |||||
this.projectService = projectService; | this.projectService = projectService; | ||||
this.projectStatusChangeService = projectStatusChangeService; | this.projectStatusChangeService = projectStatusChangeService; | ||||
} | } | ||||
@@ -45,7 +45,7 @@ public class ProvinceUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
List<Long> allVersionProjectId = projectService.getAllVersionProjectId(projectId); | List<Long> allVersionProjectId = projectService.getAllVersionProjectId(projectId); | ||||
// 根据项目ID查询出部门联审流程的流程状态 | // 根据项目ID查询出部门联审流程的流程状态 | ||||
if (Objects.isNull(project)){ | |||||
if (Objects.isNull(project)) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | ||||
processDetailVO.setProcessName(CommonConst.PROVINCE_UNITED_REVIEW); | processDetailVO.setProcessName(CommonConst.PROVINCE_UNITED_REVIEW); | ||||
processSchedule.add(processDetailVO); | processSchedule.add(processDetailVO); | ||||
@@ -53,7 +53,7 @@ public class ProvinceUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
} | } | ||||
Integer status = project.getStatus(); | Integer status = project.getStatus(); | ||||
if (ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode().equals(status)){ | |||||
if (ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode().equals(status)) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.ON_GOING); | processDetailVO.setStepStatus(StepStatusEnum.ON_GOING); | ||||
ProjectStatusChange startChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ProjectStatusChange startChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ||||
.in(ProjectStatusChange::getProjectId, allVersionProjectId) | .in(ProjectStatusChange::getProjectId, allVersionProjectId) | ||||
@@ -61,10 +61,10 @@ public class ProvinceUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
.eq(ProjectStatusChange::getAfterStatus, ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode()).orderByDesc(ProjectStatusChange::getCreateOn) | .eq(ProjectStatusChange::getAfterStatus, ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode()).orderByDesc(ProjectStatusChange::getCreateOn) | ||||
.orderByDesc(ProjectStatusChange::getCreateOn) | .orderByDesc(ProjectStatusChange::getCreateOn) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if(Objects.nonNull(startChange)){ | |||||
if (Objects.nonNull(startChange)) { | |||||
processDetailVO.setFinishTime(startChange.getCreateOn()); | processDetailVO.setFinishTime(startChange.getCreateOn()); | ||||
} | } | ||||
} else if(status.compareTo(ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode()) > 0){ | |||||
} else if (status.compareTo(ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS.getCode()) > 0) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); | processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); | ||||
ProjectStatusChange passChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ProjectStatusChange passChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ||||
.in(ProjectStatusChange::getProjectId, allVersionProjectId) | .in(ProjectStatusChange::getProjectId, allVersionProjectId) | ||||
@@ -72,10 +72,10 @@ public class ProvinceUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
.eq(ProjectStatusChange::getAfterStatus, ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_SUCCESS.getCode()) | .eq(ProjectStatusChange::getAfterStatus, ProjectStatusEnum.JOINT_REVIEW_BY_PROVINCIAL_DEPARTMENTS_SUCCESS.getCode()) | ||||
.orderByDesc(ProjectStatusChange::getCreateOn) | .orderByDesc(ProjectStatusChange::getCreateOn) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if(Objects.nonNull(passChange)){ | |||||
if (Objects.nonNull(passChange)) { | |||||
processDetailVO.setFinishTime(passChange.getCreateOn()); | processDetailVO.setFinishTime(passChange.getCreateOn()); | ||||
} | } | ||||
}else if(status.compareTo(ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode()) > 0){ | |||||
} else if (status.compareTo(ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode()) > 0) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.REJECTED); | processDetailVO.setStepStatus(StepStatusEnum.REJECTED); | ||||
ProjectStatusChange rejectChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ProjectStatusChange rejectChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ||||
.in(ProjectStatusChange::getProjectId, allVersionProjectId) | .in(ProjectStatusChange::getProjectId, allVersionProjectId) | ||||
@@ -83,10 +83,10 @@ public class ProvinceUnitedReviewHandle extends AbstractProcessBusinessHandle { | |||||
.eq(ProjectStatusChange::getAfterStatus, ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode()) | .eq(ProjectStatusChange::getAfterStatus, ProjectStatusEnum.THE_JOINT_REVIEW_OF_PROVINCIAL_DEPARTMENTS_FAILED.getCode()) | ||||
.orderByDesc(ProjectStatusChange::getCreateOn) | .orderByDesc(ProjectStatusChange::getCreateOn) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if(Objects.nonNull(rejectChange)){ | |||||
if (Objects.nonNull(rejectChange)) { | |||||
processDetailVO.setFinishTime(rejectChange.getCreateOn()); | processDetailVO.setFinishTime(rejectChange.getCreateOn()); | ||||
} | } | ||||
}else{ | |||||
} else { | |||||
processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | ||||
processDetailVO.setProcessName(CommonConst.PROVINCE_UNITED_REVIEW); | processDetailVO.setProcessName(CommonConst.PROVINCE_UNITED_REVIEW); | ||||
processSchedule.add(processDetailVO); | processSchedule.add(processDetailVO); | ||||
@@ -1,25 +1,25 @@ | |||||
package com.hz.pm.api.projectlib.handle; | package com.hz.pm.api.projectlib.handle; | ||||
import static com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum.*; | |||||
import java.util.*; | |||||
import java.util.stream.Collectors; | |||||
import com.hz.pm.api.common.constant.BizConst; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.enums.StepStatusEnum; | |||||
import org.springframework.core.annotation.Order; | |||||
import org.springframework.stereotype.Component; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.hz.pm.api.common.constant.BizConst; | |||||
import com.hz.pm.api.common.constant.CommonConst; | import com.hz.pm.api.common.constant.CommonConst; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | |||||
import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService; | import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.enums.StepStatusEnum; | |||||
import org.springframework.core.annotation.Order; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.Arrays; | |||||
import java.util.List; | |||||
import java.util.Objects; | |||||
import static com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum.*; | |||||
/** | /** | ||||
* 招标采购处理 | * 招标采购处理 | ||||
@@ -47,7 +47,7 @@ public class TenderPurchaseHandle extends AbstractProcessBusinessHandle { | |||||
ACCEPTED | ACCEPTED | ||||
); | ); | ||||
public TenderPurchaseHandle(INdProjectStatusChangeService projectStatusChangeService, IProjectService projectService){ | |||||
public TenderPurchaseHandle(INdProjectStatusChangeService projectStatusChangeService, IProjectService projectService) { | |||||
this.projectStatusChangeService = projectStatusChangeService; | this.projectStatusChangeService = projectStatusChangeService; | ||||
this.projectService = projectService; | this.projectService = projectService; | ||||
} | } | ||||
@@ -60,7 +60,7 @@ public class TenderPurchaseHandle extends AbstractProcessBusinessHandle { | |||||
List<Long> allVersionProjectIds = projectService.getAllVersionProjectId(project); | List<Long> allVersionProjectIds = projectService.getAllVersionProjectId(project); | ||||
Integer status = project.getStatus(); | Integer status = project.getStatus(); | ||||
// 未进行立项批复 | // 未进行立项批复 | ||||
if (Objects.isNull(project.getApprovalDate())){ | |||||
if (Objects.isNull(project.getApprovalDate())) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | processDetailVO.setStepStatus(StepStatusEnum.NOT_START); | ||||
processDetailVO.setProcessName(CommonConst.TENDER_PURCHASE); | processDetailVO.setProcessName(CommonConst.TENDER_PURCHASE); | ||||
processSchedule.add(processDetailVO); | processSchedule.add(processDetailVO); | ||||
@@ -68,9 +68,9 @@ public class TenderPurchaseHandle extends AbstractProcessBusinessHandle { | |||||
} | } | ||||
List<Integer> fieldList = CollUtils.fieldList(TENDER_PURCHASE_LIST_STATUS, ProjectStatusEnum::getCode); | List<Integer> fieldList = CollUtils.fieldList(TENDER_PURCHASE_LIST_STATUS, ProjectStatusEnum::getCode); | ||||
// 进行了立项批复且项目状态是待采购 | // 进行了立项批复且项目状态是待采购 | ||||
if (ProjectStatusEnum.TO_BE_PURCHASED.getCode().equals(project.getStatus())){ | |||||
if (ProjectStatusEnum.TO_BE_PURCHASED.getCode().equals(project.getStatus())) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.ON_GOING); | processDetailVO.setStepStatus(StepStatusEnum.ON_GOING); | ||||
}else if (fieldList.contains(status)){ | |||||
} else if (fieldList.contains(status)) { | |||||
processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); | processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); | ||||
// 根据采购备案的时间获取 | // 根据采购备案的时间获取 | ||||
ProjectStatusChange projectStatusChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ProjectStatusChange projectStatusChange = projectStatusChangeService.getOne(Wrappers.lambdaQuery(ProjectStatusChange.class) | ||||
@@ -1,27 +1,20 @@ | |||||
package com.hz.pm.api.projectlib.handle; | package com.hz.pm.api.projectlib.handle; | ||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
import java.util.stream.Collectors; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.util.NdDateUtils; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.constant.CommonConst; | |||||
import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.service.IProjectInstService; | import com.hz.pm.api.projectlib.service.IProjectInstService; | ||||
import com.hz.pm.api.common.constant.CommonConst; | |||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.projectlib.utils.ProjectVersionUtil; | import com.hz.pm.api.projectlib.utils.ProjectVersionUtil; | ||||
import com.hz.pm.api.todocenter.constant.TodoCenterConstant; | import com.hz.pm.api.todocenter.constant.TodoCenterConstant; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.util.NdDateUtils; | |||||
import com.wflow.workflow.bean.dto.ProcessInstanceUserDto; | import com.wflow.workflow.bean.dto.ProcessInstanceUserDto; | ||||
import com.wflow.workflow.bean.process.ProgressNode; | import com.wflow.workflow.bean.process.ProgressNode; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
@@ -32,6 +25,11 @@ import com.wflow.workflow.service.ProcessInstanceService; | |||||
import org.springframework.core.annotation.Order; | import org.springframework.core.annotation.Order; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.time.LocalDateTime; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.util.Objects; | |||||
/** | /** | ||||
* 单位内部审核处理 | * 单位内部审核处理 | ||||
* | * | ||||
@@ -0,0 +1,42 @@ | |||||
package com.hz.pm.api.projectlib.helper; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectRenewalListReq; | |||||
/** | |||||
* <p> | |||||
* ProjectRenewFundHelper | |||||
* </p> | |||||
* | |||||
* @author ZPF | |||||
* @since 14:15 2023/11/16 | |||||
*/ | |||||
public class ProjectRenewFundHelper { | |||||
private ProjectRenewFundHelper() { | |||||
} | |||||
/** | |||||
* 通用项目查询 | |||||
* | |||||
* @param req 查询条件 | |||||
* @return / | |||||
**/ | |||||
public static LambdaQueryWrapper<Project> projectQuery(ProjectRenewalListReq req) { | |||||
LambdaQueryWrapper<Project> query = new LambdaQueryWrapper<>(); | |||||
query.eq(req.getRegionCode() != null, Project::getAreaCode, req.getRegionCode()) | |||||
.eq(req.getUserId() != null, Project::getCreateBy, req.getUserId()) | |||||
.like(req.getProjectName() != null, Project::getProjectName, req.getProjectName()) | |||||
.eq(req.getProjectType() != null, Project::getProjectType, req.getProjectType()) | |||||
.eq(req.getStage() != null, Project::getStage, req.getStage()) | |||||
.eq(req.getStatus() != null, Project::getStatus, req.getStatus()) | |||||
//状态 阶段 list | |||||
.in(CollUtil.isNotEmpty(req.getStageList()), Project::getStage, req.getStageList()) | |||||
.in(CollUtil.isNotEmpty(req.getStatusList()), Project::getStatus, req.getStatusList()) | |||||
.orderByDesc(Project::getUpdateOn); | |||||
return query; | |||||
} | |||||
} |
@@ -1,48 +0,0 @@ | |||||
package com.hz.pm.api.projectlib.helper; | |||||
import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.hz.pm.api.performance.model.entity.ProjectCoreBusinessIndicators; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectListReq; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectRenewalListReq; | |||||
import com.hz.pm.api.projectlib.model.vo.ProjectApplicationVO; | |||||
import org.apache.commons.lang3.StringUtils; | |||||
import org.springframework.beans.BeanUtils; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
/** | |||||
* <p> | |||||
* ProjectRenewwalFundHelper | |||||
* </p> | |||||
* | |||||
* @author ZPF | |||||
* @since 14:15 2023/11/16 | |||||
*/ | |||||
public class ProjectRenewwalFundHelper { | |||||
/** | |||||
* 通用项目查询 | |||||
* | |||||
* @param req 查询条件 | |||||
* @return / | |||||
**/ | |||||
public static LambdaQueryWrapper<Project> projectQuery(ProjectRenewalListReq req) { | |||||
LambdaQueryWrapper<Project> query = new LambdaQueryWrapper<>(); | |||||
query.eq(req.getRegionCode() != null, Project::getAreaCode, req.getRegionCode()) | |||||
.eq(req.getUserId() != null, Project::getCreateBy, req.getUserId()) | |||||
.like(req.getProjectName() != null, Project::getProjectName, req.getProjectName()) | |||||
.eq(req.getProjectType() != null, Project::getProjectType, req.getProjectType()) | |||||
.eq(req.getStage() != null, Project::getStage, req.getStage()) | |||||
.eq(req.getStatus() != null, Project::getStatus, req.getStatus()) | |||||
//状态 阶段 list | |||||
.in(CollUtil.isNotEmpty(req.getStageList()),Project::getStage,req.getStageList()) | |||||
.in(CollUtil.isNotEmpty(req.getStatusList()),Project::getStatus,req.getStatusList()) | |||||
.orderByDesc(Project::getUpdateOn); | |||||
return query; | |||||
} | |||||
} |
@@ -5,8 +5,6 @@ import cn.hutool.core.collection.CollUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.constant.RegionConst; | import com.hz.pm.api.common.constant.RegionConst; | ||||
import com.hz.pm.api.common.helper.RegionCacheHelper; | import com.hz.pm.api.common.helper.RegionCacheHelper; | ||||
@@ -19,10 +17,13 @@ import com.hz.pm.api.projectlib.service.IProjectCollectionService; | |||||
import com.hz.pm.api.sys.model.dto.RegionDTO; | import com.hz.pm.api.sys.model.dto.RegionDTO; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
import com.ningdatech.basic.function.VUtils; | |||||
import com.ningdatech.basic.model.PageVo; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
@@ -47,6 +48,7 @@ public class ProjectCollectionManage { | |||||
/** | /** | ||||
* 项目归集 | * 项目归集 | ||||
* | |||||
* @param req | * @param req | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -54,7 +56,7 @@ public class ProjectCollectionManage { | |||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
String buildOrgCode = req.getBuildOrgCode(); | String buildOrgCode = req.getBuildOrgCode(); | ||||
//如果是超管 可以看所有 | //如果是超管 可以看所有 | ||||
if(user.getSuperAdmin()){ | |||||
if (user.getSuperAdmin()) { | |||||
buildOrgCode = null; | buildOrgCode = null; | ||||
} | } | ||||
@@ -65,17 +67,17 @@ public class ProjectCollectionManage { | |||||
.like(StringUtils.isNotBlank(req.getBuildOrg()), ProjectCollection::getBuildOrg, req.getBuildOrg()) | .like(StringUtils.isNotBlank(req.getBuildOrg()), ProjectCollection::getBuildOrg, req.getBuildOrg()) | ||||
.eq(Objects.nonNull(buildOrgCode), ProjectCollection::getBuildOrgCode, buildOrgCode); | .eq(Objects.nonNull(buildOrgCode), ProjectCollection::getBuildOrgCode, buildOrgCode); | ||||
//处理 行政区域 | //处理 行政区域 | ||||
if(StringUtils.isNotBlank(req.getRegionCode())){ | |||||
if (StringUtils.isNotBlank(req.getRegionCode())) { | |||||
List<RegionDTO> regions = regionCacheHelper.listChildren(req.getRegionCode(), req.getRegionLevel()); | List<RegionDTO> regions = regionCacheHelper.listChildren(req.getRegionCode(), req.getRegionLevel()); | ||||
if(CollUtil.isNotEmpty(regions)){ | |||||
wrapper.in(ProjectCollection::getAreaCode,regions.stream().map(RegionDTO::getRegionCode).collect(Collectors.toList())); | |||||
if (CollUtil.isNotEmpty(regions)) { | |||||
wrapper.in(ProjectCollection::getAreaCode, regions.stream().map(RegionDTO::getRegionCode).collect(Collectors.toList())); | |||||
} | } | ||||
} | } | ||||
collectionService.page(page,wrapper); | |||||
collectionService.page(page, wrapper); | |||||
if(CollUtil.isEmpty(page.getRecords())){ | |||||
if (CollUtil.isEmpty(page.getRecords())) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -84,37 +86,38 @@ public class ProjectCollectionManage { | |||||
ProjectCollectionVO vo = BeanUtil.copyProperties(record, ProjectCollectionVO.class); | ProjectCollectionVO vo = BeanUtil.copyProperties(record, ProjectCollectionVO.class); | ||||
vo.setArea(regionCacheHelper.getDisplayName(record.getAreaCode(), RegionConst.RL_COUNTY)); | vo.setArea(regionCacheHelper.getDisplayName(record.getAreaCode(), RegionConst.RL_COUNTY)); | ||||
return vo; | return vo; | ||||
}) | |||||
.collect(Collectors.toList()); | |||||
}).collect(Collectors.toList()); | |||||
return PageVo.of(res,page.getTotal()); | |||||
return PageVo.of(res, page.getTotal()); | |||||
} | } | ||||
/** | /** | ||||
* 项目归集详情 | * 项目归集详情 | ||||
* @param id | |||||
* @return | |||||
* | |||||
* @param id \ | |||||
* @return \ | |||||
*/ | */ | ||||
public ProjectCollectionVO detail(Long id) { | public ProjectCollectionVO detail(Long id) { | ||||
ProjectCollection projectCollection = collectionService.getById(id); | ProjectCollection projectCollection = collectionService.getById(id); | ||||
return BeanUtil.copyProperties(projectCollection,ProjectCollectionVO.class); | |||||
return BeanUtil.copyProperties(projectCollection, ProjectCollectionVO.class); | |||||
} | } | ||||
/** | /** | ||||
* 保存 | * 保存 | ||||
* | |||||
* @param dto | * @param dto | ||||
* @return | * @return | ||||
*/ | */ | ||||
public String save(ProjectCollectionSaveDTO dto) { | public String save(ProjectCollectionSaveDTO dto) { | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
ProjectCollection projectCollection = BeanUtil.copyProperties(dto,ProjectCollection.class); | |||||
if(Objects.nonNull(dto.getId())){ | |||||
ProjectCollection projectCollection = BeanUtil.copyProperties(dto, ProjectCollection.class); | |||||
if (Objects.nonNull(dto.getId())) { | |||||
ProjectCollection old = collectionService.getById(dto.getId()); | ProjectCollection old = collectionService.getById(dto.getId()); | ||||
VUtils.isTrue(Objects.isNull(old)).throwMessage("该项目归集不存在!"); | VUtils.isTrue(Objects.isNull(old)).throwMessage("该项目归集不存在!"); | ||||
projectCollection.setId(dto.getId()); | projectCollection.setId(dto.getId()); | ||||
}else{ | |||||
} else { | |||||
projectCollection.setProjectCode(generateProjectCodeUtil.generateProjectCode(projectCollection)); | projectCollection.setProjectCode(generateProjectCodeUtil.generateProjectCode(projectCollection)); | ||||
projectCollection.setCreateBy(user.getUsername()); | projectCollection.setCreateBy(user.getUsername()); | ||||
projectCollection.setCreateOn(LocalDateTime.now()); | projectCollection.setCreateOn(LocalDateTime.now()); | ||||
@@ -122,7 +125,7 @@ public class ProjectCollectionManage { | |||||
projectCollection.setUpdateBy(user.getUsername()); | projectCollection.setUpdateBy(user.getUsername()); | ||||
projectCollection.setUpdateOn(LocalDateTime.now()); | projectCollection.setUpdateOn(LocalDateTime.now()); | ||||
if(collectionService.saveOrUpdate(projectCollection)){ | |||||
if (collectionService.saveOrUpdate(projectCollection)) { | |||||
return BizConst.SAVE_SUCCESS; | return BizConst.SAVE_SUCCESS; | ||||
} | } | ||||
return BizConst.SAVE_FAIL; | return BizConst.SAVE_FAIL; | ||||
@@ -130,6 +133,7 @@ public class ProjectCollectionManage { | |||||
/** | /** | ||||
* 删除 | * 删除 | ||||
* | |||||
* @param id | * @param id | ||||
* @return | * @return | ||||
*/ | */ | ||||
@@ -138,7 +142,7 @@ public class ProjectCollectionManage { | |||||
VUtils.isTrue(Objects.isNull(projectCollection)).throwMessage("该项目归集不存在 删除失败"); | VUtils.isTrue(Objects.isNull(projectCollection)).throwMessage("该项目归集不存在 删除失败"); | ||||
if(collectionService.removeById(id)){ | |||||
if (collectionService.removeById(id)) { | |||||
return "删除成功"; | return "删除成功"; | ||||
} | } | ||||
return "删除失败"; | return "删除失败"; | ||||
@@ -29,23 +29,18 @@ import com.hz.pm.api.gov.service.IGovBizProjectApplyService; | |||||
import com.hz.pm.api.gov.service.IGovBizProjectApproveService; | import com.hz.pm.api.gov.service.IGovBizProjectApproveService; | ||||
import com.hz.pm.api.gov.service.IGovBizProjectBaseinfoService; | import com.hz.pm.api.gov.service.IGovBizProjectBaseinfoService; | ||||
import com.hz.pm.api.gov.service.IGovOperationProjectBaseinfoService; | import com.hz.pm.api.gov.service.IGovOperationProjectBaseinfoService; | ||||
import com.hz.pm.api.portrait.model.entity.ProjectTag; | |||||
import com.hz.pm.api.portrait.model.entity.Tag; | |||||
import com.hz.pm.api.projectdeclared.model.dto.ProjectRenewalDeclareExportDTO; | import com.hz.pm.api.projectdeclared.model.dto.ProjectRenewalDeclareExportDTO; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PaymentPlan; | import com.hz.pm.api.projectdeclared.model.entity.PaymentPlan; | ||||
import com.hz.pm.api.projectdeclared.service.IPaymentPlanService; | import com.hz.pm.api.projectdeclared.service.IPaymentPlanService; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectRenewalApprovalStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectRenewalApprovalStatusEnum; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeEnum; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | ||||
import com.hz.pm.api.projectlib.helper.ProjectHelper; | |||||
import com.hz.pm.api.projectlib.helper.ProjectRenewwalFundHelper; | |||||
import com.hz.pm.api.projectlib.helper.ProjectRenewFundHelper; | |||||
import com.hz.pm.api.projectlib.model.dto.ProjectRenewalExportDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectRenewalExportDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectRenewalFundDeclarationDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectRenewalFundDeclarationDTO; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectRenewalFundDeclaration; | import com.hz.pm.api.projectlib.model.entity.ProjectRenewalFundDeclaration; | ||||
import com.hz.pm.api.projectlib.model.po.ProjectRenewalFundDeclarationPO; | import com.hz.pm.api.projectlib.model.po.ProjectRenewalFundDeclarationPO; | ||||
import com.hz.pm.api.projectlib.model.req.ProjectListReq; | |||||
import com.hz.pm.api.projectlib.model.req.ProjectRenewalAuditReq; | import com.hz.pm.api.projectlib.model.req.ProjectRenewalAuditReq; | ||||
import com.hz.pm.api.projectlib.model.req.ProjectRenewalListReq; | import com.hz.pm.api.projectlib.model.req.ProjectRenewalListReq; | ||||
import com.hz.pm.api.projectlib.model.vo.AnnualAmountVO; | import com.hz.pm.api.projectlib.model.vo.AnnualAmountVO; | ||||
@@ -54,8 +49,6 @@ import com.hz.pm.api.projectlib.model.vo.ProjectRenewalFundDeclarationVO; | |||||
import com.hz.pm.api.projectlib.service.IProjectRenewalFundDeclarationService; | import com.hz.pm.api.projectlib.service.IProjectRenewalFundDeclarationService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | |||||
import com.hz.pm.api.user.util.LoginUserUtil; | |||||
import com.wflow.exception.BusinessException; | import com.wflow.exception.BusinessException; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@@ -121,7 +114,7 @@ public class ProjectRenewalFundManage { | |||||
} | } | ||||
public PageVo<ProjectLibListItemVO> projectlist(ProjectRenewalListReq req, UserFullInfoDTO user) { | public PageVo<ProjectLibListItemVO> projectlist(ProjectRenewalListReq req, UserFullInfoDTO user) { | ||||
LambdaQueryWrapper<Project> query = ProjectRenewwalFundHelper.projectQuery(req); | |||||
LambdaQueryWrapper<Project> query = ProjectRenewFundHelper.projectQuery(req); | |||||
//项目查最新 | //项目查最新 | ||||
query.eq(Project::getNewest, Boolean.TRUE); | query.eq(Project::getNewest, Boolean.TRUE); | ||||
//自己单位 | //自己单位 | ||||
@@ -7,7 +7,6 @@ import lombok.Data; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDateTime; | |||||
import java.util.Objects; | import java.util.Objects; | ||||
import java.util.Optional; | import java.util.Optional; | ||||
@@ -2,7 +2,6 @@ package com.hz.pm.api.projectlib.model.dto; | |||||
import com.fasterxml.jackson.annotation.JsonFormat; | import com.fasterxml.jackson.annotation.JsonFormat; | ||||
import com.hz.pm.api.common.compare.Compare; | import com.hz.pm.api.common.compare.Compare; | ||||
import com.hz.pm.api.performance.model.dto.ProjectCoreBusinessDTO; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -10,7 +10,6 @@ import javax.validation.constraints.DecimalMax; | |||||
import javax.validation.constraints.DecimalMin; | import javax.validation.constraints.DecimalMin; | ||||
import javax.validation.constraints.NotNull; | import javax.validation.constraints.NotNull; | ||||
import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
import java.time.LocalDate; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
/** | /** | ||||
@@ -12,10 +12,9 @@ import com.hz.pm.api.projectdeclared.model.vo.OperationVO; | |||||
import com.hz.pm.api.projectdeclared.model.vo.PreInsAcceptancePersonVO; | import com.hz.pm.api.projectdeclared.model.vo.PreInsAcceptancePersonVO; | ||||
import com.hz.pm.api.projectdeclared.model.vo.PurchaseVO; | import com.hz.pm.api.projectdeclared.model.vo.PurchaseVO; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeEnum; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectTypeNewEnum; | ||||
import com.hz.pm.api.safety.model.vo.SafetyMonitorVO; | import com.hz.pm.api.safety.model.vo.SafetyMonitorVO; | ||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVo; | |||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVO; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.Data; | import lombok.Data; | ||||
@@ -431,7 +430,7 @@ public class ProjectDetailVO { | |||||
private String countrySealNo; | private String countrySealNo; | ||||
@ApiModelProperty("审批详情") | @ApiModelProperty("审批详情") | ||||
private ProcessProgressDetailVo process; | |||||
private ProcessProgressDetailVO process; | |||||
@ApiModelProperty("标签") | @ApiModelProperty("标签") | ||||
private List<TagVO> tags; | private List<TagVO> tags; | ||||
@@ -34,9 +34,8 @@ public class ProjectApplicationServiceImpl extends ServiceImpl<ProjectApplicatio | |||||
@Override | @Override | ||||
public List<ProjectApplication> getApplicationsByProject(Project project) { | public List<ProjectApplication> getApplicationsByProject(Project project) { | ||||
List<ProjectApplication> apps = this.list(Wrappers.lambdaQuery(ProjectApplication.class) | |||||
return this.list(Wrappers.lambdaQuery(ProjectApplication.class) | |||||
.eq(ProjectApplication::getProjectCode, project.getProjectCode())); | .eq(ProjectApplication::getProjectCode, project.getProjectCode())); | ||||
return apps; | |||||
} | } | ||||
@Override | @Override | ||||
@@ -2,26 +2,21 @@ package com.hz.pm.api.projectlib.utils; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.ningdatech.basic.util.CollUtils; | |||||
import com.hz.pm.api.common.constant.CommonConst; | import com.hz.pm.api.common.constant.CommonConst; | ||||
import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.service.IProjectInstService; | import com.hz.pm.api.projectlib.service.IProjectInstService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.wflow.workflow.bean.vo.ProcessProgressVo; | import com.wflow.workflow.bean.vo.ProcessProgressVo; | ||||
import com.wflow.workflow.enums.ProcessHandlerEnum; | |||||
import com.wflow.workflow.enums.ProcessStatusEnum; | import com.wflow.workflow.enums.ProcessStatusEnum; | ||||
import com.wflow.workflow.service.ProcessInstanceService; | import com.wflow.workflow.service.ProcessInstanceService; | ||||
import liquibase.pro.packaged.I; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.util.Collection; | |||||
import java.util.Collections; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
import java.util.stream.Collectors; | import java.util.stream.Collectors; | ||||
@@ -43,22 +38,23 @@ public class ProjectVersionUtil { | |||||
/** | /** | ||||
* 根据最新的项目ID获取临近项目版本的审核记录信息 | * 根据最新的项目ID获取临近项目版本的审核记录信息 | ||||
* | |||||
* @param projectId | * @param projectId | ||||
* @return | * @return | ||||
*/ | */ | ||||
public ProcessProgressVo getPreVerProcessInfo(Long projectId, InstTypeEnum instTypeEnum){ | |||||
public ProcessProgressVo getPreVerProcessInfo(Long projectId, InstTypeEnum instTypeEnum) { | |||||
Project project = projectService.getById(projectId); | Project project = projectService.getById(projectId); | ||||
if (Objects.isNull(project)){ | |||||
if (Objects.isNull(project)) { | |||||
throw new BizException("当前项目不存在!"); | throw new BizException("当前项目不存在!"); | ||||
} | } | ||||
String projectCode = project.getProjectCode(); | String projectCode = project.getProjectCode(); | ||||
if (StringUtils.isEmpty(projectCode)){ | |||||
if (StringUtils.isEmpty(projectCode)) { | |||||
throw new BizException("当前项目编号为空!"); | throw new BizException("当前项目编号为空!"); | ||||
} | } | ||||
// 获取相同项目编号的项目 | // 获取相同项目编号的项目 | ||||
List<Project> projectList = projectService.list(Wrappers.lambdaQuery(Project.class) | List<Project> projectList = projectService.list(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getProjectCode, projectCode)); | .eq(Project::getProjectCode, projectCode)); | ||||
if (projectList.size() < CommonConst.VERSION_SIZE){ | |||||
if (projectList.size() < CommonConst.VERSION_SIZE) { | |||||
throw new BizException("未发现该项目的历史版本!"); | throw new BizException("未发现该项目的历史版本!"); | ||||
} | } | ||||
@@ -66,16 +62,16 @@ public class ProjectVersionUtil { | |||||
for (Project preProject : projectList) { | for (Project preProject : projectList) { | ||||
// 从项目流程实例关联表中查出实例详情 | // 从项目流程实例关联表中查出实例详情 | ||||
List<ProjectInst> projectInstList = projectInstService | List<ProjectInst> projectInstList = projectInstService | ||||
.list(Wrappers.lambdaQuery(ProjectInst.class).eq(ProjectInst::getProjectId, preProject.getId()) | |||||
.eq(ProjectInst::getInstType, instTypeEnum.getCode())); | |||||
.list(Wrappers.lambdaQuery(ProjectInst.class).eq(ProjectInst::getProjectId, preProject.getId()) | |||||
.eq(ProjectInst::getInstType, instTypeEnum.getCode())); | |||||
if (CollUtil.isNotEmpty(projectInstList)) { | if (CollUtil.isNotEmpty(projectInstList)) { | ||||
List<ProcessProgressVo> processProgressVoList = projectInstList.stream() | List<ProcessProgressVo> processProgressVoList = projectInstList.stream() | ||||
.map(p -> processInstanceService.getProgressInstanceDetail(null, p.getInstCode())) | |||||
.collect(Collectors.toList()); | |||||
.map(p -> processInstanceService.getProgressInstanceDetail(null, p.getInstCode())) | |||||
.collect(Collectors.toList()); | |||||
// 筛选出上个版本该类型审核流程通过的流程详情 | // 筛选出上个版本该类型审核流程通过的流程详情 | ||||
List<ProcessProgressVo> instanceDetailList = processProgressVoList.stream() | List<ProcessProgressVo> instanceDetailList = processProgressVoList.stream() | ||||
.filter(p -> ProcessStatusEnum.APPROVED.getDesc().equals(p.getStatus())) | |||||
.collect(Collectors.toList()); | |||||
.filter(p -> ProcessStatusEnum.APPROVED.getDesc().equals(p.getStatus())) | |||||
.collect(Collectors.toList()); | |||||
if (CollUtil.isNotEmpty(instanceDetailList)) { | if (CollUtil.isNotEmpty(instanceDetailList)) { | ||||
// 获取最后一个流程详情 | // 获取最后一个流程详情 | ||||
return instanceDetailList.get(instanceDetailList.size() - 1); | return instanceDetailList.get(instanceDetailList.size() - 1); | ||||
@@ -6,8 +6,12 @@ import com.hz.pm.api.provincial.model.res.SjApiResponse; | |||||
import com.hz.pm.api.provincial.service.IJoinReviewProvincialBureauService; | import com.hz.pm.api.provincial.service.IJoinReviewProvincialBureauService; | ||||
import io.swagger.annotations.Api; | import io.swagger.annotations.Api; | ||||
import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.web.bind.annotation.*; | |||||
import org.springframework.web.bind.annotation.GetMapping; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.web.bind.annotation.RequestParam; | |||||
import org.springframework.web.bind.annotation.RestController; | |||||
import javax.validation.Valid; | import javax.validation.Valid; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
@@ -19,6 +23,7 @@ import java.io.InputStream; | |||||
* @Date 2023/3/2 15:08 | * @Date 2023/3/2 15:08 | ||||
* @Author PoffyZhang | * @Author PoffyZhang | ||||
*/ | */ | ||||
@Slf4j | |||||
@RestController | @RestController | ||||
@RequestMapping("/api/v1/test") | @RequestMapping("/api/v1/test") | ||||
@Api(tags = "测试省局接口") | @Api(tags = "测试省局接口") | ||||
@@ -32,7 +37,7 @@ public class TestController { | |||||
@GetMapping("/push") | @GetMapping("/push") | ||||
@ApiOperation("测试推送") | @ApiOperation("测试推送") | ||||
private Boolean push(@Valid @RequestParam Long projectId){ | |||||
public Boolean push(@Valid @RequestParam Long projectId) { | |||||
Project project = new Project(); | Project project = new Project(); | ||||
project.setId(projectId); | project.setId(projectId); | ||||
return provincialDeptManage.startTheProcess(project); | return provincialDeptManage.startTheProcess(project); | ||||
@@ -40,22 +45,21 @@ public class TestController { | |||||
@GetMapping("/detail") | @GetMapping("/detail") | ||||
@ApiOperation("测试获取详情") | @ApiOperation("测试获取详情") | ||||
private SjApiResponse detail(@RequestParam String projectId){ | |||||
public SjApiResponse detail(@RequestParam String projectId) { | |||||
return joinReviewProvincialBureauService.processInfo(projectId); | return joinReviewProvincialBureauService.processInfo(projectId); | ||||
} | } | ||||
@GetMapping("/path") | @GetMapping("/path") | ||||
@ApiOperation("测试获取详情") | @ApiOperation("测试获取详情") | ||||
private String path() throws IOException { | |||||
public String path() throws IOException { | |||||
// String template = ResourceUtil.getResource("template").getPath(); | // String template = ResourceUtil.getResource("template").getPath(); | ||||
// return template; | // return template; | ||||
InputStream in = this.getClass().getResourceAsStream("/template/simsun.ttc"); | InputStream in = this.getClass().getResourceAsStream("/template/simsun.ttc"); | ||||
StringBuilder sb = new StringBuilder(); | StringBuilder sb = new StringBuilder(); | ||||
int n; | int n; | ||||
while ((n=in.read())!=-1){ | |||||
sb.append((char)n); | |||||
System.out.print((char)n); | |||||
while ((n = in.read()) != -1) { | |||||
sb.append((char) n); | |||||
} | } | ||||
return sb.toString(); | return sb.toString(); | ||||
@@ -66,7 +66,7 @@ public class ProvinceApiResponse<T> implements Serializable { | |||||
* @return ApiResponse | * @return ApiResponse | ||||
*/ | */ | ||||
public static <T> ProvinceApiResponse<T> of(Integer code, String message, T data) { | public static <T> ProvinceApiResponse<T> of(Integer code, String message, T data) { | ||||
return new ProvinceApiResponse<T>(code, message, data); | |||||
return new ProvinceApiResponse<>(code, message, data); | |||||
} | } | ||||
/** | /** | ||||
@@ -2,10 +2,8 @@ package com.hz.pm.api.provincial.model.dto; | |||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | import com.fasterxml.jackson.annotation.JsonIgnoreProperties; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import lombok.AllArgsConstructor; | |||||
import lombok.Builder; | import lombok.Builder; | ||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | |||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -18,7 +16,7 @@ import java.util.List; | |||||
*/ | */ | ||||
@Data | @Data | ||||
@Builder | @Builder | ||||
@ApiModel(value = "ProvincialApplicationDTO", description = "") | |||||
@ApiModel(value = "ProvincialApplicationDTO") | |||||
public class ProvincialApplicationDTO implements Serializable { | public class ProvincialApplicationDTO implements Serializable { | ||||
@@ -91,7 +89,7 @@ public class ProvincialApplicationDTO implements Serializable { | |||||
@Builder | @Builder | ||||
@Data | @Data | ||||
@JsonIgnoreProperties(value = { "handler"}) | |||||
@JsonIgnoreProperties(value = {"handler"}) | |||||
public static class Cloud implements Serializable { | public static class Cloud implements Serializable { | ||||
//云资源台数 11 | //云资源台数 11 | ||||
private Integer cloudNums; | private Integer cloudNums; | ||||
@@ -1,6 +1,5 @@ | |||||
package com.hz.pm.api.provincial.model.res; | package com.hz.pm.api.provincial.model.res; | ||||
import com.hz.pm.api.provincial.model.dto.ProvincialApplicationDTO; | |||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
@@ -6,13 +6,8 @@ import com.alibaba.fastjson.JSONObject; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | ||||
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.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.constant.RegionConst; | import com.hz.pm.api.common.constant.RegionConst; | ||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | ||||
import com.hz.pm.api.projectlib.model.req.ProjectListReq; | import com.hz.pm.api.projectlib.model.req.ProjectListReq; | ||||
@@ -27,6 +22,10 @@ import com.hz.pm.api.safety.service.IPersonSafetyInfoService; | |||||
import com.hz.pm.api.safety.service.ISupplierSafetyQualificationService; | import com.hz.pm.api.safety.service.ISupplierSafetyQualificationService; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
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 lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
@@ -58,51 +57,53 @@ public class SafetyRiskManage { | |||||
/** | /** | ||||
* 列表 | * 列表 | ||||
* | |||||
* @param req | * @param req | ||||
* @return | * @return | ||||
*/ | */ | ||||
public PageVo<ProjectMonitorVO> personMonitorList(ProjectListReq req) { | public PageVo<ProjectMonitorVO> personMonitorList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = Wrappers.lambdaQuery(Project.class) | LambdaQueryWrapper<Project> query = Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getNewest, Boolean.TRUE) | .eq(Project::getNewest, Boolean.TRUE) | ||||
.eq(StringUtils.isNotBlank(req.getRegionCode()),Project::getAreaCode,req.getRegionCode()) | |||||
.like(StringUtils.isNotBlank(req.getProjectName()),Project::getProjectName,req.getProjectName()) | |||||
.like(StringUtils.isNotBlank(req.getBuildOrgName()),Project::getBuildOrgName,req.getBuildOrgName()) | |||||
.eq(StringUtils.isNotBlank(req.getRegionCode()), Project::getAreaCode, req.getRegionCode()) | |||||
.like(StringUtils.isNotBlank(req.getProjectName()), Project::getProjectName, req.getProjectName()) | |||||
.like(StringUtils.isNotBlank(req.getBuildOrgName()), Project::getBuildOrgName, req.getBuildOrgName()) | |||||
.orderByDesc(Project::getUpdateOn); | .orderByDesc(Project::getUpdateOn); | ||||
checkAuth(query,LoginUserUtil.loginUserDetail()); | |||||
checkAuth(query, LoginUserUtil.loginUserDetail()); | |||||
Page<Project> page = projectService.page(req.page(), query); | Page<Project> page = projectService.page(req.page(), query); | ||||
long total; | long total; | ||||
if ((total = page.getTotal()) == 0) { | if ((total = page.getTotal()) == 0) { | ||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
List<ProjectMonitorVO> records = CollUtils.convert(page.getRecords(), | List<ProjectMonitorVO> records = CollUtils.convert(page.getRecords(), | ||||
p -> BeanUtil.copyProperties(p,ProjectMonitorVO.class)); | |||||
p -> BeanUtil.copyProperties(p, ProjectMonitorVO.class)); | |||||
return PageVo.of(records, total); | return PageVo.of(records, total); | ||||
} | } | ||||
/** | /** | ||||
* 权限控制 | * 权限控制 | ||||
* | |||||
* @param query | * @param query | ||||
* @param user | * @param user | ||||
*/ | */ | ||||
private void checkAuth(LambdaQueryWrapper<Project> query, UserInfoDetails user) { | private void checkAuth(LambdaQueryWrapper<Project> query, UserInfoDetails user) { | ||||
//如果是超管 | //如果是超管 | ||||
if(user.getSuperAdmin()){ | |||||
if (user.getSuperAdmin()) { | |||||
log.info(user.getUsername() + " 是超管,可以看所有项目"); | log.info(user.getUsername() + " 是超管,可以看所有项目"); | ||||
}else if(user.getRegionAdmin()){ | |||||
} else if (user.getRegionAdmin()) { | |||||
//如果是区域管理员 | //如果是区域管理员 | ||||
log.info(user.getUsername() + " 是区管,可以看本区域" + user.getRegionCode() + "项目"); | log.info(user.getUsername() + " 是区管,可以看本区域" + user.getRegionCode() + "项目"); | ||||
if(!RegionConst.RC_LS.equals(user.getRegionCode())){ | |||||
if (!RegionConst.RC_LS.equals(user.getRegionCode())) { | |||||
//不是丽水市本级的话 就只看 自己区域的 | //不是丽水市本级的话 就只看 自己区域的 | ||||
query.eq(Project::getAreaCode,user.getRegionCode()); | |||||
query.eq(Project::getAreaCode, user.getRegionCode()); | |||||
} | } | ||||
//如果是市本级 就能看所有的 | //如果是市本级 就能看所有的 | ||||
}else if(user.getIsOrgAdmin()){ | |||||
} else if (user.getIsOrgAdmin()) { | |||||
//单位管理员 | //单位管理员 | ||||
log.info(user.getUsername() + " 是单位管理员,可以看单位 " + user.getEmpPosUnitName() + " 项目"); | log.info(user.getUsername() + " 是单位管理员,可以看单位 " + user.getEmpPosUnitName() + " 项目"); | ||||
query.eq(Project::getBuildOrgCode,user.getEmpPosUnitCode()); | |||||
}else{ | |||||
query.eq(Project::getBuildOrgCode, user.getEmpPosUnitCode()); | |||||
} else { | |||||
//其它角色全都看不见 | //其它角色全都看不见 | ||||
query.eq(Project::getId,0L); | |||||
query.eq(Project::getId, 0L); | |||||
} | } | ||||
} | } | ||||
@@ -113,13 +114,13 @@ public class SafetyRiskManage { | |||||
.eq(Project::getProjectCode, projectCode) | .eq(Project::getProjectCode, projectCode) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
if(Objects.isNull(project)){ | |||||
if (Objects.isNull(project)) { | |||||
return null; | return null; | ||||
} | } | ||||
List<SupplierSafetyQualification> ssq = supplierSafetyQualificationService.list(Wrappers.lambdaQuery(SupplierSafetyQualification.class) | List<SupplierSafetyQualification> ssq = supplierSafetyQualificationService.list(Wrappers.lambdaQuery(SupplierSafetyQualification.class) | ||||
.eq(SupplierSafetyQualification::getProjectCode, projectCode)); | .eq(SupplierSafetyQualification::getProjectCode, projectCode)); | ||||
if(CollUtil.isNotEmpty(ssq)){ | |||||
if (CollUtil.isNotEmpty(ssq)) { | |||||
vo.setSupplierSafetyQualification(ssq.stream() | vo.setSupplierSafetyQualification(ssq.stream() | ||||
.map(s -> BeanUtil.copyProperties(s, SupplierSafetyQualificationVO.class)) | .map(s -> BeanUtil.copyProperties(s, SupplierSafetyQualificationVO.class)) | ||||
.collect(Collectors.toList())); | .collect(Collectors.toList())); | ||||
@@ -127,7 +128,7 @@ public class SafetyRiskManage { | |||||
List<PersonSafetyInfo> psi = personSafetyInfoService.list(Wrappers.lambdaQuery(PersonSafetyInfo.class) | List<PersonSafetyInfo> psi = personSafetyInfoService.list(Wrappers.lambdaQuery(PersonSafetyInfo.class) | ||||
.eq(PersonSafetyInfo::getProjectCode, projectCode)); | .eq(PersonSafetyInfo::getProjectCode, projectCode)); | ||||
if(CollUtil.isNotEmpty(psi)){ | |||||
if (CollUtil.isNotEmpty(psi)) { | |||||
vo.setPersonSafetyInfo(psi.stream() | vo.setPersonSafetyInfo(psi.stream() | ||||
.map(p -> BeanUtil.copyProperties(p, PersonSafetyInfoVO.class)) | .map(p -> BeanUtil.copyProperties(p, PersonSafetyInfoVO.class)) | ||||
.collect(Collectors.toList())); | .collect(Collectors.toList())); | ||||
@@ -139,20 +140,17 @@ public class SafetyRiskManage { | |||||
EqualProtectionVO equalProtectionVO = new EqualProtectionVO(); | EqualProtectionVO equalProtectionVO = new EqualProtectionVO(); | ||||
if(CollUtil.isNotEmpty(apps)){ | |||||
Integer maxPassWordGrade = 0; | |||||
Integer maxSecerecyGrade = 0; | |||||
for(ProjectApplication app : apps) { | |||||
maxPassWordGrade = Math.max(maxPassWordGrade,app.getPasswordGrade()); | |||||
maxSecerecyGrade = Math.max(maxSecerecyGrade,app.getSecrecyGrade()); | |||||
if (CollUtil.isNotEmpty(apps)) { | |||||
int maxPassWordGrade = 0; | |||||
int maxSecerecyGrade = 0; | |||||
for (ProjectApplication app : apps) { | |||||
maxPassWordGrade = Math.max(maxPassWordGrade, app.getPasswordGrade()); | |||||
maxSecerecyGrade = Math.max(maxSecerecyGrade, app.getSecrecyGrade()); | |||||
} | } | ||||
equalProtectionVO.setPasswordGrade(maxPassWordGrade); | equalProtectionVO.setPasswordGrade(maxPassWordGrade); | ||||
equalProtectionVO.setSecrecyGrade(maxSecerecyGrade); | equalProtectionVO.setSecrecyGrade(maxSecerecyGrade); | ||||
} | } | ||||
vo.setEqualProtection(equalProtectionVO); | vo.setEqualProtection(equalProtectionVO); | ||||
return vo; | return vo; | ||||
} | } | ||||
@@ -162,25 +160,26 @@ public class SafetyRiskManage { | |||||
/** | /** | ||||
* 保存 供应商安全资质 | * 保存 供应商安全资质 | ||||
* @param dtos | |||||
* @return | |||||
* | |||||
* @param dtos \ | |||||
* @return \ | |||||
*/ | */ | ||||
public String supplierSafetyQualificationSave(List<SupplierSafetyQualificationDTO> dtos) { | public String supplierSafetyQualificationSave(List<SupplierSafetyQualificationDTO> dtos) { | ||||
if(CollUtil.isEmpty(dtos)){ | |||||
if (CollUtil.isEmpty(dtos)) { | |||||
return "数据为空"; | return "数据为空"; | ||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
String projectCode = dtos.get(0).getProjectCode(); | String projectCode = dtos.get(0).getProjectCode(); | ||||
if(StringUtils.isBlank(projectCode)){ | |||||
if (StringUtils.isBlank(projectCode)) { | |||||
throw new BizException("参数有误!"); | throw new BizException("参数有误!"); | ||||
} | } | ||||
supplierSafetyQualificationService.remove(Wrappers.lambdaQuery(SupplierSafetyQualification.class) | supplierSafetyQualificationService.remove(Wrappers.lambdaQuery(SupplierSafetyQualification.class) | ||||
.eq(SupplierSafetyQualification::getProjectCode, projectCode)); | .eq(SupplierSafetyQualification::getProjectCode, projectCode)); | ||||
Integer sucessNum = 0; | |||||
for(SupplierSafetyQualificationDTO dto : dtos){ | |||||
int sucessNum = 0; | |||||
for (SupplierSafetyQualificationDTO dto : dtos) { | |||||
projectCode = dto.getProjectCode(); | projectCode = dto.getProjectCode(); | ||||
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class) | Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getNewest, Boolean.TRUE) | .eq(Project::getNewest, Boolean.TRUE) | ||||
@@ -195,8 +194,8 @@ public class SafetyRiskManage { | |||||
entity.setProjectId(project.getId()); | entity.setProjectId(project.getId()); | ||||
entity.setUpdateBy(user.getUsername()); | entity.setUpdateBy(user.getUsername()); | ||||
entity.setUpdateOn(LocalDateTime.now()); | entity.setUpdateOn(LocalDateTime.now()); | ||||
if(supplierSafetyQualificationService.save(entity)){ | |||||
sucessNum ++; | |||||
if (supplierSafetyQualificationService.save(entity)) { | |||||
sucessNum++; | |||||
} | } | ||||
} | } | ||||
@@ -204,21 +203,21 @@ public class SafetyRiskManage { | |||||
} | } | ||||
public String personMonitorSave(List<PersonSafetyInfoDTO> dtos) { | public String personMonitorSave(List<PersonSafetyInfoDTO> dtos) { | ||||
if(CollUtil.isEmpty(dtos)){ | |||||
if (CollUtil.isEmpty(dtos)) { | |||||
return "数据为空"; | return "数据为空"; | ||||
} | } | ||||
UserInfoDetails user = LoginUserUtil.loginUserDetail(); | UserInfoDetails user = LoginUserUtil.loginUserDetail(); | ||||
String projectCode = dtos.get(0).getProjectCode(); | String projectCode = dtos.get(0).getProjectCode(); | ||||
if(StringUtils.isBlank(projectCode)){ | |||||
if (StringUtils.isBlank(projectCode)) { | |||||
throw new BizException("参数有误!"); | throw new BizException("参数有误!"); | ||||
} | } | ||||
personSafetyInfoService.remove(Wrappers.lambdaQuery(PersonSafetyInfo.class) | personSafetyInfoService.remove(Wrappers.lambdaQuery(PersonSafetyInfo.class) | ||||
.eq(PersonSafetyInfo::getProjectCode, projectCode)); | .eq(PersonSafetyInfo::getProjectCode, projectCode)); | ||||
Integer sucessNum = 0; | |||||
for(PersonSafetyInfoDTO dto : dtos){ | |||||
int sucessNum = 0; | |||||
for (PersonSafetyInfoDTO dto : dtos) { | |||||
projectCode = dto.getProjectCode(); | projectCode = dto.getProjectCode(); | ||||
Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class) | Project project = projectService.getOne(Wrappers.lambdaQuery(Project.class) | ||||
.eq(Project::getNewest, Boolean.TRUE) | .eq(Project::getNewest, Boolean.TRUE) | ||||
@@ -233,8 +232,8 @@ public class SafetyRiskManage { | |||||
entity.setProjectId(project.getId()); | entity.setProjectId(project.getId()); | ||||
entity.setUpdateBy(user.getUsername()); | entity.setUpdateBy(user.getUsername()); | ||||
entity.setUpdateOn(LocalDateTime.now()); | entity.setUpdateOn(LocalDateTime.now()); | ||||
if(personSafetyInfoService.save(entity)){ | |||||
sucessNum ++; | |||||
if (personSafetyInfoService.save(entity)) { | |||||
sucessNum++; | |||||
} | } | ||||
} | } | ||||
@@ -2,8 +2,6 @@ package com.hz.pm.api.scheduler.listener; | |||||
import com.alibaba.fastjson.JSON; | import com.alibaba.fastjson.JSON; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.ningdatech.cache.model.cache.CacheKey; | |||||
import com.ningdatech.cache.repository.CachePlusOps; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.helper.UserInfoHelper; | import com.hz.pm.api.common.helper.UserInfoHelper; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
@@ -13,6 +11,8 @@ import com.hz.pm.api.projectlib.service.IProjectService; | |||||
import com.hz.pm.api.staging.enums.MsgTypeEnum; | import com.hz.pm.api.staging.enums.MsgTypeEnum; | ||||
import com.hz.pm.api.sys.manage.NoticeManage; | import com.hz.pm.api.sys.manage.NoticeManage; | ||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | ||||
import com.ningdatech.cache.model.cache.CacheKey; | |||||
import com.ningdatech.cache.repository.CachePlusOps; | |||||
import com.wflow.bean.entity.WflowCcTasks; | import com.wflow.bean.entity.WflowCcTasks; | ||||
import com.wflow.service.WflowCcTasksService; | import com.wflow.service.WflowCcTasksService; | ||||
import com.wflow.workflow.notify.event.CcTaskEvent; | import com.wflow.workflow.notify.event.CcTaskEvent; | ||||
@@ -23,16 +23,17 @@ import org.flowable.engine.history.HistoricProcessInstance; | |||||
import org.springframework.context.event.EventListener; | import org.springframework.context.event.EventListener; | ||||
import org.springframework.scheduling.annotation.Async; | import org.springframework.scheduling.annotation.Async; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.time.Duration; | import java.time.Duration; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Objects; | import java.util.Objects; | ||||
import static com.hz.pm.api.todocenter.constant.WorkNoticeConstant.CC_MSG_TEMPLATE; | import static com.hz.pm.api.todocenter.constant.WorkNoticeConstant.CC_MSG_TEMPLATE; | ||||
/** | /** | ||||
* 抄送事件 事件监听 | * 抄送事件 事件监听 | ||||
* | * | ||||
* @author ZPF | * @author ZPF | ||||
* @return | |||||
* @since 2023/04/14 14:19 | * @since 2023/04/14 14:19 | ||||
*/ | */ | ||||
@Slf4j | @Slf4j | ||||
@@ -59,9 +60,7 @@ public class CcTaskListener { | |||||
public void onApplicationEvent(CcTaskEvent event) throws InterruptedException { | public void onApplicationEvent(CcTaskEvent event) throws InterruptedException { | ||||
log.info("进入抄送人任务 事件监听!{}", JSON.toJSONString(event)); | log.info("进入抄送人任务 事件监听!{}", JSON.toJSONString(event)); | ||||
String instCode = event.getInstCode(); | String instCode = event.getInstCode(); | ||||
String processDefinitionId = event.getProcessDefinitionId(); | |||||
String nodeId = event.getNodeId(); | String nodeId = event.getNodeId(); | ||||
String taskId = event.getTaskId(); | |||||
//这里 redis 处理一下 1分钟处理同一 nodeId 一次 | //这里 redis 处理一下 1分钟处理同一 nodeId 一次 | ||||
if (cachePlusOps.get(NODE + nodeId + DUP_KEY) != null) { | if (cachePlusOps.get(NODE + nodeId + DUP_KEY) != null) { | ||||
@@ -78,7 +77,7 @@ public class CcTaskListener { | |||||
//睡3秒 让数据库 生成抄送数据先 | //睡3秒 让数据库 生成抄送数据先 | ||||
Thread.sleep(3000); | Thread.sleep(3000); | ||||
log.info("instCode :{},nodeId :{}",instCode, nodeId); | |||||
log.info("instCode :{},nodeId :{}", instCode, nodeId); | |||||
//1.去查找 项目实例关系表 | //1.去查找 项目实例关系表 | ||||
List<WflowCcTasks> tasks = ccTasksService.list(Wrappers.lambdaQuery(WflowCcTasks.class) | List<WflowCcTasks> tasks = ccTasksService.list(Wrappers.lambdaQuery(WflowCcTasks.class) | ||||
.eq(WflowCcTasks::getInstanceId, instCode) | .eq(WflowCcTasks::getInstanceId, instCode) | ||||
@@ -88,25 +87,25 @@ public class CcTaskListener { | |||||
return; | return; | ||||
} | } | ||||
log.info("tasks :{}",tasks.size()); | |||||
log.info("tasks :{}", tasks.size()); | |||||
//有可能 一个节点 有多个用户抄送 | //有可能 一个节点 有多个用户抄送 | ||||
tasks.stream().forEach(task -> { | |||||
log.info("cc tasks :{}",JSON.toJSONString(tasks)); | |||||
tasks.forEach(task -> { | |||||
log.info("cc tasks :{}", JSON.toJSONString(tasks)); | |||||
HistoricProcessInstance instance = historyService.createHistoricProcessInstanceQuery() | HistoricProcessInstance instance = historyService.createHistoricProcessInstanceQuery() | ||||
.processInstanceId(instCode) | .processInstanceId(instCode) | ||||
.singleResult(); | .singleResult(); | ||||
log.info("instance :{}",JSON.toJSONString(instance)); | |||||
log.info("instance :{}", JSON.toJSONString(instance)); | |||||
ProjectInst projectInst = projectInstService.getOne(Wrappers.lambdaQuery(ProjectInst.class) | ProjectInst projectInst = projectInstService.getOne(Wrappers.lambdaQuery(ProjectInst.class) | ||||
.eq(ProjectInst::getInstCode, instCode) | .eq(ProjectInst::getInstCode, instCode) | ||||
.last(BizConst.LIMIT_1)); | .last(BizConst.LIMIT_1)); | ||||
log.info("projectInst :{}",JSON.toJSONString(projectInst)); | |||||
log.info("projectInst :{}", JSON.toJSONString(projectInst)); | |||||
if(Objects.isNull(projectInst) || Objects.isNull(instance)){ | |||||
if (Objects.isNull(projectInst) || Objects.isNull(instance)) { | |||||
return; | return; | ||||
} | } | ||||
Long projectId = projectInst.getProjectId(); | Long projectId = projectInst.getProjectId(); | ||||
@@ -115,7 +114,7 @@ public class CcTaskListener { | |||||
UserFullInfoDTO user = userInfoHelper.getUserFullInfoByEmployeeCode(task.getUserId()); | UserFullInfoDTO user = userInfoHelper.getUserFullInfoByEmployeeCode(task.getUserId()); | ||||
//发送消息 | //发送消息 | ||||
noticeManage.sendNotice(task.getUserId(),Objects.nonNull(user)? user.getUserId() : 93L,project,instance.getProcessDefinitionName(), | |||||
noticeManage.sendNotice(task.getUserId(), Objects.nonNull(user) ? user.getUserId() : 93L, project, instance.getProcessDefinitionName(), | |||||
CC_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW_CC); | CC_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW_CC); | ||||
}); | }); | ||||
} | } |
@@ -8,6 +8,7 @@ import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.service.IProjectInstService; | import com.hz.pm.api.projectlib.service.IProjectInstService; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.ningdatech.basic.exception.BizException; | |||||
import com.wflow.workflow.notify.event.ProcessStartEvent; | import com.wflow.workflow.notify.event.ProcessStartEvent; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
@@ -54,7 +55,8 @@ public class ProcessStartListener { | |||||
try { | try { | ||||
Thread.sleep(3000); | Thread.sleep(3000); | ||||
} catch (InterruptedException e) { | } catch (InterruptedException e) { | ||||
throw new RuntimeException(e); | |||||
log.error("流程开起异常:", e); | |||||
Thread.currentThread().interrupt(); | |||||
} | } | ||||
//1.去查找 项目实例关系表 | //1.去查找 项目实例关系表 | ||||
@@ -15,7 +15,7 @@ import java.time.LocalDateTime; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* 服务实现类 | |||||
* 服务实现类 | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author zpf | * @author zpf | ||||
@@ -28,15 +28,14 @@ public class ProjectStagingServiceImpl extends ServiceImpl<ProjectStagingMapper, | |||||
private final ProjectStagingMapper mapper; | private final ProjectStagingMapper mapper; | ||||
private final ProjectStatusFlowUtil projectStatusFlowUtil; | |||||
/** | /** | ||||
* 在某些状态节点 增加一个项目到状态暂存库 | * 在某些状态节点 增加一个项目到状态暂存库 | ||||
* | |||||
* @param project | * @param project | ||||
* @return | * @return | ||||
*/ | */ | ||||
@Override | @Override | ||||
public Boolean addByProject(Project project,String remark) { | |||||
public Boolean addByProject(Project project, String remark) { | |||||
ProjectStaging projectStaging = ProjectStaging.builder() | ProjectStaging projectStaging = ProjectStaging.builder() | ||||
.projectId(project.getId()) | .projectId(project.getId()) | ||||
.projectName(project.getProjectName()) | .projectName(project.getProjectName()) | ||||
@@ -55,23 +54,24 @@ public class ProjectStagingServiceImpl extends ServiceImpl<ProjectStagingMapper, | |||||
/** | /** | ||||
* 增加 重试次数 和下次扫描时间 | * 增加 重试次数 和下次扫描时间 | ||||
* @param projectStaging | |||||
* @return | |||||
* | |||||
* @param projectStaging \ | |||||
* @return \ | |||||
*/ | */ | ||||
@Override | @Override | ||||
public Boolean addRetryTimes(ProjectStaging projectStaging) { | public Boolean addRetryTimes(ProjectStaging projectStaging) { | ||||
Integer retryTimes = projectStaging.getRetryTimes() + 1; | Integer retryTimes = projectStaging.getRetryTimes() + 1; | ||||
if(!projectStatusFlowUtil.intervalTimeMap.containsKey(projectStaging.getRetryTimes())){ | |||||
Integer intervalSeconds = ProjectStatusFlowUtil.get(retryTimes); | |||||
if (intervalSeconds == null) { | |||||
log.info("没有对应重试间隔时间 添加重试信息失败"); | log.info("没有对应重试间隔时间 添加重试信息失败"); | ||||
return Boolean.FALSE; | return Boolean.FALSE; | ||||
} | } | ||||
Integer addSeconds = projectStatusFlowUtil.intervalTimeMap.get(projectStaging.getRetryTimes()); | |||||
Boolean dead = Boolean.FALSE; | Boolean dead = Boolean.FALSE; | ||||
//超过重试最大次数 dead置为 true | //超过重试最大次数 dead置为 true | ||||
if(retryTimes.compareTo(StagingContant.Retry.MAX_RETRY_TIMES) > 0){ | |||||
if (retryTimes.compareTo(StagingContant.Retry.MAX_RETRY_TIMES) > 0) { | |||||
dead = Boolean.TRUE; | dead = Boolean.TRUE; | ||||
} | } | ||||
LocalDateTime nextRetryTime = LocalDateTime.now().plusSeconds(addSeconds); | |||||
return mapper.addRetryTimes(projectStaging.getId(),retryTimes,nextRetryTime,dead); | |||||
LocalDateTime nextRetryTime = LocalDateTime.now().plusSeconds(intervalSeconds); | |||||
return mapper.addRetryTimes(projectStaging.getId(), retryTimes, nextRetryTime, dead); | |||||
} | } | ||||
} | } |
@@ -1,16 +1,13 @@ | |||||
package com.hz.pm.api.staging.utils; | package com.hz.pm.api.staging.utils; | ||||
import com.google.common.collect.Maps; | import com.google.common.collect.Maps; | ||||
import com.hz.pm.api.projectdeclared.manage.*; | |||||
import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO; | |||||
import com.hz.pm.api.projectdeclared.manage.ReviewByDeptJointManage; | |||||
import com.hz.pm.api.projectdeclared.manage.ReviewByProvincialDeptManage; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.staging.model.entity.ProjectStaging; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import javax.annotation.PostConstruct; | |||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.function.Function; | import java.util.function.Function; | ||||
@@ -1,16 +1,9 @@ | |||||
package com.hz.pm.api.staging.utils; | package com.hz.pm.api.staging.utils; | ||||
import com.google.common.collect.Maps; | import com.google.common.collect.Maps; | ||||
import com.hz.pm.api.projectdeclared.manage.ReviewByDeptJointManage; | |||||
import com.hz.pm.api.projectdeclared.manage.ReviewByProvincialDeptManage; | |||||
import com.hz.pm.api.projectlib.enumeration.ProjectStatusEnum; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Component; | |||||
import javax.annotation.PostConstruct; | |||||
import java.util.HashMap; | |||||
import java.util.Map; | import java.util.Map; | ||||
import java.util.function.Function; | |||||
/** | /** | ||||
* @Classname ProjectStatusFlowMapUtil | * @Classname ProjectStatusFlowMapUtil | ||||
@@ -18,30 +11,35 @@ import java.util.function.Function; | |||||
* @Date 2023/2/15 11:19 | * @Date 2023/2/15 11:19 | ||||
* @Author PoffyZhang | * @Author PoffyZhang | ||||
*/ | */ | ||||
@Component | |||||
public class ProjectStatusFlowUtil { | public class ProjectStatusFlowUtil { | ||||
/** | /** | ||||
* key 重试的次数 , value 是增加是描述 | * key 重试的次数 , value 是增加是描述 | ||||
*/ | */ | ||||
public Map<Integer, Integer> intervalTimeMap = Maps.newHashMap(); | |||||
private static final Map<Integer, Integer> INTERVAL_TIME_MAP; | |||||
/** | |||||
* 初始化业务分派逻辑,代替了if-else部分 | |||||
* key: 枚举 状态值 | |||||
* value: lambda表达式,最终会获取发起实例的函数 | |||||
/* | |||||
* 初始化业务分派逻辑,代替了if-else部分 | |||||
* key: 枚举 状态值 | |||||
* value: lambda表达式,最终会获取发起实例的函数 | |||||
*/ | */ | ||||
public ProjectStatusFlowUtil(){ | |||||
intervalTimeMap.put(0,60); | |||||
intervalTimeMap.put(1,60 * 2); | |||||
intervalTimeMap.put(2,60 * 6); | |||||
intervalTimeMap.put(3,60 * 15); | |||||
intervalTimeMap.put(4,60 * 30); | |||||
intervalTimeMap.put(5,60 * 60); | |||||
intervalTimeMap.put(6,60 * 60 * 2); | |||||
intervalTimeMap.put(7,60 * 60 * 5); | |||||
intervalTimeMap.put(8,60 * 60 * 12); | |||||
intervalTimeMap.put(9,60 * 60 * 24); | |||||
intervalTimeMap.put(10,60 * 60 * 72); | |||||
intervalTimeMap.put(11,60 * 60 * 216); | |||||
static { | |||||
INTERVAL_TIME_MAP = new HashMap<>(16); | |||||
INTERVAL_TIME_MAP.put(0, 60); | |||||
INTERVAL_TIME_MAP.put(1, 60 * 2); | |||||
INTERVAL_TIME_MAP.put(2, 60 * 6); | |||||
INTERVAL_TIME_MAP.put(3, 60 * 15); | |||||
INTERVAL_TIME_MAP.put(4, 60 * 30); | |||||
INTERVAL_TIME_MAP.put(5, 60 * 60); | |||||
INTERVAL_TIME_MAP.put(6, 60 * 60 * 2); | |||||
INTERVAL_TIME_MAP.put(7, 60 * 60 * 5); | |||||
INTERVAL_TIME_MAP.put(8, 60 * 60 * 12); | |||||
INTERVAL_TIME_MAP.put(9, 60 * 60 * 24); | |||||
INTERVAL_TIME_MAP.put(10, 60 * 60 * 72); | |||||
INTERVAL_TIME_MAP.put(11, 60 * 60 * 216); | |||||
} | |||||
public static Integer get(Integer interval) { | |||||
return INTERVAL_TIME_MAP.get(interval); | |||||
} | } | ||||
} | } |
@@ -9,9 +9,10 @@ import io.swagger.annotations.ApiOperation; | |||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||
import org.springframework.web.bind.annotation.*; | |||||
import java.util.List; | |||||
import org.springframework.web.bind.annotation.GetMapping; | |||||
import org.springframework.web.bind.annotation.PathVariable; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.web.bind.annotation.RestController; | |||||
/** | /** | ||||
* @Classname UserGuidanceController | * @Classname UserGuidanceController | ||||
@@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.annotation.TableName; | |||||
import lombok.Data; | import lombok.Data; | ||||
import java.io.Serializable; | import java.io.Serializable; | ||||
import java.time.LocalDateTime; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -18,7 +18,7 @@ import com.hz.pm.api.todocenter.model.dto.SealInfoDTO; | |||||
import com.hz.pm.api.todocenter.model.req.ProcessDetailReq; | import com.hz.pm.api.todocenter.model.req.ProcessDetailReq; | ||||
import com.hz.pm.api.todocenter.model.req.ToBeProcessedExportReq; | import com.hz.pm.api.todocenter.model.req.ToBeProcessedExportReq; | ||||
import com.hz.pm.api.todocenter.model.req.ToBeProcessedReq; | import com.hz.pm.api.todocenter.model.req.ToBeProcessedReq; | ||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVo; | |||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVO; | |||||
import com.hz.pm.api.todocenter.model.vo.ResToBeProcessedVO; | import com.hz.pm.api.todocenter.model.vo.ResToBeProcessedVO; | ||||
import com.wflow.workflow.bean.dto.ReqProcessHandlerDTO; | import com.wflow.workflow.bean.dto.ReqProcessHandlerDTO; | ||||
@@ -80,7 +80,7 @@ public class TodoCenterController { | |||||
* @return 流程进度及表单详情 | * @return 流程进度及表单详情 | ||||
*/ | */ | ||||
@GetMapping("/progress/detail") | @GetMapping("/progress/detail") | ||||
public ProcessProgressDetailVo getProcessDetail(@Valid @ModelAttribute ProcessDetailReq request) { | |||||
public ProcessProgressDetailVO getProcessDetail(@Valid @ModelAttribute ProcessDetailReq request) { | |||||
return todoCenterManage.getProcessDetail(request); | return todoCenterManage.getProcessDetail(request); | ||||
} | } | ||||
@@ -92,8 +92,7 @@ public class TodoCenterController { | |||||
@PostMapping("/handler") | @PostMapping("/handler") | ||||
@WebLog("审核通过,盖章并通过、退回、撤回、驳回等操作") | @WebLog("审核通过,盖章并通过、退回、撤回、驳回等操作") | ||||
public Object handler(@Valid @RequestBody ReqProcessHandlerDTO param) { | public Object handler(@Valid @RequestBody ReqProcessHandlerDTO param) { | ||||
String nextTaskId = todoCenterManage.handler(param); | |||||
return nextTaskId; | |||||
return todoCenterManage.handler(param); | |||||
} | } | ||||
/** | /** | ||||
@@ -1,7 +1,7 @@ | |||||
package com.hz.pm.api.todocenter.handle; | package com.hz.pm.api.todocenter.handle; | ||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVo; | |||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVO; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.apache.commons.lang3.StringUtils; | import org.apache.commons.lang3.StringUtils; | ||||
@@ -29,7 +29,7 @@ public class PassHandle { | |||||
* @param employeeCode | * @param employeeCode | ||||
* @return | * @return | ||||
*/ | */ | ||||
public void checkCanPassOrSeal(String instanceId,String taskId,String employeeCode, ProcessProgressDetailVo res) { | |||||
public void checkCanPassOrSeal(String instanceId,String taskId,String employeeCode, ProcessProgressDetailVO res) { | |||||
List<ActivityInstance> activities = runtimeService.createActivityInstanceQuery() | List<ActivityInstance> activities = runtimeService.createActivityInstanceQuery() | ||||
.taskAssignee(employeeCode) | .taskAssignee(employeeCode) | ||||
@@ -13,15 +13,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.google.common.collect.Lists; | import com.google.common.collect.Lists; | ||||
import com.google.common.collect.Maps; | import com.google.common.collect.Maps; | ||||
import com.google.common.collect.Sets; | import com.google.common.collect.Sets; | ||||
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.basic.util.StrPool; | |||||
import com.ningdatech.file.entity.File; | |||||
import com.ningdatech.file.entity.vo.result.FileResultVO; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.hz.pm.api.common.constant.BizConst; | import com.hz.pm.api.common.constant.BizConst; | ||||
import com.hz.pm.api.common.constant.CommonConst; | import com.hz.pm.api.common.constant.CommonConst; | ||||
import com.hz.pm.api.common.constant.RegionConst; | import com.hz.pm.api.common.constant.RegionConst; | ||||
@@ -31,7 +22,6 @@ import com.hz.pm.api.common.model.entity.ExcelExportWriter; | |||||
import com.hz.pm.api.common.util.BizUtils; | import com.hz.pm.api.common.util.BizUtils; | ||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.irs.sign.IRSAPIRequest; | import com.hz.pm.api.irs.sign.IRSAPIRequest; | ||||
import com.hz.pm.api.performance.service.IProjectCoreBusinessIndicatorsService; | |||||
import com.hz.pm.api.projectdeclared.manage.DefaultDeclaredProjectManage; | import com.hz.pm.api.projectdeclared.manage.DefaultDeclaredProjectManage; | ||||
import com.hz.pm.api.projectlib.enumeration.*; | import com.hz.pm.api.projectlib.enumeration.*; | ||||
import com.hz.pm.api.projectlib.manage.ProjectLibManage; | import com.hz.pm.api.projectlib.manage.ProjectLibManage; | ||||
@@ -69,6 +59,15 @@ import com.hz.pm.api.todocenter.utils.PdfUtils; | |||||
import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.auth.model.UserFullInfoDTO; | ||||
import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | import com.hz.pm.api.user.security.auth.model.UserInfoDetails; | ||||
import com.hz.pm.api.user.util.LoginUserUtil; | import com.hz.pm.api.user.util.LoginUserUtil; | ||||
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.basic.util.StrPool; | |||||
import com.ningdatech.file.entity.File; | |||||
import com.ningdatech.file.entity.vo.result.FileResultVO; | |||||
import com.ningdatech.file.service.FileService; | |||||
import com.wflow.contants.HisProInsEndActId; | import com.wflow.contants.HisProInsEndActId; | ||||
import com.wflow.contants.ProcessConstant; | import com.wflow.contants.ProcessConstant; | ||||
import com.wflow.exception.BusinessException; | import com.wflow.exception.BusinessException; | ||||
@@ -93,7 +92,6 @@ import org.flowable.bpmn.model.FlowElementsContainer; | |||||
import org.flowable.bpmn.model.SubProcess; | import org.flowable.bpmn.model.SubProcess; | ||||
import org.flowable.engine.HistoryService; | import org.flowable.engine.HistoryService; | ||||
import org.flowable.engine.RepositoryService; | import org.flowable.engine.RepositoryService; | ||||
import org.flowable.engine.RuntimeService; | |||||
import org.flowable.engine.TaskService; | import org.flowable.engine.TaskService; | ||||
import org.flowable.engine.history.HistoricProcessInstance; | import org.flowable.engine.history.HistoricProcessInstance; | ||||
import org.flowable.task.api.Task; | import org.flowable.task.api.Task; | ||||
@@ -105,6 +103,7 @@ import org.springframework.stereotype.Component; | |||||
import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||
import org.springframework.web.multipart.MultipartFile; | import org.springframework.web.multipart.MultipartFile; | ||||
import sun.misc.BASE64Decoder; | import sun.misc.BASE64Decoder; | ||||
import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
import java.io.ByteArrayInputStream; | import java.io.ByteArrayInputStream; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
@@ -286,7 +285,7 @@ public class TodoCenterManage { | |||||
ProjectListReq projectListReq = new ProjectListReq(); | ProjectListReq projectListReq = new ProjectListReq(); | ||||
BeanUtils.copyProperties(param, projectListReq); | BeanUtils.copyProperties(param, projectListReq); | ||||
List<Project> projects = projectLibManage.projectList(projectListReq); | List<Project> projects = projectLibManage.projectList(projectListReq); | ||||
if(StringUtils.isBlank(employeeCode)){ | |||||
if (StringUtils.isBlank(employeeCode)) { | |||||
projects = Collections.emptyList(); | projects = Collections.emptyList(); | ||||
} | } | ||||
if (CollUtil.isNotEmpty(projects)) { | if (CollUtil.isNotEmpty(projects)) { | ||||
@@ -553,7 +552,7 @@ public class TodoCenterManage { | |||||
* @param request 请求参数 | * @param request 请求参数 | ||||
* @return 流程进度及表单详情 | * @return 流程进度及表单详情 | ||||
*/ | */ | ||||
public ProcessProgressDetailVo getProcessDetail(ProcessDetailReq request) { | |||||
public ProcessProgressDetailVO getProcessDetail(ProcessDetailReq request) { | |||||
String employeeCode = LoginUserUtil.loginUserDetail().getEmployeeCode(); | String employeeCode = LoginUserUtil.loginUserDetail().getEmployeeCode(); | ||||
String instanceId = request.getInstanceId(); | String instanceId = request.getInstanceId(); | ||||
String nodeId = request.getNodeId(); | String nodeId = request.getNodeId(); | ||||
@@ -575,13 +574,13 @@ public class TodoCenterManage { | |||||
buildUserUtils.buildUserByProcessInfo(progressInfo); | buildUserUtils.buildUserByProcessInfo(progressInfo); | ||||
isHighLine = checkHighLine(progressInfo, taskId, LoginUserUtil.loginUserDetail()); | isHighLine = checkHighLine(progressInfo, taskId, LoginUserUtil.loginUserDetail()); | ||||
} | } | ||||
ProcessProgressDetailVo res = new ProcessProgressDetailVo(); | |||||
if(Objects.nonNull(projectInst)){ | |||||
ProcessProgressDetailVO res = new ProcessProgressDetailVO(); | |||||
if (Objects.nonNull(projectInst)) { | |||||
Long projectIdThis = projectInst.getProjectId(); | Long projectIdThis = projectInst.getProjectId(); | ||||
Project project = projectService.getById(projectIdThis); | Project project = projectService.getById(projectIdThis); | ||||
res.setProjectCode(project.getProjectCode()); | res.setProjectCode(project.getProjectCode()); | ||||
res.setProjectId(projectInst.getProjectId()); | res.setProjectId(projectInst.getProjectId()); | ||||
}else{ | |||||
} else { | |||||
res.setProjectId(request.getProjectId()); | res.setProjectId(request.getProjectId()); | ||||
} | } | ||||
res.setProcessProgressVo(progressInstanceDetail); | res.setProcessProgressVo(progressInstanceDetail); | ||||
@@ -596,11 +595,11 @@ public class TodoCenterManage { | |||||
} | } | ||||
private Boolean checkConstructionSuggestionsByNodeId(String taskId) { | private Boolean checkConstructionSuggestionsByNodeId(String taskId) { | ||||
if(StringUtils.isNotBlank(taskId)){ | |||||
if (StringUtils.isNotBlank(taskId)) { | |||||
List<Task> tasks = taskService.createTaskQuery() | List<Task> tasks = taskService.createTaskQuery() | ||||
.taskId(taskId) | .taskId(taskId) | ||||
.orderByTaskId().desc().list(); | .orderByTaskId().desc().list(); | ||||
if(CollUtil.isNotEmpty(tasks)){ | |||||
if (CollUtil.isNotEmpty(tasks)) { | |||||
return tasks.get(0).getTaskDefinitionKey() | return tasks.get(0).getTaskDefinitionKey() | ||||
.endsWith(StrPool.DASH + ProcessConstant.Field.CONSTRUCTION); | .endsWith(StrPool.DASH + ProcessConstant.Field.CONSTRUCTION); | ||||
} | } | ||||
@@ -811,7 +810,7 @@ public class TodoCenterManage { | |||||
// 获取登录用户浙政钉code | // 获取登录用户浙政钉code | ||||
String employeeCode = userFullInfo.getEmployeeCode(); | String employeeCode = userFullInfo.getEmployeeCode(); | ||||
if(StringUtils.isBlank(employeeCode)){ | |||||
if (StringUtils.isBlank(employeeCode)) { | |||||
return PageVo.empty(); | return PageVo.empty(); | ||||
} | } | ||||
@@ -896,8 +895,8 @@ public class TodoCenterManage { | |||||
List<ProcessInstanceVo> userSubmittedList = Lists.newArrayList(); | List<ProcessInstanceVo> userSubmittedList = Lists.newArrayList(); | ||||
Map<String, Project> projectInfoMap = Maps.newHashMap(); | Map<String, Project> projectInfoMap = Maps.newHashMap(); | ||||
if(StringUtils.isBlank(employeeCode)){ | |||||
projects = Collections.emptyList(); | |||||
if (StringUtils.isBlank(employeeCode)) { | |||||
projects = Collections.emptyList(); | |||||
} | } | ||||
if (CollUtil.isNotEmpty(projects)) { | if (CollUtil.isNotEmpty(projects)) { | ||||
@@ -1,11 +1,8 @@ | |||||
package com.hz.pm.api.todocenter.model.vo; | package com.hz.pm.api.todocenter.model.vo; | ||||
import com.wflow.workflow.bean.process.enums.NodeTypeEnum; | |||||
import com.wflow.workflow.bean.vo.ProcessProgressVo; | import com.wflow.workflow.bean.vo.ProcessProgressVo; | ||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.Builder; | |||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
@@ -16,10 +13,9 @@ import lombok.NoArgsConstructor; | |||||
* @since 2023/01/30 17:21 | * @since 2023/01/30 17:21 | ||||
*/ | */ | ||||
@Data | @Data | ||||
@Builder | |||||
@AllArgsConstructor | @AllArgsConstructor | ||||
@NoArgsConstructor | @NoArgsConstructor | ||||
public class ProcessProgressDetailVo { | |||||
public class ProcessProgressDetailVO { | |||||
/** | /** | ||||
* 流程处理详情 | * 流程处理详情 |
@@ -1,7 +1,6 @@ | |||||
package com.hz.pm.api.todocenter.model.vo; | package com.hz.pm.api.todocenter.model.vo; | ||||
import io.swagger.annotations.ApiModelProperty; | import io.swagger.annotations.ApiModelProperty; | ||||
import io.swagger.models.auth.In; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
@@ -1,7 +1,7 @@ | |||||
package com.hz.pm.api.todocenter.service; | package com.hz.pm.api.todocenter.service; | ||||
import com.hz.pm.api.todocenter.model.req.ProcessDetailReq; | import com.hz.pm.api.todocenter.model.req.ProcessDetailReq; | ||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVo; | |||||
import com.hz.pm.api.todocenter.model.vo.ProcessProgressDetailVO; | |||||
/** | /** | ||||
* @Classname ITodoService | * @Classname ITodoService | ||||
@@ -15,7 +15,7 @@ public interface ITodoService { | |||||
* @param request | * @param request | ||||
* @return | * @return | ||||
*/ | */ | ||||
ProcessProgressDetailVo getProcessDetail(ProcessDetailReq request) ; | |||||
ProcessProgressDetailVO getProcessDetail(ProcessDetailReq request) ; | |||||
Boolean isChangeRecord(Long projectId) ; | Boolean isChangeRecord(Long projectId) ; | ||||
} | } |