From 4655d854b2652ac138cde15b8acdd7f6e324d812 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期三, 27 十一月 2024 02:38:16 +0800 Subject: [PATCH] 流程信息配置功能、项目关联流程功能 --- business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java | 57 +++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 43 insertions(+), 14 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java index 327e8f2..5d39aaf 100644 --- a/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProcessConfigInfoServiceImpl.java @@ -1,24 +1,28 @@ package com.ycl.service.impl; -import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; +import com.github.pagehelper.PageInfo; +import com.ycl.domain.dto.FlowProcDefDto; +import com.ycl.domain.dto.FlowProcDefWithConfigDto; import com.ycl.domain.entity.ProcessConfigInfo; +import com.ycl.domain.entity.SysForm; +import com.ycl.domain.query.ProcessConfigInfoQuery; +import com.ycl.mapper.FlowDeployMapper; import com.ycl.mapper.ProcessConfigInfoMapper; +import com.ycl.service.ISysDeployFormService; import com.ycl.service.ProcessConfigInfoService; import com.ycl.common.base.Result; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ycl.domain.form.ProcessConfigInfoForm; import com.ycl.domain.vo.ProcessConfigInfoVO; -import com.ycl.domain.query.ProcessConfigInfoQuery; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; -import com.ycl.framework.utils.PageUtil; import org.springframework.beans.BeanUtils; -import org.springframework.util.Assert; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.function.BinaryOperator; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -32,6 +36,8 @@ public class ProcessConfigInfoServiceImpl extends ServiceImpl<ProcessConfigInfoMapper, ProcessConfigInfo> implements ProcessConfigInfoService { private final ProcessConfigInfoMapper processConfigInfoMapper; + private final ISysDeployFormService sysDeployFormService; + private final FlowDeployMapper flowDeployMapper; /** * 娣诲姞 @@ -42,16 +48,16 @@ public Result save(ProcessConfigInfoForm form) { // 鏍规嵁閮ㄧ讲id鍜岀増鏈彿鏌ヨ鏄惁淇濆瓨杩囷紝鏈夊氨淇敼锛屾病鏈夊氨鏂板 ProcessConfigInfo entity = new LambdaQueryChainWrapper<>(baseMapper) - .eq(ProcessConfigInfo::getDeployId, form.getDeployId()) - .eq(ProcessConfigInfo::getDeployVersion, form.getDeployVersion()) + .eq(ProcessConfigInfo::getProcessDefId, form.getProcessDefId()) + .eq(ProcessConfigInfo::getProcessDefVersion, form.getProcessDefVersion()) .one(); if (Objects.isNull(entity)) { entity = ProcessConfigInfoForm.getEntityByForm(form, null); baseMapper.insert(entity); } else { new LambdaUpdateChainWrapper<>(baseMapper) - .eq(ProcessConfigInfo::getDeployId, form.getDeployId()) - .eq(ProcessConfigInfo::getDeployVersion, form.getDeployVersion()) + .eq(ProcessConfigInfo::getProcessDefId, form.getProcessDefId()) + .eq(ProcessConfigInfo::getProcessDefVersion, form.getProcessDefVersion()) .set(ProcessConfigInfo::getProjectType, form.getProjectType()) .set(ProcessConfigInfo::getFundType, form.getFundType()) .set(ProcessConfigInfo::getInvestType, form.getInvestType()) @@ -63,14 +69,13 @@ /** * 鏍规嵁id鏌ユ壘 - * @param deployId * @return */ @Override - public Result detail(String deployId, Integer deployVersion) { + public Result detail(String processDefId, Integer processDefVersion) { ProcessConfigInfo entity = new LambdaQueryChainWrapper<>(baseMapper) - .eq(ProcessConfigInfo::getDeployId, deployId) - .eq(ProcessConfigInfo::getDeployVersion, deployVersion) + .eq(ProcessConfigInfo::getProcessDefId, processDefId) + .eq(ProcessConfigInfo::getProcessDefVersion, processDefVersion) .one(); ProcessConfigInfoVO vo = new ProcessConfigInfoVO(); if (Objects.isNull(entity)) { @@ -81,4 +86,28 @@ return Result.ok().data(vo); } + + @Override + public Result list(ProcessConfigInfoQuery query) { + List<FlowProcDefWithConfigDto> dataList = flowDeployMapper.selectDeployListWithConfig(query); + + // 鏍规嵁 processDefId 鍒嗙粍锛屽苟鍙栨瘡缁勪腑 鐗堟湰鍙� 鏈�澶х殑閭d竴涓� + Map<String, FlowProcDefWithConfigDto> groupedByProcessDefId = dataList.stream() + .collect(Collectors.toMap( + FlowProcDefWithConfigDto::getProcessDefId, // keyMapper: 鎻愬彇 processDefId 浣滀负閿� + Function.identity(), // valueMapper: 鐩存帴浣跨敤瀵硅薄浣滀负鍊� + BinaryOperator.maxBy(Comparator.comparingInt(FlowProcDefWithConfigDto::getProcessDefVersion)) // mergeFunction: 姣旇緝 processDefVersion锛屽彇鏈�澶х殑 + )); + List<FlowProcDefWithConfigDto> resultList = new ArrayList<>(groupedByProcessDefId.values()); + + // 鍔犺浇鎸傝〃鍗� + for (FlowProcDefWithConfigDto procDef : resultList) { + SysForm sysForm = sysDeployFormService.selectSysDeployFormByDeployId(procDef.getDeploymentId()); + if (Objects.nonNull(sysForm)) { + procDef.setFormName(sysForm.getFormName()); + procDef.setFormId(sysForm.getFormId()); + } + } + return Result.ok().data(resultList); + } } -- Gitblit v1.8.0