Преглед изворни кода

pms 日报任务列表 按照施工队伍 搜索

zhangcl пре 5 дана
родитељ
комит
7420bf049b

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

@@ -106,4 +106,7 @@ public class IotProjectTaskPageReqVO extends PageParam {
     @Schema(description = "平台井标识 Y N")
     private String platformFlag;
 
+    @Schema(description = "部门名称 模糊搜索")
+    private String deptName;
+
 }

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

@@ -107,6 +107,7 @@ public interface IotProjectTaskMapper extends BaseMapperX<IotProjectTaskDO> {
                                      @Param("wellName") String wellName,
                                      @Param("createTime") LocalDateTime[] createTime,
                                      @Param("deptIds") Collection<Long> deptIds,
+                                     @Param("searchDeptIds") Collection<Long> searchDeptIds,
                                      @Param("projectIds") Collection<Long> projectIds,
                                      @Param("platformFlag") String platformFlag
     );

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

@@ -15,7 +15,9 @@ 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.controller.admin.dept.vo.dept.DeptListReqVO;
 import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO;
+import cn.iocoder.yudao.module.system.dal.mysql.dept.DeptMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.stereotype.Service;
@@ -28,6 +30,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
 import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstant.IOT_PROJECT_TASK_NOT_EXISTS;
 
 /**
@@ -48,6 +51,8 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
     private SupplierService iotSupplierService;
     @Resource
     private IotProjectInfoMapper iotProjectInfoMapper;
+    @Resource
+    private DeptMapper deptMapper;
 
     @Override
     public Long createIotProjectTask(IotProjectTaskSaveReqVO createReqVO) {
@@ -253,6 +258,19 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
             }
         }
 
+        List<Long> qualifiedDeptIds = new ArrayList<>();
+        // 根据部门名称 模糊搜索
+        if (StrUtil.isNotBlank(vo.getDeptName())) {
+            // 根据名称查询部门id
+            DeptListReqVO reqVO = new DeptListReqVO();
+            reqVO.setName(vo.getDeptName());
+            List<DeptDO> qualifiedDepts = deptMapper.selectList(reqVO);
+            qualifiedDeptIds = convertList(qualifiedDepts, DeptDO::getId);
+            if (CollUtil.isEmpty(qualifiedDeptIds)) {
+                return new PageResult<>(new ArrayList<>(), 0l);
+            }
+        }
+
         IPage<IotProjectTaskDO> taskDOIPage = iotProjectTaskMapper.taskList(Page.of(vo.getPageNo(), vo.getPageSize()),
                 vo.getCompanyId(),
                 vo.getManufactureName(),
@@ -261,6 +279,7 @@ public class IotProjectTaskServiceImpl implements IotProjectTaskService {
                 vo.getWellName(),
                 vo.getCreateTime(),
                 departmentIds,
+                qualifiedDeptIds,
                 projectIds,
                 vo.getPlatformFlag());
         return new PageResult<>(taskDOIPage.getRecords(), taskDOIPage.getTotal());

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

@@ -19,7 +19,7 @@
     </resultMap>
 
     <select id="taskList" resultMap="IotProjectTaskResultMap">
-        select
+        SELECT
         a.id,
         a.project_id,
         a.well_name,
@@ -33,34 +33,41 @@
         b.manufacture_name,
         b.contract_name,
         b.contract_code
-        from
+        FROM
         rq_iot_project_task a,
         rq_iot_project_info b
-        where 1=1
-        and a.project_id = b.id
-        and a.deleted = 0
-        and b.deleted = 0
-        and (a.platform_well = 0 or a.platform_well = 1)
+        WHERE 1=1
+        AND a.project_id = b.id
+        AND a.deleted = 0
+        AND b.deleted = 0
+        AND (a.platform_well = 0 or a.platform_well = 1)
+        <if test="searchDeptIds != null and !searchDeptIds.isEmpty()">
+            AND (
+                <foreach collection="searchDeptIds" item="deptId" separator=" OR ">
+                    a.dept_ids LIKE CONCAT('%', #{deptId}, '%')
+                </foreach>
+            )
+        </if>
         <if test="companyId != null and companyId != ''">
-        and a.dept_id = #{companyId}
+        AND a.dept_id = #{companyId}
         </if>
         <if test='platformFlag != null and platformFlag == "Y"'>
-            and a.platform_well = 1
+        AND a.platform_well = 1
         </if>
         <if test='platformFlag != null and platformFlag == "N"'>
-            and a.platform_well = 0
+        AND a.platform_well = 0
         </if>
         <if test="manufactureName != null  and manufactureName != ''">
-        and b.manufacture_name like concat('%', #{manufactureName}, '%')
+        AND b.manufacture_name LIKE concat('%', #{manufactureName}, '%')
         </if>
         <if test="contractName != null  and contractName != ''">
-            and b.contract_name like concat('%', #{contractName}, '%')
+            AND b.contract_name LIKE concat('%', #{contractName}, '%')
         </if>
         <if test="contractCode != null  and contractCode != ''">
-            and b.contract_code like concat('%', #{contractCode}, '%')
+            AND b.contract_code LIKE concat('%', #{contractCode}, '%')
         </if>
         <if test="wellName != null  and wellName != ''">
-            and a.well_name like concat('%', #{wellName}, '%')
+            AND a.well_name LIKE concat('%', #{wellName}, '%')
         </if>
         <if test="createTime != null and createTime.length > 0">
             <choose>