Browse Source

Merge branch 'master' of http://39.98.153.250:9080/bowintek/EmploymentSite

pengjing 11 months ago
parent
commit
99716f0f72
30 changed files with 712 additions and 98 deletions
  1. 12 1
      doc/待更新脚本
  2. 2 0
      h5app/src/components/industrySelection.vue
  3. 2 0
      h5app/src/views/pages/company/detail.vue
  4. 12 4
      h5app/src/views/pages/company/edit.vue
  5. 0 19
      h5app/src/views/pages/company/editPost.vue
  6. 12 4
      h5app/src/views/pages/jobUserInfo/companyEdit.vue
  7. 0 19
      h5app/src/views/pages/jobUserInfo/postEdit.vue
  8. 5 0
      h5app/src/views/pages/jobhunt/detail.vue
  9. 1 4
      h5app/src/views/pages/jobhunt/list.vue
  10. 1 1
      h5app/src/views/pages/recommendMgt/detail.vue
  11. 22 0
      src/main/java/com/hz/employmentsite/mapper/PcLabelPostMapper.java
  12. 2 0
      src/main/java/com/hz/employmentsite/mapper/cquery/LabelCQuery.java
  13. 23 0
      src/main/java/com/hz/employmentsite/model/PcLabelPost.java
  14. 339 0
      src/main/java/com/hz/employmentsite/model/PcLabelPostExample.java
  15. 13 3
      src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java
  16. 57 29
      src/main/java/com/hz/employmentsite/services/impl/companyService/PostServiceImpl.java
  17. 1 1
      src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobHuntServiceImpl.java
  18. 1 1
      src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobUserServiceImpl.java
  19. 1 0
      src/main/java/com/hz/employmentsite/vo/companyService/CompanyVo.java
  20. 5 0
      src/main/java/com/hz/employmentsite/vo/companyService/PostVo.java
  21. 1 1
      src/main/resources/generatorConfig.xml
  22. 140 0
      src/main/resources/mapping/PcLabelPostMapper.xml
  23. 3 1
      src/main/resources/mapping/cquery/CompanyCQuery.xml
  24. 7 0
      src/main/resources/mapping/cquery/LabelCQuery.xml
  25. 2 1
      vue/src/views/baseSettings/institution/edit.vue
  26. 2 2
      vue/src/views/companyService/company/detail.vue
  27. 12 3
      vue/src/views/companyService/company/edit.vue
  28. 6 0
      vue/src/views/companyService/post/detail.vue
  29. 26 2
      vue/src/views/companyService/post/edit.vue
  30. 2 2
      vue/src/views/jobUserManager/jobuser/vitae.vue

+ 12 - 1
doc/待更新脚本

@@ -61,4 +61,15 @@ VALUES ('0ca43465-0b4b-11ef-ad8e-7085c2a9999e', '', 'TaskLevel', 1, '特别重
 -- 2024-5-6
 ALTER TABLE `employmentsitedb`.`pc_jobuser`
 ADD COLUMN `Longitude` varchar(50) NULL COMMENT '经度' AFTER `OccupationalLevel`,
-ADD COLUMN `Latitude` varchar(50) NULL COMMENT '纬度' AFTER `Longitude`;
+ADD COLUMN `Latitude` varchar(50) NULL COMMENT '纬度' AFTER `Longitude`;
+
+-- 2024.5.6
+create table pc_label_post(
+LabelID varchar(50) not null COMMENT '标签id',
+PostID varchar(50) not null COMMENT '岗位id'
+) COMMENT '岗位标签表';
+alter table pc_label_post add index pc_label_post_LabelID(LabelID);
+alter table pc_label_post add index pc_label_post_PostID(PostID);
+
+INSERT INTO `sys_dictionary_item` (`DictionaryItemID`, `Code`, `DictionaryCode`, `Value`, `Name`, `OrderNo`, `RecordStatus`, `IsEditable`) VALUES
+ ('f06c44b6-a77a-11ed-a6c5-7085c2a00004', '', 'BigType', 3, '岗位', 1, 1, 0);

+ 2 - 0
h5app/src/components/industrySelection.vue

@@ -177,6 +177,8 @@ export default defineComponent({
       getAllIndustryList().then(data => {
         allIndustryList.value = data;
         if (!props.CurIndustryID) {
+          selectIndustryInfo.value = ""
+          selectIndustryInfo.text = ""
           selectModelList[selectType.one].isSelect = true;
           selectModelList[selectType.one].disabled = false;
           selectModelList[selectType.one].industryName = ''

+ 2 - 0
h5app/src/views/pages/company/detail.vue

@@ -21,6 +21,7 @@
       </div>
       <div class="bw-vue-form">
         <div v-show="curTabIndex==1">
+          <div class="form-title" >&nbsp;</div>
           <div class="form-detail">
             <ion-label>企业名称</ion-label>
             <ion-text>{{ dataModel.companyName }}</ion-text>
@@ -123,6 +124,7 @@
           </div>
         </div>
         <div v-show="curTabIndex==2">
+          <br/>
             <div v-if="!loading" id="postList" >
               <div v-for="(record,key) in curCompanyPostList" :key="key" >
                   <ion-item detail @click="onPostEdit(record.postID)" class="ion-item">

+ 12 - 4
h5app/src/views/pages/company/edit.vue

@@ -161,11 +161,16 @@
                          v-model="dataModel.registeredCapital" class="custom">
               </ion-input>
             </div>
-            <div class="form-input" >
+            <div class="form-select">
               <ion-label>企业注册地址行政区划</ion-label>
-              <ion-input placeholder="请输入企业注册地址行政区划" label-placement="stacked" :clear-input="true"
-                         v-model="dataModel.signInPoliticalArea" class="custom">
-              </ion-input>
+              <ion-select interface="action-sheet" placeholder="请选择" cancel-text="取消"
+                          id="signInPoliticalArea" v-model="dataModel.signInPoliticalArea"
+                          style="width: 100%;text-align: left;">
+                <ion-select-option v-for="(record,key) in regionList" :key="key"
+                                   v-model:value="record.code">
+                  {{ record.name }}
+                </ion-select-option>
+              </ion-select>
             </div>
             <div class="form-input" >
               <ion-label>企业邮箱</ion-label>
@@ -549,6 +554,9 @@ export default defineComponent({
           formState.dataModel.companyEmail = matchedFirmInfo.companyEmail;
           formState.dataModel.companyAddress = matchedFirmInfo.companyAddress;
           formState.dataModel.businScope = matchedFirmInfo.businScope;
+          formState.dataModel.industryID = matchedFirmInfo.industryID;
+          formState.dataModel.industryName = matchedFirmInfo.industryName;
+          formState.dataModel.signInPoliticalArea = matchedFirmInfo.signInPoliticalArea;
           await setInfoLoadingOpen(false);
           infoAlterData.title = "提示";
           infoAlterData.message = "同步成功!";

+ 0 - 19
h5app/src/views/pages/company/editPost.vue

@@ -175,16 +175,6 @@
                          v-model="dataModel.contactEmail" class="custom">
               </ion-input>
             </div>
-            <div class="form-select">
-              <ion-label>岗位标签</ion-label>
-              <ion-select interface="action-sheet" placeholder="请选择岗位标签" cancel-text="取消"
-                          id="tagID" v-model="dataModel.tagID" style="width: 100%;text-align: left;">
-                <ion-select-option v-for="(record,key) in postTagList" :key="key"
-                                   v-model:value="record.value">
-                  {{ record.name }}
-                </ion-select-option>
-              </ion-select>
-            </div>
           </div>
         </div>
       </form>
@@ -244,7 +234,6 @@ export default defineComponent({
         contactName:null,
         contactMobile:null,
         contactEmail:null,
-        tagID:null,
         bonus:null
       }});
     const rules = computed(() => {
@@ -267,7 +256,6 @@ export default defineComponent({
     const workYearList = ref([]);
     const cultureRankList = ref([]);
     const workNatureList = ref([]);
-    const postTagList = ref([]);
 
     const presentAlert = async (message: string) => {
       const alert = await alertController.create({
@@ -321,17 +309,11 @@ export default defineComponent({
       workNatureList.value = data;
     }
 
-    const getPostTagList = async function(){
-      const data:any = await getSysDictionaryList("PostTag");
-      postTagList.value = data;
-    }
-
     const loadData = async (postID: any,companyID:any) => {
       isCommit.value =false;
       await getWorkYearList();
       await getCultureRankList();
       await getWorkNationList();
-      await getPostTagList();
       const loginUserInfo = useUserStore().getUserInfo;
       const reqData = await getPostByID(postID);
       formState.dataModel = reqData;
@@ -454,7 +436,6 @@ export default defineComponent({
       workYearList,
       workNatureList,
       cultureRankList,
-      postTagList,
       v$,
       onIsTrailChange,
       onSetProfessionID,

+ 12 - 4
h5app/src/views/pages/jobUserInfo/companyEdit.vue

@@ -159,11 +159,16 @@
                          v-model="dataModel.registeredCapital" class="custom">
               </ion-input>
             </div>
-            <div class="form-input" >
+            <div class="form-select">
               <ion-label>企业注册地址行政区划</ion-label>
-              <ion-input placeholder="请输入企业注册地址行政区划" label-placement="stacked" :clear-input="true"
-                         v-model="dataModel.signInPoliticalArea" class="custom">
-              </ion-input>
+              <ion-select interface="action-sheet" placeholder="请选择" cancel-text="取消"
+                          id="signInPoliticalArea" v-model="dataModel.signInPoliticalArea"
+                          style="width: 100%;text-align: left;">
+                <ion-select-option v-for="(record,key) in regionList" :key="key"
+                                   v-model:value="record.code">
+                  {{ record.name }}
+                </ion-select-option>
+              </ion-select>
             </div>
             <div class="form-input" >
               <ion-label>企业邮箱</ion-label>
@@ -510,6 +515,9 @@ export default defineComponent({
           formState.dataModel.companyEmail = matchedFirmInfo.companyEmail;
           formState.dataModel.companyAddress = matchedFirmInfo.companyAddress;
           formState.dataModel.businScope = matchedFirmInfo.businScope;
+          formState.dataModel.industryID = matchedFirmInfo.industryID;
+          formState.dataModel.industryName = matchedFirmInfo.industryName;
+          formState.dataModel.signInPoliticalArea = matchedFirmInfo.signInPoliticalArea;
           await setInfoLoadingOpen(false);
           infoAlterData.title = "提示";
           infoAlterData.message = "同步成功!";

+ 0 - 19
h5app/src/views/pages/jobUserInfo/postEdit.vue

@@ -175,16 +175,6 @@
                          v-model="dataModel.contactEmail" class="custom">
               </ion-input>
             </div>
-            <div class="form-select">
-              <ion-label>岗位标签</ion-label>
-              <ion-select interface="action-sheet" placeholder="请选择岗位标签" cancel-text="取消"
-                          id="tagID" v-model="dataModel.tagID" style="width: 100%;text-align: left;">
-                <ion-select-option v-for="(record,key) in postTagList" :key="key"
-                                   v-model:value="record.value">
-                  {{ record.name }}
-                </ion-select-option>
-              </ion-select>
-            </div>
           </div>
         </ion-list>
         </div>
@@ -247,7 +237,6 @@ export default defineComponent({
         contactName:null,
         contactMobile:null,
         contactEmail:null,
-        tagID:null,
         bonus:null,
         loginUserID:''
       }});
@@ -270,7 +259,6 @@ export default defineComponent({
     const workYearList = ref([]);
     const cultureRankList = ref([]);
     const workNatureList = ref([]);
-    const postTagList = ref([]);
     const curStepData = ref<StepParams>({
       loginUserID:""
     });
@@ -407,18 +395,12 @@ export default defineComponent({
       workNatureList.value = data;
     }
 
-    const getPostTagList = async function(){
-      const data:any = await getSysDictionaryList("PostTag");
-      postTagList.value = data;
-    }
-
     const loadData = async (postID: any,companyID:any,loginUserID:any) => {
       isCommit.value =false;
       curStepData.value.loginUserID = loginUserID;
       await getWorkYearList();
       await getCultureRankList();
       await getWorkNationList();
-      await getPostTagList();
       const reqData = await getPostByID(postID);
       formState.dataModel = reqData;
       formState.dataModel.companyID = companyID;
@@ -452,7 +434,6 @@ export default defineComponent({
       workYearList,
       cultureRankList,
       workNatureList,
-      postTagList,
       v$,
       onSetProfessionID,
       onSave,

+ 5 - 0
h5app/src/views/pages/jobhunt/detail.vue

@@ -27,6 +27,7 @@
     </div>
       <div class="bw-vue-form">
         <div v-show="curTabIndex==1">
+          <div class="form-title" >&nbsp;</div>
           <div class="form-detail">
             <ion-label>姓名</ion-label>
             <ion-text>{{ dataModel.name }}</ion-text>
@@ -154,6 +155,7 @@
 <!--          </div>-->
         </div>
         <div v-show="curTabIndex==2">
+          <br/>
           <div v-if="!loading" id="educationList" >
             <div v-for="(record,key) in curUserEducationList" :key="key" >
               <ion-item detail @click="onEducationEdit(record.educationID)" class="ion-item">
@@ -170,6 +172,7 @@
           </div>
         </div>
         <div v-show="curTabIndex==2.5">
+
           <div class="form-detail">
             <ion-label>毕业院校/培训机构</ion-label>
             <ion-text>{{ curUserEducationInfo.schoolName }}</ion-text>
@@ -190,6 +193,7 @@
           </div>
         </div>
         <div v-show="curTabIndex==3">
+          <br/>
           <div v-if="!loading" id="experienceList" >
             <div v-for="(record,key) in curUserExperienceList" :key="key" >
               <ion-item detail @click="onExperienceEdit(record.experienceID)" class="ion-item">
@@ -226,6 +230,7 @@
           </div>
         </div>
         <div v-show="curTabIndex==4">
+          <br/>
           <div v-if="!loading" id="jobHuntList" >
             <div v-for="(record,key) in curUserJobHuntList" :key="key" >
               <ion-item detail @click="onJobHuntEdit(record.jobHuntID)" class="ion-item">

+ 1 - 4
h5app/src/views/pages/jobhunt/list.vue

@@ -28,7 +28,7 @@
                       <h2>{{ record.name }}</h2>
                     </div>
                     <p>联系电话:{{record.userMobile}}</p>
-                    <p>年龄:{{record.age}}</p>
+                    <p>年龄:{{ record.age }}</p>
                     <div class="multi-title">
                       <p>性别:{{record.genderName}}</p>
                       <p>求职岗位数量:{{ record.jobHuntCount }}</p>
@@ -136,9 +136,6 @@ export default defineComponent({
         dataList.value = dataList.value.concat(data.list);
         total.value = data.total;
         (dataList.value as any[]).map(item=>{
-          if(item.identityNumber){
-            item.age = calculateAge(item.identityNumber)+"岁";
-          }
           getJobHuntListByJobUserID({pageIndex:1,pageSize:10000,jobUserID:item.jobUserID}).then(data=>{
             item.jobHuntCount = data.total;
           });

+ 1 - 1
h5app/src/views/pages/recommendMgt/detail.vue

@@ -134,7 +134,7 @@ export default defineComponent({
     }
 
     const onBack = () => {
-      router.push({path: './list', query: {}});
+      router.push({path: './list', query: {reload:1}});
     }
 
     onIonViewDidEnter (()=>{

+ 22 - 0
src/main/java/com/hz/employmentsite/mapper/PcLabelPostMapper.java

@@ -0,0 +1,22 @@
+package com.hz.employmentsite.mapper;
+
+import com.hz.employmentsite.model.PcLabelPost;
+import com.hz.employmentsite.model.PcLabelPostExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface PcLabelPostMapper {
+    long countByExample(PcLabelPostExample example);
+
+    int deleteByExample(PcLabelPostExample example);
+
+    int insert(PcLabelPost row);
+
+    int insertSelective(PcLabelPost row);
+
+    List<PcLabelPost> selectByExample(PcLabelPostExample example);
+
+    int updateByExampleSelective(@Param("row") PcLabelPost row, @Param("example") PcLabelPostExample example);
+
+    int updateByExample(@Param("row") PcLabelPost row, @Param("example") PcLabelPostExample example);
+}

+ 2 - 0
src/main/java/com/hz/employmentsite/mapper/cquery/LabelCQuery.java

@@ -12,4 +12,6 @@ public interface LabelCQuery {
     List<LabelVo> getUserLabelList(@Param("jobUserID") String jobUserID);
 
     List<LabelVo> getCompanyLabelList(@Param("companyID") String companyID);
+
+    List<LabelVo> getPostLabelList(@Param("postID") String postID);
 }

+ 23 - 0
src/main/java/com/hz/employmentsite/model/PcLabelPost.java

@@ -0,0 +1,23 @@
+package com.hz.employmentsite.model;
+
+public class PcLabelPost {
+    private String labelID;
+
+    private String postID;
+
+    public String getLabelID() {
+        return labelID;
+    }
+
+    public void setLabelID(String labelID) {
+        this.labelID = labelID == null ? null : labelID.trim();
+    }
+
+    public String getPostID() {
+        return postID;
+    }
+
+    public void setPostID(String postID) {
+        this.postID = postID == null ? null : postID.trim();
+    }
+}

+ 339 - 0
src/main/java/com/hz/employmentsite/model/PcLabelPostExample.java

@@ -0,0 +1,339 @@
+package com.hz.employmentsite.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class PcLabelPostExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public PcLabelPostExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andLabelIDIsNull() {
+            addCriterion("LabelID is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDIsNotNull() {
+            addCriterion("LabelID is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDEqualTo(String value) {
+            addCriterion("LabelID =", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDNotEqualTo(String value) {
+            addCriterion("LabelID <>", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDGreaterThan(String value) {
+            addCriterion("LabelID >", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDGreaterThanOrEqualTo(String value) {
+            addCriterion("LabelID >=", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDLessThan(String value) {
+            addCriterion("LabelID <", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDLessThanOrEqualTo(String value) {
+            addCriterion("LabelID <=", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDLike(String value) {
+            addCriterion("LabelID like", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDNotLike(String value) {
+            addCriterion("LabelID not like", value, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDIn(List<String> values) {
+            addCriterion("LabelID in", values, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDNotIn(List<String> values) {
+            addCriterion("LabelID not in", values, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDBetween(String value1, String value2) {
+            addCriterion("LabelID between", value1, value2, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andLabelIDNotBetween(String value1, String value2) {
+            addCriterion("LabelID not between", value1, value2, "labelID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDIsNull() {
+            addCriterion("PostID is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDIsNotNull() {
+            addCriterion("PostID is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDEqualTo(String value) {
+            addCriterion("PostID =", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDNotEqualTo(String value) {
+            addCriterion("PostID <>", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDGreaterThan(String value) {
+            addCriterion("PostID >", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDGreaterThanOrEqualTo(String value) {
+            addCriterion("PostID >=", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDLessThan(String value) {
+            addCriterion("PostID <", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDLessThanOrEqualTo(String value) {
+            addCriterion("PostID <=", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDLike(String value) {
+            addCriterion("PostID like", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDNotLike(String value) {
+            addCriterion("PostID not like", value, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDIn(List<String> values) {
+            addCriterion("PostID in", values, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDNotIn(List<String> values) {
+            addCriterion("PostID not in", values, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDBetween(String value1, String value2) {
+            addCriterion("PostID between", value1, value2, "postID");
+            return (Criteria) this;
+        }
+
+        public Criteria andPostIDNotBetween(String value1, String value2) {
+            addCriterion("PostID not between", value1, value2, "postID");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}

+ 13 - 3
src/main/java/com/hz/employmentsite/services/impl/companyService/CompanyServiceImpl.java

@@ -68,13 +68,13 @@ public class CompanyServiceImpl implements CompanyService {
                                        String regionCode, String streetCode,
                                        String createUserId, String workTime, String loginUserID,
                                        String siteID, Date startDate, Date endDate) {
-        PageHelper.startPage(pageIndex, pageSize);
         String curLoginUserSiteID = "";
         if (!stringUtils.IsNullOrEmpty(loginUserID)) {
             PcSiteUserExample siteUserExp = new PcSiteUserExample();
             siteUserExp.or().andUserIDEqualTo(loginUserID);
             curLoginUserSiteID = pcSiteUserMapper.selectByExample(siteUserExp).get(0).getSiteID();
         }
+        PageHelper.startPage(pageIndex, pageSize);
         List<CompanyVo> dataList = companyCQuery.getList(stringUtils.ListToInSql(companyIDList), companyName, companyCode, recordStatus, regionCode, streetCode, createUserId, workTime, curLoginUserSiteID, siteID, startDate, endDate);
         PageInfo<CompanyVo> result = new PageInfo(dataList);
         return result;
@@ -161,7 +161,7 @@ public class CompanyServiceImpl implements CompanyService {
             dbData.setBonus(data.getBonus());
             dbData.setIndustryID(data.getIndustryID());
             dbData.setEstateCategoryID(data.getEstateCategoryID());
-            dbData.setTagID(data.getTagID());
+//            dbData.setTagID(data.getTagID());
             result = pcCompanyMapper.insert(dbData);
 
         } else {
@@ -196,7 +196,7 @@ public class CompanyServiceImpl implements CompanyService {
             dbData.setBonus(data.getBonus());
             dbData.setIndustryID(data.getIndustryID());
             dbData.setEstateCategoryID(data.getEstateCategoryID());
-            dbData.setTagID(data.getTagID());
+//            dbData.setTagID(data.getTagID());
             result = pcCompanyMapper.updateByPrimaryKeySelective(dbData);
         }
 
@@ -426,6 +426,16 @@ public class CompanyServiceImpl implements CompanyService {
             companyVo.setIndustryID(pcIndustry.getIndustryId());
             companyVo.setIndustryName(pcIndustry.getIndustryName());
         }
+        if (pcFirm.getHomeRegion() != null && !pcFirm.getHomeRegion().isBlank()) {
+            // 匹配注册地所属县区
+            AreaCodeExample example = new AreaCodeExample();
+            AreaCodeExample.Criteria criteria = example.createCriteria();
+            criteria.andNameEqualTo(pcFirm.getHomeRegion());
+            List<AreaCode> areaCodes = areaCodeMapper.selectByExample(example);
+            if (!areaCodes.isEmpty()) {
+                companyVo.setSignInPoliticalArea(areaCodes.get(0).getCode());
+            }
+        }
 
         return companyVo;
     }

+ 57 - 29
src/main/java/com/hz/employmentsite/services/impl/companyService/PostServiceImpl.java

@@ -4,6 +4,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.hz.employmentsite.filter.exception.BaseException;
 import com.hz.employmentsite.mapper.*;
+import com.hz.employmentsite.mapper.cquery.LabelCQuery;
 import com.hz.employmentsite.mapper.cquery.PostCQuery;
 import com.hz.employmentsite.model.*;
 import com.hz.employmentsite.services.service.companyService.PostService;
@@ -14,10 +15,7 @@ import com.hz.employmentsite.vo.companyService.RecommendPostVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service("PostService")
@@ -50,13 +48,18 @@ public class PostServiceImpl implements PostService {
     @Autowired
     private DictionaryService dictionaryService;
 
+    @Autowired
+    private PcLabelPostMapper pcLabelPostMapper;
+
+    @Autowired
+    private LabelCQuery labelCQuery;
+
     @Override
     public PageInfo<PostVo> getList(Integer page, Integer rows, List<String> postIDList,
                                     String professionName, Integer minCount, Integer maxCount,
                                     String companyName, String recordStatus, String companyID,
                                     String loginUserID, String siteID, Date startDate,
                                     Date endDate) {
-        PageHelper.startPage(page, rows);
         List<String> curLoginUserSiteCompanyIDs = new ArrayList<>();
         if (!stringUtils.IsNullOrEmpty(loginUserID)) {
             PcSiteUserExample siteUserExp = new PcSiteUserExample();
@@ -69,6 +72,7 @@ public class PostServiceImpl implements PostService {
                 curLoginUserSiteCompanyIDs.add(curLoginUserSiteCompany.getCompanyID());
             }
         }
+        PageHelper.startPage(page, rows);
         List<PostVo> list = postCQuery.selectPostList(stringUtils.ListToInSql(postIDList), professionName, minCount, maxCount, companyName, recordStatus, companyID, stringUtils.ListToInSql(curLoginUserSiteCompanyIDs), siteID, startDate, endDate);
         PageInfo<PostVo> result = new PageInfo(list);
         return result;
@@ -76,7 +80,7 @@ public class PostServiceImpl implements PostService {
     }
 
     @Override
-    public PageInfo<RecommendPostVo> getCommendPostList(Integer page, Integer rows, String jobUserID){
+    public PageInfo<RecommendPostVo> getCommendPostList(Integer page, Integer rows, String jobUserID) {
         PageHelper.startPage(page, rows);
         List<RecommendPostVo> list = postCQuery.selectRecommendPostList(jobUserID);
         PageInfo<RecommendPostVo> result = new PageInfo(list);
@@ -87,7 +91,7 @@ public class PostServiceImpl implements PostService {
     public Integer saveCommendPost(RecommendPostVo data, String userId) {
         int result = 0;
         PcRecommend dbData = null;
-        if(data.recommendID !=null){
+        if (data.recommendID != null) {
             PcRecommendExample exp = new PcRecommendExample();
             PcRecommendExample.Criteria cro = exp.createCriteria();
             cro.andPostIDEqualTo(data.recommendID);
@@ -99,16 +103,16 @@ public class PostServiceImpl implements PostService {
             dbData.setRecommendID(UUID.randomUUID().toString());
             dbData.setJobuserID(data.jobUserID);
             dbData.setPostID(data.postID);
-            dbData.setIsRead(data.isRead==null?false:true);
-            dbData.setIsSendnotes(data.isSendNotes==null?false:true);
+            dbData.setIsRead(data.isRead == null ? false : true);
+            dbData.setIsSendnotes(data.isSendNotes == null ? false : true);
             dbData.setCreateTime(new Date());
             dbData.setCreateUserID(userId);
             result = pcRecommendMapper.insert(dbData);
         } else {
             dbData.setJobuserID(data.jobUserID);
             dbData.setPostID(data.postID);
-            dbData.setIsRead(data.isRead==null?false:true);
-            dbData.setIsSendnotes(data.isSendNotes==null?false:true);
+            dbData.setIsRead(data.isRead == null ? false : true);
+            dbData.setIsSendnotes(data.isSendNotes == null ? false : true);
             dbData.setModifyTime(new Date());
             dbData.setModifyUserID(userId);
             result = pcRecommendMapper.updateByPrimaryKeySelective(dbData);
@@ -166,7 +170,7 @@ public class PostServiceImpl implements PostService {
             dbData.setContactMobile(data.getContactMobile());
             dbData.setContactEmail(data.getContactEmail());
             dbData.setWorkNatureID(data.getWorkNatureID());
-            dbData.setTagID(data.getTagID());
+//            dbData.setTagID(data.getTagID());
             result = pcPostMapper.insert(dbData);
         } else {
             dbData.setProfessionID(data.getProfessionID());
@@ -203,9 +207,21 @@ public class PostServiceImpl implements PostService {
             dbData.setContactMobile(data.getContactMobile());
             dbData.setContactEmail(data.getContactEmail());
             dbData.setWorkNatureID(data.getWorkNatureID());
-            dbData.setTagID(data.getTagID());
+//            dbData.setTagID(data.getTagID());
             result = pcPostMapper.updateByPrimaryKeySelective(dbData);
         }
+
+        if (data.listLabel != null && data.listLabel.size() > 0) {
+            PcLabelPostExample labelEmp = new PcLabelPostExample();
+            labelEmp.or().andPostIDEqualTo(data.getPostID());
+            pcLabelPostMapper.deleteByExample(labelEmp);
+            data.listLabel.forEach(x -> {
+                PcLabelPost labelModel = new PcLabelPost();
+                labelModel.setPostID(data.getPostID());
+                labelModel.setLabelID(x.getLabelID());
+                pcLabelPostMapper.insert(labelModel);
+            });
+        }
         return result;
     }
 
@@ -216,18 +232,28 @@ public class PostServiceImpl implements PostService {
         PcPostExample postExp = new PcPostExample();
         postExp.or().andPostIDIn(ids);
         result = pcPostMapper.deleteByExample(postExp);
+        if (result > 0) {
+            PcLabelPostExample labelEmp = new PcLabelPostExample();
+            labelEmp.or().andPostIDIn(ids);
+            pcLabelPostMapper.deleteByExample(labelEmp);
+        }
         return result;
     }
 
     @Override
     public int deletePostAndRecommendMgt(String id) {
-        try{
+        try {
             PcRecommendMgtExample exp = new PcRecommendMgtExample();
             PcRecommendMgtExample.Criteria cro = exp.or();
             cro.andPostIDEqualTo(id);
             pcRecommendMgtMapper.deleteByExample(exp);
+
+            PcLabelPostExample labelEmp = new PcLabelPostExample();
+            labelEmp.or().andPostIDEqualTo(id);
+            pcLabelPostMapper.deleteByExample(labelEmp);
+
             return pcPostMapper.deleteByPrimaryKey(id);
-        }catch (Exception e){
+        } catch (Exception e) {
             e.printStackTrace();
             return 0;
         }
@@ -235,13 +261,15 @@ public class PostServiceImpl implements PostService {
 
     @Override
     public PostVo getDataById(String id) {
-        List<String> ids = new ArrayList<>();
         if (stringUtils.IsNullOrEmpty(id)) {
             return null;
-        }else{
-            ids.add(id);
         }
-        return postCQuery.selectPostList(stringUtils.ListToInSql(ids), null, null, null, null, null, null, null, null, null, null).stream().findFirst().orElse(null);
+
+        PostVo data = postCQuery.selectPostList(stringUtils.ListToInSql(Arrays.asList(id)), null, null, null, null, null, null, null, null, null, null).stream().findFirst().orElse(null);
+        if (data != null) {
+            data.listLabel = labelCQuery.getPostLabelList(id);
+        }
+        return data;
     }
 
     @Override
@@ -250,8 +278,8 @@ public class PostServiceImpl implements PostService {
         PcPostExample postExp = new PcPostExample();
         postExp.or().andCompanyIDEqualTo(companyId);
         var postList = pcPostMapper.selectByExample(postExp);
-        for(PcPost curPost : postList){
-            PostVo item= new PostVo();
+        for (PcPost curPost : postList) {
+            PostVo item = new PostVo();
             item.setPostID(curPost.getPostID());
             item.setProfessionID(curPost.getProfessionID());
             PcProfessionExample professionExp = new PcProfessionExample();
@@ -276,19 +304,19 @@ public class PostServiceImpl implements PostService {
         companyExp.or().andRecordStatusEqualTo(1);
         List<PcCompany> companyList = companyMapper.selectByExample(companyExp);
         //岗位信息
-        List<SysDictionaryItem> thirdLevelProfessionList =  new ArrayList<>();
+        List<SysDictionaryItem> thirdLevelProfessionList = new ArrayList<>();
         PcProfessionExample professionExp = new PcProfessionExample();
         professionExp.or().andParentProfessionIDEqualTo("").andStatusEqualTo(1);
         var firstLevelData = pcProfessionMapper.selectByExample(professionExp);
-        for(PcProfession curProfession : firstLevelData){
+        for (PcProfession curProfession : firstLevelData) {
             professionExp = new PcProfessionExample();
             professionExp.or().andParentProfessionIDEqualTo(curProfession.getProfessionID()).andStatusEqualTo(1);
             var secondLevelData = pcProfessionMapper.selectByExample(professionExp);
-            for(PcProfession curParentProfession: secondLevelData){
+            for (PcProfession curParentProfession : secondLevelData) {
                 professionExp = new PcProfessionExample();
                 professionExp.or().andParentProfessionIDEqualTo(curParentProfession.getProfessionID()).andStatusEqualTo(1);
                 var thirdLevelData = pcProfessionMapper.selectByExample(professionExp);
-                for(PcProfession curItem : thirdLevelData){
+                for (PcProfession curItem : thirdLevelData) {
                     SysDictionaryItem item = new SysDictionaryItem();
                     item.setCode(curItem.getProfessionID());
                     item.setCode(curItem.getProfessionName());
@@ -317,7 +345,7 @@ public class PostServiceImpl implements PostService {
             else {
                 item.professionID = thirdLevelProfessionList.stream().filter(it -> it.getName().equals(item.getProfessionName().trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getCode();
-                if (item.professionID == null||item.professionID=="")
+                if (item.professionID == null || item.professionID == "")
                     errorInfo += "岗位不存在!";
             }
 
@@ -331,7 +359,7 @@ public class PostServiceImpl implements PostService {
             if (stringUtils.IsNullOrEmpty(item.jobPlace))
                 errorInfo += "请填写招聘地点!";
 
-            if (stringUtils.IsNullOrEmpty(item.workYearStr)){
+            if (stringUtils.IsNullOrEmpty(item.workYearStr)) {
                 item.workYear = dicWorkYearDataList.stream().filter(it -> it.getName().equals(item.workYearStr.trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getValue();
                 if (item.workYear == null || item.workYear == 0)
@@ -339,9 +367,9 @@ public class PostServiceImpl implements PostService {
             }
 
             if (item.isTrailName.trim().equals("是")) item.isTrail = true;
-            else if (item.isTrailName.trim().equals("否"))item.isTrail = false;
+            else if (item.isTrailName.trim().equals("否")) item.isTrail = false;
 
-            if (!stringUtils.IsNullOrEmpty(item.cultureLevelName)){
+            if (!stringUtils.IsNullOrEmpty(item.cultureLevelName)) {
                 item.cultureRank = dicCultureDataList.stream().filter(it -> it.getName().equals(item.cultureLevelName.trim()))
                         .findFirst().orElse(new SysDictionaryItem()).getValue();
                 if (item.cultureRank == null || item.cultureRank == 0)

+ 1 - 1
src/main/java/com/hz/employmentsite/services/impl/jobUserManager/JobHuntServiceImpl.java

@@ -52,7 +52,6 @@ public class JobHuntServiceImpl implements JobHuntService {
                                        Integer minWorkYear, Integer maxWorkYear, Integer jobHuntTypeID, Integer jobUserTypeID,
                                        BigDecimal minSalary, BigDecimal maxSalary, Integer isAccomplish, String loginUserID,
                                        String siteID, String regionCode, Date startDate, Date endDate) {
-        PageHelper.startPage(pageIndex, pageSize);
         List<String> curLoginUserSiteJobUserIDs = new ArrayList<>();
         if (!stringUtils.IsNullOrEmpty(loginUserID)) {
             PcSiteUserExample siteUserExp = new PcSiteUserExample();
@@ -65,6 +64,7 @@ public class JobHuntServiceImpl implements JobHuntService {
                 curLoginUserSiteJobUserIDs.add(curLoginUserSiteJobUser.getJobuserID());
             }
         }
+        PageHelper.startPage(pageIndex, pageSize);
         List<JobHuntVo> list = jobhuntCQuery.getJobHuntList(stringUtils.ListToInSql(jobHuntIDList), jobUserID, jobUserName,
                 professionName, minWorkYear, maxWorkYear,
                 jobHuntTypeID, jobUserTypeID, minSalary,

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

@@ -53,13 +53,13 @@ public class JobUserServiceImpl implements JobUserService {
                                        String workTime, String loginUserID,
                                        String regionCode, Date startDate,
                                        Date endDate) {
-        PageHelper.startPage(pageIndex, pageSize);
         String curLoginUserSiteID = "";
         if (!stringUtils.IsNullOrEmpty(loginUserID)) {
             PcSiteUserExample siteUserExp = new PcSiteUserExample();
             siteUserExp.or().andUserIDEqualTo(loginUserID);
             curLoginUserSiteID = pcSiteUserMapper.selectByExample(siteUserExp).get(0).getSiteID();
         }
+        PageHelper.startPage(pageIndex, pageSize);
         List<JobUserVo> list = jobUserCQuery.selectJobUserList(stringUtils.ListToInSql(jobUserIDList), name, siteId, jobStatus, sexId, educationTypeId, emphasisTypeId, createUserId, workTime, curLoginUserSiteID, regionCode, startDate, endDate);
         // 身份证脱敏
         list.forEach(item -> {

+ 1 - 0
src/main/java/com/hz/employmentsite/vo/companyService/CompanyVo.java

@@ -85,6 +85,7 @@ public class CompanyVo {
     public Date establishmentTime;
     public Double registeredCapital;
     public String signInPoliticalArea;
+    public String signInPoliticalAreaName;
 
     public String industryID;
     public String industryName;

+ 5 - 0
src/main/java/com/hz/employmentsite/vo/companyService/PostVo.java

@@ -4,10 +4,13 @@ import com.hz.employmentsite.util.datarange.annotations.InstitutionID;
 import com.hz.employmentsite.util.datarange.annotations.PostID;
 import com.hz.employmentsite.util.datarange.annotations.RegionID;
 import com.hz.employmentsite.util.datarange.annotations.SiteID;
+import com.hz.employmentsite.vo.baseSettings.LabelVo;
 import lombok.Data;
+import org.apache.catalina.LifecycleState;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class PostVo {
@@ -124,4 +127,6 @@ public class PostVo {
     public Integer tagID;
 
     public String loginUserID;
+
+    public List<LabelVo> listLabel;
 }

+ 1 - 1
src/main/resources/generatorConfig.xml

@@ -102,7 +102,7 @@
         <table schema="" tableName="pc_recommend_mgt"><property name="useActualColumnNames" value="true"/></table>
     <table schema="" tableName="pc_label"><property name="useActualColumnNames" value="true"/></table>
         <table schema="" tableName="pc_label_jobuser"><property name="useActualColumnNames" value="true"/></table>
-
+        <table schema="" tableName="pc_label_post"><property name="useActualColumnNames" value="true"/></table>
         <table schema="" tableName="pc_label_company"><property name="useActualColumnNames" value="true"/></table>
         -->
 <!--        <table schema="" tableName="pc_jobuser"><property name="useActualColumnNames" value="true"/></table>-->

+ 140 - 0
src/main/resources/mapping/PcLabelPostMapper.xml

@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.hz.employmentsite.mapper.PcLabelPostMapper">
+  <resultMap id="BaseResultMap" type="com.hz.employmentsite.model.PcLabelPost">
+    <result column="LabelID" jdbcType="VARCHAR" property="labelID" />
+    <result column="PostID" jdbcType="VARCHAR" property="postID" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    LabelID, PostID
+  </sql>
+  <select id="selectByExample" parameterType="com.hz.employmentsite.model.PcLabelPostExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from pc_label_post
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <delete id="deleteByExample" parameterType="com.hz.employmentsite.model.PcLabelPostExample">
+    delete from pc_label_post
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.hz.employmentsite.model.PcLabelPost">
+    insert into pc_label_post (LabelID, PostID)
+    values (#{labelID,jdbcType=VARCHAR}, #{postID,jdbcType=VARCHAR})
+  </insert>
+  <insert id="insertSelective" parameterType="com.hz.employmentsite.model.PcLabelPost">
+    insert into pc_label_post
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="labelID != null">
+        LabelID,
+      </if>
+      <if test="postID != null">
+        PostID,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="labelID != null">
+        #{labelID,jdbcType=VARCHAR},
+      </if>
+      <if test="postID != null">
+        #{postID,jdbcType=VARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.hz.employmentsite.model.PcLabelPostExample" resultType="java.lang.Long">
+    select count(*) from pc_label_post
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update pc_label_post
+    <set>
+      <if test="row.labelID != null">
+        LabelID = #{row.labelID,jdbcType=VARCHAR},
+      </if>
+      <if test="row.postID != null">
+        PostID = #{row.postID,jdbcType=VARCHAR},
+      </if>
+    </set>
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update pc_label_post
+    set LabelID = #{row.labelID,jdbcType=VARCHAR},
+      PostID = #{row.postID,jdbcType=VARCHAR}
+    <if test="example != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+</mapper>

+ 3 - 1
src/main/resources/mapping/cquery/CompanyCQuery.xml

@@ -2,7 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.hz.employmentsite.mapper.cquery.CompanyCQuery">
     <select id="getList" resultType="com.hz.employmentsite.vo.companyService.CompanyVo">
-        select company.*,city.name as regionName,area.name as streetName,sys_cmodel.Name as companyModelType,
+        select company.*,city.name as regionName,area.name as streetName,sparea.name as
+        signInPoliticalAreaName,sys_cmodel.Name as companyModelType,
         (select count(*) from pc_post where CompanyID=company.CompanyID) as postCount,u.`Name` as createUserName
         ,inSites.InstitutionID as institutionID,site.SiteName,com_status.Name as recordStatusName,
         industry.industryName as industryName, com_estate.Name as estateCategoryName,com_type.Name as companyTypeName,
@@ -24,6 +25,7 @@
         left join pc_industry industry on company.IndustryID = industry.industryId
         left join area_code city on company.RegionCode = city.code
         left join area_code area on company.StreetCode = area.code
+        left join area_code sparea on company.SignInPoliticalArea = sparea.code
         left join pc_site site on company.siteID = site.siteID
         left join pc_site_institution inSites on site.SiteID = inSites.SiteID
         left join pc_institution institution on inSites.institutionID = institution.InstitutionID

+ 7 - 0
src/main/resources/mapping/cquery/LabelCQuery.xml

@@ -38,4 +38,11 @@
         where CompanyID = #{companyID}
         order by b.SortNo
     </select>
+    <select id="getPostLabelList" resultType="com.hz.employmentsite.vo.baseSettings.LabelVo">
+        select b.LabelID,b.LabelName,b.LabelType,b.BigType,b.SortNo
+        from pc_label b
+        left join pc_label_post a on b.LabelID = a.LabelID
+        where PostID = #{postID}
+        order by b.SortNo
+    </select>
 </mapper>

+ 2 - 1
vue/src/views/baseSettings/institution/edit.vue

@@ -300,11 +300,12 @@ export default defineComponent({
     const mobileValidate = ()=>{
       isAllowCommit.value = true;
       const mobileReg = /^1[3|4|5|6|7|8|9]\d{9}$/;
+      const landlineReg = /[0-9-()()]{7,18}/;
       if(!mobileReg.test(formData.dataModel.frMobile)){
         message.error("输入的法人电话有误!");
         isAllowCommit.value = false;
       }
-      if(!mobileReg.test(formData.dataModel.fzrMobile)){
+      if (!mobileReg.test(formData.dataModel.fzrMobile) && !landlineReg.test(formData.dataModel.fzrMobile)) {
         message.error("输入的负责人电话有误!");
         isAllowCommit.value = false;
       }

+ 2 - 2
vue/src/views/companyService/company/detail.vue

@@ -16,7 +16,7 @@
         {{ companyInfo.establishmentTime ? dayjs(companyInfo.establishmentTime).format('YYYY-MM-DD') : '' }}
       </a-descriptions-item>
       <a-descriptions-item label="注册资本">{{ companyInfo.registeredCapital }}万元</a-descriptions-item>
-      <a-descriptions-item label="注册地行政区划">{{ companyInfo.signInPoliticalArea }}</a-descriptions-item>
+      <a-descriptions-item label="注册地行政区划">{{ companyInfo.signInPoliticalAreaName }}</a-descriptions-item>
       <a-descriptions-item label="所属行业">{{ companyInfo.industryName }}</a-descriptions-item>
       <a-descriptions-item label="所属产业分类">{{ companyInfo.estateCategoryName }}</a-descriptions-item>
       <a-descriptions-item label="企业标签">{{ companyInfo.tagName }}</a-descriptions-item>
@@ -89,7 +89,7 @@ const companyInfo = reactive({
   companyDesc: "",
   establishmentTime: "",
   registeredCapital: "",
-  signInPoliticalArea: "",
+  signInPoliticalAreaName: "",
   industryName: "",
   estateCategoryName: "",
   tagName: "",

+ 12 - 3
vue/src/views/companyService/company/edit.vue

@@ -151,7 +151,13 @@
             :label-col="{ span: 8 }"
             name="signInPoliticalArea"
           >
-            <a-input v-model:value="dataModel.signInPoliticalArea"></a-input>
+            <a-select
+              ref="select"
+              v-model:value="dataModel.signInPoliticalArea"
+              :options="regionList"
+              :field-names="{ label: 'name', value: 'code' }"
+            >
+            </a-select>
           </a-form-item>
         </a-col>
         <a-col :span="8">
@@ -655,10 +661,13 @@ export default defineComponent(
             formState.dataModel = result;
             // console.log("curDataModel",formState.dataModel);
             showPicker.value = formState.dataModel.validDate == '2099-12-31T00:00:00.000+08:00' ? '1' : '2';
-            if (showPicker.value === '1')
+            if (showPicker.value === '1') {
               showDateTime.value = dayjs(new Date().toLocaleDateString().replaceAll("/", "-"));
-            else
+            } else {
               showDateTime.value = formState.dataModel.validDate;
+            }
+            // 初始化街道数据
+            getStreetList()
           })
         });
 

+ 6 - 0
vue/src/views/companyService/post/detail.vue

@@ -38,6 +38,11 @@
       </a-descriptions-item>
       <a-descriptions-item label="工作年限要求">{{ workYear }}</a-descriptions-item>
       <a-descriptions-item label="学历要求">{{ postInfo.cultureLevelName }}</a-descriptions-item>
+      <a-descriptions-item :span="3" label="标签">
+        <a-button style="margin: 0px 5px 5px 0px;color: black;border: 1px solid rgb(217, 217, 217);" v-for="item in postInfo.listLabel">
+          {{ item.labelName }}
+        </a-button>
+      </a-descriptions-item>
       <a-descriptions-item :span="3" label="福利待遇">{{ postInfo.welfare }}</a-descriptions-item>
       <a-descriptions-item :span="3" label="其他要求">{{ postInfo.postDesc }}</a-descriptions-item>
     </a-descriptions>
@@ -66,6 +71,7 @@ const postInfo = reactive({
   trailMaxSalary: "",
   workYear: "",
   cultureLevelName: "",
+  listLabel: null,
   welfare: "",
   postDesc: "",
   contactName: "",

+ 26 - 2
vue/src/views/companyService/post/edit.vue

@@ -208,6 +208,18 @@
           </a-form-item>
         </a-col>
       </a-row>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <a-form-item label="标签" :label-col="{ span: 2 }" name="listLabel" >
+            <a-button style="margin: 0px 5px 5px 0px;color: black;border: 1px solid rgb(217, 217, 217);" v-for="item in dataModel.listLabel">
+              {{ item.labelName }}
+            </a-button>
+            <a-button @click="onSelectModel">
+              <plus-circle-outlined/>选择标签
+            </a-button>
+          </a-form-item>
+        </a-col>
+      </a-row>
       <a-row justify="start">
         <a-col flex="1330px">
           <a-form-item :label-col="{span:2}" name="welfare" label="福利待遇">
@@ -230,8 +242,8 @@
           </a-form-item>
         </a-col>
       </a-row>
-
     </a-form>
+    <select-label ref="refSelectModel" :list-label="dataModel.listLabel" :big-type="3" @selectLabelChecks="selectLabelChecks"></select-label>
   </div>
 </template>
 
@@ -246,6 +258,7 @@ import BUploadFile from '@/components/file/uploadFile.vue';
 import {get} from '@/api/common';
 import {getInfo} from "@/api/account";
 import {getCompanyById} from "@/api/companyService/company";
+import SelectLabel from "@/views/baseSettings/label/selectLabel.vue";
 
 interface postModel {
   dataModel: any;
@@ -255,7 +268,7 @@ interface postModel {
 export default defineComponent(
   {
     name: 'PostEdit',
-    components: {BUploadFile},
+    components: {BUploadFile,SelectLabel},
     setup() {
       const postCompany = reactive<postModel>({dataModel:{}});
       const router = useRouter();
@@ -271,6 +284,7 @@ export default defineComponent(
       const postStatusList = [{name: '启用', value: 1}, {name: '停用', value: 0}];
       const trialStatusList = [{name: '是', value: true}, {name: '否', value: false}];
       const firstProfessionList = ref<CascaderProps['options']>([]);
+      const refSelectModel = ref();
 
       const getFirstProfessionList = () => {
         get("profession/getFirstProfessionList", null).then(data=>{
@@ -389,6 +403,13 @@ export default defineComponent(
 
       }
 
+      const onSelectModel = ()=>{
+        refSelectModel.value.show();
+      }
+
+      const selectLabelChecks = (list: any)=>{
+        postCompany.dataModel.listLabel = list;
+      }
 
       const loadData = (id: any) => {
         isEdit.value = id != null;
@@ -423,6 +444,9 @@ export default defineComponent(
         onClose,
         onFinish,
         loadLevelProfessionList,
+        onSelectModel,
+        selectLabelChecks,
+        refSelectModel,
         firstProfessionList,
         companyList,
         postStatusList,

+ 2 - 2
vue/src/views/jobUserManager/jobuser/vitae.vue

@@ -20,7 +20,7 @@
             {{ jobUserInfo.age }}岁
           </span>
           <span>
-            {{ jobUserInfo.nation }}
+            {{ jobUserInfo.nationName }}
           </span>
         </div>
         <!-- 政治面貌,学历,手机 -->
@@ -122,7 +122,7 @@ const jobUserInfo = reactive({
   name: "",
   genderName: "",
   age: null,
-  nation: "",
+  nationName: "",
   politicsStatusName: "",
   cultureName: "",
   userMobile: "",