Browse Source

求职人员导入重复判断调整,岗位导入招聘数量数据验证调整

liao-sea 8 months ago
parent
commit
54a89c7ef6

+ 20 - 1
src/main/java/com/hz/employmentsite/services/impl/companyService/PostServiceImpl.java

@@ -382,6 +382,18 @@ public class PostServiceImpl implements PostService {
         return resultList;
     }
 
+    public static boolean isPositiveInteger(String str) {
+        try {
+            // 尝试将字符串转换为整数
+            int num = Integer.parseInt(str);
+            // 如果转换后的整数小于等于0,则为false
+            return num > 0;
+        } catch (NumberFormatException e) {
+            // 字符串无法转换为整数,则为false
+            return false;
+        }
+    }
+
     @Override
     public List<PostVo> importPost(List<PostVo> dataList, String userID) {
         if (dataList.size() <= 0)
@@ -504,8 +516,15 @@ public class PostServiceImpl implements PostService {
                 }
             }
 
-            if (stringUtils.IsNullOrEmpty(String.valueOf(item.recruitCount)) || item.recruitCount == null)
+            if (stringUtils.IsNullOrEmpty(String.valueOf(item.recruitCountStr)))
                 errorInfo += "请填写招聘人数!";
+            else{
+                if(!isPositiveInteger(item.recruitCountStr)){
+                    errorInfo += "招聘人数必须为一个正整数!";
+                }else{
+                    item.setRecruitCount(Integer.valueOf(item.recruitCountStr));
+                }
+            }
 
             if (stringUtils.IsNullOrEmpty(String.valueOf(item.startTime)) || item.startTime == null)
                 errorInfo += "请填写开始日期!";

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

@@ -263,138 +263,9 @@ public class JobUserServiceImpl implements JobUserService {
 
     @Override
     public int save(JobUserVo data, String userId) {
-        int result = 0;
-
         PcJobuser dbData = pcJobuserMapper.selectByPrimaryKey(data.getJobUserID());
-        PcJobuserExample emp = new PcJobuserExample();
-        PcJobuserExample.Criteria cir = emp.or();
-        //验证身份证是否已经录入
-        if (dbData != null) {
-            cir.andJobuserIDNotEqualTo(data.getJobUserID());
-        }
-        cir.andIdentityNumberEqualTo(data.getIdentityNumber());
-        if (pcJobuserMapper.selectByExample(emp).size() > 0) {
-            throw new BaseException("500", "该身份证号已绑定其他人员");
-        }
-
-        //验证联系电话是否已经录入
-        cir = emp.or();
-        if (dbData != null) {
-            cir.andJobuserIDNotEqualTo(data.getJobUserID());
-        }
-        cir.andUserMobileEqualTo(data.getUserMobile());
-        if (pcJobuserMapper.selectByExample(emp).size() > 0) {
-            throw new BaseException("500", "该联系电话已绑定其他人员");
-        }
-
-        // 验证社保卡是否绑定
-        if (data.getSocialSecurityCard() != null && !data.getSocialSecurityCard().isBlank()) {
-            cir = emp.or();
-            if (dbData != null) {
-                cir.andJobuserIDNotEqualTo(data.getJobUserID());
-            }
-            cir.andSocialSecurityCardEqualTo(data.getSocialSecurityCard());
-            if (pcJobuserMapper.selectByExample(emp).size() > 0) {
-                throw new BaseException("500", "该社保卡已绑定其他人员");
-            }
-        }
-
-        if (dbData == null) {
-            dbData = new PcJobuser();
-            dbData.setJobuserID(data.getJobUserID());
-            dbData.setSiteID(data.getSiteID());
-            dbData.setIdentityNumber(data.getIdentityNumber());
-            dbData.setName(data.getName());
-            dbData.setPyName(data.getPyName());
-            dbData.setEngName(data.getEngName());
-            dbData.setJobStatusID(data.getJobStatusID());
-            dbData.setSex(data.getSex());
-            dbData.setNation(data.getNation());
-            dbData.setPoliticsStatusID(data.getPoliticsStatusID());
-            dbData.setBirthplace(data.getBirthPlace());
-            dbData.setBirthDay(data.getBirthDay());
-            dbData.setFamilyNatureID(data.getFamilyNatureID());
-            dbData.setFamilyAddress(data.getFamilyAddress());
-            dbData.setCultureRank(data.getCultureRank());
-            dbData.setHealthID(data.getHealthID());
-            dbData.setHeight(data.getHeight());
-            dbData.setBloodTypeID(data.getBloodTypeID());
-            dbData.setVision(data.getVision());
-            dbData.setWeight(data.getWeight());
-            dbData.setMaritalStatusID(data.getMaritalStatusID());
-            dbData.setProvinceCode(data.getProvinceCode());
-            dbData.setRegionCode(data.getRegionCode());
-            dbData.setStreetCode(data.getStreetCode());
-            dbData.setUserName(data.getUserName());
-            dbData.setUserMobile(data.getUserMobile());
-            dbData.setAddress(data.getAddress());
-            dbData.setPostalCode(data.getPostalCode());
-            dbData.setEmail(data.getEmail());
-            dbData.setHobby(data.getHobby());
-            dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
-            dbData.setPersonalSkills(data.getPersonalSkills());
-            dbData.setSocialSecurityCard(data.getSocialSecurityCard());
-            dbData.setFinishSchool(data.getFinishSchool());
-            dbData.setFinishDate(data.getFinishDate());
-            dbData.setProfession(data.getProfession());
-            dbData.setNativePlace(data.getNativePlace());
-            dbData.setIsFullTime(data.getIsFullTime());
-            dbData.setOccupationalCategory(data.getOccupationalCategory());
-            dbData.setOccupationalLevel(data.getOccupationalLevel());
-            dbData.setCreateTime(new Date());
-            dbData.setCreateUserID(userId);
-            dbData.setLongitude(data.longitude);
-            dbData.setLatitude(data.latitude);
-            result = pcJobuserMapper.insert(dbData);
-
-        } else {
-            dbData.setJobuserID(data.getJobUserID());
-            dbData.setSiteID(data.getSiteID());
-            dbData.setIdentityNumber(data.getIdentityNumber());
-            dbData.setName(data.getName());
-            dbData.setPyName(data.getPyName());
-            dbData.setEngName(data.getEngName());
-            dbData.setSex(data.getSex());
-            dbData.setJobStatusID(data.getJobStatusID());
-            dbData.setNation(data.getNation());
-            dbData.setPoliticsStatusID(data.getPoliticsStatusID());
-            dbData.setBirthplace(data.getBirthPlace());
-            dbData.setBirthDay(data.getBirthDay());
-            dbData.setFamilyNatureID(data.getFamilyNatureID());
-            dbData.setFamilyAddress(data.getFamilyAddress());
-            dbData.setCultureRank(data.getCultureRank());
-            dbData.setHealthID(data.getHealthID());
-            dbData.setHeight(data.getHeight());
-            dbData.setBloodTypeID(data.getBloodTypeID());
-            dbData.setVision(data.getVision());
-            dbData.setWeight(data.getWeight());
-            dbData.setMaritalStatusID(data.getMaritalStatusID());
-            dbData.setProvinceCode(data.getProvinceCode());
-            dbData.setRegionCode(data.getRegionCode());
-            dbData.setStreetCode(data.getStreetCode());
-            dbData.setUserName(data.getUserName());
-            dbData.setUserMobile(data.getUserMobile());
-            dbData.setAddress(data.getAddress());
-            dbData.setPostalCode(data.getPostalCode());
-            dbData.setEmail(data.getEmail());
-            dbData.setHobby(data.getHobby());
-            dbData.setKeyPersonTypeID(data.getKeyPersonTypeID());
-            dbData.setPersonalSkills(data.getPersonalSkills());
-            dbData.setSocialSecurityCard(data.getSocialSecurityCard());
-            dbData.setFinishSchool(data.getFinishSchool());
-            dbData.setFinishDate(data.getFinishDate());
-            dbData.setProfession(data.getProfession());
-            dbData.setNativePlace(data.getNativePlace());
-            dbData.setIsFullTime(data.getIsFullTime());
-            dbData.setOccupationalCategory(data.getOccupationalCategory());
-            dbData.setOccupationalLevel(data.getOccupationalLevel());
-            dbData.setModifyTime(new Date());
-            dbData.setModifyUserID(userId);
-            dbData.setLongitude(data.getLongitude());
-            dbData.setLatitude(data.getLatitude());
-            result = pcJobuserMapper.updateByPrimaryKey(dbData);
-        }
-        if (result >= 1) {
+        int result = baseInfoSave(data,userId);
+        if( result >= 1) {
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
             String jobUserId = dbData.getJobuserID();
             List<String> ids = new ArrayList<>();
@@ -435,19 +306,6 @@ public class JobUserServiceImpl implements JobUserService {
                 pcExperienceMapper.insert(experience);
             });
         }
-
-        PcLabelJobuserExample labelEmp = new PcLabelJobuserExample();
-        labelEmp.or().andJobuserIDEqualTo(data.getJobUserID());
-        pcLabelJobuserMapper.deleteByExample(labelEmp);
-        if(data.listLabel!=null && data.listLabel.size()>0){
-            data.listLabel.forEach(x->{
-                PcLabelJobuser labelModel = new PcLabelJobuser();
-                labelModel.setJobuserID(data.getJobUserID());
-                labelModel.setLabelID(x.getLabelID());
-                pcLabelJobuserMapper.insert(labelModel);
-            });
-        }
-
         return result;
     }
 
@@ -455,11 +313,11 @@ public class JobUserServiceImpl implements JobUserService {
 
         var result = 0;
         PcJobuserExample jobUserExp1 = new PcJobuserExample();
-        jobUserExp1.or().andIdentityNumberEqualTo(data.getIdentityNumber()).andJobuserIDNotEqualTo(data.getJobUserID());
+        jobUserExp1.or().andIdentityNumberEqualTo(desUtils.encoderText(data.getIdentityNumber())).andJobuserIDNotEqualTo(data.getJobUserID());
         var ifRepeatIdentity = pcJobuserMapper.selectByExample(jobUserExp1).size()>0;
 
         PcJobuserExample jobUserExp2= new PcJobuserExample();
-        jobUserExp2.or().andUserMobileEqualTo(data.getUserMobile()).andJobuserIDNotEqualTo(data.getJobUserID());
+        jobUserExp2.or().andUserMobileEqualTo(desUtils.encoderText(data.getUserMobile())).andJobuserIDNotEqualTo(data.getJobUserID());
         var ifRepeatMobile = pcJobuserMapper.selectByExample(jobUserExp2).size()>0;
 
         if(!stringUtils.IsNullOrEmpty(data.getSocialSecurityCard())){
@@ -479,27 +337,39 @@ public class JobUserServiceImpl implements JobUserService {
     @Override
     public int baseInfoSave(JobUserVo data, String userId) {
         int result = 0;
-        var repeatResult = ifHadRepeatData(data);
-        switch (repeatResult){
-            default:
-            case 0:
-                break;
-            case 1:
-                throw new  BaseException("1004","身份证号码已存在!");
-            case 2:
-                throw new  BaseException("1004","联系电话已存在!");
-            case 3:
-                throw new  BaseException("1004","身份证号码、联系电话重复!");
-            case 4:
-                throw new  BaseException("1004","社保卡已绑定其他求职人员!");
-            case 5:
-                throw new  BaseException("1004","身份证号码、社保卡号重复!");
-            case 6:
-                throw new  BaseException("1004","联系电话、社保卡号重复!");
-            case 7:
-                throw new  BaseException("1004","身份证号码、联系电话、社保卡号重复!");
-        }
         PcJobuser dbData = pcJobuserMapper.selectByPrimaryKey(data.getJobUserID());
+        PcJobuserExample emp = new PcJobuserExample();
+        PcJobuserExample.Criteria cir = emp.or();
+        //验证身份证是否已经录入
+        if (dbData != null) {
+            cir.andJobuserIDNotEqualTo(data.getJobUserID());
+        }
+        cir.andIdentityNumberEqualTo(data.getIdentityNumber());
+        if (pcJobuserMapper.selectByExample(emp).size() > 0) {
+            throw new BaseException("500", "该身份证号已绑定其他人员");
+        }
+
+        //验证联系电话是否已经录入
+        cir = emp.or();
+        if (dbData != null) {
+            cir.andJobuserIDNotEqualTo(data.getJobUserID());
+        }
+        cir.andUserMobileEqualTo(data.getUserMobile());
+        if (pcJobuserMapper.selectByExample(emp).size() > 0) {
+            throw new BaseException("500", "该联系电话已绑定其他人员");
+        }
+
+        // 验证社保卡是否绑定
+        if (data.getSocialSecurityCard() != null && !data.getSocialSecurityCard().isBlank()) {
+            cir = emp.or();
+            if (dbData != null) {
+                cir.andJobuserIDNotEqualTo(data.getJobUserID());
+            }
+            cir.andSocialSecurityCardEqualTo(data.getSocialSecurityCard());
+            if (pcJobuserMapper.selectByExample(emp).size() > 0) {
+                throw new BaseException("500", "该社保卡已绑定其他人员");
+            }
+        }
         if (dbData == null) {
             dbData = new PcJobuser();
             dbData.setJobuserID(data.getJobUserID());
@@ -549,7 +419,8 @@ public class JobUserServiceImpl implements JobUserService {
             dbData.setCreateUserID(userId);
             result = pcJobuserMapper.insert(dbData);
 
-        } else {
+        }
+        else {
             dbData.setJobuserID(data.getJobUserID());
             dbData.setSiteID(data.getSiteID());
             dbData.setIdentityNumber(data.getIdentityNumber());
@@ -761,7 +632,9 @@ public class JobUserServiceImpl implements JobUserService {
                         }
                     }
                     //文本加密
-                    item.setIdentityNumber(desUtils.encoderText(item.getIdentityNumber()));
+                    if(repeatResult!=1&&repeatResult!=3&&repeatResult!=5&&repeatResult!=7) {
+                        item.setIdentityNumber(desUtils.encoderText(item.getIdentityNumber()));
+                    }
                 }else{
                     errorInfo += "身份证号码不合法!";
                 }
@@ -823,7 +696,9 @@ public class JobUserServiceImpl implements JobUserService {
                     errorInfo += "联系电话不合法!";
                 }else{
                     //文本加密
-                    item.setUserMobile(desUtils.encoderText(item.getUserMobile()));
+                    if(repeatResult!=2&&repeatResult!=3&&repeatResult!=6&&repeatResult!=7){
+                        item.setUserMobile(desUtils.encoderText(item.getUserMobile()));
+                    }
                 }
             }
 

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

@@ -34,6 +34,7 @@ public class PostVo {
     public String workCategoryName;
 
     public Integer recruitCount;
+    public String recruitCountStr;
 
     public Integer isRead;
 

BIN
src/main/resources/static/doc/template/企业信息导入模板.xlsx


BIN
src/main/resources/static/doc/template/岗位信息导入模板.xlsx


BIN
src/main/resources/static/doc/template/求职人员导入模板.xlsx


BIN
src/main/resources/static/doc/template/求职意向导入模板.xlsx


+ 1 - 1
vue/src/views/companyService/company/edit.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="card-edit">
     <a-form ref="formRef" :model="dataModel" autocomplete="off" @finish="onFinish">
-      <a-divider orientation="left">基础信息</a-divider>
+      <a-divider orientation="left">企业基础信息</a-divider>
       <a-row :gutter="24">
         <a-col :span="8">
           <a-form-item

+ 25 - 14
vue/src/views/companyService/post/edit.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="card-edit">
     <a-form :model="dataModel" autocomplete="off" @finish="onFinish">
-      <h1>岗位基础信息</h1>
+      <a-divider orientation="left">岗位基础信息</a-divider>
       <a-row justify="start">
         <a-col flex="800px">
           <a-form-item label="企业名称" :label-col="{ span: 3}"
@@ -114,7 +114,18 @@
         <a-col flex="400px">
         </a-col>
       </a-row>
-      <h1>岗位其他信息</h1>
+      <a-divider orientation="left">岗位标签</a-divider>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <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-col>
+      </a-row>
+      <a-divider orientation="left">其他信息</a-divider>
       <a-row justify="start">
         <a-col flex="300px" >
           <a-form-item
@@ -225,18 +236,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 :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 :gutter="24">
         <a-col :span="24">
           <a-form-item

+ 3 - 3
vue/src/views/companyService/post/index.vue

@@ -194,7 +194,7 @@ export default defineComponent({
         {cnName: '企业名称', enName: 'companyName', width: 100},
         {cnName: '岗位名称', enName: 'professionName', width: 100},
         {cnName: '工种名称', enName: 'workCategoryName', width: 100},
-        {cnName: '招聘人数', enName: 'recruitCount', width: 100},
+        {cnName: '招聘人数', enName: 'recruitCountStr', width: 100},
         {cnName: '开始日期', enName: 'startTime', width: 100},
         {cnName: '结束日期', enName: 'endTime', width: 100},
         {cnName: '工作地点', enName: 'jobPlace', width: 100},
@@ -203,12 +203,12 @@ export default defineComponent({
         {cnName: '联系人邮箱', enName: 'contactEmail', width: 100},
         {cnName: '工作年限', enName: 'workYearName', width: 100},
         {cnName: '学历要求', enName: 'cultureLevelName', width: 100},
-        {cnName: '岗位最高月薪', enName: 'maxSalary', width: 100},
         {cnName: '岗位最低月薪', enName: 'minSalary', width: 100},
+        {cnName: '岗位最高月薪', enName: 'maxSalary', width: 100},
         {cnName: '是否有试用期', enName: 'isTrailName', width: 100},
         {cnName: '试用期时长(月)', enName: 'trailMonths', width: 100},
-        {cnName: '试用期最高薪酬', enName: 'trailMaxSalary', width: 100},
         {cnName: '试用期最低薪酬', enName: 'trailMinSalary', width: 100},
+        {cnName: '试用期最高薪酬', enName: 'trailMaxSalary', width: 100},
         {cnName: '福利待遇', enName: 'welfare', width: 100},
         {cnName: '其它要求', enName: 'postDesc', width: 100}
       ],

+ 13 - 13
vue/src/views/jobUserManager/jobuser/edit.vue

@@ -119,7 +119,7 @@
         </a-col>
       </a-row>
 
-      <a-divider orientation="left">其信息</a-divider>
+      <a-divider orientation="left">其信息</a-divider>
       <a-row :gutter="24">
         <a-col :span="8">
           <a-form-item label="社会保障卡号" :label-col="{ span: 6 }" name="socialSecurityCard">
@@ -365,18 +365,7 @@
         </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 :gutter="24">
         <a-col :span="24">
@@ -417,6 +406,17 @@
 <!--        </a-col>-->
 <!--      </a-row>-->
 
+      <a-divider orientation="left">求职人员标签</a-divider>
+      <a-row :gutter="24">
+        <a-col :span="24">
+          <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-col>
+      </a-row>
       <a-row>
         <a-col :span="24" style="text-align: right; margin-top: 20px; margin-right: 20px">
           <Space>