@@ -191,7 +191,6 @@ public class ProjectFileManage { | |||||
} | } | ||||
return vo; | return vo; | ||||
}).collect(Collectors.toList()); | }).collect(Collectors.toList()); | ||||
return PageVo.of(vos, page.getTotal()); | return PageVo.of(vos, page.getTotal()); | ||||
} | } | ||||
@@ -225,17 +224,17 @@ public class ProjectFileManage { | |||||
} | } | ||||
ProjectFileVO projectFileVo = new ProjectFileVO(); | ProjectFileVO projectFileVo = new ProjectFileVO(); | ||||
String projectCode = project.getProjectCode(); | String projectCode = project.getProjectCode(); | ||||
ProjectDetailVO projectDetailVo = projectLibManage.getProjectDetail(projectId); | |||||
List<ProcessDetailVO> processDetailVos = projectLibManage.processScheduleDetail(projectId); | |||||
ProjectReviewDetailVO projectReviewDetailVo = expertReviewManage.projectExpertReviewDetail(projectCode); | |||||
ProjectDetailVO projectDetail = projectLibManage.getProjectDetail(project); | |||||
List<ProcessDetailVO> processDetail = projectLibManage.processScheduleDetail(project); | |||||
ProjectReviewDetailVO projectReviewDetail = expertReviewManage.projectExpertReviewDetail(projectCode); | |||||
List<PurchaseVO> purchaseVos = purchaseManage.detailByProjectId(projectId); | List<PurchaseVO> purchaseVos = purchaseManage.detailByProjectId(projectId); | ||||
List<ContractVO> contractVos = constructionManage.detailContractByProjectId(projectId); | List<ContractVO> contractVos = constructionManage.detailContractByProjectId(projectId); | ||||
List<PreInsVO> preInsVo = constructionManage.detailPreInsByProjectId(projectId); | List<PreInsVO> preInsVo = constructionManage.detailPreInsByProjectId(projectId); | ||||
FinalAcceptanceVO finalAcceptanceVo = finalAcceptanceManage.detailByProjectId(projectId); | |||||
FinalAcceptanceVO finalAcceptanceVo = finalAcceptanceManage.detailByProject(project); | |||||
projectFileVo.setProjectDetailVo(projectDetailVo); | |||||
projectFileVo.setProcessDetailVos(processDetailVos); | |||||
projectFileVo.setProjectReviewDetailVo(projectReviewDetailVo); | |||||
projectFileVo.setProjectDetailVo(projectDetail); | |||||
projectFileVo.setProcessDetailVos(processDetail); | |||||
projectFileVo.setProjectReviewDetailVo(projectReviewDetail); | |||||
projectFileVo.setPurchaseVos(purchaseVos); | projectFileVo.setPurchaseVos(purchaseVos); | ||||
projectFileVo.setContractVos(contractVos); | projectFileVo.setContractVos(contractVos); | ||||
projectFileVo.setPreInsVo(preInsVo); | projectFileVo.setPreInsVo(preInsVo); | ||||
@@ -263,13 +263,8 @@ public class ConstructionManage { | |||||
* @return \ | * @return \ | ||||
*/ | */ | ||||
public List<ContractVO> detailContractByProjectId(Long projectId) { | public List<ContractVO> detailContractByProjectId(Long projectId) { | ||||
Project project = projectService.getNewProject(projectId); | |||||
if (Objects.isNull(project)) { | |||||
return Collections.emptyList(); | |||||
} | |||||
List<Contract> contracts = contractService.list(Wrappers.lambdaQuery(Contract.class) | List<Contract> contracts = contractService.list(Wrappers.lambdaQuery(Contract.class) | ||||
.eq(Contract::getProjectCode, project.getProjectCode())); | |||||
.eq(Contract::getProjectId, projectId)); | |||||
return BeanUtil.copyToList(contracts, ContractVO.class); | return BeanUtil.copyToList(contracts, ContractVO.class); | ||||
} | } | ||||
@@ -223,15 +223,20 @@ public class FinalAcceptanceManage { | |||||
public FinalAcceptanceVO detailByProjectId(Long projectId) { | public FinalAcceptanceVO detailByProjectId(Long projectId) { | ||||
FinalAcceptanceVO vo = new FinalAcceptanceVO(); | FinalAcceptanceVO vo = new FinalAcceptanceVO(); | ||||
Project project = projectService.getById(projectId); | Project project = projectService.getById(projectId); | ||||
vo.setProjectId(projectId); | vo.setProjectId(projectId); | ||||
if (Objects.nonNull(project)) { | if (Objects.nonNull(project)) { | ||||
vo.setFinalAcceptanceMaterials(project.getFinalAcceptanceMaterials()); | vo.setFinalAcceptanceMaterials(project.getFinalAcceptanceMaterials()); | ||||
// TODO IRS接口获取 应用信息 | |||||
vo.setApps(Collections.emptyList()); | vo.setApps(Collections.emptyList()); | ||||
} | } | ||||
return vo; | |||||
} | |||||
public FinalAcceptanceVO detailByProject(Project project) { | |||||
FinalAcceptanceVO vo = new FinalAcceptanceVO(); | |||||
vo.setProjectId(project.getId()); | |||||
vo.setFinalAcceptanceMaterials(project.getFinalAcceptanceMaterials()); | |||||
vo.setApps(Collections.emptyList()); | |||||
return vo; | return vo; | ||||
} | } | ||||
@@ -1,7 +1,5 @@ | |||||
package com.hz.pm.api.projectlib.handle; | package com.hz.pm.api.projectlib.handle; | ||||
import com.google.common.collect.Maps; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.bean.vo.ProcessInfoVO; | import com.wflow.workflow.bean.vo.ProcessInfoVO; | ||||
import com.wflow.workflow.enums.ProcessStatusEnum; | import com.wflow.workflow.enums.ProcessStatusEnum; | ||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
@@ -19,7 +17,7 @@ import java.util.stream.Collectors; | |||||
* @since 2023/02/24 14:22 | * @since 2023/02/24 14:22 | ||||
*/ | */ | ||||
public abstract class AbstractProcessHandle implements Ordered { | |||||
public abstract class AbstractProcessHandle implements Ordered, ProcessHandle { | |||||
/** | /** | ||||
* 构造,子类必须实现 | * 构造,子类必须实现 | ||||
*/ | */ | ||||
@@ -27,15 +25,6 @@ public abstract class AbstractProcessHandle implements Ordered { | |||||
} | } | ||||
/** | |||||
* 抽象的,所有具体处理者应该实现的处理逻辑 | |||||
* | |||||
* @param ctx ctx | |||||
*/ | |||||
abstract void handle(HandleParamContext ctx); | |||||
abstract ProcessNode getProcessNode(); | |||||
@Getter | @Getter | ||||
@AllArgsConstructor | @AllArgsConstructor | ||||
public enum ProcessNode { | public enum ProcessNode { | ||||
@@ -63,15 +52,16 @@ public abstract class AbstractProcessHandle implements Ordered { | |||||
} | } | ||||
private static final Map<ProcessStatusEnum, Integer> PROCESS_STATUS_PRIORITY_MAP = new HashMap<>(); | |||||
private static final Map<ProcessStatusEnum, Integer> PROCESS_STATUS_PRIORITY_MAP; | |||||
static { | static { | ||||
PROCESS_STATUS_PRIORITY_MAP = new EnumMap<>(ProcessStatusEnum.class); | |||||
PROCESS_STATUS_PRIORITY_MAP.put(ProcessStatusEnum.APPROVED, 3); | PROCESS_STATUS_PRIORITY_MAP.put(ProcessStatusEnum.APPROVED, 3); | ||||
PROCESS_STATUS_PRIORITY_MAP.put(ProcessStatusEnum.UNDER_REVIEW, 1); | PROCESS_STATUS_PRIORITY_MAP.put(ProcessStatusEnum.UNDER_REVIEW, 1); | ||||
PROCESS_STATUS_PRIORITY_MAP.put(ProcessStatusEnum.BE_REJECTED, 2); | PROCESS_STATUS_PRIORITY_MAP.put(ProcessStatusEnum.BE_REJECTED, 2); | ||||
} | } | ||||
static StepStatusEnum getPurchaseStatus(List<ProcessInfoVO> processes) { | |||||
protected static StepStatusEnum getPurchaseStatus(List<ProcessInfoVO> processes) { | |||||
Optional<Integer> min = processes.stream().map(w -> { | Optional<Integer> min = processes.stream().map(w -> { | ||||
ProcessStatusEnum status = Arrays.stream(ProcessStatusEnum.values()) | ProcessStatusEnum status = Arrays.stream(ProcessStatusEnum.values()) | ||||
.filter(s -> s.getDesc().equals(w.getProcessProgressVo().getStatus())) | .filter(s -> s.getDesc().equals(w.getProcessProgressVo().getStatus())) | ||||
@@ -0,0 +1,24 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
import static com.hz.pm.api.projectlib.handle.AbstractProcessHandle.ProcessNode; | |||||
/** | |||||
* <p> | |||||
* ProcessHandle | |||||
* </p> | |||||
* | |||||
* @author WendyYang | |||||
* @since 16:01 2024/4/11 | |||||
*/ | |||||
public interface ProcessHandle { | |||||
/** | |||||
* 抽象的,所有具体处理者应该实现的处理逻辑 | |||||
* | |||||
* @param ctx ctx | |||||
*/ | |||||
void handle(HandleParamContext ctx); | |||||
ProcessNode getProcessNode(); | |||||
} |
@@ -1,49 +0,0 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.Collections; | |||||
import java.util.Comparator; | |||||
import java.util.List; | |||||
/** | |||||
* 流程执行链 | |||||
* | |||||
* @author CMM | |||||
* @since 2023/02/26 21:36 | |||||
*/ | |||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class ProcessProgressContext { | |||||
/** | |||||
* 具体处理者的集合 | |||||
*/ | |||||
private final List<AbstractProcessHandle> processBusinessHandles; | |||||
public List<ProcessDetailVO> handle(Project project, List<ProcessDetailVO> processSchedule) { | |||||
HandleParamContext handleParamContext = new HandleParamContext(); | |||||
handleParamContext.setProject(project); | |||||
handleParamContext.setProcessDetails(processSchedule); | |||||
if (!processBusinessHandles.isEmpty()) { | |||||
processBusinessHandles.sort(Comparator.comparing(AbstractProcessHandle::getOrder)); | |||||
for (AbstractProcessHandle processBusinessHandle : processBusinessHandles) { | |||||
processBusinessHandle.handle(handleParamContext); | |||||
} | |||||
/*for (int i = processSchedule.size() - 1; i >= 1; i--) { | |||||
ProcessDetailVO curr = processSchedule.get(i); | |||||
if (curr.getStepStatus() == null || | |||||
curr.getStepStatus().equals(StepStatusEnum.NOT_START)) { | |||||
continue; | |||||
} | |||||
ProcessDetailVO pre = processSchedule.get(i - 1); | |||||
pre.setStepStatus(StepStatusEnum.COMPLETED); | |||||
}*/ | |||||
return processSchedule; | |||||
} | |||||
return Collections.emptyList(); | |||||
} | |||||
} |
@@ -0,0 +1,64 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | |||||
import com.wflow.workflow.bean.process.ProgressNode; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | |||||
import com.wflow.workflow.bean.vo.ProcessInfoVO; | |||||
import com.wflow.workflow.bean.vo.ProcessProgressVo; | |||||
import com.wflow.workflow.enums.StepStatusEnum; | |||||
import lombok.RequiredArgsConstructor; | |||||
import org.springframework.stereotype.Component; | |||||
import java.util.*; | |||||
import java.util.stream.Collectors; | |||||
/** | |||||
* 流程执行链 | |||||
* | |||||
* @author CMM | |||||
* @since 2023/02/26 21:36 | |||||
*/ | |||||
@Component | |||||
@RequiredArgsConstructor | |||||
public class ProcessProgressHelper { | |||||
/** | |||||
* 具体处理者的集合 | |||||
*/ | |||||
private final List<AbstractProcessHandle> processHandles; | |||||
private final BuildUserUtils buildUserUtils; | |||||
public List<ProcessDetailVO> handle(Project project) { | |||||
HandleParamContext handleParamContext = new HandleParamContext(); | |||||
handleParamContext.setProject(project); | |||||
handleParamContext.setProcessDetails(new ArrayList<>()); | |||||
if (!processHandles.isEmpty()) { | |||||
processHandles.sort(Comparator.comparing(AbstractProcessHandle::getOrder)); | |||||
for (AbstractProcessHandle processBusinessHandle : processHandles) { | |||||
processBusinessHandle.handle(handleParamContext); | |||||
} | |||||
List<ProcessDetailVO> details = handleParamContext.getProcessDetails(); | |||||
List<ProgressNode> prgressList = details.stream() | |||||
.filter(w -> !w.getStepStatus().equals(StepStatusEnum.NOT_START)) | |||||
.map(w -> { | |||||
List<ProgressNode> progresses = new ArrayList<>(); | |||||
ProcessProgressVo progress = w.getProcessProgressVo(); | |||||
if (progress != null) { | |||||
progresses.addAll(progress.getProgressInfo()); | |||||
} else if (w.getProcessInfoList() != null) { | |||||
for (ProcessInfoVO processInfo : w.getProcessInfoList()) { | |||||
progresses.addAll(processInfo.getProcessProgressVo().getProgressInfo()); | |||||
} | |||||
} | |||||
return progresses; | |||||
}).flatMap(Collection::stream).collect(Collectors.toList()); | |||||
if (!prgressList.isEmpty()) { | |||||
buildUserUtils.buildUserByProcessInfo(prgressList); | |||||
} | |||||
return details; | |||||
} | |||||
return Collections.emptyList(); | |||||
} | |||||
} |
@@ -1,5 +1,7 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
@@ -19,7 +21,7 @@ import java.util.List; | |||||
public class ApprovalAmountHandle extends AbstractProcessHandle { | public class ApprovalAmountHandle extends AbstractProcessHandle { | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
Project project = ctx.getProject(); | Project project = ctx.getProject(); | ||||
List<ProcessDetailVO> processDetails = ctx.getProcessDetails(); | List<ProcessDetailVO> processDetails = ctx.getProcessDetails(); | ||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
@@ -29,7 +31,7 @@ public class ApprovalAmountHandle extends AbstractProcessHandle { | |||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.APPROVAL_AMOUNT; | return ProcessNode.APPROVAL_AMOUNT; | ||||
} | } | ||||
@@ -1,9 +1,10 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseService; | |||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.projectlib.model.enumeration.TenderStatusEnum; | import com.hz.pm.api.projectlib.model.enumeration.TenderStatusEnum; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
@@ -34,17 +35,16 @@ import java.util.stream.Collectors; | |||||
public class FinalInspectionHandle extends AbstractProcessHandle { | public class FinalInspectionHandle extends AbstractProcessHandle { | ||||
private final IPurchaseInstService purchaseInstService; | private final IPurchaseInstService purchaseInstService; | ||||
private final IPurchaseService purchaseService; | |||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
private final BuildUserUtils buildUserUtils; | private final BuildUserUtils buildUserUtils; | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.FINAL_INSPECTED; | return ProcessNode.FINAL_INSPECTED; | ||||
} | } | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
ctx.getProcessDetails().add(detail); | ctx.getProcessDetails().add(detail); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
@@ -63,21 +63,18 @@ public class FinalInspectionHandle extends AbstractProcessHandle { | |||||
} else { | } else { | ||||
List<ProcessInfoVO> processes = new ArrayList<>(); | List<ProcessInfoVO> processes = new ArrayList<>(); | ||||
Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.PROJECT_FINAL_INSPECTION.getCode()); | Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.PROJECT_FINAL_INSPECTION.getCode()); | ||||
List<ProgressNode> progressNodes = new ArrayList<>(); | |||||
instMap.forEach((bidId, inst) -> { | instMap.forEach((bidId, inst) -> { | ||||
if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | ||||
detail.setFinishTime(inst.getCreateOn()); | detail.setFinishTime(inst.getCreateOn()); | ||||
} | } | ||||
ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ||||
progressNodes.addAll(instanceDetail.getProgressInfo()); | |||||
ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ||||
tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | ||||
tenderProgress.setProcessProgressVo(instanceDetail); | tenderProgress.setProcessProgressVo(instanceDetail); | ||||
processes.add(tenderProgress); | processes.add(tenderProgress); | ||||
}); | }); | ||||
stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | |||||
stepStatus = getPurchaseStatus(processes); | |||||
if (stepStatus != StepStatusEnum.NOT_START) { | if (stepStatus != StepStatusEnum.NOT_START) { | ||||
buildUserUtils.buildUserByProcessInfo(progressNodes); | |||||
detail.setProcessInfoList(processes); | detail.setProcessInfoList(processes); | ||||
} | } | ||||
} | } |
@@ -1,9 +1,11 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | import com.baomidou.mybatisplus.core.conditions.Wrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | ||||
import com.hz.pm.api.projectlib.service.IProjectStatusChangeService; | import com.hz.pm.api.projectlib.service.IProjectStatusChangeService; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
@@ -24,7 +26,7 @@ public class FirstInspectedHandle extends AbstractProcessHandle { | |||||
private final IProjectStatusChangeService projectStatusChangeService; | private final IProjectStatusChangeService projectStatusChangeService; | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.FIRST_INSPECTED; | return ProcessNode.FIRST_INSPECTED; | ||||
} | } | ||||
@@ -34,7 +36,7 @@ public class FirstInspectedHandle extends AbstractProcessHandle { | |||||
} | } | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
ctx.getProcessDetails().add(detail); | ctx.getProcessDetails().add(detail); | ||||
@@ -49,6 +51,7 @@ public class FirstInspectedHandle extends AbstractProcessHandle { | |||||
ProjectStatusChange change = projectStatusChangeService.getOne(query); | ProjectStatusChange change = projectStatusChangeService.getOne(query); | ||||
if (change != null) { | if (change != null) { | ||||
detail.setFinishTime(change.getCreateOn()); | detail.setFinishTime(change.getCreateOn()); | ||||
detail.setStepStatus(StepStatusEnum.COMPLETED); | |||||
ctx.setPreStepStatus(StepStatusEnum.COMPLETED); | ctx.setPreStepStatus(StepStatusEnum.COMPLETED); | ||||
} else { | } else { | ||||
detail.setStepStatus(StepStatusEnum.NOT_START); | detail.setStepStatus(StepStatusEnum.NOT_START); |
@@ -1,9 +1,11 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.baomidou.mybatisplus.core.conditions.Wrapper; | import com.baomidou.mybatisplus.core.conditions.Wrapper; | ||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | ||||
import com.hz.pm.api.projectlib.service.IProjectStatusChangeService; | import com.hz.pm.api.projectlib.service.IProjectStatusChangeService; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
@@ -26,7 +28,7 @@ public class PilotRunningHandle extends AbstractProcessHandle { | |||||
private final IProjectStatusChangeService projectStatusChangeService; | private final IProjectStatusChangeService projectStatusChangeService; | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
ctx.getProcessDetails().add(detail); | ctx.getProcessDetails().add(detail); | ||||
@@ -41,6 +43,7 @@ public class PilotRunningHandle extends AbstractProcessHandle { | |||||
ProjectStatusChange change = projectStatusChangeService.getOne(query); | ProjectStatusChange change = projectStatusChangeService.getOne(query); | ||||
if (change != null) { | if (change != null) { | ||||
detail.setFinishTime(change.getCreateOn()); | detail.setFinishTime(change.getCreateOn()); | ||||
detail.setStepStatus(StepStatusEnum.COMPLETED); | |||||
ctx.setPreStepStatus(StepStatusEnum.COMPLETED); | ctx.setPreStepStatus(StepStatusEnum.COMPLETED); | ||||
} else { | } else { | ||||
detail.setStepStatus(StepStatusEnum.NOT_START); | detail.setStepStatus(StepStatusEnum.NOT_START); | ||||
@@ -51,7 +54,7 @@ public class PilotRunningHandle extends AbstractProcessHandle { | |||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.PILOT_RUNNING; | return ProcessNode.PILOT_RUNNING; | ||||
} | } | ||||
@@ -1,8 +1,10 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.projectlib.model.enumeration.TenderAdaptStatusEnum; | import com.hz.pm.api.projectlib.model.enumeration.TenderAdaptStatusEnum; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
@@ -38,7 +40,7 @@ public class ProjectAdaptionHandle extends AbstractProcessHandle { | |||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | ||||
return; | return; | ||||
} | } | ||||
@@ -54,28 +56,26 @@ public class ProjectAdaptionHandle extends AbstractProcessHandle { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
detail.setProcessInfoList(new ArrayList<>()); | detail.setProcessInfoList(new ArrayList<>()); | ||||
ctx.getProcessDetails().add(detail); | |||||
Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.ADAPTION.getCode()); | Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.ADAPTION.getCode()); | ||||
List<ProgressNode> progressNodes = new ArrayList<>(); | |||||
instMap.forEach((bidId, inst) -> { | instMap.forEach((bidId, inst) -> { | ||||
if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | ||||
detail.setFinishTime(inst.getCreateOn()); | detail.setFinishTime(inst.getCreateOn()); | ||||
} | } | ||||
ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ||||
progressNodes.addAll(instanceDetail.getProgressInfo()); | |||||
ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ||||
tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | ||||
tenderProgress.setProcessProgressVo(instanceDetail); | tenderProgress.setProcessProgressVo(instanceDetail); | ||||
detail.getProcessInfoList().add(tenderProgress); | detail.getProcessInfoList().add(tenderProgress); | ||||
}); | }); | ||||
buildUserUtils.buildUserByProcessInfo(progressNodes); | |||||
StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | ||||
detail.setStepStatus(stepStatus); | |||||
ctx.setPreStepStatus(stepStatus); | |||||
if (!StepStatusEnum.ON_GOING.equals(stepStatus)) { | |||||
detail.setStepStatus(stepStatus); | |||||
ctx.getProcessDetails().add(detail); | |||||
} | |||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.PROJECT_ADAPTION; | return ProcessNode.PROJECT_ADAPTION; | ||||
} | } | ||||
@@ -1,8 +1,10 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectInst; | import com.hz.pm.api.projectlib.model.entity.ProjectInst; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | ||||
@@ -40,12 +42,12 @@ public class ProjectApprovalHandle extends AbstractProcessHandle { | |||||
private final BuildUserUtils buildUserUtils; | private final BuildUserUtils buildUserUtils; | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.PROJECT_APPROVAL; | return ProcessNode.PROJECT_APPROVAL; | ||||
} | } | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
ctx.getProcessDetails().add(detail); | ctx.getProcessDetails().add(detail); | ||||
@@ -92,7 +94,6 @@ public class ProjectApprovalHandle extends AbstractProcessHandle { | |||||
if (inst != null) { | if (inst != null) { | ||||
ProcessProgressVo instDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ProcessProgressVo instDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ||||
detail.setProcessProgressVo(instDetail); | detail.setProcessProgressVo(instDetail); | ||||
buildUserUtils.buildUserByProcessInfo(instDetail.getProgressInfo()); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -1,5 +1,7 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
@@ -7,7 +9,6 @@ import lombok.RequiredArgsConstructor; | |||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | |||||
/** | /** | ||||
* 项目申报处理 | * 项目申报处理 | ||||
@@ -20,12 +21,12 @@ import java.util.List; | |||||
public class ProjectDeclareHandle extends AbstractProcessHandle { | public class ProjectDeclareHandle extends AbstractProcessHandle { | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.PROJECT_DECLARED; | return ProcessNode.PROJECT_DECLARED; | ||||
} | } | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
// 因为此时在项目库中的项目,都是已经申报过的项目,所以直接设置环节状态为已完成 | // 因为此时在项目库中的项目,都是已经申报过的项目,所以直接设置环节状态为已完成 | ||||
ProcessDetailVO processDetailVO = new ProcessDetailVO(); | ProcessDetailVO processDetailVO = new ProcessDetailVO(); | ||||
processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); | processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); |
@@ -1,13 +1,14 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers; | import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
import com.hz.pm.api.common.model.constant.BizConst; | import com.hz.pm.api.common.model.constant.BizConst; | ||||
import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | import com.hz.pm.api.common.statemachine.event.ProjectStateChangeEvent; | ||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseService; | import com.hz.pm.api.projectdeclared.service.IPurchaseService; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | import com.hz.pm.api.projectlib.model.entity.Project; | ||||
import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | import com.hz.pm.api.projectlib.model.entity.ProjectStatusChange; | ||||
import com.hz.pm.api.projectlib.service.IProjectService; | |||||
import com.hz.pm.api.projectlib.service.IProjectStatusChangeService; | import com.hz.pm.api.projectlib.service.IProjectStatusChangeService; | ||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
@@ -38,12 +39,12 @@ public class ProjectPurchaseHandle extends AbstractProcessHandle { | |||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.PROJECT_PURCHASE; | return ProcessNode.PROJECT_PURCHASE; | ||||
} | } | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
ctx.getProcessDetails().add(detail); | ctx.getProcessDetails().add(detail); |
@@ -1,12 +1,12 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectlib.model.entity.Project; | |||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.wflow.workflow.bean.vo.ProcessDetailVO; | import com.wflow.workflow.bean.vo.ProcessDetailVO; | ||||
import com.wflow.workflow.enums.StepStatusEnum; | import com.wflow.workflow.enums.StepStatusEnum; | ||||
import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
import java.time.LocalDateTime; | import java.time.LocalDateTime; | ||||
import java.util.List; | |||||
/** | /** | ||||
* 项目申报处理 | * 项目申报处理 | ||||
@@ -19,7 +19,7 @@ import java.util.List; | |||||
public class ProjectReviewHandle extends AbstractProcessHandle { | public class ProjectReviewHandle extends AbstractProcessHandle { | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.PROJECT_REVIEW; | return ProcessNode.PROJECT_REVIEW; | ||||
} | } | ||||
@@ -29,7 +29,7 @@ public class ProjectReviewHandle extends AbstractProcessHandle { | |||||
} | } | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
// 因为此时在项目库中的项目,都是已经申报过的项目,所以直接设置环节状态为已完成 | // 因为此时在项目库中的项目,都是已经申报过的项目,所以直接设置环节状态为已完成 | ||||
ProcessDetailVO processDetailVO = new ProcessDetailVO(); | ProcessDetailVO processDetailVO = new ProcessDetailVO(); | ||||
processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); | processDetailVO.setStepStatus(StepStatusEnum.COMPLETED); |
@@ -1,9 +1,10 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseService; | |||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
import com.wflow.workflow.bean.process.ProgressNode; | import com.wflow.workflow.bean.process.ProgressNode; | ||||
@@ -35,13 +36,12 @@ import static com.hz.pm.api.projectlib.model.enumeration.TenderSelfTestStatusEnu | |||||
@RequiredArgsConstructor | @RequiredArgsConstructor | ||||
public class ProjectSelfTestHandle extends AbstractProcessHandle { | public class ProjectSelfTestHandle extends AbstractProcessHandle { | ||||
private final IPurchaseService purchaseService; | |||||
private final IPurchaseInstService purchaseInstService; | private final IPurchaseInstService purchaseInstService; | ||||
private final BuildUserUtils buildUserUtils; | private final BuildUserUtils buildUserUtils; | ||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | ||||
return; | return; | ||||
} | } | ||||
@@ -57,28 +57,26 @@ public class ProjectSelfTestHandle extends AbstractProcessHandle { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
detail.setProcessInfoList(new ArrayList<>()); | detail.setProcessInfoList(new ArrayList<>()); | ||||
ctx.getProcessDetails().add(detail); | |||||
Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.SELF_TEST.getCode()); | Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.SELF_TEST.getCode()); | ||||
List<ProgressNode> progressNodes = new ArrayList<>(); | |||||
for (Map.Entry<Long, PurchaseInst> entry : instMap.entrySet()) { | for (Map.Entry<Long, PurchaseInst> entry : instMap.entrySet()) { | ||||
if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(entry.getValue().getCreateOn())) { | if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(entry.getValue().getCreateOn())) { | ||||
detail.setFinishTime(entry.getValue().getCreateOn()); | detail.setFinishTime(entry.getValue().getCreateOn()); | ||||
} | } | ||||
ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, entry.getValue().getInstCode()); | ProcessProgressVo instanceDetail = processInstanceService.getProgressInstanceDetail(null, entry.getValue().getInstCode()); | ||||
progressNodes.addAll(instanceDetail.getProgressInfo()); | |||||
ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ||||
tenderProgress.setProcessName(purchaseMap.get(entry.getKey()).getBidName()); | tenderProgress.setProcessName(purchaseMap.get(entry.getKey()).getBidName()); | ||||
tenderProgress.setProcessProgressVo(instanceDetail); | tenderProgress.setProcessProgressVo(instanceDetail); | ||||
detail.getProcessInfoList().add(tenderProgress); | detail.getProcessInfoList().add(tenderProgress); | ||||
} | } | ||||
buildUserUtils.buildUserByProcessInfo(progressNodes); | |||||
StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | ||||
detail.setStepStatus(stepStatus); | |||||
ctx.setPreStepStatus(stepStatus); | |||||
if (!StepStatusEnum.ON_GOING.equals(stepStatus)) { | |||||
detail.setStepStatus(stepStatus); | |||||
ctx.getProcessDetails().add(detail); | |||||
} | |||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.SYSTEM_SELF_TEST; | return ProcessNode.SYSTEM_SELF_TEST; | ||||
} | } | ||||
@@ -1,8 +1,10 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
import com.wflow.workflow.bean.process.ProgressNode; | import com.wflow.workflow.bean.process.ProgressNode; | ||||
@@ -39,11 +41,10 @@ public class ProjectTestValidHandle extends AbstractProcessHandle { | |||||
private final ProcessInstanceService processInstanceService; | private final ProcessInstanceService processInstanceService; | ||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | ||||
return; | return; | ||||
} | } | ||||
List<ProcessDetailVO> processDetails = ctx.getProcessDetails(); | |||||
List<Purchase> purchases = ctx.getPurchases(); | List<Purchase> purchases = ctx.getPurchases(); | ||||
Map<Long, Purchase> purchaseMap = purchases.stream() | Map<Long, Purchase> purchaseMap = purchases.stream() | ||||
.filter(w -> TEST_VALID_INFO_PASSED.eq(w.getTestValidStatus()) | .filter(w -> TEST_VALID_INFO_PASSED.eq(w.getTestValidStatus()) | ||||
@@ -56,28 +57,26 @@ public class ProjectTestValidHandle extends AbstractProcessHandle { | |||||
ProcessDetailVO detail = new ProcessDetailVO(); | ProcessDetailVO detail = new ProcessDetailVO(); | ||||
detail.setProcessName(getProcessNode().getName()); | detail.setProcessName(getProcessNode().getName()); | ||||
detail.setProcessInfoList(new ArrayList<>()); | detail.setProcessInfoList(new ArrayList<>()); | ||||
processDetails.add(detail); | |||||
Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.TEST_VALID.getCode()); | Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.TEST_VALID.getCode()); | ||||
List<ProgressNode> progressNodes = new ArrayList<>(); | |||||
instMap.forEach((bidId, inst) -> { | instMap.forEach((bidId, inst) -> { | ||||
if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | ||||
detail.setFinishTime(inst.getCreateOn()); | detail.setFinishTime(inst.getCreateOn()); | ||||
} | } | ||||
ProcessProgressVo instDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ProcessProgressVo instDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ||||
progressNodes.addAll(instDetail.getProgressInfo()); | |||||
ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ||||
tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | ||||
tenderProgress.setProcessProgressVo(instDetail); | tenderProgress.setProcessProgressVo(instDetail); | ||||
detail.getProcessInfoList().add(tenderProgress); | detail.getProcessInfoList().add(tenderProgress); | ||||
}); | }); | ||||
buildUserUtils.buildUserByProcessInfo(progressNodes); | |||||
StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | ||||
detail.setStepStatus(stepStatus); | |||||
ctx.setPreStepStatus(stepStatus); | |||||
if (!StepStatusEnum.ON_GOING.equals(stepStatus)) { | |||||
detail.setStepStatus(stepStatus); | |||||
ctx.getProcessDetails().add(detail); | |||||
} | |||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.SYSTEM_TEST_VALID; | return ProcessNode.SYSTEM_TEST_VALID; | ||||
} | } | ||||
@@ -1,8 +1,10 @@ | |||||
package com.hz.pm.api.projectlib.handle; | |||||
package com.hz.pm.api.projectlib.handle.stage; | |||||
import com.hz.pm.api.projectdeclared.model.entity.Purchase; | import com.hz.pm.api.projectdeclared.model.entity.Purchase; | ||||
import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | import com.hz.pm.api.projectdeclared.model.entity.PurchaseInst; | ||||
import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | import com.hz.pm.api.projectdeclared.service.IPurchaseInstService; | ||||
import com.hz.pm.api.projectlib.handle.AbstractProcessHandle; | |||||
import com.hz.pm.api.projectlib.handle.HandleParamContext; | |||||
import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | import com.hz.pm.api.projectlib.model.enumeration.InstTypeEnum; | ||||
import com.hz.pm.api.todocenter.utils.BuildUserUtils; | import com.hz.pm.api.todocenter.utils.BuildUserUtils; | ||||
import com.wflow.workflow.bean.process.ProgressNode; | import com.wflow.workflow.bean.process.ProgressNode; | ||||
@@ -40,7 +42,7 @@ public class XcfhxReviewHandle extends AbstractProcessHandle { | |||||
@Override | @Override | ||||
void handle(HandleParamContext ctx) { | |||||
public void handle(HandleParamContext ctx) { | |||||
if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | if (!ctx.getPreStepStatus().equals(StepStatusEnum.COMPLETED)) { | ||||
return; | return; | ||||
} | } | ||||
@@ -58,26 +60,23 @@ public class XcfhxReviewHandle extends AbstractProcessHandle { | |||||
detail.setProcessInfoList(new ArrayList<>()); | detail.setProcessInfoList(new ArrayList<>()); | ||||
ctx.getProcessDetails().add(detail); | ctx.getProcessDetails().add(detail); | ||||
Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.XCFHX_APPLY.getCode()); | Map<Long, PurchaseInst> instMap = purchaseInstService.list(purchaseMap.keySet(), InstTypeEnum.XCFHX_APPLY.getCode()); | ||||
List<ProgressNode> progressNodes = new ArrayList<>(); | |||||
instMap.forEach((bidId, inst) -> { | instMap.forEach((bidId, inst) -> { | ||||
if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | if (detail.getFinishTime() == null || detail.getFinishTime().isBefore(inst.getCreateOn())) { | ||||
detail.setFinishTime(inst.getCreateOn()); | detail.setFinishTime(inst.getCreateOn()); | ||||
} | } | ||||
ProcessProgressVo instDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ProcessProgressVo instDetail = processInstanceService.getProgressInstanceDetail(null, inst.getInstCode()); | ||||
progressNodes.addAll(instDetail.getProgressInfo()); | |||||
ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ProcessInfoVO tenderProgress = new ProcessInfoVO(); | ||||
tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | tenderProgress.setProcessName(purchaseMap.get(bidId).getBidName()); | ||||
tenderProgress.setProcessProgressVo(instDetail); | tenderProgress.setProcessProgressVo(instDetail); | ||||
detail.getProcessInfoList().add(tenderProgress); | detail.getProcessInfoList().add(tenderProgress); | ||||
}); | }); | ||||
buildUserUtils.buildUserByProcessInfo(progressNodes); | |||||
StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | StepStatusEnum stepStatus = getPurchaseStatus(detail.getProcessInfoList()); | ||||
detail.setStepStatus(stepStatus); | detail.setStepStatus(stepStatus); | ||||
ctx.setPreStepStatus(stepStatus); | ctx.setPreStepStatus(stepStatus); | ||||
} | } | ||||
@Override | @Override | ||||
ProcessNode getProcessNode() { | |||||
public ProcessNode getProcessNode() { | |||||
return ProcessNode.XCFHX_REVIEW; | return ProcessNode.XCFHX_REVIEW; | ||||
} | } | ||||
@@ -53,7 +53,7 @@ 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.projectlib.entity.ProjectGovSystemReplaceInfos; | import com.hz.pm.api.projectlib.entity.ProjectGovSystemReplaceInfos; | ||||
import com.hz.pm.api.projectlib.handle.ProcessProgressContext; | |||||
import com.hz.pm.api.projectlib.handle.ProcessProgressHelper; | |||||
import com.hz.pm.api.projectlib.helper.ProjectHelper; | import com.hz.pm.api.projectlib.helper.ProjectHelper; | ||||
import com.hz.pm.api.projectlib.model.constant.ProjectConstant; | import com.hz.pm.api.projectlib.model.constant.ProjectConstant; | ||||
import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | import com.hz.pm.api.projectlib.model.dto.GovSystemReplaceInfoDTO; | ||||
@@ -122,7 +122,7 @@ public class ProjectLibManage { | |||||
private final IProjectService projectService; | private final IProjectService projectService; | ||||
private final IProjectApplicationService applicationService; | private final IProjectApplicationService applicationService; | ||||
private final IProjectRenewalFundDeclarationService renewalFundDeclarationService; | private final IProjectRenewalFundDeclarationService renewalFundDeclarationService; | ||||
private final ProcessProgressContext processExecuteHandle; | |||||
private final ProcessProgressHelper processExecuteHandle; | |||||
private final FileService fileService; | private final FileService fileService; | ||||
private final IProjectApplicationService projectApplicationService; | private final IProjectApplicationService projectApplicationService; | ||||
private final ProjectCodeGenUtil projectCodeGenUtil; | private final ProjectCodeGenUtil projectCodeGenUtil; | ||||
@@ -650,6 +650,10 @@ public class ProjectLibManage { | |||||
return getProjectDetailLogic(projectInfo); | return getProjectDetailLogic(projectInfo); | ||||
} | } | ||||
public ProjectDetailVO getProjectDetail(Project project) { | |||||
return getProjectDetailLogic(project); | |||||
} | |||||
public ProjectDetailVO detailProjectCode(String projectCode) { | public ProjectDetailVO detailProjectCode(String projectCode) { | ||||
// 查询最新的项目申报信息 | // 查询最新的项目申报信息 | ||||
Project project = projectService.getProjectByCode(projectCode); | Project project = projectService.getProjectByCode(projectCode); | ||||
@@ -1267,19 +1271,12 @@ public class ProjectLibManage { | |||||
} | } | ||||
public List<ProcessDetailVO> processScheduleDetail(Long projectId) { | public List<ProcessDetailVO> processScheduleDetail(Long projectId) { | ||||
List<ProcessDetailVO> processDetailVOS = new ArrayList<>(); | |||||
Project project = projectService.getById(projectId); | Project project = projectService.getById(projectId); | ||||
return processExecuteHandle.handle(project, processDetailVOS); | |||||
return processExecuteHandle.handle(project); | |||||
} | } | ||||
private boolean checkCanRead(Set<String> subOrgSet, Project project) { | |||||
// 从申请借阅信息表中查出本单位及下属单位审批通过的项目 | |||||
LambdaQueryWrapper<ProjectApplyBorrow> query = Wrappers.lambdaQuery(ProjectApplyBorrow.class) | |||||
.select(ProjectApplyBorrow::getProjectId) | |||||
.in(ProjectApplyBorrow::getApplyBorrowOrgCode, subOrgSet) | |||||
.eq(ProjectApplyBorrow::getIsSuccess, Boolean.TRUE); | |||||
List<Long> applyBorrowProjectIdList = CollUtils.fieldList(projectApplyBorrowService.list(query), ProjectApplyBorrow::getProjectId); | |||||
return applyBorrowProjectIdList.contains(project.getId()); | |||||
public List<ProcessDetailVO> processScheduleDetail(Project project) { | |||||
return processExecuteHandle.handle(project); | |||||
} | } | ||||
public void exportList(ProjectListReq param, HttpServletResponse response) { | public void exportList(ProjectListReq param, HttpServletResponse response) { | ||||