Browse Source

1220暴露下属子项目阶段状态详情接口

master
gejunhao 2 months ago
parent
commit
75bbcb9d73
  1. 14
      huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/HuzhouPlanController.java
  2. 3
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouPlaninfoService.java
  3. 1
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java
  4. 40
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java
  5. 19
      huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java
  6. 15
      huzhou/src/main/java/com/easy/admin/modules/huzhou/vo/TaskLevelDetailVo.java

14
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.common.select.Select;
import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.common.core.exception.EasyException;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.modules.huzhou.vo.TaskLevelDetailVo;
import com.easy.admin.util.ShiroUtil; import com.easy.admin.util.ShiroUtil;
import org.activiti.engine.RuntimeService; import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -192,4 +193,17 @@ public class HuzhouPlanController {
ArrayList<HuzhouPlaninfoOV> planInfoMainTimelineList = planinfoService.queryPlanInfoMainTimelineOffline(projectid); ArrayList<HuzhouPlaninfoOV> planInfoMainTimelineList = planinfoService.queryPlanInfoMainTimelineOffline(projectid);
return Result.ok(planInfoMainTimelineList); return Result.ok(planInfoMainTimelineList);
} }
/**
* 根据 projectId() 获取下属项目指定taskLevel完成情况
* @param projectid
* @param taskLevel
* @return
*/
@GetMapping("/queryTaskLevelDetail")
public Result<List<TaskLevelDetailVo>> queryMoneyDetail(String projectid, String taskLevel){
List<TaskLevelDetailVo> result = planinfoService.queryTaskLevelDetail(projectid,taskLevel);
return Result.ok(result);
}
} }

3
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.common.core.common.select.Select;
import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo; import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfo;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV;
import com.easy.admin.modules.huzhou.vo.TaskLevelDetailVo;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo; import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo;
import com.easy.admin.modules.huzhou.vo.HuzhouPlaninfoOV; import com.easy.admin.modules.huzhou.vo.HuzhouPlaninfoOV;
@ -112,4 +113,6 @@ public interface IHuzhouPlaninfoService extends IService<HuzhouPlaninfo> {
ArrayList<HuzhouPlaninfoOV> queryPlanInfoMainTimelineOffline(String projectid); ArrayList<HuzhouPlaninfoOV> queryPlanInfoMainTimelineOffline(String projectid);
void setPlaninfoIsoffline( List<HuzhouPlaninfo> planinfoid); void setPlaninfoIsoffline( List<HuzhouPlaninfo> planinfoid);
List<TaskLevelDetailVo> queryTaskLevelDetail(String projectid, String taskLevel);
} }

1
huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java

@ -219,5 +219,6 @@ public interface IHuzhouProjectinfoService extends IService<HuzhouProjectinfo> {
List<ProjectContactShouYeOV> projectContactShouYe(); List<ProjectContactShouYeOV> projectContactShouYe();
Boolean queryIsSubProject(String projectid); Boolean queryIsSubProject(String projectid);
} }

40
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.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.easy.admin.auth.model.SysUser; 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.entity.*;
import com.easy.admin.modules.huzhou.service.*; import com.easy.admin.modules.huzhou.service.*;
import com.easy.admin.modules.huzhou.vo.HuzhouProjectinfoOV; 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.model.SysDict;
import com.easy.admin.sys.service.SysDictService; import com.easy.admin.sys.service.SysDictService;
import com.easy.admin.util.ShiroUtil; import com.easy.admin.util.ShiroUtil;
@ -292,6 +294,7 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
// 1.判断该项目是否存在子项目 // 1.判断该项目是否存在子项目
List<String> subProjectIds = getSubProjectIds(projectId); List<String> subProjectIds = getSubProjectIds(projectId);
log.info("子项目集合为:{}", subProjectIds);
if (CollectionUtil.isNotEmpty(subProjectIds)) { if (CollectionUtil.isNotEmpty(subProjectIds)) {
log.info("存在子项目需重新计算主项目进度"); log.info("存在子项目需重新计算主项目进度");
// 2.获取所有子项目对应的任务级别 (不考虑任务本级) // 2.获取所有子项目对应的任务级别 (不考虑任务本级)
@ -406,16 +409,21 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
} }
} }
/**
* 获取所属子项目的id集合
* @param projectId
* @return
*/
private List<String> getSubProjectIds(String projectId) { private List<String> getSubProjectIds(String projectId) {
LambdaQueryWrapper<HuzhouSubProjectinfo> userProjectWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<HuzhouSubProjectinfo> userProjectWrapper = new LambdaQueryWrapper<>();
userProjectWrapper.eq(HuzhouSubProjectinfo::getProjectId, projectId) userProjectWrapper.eq(HuzhouSubProjectinfo::getProjectId, projectId);
.select(HuzhouSubProjectinfo::getId);
List<HuzhouSubProjectinfo> subProjectInfos = subProjectinfoService.list(userProjectWrapper); List<HuzhouSubProjectinfo> subProjectInfos = subProjectinfoService.list(userProjectWrapper);
List<String> subProjectIds = subProjectInfos List<String> subProjectIds = subProjectInfos
.stream().map(HuzhouSubProjectinfo::getId) .stream().map(HuzhouSubProjectinfo::getId)
.collect(Collectors.toList()); .collect(Collectors.toList());
log.info("该主项目id为:{} 子项目数量为:{} 子项目id集合为:{}", projectId,subProjectIds.size(),subProjectIds); log.info("该主项目id为:{} 子项目数量为:{} 子项目id集合为:{}", projectId,subProjectIds.size(),subProjectIds);
return subProjectIds != null ? subProjectIds : new ArrayList<>(); return CollectionUtils.isNotEmpty(subProjectIds) ? subProjectIds : new ArrayList<>();
} }
@Override @Override
@ -1190,4 +1198,30 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper,
this.updateById(info); this.updateById(info);
} }
} }
@Override
public List<TaskLevelDetailVo> queryTaskLevelDetail(String projectid, String taskLevel) {
// 获取子项目id集合
List<String> subProjectIds = getSubProjectIds(projectid);
List<TaskLevelDetailVo> result = new ArrayList<>();
// 构造查询条件
LambdaQueryWrapper<HuzhouPlaninfo> 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;
}
} }

19
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.model.SysDict;
import com.easy.admin.sys.service.SysDictService; 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.RuntimeService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -55,7 +56,7 @@ import java.util.stream.Stream;
@Service @Service
@Transactional @Transactional
@Slf4j
public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoMapper, HuzhouProjectinfo> public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoMapper, HuzhouProjectinfo>
implements IHuzhouProjectinfoService { implements IHuzhouProjectinfoService {
@Autowired @Autowired
@ -2485,9 +2486,15 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl<HuzhouProjectinfoM
@Override @Override
public Boolean queryIsSubProject(String projectId) { public Boolean queryIsSubProject(String projectId) {
LambdaQueryWrapper<HuzhouSubProjectinfo> userProjectWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<HuzhouSubProjectinfo> userProjectWrapper = new LambdaQueryWrapper<>();
userProjectWrapper.eq(HuzhouSubProjectinfo::getProjectId, projectId) userProjectWrapper.eq(HuzhouSubProjectinfo::getId, projectId);
.select(HuzhouSubProjectinfo::getId); HuzhouSubProjectinfo subProjectInfo = subProjectinfoService.getById(projectId);
List<HuzhouSubProjectinfo> subProjectInfos = subProjectinfoService.list(userProjectWrapper); if (subProjectInfo != null) {
return CollectionUtils.isEmpty(subProjectInfos); log.info("子项目存在名称为 {}: ", subProjectInfo.getProjectName());
return true;
}
log.info("该项目不存在子项目!");
return false;
} }
} }

15
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;
}
Loading…
Cancel
Save