|
@@ -7,10 +7,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotoperationmeetingattrs.vo.IotOperationMeetingAttrsPageReqVO;
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotoperationmeetingattrs.vo.IotOperationMeetingAttrsPageReqVO;
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttaskplan.vo.IotProjectTaskPlanPageReqVO;
|
|
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttaskplan.vo.IotProjectTaskPlanSaveReqVO;
|
|
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttaskplan.vo.IotProjectTaskPlanStatisticsItemRespVO;
|
|
|
|
|
-import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttaskplan.vo.IotProjectTaskPlanStatisticsRespVO;
|
|
|
|
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttaskplan.vo.*;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotoperationmeetingattrs.IotOperationMeetingAttrsDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotoperationmeetingattrs.IotOperationMeetingAttrsDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskattrs.IotTaskAttrModelProperty;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskattrs.IotTaskAttrModelProperty;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskplan.IotProjectTaskPlanDO;
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttaskplan.IotProjectTaskPlanDO;
|
|
@@ -238,6 +235,52 @@ public class IotProjectTaskPlanServiceImpl implements IotProjectTaskPlanService
|
|
|
return result;
|
|
return result;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public List<IotProjectTaskPlanBizRespVO> teamProjectBiz(IotProjectTaskPlanPageReqVO pageReqVO) {
|
|
|
|
|
+ List<IotProjectTaskPlanBizRespVO> result = new ArrayList<>();
|
|
|
|
|
+ // 查询队伍所属项目部匹配的项目业务类型及工作量单位
|
|
|
|
|
+ // deptId 需要传递公司级的部门id
|
|
|
|
|
+ Long deptId = pageReqVO.getDeptId();
|
|
|
|
|
+ if (ObjUtil.isEmpty(deptId)) {
|
|
|
|
|
+ return Collections.emptyList();
|
|
|
|
|
+ }
|
|
|
|
|
+ // 如果当前部门属于队伍 查询队伍对应的 上级项目部
|
|
|
|
|
+ DeptDO currentDept = deptMapper.selectById(deptId);
|
|
|
|
|
+ if ("3".equals(currentDept.getType())) {
|
|
|
|
|
+ // 项目部id
|
|
|
|
|
+ Long parentId = currentDept.getParentId();
|
|
|
|
|
+ // 查询 计划工作量 项目业务类型 项目业务(注气/钻井/修井/压裂/连油/井下)
|
|
|
|
|
+ List<DictDataDO> workloadPlanBizData = dictDataService.getDictDataListByDictType("rq_iot_workload_plan_biz");
|
|
|
|
|
+ if (CollUtil.isNotEmpty(workloadPlanBizData)) {
|
|
|
|
|
+ workloadPlanBizData.forEach(tech -> {
|
|
|
|
|
+ String label = tech.getLabel();
|
|
|
|
|
+ String value = tech.getValue();
|
|
|
|
|
+ String unit = tech.getCssClass();
|
|
|
|
|
+ // 设置每个项目部的业务类型
|
|
|
|
|
+ String projectDeptIdsStr = tech.getRemark();
|
|
|
|
|
+ if (StrUtil.isNotBlank(projectDeptIdsStr)) {
|
|
|
|
|
+ // 数据格式 234,124,832
|
|
|
|
|
+ // 逗号分割、转Long、过滤空字符串、收集到Set
|
|
|
|
|
+ Set<Long> deptIdSet = StrUtil.splitTrim(projectDeptIdsStr, ",")
|
|
|
|
|
+ .stream()
|
|
|
|
|
+ .filter(StrUtil::isNotBlank)
|
|
|
|
|
+ .map(Long::valueOf)
|
|
|
|
|
+ .collect(Collectors.toSet());
|
|
|
|
|
+
|
|
|
|
|
+ if (deptIdSet.contains(parentId)) {
|
|
|
|
|
+ IotProjectTaskPlanBizRespVO tempBiz = new IotProjectTaskPlanBizRespVO();
|
|
|
|
|
+ tempBiz.setBusiness(value);
|
|
|
|
|
+ tempBiz.setBusinessName(label);
|
|
|
|
|
+ tempBiz.setUnit(unit);
|
|
|
|
|
+ result.add(tempBiz);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return result;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 按专业公司维度 汇总 统计数据
|
|
* 按专业公司维度 汇总 统计数据
|
|
|
* @param plans 月度计划工作量列表
|
|
* @param plans 月度计划工作量列表
|