diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java index 1a1f2f6..e96f190 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java @@ -12,6 +12,7 @@ import com.easy.admin.auth.model.SysUser; import com.easy.admin.common.core.common.select.Select; import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; +import com.easy.admin.modules.huzhou.vo.TaskLevelDetailVo; import com.easy.admin.util.ShiroUtil; import org.activiti.engine.RuntimeService; import org.activiti.engine.runtime.ProcessInstance; @@ -192,4 +193,17 @@ public class HuzhouPlanController { ArrayList planInfoMainTimelineList = planinfoService.queryPlanInfoMainTimelineOffline(projectid); return Result.ok(planInfoMainTimelineList); } + + /** + * 根据 projectId(主) 获取下属项目指定taskLevel完成情况 + * @param projectid + * @param taskLevel + * @return + */ + @GetMapping("/queryTaskLevelDetail") + public Result> queryMoneyDetail(String projectid, String taskLevel){ + List result = planinfoService.queryTaskLevelDetail(projectid,taskLevel); + return Result.ok(result); + } + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java index 99161a6..9ad5e38 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.easy.admin.common.core.common.select.Select; import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; +import com.easy.admin.modules.huzhou.vo.TaskLevelDetailVo; import org.apache.poi.ss.usermodel.Sheet; import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo; import com.easy.admin.modules.huzhou.vo.HuzhouPlaninfoOV; @@ -112,4 +113,6 @@ public interface IHuzhouPlaninfoService extends IService { ArrayList queryPlanInfoMainTimelineOffline(String projectid); void setPlaninfoIsoffline( List planinfoid); + + List queryTaskLevelDetail(String projectid, String taskLevel); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java index ae6c557..b440ebc 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java @@ -219,5 +219,6 @@ public interface IHuzhouProjectinfoService extends IService { List projectContactShouYe(); Boolean queryIsSubProject(String projectid); + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java index 621d89e..facb522 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java @@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.easy.admin.auth.model.SysUser; @@ -19,6 +20,7 @@ import com.easy.admin.modules.huzhou.dao.HuzhouSubProjectinfoMapper; import com.easy.admin.modules.huzhou.entity.*; import com.easy.admin.modules.huzhou.service.*; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; +import com.easy.admin.modules.huzhou.vo.TaskLevelDetailVo; import com.easy.admin.sys.model.SysDict; import com.easy.admin.sys.service.SysDictService; import com.easy.admin.util.ShiroUtil; @@ -292,6 +294,7 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl subProjectIds = getSubProjectIds(projectId); + log.info("子项目集合为:{}", subProjectIds); if (CollectionUtil.isNotEmpty(subProjectIds)) { log.info("存在子项目需重新计算主项目进度"); // 2.获取所有子项目对应的任务级别 (不考虑任务本级) @@ -406,16 +409,21 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl getSubProjectIds(String projectId) { LambdaQueryWrapper userProjectWrapper = new LambdaQueryWrapper<>(); - userProjectWrapper.eq(HuzhouSubProjectinfo::getProjectId, projectId) - .select(HuzhouSubProjectinfo::getId); + userProjectWrapper.eq(HuzhouSubProjectinfo::getProjectId, projectId); + List subProjectInfos = subProjectinfoService.list(userProjectWrapper); List subProjectIds = subProjectInfos .stream().map(HuzhouSubProjectinfo::getId) .collect(Collectors.toList()); log.info("该主项目id为:{} 子项目数量为:{} 子项目id集合为:{}", projectId,subProjectIds.size(),subProjectIds); - return subProjectIds != null ? subProjectIds : new ArrayList<>(); + return CollectionUtils.isNotEmpty(subProjectIds) ? subProjectIds : new ArrayList<>(); } @Override @@ -1190,4 +1198,30 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl queryTaskLevelDetail(String projectid, String taskLevel) { + // 获取子项目id集合 + List subProjectIds = getSubProjectIds(projectid); + List result = new ArrayList<>(); + // 构造查询条件 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid) + .eq(HuzhouPlaninfo::getTaskLevel,taskLevel); + // 封装子项目阶段详情信息 + if (CollectionUtil.isNotEmpty(subProjectIds)){ + for (String subProjectId : subProjectIds) { + TaskLevelDetailVo subTaskLevelDetailVo = new TaskLevelDetailVo(); + HuzhouPlaninfo subPlanInfo = this.getOne(queryWrapper); + HuzhouProjectinfo subProjectInfo = subProjectinfoService.getById(subProjectId); + String projectName = subProjectInfo.getProjectName(); + subTaskLevelDetailVo.setProjectName(projectName); + subTaskLevelDetailVo.setIsFinish(subPlanInfo.getIsfinish()); + subTaskLevelDetailVo.setSubProjectId(subProjectId); + result.add(subTaskLevelDetailVo); + log.info("子项目名称:{} 阶段:{} 完成状态:{} id:{}",projectName,subPlanInfo.getTaskLevel(),subPlanInfo.getIsfinish(),subProjectId); + } + } + return result; + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index 596b504..f48a0c5 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -25,7 +25,8 @@ import com.easy.admin.modules.huzhou.vo.*; import com.easy.admin.sys.model.SysDict; import com.easy.admin.sys.service.SysDictService; -import com.easy.admin.util.ShiroUtil; + +import lombok.extern.slf4j.Slf4j; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; @@ -55,7 +56,7 @@ import java.util.stream.Stream; @Service @Transactional - +@Slf4j public class HuzhouProjectinfoServiceImpl extends ServiceImpl implements IHuzhouProjectinfoService { @Autowired @@ -2485,9 +2486,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl userProjectWrapper = new LambdaQueryWrapper<>(); - userProjectWrapper.eq(HuzhouSubProjectinfo::getProjectId, projectId) - .select(HuzhouSubProjectinfo::getId); - List subProjectInfos = subProjectinfoService.list(userProjectWrapper); - return CollectionUtils.isEmpty(subProjectInfos); + userProjectWrapper.eq(HuzhouSubProjectinfo::getId, projectId); + HuzhouSubProjectinfo subProjectInfo = subProjectinfoService.getById(projectId); + if (subProjectInfo != null) { + log.info("子项目存在名称为 {}: ", subProjectInfo.getProjectName()); + return true; + } + log.info("该项目不存在子项目!"); + return false; } + + } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TaskLevelDetailVo.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TaskLevelDetailVo.java new file mode 100644 index 0000000..dab8fde --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TaskLevelDetailVo.java @@ -0,0 +1,15 @@ +package com.easy.admin.modules.huzhou.vo; + +import lombok.Data; + +/** + * @Author gejunhao + * @Date 2024/12/20 9:23 + * @Description: 阶段详情信息 + */ +@Data +public class TaskLevelDetailVo { + private String projectName; + private String isFinish; + private String subProjectId; +}