Просмотр исходного кода

项目表增加申报单位领域

tags/24080901
WendyYang 6 месяцев назад
Родитель
Сommit
8bbb9a07fc
14 измененных файлов: 130 добавлений и 43 удалений
  1. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/ProjectDeclareStateMachineBuilderImpl.java
  2. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/event/ProjectStatusChangeEvent.java
  3. +21
    -15
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java
  4. +4
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DeclaredProjectListParamDTO.java
  5. +1
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DefaultDeclaredDTO.java
  6. +6
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectDraft.java
  7. +6
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/ProjectDraftVO.java
  8. +54
    -20
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java
  9. +6
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java
  10. +3
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java
  11. +3
    -0
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/DeclaredProjectListVO.java
  12. +7
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/MhProjectBaseInfoVO.java
  13. +12
    -1
      hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IProjectService.java
  14. +5
    -3
      hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/HandlerManage.java

+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/builder/impl/ProjectDeclareStateMachineBuilderImpl.java Просмотреть файл

@@ -218,7 +218,7 @@ public class ProjectDeclareStateMachineBuilderImpl implements ProjectDeclareStat
.event(ProjectStatusChangeEvent.DECLARED_RECORD_PASS).and()
.withExternal()
.source(ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING)
.source(ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED)
.target(ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED)
.event(ProjectStatusChangeEvent.DECLARED_RECORD_FAILED).and()
// 待立项批复批复,从待立项批复到待采购
.withExternal()


+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/common/statemachine/event/ProjectStatusChangeEvent.java Просмотреть файл

@@ -122,7 +122,7 @@ public enum ProjectStatusChangeEvent {
/**
* 立项备案不通过
*/
DECLARED_RECORD_FAILED(null, ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED.getCode(), null),
DECLARED_RECORD_FAILED(null, ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING.getCode(), null),

//==================================================================================================================



+ 21
- 15
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/manage/DeclaredProjectManage.java Просмотреть файл

@@ -16,11 +16,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.hz.pm.api.common.enumeration.CommonEnum;
import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum;
import com.hz.pm.api.common.helper.RegionCacheHelper;
import com.hz.pm.api.common.helper.UserInfoHelper;
import com.hz.pm.api.common.model.constant.BizConst;
import com.hz.pm.api.common.util.ExcelDownUtil;
import com.hz.pm.api.common.util.ExcelExportStyle;
import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum;
import com.hz.pm.api.gov.manage.GovProjectCollectionManage;
import com.hz.pm.api.irs.manage.ProjectIrsManage;
import com.hz.pm.api.projectdeclared.contants.DeclaredProjectConst;
@@ -44,6 +44,8 @@ import com.hz.pm.api.projectlib.service.IProjectService;
import com.hz.pm.api.staging.enums.MsgTypeEnum;
import com.hz.pm.api.sys.manage.NoticeManage;
import com.hz.pm.api.todocenter.constant.WorkNoticeConst;
import com.hz.pm.api.user.helper.MhUnitCache;
import com.hz.pm.api.user.model.dto.UnitDTO;
import com.hz.pm.api.user.security.model.UserFullInfoDTO;
import com.hz.pm.api.user.security.model.UserInfoDetails;
import com.hz.pm.api.user.util.LoginUserUtil;
@@ -101,7 +103,7 @@ public class DeclaredProjectManage {

private final UserInfoHelper userInfoHelper;

private final RegionCacheHelper regionCacheHelper;
private final MhUnitCache mhUnitCache;

private final ProjectIrsManage projectIrsManage;

@@ -264,28 +266,29 @@ public class DeclaredProjectManage {
return instanceId;
}

public PageVo<ProjectDraftVO> pageDraft(DeclaredProjectListParamDTO params, Integer draftType) {
public PageVo<ProjectDraftVO> pageDraft(DeclaredProjectListParamDTO req, Integer draftType) {
Long userId = LoginUserUtil.getUserId();
Page<ProjectDraft> page = params.page();
Page<ProjectDraft> page = req.page();
LambdaQueryWrapper<ProjectDraft> wrapper = Wrappers.lambdaQuery(ProjectDraft.class)
.eq(ProjectDraft::getUserId, userId)
.eq(ProjectDraft::getDraftType, draftType)
.ge(Objects.nonNull(params.getStartTime()), ProjectDraft::getCreateOn, params.getStartTime())
.le(Objects.nonNull(params.getEndTime()), ProjectDraft::getCreateOn, params.getEndTime())
.eq(Objects.nonNull(params.getProjectType()), ProjectDraft::getProjectType, params.getProjectType())
.eq(Objects.nonNull(params.getProjectYear()), ProjectDraft::getProjectYear, params.getProjectYear())
.eq(Objects.nonNull(params.getProjectStage()), ProjectDraft::getStage, params.getProjectStage())
.eq(Objects.nonNull(params.getProjectStatus()), ProjectDraft::getStatus, params.getProjectStatus())
.like(StringUtils.isNotBlank(params.getProjectName()), ProjectDraft::getProjectName, params.getProjectName())
.ge(Objects.nonNull(req.getStartTime()), ProjectDraft::getCreateOn, req.getStartTime())
.le(Objects.nonNull(req.getEndTime()), ProjectDraft::getCreateOn, req.getEndTime())
.eq(Objects.nonNull(req.getProjectType()), ProjectDraft::getProjectType, req.getProjectType())
.eq(Objects.nonNull(req.getProjectYear()), ProjectDraft::getProjectYear, req.getProjectYear())
.eq(Objects.nonNull(req.getProjectStage()), ProjectDraft::getStage, req.getProjectStage())
.eq(Objects.nonNull(req.getProjectStatus()), ProjectDraft::getStatus, req.getProjectStatus())
.eq(req.getUnitStrip() != null, ProjectDraft::getUnitStrip, req.getUnitStrip())
.like(StringUtils.isNotBlank(req.getProjectName()), ProjectDraft::getProjectName, req.getProjectName())
.orderByDesc(ProjectDraft::getUpdateOn);
projectDraftService.page(page, wrapper);
if (CollUtil.isEmpty(page.getRecords())) {
return PageVo.empty();
}
List<ProjectDraftVO> res = page.getRecords().stream().map(record -> {
List<ProjectDraftVO> res = page.getRecords().stream().map(draft -> {
ProjectDraftVO vo = new ProjectDraftVO();
BeanUtils.copyProperties(record, vo);
vo.setBizDomain(Objects.nonNull(record.getBizDomain()) ? String.valueOf(record.getBizDomain()) : StringUtils.EMPTY);
BeanUtils.copyProperties(draft, vo);
vo.setBizDomain(Objects.nonNull(draft.getBizDomain()) ? String.valueOf(draft.getBizDomain()) : StringUtils.EMPTY);
return vo;
}).collect(Collectors.toList());
return PageVo.of(res, page.getTotal());
@@ -330,7 +333,10 @@ public class DeclaredProjectManage {
draft.setUserId(user.getUserIdStr());
draft.setBuildOrgCode(user.getMhUnitIdStr());
draft.setBuildOrgName(user.getMhUnitName());

UnitDTO unit = mhUnitCache.getById(user.getMhUnitId());
Assert.notNull(unit, "申报单位不存在");
MhUnitTypeEnum unitType = Objects.requireNonNull(unit.getType(), "申报单位类型错误");
draft.setUnitStrip(unitType.getStrip().getCode());
if (CollUtil.isNotEmpty(projectInfo.getDynamicForm())) {
draft.setDynamicForm(JSON.toJSONString(projectInfo.getDynamicForm()));
}


+ 4
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DeclaredProjectListParamDTO.java Просмотреть файл

@@ -41,4 +41,8 @@ public class DeclaredProjectListParamDTO extends PagePo {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private String endTime;

@ApiModelProperty("申报单位")
private Integer unitStrip;

}

+ 1
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/dto/DefaultDeclaredDTO.java Просмотреть файл

@@ -21,7 +21,7 @@ import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DefaultDeclaredDTO implements Serializable {
public class DefaultDeclaredDTO {

@NotNull
@ApiModelProperty("项目信息")


+ 6
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/entity/ProjectDraft.java Просмотреть файл

@@ -361,4 +361,10 @@ public class ProjectDraft implements Serializable {

private String govSystemReplaceInfos;

@ApiModelProperty("信产项目ID")
private Long mhProjectId;

@ApiModelProperty("申报单位领域")
private Integer unitStrip;

}

+ 6
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectdeclared/model/vo/ProjectDraftVO.java Просмотреть файл

@@ -384,4 +384,10 @@ public class ProjectDraftVO {
@ApiModelProperty("政务系统改造情况")
private List<GovSystemReplaceInfoDTO> systemReplaceInfos;

@ApiModelProperty("信产项目ID")
private Long mhProjectId;

@ApiModelProperty("申报单位领域")
private Integer unitStrip;

}

+ 54
- 20
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/manage/DeclaredRecordManage.java Просмотреть файл

@@ -5,12 +5,15 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
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.extension.plugins.pagination.Page;
import com.hz.pm.api.common.enumeration.CommonEnum;
import com.hz.pm.api.common.enumeration.ProjectProcessStageEnum;
import com.hz.pm.api.common.model.constant.BizConst;
import com.hz.pm.api.common.statemachine.event.ProjectStatusChangeEvent;
import com.hz.pm.api.external.model.enumeration.MhUnitStripEnum;
import com.hz.pm.api.external.model.enumeration.MhUnitTypeEnum;
import com.hz.pm.api.projectdeclared.manage.DefaultDeclaredProjectManage;
import com.hz.pm.api.projectdeclared.model.dto.DefaultDeclaredDTO;
import com.hz.pm.api.projectdeclared.model.dto.ProjectConditionDTO;
@@ -19,12 +22,14 @@ import com.hz.pm.api.projectlib.model.dto.ProjectDTO;
import com.hz.pm.api.projectlib.model.entity.MhProject;
import com.hz.pm.api.projectlib.model.entity.MhProjectSchemaTargetData;
import com.hz.pm.api.projectlib.model.entity.Project;
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange;
import com.hz.pm.api.projectlib.model.enumeration.ProjectStatusEnum;
import com.hz.pm.api.projectlib.model.req.DeclaredProjectListReq;
import com.hz.pm.api.projectlib.model.vo.DeclaredProjectListVO;
import com.hz.pm.api.projectlib.model.vo.MhProjectBaseInfoVO;
import com.hz.pm.api.projectlib.service.IMhProjectSchemaTargetDataService;
import com.hz.pm.api.projectlib.service.IMhProjectService;
import com.hz.pm.api.projectlib.service.INdProjectStatusChangeService;
import com.hz.pm.api.projectlib.service.IProjectService;
import com.hz.pm.api.staging.enums.MsgTypeEnum;
import com.hz.pm.api.sys.manage.NoticeManage;
@@ -48,10 +53,8 @@ import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;

/**
@@ -68,7 +71,7 @@ import java.util.stream.Collectors;
public class DeclaredRecordManage {

private final IMhProjectService mhProjectService;
private final IMhProjectSchemaTargetDataService mhProjectSchemaTargetDataService;
private final IMhProjectSchemaTargetDataService schemaTargetDataService;
private final IProjectService projectService;
private final MhUnitCache mhUnitCache;
private final NoticeManage noticeManage;
@@ -77,6 +80,7 @@ public class DeclaredRecordManage {
private final DefaultDeclaredProjectManage defaultDeclaredProjectManage;
private final ProcessInstanceService processInstanceService;
private final ProjectLibManage projectLibManage;
private final INdProjectStatusChangeService projectStatusChangeService;

private LambdaQueryWrapper<MhProject> buildQuery(DeclaredProjectListReq req) {
LambdaQueryWrapper<MhProject> query = Wrappers.lambdaQuery(MhProject.class)
@@ -118,11 +122,12 @@ public class DeclaredRecordManage {
item.setMhProjectId(w.getId());
Project project = projectMap.get(w.getProjectCode());
if (project == null) {
item.setStatus(null);
item.setStage(null);
item.setStatus(ProjectStatusEnum.DECLARED_APPROVED_TO_BE_RECORD.getCode());
item.setStage(ProjectStatusEnum.TO_BE_APPROVED.getCode());
} else {
item.setStatus(project.getStatus());
item.setStage(project.getStage());
item.setProjectId(project.getId());
}
item.setUnitStrip(w.getUnitStrip());
item.setUnitStripName(MhUnitStripEnum.getVal(w.getUnitStrip()));
@@ -148,7 +153,12 @@ public class DeclaredRecordManage {
detail.setDeclaredUnitId(mhProject.getUnitId());
detail.setTotalInvestAmount(mhProject.getTotalMoney());
detail.setReviewInvestAmount(mhProject.getMoney());
MhProjectSchemaTargetData schemaTargetData = mhProjectSchemaTargetDataService.getByMhProjectId(mhProjectId);
detail.setProjectCode(mhProject.getProjectCode());
if (StrUtil.isNotBlank(detail.getProjectCode())) {
Optional<Long> projectId = projectService.getNewProjectId(detail.getProjectCode());
projectId.ifPresent(detail::setProjectId);
}
MhProjectSchemaTargetData schemaTargetData = schemaTargetDataService.getByMhProjectId(mhProjectId);
if (schemaTargetData != null) {
detail.setTotalInvestBudgetAmount(schemaTargetData.getMoney());
}
@@ -160,9 +170,10 @@ public class DeclaredRecordManage {
}

@Transactional(rollbackFor = Exception.class)
public void startDeclaredRecord(DefaultDeclaredDTO req) {
UserInfoDetails user = LoginUserUtil.loginUserDetail();
public synchronized void startDeclaredRecord(DefaultDeclaredDTO req) {
ProjectDTO projectInfo = req.getProjectInfo();
Assert.notNull(projectInfo.getMhProjectId(), "信产项目ID不能为空");
UserInfoDetails user = LoginUserUtil.loginUserDetail();

projectInfo.setBuildOrgCode(user.getMhUnitIdStr());
projectInfo.setBuildOrgName(user.getMhUnitName());
@@ -211,25 +222,32 @@ public class DeclaredRecordManage {
BeanUtils.copyProperties(projectInfo, project);
Map<String, OrgInfoDTO> orgModelMap = defaultDeclaredProjectManage.buildOrgModelMap(user.getUserId(), project);
String instanceId = processInstanceService.startProcessLs(model, params, orgModelMap);
log.info("申报项目成功 【{}】", instanceId);
log.info("立项备案成功 【{}】", instanceId);

//如果是重新提交的话 判断下 项目是否存在
//保存项目相关
Project buildProject = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(),
// 如果是重新提交的话 判断下 项目是否存在
// 保存项目相关
Project newProj = projectLibManage.saveProjectInDeclared(projectInfo, instanceId, user.getUserId(),
ProjectStatusEnum.NOT_APPROVED, ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING,
ProjectProcessStageEnum.PROJECT_RECORD_APPROVAL_PROCESS);
// 保存状态变更
saveProjectStatusChangeLog(ProjectStatusEnum.DECLARED_APPROVED_TO_BE_RECORD,
newProj, ProjectStatusChangeEvent.DECLARED_RECORD_SUBMIT);
if (Objects.nonNull(projectInfo.getDraftId())) {
//如果是草稿箱提交 删除对应的草稿箱
projectDraftService.removeById(projectInfo.getDraftId());
}

// 申报项目完成后 保存项目编码
LambdaUpdateWrapper<MhProject> update = Wrappers.lambdaUpdate(MhProject.class)
.set(MhProject::getProjectCode, newProj.getProjectCode())
.eq(MhProject::getId, projectInfo.getMhProjectId());
mhProjectService.update(update);
//发送给第一个审批人消息
noticeManage.sendFirstUser(buildProject, model.getFormName(), instanceId,
noticeManage.sendFirstUser(newProj, model.getFormName(), instanceId,
WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW);
}

@Transactional(rollbackFor = Exception.class)
public String restartDeclaredRecord(DefaultDeclaredDTO req) {
public synchronized String restartDeclaredRecord(DefaultDeclaredDTO req) {
UserInfoDetails user = LoginUserUtil.loginUserDetail();
ProjectDTO reqProj = req.getProjectInfo();
Assert.notNull(reqProj.getId(), "提交失败,缺少项目ID!");
@@ -245,7 +263,10 @@ public class DeclaredRecordManage {
reqProj.setProjectCode(oldProj.getProjectCode());
defaultDeclaredProjectManage.checkDuplication(reqProj);
}

UnitDTO unit = mhUnitCache.getById(user.getMhUnitId());
Assert.notNull(unit, "申报单位不存在");
MhUnitTypeEnum unitType = Objects.requireNonNull(unit.getType(), "申报单位类型错误");
reqProj.setUnitStrip(unitType.getStrip().getCode());
// 写死 是否有主管单位
oldProj.setIsHigherSuperOrg(CommonEnum.YES.getCode());
oldProj.setIsSuperOrg(CommonEnum.YES.getCode());
@@ -284,14 +305,16 @@ public class DeclaredRecordManage {
BeanUtils.copyProperties(reqProj, project);
Map<String, OrgInfoDTO> orgModelMap = defaultDeclaredProjectManage.buildOrgModelMap(user.getUserId(), project);
String instId = processInstanceService.startProcessLs(model, params, orgModelMap);
log.info("立项备案重新提交 【{}】", instId);
log.info("立项备案成功 【{}】", instId);

//保存项目相关
Project newProj = projectLibManage.saveProjectInDeclared(reqProj, instId, user.getUserId(),
ProjectStatusEnum.NOT_APPROVED,
ProjectStatusEnum.DECLARED_APPROVED_RECORD_AUDITING,
processStageEnum);

// 保存状态变更
saveProjectStatusChangeLog(ProjectStatusEnum.DECLARED_APPROVED_RECORD_FAILED,
newProj, ProjectStatusChangeEvent.DECLARED_RECORD_RESUBMIT);
//发送给第一个审批人消息
noticeManage.sendFirstUser(newProj, model.getFormName(), instId,
WorkNoticeConst.PASS_MSG_TEMPLATE, MsgTypeEnum.PROJECT_REVIEW);
@@ -299,5 +322,16 @@ public class DeclaredRecordManage {
return instId;
}

private void saveProjectStatusChangeLog(ProjectStatusEnum beforeStatus, Project project, ProjectStatusChangeEvent event) {
ProjectStatusChange change = new ProjectStatusChange();
change.setAfterStatus(project.getStatus());
change.setProjectId(project.getId());
change.setBeforeStatus(beforeStatus.getCode());
change.setEvent(event.name());
change.setCreateOn(LocalDateTime.now());
change.setProjectCode(project.getProjectCode());
projectStatusChangeService.save(change);
}


}

+ 6
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/dto/ProjectDTO.java Просмотреть файл

@@ -365,4 +365,10 @@ public class ProjectDTO {
@ApiModelProperty("政务信息系统替代情况")
private List<GovSystemReplaceInfoDTO> systemReplaceInfos;

@ApiModelProperty("信产项目ID")
private Long mhProjectId;

@ApiModelProperty("申报单位领域")
private Integer unitStrip;

}

+ 3
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/entity/Project.java Просмотреть файл

@@ -546,4 +546,7 @@ public class Project implements Serializable {
@ApiModelProperty("立项依据证明材料")
private String baseProjBasisFile;

@ApiModelProperty("申报单位领域")
private Integer unitStrip;

}

+ 3
- 0
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/DeclaredProjectListVO.java Просмотреть файл

@@ -47,4 +47,7 @@ public class DeclaredProjectListVO {
@ApiModelProperty("ID")
private Long mhProjectId;

@ApiModelProperty("项目ID")
private Long projectId;

}

+ 7
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/model/vo/MhProjectBaseInfoVO.java Просмотреть файл

@@ -7,7 +7,7 @@ import java.math.BigDecimal;

/**
* <p>
* MhProjectDetailVO
* 信产立项备案
* </p>
*
* @author WendyYang
@@ -40,4 +40,10 @@ public class MhProjectBaseInfoVO {
@ApiModelProperty("id")
private Long mhProjectId;

@ApiModelProperty("项目ID")
private Long projectId;

@ApiModelProperty("项目编码")
private String projectCode;

}

+ 12
- 1
hz-pm-api/src/main/java/com/hz/pm/api/projectlib/service/IProjectService.java Просмотреть файл

@@ -28,11 +28,22 @@ public interface IProjectService extends IService<Project> {
default Optional<String> getProjectCode(Long projectId) {
LambdaQueryWrapper<Project> query = Wrappers.lambdaQuery(Project.class)
.select(Project::getProjectCode)
.eq(Project::getId, projectId)
.last(BizConst.LIMIT_1);
return Optional.ofNullable(getOne(query))
.flatMap(w -> Optional.of(w.getProjectCode()));
}

default Optional<Long> getNewProjectId(String projectCode) {
LambdaQueryWrapper<Project> query = Wrappers.lambdaQuery(Project.class)
.select(Project::getId)
.eq(Project::getProjectCode, projectCode)
.orderByDesc(Project::getVersion)
.last(BizConst.LIMIT_1);
return Optional.ofNullable(getOne(query))
.flatMap(w -> Optional.of(w.getId()));
}

List<Long> allVersionProjectIds(String projectCode);

List<Long> allVersionProjectIds(Long projectId);
@@ -56,7 +67,7 @@ public interface IProjectService extends IService<Project> {
update(wrapper);
}

default List<Project> listNewestByProjectCodes(Collection<String> projectCode){
default List<Project> listNewestByProjectCodes(Collection<String> projectCode) {
Wrapper<Project> query = Wrappers.lambdaQuery(Project.class)
.eq(Project::getNewest, Boolean.TRUE)
.in(Project::getProjectCode, projectCode);


+ 5
- 3
hz-pm-api/src/main/java/com/hz/pm/api/todocenter/manage/HandlerManage.java Просмотреть файл

@@ -512,17 +512,19 @@ public class HandlerManage {
*/
private void updateRejectProjectStatus(Long userId, Project project, Integer instType) {
stateMachineUtil.reject(project);
LambdaUpdateWrapper<Project> updateWrapper = Wrappers.lambdaUpdate();
project.setUpdateOn(LocalDateTime.now());
project.setUpdateBy(userId);
projectService.updateById(project);
// 如果是预审审批驳回,需要重新盖章,原来盖过章的文件要清空
LambdaUpdateWrapper<Project> updateWrapper;
if (InstTypeEnum.PRELIMINARY_PREVIEW.eq(instType)) {
updateWrapper.set(Project::getPretrialFileId, null)
updateWrapper = Wrappers.lambdaUpdate(Project.class)
.set(Project::getPretrialFileId, null)
.set(Project::getPretrialFileName, null)
.eq(Project::getId, project.getId());
} else if (InstTypeEnum.CONSTRUCTION_PLAN_REVIEW.eq(instType)) {
updateWrapper.set(Project::getConstructFileId, null)
updateWrapper = Wrappers.lambdaUpdate(Project.class)
.set(Project::getConstructFileId, null)
.set(Project::getConstructFileName, null)
.eq(Project::getId, project.getId());
} else {


Загрузка…
Отмена
Сохранить