|
@@ -1,15 +1,20 @@
|
|
|
package cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
|
+import cn.iocoder.yudao.framework.datapermission.core.util.DataPermissionUtils;
|
|
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
|
|
+import cn.iocoder.yudao.module.pms.controller.admin.iotprojectinfo.vo.IotProjectInfoPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotProjectTaskPageReqVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotProjectTaskRespVO;
|
|
|
import cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotTaskSaveVO;
|
|
|
+import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojectinfo.IotProjectInfoDO;
|
|
|
import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttask.IotProjectTaskDO;
|
|
|
+import cn.iocoder.yudao.module.pms.service.iotprojectinfo.IotProjectInfoService;
|
|
|
import cn.iocoder.yudao.module.pms.service.iotprojecttask.IotProjectTaskService;
|
|
|
import cn.iocoder.yudao.module.system.service.dept.DeptService;
|
|
|
import io.swagger.v3.oas.annotations.Operation;
|
|
@@ -23,13 +28,11 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import javax.validation.Valid;
|
|
|
import java.io.IOException;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
|
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
|
|
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
|
|
|
|
|
|
|
|
|
@Tag(name = "管理后台 - 项目信息任务拆分")
|
|
@@ -43,6 +46,9 @@ public class IotProjectTaskController {
|
|
|
@Resource
|
|
|
private DeptService deptService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private IotProjectInfoService iotProjectInfoService;
|
|
|
+
|
|
|
@PostMapping("/create")
|
|
|
@Operation(summary = "创建项目信息任务拆分")
|
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-project-task:create')")
|
|
@@ -94,12 +100,37 @@ public class IotProjectTaskController {
|
|
|
@PreAuthorize("@ss.hasPermission('rq:iot-project-task:query')")
|
|
|
public CommonResult<PageResult<IotProjectTaskRespVO>> getTaskList( IotProjectTaskPageReqVO pageReqVO) {
|
|
|
Set<Long> idList = new HashSet<>();
|
|
|
- /* if(Objects.nonNull(pageReqVO.getDeptId())){
|
|
|
- idList = deptService.getChildDeptIdListFromCache(pageReqVO.getDeptId());
|
|
|
- idList.add(pageReqVO.getDeptId());
|
|
|
- } */
|
|
|
PageResult<IotProjectTaskDO> taskList = iotProjectTaskService.taskList(pageReqVO,idList);
|
|
|
- return success(BeanUtils.toBean(taskList, IotProjectTaskRespVO.class));
|
|
|
+ // return success(BeanUtils.toBean(taskList, IotProjectTaskRespVO.class));
|
|
|
+ return success(new PageResult<>(buildProjectTaskList(taskList.getList()), taskList.getTotal()));
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<IotProjectTaskRespVO> buildProjectTaskList(List<IotProjectTaskDO> tasks) {
|
|
|
+ if (CollUtil.isEmpty(tasks)) {
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
+ // 设备部门信息
|
|
|
+ List<Long> projectIds = convertList(tasks, IotProjectTaskDO::getProjectId);
|
|
|
+ Map<Long, Long> projectDeptPair = new HashMap<>();
|
|
|
+ if (CollUtil.isNotEmpty(projectIds)) {
|
|
|
+ // 查询 任务 关联的项目信息
|
|
|
+ IotProjectInfoPageReqVO pageReqVO = new IotProjectInfoPageReqVO();
|
|
|
+ pageReqVO.setProjectIds(projectIds);
|
|
|
+ DataPermissionUtils.executeIgnore(() -> {
|
|
|
+ List<IotProjectInfoDO> projectInfos = iotProjectInfoService.getIotProjectInfos(pageReqVO);
|
|
|
+ if (CollUtil.isNotEmpty(projectInfos)) {
|
|
|
+ projectInfos.forEach(info -> {
|
|
|
+ projectDeptPair.put(info.getId(), info.getDeptId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ // 2. 拼接数据
|
|
|
+ return BeanUtils.toBean(tasks, IotProjectTaskRespVO.class, (taskVO) -> {
|
|
|
+ if (projectDeptPair.containsKey(taskVO.getProjectId())) {
|
|
|
+ taskVO.setProjectDeptId(projectDeptPair.get(taskVO.getProjectId()));
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
@GetMapping("/export-excel")
|