Browse Source

pms 瑞恒日报列表查询条件

zhangcl 2 tuần trước cách đây
mục cha
commit
75b7689575

+ 3 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojecttask/vo/IotProjectTaskPageReqVO.java

@@ -85,4 +85,7 @@ public class IotProjectTaskPageReqVO extends PageParam {
     @Schema(description = "任务id集合")
     private List<Long> taskIds;
 
+    @Schema(description = "搜索关键字")
+    private String searchKey;
+
 }

+ 26 - 5
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrhdailyreport/IotRhDailyReportController.java

@@ -35,10 +35,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
 import java.math.BigDecimal;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -101,7 +98,31 @@ public class IotRhDailyReportController {
     @Operation(summary = "获得瑞恒日报分页")
     @PreAuthorize("@ss.hasPermission('pms:iot-rh-daily-report:query')")
     public CommonResult<PageResult<IotRhDailyReportRespVO>> getIotRhDailyReportPage(@Valid IotRhDailyReportPageReqVO pageReqVO) {
-        // 根据查询参数筛选出 符合条件 的记录id 再传入 颁布查询
+        // 根据查询参数筛选出 符合条件 的记录id 再传入 分页查询
+        Set<Long> projectIds = new HashSet<>();
+        Set<Long> taskIds = new HashSet<>();
+        if (StrUtil.isNotBlank(pageReqVO.getContractName())) {
+            IotProjectInfoPageReqVO reqVO = new IotProjectInfoPageReqVO();
+            reqVO.setContractName(pageReqVO.getContractName());
+            List<IotProjectInfoDO> projects = iotProjectInfoService.getIotProjectInfos(reqVO);
+            if (CollUtil.isNotEmpty(projects)) {
+                projects.forEach(project -> {
+                    projectIds.add(project.getId());
+                });
+                pageReqVO.setProjectIds(projectIds);
+            }
+        }
+        if (StrUtil.isNotBlank(pageReqVO.getTaskName())) {
+            IotProjectTaskPageReqVO reqVO = new IotProjectTaskPageReqVO();
+            reqVO.setSearchKey(pageReqVO.getTaskName());
+            List<IotProjectTaskDO> tasks = iotProjectTaskService.projectTasks(reqVO);
+            if (CollUtil.isNotEmpty(tasks)) {
+                tasks.forEach(task -> {
+                    taskIds.add(task.getId());
+                });
+                pageReqVO.setTaskIds(taskIds);
+            }
+        }
         PageResult<IotRhDailyReportDO> pageResult = iotRhDailyReportService.getIotRhDailyReportPage(pageReqVO);
         return success(new PageResult<>(buildRhDailyReports(pageResult.getList()), pageResult.getTotal()));
     }

+ 7 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotrhdailyreport/vo/IotRhDailyReportPageReqVO.java

@@ -9,6 +9,7 @@ import org.springframework.format.annotation.DateTimeFormat;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.Collection;
 
 import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
 
@@ -120,4 +121,10 @@ public class IotRhDailyReportPageReqVO extends PageParam {
 
     @Schema(description = "任务标识", example = "#33 - 一厂")
     private String taskName;
+
+    @Schema(description = "项目id集合", example = "测试")
+    private Collection<Long> projectIds;
+
+    @Schema(description = "任务id集合", example = "测试")
+    private Collection<Long> taskIds;
 }

+ 39 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotprojecttask/IotProjectTaskMapper.java

@@ -55,7 +55,7 @@ public interface IotProjectTaskMapper extends BaseMapperX<IotProjectTaskDO> {
                 .orderByDesc(IotProjectTaskDO::getId));
     }
 
-    default List<IotProjectTaskDO> selectList(IotProjectTaskPageReqVO reqVO) {
+    /* default List<IotProjectTaskDO> selectList(IotProjectTaskPageReqVO reqVO) {
         LambdaQueryWrapperX<IotProjectTaskDO> wrapper = new LambdaQueryWrapperX<IotProjectTaskDO>()
                 .inIfPresent(IotProjectTaskDO::getId,  reqVO.getTaskIds())
                 .eqIfPresent(IotProjectTaskDO::getProjectId, reqVO.getProjectId())
@@ -71,6 +71,25 @@ public interface IotProjectTaskMapper extends BaseMapperX<IotProjectTaskDO> {
         if (ObjUtil.isNotEmpty(reqVO.getDeptId())) {
             wrapper.apply("FIND_IN_SET({0}, REPLACE(REPLACE(dept_ids,'[',''),']',''))", reqVO.getDeptId());
         }
+        return selectList(wrapper);
+    } */
+
+    default List<IotProjectTaskDO> selectList(IotProjectTaskPageReqVO reqVO) {
+        LambdaQueryWrapperX<IotProjectTaskDO> wrapper = buildCommonQuery(reqVO)
+                .inIfPresent(IotProjectTaskDO::getId, reqVO.getTaskIds());
+
+        // 处理deptId特殊查询
+        if (ObjUtil.isNotEmpty(reqVO.getDeptId())) {
+            wrapper.apply("FIND_IN_SET({0}, REPLACE(REPLACE(dept_ids,'[',''),']',''))", reqVO.getDeptId());
+        }
+
+        // 新增searchKey多字段模糊查询
+        if (ObjUtil.isNotEmpty(reqVO.getSearchKey())) {
+            wrapper.and(wq -> wq.like(IotProjectTaskDO::getWellName, reqVO.getSearchKey())
+                    .or()
+                    .like(IotProjectTaskDO::getLocation, reqVO.getSearchKey()));
+        }
+
         return selectList(wrapper);
     }
 
@@ -83,4 +102,23 @@ public interface IotProjectTaskMapper extends BaseMapperX<IotProjectTaskDO> {
                                      @Param("deptIds") Collection<Long> deptIds
     );
 
+    /**
+     * 构建公共查询条件
+     * @param reqVO 查询条件
+     */
+    default LambdaQueryWrapperX<IotProjectTaskDO> buildCommonQuery(IotProjectTaskPageReqVO reqVO) {
+        return new LambdaQueryWrapperX<IotProjectTaskDO>()
+                .eqIfPresent(IotProjectTaskDO::getProjectId, reqVO.getProjectId())
+                .likeIfPresent(IotProjectTaskDO::getWellName, reqVO.getWellName())
+                .eqIfPresent(IotProjectTaskDO::getWellType, reqVO.getWellType())
+                .eqIfPresent(IotProjectTaskDO::getLocation, reqVO.getLocation())
+                .eqIfPresent(IotProjectTaskDO::getTechnique, reqVO.getTechnique())
+                .eqIfPresent(IotProjectTaskDO::getWorkloadDesign, reqVO.getWorkloadDesign())
+                .betweenIfPresent(IotProjectTaskDO::getCreateTime, reqVO.getCreateTime())
+                .likeIfPresent(IotProjectTaskDO::getUserName, reqVO.getUserName())
+                .eqIfPresent(IotProjectTaskDO::getUserId, reqVO.getUserId())
+                .eqIfPresent(IotProjectTaskDO::getRemark, reqVO.getRemark())
+                .orderByDesc(IotProjectTaskDO::getId);
+    }
+
 }

+ 53 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/mysql/iotrhdailyreport/IotRhDailyReportMapper.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.pms.dal.mysql.iotrhdailyreport;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -12,6 +13,7 @@ import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -22,11 +24,60 @@ import java.util.List;
 @Mapper
 public interface IotRhDailyReportMapper extends BaseMapperX<IotRhDailyReportDO> {
 
+    /* default PageResult<IotRhDailyReportDO> selectPage(IotRhDailyReportPageReqVO reqVO) {
+        return selectPage(reqVO, new LambdaQueryWrapperX<IotRhDailyReportDO>()
+                .eqIfPresent(IotRhDailyReportDO::getDeptId, reqVO.getDeptId())
+                .eqIfPresent(IotRhDailyReportDO::getProjectId, reqVO.getProjectId())
+                .inIfPresent(IotRhDailyReportDO::getProjectId, reqVO.getProjectIds())
+                .eqIfPresent(IotRhDailyReportDO::getTaskId, reqVO.getTaskId())
+                .inIfPresent(IotRhDailyReportDO::getTaskId, reqVO.getTaskIds())
+                .eqIfPresent(IotRhDailyReportDO::getProjectClassification, reqVO.getProjectClassification())
+                .eqIfPresent(IotRhDailyReportDO::getRelocationDays, reqVO.getRelocationDays())
+                .betweenIfPresent(IotRhDailyReportDO::getTransitTime, reqVO.getTransitTime())
+                .eqIfPresent(IotRhDailyReportDO::getDailyGasInjection, reqVO.getDailyGasInjection())
+                .eqIfPresent(IotRhDailyReportDO::getDailyWaterInjection, reqVO.getDailyWaterInjection())
+                .betweenIfPresent(IotRhDailyReportDO::getDailyInjectGasTime, reqVO.getDailyInjectGasTime())
+                .betweenIfPresent(IotRhDailyReportDO::getDailyInjectWaterTime, reqVO.getDailyInjectWaterTime())
+                .betweenIfPresent(IotRhDailyReportDO::getNonProductionTime, reqVO.getNonProductionTime())
+                .eqIfPresent(IotRhDailyReportDO::getNptReason, reqVO.getNptReason())
+                .betweenIfPresent(IotRhDailyReportDO::getConstructionStartDate, reqVO.getConstructionStartDate())
+                .betweenIfPresent(IotRhDailyReportDO::getConstructionEndDate, reqVO.getConstructionEndDate())
+                .eqIfPresent(IotRhDailyReportDO::getProductionStatus, reqVO.getProductionStatus())
+                .eqIfPresent(IotRhDailyReportDO::getNextPlan, reqVO.getNextPlan())
+                .eqIfPresent(IotRhDailyReportDO::getConstructionStatus, reqVO.getConstructionStatus())
+                .eqIfPresent(IotRhDailyReportDO::getPersonnel, reqVO.getPersonnel())
+                .eqIfPresent(IotRhDailyReportDO::getTotalGasInjection, reqVO.getTotalGasInjection())
+                .eqIfPresent(IotRhDailyReportDO::getTotalWaterInjection, reqVO.getTotalWaterInjection())
+                .eqIfPresent(IotRhDailyReportDO::getCumulativeCompletion, reqVO.getCumulativeCompletion())
+                .eqIfPresent(IotRhDailyReportDO::getExtProperty, reqVO.getExtProperty())
+                .eqIfPresent(IotRhDailyReportDO::getSort, reqVO.getSort())
+                .eqIfPresent(IotRhDailyReportDO::getRemark, reqVO.getRemark())
+                .eqIfPresent(IotRhDailyReportDO::getStatus, reqVO.getStatus())
+                .eqIfPresent(IotRhDailyReportDO::getProcessInstanceId, reqVO.getProcessInstanceId())
+                .eqIfPresent(IotRhDailyReportDO::getAuditStatus, reqVO.getAuditStatus())
+                .betweenIfPresent(IotRhDailyReportDO::getCreateTime, reqVO.getCreateTime())
+                .orderByDesc(IotRhDailyReportDO::getCreateTime)
+                .orderByAsc(IotRhDailyReportDO::getDeptId));
+    } */
+
     default PageResult<IotRhDailyReportDO> selectPage(IotRhDailyReportPageReqVO reqVO) {
+        // 检查contractName不为空但projectIds为空的情况
+        if (StrUtil.isNotBlank(reqVO.getContractName()) && (CollUtil.isEmpty(reqVO.getProjectIds()))) {
+            return new PageResult<>(Collections.emptyList(), 0L);
+        }
+
+        // 检查taskName不为空但taskIds为空的情况
+        if (StrUtil.isNotBlank(reqVO.getTaskName()) && (CollUtil.isEmpty(reqVO.getTaskIds()))) {
+            return new PageResult<>(Collections.emptyList(), 0L);
+        }
+
+        // 正常查询逻辑
         return selectPage(reqVO, new LambdaQueryWrapperX<IotRhDailyReportDO>()
                 .eqIfPresent(IotRhDailyReportDO::getDeptId, reqVO.getDeptId())
                 .eqIfPresent(IotRhDailyReportDO::getProjectId, reqVO.getProjectId())
+                .inIfPresent(IotRhDailyReportDO::getProjectId, reqVO.getProjectIds())
                 .eqIfPresent(IotRhDailyReportDO::getTaskId, reqVO.getTaskId())
+                .inIfPresent(IotRhDailyReportDO::getTaskId, reqVO.getTaskIds())
                 .eqIfPresent(IotRhDailyReportDO::getProjectClassification, reqVO.getProjectClassification())
                 .eqIfPresent(IotRhDailyReportDO::getRelocationDays, reqVO.getRelocationDays())
                 .betweenIfPresent(IotRhDailyReportDO::getTransitTime, reqVO.getTransitTime())
@@ -52,7 +103,8 @@ public interface IotRhDailyReportMapper extends BaseMapperX<IotRhDailyReportDO>
                 .eqIfPresent(IotRhDailyReportDO::getProcessInstanceId, reqVO.getProcessInstanceId())
                 .eqIfPresent(IotRhDailyReportDO::getAuditStatus, reqVO.getAuditStatus())
                 .betweenIfPresent(IotRhDailyReportDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(IotRhDailyReportDO::getCreateTime));
+                .orderByDesc(IotRhDailyReportDO::getCreateTime)
+                .orderByAsc(IotRhDailyReportDO::getDeptId));
     }
 
     /* default List<IotRhDailyReportDO> selectList(IotRhDailyReportPageReqVO reqVO) {