@@ -15,11 +15,11 @@ import lombok.Getter; | |||||
@AllArgsConstructor | @AllArgsConstructor | ||||
public enum MhUnitStripEnum { | public enum MhUnitStripEnum { | ||||
GOV_COMPANY("国企"), | |||||
GOV_COMPANY("国有企业"), | |||||
PARTY_GOV("党政"), | |||||
PARTY_GOV("党政领域"), | |||||
INDUSTRY("行业"); | |||||
INDUSTRY("重点行业"); | |||||
private final String name; | private final String name; | ||||
@@ -28,8 +28,8 @@ public enum MhUnitTypeEnum { | |||||
DEPT("D", "部门"), | DEPT("D", "部门"), | ||||
OFFICE("O", "科室"), | OFFICE("O", "科室"), | ||||
SASAC("G", "国资委"), | SASAC("G", "国资委"), | ||||
TWO_GOV_COMPANY("C", "一级国企"), | |||||
ONE_GOV_COMPANY("E", "二级国企"), | |||||
ONE_GOV_COMPANY("C", "一级国企"), | |||||
TWO_GOV_COMPANY("E", "二级国企"), | |||||
KEY_INDUSTRY("K", "重点行业"), | KEY_INDUSTRY("K", "重点行业"), | ||||
INDUSTRY_MANAGE_DEPT("Z", "行业主管部门"), | INDUSTRY_MANAGE_DEPT("Z", "行业主管部门"), | ||||
INDUSTRY_COMPANY_UNIT("Q", "行业企事业单位"); | INDUSTRY_COMPANY_UNIT("Q", "行业企事业单位"); | ||||
@@ -188,12 +188,6 @@ public class GovProjectCollectionManage { | |||||
.le(Objects.nonNull(req.getCreateOnMax()), GovBizProjectBaseinfo::getTongTime, req.getCreateOnMax()) | .le(Objects.nonNull(req.getCreateOnMax()), GovBizProjectBaseinfo::getTongTime, req.getCreateOnMax()) | ||||
.eq(StringUtils.isNotBlank(req.getProjectType()), GovBizProjectBaseinfo::getBaseProjType, req.getProjectType()) | .eq(StringUtils.isNotBlank(req.getProjectType()), GovBizProjectBaseinfo::getBaseProjType, req.getProjectType()) | ||||
.in(CollUtil.isNotEmpty(req.getProjectCodes()), GovBizProjectBaseinfo::getBaseProjId, req.getProjectCodes()) | .in(CollUtil.isNotEmpty(req.getProjectCodes()), GovBizProjectBaseinfo::getBaseProjId, req.getProjectCodes()) | ||||
.in(Objects.nonNull(req.getOldProjectType()) && ProjectTypeEnum.BUILD.getCode().equals(req.getOldProjectType()), | |||||
GovBizProjectBaseinfo::getBaseProjType, Lists.newArrayList(ProjectTypeNewEnum.FIRST_BUILD.getCode(), | |||||
ProjectTypeNewEnum.SJ_BUILD.getCode(), ProjectTypeNewEnum.SZ_BUILD.getCode())) | |||||
.in(Objects.nonNull(req.getOldProjectType()) && ProjectTypeEnum.DEV_OPS.getCode().equals(req.getOldProjectType()), | |||||
GovBizProjectBaseinfo::getBaseProjType, Lists.newArrayList(ProjectTypeNewEnum.NEW_OPERA.getCode(), | |||||
ProjectTypeNewEnum.XU_OPERA.getCode())) | |||||
.eq(GovBizProjectBaseinfo::getDeleted, Boolean.FALSE) | .eq(GovBizProjectBaseinfo::getDeleted, Boolean.FALSE) | ||||
.orderByDesc(GovBizProjectBaseinfo::getBizTime); | .orderByDesc(GovBizProjectBaseinfo::getBizTime); | ||||
baseinfoService.page(page, wrapper); | baseinfoService.page(page, wrapper); | ||||
@@ -306,12 +300,6 @@ public class GovProjectCollectionManage { | |||||
.gt(Objects.nonNull(req.getCreateOnMin()), GovBizProjectDraft::getTongTime, req.getCreateOnMin()) | .gt(Objects.nonNull(req.getCreateOnMin()), GovBizProjectDraft::getTongTime, req.getCreateOnMin()) | ||||
.le(Objects.nonNull(req.getCreateOnMax()), GovBizProjectDraft::getTongTime, req.getCreateOnMax()) | .le(Objects.nonNull(req.getCreateOnMax()), GovBizProjectDraft::getTongTime, req.getCreateOnMax()) | ||||
.eq(StringUtils.isNotBlank(req.getProjectType()), GovBizProjectDraft::getBaseProjType, req.getProjectType()) | .eq(StringUtils.isNotBlank(req.getProjectType()), GovBizProjectDraft::getBaseProjType, req.getProjectType()) | ||||
.in(Objects.nonNull(req.getOldProjectType()) && ProjectTypeEnum.BUILD.getCode().equals(req.getOldProjectType()), | |||||
GovBizProjectDraft::getBaseProjType, Lists.newArrayList(ProjectTypeNewEnum.FIRST_BUILD.getCode(), | |||||
ProjectTypeNewEnum.SJ_BUILD.getCode(), ProjectTypeNewEnum.SZ_BUILD.getCode())) | |||||
.in(Objects.nonNull(req.getOldProjectType()) && ProjectTypeEnum.DEV_OPS.getCode().equals(req.getOldProjectType()), | |||||
GovBizProjectDraft::getBaseProjType, Lists.newArrayList(ProjectTypeNewEnum.NEW_OPERA.getCode(), | |||||
ProjectTypeNewEnum.XU_OPERA.getCode())) | |||||
.eq(GovBizProjectDraft::getDeleted, Boolean.FALSE) | .eq(GovBizProjectDraft::getDeleted, Boolean.FALSE) | ||||
.eq(GovBizProjectDraft::getCreateId, user.getUserId()) | .eq(GovBizProjectDraft::getCreateId, user.getUserId()) | ||||
.orderByDesc(GovBizProjectDraft::getBizTime); | .orderByDesc(GovBizProjectDraft::getBizTime); | ||||
@@ -87,10 +87,10 @@ public class ApplicationConverter { | |||||
if(Lists.newArrayList(ProjectTypeNewEnum.FIRST_BUILD.getCode(), | if(Lists.newArrayList(ProjectTypeNewEnum.FIRST_BUILD.getCode(), | ||||
ProjectTypeNewEnum.SJ_BUILD.getCode(),ProjectTypeNewEnum.SZ_BUILD.getCode()).contains(projectType)){ | ProjectTypeNewEnum.SJ_BUILD.getCode(),ProjectTypeNewEnum.SZ_BUILD.getCode()).contains(projectType)){ | ||||
return ProjectTypeEnum.BUILD.getCode(); | |||||
return ProjectTypeEnum.RECONSTRUCTION.getCode(); | |||||
}else if(Lists.newArrayList(ProjectTypeNewEnum.NEW_OPERA.getCode(), | }else if(Lists.newArrayList(ProjectTypeNewEnum.NEW_OPERA.getCode(), | ||||
ProjectTypeNewEnum.XU_OPERA.getCode()).contains(projectType)){ | ProjectTypeNewEnum.XU_OPERA.getCode()).contains(projectType)){ | ||||
return ProjectTypeEnum.DEV_OPS.getCode(); | |||||
return ProjectTypeEnum.COMPREHENSIVE_INTEGRATION.getCode(); | |||||
} | } | ||||
return null; | return null; | ||||
} | } | ||||
@@ -31,6 +31,7 @@ import com.hz.pm.api.projectdeclared.model.vo.ProjectDraftVO; | |||||
import com.hz.pm.api.projectdeclared.service.IProjectDraftService; | import com.hz.pm.api.projectdeclared.service.IProjectDraftService; | ||||
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; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | |||||
import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | ||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
@@ -304,6 +305,9 @@ public class DeclaredProjectManage { | |||||
if (StrUtil.isNotBlank(draft.getDynamicForm())) { | if (StrUtil.isNotBlank(draft.getDynamicForm())) { | ||||
vo.setDynamicForm(JSON.parseObject(draft.getDynamicForm(), Map.class)); | vo.setDynamicForm(JSON.parseObject(draft.getDynamicForm(), Map.class)); | ||||
} | } | ||||
if (StrUtil.isNotBlank(draft.getGovSystemReplaceInfos())) { | |||||
vo.setSystemReplaceInfos(JSONUtil.toList(draft.getGovSystemReplaceInfos(), GovSystemReplaceInfoDTO.class)); | |||||
} | |||||
return vo; | return vo; | ||||
} | } | ||||
@@ -344,6 +348,9 @@ public class DeclaredProjectManage { | |||||
draft.setCreateOn(LocalDateTime.now()); | draft.setCreateOn(LocalDateTime.now()); | ||||
} | } | ||||
} | } | ||||
if (CollUtil.isNotEmpty(projectInfo.getSystemReplaceInfos())) { | |||||
draft.setGovSystemReplaceInfos(JSONUtil.toJsonStr(projectInfo.getSystemReplaceInfos())); | |||||
} | |||||
draft.setDraftType(draftType.getCode()); | draft.setDraftType(draftType.getCode()); | ||||
draft.setUpdateOn(LocalDateTime.now()); | draft.setUpdateOn(LocalDateTime.now()); | ||||
draft.setUserId(user.getUserIdStr()); | draft.setUserId(user.getUserIdStr()); | ||||
@@ -358,4 +358,6 @@ public class ProjectDraft implements Serializable { | |||||
@ApiModelProperty("暂存类型:1 项目申报、2 立项备案") | @ApiModelProperty("暂存类型:1 项目申报、2 立项备案") | ||||
private Integer draftType; | private Integer draftType; | ||||
private String govSystemReplaceInfos; | |||||
} | } |
@@ -3,6 +3,7 @@ package com.hz.pm.api.projectdeclared.model.vo; | |||||
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.common.compare.Compare; | import com.hz.pm.api.common.compare.Compare; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | |||||
import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | import com.hz.pm.api.projectlib.model.entity.ProjectApplication; | ||||
import io.swagger.annotations.ApiModel; | import io.swagger.annotations.ApiModel; | ||||
@@ -26,14 +27,12 @@ import java.util.Map; | |||||
* @author zpf | * @author zpf | ||||
* @since 2023-02-06 | * @since 2023-02-06 | ||||
*/ | */ | ||||
@ApiModel(value = "NdProjectDraft对象", description = "") | |||||
@ApiModel(value = "NdProjectDraft对象") | |||||
@Data | @Data | ||||
@Builder | @Builder | ||||
@NoArgsConstructor | @NoArgsConstructor | ||||
@AllArgsConstructor | @AllArgsConstructor | ||||
public class ProjectDraftVO implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
public class ProjectDraftVO { | |||||
@ApiModelProperty("应用ID") | @ApiModelProperty("应用ID") | ||||
@TableId(type = IdType.AUTO) | @TableId(type = IdType.AUTO) | ||||
@@ -382,4 +381,7 @@ public class ProjectDraftVO implements Serializable { | |||||
@ApiModelProperty("可研批复文件") | @ApiModelProperty("可研批复文件") | ||||
private String baseResearchReportApprovalFile; | private String baseResearchReportApprovalFile; | ||||
@ApiModelProperty("政务系统改造情况") | |||||
private List<GovSystemReplaceInfoDTO> systemReplaceInfos; | |||||
} | } |
@@ -1,18 +0,0 @@ | |||||
package com.hz.pm.api.projectlib.controller; | |||||
import org.springframework.web.bind.annotation.RequestMapping; | |||||
import org.springframework.stereotype.Controller; | |||||
/** | |||||
* <p> | |||||
* 前端控制器 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-02-21 | |||||
*/ | |||||
@Controller | |||||
@RequestMapping("/api.projectlib/ndProjectPaymentPlan") | |||||
public class NdProjectPaymentPlanController { | |||||
} |
@@ -0,0 +1,52 @@ | |||||
package com.hz.pm.api.projectlib.entity; | |||||
import com.baomidou.mybatisplus.annotation.*; | |||||
import java.io.Serializable; | |||||
import java.time.LocalDateTime; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import io.swagger.models.auth.In; | |||||
import lombok.Data; | |||||
/** | |||||
* <p> | |||||
* 政务信息系统改造情况 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-02-29 | |||||
*/ | |||||
@Data | |||||
@TableName("ND_PROJECT_GOV_SYSTEM_REPLACE_INFOS") | |||||
@ApiModel(value = "NdProjectGovSystemReplaceInfos对象") | |||||
public class ProjectGovSystemReplaceInfos implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
@TableId(value = "ID", type = IdType.AUTO) | |||||
private Long id; | |||||
@ApiModelProperty("替代前系统") | |||||
private String sourceSystem; | |||||
@ApiModelProperty("替代后系统") | |||||
private String targetSystem; | |||||
@ApiModelProperty("替代类型") | |||||
private Integer replaceType; | |||||
@ApiModelProperty("项目ID") | |||||
private Long projectId; | |||||
@ApiModelProperty("批次号") | |||||
private Integer batchNo; | |||||
@TableField(fill = FieldFill.INSERT) | |||||
private Long createBy; | |||||
@TableField(fill = FieldFill.INSERT) | |||||
private LocalDateTime createOn; | |||||
} |
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil; | |||||
import cn.hutool.core.lang.Assert; | import cn.hutool.core.lang.Assert; | ||||
import cn.hutool.core.util.NumberUtil; | import cn.hutool.core.util.NumberUtil; | ||||
import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | 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; | ||||
@@ -49,9 +50,11 @@ import com.hz.pm.api.projectdeclared.service.IOperationService; | |||||
import com.hz.pm.api.projectdeclared.service.IPreInsAcceptancePersonService; | import com.hz.pm.api.projectdeclared.service.IPreInsAcceptancePersonService; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseService; | import com.hz.pm.api.projectdeclared.service.IPurchaseService; | ||||
import com.hz.pm.api.projectdeclared.utils.GenerateProjectCodeUtil; | import com.hz.pm.api.projectdeclared.utils.GenerateProjectCodeUtil; | ||||
import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | |||||
import com.hz.pm.api.projectlib.handle.ProcessExecuteChainHandle; | import com.hz.pm.api.projectlib.handle.ProcessExecuteChainHandle; | ||||
import com.hz.pm.api.projectlib.helper.ProjectHelper; | import com.hz.pm.api.projectlib.helper.ProjectHelper; | ||||
import com.hz.pm.api.projectlib.model.constant.ProjectConstant; | import com.hz.pm.api.projectlib.model.constant.ProjectConstant; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | |||||
import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | ||||
import com.hz.pm.api.projectlib.model.entity.*; | import com.hz.pm.api.projectlib.model.entity.*; | ||||
@@ -142,6 +145,7 @@ public class ProjectLibManage { | |||||
private final UserInfoHelper userInfoHelper; | private final UserInfoHelper userInfoHelper; | ||||
private final IExpertReviewService expertReviewService; | private final IExpertReviewService expertReviewService; | ||||
private final ConstructionManage constructionManage; | private final ConstructionManage constructionManage; | ||||
private final IProjectGovSystemReplaceInfosService projectGovSystemReplaceInfosService; | |||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | LambdaQueryWrapper<Project> query = ProjectHelper.projectQuery(req); | ||||
@@ -649,6 +653,36 @@ public class ProjectLibManage { | |||||
return project == null ? null : getProjectDetailLogic(project); | return project == null ? null : getProjectDetailLogic(project); | ||||
} | } | ||||
/** | |||||
* 获取政务信息系统改造情况 | |||||
* | |||||
* @param projectId \ | |||||
* @return \ | |||||
*/ | |||||
private List<GovSystemReplaceInfoDTO> getGovSystemReplaceInfos(Long projectId) { | |||||
Wrapper<ProjectGovSystemReplaceInfos> query = Wrappers.lambdaQuery(ProjectGovSystemReplaceInfos.class) | |||||
.eq(ProjectGovSystemReplaceInfos::getProjectId, projectId) | |||||
.orderByAsc(ProjectGovSystemReplaceInfos::getId) | |||||
.orderByAsc(ProjectGovSystemReplaceInfos::getBatchNo); | |||||
List<ProjectGovSystemReplaceInfos> govSystemReplaceInfos = projectGovSystemReplaceInfosService.list(query); | |||||
if (govSystemReplaceInfos.isEmpty()) { | |||||
return Collections.emptyList(); | |||||
} | |||||
Map<Integer, List<ProjectGovSystemReplaceInfos>> replaceInfoGroup = CollUtils.group(govSystemReplaceInfos, ProjectGovSystemReplaceInfos::getBatchNo); | |||||
return replaceInfoGroup.entrySet().stream() | |||||
.sorted(Comparator.comparingInt(Map.Entry::getKey)) | |||||
.map(w -> { | |||||
List<ProjectGovSystemReplaceInfos> currBatchValues = w.getValue(); | |||||
ProjectGovSystemReplaceInfos firstReplaceInfo = currBatchValues.get(0); | |||||
GovSystemReplaceInfoDTO replaceInfo = new GovSystemReplaceInfoDTO(); | |||||
replaceInfo.setReplaceType(firstReplaceInfo.getReplaceType()); | |||||
replaceInfo.setTargetSystemName(firstReplaceInfo.getTargetSystem()); | |||||
String systemNames = CollUtils.joinByComma(currBatchValues, ProjectGovSystemReplaceInfos::getSourceSystem); | |||||
replaceInfo.setTargetSystemName(systemNames); | |||||
return replaceInfo; | |||||
}).collect(Collectors.toList()); | |||||
} | |||||
private ProjectDetailVO getProjectDetailLogic(Project project) { | private ProjectDetailVO getProjectDetailLogic(Project project) { | ||||
ProjectDetailVO vo = new ProjectDetailVO(); | ProjectDetailVO vo = new ProjectDetailVO(); | ||||
BeanUtils.copyProperties(project, vo); | BeanUtils.copyProperties(project, vo); | ||||
@@ -665,7 +699,7 @@ public class ProjectLibManage { | |||||
Map<Long, List<ProjectCoreBusinessIndicators>> coreBizMap = CollUtils.group(coreBizs, ProjectCoreBusinessIndicators::getApplicationId); | Map<Long, List<ProjectCoreBusinessIndicators>> coreBizMap = CollUtils.group(coreBizs, ProjectCoreBusinessIndicators::getApplicationId); | ||||
vo.setProjectApplications(CollUtils.convert(applications, app -> ProjectHelper.convertVOWithMap(app, coreBizMap))); | vo.setProjectApplications(CollUtils.convert(applications, app -> ProjectHelper.convertVOWithMap(app, coreBizMap))); | ||||
} | } | ||||
vo.setSystemReplaceInfos(getGovSystemReplaceInfos(project.getId())); | |||||
//审批信息 | //审批信息 | ||||
ProcessDetailReq req = new ProcessDetailReq(); | ProcessDetailReq req = new ProcessDetailReq(); | ||||
req.setInstanceId(project.getInstCode()); | req.setInstanceId(project.getInstCode()); | ||||
@@ -854,6 +888,7 @@ public class ProjectLibManage { | |||||
if (projectService.save(project)) { | if (projectService.save(project)) { | ||||
saveApplication(projectDto, project, null); | saveApplication(projectDto, project, null); | ||||
savePaymentPlans(project, projectDto.getPaymentPlanList()); | savePaymentPlans(project, projectDto.getPaymentPlanList()); | ||||
saveGovSystemReplaceInfos(project, projectDto.getSystemReplaceInfos()); | |||||
} | } | ||||
} else { | } else { | ||||
//否则是重新提交的 新生成一个新版本的项目 | //否则是重新提交的 新生成一个新版本的项目 | ||||
@@ -967,8 +1002,8 @@ public class ProjectLibManage { | |||||
*/ | */ | ||||
public Project newProjectWithVersion(ProjectDTO projectDto, Boolean isConstruct) { | public Project newProjectWithVersion(ProjectDTO projectDto, Boolean isConstruct) { | ||||
Project oldProject = projectService.getById(projectDto.getId()); | Project oldProject = projectService.getById(projectDto.getId()); | ||||
Assert.notNull(oldProject, "项目不存在!"); | |||||
Project project = new Project(); | Project project = new Project(); | ||||
VUtils.isTrue(Objects.isNull(oldProject)).throwMessage("项目不存在!"); | |||||
BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | BeanUtil.copyProperties(oldProject, project, CopyOptions.create() | ||||
.setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | .setIgnoreError(Boolean.TRUE).setIgnoreNullValue(Boolean.TRUE)); | ||||
BeanUtil.copyProperties(projectDto, project, CopyOptions.create() | BeanUtil.copyProperties(projectDto, project, CopyOptions.create() | ||||
@@ -986,9 +1021,30 @@ public class ProjectLibManage { | |||||
projectService.reverseNewest(project.getProjectCode(), project.getId()); | projectService.reverseNewest(project.getProjectCode(), project.getId()); | ||||
saveApplication(projectDto, project, isConstruct); | saveApplication(projectDto, project, isConstruct); | ||||
savePaymentPlans(project, projectDto.getPaymentPlanList()); | savePaymentPlans(project, projectDto.getPaymentPlanList()); | ||||
saveGovSystemReplaceInfos(project, projectDto.getSystemReplaceInfos()); | |||||
return project; | return project; | ||||
} | } | ||||
private void saveGovSystemReplaceInfos(Project project, List<GovSystemReplaceInfoDTO> govSystemReplaceInfos) { | |||||
if (CollUtil.isEmpty(govSystemReplaceInfos)) { | |||||
return; | |||||
} | |||||
List<ProjectGovSystemReplaceInfos> replaceInfos = new ArrayList<>(); | |||||
for (int i = 0; i < govSystemReplaceInfos.size(); i++) { | |||||
GovSystemReplaceInfoDTO curr = govSystemReplaceInfos.get(i); | |||||
for (String systemName : curr.getSourceSystemNames()) { | |||||
ProjectGovSystemReplaceInfos replaceInfo = new ProjectGovSystemReplaceInfos(); | |||||
replaceInfo.setProjectId(project.getId()); | |||||
replaceInfo.setReplaceType(curr.getReplaceType()); | |||||
replaceInfo.setSourceSystem(systemName); | |||||
replaceInfo.setTargetSystem(curr.getTargetSystemName()); | |||||
replaceInfo.setReplaceType(i + 1); | |||||
replaceInfos.add(replaceInfo); | |||||
} | |||||
} | |||||
projectGovSystemReplaceInfosService.saveBatch(replaceInfos); | |||||
} | |||||
public Project saveProjectWithVersionAndStatus(ProjectDTO projectDto, Integer stageCode, Integer statusCode, Boolean isConstruct) { | public Project saveProjectWithVersionAndStatus(ProjectDTO projectDto, Integer stageCode, Integer statusCode, Boolean isConstruct) { | ||||
Project oldProject = projectService.getById(projectDto.getId()); | Project oldProject = projectService.getById(projectDto.getId()); | ||||
Project project = new Project(); | Project project = new Project(); | ||||
@@ -0,0 +1,16 @@ | |||||
package com.hz.pm.api.projectlib.mapper; | |||||
import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | |||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
/** | |||||
* <p> | |||||
* Mapper 接口 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-02-29 | |||||
*/ | |||||
public interface ProjectGovSystemReplaceInfosMapper extends BaseMapper<ProjectGovSystemReplaceInfos> { | |||||
} |
@@ -0,0 +1,5 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | |||||
<mapper namespace="com.hz.pm.api.projectlib.mapper.ProjectGovSystemReplaceInfosMapper"> | |||||
</mapper> |
@@ -0,0 +1,28 @@ | |||||
package com.hz.pm.api.projectlib.model.dto; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
/** | |||||
* <p> | |||||
* GovSystemReplaceInfoDTO | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 11:49 2024/2/29 | |||||
*/ | |||||
@Data | |||||
public class GovSystemReplaceInfoDTO { | |||||
@ApiModelProperty("替代前系统名称") | |||||
private List<String> sourceSystemNames; | |||||
@ApiModelProperty("被替代系统名称") | |||||
private String targetSystemName; | |||||
@ApiModelProperty("替代方式") | |||||
private Integer replaceType; | |||||
} |
@@ -14,7 +14,7 @@ import java.util.Map; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
* | |||||
* 项目信息参数类 | |||||
* </p> | * </p> | ||||
* | * | ||||
* @author zpf | * @author zpf | ||||
@@ -22,9 +22,7 @@ import java.util.Map; | |||||
*/ | */ | ||||
@Data | @Data | ||||
@ApiModel(value = "NdProjectDto") | @ApiModel(value = "NdProjectDto") | ||||
public class ProjectDTO implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
public class ProjectDTO { | |||||
@ApiModelProperty("主键") | @ApiModelProperty("主键") | ||||
private Long id; | private Long id; | ||||
@@ -363,4 +361,8 @@ public class ProjectDTO implements Serializable { | |||||
@ApiModelProperty("立项依据证明材料") | @ApiModelProperty("立项依据证明材料") | ||||
private String baseProjBasisFile; | private String baseProjBasisFile; | ||||
@ApiModelProperty("政务信息系统替代情况") | |||||
private List<GovSystemReplaceInfoDTO> systemReplaceInfos; | |||||
} | } |
@@ -0,0 +1,50 @@ | |||||
package com.hz.pm.api.projectlib.model.enumeration; | |||||
import com.hz.pm.api.common.util.StrUtils; | |||||
import io.swagger.models.auth.In; | |||||
import lombok.AllArgsConstructor; | |||||
import lombok.Data; | |||||
import lombok.Getter; | |||||
import java.util.Arrays; | |||||
import java.util.Optional; | |||||
/** | |||||
* <p> | |||||
* GovSystemReplaceTypeEnum | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 12:01 2024/2/29 | |||||
*/ | |||||
@Getter | |||||
@AllArgsConstructor | |||||
public enum GovSystemReplaceTypeEnum { | |||||
// 综合集成、改造提升、基础设施、统建应用、新建、暂缓 | |||||
COMPREHENSIVE_INTEGRATION("综合集成", 1), | |||||
RECONSTRUCTION("改造提升", 2), | |||||
INFRASTRUCTURE("基础设施", 3), | |||||
UNIFIED_CONSTRUCTION_APPLICATION("统建应用", 4), | |||||
NEW_BUILT("新建", 5), | |||||
SUSPEND("暂缓", 6); | |||||
private final String val; | |||||
private final Integer code; | |||||
public static Optional<GovSystemReplaceTypeEnum> get(Integer code) { | |||||
return Arrays.stream(values()) | |||||
.filter(w -> w.getCode().equals(code)) | |||||
.findFirst(); | |||||
} | |||||
public static String getVal(Integer code) { | |||||
return get(code) | |||||
.flatMap(w -> Optional.of(w.getVal())) | |||||
.orElse(StrUtils.EMPTY); | |||||
} | |||||
} |
@@ -19,14 +19,13 @@ import java.util.Objects; | |||||
@AllArgsConstructor | @AllArgsConstructor | ||||
@NoArgsConstructor | @NoArgsConstructor | ||||
public enum ProjectTypeEnum { | public enum ProjectTypeEnum { | ||||
/** | |||||
* 项目类型 | |||||
*/ | |||||
BUILD(1, "建设"), | |||||
DEV_OPS(2, "运维"); | |||||
private Integer code; | |||||
RECONSTRUCTION("改造提升", 1), | |||||
COMPREHENSIVE_INTEGRATION("综合集成", 2), | |||||
NEW_BUILT("新增", 3); | |||||
private String desc; | private String desc; | ||||
private Integer code; | |||||
public static String getDesc(Integer code) { | public static String getDesc(Integer code) { | ||||
if (Objects.isNull(code)) { | if (Objects.isNull(code)) { | ||||
@@ -6,7 +6,8 @@ import com.alibaba.fastjson.annotation.JSONField; | |||||
import com.hz.pm.api.common.compare.Compare; | import com.hz.pm.api.common.compare.Compare; | ||||
import com.hz.pm.api.dashboard.model.vo.ProtraitProjectOutputVO; | import com.hz.pm.api.dashboard.model.vo.ProtraitProjectOutputVO; | ||||
import com.hz.pm.api.portrait.model.vo.TagVO; | import com.hz.pm.api.portrait.model.vo.TagVO; | ||||
import com.hz.pm.api.projectdeclared.model.vo.*; | |||||
import com.hz.pm.api.projectdeclared.model.vo.PurchaseFullInfoVO; | |||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | |||||
import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | import com.hz.pm.api.projectlib.model.dto.ProjectPaymentPlanDTO; | ||||
import com.hz.pm.api.projectlib.model.enumeration.ProjectStatusEnum; | import com.hz.pm.api.projectlib.model.enumeration.ProjectStatusEnum; | ||||
import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; | import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; | ||||
@@ -551,4 +552,7 @@ public class ProjectDetailVO { | |||||
@ApiModelProperty("年度支付计划") | @ApiModelProperty("年度支付计划") | ||||
private List<ProjectPaymentPlanDTO> annualPaymentPlans; | private List<ProjectPaymentPlanDTO> annualPaymentPlans; | ||||
@ApiModelProperty("政务信息系统改造情况") | |||||
private List<GovSystemReplaceInfoDTO> systemReplaceInfos; | |||||
} | } |
@@ -0,0 +1,16 @@ | |||||
package com.hz.pm.api.projectlib.service; | |||||
import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | |||||
import com.baomidou.mybatisplus.extension.service.IService; | |||||
/** | |||||
* <p> | |||||
* 服务类 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-02-29 | |||||
*/ | |||||
public interface IProjectGovSystemReplaceInfosService extends IService<ProjectGovSystemReplaceInfos> { | |||||
} |
@@ -0,0 +1,20 @@ | |||||
package com.hz.pm.api.projectlib.service.impl; | |||||
import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | |||||
import com.hz.pm.api.projectlib.mapper.ProjectGovSystemReplaceInfosMapper; | |||||
import com.hz.pm.api.projectlib.service.IProjectGovSystemReplaceInfosService; | |||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import org.springframework.stereotype.Service; | |||||
/** | |||||
* <p> | |||||
* 服务实现类 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-02-29 | |||||
*/ | |||||
@Service | |||||
public class ProjectGovSystemReplaceInfosServiceImpl extends ServiceImpl<ProjectGovSystemReplaceInfosMapper, ProjectGovSystemReplaceInfos> implements IProjectGovSystemReplaceInfosService { | |||||
} |
@@ -1,10 +1,12 @@ | |||||
package com.hz.pm.api.user.manage; | package com.hz.pm.api.user.manage; | ||||
import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||||
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.hz.pm.api.common.util.StrUtils; | import com.hz.pm.api.common.util.StrUtils; | ||||
import com.hz.pm.api.external.model.enumeration.MhUnitStripEnum; | |||||
import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum; | import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum; | ||||
import com.hz.pm.api.user.helper.MhUnitCache; | import com.hz.pm.api.user.helper.MhUnitCache; | ||||
import com.hz.pm.api.user.model.dto.MhUnitTreeDTO; | import com.hz.pm.api.user.model.dto.MhUnitTreeDTO; | ||||
@@ -55,7 +55,7 @@ public class CodeGen { | |||||
} | } | ||||
public static void main(String[] args) { | public static void main(String[] args) { | ||||
generate("WendyYang", "projectlib", PATH_YYD, "nd_project_payment_plan"); | |||||
generate("WendyYang", "projectlib", PATH_YYD, "nd_project_gov_system_replace_infos"); | |||||
} | } | ||||
} | } |