Browse Source

web-岗位、求职人员推荐筛选条件调整

liao-sea 8 months ago
parent
commit
6e8febbd97

+ 6 - 1
h5app/src/views/pages/jobhunt/recommend/recommendPost.vue

@@ -49,7 +49,12 @@
                     工作年限:{{ record.workYearName }}
                   </p>
                 </div>
-                <p>薪资待遇:{{ record.minSalary }}至{{ record.maxSalary }}元</p>
+                <p>
+                  薪资待遇:{{ record.minSalary }}-{{ record.maxSalary }}元
+                </p>
+                <p>
+                  联系电话:{{ record.contactMobile }}
+                </p>
               </ion-label>
               <ion-avatar aria-hidden="true" class="container" slot="end">
                 <ion-button size="small" @click="onRecommend(record)" fill="outline" >推荐</ion-button>

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

@@ -79,8 +79,9 @@ public class RecommendMgtController {
                                             @RequestParam(required = false) String userName, @RequestParam("type") Integer type,
                                             @RequestParam(required = false) Integer cultureRank, @RequestParam(required = false) Integer keyPersonType,
                                             @RequestParam(required = false) String parentProfessionID, @RequestParam(required = false) Integer workYear,
+                                            @RequestParam(required = false) String regionCode, @RequestParam(required = false) String siteID,
                                             @RequestParam(required = false) Integer minSalary,@RequestParam(required = false) Integer maxSalary) {
-        PageInfo<RecommendJobVo> result = recommendMgtService.getRecommendJobList(pageIndex, pageSize, postID, professionID,huntProfessionName, userName, type, cultureRank, keyPersonType, parentProfessionID, workYear, minSalary, maxSalary);
+        PageInfo<RecommendJobVo> result = recommendMgtService.getRecommendJobList(pageIndex, pageSize, postID, professionID,huntProfessionName, userName, type, cultureRank, keyPersonType, parentProfessionID, workYear,regionCode,siteID, minSalary, maxSalary);
         return RespGenerstor.success(result);
     }
 

+ 3 - 3
src/main/java/com/hz/employmentsite/mapper/cquery/RecommendMgtCQuery.java

@@ -54,9 +54,9 @@ public interface RecommendMgtCQuery {
     List<RecommendJobVo> getRecommendJobList(@Param("postID") String postID, @Param("professionID") String professionID,@Param("huntProfessionName") String huntProfessionName,
                                              @Param("userName") String userName, @Param("type") Integer type,
                                              @Param("cultureRank") Integer cultureRank, @Param("keyPersonType") Integer keyPersonType,
-                                             @Param("parentProfessionID") String parentProfessionID,
-                                             @Param("workYear") Integer workYear, @Param("minSalary") Integer minSalary,
-                                             @Param("maxSalary") Integer maxSalary,@Param("recommendedJobHuntIDList") String recommendedJobHuntIDList);
+                                             @Param("parentProfessionID") String parentProfessionID, @Param("workYear") Integer workYear,
+                                             @Param("regionCode") String regionCode, @Param("siteID") String siteID,
+                                             @Param("minSalary") Integer minSalary,@Param("maxSalary") Integer maxSalary,@Param("recommendedJobHuntIDList") String recommendedJobHuntIDList);
 
     List<ProfessionLevel> getProfessionLevelList();
 

+ 3 - 3
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/RecommendMgtServiceImpl.java

@@ -176,8 +176,8 @@ public class RecommendMgtServiceImpl implements RecommendMgtService {
 
     @Override
     public PageInfo<RecommendJobVo> getRecommendJobList(Integer page, Integer rows, String postID, String professionID,String huntProfessionName,
-                                                        String userName, Integer type, Integer cultureRank, Integer keyPersonType,
-                                                        String parentProfessionID, Integer workYear,Integer minSalary,Integer maxSalary) {
+                                                        String userName, Integer type, Integer cultureRank, Integer keyPersonType, String parentProfessionID,
+                                                        Integer workYear,String regionCode,String siteID,Integer minSalary,Integer maxSalary) {
         PageHelper.startPage(page, rows);
         List<String> recommendedJobHuntIDList = new ArrayList<>();
         PcRecommendMgtExample recommendMgtExp = new PcRecommendMgtExample();
@@ -188,7 +188,7 @@ public class RecommendMgtServiceImpl implements RecommendMgtService {
                 recommendedJobHuntIDList.add(curRecommended.getJobHuntID());
             }
         }
-        List<RecommendJobVo> list = recommendMgtCQuery.getRecommendJobList(postID, professionID, huntProfessionName, userName, type, cultureRank, keyPersonType, parentProfessionID, workYear, minSalary, maxSalary,stringUtils.ListToInSql(recommendedJobHuntIDList));
+        List<RecommendJobVo> list = recommendMgtCQuery.getRecommendJobList(postID, professionID, huntProfessionName, userName, type, cultureRank, keyPersonType, parentProfessionID, workYear,regionCode,siteID, minSalary, maxSalary,stringUtils.ListToInSql(recommendedJobHuntIDList));
         list.forEach(x -> {
             if (stringUtils.IsNullOrEmpty(x.getRecommendMgtID())) {
                 x.setRecommendMgtID(UUID.randomUUID().toString());

+ 2 - 2
src/main/java/com/hz/employmentsite/services/service/jobUserManager/RecommendMgtService.java

@@ -62,8 +62,8 @@ public interface RecommendMgtService {
      * @return
      * */
     PageInfo<RecommendJobVo> getRecommendJobList(Integer page, Integer rows, String postID, String professionID,String huntProfessionName, String userName,
-                                                 Integer type, Integer cultureRank, Integer keyPersonType,
-                                                 String parentProfessionID, Integer workYear,Integer minSalary,Integer maxSalary);
+                                                 Integer type, Integer cultureRank, Integer keyPersonType, String parentProfessionID, Integer workYear,
+                                                 String regionCode,String siteID,Integer minSalary,Integer maxSalary);
 
     List<ProfessionLevel> getProfessionLevelList();
 

+ 1 - 0
src/main/java/com/hz/employmentsite/vo/jobUserManager/RecommendCompanyPostVo.java

@@ -18,6 +18,7 @@ public class RecommendCompanyPostVo {
     public String professionID;
     public BigDecimal maxSalary;
     public BigDecimal minSalary;
+    public String contactMobile;
     public String cultureRankName;
     public String workYearName;
 }

+ 1 - 0
src/main/java/com/hz/employmentsite/vo/jobUserManager/RecommendJobVo.java

@@ -16,6 +16,7 @@ public class RecommendJobVo {
     public String isRecommend;
     public String professionID;
     public String professionName;
+    public String regionName;
     public String workYear;
     public BigDecimal minSalary;
     public BigDecimal maxSalary;

+ 19 - 8
src/main/resources/mapping/cquery/RecommendMgtCQuery.xml

@@ -85,6 +85,7 @@
         select a.postid,b.companyname,c.professionname,a.recruitcount,a.starttime,a.endtime,b.companyAddress,
         case when d.recommendmgtid is null then '未推荐' else '已推荐' end as isRecommend,
         d.recommendMgtID,a.professionid,a.maxsalary,a.minsalary,
+        (case when (a.contactMobile is null or a.contactMobile = '') then b.userMobile else a.contactMobile end) as contactMobile,
         dic1.`name` as culturerankname, dic2.`name` as workyearname
         from pc_post a
         left join pc_company b on a.CompanyID = b.CompanyID
@@ -102,21 +103,23 @@
                 and d.RecommendMgtID is not null
             </if>
             <choose>
-                <when test="parentProfessionID!=null and parentProfessionID!=''">
+                <when test="parentProfessionID != null and parentProfessionID!=''">
                     and c.ParentProfessionID = #{parentProfessionID}
                 </when>
-                <when test="professionID!=null and professionID!=''and (inviteProfessionName == null or inviteProfessionName =='') ">
+                <when test="professionID != null and professionID != '' and (inviteProfessionName == null or inviteProfessionName == '') and (companyName == null or companyName == '') ">
                     and a.ProfessionID = #{professionID}
                 </when>
-
-                <when test="professionID!=null and professionID!=''and inviteProfessionName != null and inviteProfessionName !=''  ">
+                <when test="professionID != null and professionID != '' and (inviteProfessionName == null or inviteProfessionName == '') and (companyName != null and companyName != '')">
+                    and ( a.ProfessionID = #{professionID} or b.CompanyName like Concat('%',#{companyName},'%') )
+                </when>
+                <when test="professionID != null and professionID != '' and inviteProfessionName != null and inviteProfessionName != ''  and (companyName == null or companyName == '') ">
                     and ( a.ProfessionID = #{professionID} or c.professionname like Concat('%',#{inviteProfessionName},'%') )
                 </when>
+                <when test="professionID != null and professionID != '' and inviteProfessionName != null and inviteProfessionName != ''  and companyName != null and companyName!='' ">
+                    and ( a.ProfessionID = #{professionID} or ( b.CompanyName like Concat('%',#{companyName},'%') and c.professionname like Concat('%',#{inviteProfessionName},'%') ) )
+                </when>
                 <otherwise>and 1=1</otherwise>
             </choose>
-            <if test="companyName!=null and companyName!=''">
-                and b.CompanyName like Concat('%',#{companyName},'%')
-            </if>
             <if test="cultureRank!=null and cultureRank!=''">
                 and a.CultureRank <![CDATA[>=]]> #{cultureRank}
             </if>
@@ -141,11 +144,12 @@
     <!--    推荐求职人员信息-->
     <select id="getRecommendJobList" resultType="com.hz.employmentsite.vo.jobUserManager.RecommendJobVo">
         select a.jobhuntid,b.name as userName,b.usermobile,e.sitename,dic1.`name` as culturerankname,dic2.`name` as
-        keypersontypename,a.workyear,a.minsalary,a.maxsalary,
+        keypersontypename,a.workyear,a.minsalary,a.maxsalary,area.name as regionName,
         case when d.recommendmgtid is null then '未推荐' else '已推荐' end as
         isrecommend,d.recommendMgtID,a.professionid,c.professionname
         from pc_jobhunt a
         left join pc_jobuser b on a.JobUserID = b.JobUserID
+        left join area_code area on b.regionCode = area.code
         left join pc_profession c on a.ProfessionID = c.ProfessionID
         left join pc_site e on b.SiteID = e.SiteID
         left join (select `Value`,`Name` from sys_dictionary_item where DictionaryCode='HighestDegree') dic1 on
@@ -169,6 +173,13 @@
             <if test="cultureRank!=null and cultureRank!=''">
                 and b.CultureRank <![CDATA[<=]]> #{cultureRank}
             </if>
+            <if test="regionCode!=null and regionCode!=''">
+                and b.regionCode = #{regionCode}
+            </if>
+
+            <if test="siteID!=null and siteID!=''">
+                and b.siteID =  #{siteID}
+            </if>
             <choose>
                 <when test="parentProfessionID!=null and parentProfessionID!=''">
                     and c.ParentProfessionID = #{parentProfessionID}

+ 67 - 20
vue/src/views/companyService/post/recommend.vue

@@ -47,7 +47,7 @@
             </a-form-item>
           </a-col>
 
-          <a-col :span="6" style="text-align: left">
+          <a-col :span="6" style="text-align: right">
             <a-button type="primary" html-type="submit" @click="onSearch">查询</a-button>
             <a-button
               style="margin: 0 8px"
@@ -55,14 +55,17 @@
               () => {
                 searchParams.pageIndex = 1;
                 searchParams.pageSize = 10;
-                searchParams.userName= '';
-                searchParams.keyPersonType= null;
-                searchParams.parentProfessionID= '';
+                searchParams.userName = '';
+                searchParams.keyPersonType = null;
+                searchParams.parentProfessionID = '';
+                searchParams.huntProfessionName = null;
                 searchParams.checkParentProfessionID = false;
-                searchParams.cultureRank= null;
-                searchParams.workYear= null;
-                searchParams.minSalary= null;
-                searchParams.maxSalary= null;
+                searchParams.cultureRank = null;
+                searchParams.workYear = null;
+                searchParams.regionCode = null;
+                searchParams.siteID = null;
+                searchParams.minSalary = null;
+                searchParams.maxSalary = null;
                 loadData();
               }
             ">重置
@@ -111,25 +114,48 @@
               </a-select>
             </a-form-item>
           </a-col>
-        </a-row>
-        <a-row :gutter="24" v-show="expand">
+
           <a-col :span="6">
             <a-form-item label="工作年限" :label-col="{ span: 8 }" name="workYear">
               <a-input v-model:value="searchParams.workYear" placeholder=""/>
             </a-form-item>
           </a-col>
-          <a-col :span="12">
-            <a-form-item label="薪资要求" :label-col="{span:4}" name="maxSalary">
-            <a-input type="number" v-model:value="searchParams.minSalary" style="width:120px;" placeholder=""/>
-            <label style="margin:10px;">-</label>
-            <a-input type="number" v-model:value="searchParams.maxSalary" style="width:120px;" placeholder=""/>
+        </a-row>
+        <a-row :gutter="24" v-show="expand">
+          <a-col :span="6">
+            <a-form-item label="所属区县" :label-col="{ span: 8 }" name="regionCode">
+              <a-select
+                ref="select"
+                v-model:value="searchParams.regionCode"
+                :options="regionList"
+                :field-names="{ label: 'name', value: 'code' }"
+                :allow-clear="true"
+                @change="loadData"
+              >
+              </a-select>
+            </a-form-item>
+          </a-col>
+          <a-col :span="6">
+            <a-form-item label="所属驿站" :label-col="{ span: 8 }" name="siteID">
+              <a-select
+                ref="select"
+                v-model:value="searchParams.siteID"
+                :options="siteList"
+                :field-names="{ label: 'siteName', value: 'siteID' }"
+                :allow-clear="true"
+                @change="loadData"
+              >
+              </a-select>
             </a-form-item>
           </a-col>
-          <a-col :span="3" v-if="searchParams.type===0">
-            <a-form-item label=""  name="checkParentProfessionID">
-              <a-checkbox
-                v-model:checked="searchParams.checkParentProfessionID"
-                @change="onSearch">
+          <a-col :span="12">
+            <a-form-item label="薪资要求" :label-col="{span:4}" name="maxSalary">
+              <a-input type="number" v-model:value="searchParams.minSalary" style="width:120px;" placeholder=""/>
+              <label style="margin:10px;">-</label>
+              <a-input type="number" v-model:value="searchParams.maxSalary" style="width:120px;" placeholder=""/>
+              <a-checkbox  v-if="searchParams.type===0" style="float: right;"
+                           v-model:checked="searchParams.checkParentProfessionID"
+                           @change="onSearch">
                 相关行业
               </a-checkbox>
             </a-form-item>
@@ -171,6 +197,8 @@ import type {SelectProps} from "ant-design-vue";
 import {getSysDictionaryList} from "@/api/system/dictionary";
 import {message} from "ant-design-vue";
 import {debounce} from "lodash-es";
+import {getSiteList} from "@/api/baseSettings/siteInfo";
+import {get} from "@/api/common";
 export default defineComponent({
   name: 'RecommendJobList',
   setup() {
@@ -179,6 +207,8 @@ export default defineComponent({
     const formRef = ref<FormInstance>();
     const expand = ref(false);
     const title = ref<string>('');
+    const siteList = ref<any>([]);
+    const regionList = ref<SelectProps['options']>();
     const searchParams = reactive({
       pageIndex: 1,
       pageSize: 10,
@@ -194,6 +224,8 @@ export default defineComponent({
       checkParentProfessionID: false,
       cultureRank: null,
       workYear: null,
+      regionCode: null,
+      siteID:null,
       minSalary: null,
       maxSalary: null
     });
@@ -218,6 +250,7 @@ export default defineComponent({
       {title: '求职人员姓名', dataIndex: 'userName', key: 'userName', align: "center",},
       {title: '求职岗位', dataIndex: 'professionName', key: 'professionName', align: "center",},
       {title: '联系电话', dataIndex: 'userMobile', key: 'userMobile', align: "center",},
+      {title: '所属区县', dataIndex: 'regionName', key: 'regionName', align: "center",},
       {title: '所属驿站', dataIndex: 'siteName', key: 'siteName', align: "center",},
       {title: '工作年限', dataIndex: 'workYear', key: 'workYear', align: "center",},
       {
@@ -241,6 +274,12 @@ export default defineComponent({
     const dataList = ref([]);
     const addRecommendList = ref([] as any);
 
+    const getAllSites = () => {
+      getSiteList({pageIndex:1,pageSize:9999}).then((result :any) => {
+        siteList.value = result.list;
+      })
+    }
+
     const onSelectChange = (selectedRowKeys: any) => {
       console.log(selectedRowKeys)
       formState.selectedRowKeys = selectedRowKeys;
@@ -286,8 +325,13 @@ export default defineComponent({
       loadData();
     }
 
+    get('system/area/getCityList', {}).then(data => {
+      regionList.value = data;
+    });
+
     const loadData = async function () {
       formState.loading = true;
+      getAllSites();
       const result: any = await getRecommendJobList(searchParams);
       dataList.value = result.list;
       console.log(dataList);
@@ -400,11 +444,14 @@ export default defineComponent({
       formState,
       columns,
       pagination,
+      siteList,
+      regionList,
       dataList,
       professionList,
       cultureLevelList,
       addRecommendList,
       keyPersonTypeList,
+      getAllSites,
       show,
       formatStr,
       professionChange,

+ 4 - 1
vue/src/views/jobUserManager/jobhunt/recommend.vue

@@ -50,6 +50,7 @@
                 searchParams.pageIndex = 1;
                 searchParams.pageSize = 10;
                 searchParams.companyName = null;
+                searchParams.inviteProfessionName = null;
                 searchParams.parentProfessionID= '';
                 searchParams.cultureRank= null;
                 searchParams.workYear= null;
@@ -166,6 +167,7 @@ export default defineComponent({
         companyName:value
       }).then(data => {
         inviteProfessionList.value = data.list;
+        onSearch();
       })
     }
 
@@ -217,12 +219,13 @@ export default defineComponent({
       {title: '工作年限', dataIndex: 'workYearName', key: 'workYearName', align: "center",},
       {title: '招聘人数', dataIndex: 'recruitCount', key: 'recruitCount', align: "center",},
       {
-        title: '薪资要求', dataIndex: 'salary', key: 'salary', align: "center",
+        title: '薪资待遇(元)', dataIndex: 'salary', key: 'salary', align: "center",
         customRender: (item) => {
           const salary = showSalary(item.record.minSalary, item.record.maxSalary);
           return salary;
         }
       },
+      {title: '联系电话', dataIndex: 'contactMobile', key: 'contactMobile', align: "center",},
       {title: '工作地点', dataIndex: 'companyAddress', key: 'companyAddress', align: "center",},
       {
         title: '工作开始时间', dataIndex: 'startTime', key: 'startTime', align: "center",