From fbcf527e94beba97e63db0ff7af3dca6c9a07b37 Mon Sep 17 00:00:00 2001 From: PoffyZhang <99775271@qq.com> Date: Mon, 19 Jun 2023 18:11:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A9=E6=95=88=E8=AF=84=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/handler/GlobalResponseHandler.java | 3 +- .../controller/PerformanceAppraisalController.java | 54 ++++ .../convert/PerformanceAppraisalConveter.java | 71 +++++ .../manage/PerformanceAppraisalManage.java | 347 +++++++++++++++++++++ .../PerformanceAppraisalApplicationMapper.java | 16 + .../PerformanceAppraisalApplicationMapper.xml | 5 + .../mapper/PerformanceAppraisalMapper.java | 17 + .../mapper/PerformanceAppraisalMapper.xml | 5 + .../mapper/PerformanceAppraisalProjectMapper.java | 17 + .../mapper/PerformanceAppraisalProjectMapper.xml | 5 + .../performance/model/dto/AppraisalProjectDTO.java | 24 ++ .../model/dto/PerformanceAppraisalCreateDTO.java | 64 ++++ .../model/dto/PerformanceAppraisalEditDTO.java | 66 ++++ .../model/entity/PerformanceAppraisal.java | 58 ++++ .../entity/PerformanceAppraisalApplication.java | 40 +++ .../model/entity/PerformanceAppraisalProject.java | 46 +++ .../model/req/PerformanceAppraisalListReq.java | 32 ++ .../vo/PerformanceAppraisalApplicationVO.java | 38 +++ .../model/vo/PerformanceAppraisalProjectVO.java | 41 +++ .../model/vo/PerformanceAppraisalVO.java | 60 ++++ .../IPerformanceAppraisalApplicationService.java | 16 + .../IPerformanceAppraisalProjectService.java | 16 + .../service/IPerformanceAppraisalService.java | 16 + ...PerformanceAppraisalApplicationServiceImpl.java | 21 ++ .../PerformanceAppraisalProjectServiceImpl.java | 21 ++ .../impl/PerformanceAppraisalServiceImpl.java | 20 ++ 26 files changed, 1118 insertions(+), 1 deletion(-) create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/controller/PerformanceAppraisalController.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/convert/PerformanceAppraisalConveter.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/PerformanceAppraisalManage.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.xml create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.xml create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.xml create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/AppraisalProjectDTO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalCreateDTO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalEditDTO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisal.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalApplication.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalProject.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/req/PerformanceAppraisalListReq.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalApplicationVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalProjectVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalVO.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalApplicationService.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalProjectService.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalService.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalApplicationServiceImpl.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalProjectServiceImpl.java create mode 100644 pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalServiceImpl.java diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java b/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java index 4bae14f..112dd95 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/common/handler/GlobalResponseHandler.java @@ -28,7 +28,8 @@ import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; "com.ningdatech.pmapi.sms.controller", "com.ningdatech.pmapi.workbench.controller", "com.ningdatech.pmapi.ding.controller", - "com.ningdatech.pmapi.filemanage.controller" + "com.ningdatech.pmapi.filemanage.controller", + "com.ningdatech.pmapi.performance.controller" }) public class GlobalResponseHandler implements ResponseBodyAdvice { diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/controller/PerformanceAppraisalController.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/controller/PerformanceAppraisalController.java new file mode 100644 index 0000000..fb26b7d --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/controller/PerformanceAppraisalController.java @@ -0,0 +1,54 @@ +package com.ningdatech.pmapi.performance.controller; + +import com.ningdatech.basic.model.PageVo; +import com.ningdatech.log.annotation.WebLog; +import com.ningdatech.pmapi.performance.manage.PerformanceAppraisalManage; +import com.ningdatech.pmapi.performance.model.dto.PerformanceAppraisalCreateDTO; +import com.ningdatech.pmapi.performance.model.dto.PerformanceAppraisalEditDTO; +import com.ningdatech.pmapi.performance.model.req.PerformanceAppraisalListReq; +import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +/** + * @Classname PerformanceAppraisalController + * @Description + * @Date 2023/6/19 14:16 + * @Author PoffyZhang + */ +@RestController +@RequiredArgsConstructor +@Api(tags = "绩效评价控制器") +@RequestMapping("/api/v1/performance-appraisal") +public class PerformanceAppraisalController { + + private final PerformanceAppraisalManage performanceAppraisalManage; + + @GetMapping("/list") + @ApiOperation("绩效列表") + public PageVo list(PerformanceAppraisalListReq req) { + return performanceAppraisalManage.list(req); + } + + @GetMapping("/detail/{id}") + @ApiOperation("绩效详情") + public PerformanceAppraisalVO detail(@PathVariable Long id) { + return performanceAppraisalManage.detail(id); + } + + @PostMapping("/create") + @ApiOperation("新建绩效") + @WebLog("新建绩效") + public String create(PerformanceAppraisalCreateDTO createDTO) { + return performanceAppraisalManage.create(createDTO); + } + + @PostMapping("/edit") + @ApiOperation("编辑绩效") + @WebLog("编辑绩效") + public String edit(PerformanceAppraisalEditDTO editDTO) { + return performanceAppraisalManage.edit(editDTO); + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/convert/PerformanceAppraisalConveter.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/convert/PerformanceAppraisalConveter.java new file mode 100644 index 0000000..f2680f3 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/convert/PerformanceAppraisalConveter.java @@ -0,0 +1,71 @@ +package com.ningdatech.pmapi.performance.convert; + +import cn.hutool.core.collection.CollUtil; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalApplication; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalProject; +import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalApplicationVO; +import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalProjectVO; +import com.ningdatech.pmapi.projectlib.enumeration.ProjectTypeEnum; +import com.ningdatech.pmapi.projectlib.model.entity.Project; +import com.ningdatech.pmapi.projectlib.model.entity.ProjectApplication; +import org.apache.commons.lang3.StringUtils; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Classname PerformanceAppraisalConverer + * @Description + * @Date 2023/6/19 15:31 + * @Author PoffyZhang + */ +public class PerformanceAppraisalConveter { + + public static List convertProjects( + List projects, Map map) { + if(CollUtil.isNotEmpty(projects) && CollUtil.isNotEmpty(map)){ + return projects.stream().map(p -> { + PerformanceAppraisalProjectVO vo = new PerformanceAppraisalProjectVO(); + vo.setIsReAppraisal(p.getIsReAppraisal()); + vo.setId(p.getProjectId()); + if(map.containsKey(p.getProjectId())){ + Project project = map.get(p.getProjectId()); + vo.setProjectName(project.getProjectName()); + vo.setProjectType(project.getProjectType()); + vo.setProjectTypeName(getProjectTypeName(project.getProjectType())); + vo.setBuildOrgName(project.getBuildOrgName()); + } + return vo; + }).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + public static List convertApplications( + List applications, Map map) { + if(CollUtil.isNotEmpty(applications) && CollUtil.isNotEmpty(map)){ + return applications.stream().map(a -> { + PerformanceAppraisalApplicationVO vo = new PerformanceAppraisalApplicationVO(); + vo.setId(a.getApplicationId()); + if(map.containsKey(a.getApplicationId())){ + ProjectApplication application = map.get(a.getApplicationId()); + vo.setApplicationName(StringUtils.isNotBlank(application.getApplicationName())? + application.getApplicationName() : application.getAccountAppName()); + vo.setApplicationType(application.getApplicationType()); + vo.setBizDomain(application.getBizDomain()); +// vo.setBuildOrgName(application.get()); + vo.setPublishSide(application.getPublishSide()); + } + return vo; + }).collect(Collectors.toList()); + } + return Collections.emptyList(); + } + + public static String getProjectTypeName(Integer projectType) { + if (Objects.nonNull(projectType)) { + return ProjectTypeEnum.getDesc(projectType); + } + return StringUtils.EMPTY; + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/PerformanceAppraisalManage.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/PerformanceAppraisalManage.java new file mode 100644 index 0000000..d329506 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/manage/PerformanceAppraisalManage.java @@ -0,0 +1,347 @@ +package com.ningdatech.pmapi.performance.manage; + +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.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Maps; +import com.ningdatech.basic.function.VUtils; +import com.ningdatech.basic.model.PageVo; +import com.ningdatech.pmapi.performance.convert.PerformanceAppraisalConveter; +import com.ningdatech.pmapi.performance.model.dto.AppraisalProjectDTO; +import com.ningdatech.pmapi.performance.model.dto.PerformanceAppraisalCreateDTO; +import com.ningdatech.pmapi.performance.model.dto.PerformanceAppraisalEditDTO; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisal; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalApplication; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalProject; +import com.ningdatech.pmapi.performance.model.req.PerformanceAppraisalListReq; +import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalVO; +import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalApplicationService; +import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalProjectService; +import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalService; +import com.ningdatech.pmapi.projectlib.model.entity.Project; +import com.ningdatech.pmapi.projectlib.model.entity.ProjectApplication; +import com.ningdatech.pmapi.projectlib.service.IProjectApplicationService; +import com.ningdatech.pmapi.projectlib.service.IProjectService; +import com.ningdatech.pmapi.user.security.auth.model.UserInfoDetails; +import com.ningdatech.pmapi.user.util.LoginUserUtil; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Classname PerformanceAppraisalManage + * @Description + * @Date 2023/6/19 14:18 + * @Author PoffyZhang + */ +@Component +@Slf4j +@AllArgsConstructor +public class PerformanceAppraisalManage { + + private final IPerformanceAppraisalService performanceAppraisalService; + + private final IPerformanceAppraisalProjectService performanceAppraisalProjectService; + + private final IPerformanceAppraisalApplicationService performanceAppraisalApplicationService; + + private final IProjectService projectService; + + private final IProjectApplicationService applicationService; + + /** + * 绩效列表 + * @param req + * @return + */ + public PageVo list(PerformanceAppraisalListReq req) { + Page page = req.page(); + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(PerformanceAppraisal.class) + .like(StringUtils.isNotBlank(req.getName()),PerformanceAppraisal::getName,req.getName()) + .ge(Objects.nonNull(req.getStart()),PerformanceAppraisal::getCreateOn,req.getStart()) + .le(Objects.nonNull(req.getEnd()),PerformanceAppraisal::getCreateOn,req.getEnd()) + .orderByDesc(PerformanceAppraisal::getUpdateOn); + performanceAppraisalService.page(page,wrapper); + if(0L == page.getTotal()){ + return PageVo.empty(); + } + + List paIds = page.getRecords().stream().map(PerformanceAppraisal::getId).collect(Collectors.toList()); + List paps = performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) + .in(PerformanceAppraisalProject::getAppraisalId, paIds)); + + Map projectMap = Maps.newHashMap(); + Map> papsGroupMap = Maps.newHashMap(); + if(CollUtil.isNotEmpty(paps)){ + papsGroupMap = paps.stream().collect(Collectors.groupingBy(PerformanceAppraisalProject::getAppraisalId)); + + List projectCodes = paps.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toList()); + List projects = projectService.list(Wrappers.lambdaQuery(Project.class) + .in(Project::getProjectCode, projectCodes) + .eq(Project::getNewest, Boolean.TRUE)); + if(CollUtil.isNotEmpty(projects)){ + projectMap = projects.stream().collect(Collectors.toMap(Project::getProjectCode,p -> p)); + } + } + + List paas = performanceAppraisalApplicationService.list(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class) + .in(PerformanceAppraisalApplication::getAppraisalId, paIds)); + Map applicationMap = Maps.newHashMap(); + Map> paasGroupMap = Maps.newHashMap(); + if(CollUtil.isNotEmpty(paas)){ + paasGroupMap = paas.stream().collect(Collectors.groupingBy(PerformanceAppraisalApplication::getAppraisalId)); + + List applicationIds = paas.stream().map(PerformanceAppraisalApplication::getApplicationId).collect(Collectors.toList()); + List apps = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) + .in(ProjectApplication::getId, applicationIds)); + if(CollUtil.isNotEmpty(apps)){ + applicationMap = apps.stream().collect(Collectors.toMap(ProjectApplication::getId,a -> a)); + } + } + + Map> finalPapsGroupMap = papsGroupMap; + Map> finalPaasGroupMap = paasGroupMap; + Map finalProjectMap = projectMap; + Map finalApplicationMap = applicationMap; + List res = page.getRecords().stream().map(p -> { + PerformanceAppraisalVO vo = BeanUtil.copyProperties(p,PerformanceAppraisalVO.class); + if(finalPapsGroupMap.containsKey(p.getId())){ + vo.setProjects(PerformanceAppraisalConveter.convertProjects(finalPapsGroupMap.get(p.getId()),finalProjectMap)); + } + if(finalPaasGroupMap.containsKey(p.getId())){ + vo.setApplications(PerformanceAppraisalConveter.convertApplications(finalPaasGroupMap.get(p.getId()),finalApplicationMap)); + } + return vo; + }).collect(Collectors.toList()); + return PageVo.of(res,page.getTotal()); + } + + public PerformanceAppraisalVO detail(Long id) { + + PerformanceAppraisal pa = performanceAppraisalService.getById(id); + VUtils.isTrue(Objects.isNull(pa)).throwMessage("该计划不存在"); + + PerformanceAppraisalVO vo = BeanUtil.copyProperties(pa,PerformanceAppraisalVO.class); + //绩效关联的项目 + List paps = performanceAppraisalProjectService.list(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) + .eq(PerformanceAppraisalProject::getAppraisalId, id)); + Map projectMap = Maps.newHashMap(); + Map> papsGroupMap = Maps.newHashMap(); + if(CollUtil.isNotEmpty(paps)){ + papsGroupMap = paps.stream().collect(Collectors.groupingBy(PerformanceAppraisalProject::getAppraisalId)); + + List projectCodes = paps.stream().map(PerformanceAppraisalProject::getProjectCode).collect(Collectors.toList()); + List projects = projectService.list(Wrappers.lambdaQuery(Project.class) + .in(Project::getProjectCode, projectCodes) + .eq(Project::getNewest, Boolean.TRUE)); + if(CollUtil.isNotEmpty(projects)){ + projectMap = projects.stream().collect(Collectors.toMap(Project::getProjectCode,p -> p)); + } + } + + //绩效关联的应用 + List paas = performanceAppraisalApplicationService.list(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class) + .eq(PerformanceAppraisalApplication::getAppraisalId, id)); + Map applicationMap = Maps.newHashMap(); + Map> paasGroupMap = Maps.newHashMap(); + if(CollUtil.isNotEmpty(paas)){ + paasGroupMap = paas.stream().collect(Collectors.groupingBy(PerformanceAppraisalApplication::getAppraisalId)); + + List applicationIds = paas.stream().map(PerformanceAppraisalApplication::getApplicationId).collect(Collectors.toList()); + List apps = applicationService.list(Wrappers.lambdaQuery(ProjectApplication.class) + .in(ProjectApplication::getId, applicationIds)); + if(CollUtil.isNotEmpty(apps)){ + applicationMap = apps.stream().collect(Collectors.toMap(ProjectApplication::getId,a -> a)); + } + } + + Map> finalPapsGroupMap = papsGroupMap; + Map> finalPaasGroupMap = paasGroupMap; + Map finalProjectMap = projectMap; + Map finalApplicationMap = applicationMap; + if(finalPapsGroupMap.containsKey(vo.getId())){ + vo.setProjects(PerformanceAppraisalConveter.convertProjects(finalPapsGroupMap.get(vo.getId()),finalProjectMap)); + } + if(finalPaasGroupMap.containsKey(vo.getId())){ + vo.setApplications(PerformanceAppraisalConveter.convertApplications(finalPaasGroupMap.get(vo.getId()),finalApplicationMap)); + } + return vo; + } + + /** + * 新建计划 + * @param createDTO + * @return + */ + public String create(PerformanceAppraisalCreateDTO createDTO) { + UserInfoDetails user = LoginUserUtil.loginUserDetail(); + + deduplicationName(createDTO); + + PerformanceAppraisal pa = BeanUtil.copyProperties(createDTO,PerformanceAppraisal.class); + pa.setCreateOn(LocalDateTime.now()); + pa.setCreateBy(user.getUsername()); + pa.setUpdateOn(LocalDateTime.now()); + pa.setUpdateBy(user.getUsername()); + performanceAppraisalService.save(pa); + + if(CollUtil.isNotEmpty(createDTO.getProjects())){ + saveProjects(createDTO,pa.getId(),user); + } + + if(CollUtil.isNotEmpty(createDTO.getApplicationIds())){ + saveApplications(createDTO,pa.getId(),user); + } + + return "新建成功"; + } + + + /** + * 编辑计划 + * @param editDTO + * @return + */ + public String edit(PerformanceAppraisalEditDTO editDTO) { + UserInfoDetails user = LoginUserUtil.loginUserDetail(); + + deduplicationName(editDTO); + + PerformanceAppraisal pa = BeanUtil.copyProperties(editDTO,PerformanceAppraisal.class); + + pa.setUpdateOn(LocalDateTime.now()); + pa.setUpdateBy(user.getUsername()); + performanceAppraisalService.updateById(pa); + + if(CollUtil.isNotEmpty(editDTO.getProjects())){ + saveProjects(editDTO,user); + } + + if(CollUtil.isNotEmpty(editDTO.getApplicationIds())){ + saveApplications(editDTO,user); + } + + return "编辑成功"; + } + + /** + * 名称去重 + * @param dto + */ + private void deduplicationName(PerformanceAppraisalCreateDTO dto) { + long count = performanceAppraisalService.count(Wrappers.lambdaQuery(PerformanceAppraisal.class) + .eq(PerformanceAppraisal::getName, dto.getName())); + VUtils.isTrue(count > 0).throwMessage("名称已经存在"); + } + + private void deduplicationName(PerformanceAppraisalEditDTO dto) { + if(StringUtils.isNotBlank(dto.getName())){ + long count =performanceAppraisalService.count(Wrappers.lambdaQuery(PerformanceAppraisal.class) + .eq(PerformanceAppraisal::getName,dto.getName()) + .ne(Objects.nonNull(dto.getId()),PerformanceAppraisal::getId,dto.getId())); + VUtils.isTrue(count > 0).throwMessage("名称已经存在"); + } + } + + private void saveProjects(PerformanceAppraisalCreateDTO createDTO,Long id,UserInfoDetails user) { + if(CollUtil.isEmpty(createDTO.getProjects())){ + return; + } + + List projects = createDTO.getProjects(); + + for(AppraisalProjectDTO appraisalProject : projects){ + Project newProject = projectService.getNewProject(appraisalProject.getId()); + VUtils.isTrue(Objects.isNull(newProject)).throwMessage("项目不存在 " + appraisalProject.getId()); + PerformanceAppraisalProject pap = new PerformanceAppraisalProject(); + pap.setAppraisalId(id); + pap.setProjectId(appraisalProject.getId()); + pap.setProjectCode(newProject.getProjectCode()); + pap.setIsReAppraisal(appraisalProject.getIsReAppraisal()); + pap.setCreateBy(user.getUsername()); + pap.setCreateOn(LocalDateTime.now()); + pap.setUpdateBy(user.getUsername()); + pap.setUpdateOn(LocalDateTime.now()); + performanceAppraisalProjectService.save(pap); + } + } + + private void saveApplications(PerformanceAppraisalCreateDTO createDTO,Long id,UserInfoDetails user) { + if(CollUtil.isEmpty(createDTO.getApplicationIds())){ + return; + } + + List applicationIds = createDTO.getApplicationIds(); + + for(Long applicationId : applicationIds){ + ProjectApplication projectApplication = applicationService.getById(applicationId); + VUtils.isTrue(Objects.isNull(projectApplication)).throwMessage("应用不存在 " + applicationId); + PerformanceAppraisalApplication paa = new PerformanceAppraisalApplication(); + paa.setAppraisalId(id); + paa.setApplicationId(applicationId); + paa.setCreateBy(user.getUsername()); + paa.setCreateOn(LocalDateTime.now()); + paa.setUpdateBy(user.getUsername()); + paa.setUpdateOn(LocalDateTime.now()); + performanceAppraisalApplicationService.save(paa); + } + } + + private void saveProjects(PerformanceAppraisalEditDTO editDTO,UserInfoDetails user) { + if(Objects.isNull(editDTO.getProjects())){ + return; + } + + //删除先 + performanceAppraisalProjectService.remove(Wrappers.lambdaQuery(PerformanceAppraisalProject.class) + .eq(PerformanceAppraisalProject::getAppraisalId,editDTO.getId())); + List projects = editDTO.getProjects(); + for(AppraisalProjectDTO appraisalProject : projects){ + Project newProject = projectService.getNewProject(appraisalProject.getId()); + VUtils.isTrue(Objects.isNull(newProject)).throwMessage("项目不存在 " + appraisalProject.getId()); + PerformanceAppraisalProject pap = new PerformanceAppraisalProject(); + pap.setAppraisalId(editDTO.getId()); + pap.setProjectId(appraisalProject.getId()); + pap.setProjectCode(newProject.getProjectCode()); + pap.setIsReAppraisal(appraisalProject.getIsReAppraisal()); + pap.setCreateBy(user.getUsername()); + pap.setCreateOn(LocalDateTime.now()); + pap.setUpdateBy(user.getUsername()); + pap.setUpdateOn(LocalDateTime.now()); + performanceAppraisalProjectService.save(pap); + } + } + + private void saveApplications(PerformanceAppraisalEditDTO editDTO,UserInfoDetails user) { + if(CollUtil.isEmpty(editDTO.getApplicationIds())){ + return; + } + + //删除先 + performanceAppraisalApplicationService.remove(Wrappers.lambdaQuery(PerformanceAppraisalApplication.class) + .eq(PerformanceAppraisalApplication::getAppraisalId,editDTO.getId())); + List applicationIds = editDTO.getApplicationIds(); + + for(Long applicationId : applicationIds){ + ProjectApplication projectApplication = applicationService.getById(applicationId); + VUtils.isTrue(Objects.isNull(projectApplication)).throwMessage("应用不存在 " + applicationId); + PerformanceAppraisalApplication paa = new PerformanceAppraisalApplication(); + paa.setAppraisalId(editDTO.getId()); + paa.setApplicationId(applicationId); + paa.setCreateBy(user.getUsername()); + paa.setCreateOn(LocalDateTime.now()); + paa.setUpdateBy(user.getUsername()); + paa.setUpdateOn(LocalDateTime.now()); + performanceAppraisalApplicationService.save(paa); + } + } +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.java new file mode 100644 index 0000000..957f22f --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.java @@ -0,0 +1,16 @@ +package com.ningdatech.pmapi.performance.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalApplication; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Zpf + * @since 2023-06-03 + */ +public interface PerformanceAppraisalApplicationMapper extends BaseMapper { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.xml b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.xml new file mode 100644 index 0000000..7b75dce --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalApplicationMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.java new file mode 100644 index 0000000..1e9a37f --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.java @@ -0,0 +1,17 @@ +package com.ningdatech.pmapi.performance.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisal; +import com.ningdatech.pmapi.projectlib.model.entity.Project; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Zpf + * @since 2023-06-03 + */ +public interface PerformanceAppraisalMapper extends BaseMapper { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.xml b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.xml new file mode 100644 index 0000000..c0801d4 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.java new file mode 100644 index 0000000..2a0e102 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.java @@ -0,0 +1,17 @@ +package com.ningdatech.pmapi.performance.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisal; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalProject; + +/** + *

+ * Mapper 接口 + *

+ * + * @author Zpf + * @since 2023-06-03 + */ +public interface PerformanceAppraisalProjectMapper extends BaseMapper { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.xml b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.xml new file mode 100644 index 0000000..afcb05f --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/mapper/PerformanceAppraisalProjectMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/AppraisalProjectDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/AppraisalProjectDTO.java new file mode 100644 index 0000000..e0ba8cd --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/AppraisalProjectDTO.java @@ -0,0 +1,24 @@ +package com.ningdatech.pmapi.performance.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Classname AppraisalProjectDTO + * @Description + * @Date 2023/6/19 17:08 + * @Author PoffyZhang + */ +@Data +public class AppraisalProjectDTO { + + @ApiModelProperty("项目ID") + @NotNull(message = "项目ID 必填") + private Long id; + + @ApiModelProperty("是否复评") + private Boolean isReAppraisal = Boolean.FALSE; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalCreateDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalCreateDTO.java new file mode 100644 index 0000000..c72260f --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalCreateDTO.java @@ -0,0 +1,64 @@ +package com.ningdatech.pmapi.performance.model.dto; + +import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalApplicationVO; +import com.ningdatech.pmapi.performance.model.vo.PerformanceAppraisalProjectVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Classname PerformanceAppraisalCreateDTO + * @Description 绩效评价对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@ApiModel(value = "绩效评价创建对象", description = "绩效评价创建对象") +public class PerformanceAppraisalCreateDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("计划名称") + @NotBlank(message = "请输入计划名称") + private String name; + + @ApiModelProperty("自评开始时间") + @NotNull(message = "自评时间错误") + private LocalDateTime selfAppraisalStart; + + @ApiModelProperty("自评结束时间") + @NotNull(message = "自评时间错误") + private LocalDateTime selfAppraisalEnd; + + @ApiModelProperty("复评开始时间") + @NotNull(message = "复评时间错误") + private LocalDateTime reAppraisalStart; + + @ApiModelProperty("复评结束时间") + @NotNull(message = "复评时间错误") + private LocalDateTime reAppraisalEnd; + + @ApiModelProperty("核查开始时间") + @NotNull(message = "核查时间错误") + private LocalDateTime verificationStart; + + @ApiModelProperty("核查结束时间") + @NotNull(message = "核查时间错误") + private LocalDateTime verificationEnd; + + @ApiModelProperty("评价目标 1项目 2应用 可多选 1,2") + @NotBlank(message = "评价目标不能为空") + private String target; + + @ApiModelProperty("评价项目 只有ID 和是否复评") + private List projects; + + @ApiModelProperty("评价应用ids") + private List applicationIds; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalEditDTO.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalEditDTO.java new file mode 100644 index 0000000..e2799b6 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/dto/PerformanceAppraisalEditDTO.java @@ -0,0 +1,66 @@ +package com.ningdatech.pmapi.performance.model.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Classname PerformanceAppraisalEditDTO + * @Description 绩效评价对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@ApiModel(value = "绩效评价编辑对象", description = "绩效评价编辑对象") +public class PerformanceAppraisalEditDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("id") + @NotNull(message = "编辑的时候 id必填") + private Long id; + + @ApiModelProperty("计划名称") + @NotBlank(message = "请输入计划名称") + private String name; + + @ApiModelProperty("自评开始时间") + @NotNull(message = "自评时间错误") + private LocalDateTime selfAppraisalStart; + + @ApiModelProperty("自评结束时间") + @NotNull(message = "自评时间错误") + private LocalDateTime selfAppraisalEnd; + + @ApiModelProperty("复评开始时间") + @NotNull(message = "复评时间错误") + private LocalDateTime reAppraisalStart; + + @ApiModelProperty("复评结束时间") + @NotNull(message = "复评时间错误") + private LocalDateTime reAppraisalEnd; + + @ApiModelProperty("核查开始时间") + @NotNull(message = "核查时间错误") + private LocalDateTime verificationStart; + + @ApiModelProperty("核查结束时间") + @NotNull(message = "核查时间错误") + private LocalDateTime verificationEnd; + + @ApiModelProperty("评价目标 1项目 2应用 可多选 1,2") + @NotBlank(message = "评价目标不能为空") + private String target; + + @ApiModelProperty("评价项目 只有ID 和是否复评") + private List projects; + + @ApiModelProperty("评价应用ids") + private List applicationIds; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisal.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisal.java new file mode 100644 index 0000000..a52c803 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisal.java @@ -0,0 +1,58 @@ +package com.ningdatech.pmapi.performance.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @Classname PerformanceAppraisal + * @Description 绩效评价对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@TableName("nd_performance_appraisal") +@ApiModel(value = "绩效评价对象", description = "绩效评价对象") +public class PerformanceAppraisal implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(type = IdType.AUTO) + private Long id; + + private LocalDateTime createOn; + private LocalDateTime updateOn; + private String createBy; + private String updateBy; + + @ApiModelProperty("计划名称") + private String name; + + @ApiModelProperty("自评开始时间") + private LocalDateTime selfAppraisalStart; + + @ApiModelProperty("自评结束时间") + private LocalDateTime selfAppraisalEnd; + + @ApiModelProperty("复评开始时间") + private LocalDateTime reAppraisalStart; + + @ApiModelProperty("复评结束时间") + private LocalDateTime reAppraisalEnd; + + @ApiModelProperty("核查开始时间") + private LocalDateTime verificationStart; + + @ApiModelProperty("核查结束时间") + private LocalDateTime verificationEnd; + + @ApiModelProperty("评价目标 1项目 2应用 可多选 1,2") + private String target; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalApplication.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalApplication.java new file mode 100644 index 0000000..fe82b6c --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalApplication.java @@ -0,0 +1,40 @@ +package com.ningdatech.pmapi.performance.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @Classname PerformanceAppraisalApplication + * @Description 绩效评价和应用关联对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@TableName("nd_performance_appraisal_application") +@ApiModel(value = "绩效评价和应用关联对象", description = "绩效评价和应用关联对象") +public class PerformanceAppraisalApplication implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(type = IdType.AUTO) + private Long id; + + private LocalDateTime createOn; + private LocalDateTime updateOn; + private String createBy; + private String updateBy; + + @ApiModelProperty("计划id") + private Long appraisalId; + + @ApiModelProperty("应用id") + private Long applicationId; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalProject.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalProject.java new file mode 100644 index 0000000..6de11c4 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/entity/PerformanceAppraisalProject.java @@ -0,0 +1,46 @@ +package com.ningdatech.pmapi.performance.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; + +/** + * @Classname PerformanceAppraisalProject + * @Description 绩效评价和项目关联对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@TableName("nd_performance_appraisal_project") +@ApiModel(value = "绩效评价和项目关联对象", description = "绩效评价和项目关联对象") +public class PerformanceAppraisalProject implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + @TableId(type = IdType.AUTO) + private Long id; + + private LocalDateTime createOn; + private LocalDateTime updateOn; + private String createBy; + private String updateBy; + + @ApiModelProperty("计划id") + private Long appraisalId; + + @ApiModelProperty("项目id") + private Long projectId; + + @ApiModelProperty("项目编码") + private String projectCode; + + @ApiModelProperty("是否核查") + private Boolean isReAppraisal; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/req/PerformanceAppraisalListReq.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/req/PerformanceAppraisalListReq.java new file mode 100644 index 0000000..9a49528 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/req/PerformanceAppraisalListReq.java @@ -0,0 +1,32 @@ +package com.ningdatech.pmapi.performance.model.req; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ningdatech.basic.model.PagePo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; + +/** + *

+ * PerformanceAppraisalListReq + *

+ * + * @author ZPF + * @since 09:32 2023/06/13 + */ +@Data +public class PerformanceAppraisalListReq extends PagePo { + + @ApiModelProperty("计划名称") + private String name; + + @ApiModelProperty("开始时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime start; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd") + private LocalDateTime end; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalApplicationVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalApplicationVO.java new file mode 100644 index 0000000..a84bf01 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalApplicationVO.java @@ -0,0 +1,38 @@ +package com.ningdatech.pmapi.performance.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Classname PerformanceAppraisalApplicationVO + * @Description 绩效评价对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@ApiModel(value = "绩效评价应用对象", description = "绩效评价应用对象") +public class PerformanceAppraisalApplicationVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("项目ID") + private Long id; + + @ApiModelProperty("应用名称") + private String applicationName; + + @ApiModelProperty("申报单位") + private String buildOrgName; + + @ApiModelProperty("应用类型") + private String applicationType; + + @ApiModelProperty("应用领域") + private String bizDomain; + + @ApiModelProperty("发布端") + private String publishSide; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalProjectVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalProjectVO.java new file mode 100644 index 0000000..896d313 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalProjectVO.java @@ -0,0 +1,41 @@ +package com.ningdatech.pmapi.performance.model.vo; + +import com.ningdatech.pmapi.projectlib.model.vo.ProjectDetailVO; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Classname PerformanceAppraisalProjectVO + * @Description 绩效评价对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@ApiModel(value = "绩效评价项目对象", description = "绩效评价项目对象") +public class PerformanceAppraisalProjectVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("项目ID") + private Long id; + + @ApiModelProperty("项目名称") + private String projectName; + + @ApiModelProperty("申报单位") + private String buildOrgName; + + @ApiModelProperty("项目类型") + private Integer projectType; + + @ApiModelProperty("项目类型名") + private String projectTypeName; + + @ApiModelProperty("是否复评") + private Boolean isReAppraisal; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalVO.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalVO.java new file mode 100644 index 0000000..f1e1aaa --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/model/vo/PerformanceAppraisalVO.java @@ -0,0 +1,60 @@ +package com.ningdatech.pmapi.performance.model.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Classname PerformanceAppraisal + * @Description 绩效评价对象 + * @Date 2023/6/19 14:02 + * @Author PoffyZhang + */ +@Data +@ApiModel(value = "绩效评价对象", description = "绩效评价对象") +public class PerformanceAppraisalVO implements Serializable { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty("主键") + private Long id; + + private LocalDateTime createOn; + private LocalDateTime updateOn; + private String createBy; + private String updateBy; + + @ApiModelProperty("计划名称") + private String name; + + @ApiModelProperty("自评开始时间") + private LocalDateTime selfAppraisalStart; + + @ApiModelProperty("自评结束时间") + private LocalDateTime selfAppraisalEnd; + + @ApiModelProperty("复评开始时间") + private LocalDateTime reAppraisalStart; + + @ApiModelProperty("复评结束时间") + private LocalDateTime reAppraisalEnd; + + @ApiModelProperty("核查开始时间") + private LocalDateTime verificationStart; + + @ApiModelProperty("核查结束时间") + private LocalDateTime verificationEnd; + + @ApiModelProperty("评价目标 1项目 2应用 可多选 1,2") + private String target; + + @ApiModelProperty("评价项目列表") + private List projects; + + @ApiModelProperty("评价应用列表") + private List applications; +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalApplicationService.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalApplicationService.java new file mode 100644 index 0000000..3fc9a0c --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalApplicationService.java @@ -0,0 +1,16 @@ +package com.ningdatech.pmapi.performance.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalApplication; + +/** + *

+ * 服务类 + *

+ * + * @author PoffyZhang + * @since 2023-06-03 + */ +public interface IPerformanceAppraisalApplicationService extends IService { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalProjectService.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalProjectService.java new file mode 100644 index 0000000..5749b93 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalProjectService.java @@ -0,0 +1,16 @@ +package com.ningdatech.pmapi.performance.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalProject; + +/** + *

+ * 服务类 + *

+ * + * @author PoffyZhang + * @since 2023-06-03 + */ +public interface IPerformanceAppraisalProjectService extends IService { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalService.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalService.java new file mode 100644 index 0000000..12b3c01 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/IPerformanceAppraisalService.java @@ -0,0 +1,16 @@ +package com.ningdatech.pmapi.performance.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisal; + +/** + *

+ * 服务类 + *

+ * + * @author PoffyZhang + * @since 2023-06-03 + */ +public interface IPerformanceAppraisalService extends IService { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalApplicationServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalApplicationServiceImpl.java new file mode 100644 index 0000000..020d8bb --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalApplicationServiceImpl.java @@ -0,0 +1,21 @@ +package com.ningdatech.pmapi.performance.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ningdatech.pmapi.performance.mapper.PerformanceAppraisalApplicationMapper; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalApplication; +import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalApplicationService; +import org.springframework.stereotype.Service; + +/** + *

+ * 绩效评价和应用 服务实现类 + *

+ * + * @author ZPF + * @since 2023-06-15 + */ +@Service +public class PerformanceAppraisalApplicationServiceImpl extends ServiceImpl implements IPerformanceAppraisalApplicationService { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalProjectServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalProjectServiceImpl.java new file mode 100644 index 0000000..d03db8f --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalProjectServiceImpl.java @@ -0,0 +1,21 @@ +package com.ningdatech.pmapi.performance.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ningdatech.pmapi.performance.mapper.PerformanceAppraisalProjectMapper; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisalProject; +import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalProjectService; +import org.springframework.stereotype.Service; + +/** + *

+ * 绩效评价和项目 服务实现类 + *

+ * + * @author ZPF + * @since 2023-06-15 + */ +@Service +public class PerformanceAppraisalProjectServiceImpl extends ServiceImpl implements IPerformanceAppraisalProjectService { + +} diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalServiceImpl.java b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalServiceImpl.java new file mode 100644 index 0000000..0613978 --- /dev/null +++ b/pmapi/src/main/java/com/ningdatech/pmapi/performance/service/impl/PerformanceAppraisalServiceImpl.java @@ -0,0 +1,20 @@ +package com.ningdatech.pmapi.performance.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ningdatech.pmapi.performance.mapper.PerformanceAppraisalMapper; +import com.ningdatech.pmapi.performance.model.entity.PerformanceAppraisal; +import com.ningdatech.pmapi.performance.service.IPerformanceAppraisalService; +import org.springframework.stereotype.Service; + +/** + *

+ * 绩效评价 服务实现类 + *

+ * + * @author ZPF + * @since 2023-06-15 + */ +@Service +public class PerformanceAppraisalServiceImpl extends ServiceImpl implements IPerformanceAppraisalService { + +}