Browse Source

fix: 求职人员地图显示内容调整

zhangying 9 months ago
parent
commit
c16aaa8232

+ 6 - 0
src/main/java/com/hz/employmentsite/vo/dataMap/JobUserMapVo.java

@@ -16,6 +16,12 @@ public class JobUserMapVo {
 
     private String latitude;
 
+    private String siteName;
+
+    private int recommendedCount;
+
+    private Integer entryState;
+
     // JSON格式的列表数据
     private String labelList;
     private String jobHuntList;

+ 39 - 7
src/main/resources/mapping/cquery/JobUserCQuery.xml

@@ -46,11 +46,16 @@
         left join pc_site_institution inSites on site.SiteID = inSites.SiteID
         left join pc_institution institution on inSites.institutionID = institution.InstitutionID
         left join sys_user modifyUser on jobuser.ModifyUserID = modifyUser.UserID
-        left join (SELECT job_user.JobUserID, count( 1 ) AS RecommendedCount
-                   FROM pc_recommend_mgt mgt
-                   LEFT JOIN pc_jobhunt hunt ON mgt.JobHuntID = hunt.JobHuntID
-                   LEFT JOIN pc_jobuser job_user ON job_user.JobUserID = job_user.JobuserID
-                   GROUP BY job_user.JobUserID
+        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 (select JobUserID, count(1) as jobHuntCount from pc_jobhunt jobhunt group by JobUserID) jobhuntCountData on jobhuntCountData.JobUserID = jobuser.JobUserID
         where 1=1
@@ -119,6 +124,9 @@
                     CURRENT_DATE ()) AS age,
             jobuser.Longitude,
             jobuser.Latitude,
+            site.SiteName,
+            recommendCountData.RecommendedCount,
+            mgtEntryState.EntryState,
             (
                 SELECT
                     JSON_ARRAYAGG( JSON_OBJECT( 'professionID', jobHuntTemp.ProfessionID, 'professionName', jobHuntTemp.ProfessionName ) )
@@ -152,8 +160,32 @@
             ) AS labelList
         FROM
             pc_jobuser jobuser
-                LEFT JOIN sys_dictionary_item keytype ON jobuser.KeyPersonTypeID = keytype.`Value`
-                AND keytype.DictionaryCode = 'KeyPersonType'
+            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 (
+                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 (
+                SELECT
+                    job_user.JobUserID,
+                    mgt.EntryState
+                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
+                AND mgt.EntryState = 1
+                GROUP BY
+                    job_user.JobUserID
+            ) mgtEntryState ON mgtEntryState.JobUserID = jobuser.JobUserID
         WHERE 1=1
         <if test="keyTypeValue != null">
             and keytype.`Value` = #{keyTypeValue}

+ 52 - 66
vue/src/views/dataMap/jobUserDataMap.vue

@@ -86,9 +86,11 @@
               <div class="label-box" v-if="jobUser.labelList.length > 0"
                    :ref="el => jobUserLabelBoxRef[jobUserIndex] = el"
                    :class="{'label-box-max-height': jobUser.labelExpanded}">
-                <a-tag v-for="(label, labelIndex) in jobUser.labelList" :key="labelIndex">
-                  {{ label.labelName }}
-                </a-tag>
+                <div class="tag-box">
+                  <a-tag v-for="(label, labelIndex) in jobUser.labelList" :key="labelIndex">
+                    {{ label.labelName }}
+                  </a-tag>
+                </div>
                 <div v-if="showLaunchBtnBox(jobUserLabelBoxRef,jobUserIndex,40)">
                 <span class="launch-btn" v-if="jobUser.labelExpanded"
                       @click.stop="jobUser.labelExpanded = false">展开</span>
@@ -117,14 +119,18 @@
             {{ nowCheckJobUser.name }}
           </p>
           <p class="label-text">年龄:{{ nowCheckJobUser.age }}岁</p>
-          <p class="label-text">{{ nowCheckJobUser.keyTypeName }}</p>
+          <p class="label-text">重点人员类别:{{ nowCheckJobUser.keyTypeName }}</p>
+          <p class="label-text">已推荐岗位数量:{{ nowCheckJobUser.recommendedCount }}个</p>
+          <p class="label-text">入职情况:{{ nowCheckJobUser.entryState == 1 ? '已入职' : '未入职' }}</p>
           <!-- 标签 -->
           <div class="label-box" v-if="nowCheckJobUser.labelList.length > 0"
                :ref="el => nowCheckJobUserLabelBoxRef = el"
                :class="{'label-box-max-height': nowCheckJobUserLabelExpanded}">
-            <a-tag v-for="(label, labelIndex) in nowCheckJobUser.labelList" :key="labelIndex">
-              {{ label.labelName }}
-            </a-tag>
+            <div class="tag-box">
+              <a-tag v-for="(label, labelIndex) in nowCheckJobUser.labelList" :key="labelIndex">
+                {{ label.labelName }}
+              </a-tag>
+            </div>
             <div v-if="showLaunchBtnBox(nowCheckJobUserLabelBoxRef,null,40)">
                 <span class="launch-btn" v-if="nowCheckJobUserLabelExpanded"
                       @click.stop="nowCheckJobUserLabelExpanded = false">展开</span>
@@ -421,9 +427,11 @@ function checkJobUser(jobUser: any) {
     // 地图打开弹窗
     let winHtml = `
       <div>
-        <span style="font-size: 14px; font-weight: 600;margin-bottom: 5px;">${jobUser.name}</span><br>
-        <span>${jobUser.age}岁</span><br>
-        <span>${jobUser.keyTypeName}</span>
+        <span style="font-size: 14px; font-weight: 600;margin-bottom: 5px;">${jobUser.name}(${jobUser.siteName})</span><br><br>
+        <span>年龄:${jobUser.age}岁</span><br>
+        <span>重点人员类别:${jobUser.keyTypeName}</span><br>
+        <span>推荐岗位次数:${jobUser.recommendedCount}次</span><br>
+        <span>入职情况:${jobUser.entryState == 1 ? '已入职' : '未入职'}</span>
       </div>
     `;
     (map as any).openInfoWindow(winHtml, new T.LngLat(jobUser.longitude, jobUser.latitude), {
@@ -567,6 +575,36 @@ export default {
     margin-bottom: 3px;
   }
 
+  .label-box {
+    display: flex;
+    align-items: center;
+    flex-wrap: wrap;
+    margin-top: 5px;
+    overflow: hidden;
+    position: relative;
+
+    .tag-box {
+      width: 91%;
+    }
+
+    .ant-tag {
+      margin-top: 3px;
+    }
+
+    .launch-btn {
+      font-size: 12px;
+      color: #40a9ff;
+      position: absolute;
+      bottom: 0;
+      right: 0;
+      cursor: pointer;
+    }
+  }
+
+  .label-box-max-height {
+    max-height: 23px;
+  }
+
   .jobUser-search-data-box {
     position: absolute;
     width: 330px;
@@ -623,32 +661,6 @@ export default {
               cursor: pointer;
             }
           }
-
-          .label-box {
-            display: flex;
-            align-items: center;
-            flex-wrap: wrap;
-            margin-top: 5px;
-            overflow: hidden;
-            position: relative;
-
-            .ant-tag {
-              margin-top: 3px;
-            }
-
-            .launch-btn {
-              font-size: 12px;
-              color: #40a9ff;
-              position: absolute;
-              bottom: 0;
-              right: 0;
-              cursor: pointer;
-            }
-          }
-
-          .label-box-max-height {
-            max-height: 23px;
-          }
         }
 
         .check-jobUser {
@@ -686,42 +698,16 @@ export default {
 
     .jobUser-data-box {
       background-color: white;
-      padding: 18px;
+      padding: 10px;
       width: 100%;
-      max-height: 135px;
+      max-height: 165px;
       overflow-y: auto;
       border-radius: 10px;
-
-      .label-box {
-        display: flex;
-        align-items: center;
-        flex-wrap: wrap;
-        margin-top: 5px;
-        overflow: hidden;
-        position: relative;
-
-        .ant-tag {
-          margin-top: 3px;
-        }
-
-        .launch-btn {
-          font-size: 12px;
-          color: #40a9ff;
-          position: absolute;
-          bottom: 0;
-          right: 0;
-          cursor: pointer;
-        }
-      }
-
-      .label-box-max-height {
-        max-height: 23px;
-      }
     }
 
     .jobHunt-list-box {
       width: 100%;
-      height: calc(100% - 185px);
+      height: calc(100% - 210px);
       overflow: hidden;
       overflow-y: auto;
 
@@ -748,7 +734,7 @@ export default {
 
     .empty-box {
       width: 100%;
-      height: calc(100% - 185px);
+      height: calc(100% - 210px);
       display: flex;
       justify-content: center;
       align-items: center;