Procházet zdrojové kódy

feat: 求职人员地图添加姓名查询

zhangying před 9 měsíci
rodič
revize
a66fabeccd

+ 2 - 2
src/main/java/com/hz/employmentsite/controller/jobUserManager/JobUserController.java

@@ -227,8 +227,8 @@ public class JobUserController {
     public BaseResponse getDataMapList(@RequestParam("pageIndex") int pageIndex, @RequestParam("pageSize") int pageSize,
                                                  @RequestParam(required = false) Integer keyTypeValue, @RequestParam(required = false) String regionCode,
                                                  @RequestParam(required = false) String labelID, @RequestParam(required = false) Integer minAge,
-                                                 @RequestParam(required = false) Integer maxAge) {
-        PageInfo<JobUserMapVo> result = jobuserService.getDataMapList(pageIndex, pageSize, keyTypeValue, regionCode, labelID, minAge, maxAge);
+                                                 @RequestParam(required = false) Integer maxAge, @RequestParam(required = false) String jobUserName) {
+        PageInfo<JobUserMapVo> result = jobuserService.getDataMapList(pageIndex, pageSize, keyTypeValue, regionCode, labelID, minAge, maxAge, jobUserName);
         return RespGenerstor.success(result);
     }
 

+ 1 - 1
src/main/java/com/hz/employmentsite/mapper/cquery/JobUserCQuery.java

@@ -33,7 +33,7 @@ public interface JobUserCQuery {
      */
     List<JobUserMapVo> getDataMapList(@Param("keyTypeValue") Integer keyTypeValue, @Param("regionCode") String regionCode,
                                       @Param("labelID") String labelID, @Param("minAge") Integer minAge,
-                                      @Param("maxAge") Integer maxAge);
+                                      @Param("maxAge") Integer maxAge, @Param("jobUserName") String jobUserName);
 
 
     List<JobUserVo> getJobUserDataList(@Param("jobUserName") String jobUserName);

+ 4 - 2
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java

@@ -878,9 +878,11 @@ public class JobUserServiceImpl implements JobUserService {
     }
 
     @Override
-    public PageInfo<JobUserMapVo> getDataMapList(int pageIndex, int pageSize, Integer keyTypeValue, String regionCode, String labelID, Integer minAge, Integer maxAge) {
+    public PageInfo<JobUserMapVo> getDataMapList(int pageIndex, int pageSize, Integer keyTypeValue,
+                                                 String regionCode, String labelID, Integer minAge,
+                                                 Integer maxAge, String jobUserName) {
         PageHelper.startPage(pageIndex, pageSize);
-        List<JobUserMapVo> dataMapList = jobUserCQuery.getDataMapList(keyTypeValue, regionCode, labelID, minAge, maxAge);
+        List<JobUserMapVo> dataMapList = jobUserCQuery.getDataMapList(keyTypeValue, regionCode, labelID, minAge, maxAge, jobUserName);
         PageInfo<JobUserMapVo> result = new PageInfo<>(dataMapList);
 
         // 获取所有的求职人员ID

+ 1 - 1
src/main/java/com/hz/employmentsite/services/service/jobUserManager/JobUserService.java

@@ -43,5 +43,5 @@ public interface JobUserService {
 
     PageInfo<JobUserMapVo> getDataMapList(int pageIndex, int pageSize, Integer keyTypeValue,
                                           String regionCode, String labelID, Integer minAge,
-                                          Integer maxAge);
+                                          Integer maxAge, String jobUserName);
 }

+ 93 - 92
src/main/resources/mapping/cquery/JobUserCQuery.xml

@@ -118,102 +118,103 @@
 
     <select id="getDataMapList" resultType="com.hz.employmentsite.vo.dataMap.JobUserMapVo">
         SELECT
-        jobuser.JobuserID,
-        jobuser.`Name`,
-        jobuser.sex,
-        jobuser.finishDate,
-        jobuser.jobStatusID,
-        jobstatus.`Name` as jobStatusName,
-        keytype.`Name` AS keyTypeName,
-        TIMESTAMPDIFF(
-        YEAR,
-        jobuser.BirthDay,
-        CURRENT_DATE ()) AS age,
-        jobuser.Longitude,
-        jobuser.Latitude,
-        site.SiteName,
-        area.`Name` AS regionName,
-        recommendCountData.RecommendedCount,
-        (
-        SELECT
-        JSON_ARRAYAGG( JSON_OBJECT( 'labelID', labelTemp.LabelID, 'labelName', labelTemp.LabelName ) )
-        FROM
-        (
-        SELECT
-        label.LabelID,
-        label.LabelName
-        FROM
-        pc_label_jobuser label_jobuser
-        LEFT JOIN pc_label label ON label_jobuser.LabelID = label.LabelID
-        WHERE
-        label_jobuser.JobuserID = jobuser.JobuserID
-        ) AS labelTemp
-        ) AS labelList
-        FROM
-        pc_jobuser jobuser
-        LEFT JOIN sys_dictionary_item keytype ON jobuser.KeyPersonTypeID = keytype.`Value`
-        AND keytype.DictionaryCode = 'KeyPersonType'
-        LEFT JOIN pc_site site ON jobuser.SiteID = site.SiteID
-        LEFT JOIN area_code area ON site.RegionCode = area.`code`
-        LEFT JOIN (
-        SELECT
-        job_user.JobUserID,
-        COUNT( mgt.JobHuntID ) AS RecommendedCount
-        FROM
-        pc_jobuser job_user
-        LEFT JOIN pc_jobhunt hunt ON job_user.JobUserID = hunt.JobUserID
-        LEFT JOIN pc_recommend_mgt mgt ON hunt.JobHuntID = mgt.JobHuntID
-        GROUP BY
-        job_user.JobUserID
-        ) recommendCountData ON recommendCountData.JobUserID = jobuser.JobUserID
-        left join sys_dictionary_item jobstatus on jobuser.JobStatusID = jobstatus.value and
-        jobstatus.DictionaryCode='JobStatus'
-        WHERE 1=1
-        <if test="keyTypeValue != null">
-            and keytype.`Value` = #{keyTypeValue}
-        </if>
-        <if test="regionCode != '' and regionCode != null">
-            and jobuser.RegionCode = #{regionCode}
-        </if>
-        <if test="labelID != '' and labelID != null">
-            AND jobuser.JobuserID IN (
-            SELECT label_jobuser.JobuserID
-            FROM pc_label_jobuser label_jobuser
-            WHERE label_jobuser.LabelID IN (
-            SELECT label.LabelID
-            FROM pc_label label
-            WHERE label.LabelID = #{labelID}
-            )
-            )
-        </if>
-        <if test="minAge != null and maxAge == null">
-            and
+            jobuser.JobuserID,
+            jobuser.`Name`,
+            jobuser.sex,
+            jobuser.finishDate,
+            jobuser.jobStatusID,
+            jobstatus.`Name` as jobStatusName,
+            keytype.`Name` AS keyTypeName,
             TIMESTAMPDIFF(
             YEAR,
             jobuser.BirthDay,
-            CURRENT_DATE ()) <![CDATA[ >= ]]> #{minAge}
-        </if>
-        <if test="maxAge != null and minAge == null">
-            and
-            TIMESTAMPDIFF(
-            YEAR,
-            jobuser.BirthDay,
-            CURRENT_DATE ()) <![CDATA[ <= ]]> #{maxAge}
-        </if>
-        <if test="minAge != null and maxAge != null">
-            and
-            TIMESTAMPDIFF(
-            YEAR,
-            jobuser.BirthDay,
-            CURRENT_DATE ()) <![CDATA[ >= ]]> #{minAge}
-            and
-            TIMESTAMPDIFF(
-            YEAR,
-            jobuser.BirthDay,
-            CURRENT_DATE ()) <![CDATA[ <= ]]> #{maxAge}
-        </if>
+            CURRENT_DATE ()) AS age,
+            jobuser.Longitude,
+            jobuser.Latitude,
+            site.SiteName,
+            area.`Name` AS regionName,
+            recommendCountData.RecommendedCount,
+            (
+            SELECT
+            JSON_ARRAYAGG( JSON_OBJECT( 'labelID', labelTemp.LabelID, 'labelName', labelTemp.LabelName ) )
+            FROM
+            (
+            SELECT
+            label.LabelID,
+            label.LabelName
+            FROM
+            pc_label_jobuser label_jobuser
+            LEFT JOIN pc_label label ON label_jobuser.LabelID = label.LabelID
+            WHERE
+            label_jobuser.JobuserID = jobuser.JobuserID
+            ) AS labelTemp
+            ) AS labelList
+        FROM
+            pc_jobuser jobuser
+                LEFT JOIN sys_dictionary_item keytype ON jobuser.KeyPersonTypeID = keytype.`Value` AND keytype.DictionaryCode = 'KeyPersonType'
+                LEFT JOIN pc_site site ON jobuser.SiteID = site.SiteID
+                LEFT JOIN area_code area ON site.RegionCode = area.`code`
+                LEFT JOIN (
+                    SELECT
+                    job_user.JobUserID,
+                    COUNT( mgt.JobHuntID ) AS RecommendedCount
+                    FROM
+                    pc_jobuser job_user
+                        LEFT JOIN pc_jobhunt hunt ON job_user.JobUserID = hunt.JobUserID
+                        LEFT JOIN pc_recommend_mgt mgt ON hunt.JobHuntID = mgt.JobHuntID
+                        GROUP BY
+                        job_user.JobUserID
+                ) recommendCountData ON recommendCountData.JobUserID = jobuser.JobUserID
+                left join sys_dictionary_item jobstatus on jobuser.JobStatusID = jobstatus.value and jobstatus.DictionaryCode='JobStatus'
+        WHERE 1=1
+            <if test="jobUserName != '' and jobUserName != null">
+                and jobuser.name like Concat('%',#{jobUserName},'%')
+            </if>
+            <if test="keyTypeValue != null">
+                and keytype.`Value` = #{keyTypeValue}
+            </if>
+            <if test="regionCode != '' and regionCode != null">
+                and jobuser.RegionCode = #{regionCode}
+            </if>
+            <if test="labelID != '' and labelID != null">
+                AND jobuser.JobuserID IN (
+                    SELECT label_jobuser.JobuserID
+                    FROM pc_label_jobuser label_jobuser
+                    WHERE label_jobuser.LabelID IN (
+                        SELECT label.LabelID
+                        FROM pc_label label
+                        WHERE label.LabelID = #{labelID}
+                    )
+                )
+            </if>
+            <if test="minAge != null and maxAge == null">
+                and
+                TIMESTAMPDIFF(
+                YEAR,
+                jobuser.BirthDay,
+                CURRENT_DATE ()) <![CDATA[ >= ]]> #{minAge}
+            </if>
+            <if test="maxAge != null and minAge == null">
+                and
+                TIMESTAMPDIFF(
+                YEAR,
+                jobuser.BirthDay,
+                CURRENT_DATE ()) <![CDATA[ <= ]]> #{maxAge}
+            </if>
+            <if test="minAge != null and maxAge != null">
+                and
+                TIMESTAMPDIFF(
+                YEAR,
+                jobuser.BirthDay,
+                CURRENT_DATE ()) <![CDATA[ >= ]]> #{minAge}
+                and
+                TIMESTAMPDIFF(
+                YEAR,
+                jobuser.BirthDay,
+                CURRENT_DATE ()) <![CDATA[ <= ]]> #{maxAge}
+            </if>
         ORDER BY
-        jobuser.CreateTime DESC
+            jobuser.CreateTime DESC
     </select>
     <select id="getJobUserDataList" resultType="com.hz.employmentsite.vo.jobUserManager.JobUserVo">
         select  jobUserID,name,userMobile  from pc_jobuser jobuser

+ 71 - 32
vue/src/views/dataMap/jobUserDataMap.vue

@@ -7,33 +7,45 @@
       ></div>
       <!-- 求职人员查询与数据展示 -->
       <div class="jobUser-search-data-box">
+        <!-- 求职人员姓名输入框 -->
+        <div class="search-input-box">
+          <a-input-search
+            v-model:value="searchParams.jobUserName"
+            placeholder="请输入求职人员姓名"
+            enter-button
+            :loading="searchLoading"
+            style="width: 100%"
+            @search="onSearch"
+          />
+        </div>
         <!-- 查询区域 -->
         <div class="search-box">
-          <a-select
-            v-model:value="searchParams.keyTypeValue"
-            size="small"
-            :options="keyPersonTypeList"
-            :field-names="{ label: 'name', value: 'value' }"
-            :allow-clear="true"
-            :bordered="false"
-            placeholder="重点人员类别"
-            style="width: 40%;"
-            @change="onSearch"
-          >
-          </a-select>
-          <div style="width: 60%">
-            <a-input-number id="inputMinAge" v-model:value="searchParams.minAge" size="small" :controls="false"
-                            :bordered="false" style="width: 50px" placeholder="年龄" @blur="ageBlur"/>
-            <span style="margin: 0 4px;">至</span>
-            <a-input-number id="inputMaxAge" v-model:value="searchParams.maxAge" size="small" :controls="false"
-                            :bordered="false" style="width: 50px" placeholder="年龄" @blur="ageBlur"/>
-            <a-button type="text" size="small" style="width: 66px" :loading="searchLoading" @click="onSearch">查询
-            </a-button>
+          <div style="width: 100%; display: flex; align-items: center;">
+            <span class="cursor-pointer" style="width: 54px;padding: 7px 0;text-align: center"
+                  @click="searchAll">全部</span>
+            <a-select
+              v-model:value="searchParams.keyTypeValue"
+              size="small"
+              :options="keyPersonTypeList"
+              :field-names="{ label: 'name', value: 'value' }"
+              :allow-clear="true"
+              :bordered="false"
+              placeholder="重点人员类别"
+              style="width: 40%;"
+              @change="onSearch"
+            >
+            </a-select>
+            <div style="width: 42%">
+              <a-input-number id="inputMinAge" v-model:value="searchParams.minAge" size="small" :controls="false"
+                              :bordered="false" style="width: 52px" placeholder="年龄" @blur="ageBlur"/>
+              <span style="margin: 0 4px;">至</span>
+              <a-input-number id="inputMaxAge" v-model:value="searchParams.maxAge" size="small" :controls="false"
+                              :bordered="false" style="width: 52px" placeholder="年龄" @blur="ageBlur"/>
+            </div>
           </div>
           <div style="width: 100%; margin-top: 2px;">
-            <a-button type="text" size="small" style="width: 46px  " @click="searchAll">全部</a-button>
             <a-select
-              style="width: 42%;"
+              style="width: 50%;"
               v-model:value="searchParams.regionCode"
               :allow-clear="true"
               :options="regionList"
@@ -44,7 +56,7 @@
             >
             </a-select>
             <a-select
-              style="width: 43%;"
+              style="width: 50%;"
               v-model:value="searchParams.labelID"
               :allow-clear="true"
               :options="jobUserLabelDicList"
@@ -222,7 +234,8 @@ const searchParams = reactive({
   minAge: null,
   maxAge: null,
   regionCode: null,
-  labelID: null
+  labelID: null,
+  jobUserName: ""
 })
 const jobHuntSearchParams = reactive({
   pageIndex: 1,
@@ -603,12 +616,13 @@ function setColorClass(jobUser: any) {
 
 // 查询全部
 function searchAll() {
-  searchParams.pageIndex = 1
-  searchParams.pageSize = 100
-  searchParams.regionCode = null
-  searchParams.labelID = null
-  searchParams.minAge = null
-  searchParams.maxAge = null
+  searchParams.pageIndex = 1;
+  searchParams.pageSize = 100;
+  searchParams.regionCode = null;
+  searchParams.labelID = null;
+  searchParams.minAge = null;
+  searchParams.maxAge = null;
+  searchParams.jobUserName = "";
   onSearch();
 }
 onMounted(() => {
@@ -628,7 +642,7 @@ export default {
 }
 </script>
 
-<style lang="less" scoped>
+<style lang="less">
 .map-box {
   width: 100vw;
   height: 100vh;
@@ -698,6 +712,10 @@ export default {
     right: 330px;
     z-index: 110;
 
+    .search-input-box {
+      margin-bottom: 10px;
+    }
+
     .search-box, .data-box, .pagination-box {
       padding: 8px;
       background-color: #F8F8F8;
@@ -711,7 +729,7 @@ export default {
     }
 
     .data-box {
-      height: calc(100% - 135px);
+      height: calc(100% - 180px);
       padding: 10px;
       border-radius: 0;
 
@@ -877,5 +895,26 @@ export default {
       border-radius: 10px;
     }
   }
+
+  .ant-btn, .ant-input {
+    border: none !important;
+  }
+
+  input {
+    height: 32px;
+  }
+
+  .ant-select:not(.ant-select-customize-input) .ant-select-selector,
+  .ant-select:not(.ant-select-customize-input) .ant-select-selector,
+  .ant-input-affix-wrapper, .ant-select-selector {
+    border: none !important;
+    box-shadow: none !important;
+  }
+
+  .ant-select:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input)
+  .ant-select-selector {
+    border-color: transparent;
+    box-shadow: none;
+  }
 }
 </style>