Переглянути джерело

pms 瑞都日报 任务列表 搜索条件优化

zhangcl 4 днів тому
батько
коміт
0b76550160

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/iotprojecttask/IotProjectTaskController.java

@@ -113,6 +113,7 @@ public class IotProjectTaskController {
         // 循环每个任务 找到任务 关联的平台井
         if (CollUtil.isNotEmpty(pagedTasks)) {
             pagedTasks.forEach(task -> {
+                // 查询任务主井及关联井的扩展属性 组装 工作量集合 extProperty dropdownList
                 String platformGroup = task.getPlatformGroup();
                 if (StrUtil.isNotBlank(platformGroup)) {
                     // 根据 platformGroup 查询关联的平台井
@@ -125,6 +126,7 @@ public class IotProjectTaskController {
                         tempPlatform.setId(groupTask.getId());
                         tempPlatform.setWellName(groupTask.getWellName());
                         tempPlatform.setWorkloadDesign(groupTask.getWorkloadDesign());
+                        tempPlatform.setExtProperty(groupTask.getExtProperty());
                         platforms.add(tempPlatform);
                     });
                     platformWellPair.put(task.getId(), platforms);
@@ -144,8 +146,6 @@ public class IotProjectTaskController {
     public CommonResult<PageResult<IotProjectTaskRespVO>> getTaskList( IotProjectTaskPageReqVO pageReqVO) {
         Set<Long> idList = new HashSet<>();
         PageResult<IotProjectTaskDO> taskList = iotProjectTaskService.taskList(pageReqVO, idList);
-        // 设置每个任务的施工队伍
-
         return success(new PageResult<>(buildProjectTaskList(taskList.getList()), taskList.getTotal()));
     }
 

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

@@ -100,4 +100,7 @@ public class IotProjectTaskPageReqVO extends PageParam {
     @Schema(description = "platformGroup 集合")
     private List<String> platformGroups;
 
+    @Schema(description = "平台井标识 Y N")
+    private String platformFlag;
+
 }

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

@@ -99,14 +99,16 @@ public interface IotProjectTaskMapper extends BaseMapperX<IotProjectTaskDO> {
         return selectList(wrapper);
     }
 
-    IPage<IotProjectTaskDO> taskList(IPage<IotProjectTaskPageReqVO> page,
+    IPage<IotProjectTaskDO> taskList(IPage<?> page,
                                      @Param("companyId") Long companyId,
                                      @Param("manufactureName") String manufactureName,
                                      @Param("contractName") String contractName,
                                      @Param("contractCode") String contractCode,
                                      @Param("wellName") String wellName,
                                      @Param("createTime") LocalDateTime[] createTime,
-                                     @Param("deptIds") Collection<Long> deptIds
+                                     @Param("deptIds") Collection<Long> deptIds,
+                                     @Param("projectIds") Collection<Long> projectIds,
+                                     @Param("platformFlag") String platformFlag
     );
 
     /**

+ 23 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/iotprojecttask/IotProjectTaskServiceImpl.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+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.IotProjectTaskSaveReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojectinfo.IotProjectInfoDO;
@@ -13,6 +14,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.iotprojecttask.IotProjectTaskD
 import cn.iocoder.yudao.module.pms.dal.mysql.iotprojectinfo.IotProjectInfoMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.iotprojecttask.IotProjectTaskMapper;
 import cn.iocoder.yudao.module.pms.service.iotprojectinfo.IotProjectInfoService;
+import cn.iocoder.yudao.module.supplier.service.product.SupplierService;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -41,6 +43,8 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
     @Resource
     private IotProjectInfoService iotProjectInfoService;
 
+    @Resource
+    private SupplierService iotSupplierService;
     @Resource
     private IotProjectInfoMapper iotProjectInfoMapper;
 
@@ -232,6 +236,22 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
                 departmentIds.add(dept.getId());
             });
         }
+        // 客户名称模板搜索
+        Set<Long> projectIds = new HashSet<>();
+        if (StrUtil.isNotBlank(vo.getManufactureName())) {
+            IotProjectInfoPageReqVO reqVO = new IotProjectInfoPageReqVO();
+            reqVO.setManufactureName(vo.getManufactureName());
+            List<IotProjectInfoDO> matchedProjects = iotProjectInfoMapper.selectList(reqVO);
+            if (CollUtil.isNotEmpty(matchedProjects)) {
+                matchedProjects.forEach(project -> {
+                    projectIds.add(project.getId());
+                });
+            } else {
+                // 返回空数据
+                return new PageResult<>(new ArrayList<>(), 0l);
+            }
+        }
+
         IPage<IotProjectTaskDO> taskDOIPage = iotProjectTaskMapper.taskList(Page.of(vo.getPageNo(), vo.getPageSize()),
                 vo.getCompanyId(),
                 vo.getManufactureName(),
@@ -239,7 +259,9 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
                 vo.getContractCode(),
                 vo.getWellName(),
                 vo.getCreateTime(),
-                departmentIds);
+                departmentIds,
+                projectIds,
+                vo.getPlatformFlag());
         return new PageResult<>(taskDOIPage.getRecords(), taskDOIPage.getTotal());
     }
 

+ 13 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/resources/mapper/static/iotprojecttask/IotProjectTaskMapper.xml

@@ -18,8 +18,7 @@
         <result column="contract_code" property="contractCode" />
     </resultMap>
 
-    <select id="taskList" parameterType="cn.iocoder.yudao.module.pms.controller.admin.iotprojecttask.vo.IotProjectTaskPageReqVO"
-    resultMap="IotProjectTaskResultMap">
+    <select id="taskList" resultMap="IotProjectTaskResultMap">
         select
         a.id,
         a.project_id,
@@ -45,6 +44,12 @@
         <if test="companyId != null and companyId != ''">
         and a.dept_id = #{companyId}
         </if>
+        <if test='platformFlag != null and platformFlag == "Y"'>
+            and a.platform_well = 1
+        </if>
+        <if test='platformFlag != null and platformFlag == "N"'>
+            and a.platform_well = 0
+        </if>
         <if test="manufactureName != null  and manufactureName != ''">
         and b.manufacture_name like concat('%', #{manufactureName}, '%')
         </if>
@@ -73,6 +78,12 @@
                 #{deptId}
             </foreach>
         </if>
+        <if test="projectIds != null and !projectIds.isEmpty()">
+            AND a.project_id IN
+            <foreach collection="projectIds" item="projectId" open="(" separator="," close=")">
+                #{projectId}
+            </foreach>
+        </if>
         ORDER BY a.id DESC
     </select>