@@ -24,7 +24,7 @@ public class DecimalUtil { | |||||
private DecimalUtil() { | private DecimalUtil() { | ||||
} | } | ||||
public static boolean notNullAndGtZero(BigDecimal num) { | |||||
public static boolean noNullAndGtZero(BigDecimal num) { | |||||
return num != null && num.compareTo(BigDecimal.ZERO) > 0; | return num != null && num.compareTo(BigDecimal.ZERO) > 0; | ||||
} | } | ||||
@@ -1,6 +1,7 @@ | |||||
package com.hz.pm.api.projectlib.controller; | package com.hz.pm.api.projectlib.controller; | ||||
import com.hz.pm.api.projectlib.manage.AmountApprovalManage; | import com.hz.pm.api.projectlib.manage.AmountApprovalManage; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectApprovalAmountDTO; | |||||
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.req.SubmitAmountApprovalReq; | import com.hz.pm.api.projectlib.model.req.SubmitAmountApprovalReq; | ||||
import com.hz.pm.api.projectlib.model.vo.AmountApprovalProgressStatisticsVO; | import com.hz.pm.api.projectlib.model.vo.AmountApprovalProgressStatisticsVO; | ||||
@@ -10,9 +11,11 @@ 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.security.access.prepost.PreAuthorize; | |||||
import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
import javax.validation.Valid; | import javax.validation.Valid; | ||||
import java.util.List; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -49,4 +52,16 @@ public class AmountApprovalController { | |||||
amountApprovalManage.submitAmountApproval(req); | amountApprovalManage.submitAmountApproval(req); | ||||
} | } | ||||
@PostMapping("/initOldApprovalAmount") | |||||
@PreAuthorize("hasAuthority('SUPER_ADMIN')") | |||||
public void initOldApprovalAmount() { | |||||
amountApprovalManage.initOldApprovalAmount(); | |||||
} | |||||
@GetMapping("/{projectCode}") | |||||
@ApiOperation("查询项目资金下达记录") | |||||
public List<ProjectApprovalAmountDTO> listApprovalAmounts(@PathVariable String projectCode) { | |||||
return amountApprovalManage.listApprovalAmounts(projectCode); | |||||
} | |||||
} | } |
@@ -0,0 +1,48 @@ | |||||
package com.hz.pm.api.projectlib.entity; | |||||
import com.baomidou.mybatisplus.annotation.*; | |||||
import io.swagger.annotations.ApiModel; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.io.Serializable; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* <p> | |||||
* 项目资金下达记录 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-10-09 | |||||
*/ | |||||
@Data | |||||
@TableName("ND_PROJECT_APPROVAL_AMOUNT") | |||||
@ApiModel(value = "NdProjectApprovalAmount对象") | |||||
public class ProjectApprovalAmount implements Serializable { | |||||
private static final long serialVersionUID = 1L; | |||||
@TableId(value = "ID", type = IdType.AUTO) | |||||
private Long id; | |||||
@ApiModelProperty("下达资金") | |||||
private BigDecimal approvalAmount; | |||||
@ApiModelProperty("年度") | |||||
private Integer approvalYear; | |||||
@ApiModelProperty("项目ID") | |||||
private Long projectId; | |||||
@ApiModelProperty("项目编号") | |||||
private String projectCode; | |||||
@TableField(fill = FieldFill.INSERT_UPDATE) | |||||
private Long createBy; | |||||
@TableField(fill = FieldFill.INSERT_UPDATE) | |||||
private LocalDateTime createOn; | |||||
} |
@@ -1,23 +1,32 @@ | |||||
package com.hz.pm.api.projectlib.manage; | package com.hz.pm.api.projectlib.manage; | ||||
import cn.hutool.core.bean.BeanUtil; | |||||
import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||
import cn.hutool.core.util.NumberUtil; | |||||
import cn.hutool.core.util.ObjUtil; | |||||
import cn.hutool.core.util.StrUtil; | |||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | 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.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.exception.ReturnException; | import com.hz.pm.api.common.exception.ReturnException; | ||||
import com.hz.pm.api.common.helper.UserInfoHelper; | import com.hz.pm.api.common.helper.UserInfoHelper; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | |||||
import com.hz.pm.api.common.util.DecimalUtil; | import com.hz.pm.api.common.util.DecimalUtil; | ||||
import com.hz.pm.api.datascope.model.DataScopeDTO; | import com.hz.pm.api.datascope.model.DataScopeDTO; | ||||
import com.hz.pm.api.datascope.utils.DataScopeUtil; | import com.hz.pm.api.datascope.utils.DataScopeUtil; | ||||
import com.hz.pm.api.external.model.enumeration.MhUnitStripEnum; | import com.hz.pm.api.external.model.enumeration.MhUnitStripEnum; | ||||
import com.hz.pm.api.projectlib.entity.ProjectApprovalAmount; | |||||
import com.hz.pm.api.projectlib.helper.ProjectManageUtil; | import com.hz.pm.api.projectlib.helper.ProjectManageUtil; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectApprovalAmountDTO; | |||||
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.enumeration.status.ProjectStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | ||||
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.req.SubmitAmountApprovalReq; | import com.hz.pm.api.projectlib.model.req.SubmitAmountApprovalReq; | ||||
import com.hz.pm.api.projectlib.model.vo.AmountApprovalProgressStatisticsVO; | import com.hz.pm.api.projectlib.model.vo.AmountApprovalProgressStatisticsVO; | ||||
import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | import com.hz.pm.api.projectlib.model.vo.ProjectLibListItemVO; | ||||
import com.hz.pm.api.projectlib.service.INdProjectApprovalAmountService; | |||||
import com.hz.pm.api.projectlib.service.IProjectService; | import com.hz.pm.api.projectlib.service.IProjectService; | ||||
import com.hz.pm.api.user.helper.MhUnitCache; | import com.hz.pm.api.user.helper.MhUnitCache; | ||||
import com.hz.pm.api.user.security.model.UserFullInfoDTO; | import com.hz.pm.api.user.security.model.UserFullInfoDTO; | ||||
@@ -26,11 +35,15 @@ import com.ningdatech.basic.model.PageVo; | |||||
import com.ningdatech.basic.util.CollUtils; | import com.ningdatech.basic.util.CollUtils; | ||||
import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||
import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
import org.assertj.core.error.ElementsShouldBeExactly; | |||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import org.springframework.transaction.annotation.Transactional; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | import java.util.List; | ||||
import java.util.Optional; | import java.util.Optional; | ||||
import java.util.stream.Collectors; | |||||
/** | /** | ||||
* <p> | * <p> | ||||
@@ -45,6 +58,7 @@ import java.util.Optional; | |||||
@RequiredArgsConstructor | @RequiredArgsConstructor | ||||
public class AmountApprovalManage { | public class AmountApprovalManage { | ||||
private final INdProjectApprovalAmountService projectApprovalAmountService; | |||||
private final IProjectService projectService; | private final IProjectService projectService; | ||||
private final UserInfoHelper userInfoHelper; | private final UserInfoHelper userInfoHelper; | ||||
private final MhUnitCache mhUnitCache; | private final MhUnitCache mhUnitCache; | ||||
@@ -150,25 +164,76 @@ public class AmountApprovalManage { | |||||
List<Project> page = projectService.list(query); | List<Project> page = projectService.list(query); | ||||
AmountApprovalProgressStatisticsVO stat = new AmountApprovalProgressStatisticsVO(); | AmountApprovalProgressStatisticsVO stat = new AmountApprovalProgressStatisticsVO(); | ||||
stat.setTotalCount(page.size()); | stat.setTotalCount(page.size()); | ||||
stat.setApprovalCount(CollUtil.count(page, w -> DecimalUtil.notNullAndGtZero(w.getApprovalAmount()))); | |||||
stat.setApprovalCount(CollUtil.count(page, w -> DecimalUtil.noNullAndGtZero(w.getApprovalAmount()))); | |||||
stat.setUnApprovalCount(stat.getTotalCount() - stat.getApprovalCount()); | stat.setUnApprovalCount(stat.getTotalCount() - stat.getApprovalCount()); | ||||
return stat; | return stat; | ||||
} | } | ||||
public void submitAmountApproval(SubmitAmountApprovalReq req) { | |||||
public synchronized void submitAmountApproval(SubmitAmountApprovalReq req) { | |||||
Project project = projectService.getNewestNoNull(req.getProjectId()); | Project project = projectService.getNewestNoNull(req.getProjectId()); | ||||
if (ProjectStatus.STOPPED.eq(project.getStage()) | if (ProjectStatus.STOPPED.eq(project.getStage()) | ||||
|| ProjectStatus.CHANGE.eq(project.getStage())) { | || ProjectStatus.CHANGE.eq(project.getStage())) { | ||||
throw ReturnException.wrap("暂不允许下达资金"); | throw ReturnException.wrap("暂不允许下达资金"); | ||||
} | } | ||||
BigDecimal totalApprovalAmount = ObjUtil.defaultIfNull(project.getApprovalAmount(), BigDecimal.ZERO); | |||||
boolean approved = DecimalUtil.noNullAndGtZero(totalApprovalAmount); | |||||
if (!approved && req.getReviewAmount() == null) { | |||||
throw ReturnException.wrap("评审总投资不能为空"); | |||||
} | |||||
BigDecimal currTotalApprovalAmount = NumberUtil.add(totalApprovalAmount, req.getApprovalAmount()); | |||||
if (approved && NumberUtil.isGreater(currTotalApprovalAmount, project.getReviewAmount())) { | |||||
throw ReturnException.wrap("暂不允许下达资金"); | |||||
} | |||||
Wrapper<Project> wrapper = Wrappers.lambdaUpdate(Project.class) | Wrapper<Project> wrapper = Wrappers.lambdaUpdate(Project.class) | ||||
.set(Project::getApprovalAmountFile, req.getApprovalAmountFile()) | |||||
.set(Project::getApprovalAmount, req.getApprovalAmount()) | |||||
.set(Project::getReviewAmount, req.getReviewAmount()) | |||||
.set(StrUtil.isNotBlank(req.getApprovalAmountFile()), Project::getApprovalAmountFile, req.getApprovalAmountFile()) | |||||
.set(Project::getApprovalAmount, currTotalApprovalAmount) | |||||
.set(req.getReviewAmount() != null, Project::getReviewAmount, req.getReviewAmount()) | |||||
.set(Project::getUpdateOn, LocalDateTime.now()) | .set(Project::getUpdateOn, LocalDateTime.now()) | ||||
.set(Project::getUpdateBy, LoginUserUtil.getUserId()) | .set(Project::getUpdateBy, LoginUserUtil.getUserId()) | ||||
.eq(Project::getId, project.getId()); | .eq(Project::getId, project.getId()); | ||||
Integer currProjectYear = getLastApprovalYear(project); | |||||
ProjectApprovalAmount projectApprovalAmount = new ProjectApprovalAmount(); | |||||
projectApprovalAmount.setApprovalYear(currProjectYear); | |||||
projectApprovalAmount.setApprovalAmount(req.getApprovalAmount()); | |||||
projectApprovalAmount.setProjectId(project.getId()); | |||||
projectApprovalAmount.setProjectCode(project.getProjectCode()); | |||||
projectApprovalAmountService.save(projectApprovalAmount); | |||||
projectService.update(wrapper); | projectService.update(wrapper); | ||||
} | } | ||||
private Integer getLastApprovalYear(Project project) { | |||||
ProjectApprovalAmount lastApprovalAmount = projectApprovalAmountService.getByProjectCode(project.getProjectCode()); | |||||
Integer currProjectYear; | |||||
if (lastApprovalAmount == null) { | |||||
currProjectYear = project.getProjectYear(); | |||||
} else { | |||||
currProjectYear = lastApprovalAmount.getApprovalYear() + 1; | |||||
} | |||||
return currProjectYear; | |||||
} | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public synchronized void initOldApprovalAmount(){ | |||||
LambdaQueryWrapper<Project> query = Wrappers.lambdaQuery(Project.class) | |||||
.gt(Project::getApprovalAmount, 0) | |||||
.isNotNull(Project::getApprovalAmount) | |||||
.eq(Project::getNewest, Boolean.TRUE); | |||||
List<Project> projects = projectService.list(query); | |||||
List<ProjectApprovalAmount> approvalAmounts = projects.stream().map(w -> { | |||||
ProjectApprovalAmount approvalAmount = new ProjectApprovalAmount(); | |||||
approvalAmount.setApprovalYear(w.getProjectYear()); | |||||
approvalAmount.setApprovalAmount(w.getApprovalAmount()); | |||||
approvalAmount.setProjectId(w.getId()); | |||||
approvalAmount.setProjectCode(w.getProjectCode()); | |||||
return approvalAmount; | |||||
}).collect(Collectors.toList()); | |||||
projectApprovalAmountService.saveBatch(approvalAmounts); | |||||
} | |||||
public List<ProjectApprovalAmountDTO> listApprovalAmounts(String projectCode){ | |||||
List<ProjectApprovalAmount> approvalAmounts = projectApprovalAmountService.listByProjectCode(projectCode); | |||||
return BeanUtil.copyToList(approvalAmounts, ProjectApprovalAmountDTO.class); | |||||
} | |||||
} | } |
@@ -24,6 +24,7 @@ import com.hz.pm.api.common.model.constant.ExistsSqlConst; | |||||
import com.hz.pm.api.common.model.entity.ExcelExportWriter; | import com.hz.pm.api.common.model.entity.ExcelExportWriter; | ||||
import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; | import com.hz.pm.api.common.statemachine.util.ProjectStateMachineUtil; | ||||
import com.hz.pm.api.common.util.BizUtils; | import com.hz.pm.api.common.util.BizUtils; | ||||
import com.hz.pm.api.common.util.DecimalUtil; | |||||
import com.hz.pm.api.common.util.ExcelDownUtil; | import com.hz.pm.api.common.util.ExcelDownUtil; | ||||
import com.hz.pm.api.common.util.StrUtils; | import com.hz.pm.api.common.util.StrUtils; | ||||
import com.hz.pm.api.datascope.model.DataScopeDTO; | import com.hz.pm.api.datascope.model.DataScopeDTO; | ||||
@@ -56,12 +57,14 @@ 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.ProjectCodeGenUtil; | import com.hz.pm.api.projectdeclared.utils.ProjectCodeGenUtil; | ||||
import com.hz.pm.api.projectdeclared.utils.ProjectIdCodeCacheUtil; | import com.hz.pm.api.projectdeclared.utils.ProjectIdCodeCacheUtil; | ||||
import com.hz.pm.api.projectlib.entity.ProjectApprovalAmount; | |||||
import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | ||||
import com.hz.pm.api.projectlib.handle.ProcessProgressHelper; | import com.hz.pm.api.projectlib.handle.ProcessProgressHelper; | ||||
import com.hz.pm.api.projectlib.helper.ProjectManageUtil; | import com.hz.pm.api.projectlib.helper.ProjectManageUtil; | ||||
import com.hz.pm.api.projectlib.helper.ProjectSaveHelper; | import com.hz.pm.api.projectlib.helper.ProjectSaveHelper; | ||||
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.GovSystemReplaceInfoDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectApprovalAmountDTO; | |||||
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.*; | ||||
@@ -147,6 +150,7 @@ public class ProjectLibManage { | |||||
private final IMhProjectService mhProjectService; | private final IMhProjectService mhProjectService; | ||||
private final ProjectReviewManage projectReviewManage; | private final ProjectReviewManage projectReviewManage; | ||||
private final IMeetingInnerProjectService meetingInnerProjectService; | private final IMeetingInnerProjectService meetingInnerProjectService; | ||||
private final INdProjectApprovalAmountService projectApprovalAmountService; | |||||
public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | public PageVo<ProjectLibListItemVO> projectLibList(ProjectListReq req) { | ||||
LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | LambdaQueryWrapper<Project> query = ProjectManageUtil.projectQuery(req); | ||||
@@ -704,6 +708,10 @@ public class ProjectLibManage { | |||||
BeanUtils.copyProperties(project, retProjectDetail); | BeanUtils.copyProperties(project, retProjectDetail); | ||||
retProjectDetail.buildDynamicForm(project.getDynamicForm()); | retProjectDetail.buildDynamicForm(project.getDynamicForm()); | ||||
String projectCode = project.getProjectCode(); | String projectCode = project.getProjectCode(); | ||||
if (DecimalUtil.noNullAndGtZero(project.getApprovalAmount())) { | |||||
List<ProjectApprovalAmount> approvalAmounts = projectApprovalAmountService.listByProjectCode(projectCode); | |||||
retProjectDetail.setApprovalAmounts(BeanUtil.copyToList(approvalAmounts, ProjectApprovalAmountDTO.class)); | |||||
} | |||||
// 查询应用 | // 查询应用 | ||||
List<ProjectApplication> applications = applicationService.list(projectCode, project.getVersion(), project.getIsConstruct()); | List<ProjectApplication> applications = applicationService.list(projectCode, project.getVersion(), project.getIsConstruct()); | ||||
@@ -0,0 +1,16 @@ | |||||
package com.hz.pm.api.projectlib.mapper; | |||||
import com.hz.pm.api.projectlib.entity.ProjectApprovalAmount; | |||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||||
/** | |||||
* <p> | |||||
* Mapper 接口 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-10-09 | |||||
*/ | |||||
public interface NdProjectApprovalAmountMapper extends BaseMapper<ProjectApprovalAmount> { | |||||
} |
@@ -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.NdProjectApprovalAmountMapper"> | |||||
</mapper> |
@@ -0,0 +1,31 @@ | |||||
package com.hz.pm.api.projectlib.model.dto; | |||||
import com.baomidou.mybatisplus.annotation.FieldFill; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import io.swagger.annotations.ApiModelProperty; | |||||
import lombok.Data; | |||||
import java.math.BigDecimal; | |||||
import java.time.LocalDateTime; | |||||
/** | |||||
* <p> | |||||
* 项目资金下达记录 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-10-09 | |||||
*/ | |||||
@Data | |||||
public class ProjectApprovalAmountDTO { | |||||
@ApiModelProperty("下达资金") | |||||
private BigDecimal approvalAmount; | |||||
@ApiModelProperty("年度") | |||||
private Integer approvalYear; | |||||
private LocalDateTime createOn; | |||||
} |
@@ -25,8 +25,7 @@ public class SubmitAmountApprovalReq { | |||||
@NotNull(message = "批复金额不能为空") | @NotNull(message = "批复金额不能为空") | ||||
private BigDecimal approvalAmount; | private BigDecimal approvalAmount; | ||||
@ApiModelProperty("评审金额") | |||||
@NotNull(message = "评审金额不能为空") | |||||
@ApiModelProperty("评审总投资") | |||||
private BigDecimal reviewAmount; | private BigDecimal reviewAmount; | ||||
@ApiModelProperty("资金下达附件") | @ApiModelProperty("资金下达附件") | ||||
@@ -8,6 +8,7 @@ import com.hz.pm.api.meeting.entity.dto.ProjectReviewResultDTO; | |||||
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.PurchaseFullInfoVO; | 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.GovSystemReplaceInfoDTO; | ||||
import com.hz.pm.api.projectlib.model.dto.ProjectApprovalAmountDTO; | |||||
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.ProjectTypeNewEnum; | import com.hz.pm.api.projectlib.model.enumeration.ProjectTypeNewEnum; | ||||
import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | import com.hz.pm.api.projectlib.model.enumeration.status.ProjectStatus; | ||||
@@ -594,4 +595,7 @@ public class ProjectDetailVO { | |||||
@ApiModelProperty("所属领域") | @ApiModelProperty("所属领域") | ||||
private Integer unitStrip; | private Integer unitStrip; | ||||
@ApiModelProperty("资金下达情况") | |||||
private List<ProjectApprovalAmountDTO> approvalAmounts; | |||||
} | } |
@@ -0,0 +1,36 @@ | |||||
package com.hz.pm.api.projectlib.service; | |||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||||
import com.baomidou.mybatisplus.extension.service.IService; | |||||
import com.hz.pm.api.common.model.constant.BizConst; | |||||
import com.hz.pm.api.projectlib.entity.ProjectApprovalAmount; | |||||
import java.util.List; | |||||
/** | |||||
* <p> | |||||
* 服务类 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-10-09 | |||||
*/ | |||||
public interface INdProjectApprovalAmountService extends IService<ProjectApprovalAmount> { | |||||
default ProjectApprovalAmount getByProjectCode(String projectCode) { | |||||
Wrapper<ProjectApprovalAmount> query = Wrappers.lambdaQuery(ProjectApprovalAmount.class) | |||||
.eq(ProjectApprovalAmount::getProjectCode, projectCode) | |||||
.orderByDesc(ProjectApprovalAmount::getApprovalYear) | |||||
.last(BizConst.LIMIT_1); | |||||
return getOne(query); | |||||
} | |||||
default List<ProjectApprovalAmount> listByProjectCode(String projectCode) { | |||||
Wrapper<ProjectApprovalAmount> query = Wrappers.lambdaQuery(ProjectApprovalAmount.class) | |||||
.eq(ProjectApprovalAmount::getProjectCode, projectCode) | |||||
.orderByAsc(ProjectApprovalAmount::getApprovalYear); | |||||
return list(query); | |||||
} | |||||
} |
@@ -0,0 +1,20 @@ | |||||
package com.hz.pm.api.projectlib.service.impl; | |||||
import com.hz.pm.api.projectlib.entity.ProjectApprovalAmount; | |||||
import com.hz.pm.api.projectlib.mapper.NdProjectApprovalAmountMapper; | |||||
import com.hz.pm.api.projectlib.service.INdProjectApprovalAmountService; | |||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||||
import org.springframework.stereotype.Service; | |||||
/** | |||||
* <p> | |||||
* 服务实现类 | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 2024-10-09 | |||||
*/ | |||||
@Service | |||||
public class NdProjectApprovalAmountServiceImpl extends ServiceImpl<NdProjectApprovalAmountMapper, ProjectApprovalAmount> implements INdProjectApprovalAmountService { | |||||
} |