Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	common/src/main/resources/mapper/job/Recruitment.xml
#	web/src/main/java/com/jpsoft/employment/modules/job/controller/RecruitmentController.java
jz.kai 3 lat temu
rodzic
commit
5d9cdbefff

+ 52 - 0
common/src/main/java/com/jpsoft/employment/modules/job/dto/TalentPoolDTO.java

@@ -0,0 +1,52 @@
+package com.jpsoft.employment.modules.job.dto;
+
+import com.jpsoft.employment.modules.job.entity.ResumeWorkExperience;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TalentPoolDTO {
+
+    @ApiModelProperty(value = "ID")
+    private String Id;
+
+    @ApiModelProperty(value = "头像")
+    private String headImageUrl;
+
+    @ApiModelProperty(value = "真实姓名")
+    private String realName;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "学历")
+    private String educationName;
+
+    @ApiModelProperty(value = "工作经验")
+    private String workExpName;
+
+    @ApiModelProperty(value = "期望职位")
+    private String positionCategoryName;
+
+    @ApiModelProperty(value = "期望薪资")
+    private String dreamMoneyName;
+
+    @ApiModelProperty(value = "工作状态")
+    private String jobStatus;
+
+    @ApiModelProperty(value = "期望工作地点")
+    private String dreamAdd;
+
+    @ApiModelProperty(value = "个人介绍")
+    private String introduction;
+
+    @ApiModelProperty(value = "工作经历")
+    private List<ResumeWorkExperience> resumeWorkExperienceList;
+
+
+}

+ 3 - 0
common/src/main/java/com/jpsoft/employment/modules/job/entity/JobUser.java

@@ -79,4 +79,7 @@ public class JobUser {
 	@ApiModelProperty(value = "身份证照片")
 	private String idCardUrl;
 
+	@ApiModelProperty(value = "工作状态")
+	private String jobStatus;
+
 }

+ 2 - 0
common/src/main/java/com/jpsoft/employment/modules/job/entity/Recruitment.java

@@ -88,4 +88,6 @@ public class Recruitment {
     private Boolean delFlag;
     @ApiModelProperty(value = "岗位分类ID")
     private String workCategoryId;
+    @ApiModelProperty(value = "福利待遇")
+    private String welfare;
 }

+ 13 - 5
common/src/main/resources/mapper/job/JobUser.xml

@@ -23,6 +23,7 @@
 			<result property="isAuthentication" column="is_authentication" />
 			<result property="idCard" column="id_card" />
 			<result property="idCardUrl" column="id_card_url" />
+			<result property="jobStatus" column="job_status" />
 			</resultMap>
 	<insert id="insert" parameterType="com.jpsoft.employment.modules.job.entity.JobUser">
 	<!--
@@ -32,7 +33,7 @@
 	-->
 	<![CDATA[
 		insert into job_jobuser
-	    (id_,create_by,create_time,update_by,update_time,del_flag,user_name,password_,real_name,open_id,tel_,sex_,birthday_,address_,first_job_time,head_image_url,is_authentication,id_card,id_card_url)
+	    (id_,create_by,create_time,update_by,update_time,del_flag,user_name,password_,real_name,open_id,tel_,sex_,birthday_,address_,first_job_time,head_image_url,is_authentication,id_card,id_card_url,job_status)
 		values
 		(
 #{id,jdbcType=VARCHAR}
@@ -53,7 +54,8 @@
 ,#{headImageUrl,jdbcType=VARCHAR}
 ,#{isAuthentication,jdbcType= VARCHAR }
 ,#{idCard,jdbcType=VARCHAR}
-,#{idCardUrl,jdbcType= NUMERIC }
+,#{idCardUrl,jdbcType= VARCHAR }
+,#{jobStatus,jdbcType=VARCHAR}
 		)
 	]]>
 	</insert>
@@ -115,7 +117,10 @@
 		id_card=#{idCard,jdbcType=VARCHAR},
 		</if>
 				<if test="idCardUrl!=null">
-		id_card_url=#{idCardUrl,jdbcType= NUMERIC },
+		id_card_url=#{idCardUrl,jdbcType= VARCHAR },
+		</if>
+		<if test="jobStatus!=null">
+			job_status=#{jobStatus,jdbcType= VARCHAR },
 		</if>
 		</set>
 	where id_=#{id}
@@ -143,8 +148,11 @@
 			select * from job_jobuser
 		]]>
 		<where>
-			<if test="searchParams.id != null">
-				and ID_ like #{searchParams.id}
+			del_flag=false
+			<if test="searchParams.not_jobStatus != null">
+				<![CDATA[
+					and job_status <> #{searchParams.not_jobStatus}
+				]]>
 			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">

+ 7 - 1
common/src/main/resources/mapper/job/Recruitment.xml

@@ -32,6 +32,7 @@
 		<result property="updateTime" column="update_time" />
 		<result property="delFlag" column="del_flag" />
 		<result property="workCategoryId" column="work_category_id" />
+		<result property="welfare" column="welfare_" />
 	</resultMap>
 	<resultMap id="RecruitmentVOMap" type="com.jpsoft.employment.modules.job.entity.RecruitmentVO" extends="RecruitmentMap">
 		<result property="positionName" column="position_name" />
@@ -44,7 +45,7 @@
 	-->
 	<![CDATA[
 		insert into job_recruitment
-	    (id_,company_id,title_,area_,address_,position_,position_message,requirements_,position_number,work_year,education_,position_sex,read_times,wage_type,is_discuss_personally,contact_person,tel_,status_,approve_status,reading_times,collection_times,delivery_times,create_by,create_time,update_by,update_time,del_flag,work_category_id)
+	    (id_,company_id,title_,area_,address_,position_,position_message,requirements_,position_number,work_year,education_,position_sex,read_times,wage_type,is_discuss_personally,contact_person,tel_,status_,approve_status,reading_times,collection_times,delivery_times,create_by,create_time,update_by,update_time,del_flag,work_category_id,welfare_)
 		values
 		(
 #{id,jdbcType=VARCHAR}
@@ -75,6 +76,7 @@
 ,#{updateTime,jdbcType= TIMESTAMP }
 ,#{delFlag,jdbcType= NUMERIC }
 ,#{workCategoryId,jdbcType= VARCHAR }
+,#{welfare,jdbcType= VARCHAR }
 		)
 	]]>
 	</insert>
@@ -165,6 +167,9 @@
 			<if test="workCategoryId!=null">
 				work_category_id=#{workCategoryId,jdbcType= VARCHAR },
 			</if>
+			<if test="welfare!=null">
+				welfare_=#{welfare,jdbcType= VARCHAR },
+			</if>
 		</set>
 	where id_=#{id}
 	</update>
@@ -182,6 +187,7 @@
 			select * from job_recruitment
 		]]>
 		<where>
+			del_flag = false
 			<if test="searchParams.companyId != null">
 				and company_id = #{searchParams.companyId}
 			</if>

+ 268 - 3
web/src/main/java/com/jpsoft/employment/modules/job/controller/JobUserController.java

@@ -1,9 +1,274 @@
 package com.jpsoft.employment.modules.job.controller;
 
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import cn.hutool.core.util.IdcardUtil;
+import com.github.pagehelper.Page;
+import com.jpsoft.employment.modules.common.dto.MessageResult;
+import com.jpsoft.employment.modules.common.dto.Sort;
+import com.jpsoft.employment.modules.common.utils.PojoUtils;
+import com.jpsoft.employment.modules.job.dto.TalentPoolDTO;
+import com.jpsoft.employment.modules.job.entity.JobUser;
+import com.jpsoft.employment.modules.job.entity.Resume;
+import com.jpsoft.employment.modules.job.entity.ResumeWorkExperience;
+import com.jpsoft.employment.modules.job.entity.WorkCategory;
+import com.jpsoft.employment.modules.job.service.JobUserService;
+import com.jpsoft.employment.modules.job.service.ResumeService;
+import com.jpsoft.employment.modules.job.service.ResumeWorkExperienceService;
+import com.jpsoft.employment.modules.job.service.WorkCategoryService;
+import com.jpsoft.employment.modules.sys.entity.DataDictionary;
+import com.jpsoft.employment.modules.sys.service.DataDictionaryService;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 @RestController
-@RequestMapping("/job/jobser")
+@RequestMapping("/job/jobUser")
 public class JobUserController {
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Autowired
+    private JobUserService jobUserService;
+
+    @Autowired
+    private ResumeService resumeService;
+
+    @Autowired
+    private WorkCategoryService workCategoryService;
+
+    @Autowired
+    private DataDictionaryService dataDictionaryService;
+
+    @Autowired
+    private ResumeWorkExperienceService resumeWorkExperienceService;
+
+
+    @ApiOperation(value="列表")
+    @RequestMapping(value = "pageList",method = RequestMethod.POST)
+    public MessageResult<Map> pageList(
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+            HttpServletRequest request){
+        String subject = (String)request.getAttribute("subject");
+
+        //当前用户ID
+        System.out.println(subject);
+
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("create_time","desc"));
+
+        searchParams.put("not_jobStatus","1");
+
+
+        Page<JobUser> page = jobUserService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+
+        Page<TalentPoolDTO> pageDto = new Page<>();
+
+        for (JobUser jobUser:page) {
+            TalentPoolDTO dto = new TalentPoolDTO();
+
+            dto.setId(jobUser.getId());
+
+            String realName = jobUser.getRealName();
+            if(StringUtils.isNotEmpty(realName)){
+                String familyName = realName.substring(0,1);
+                int num = realName.length();
+                if(num==2){
+                    dto.setRealName(familyName+"*");
+                }
+                else{
+                    dto.setRealName(familyName+"**");
+                }
+            }
+
+            dto.setHeadImageUrl(jobUser.getHeadImageUrl());
+            dto.setSex(jobUser.getSex());
+
+            if(StringUtils.isNotEmpty(jobUser.getIdCard())){
+                int age = IdcardUtil.getAgeByIdCard(jobUser.getIdCard());
+                dto.setAge(age);
+            }
+
+            Resume resume = resumeService.findByUserId(jobUser.getId());
+
+            String workExpName="";
+            String positionCategoryName="";
+            String dreamMoneyName="";
+            String dreamAdd="";
+            String introduction="";
+            String educationName="";
+
+            if(resume!=null){
+                DataDictionary dataDictionary = dataDictionaryService.get(resume.getWorkExp());
+
+                if(dataDictionary!=null){
+                    workExpName = dataDictionary.getName();
+                }
+
+
+                WorkCategory workCategory = workCategoryService.get(resume.getPositionCategoryId());
+                if(workCategory!=null){
+                    positionCategoryName = workCategory.getName();
+                }
+
+
+                DataDictionary dataDictionary1 = dataDictionaryService.get(resume.getDreamMoney());
+                if(dataDictionary1!=null){
+                    dreamMoneyName = dataDictionary1.getName();
+                }
+
+                DataDictionary dataDictionary2 = dataDictionaryService.get(resume.getEducation());
+
+                if(dataDictionary2!=null){
+                    educationName = dataDictionary2.getName();
+                }
+
+
+                dreamAdd = resume.getDreamAdd();
+                introduction = resume.getIntroduction();
+            }
+
+            dto.setWorkExpName(workExpName);
+            dto.setEducationName(educationName);
+            dto.setPositionCategoryName(positionCategoryName);
+            dto.setDreamMoneyName(dreamMoneyName);
+            dto.setJobStatus(jobUser.getJobStatus());
+            dto.setDreamAdd(dreamAdd);
+            dto.setIntroduction(introduction);
+
+            pageDto.add(dto);
+        }
+
+        pageDto.setPageSize(page.getPageSize());
+        pageDto.setTotal(page.getTotal());
+        pageDto.setPageNum(page.getPageNum());
+
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(pageDto));
+
+        return msgResult;
+    }
+
+
+
+    @ApiOperation(value="获取信息")
+    @GetMapping("edit/{id}")
+    public MessageResult<TalentPoolDTO> edit(@PathVariable("id") String id){
+        MessageResult<TalentPoolDTO> msgResult = new MessageResult<>();
+
+        try {
+            JobUser jobUser = jobUserService.get(id);
+
+            if (jobUser != null) {
+                TalentPoolDTO dto = new TalentPoolDTO();
+
+                dto.setId(jobUser.getId());
+
+                String realName = jobUser.getRealName();
+                if(StringUtils.isNotEmpty(realName)){
+                    String familyName = realName.substring(0,1);
+                    int num = realName.length();
+                    if(num==2){
+                        dto.setRealName(familyName+"*");
+                    }
+                    else{
+                        dto.setRealName(familyName+"**");
+                    }
+                }
+
+                dto.setHeadImageUrl(jobUser.getHeadImageUrl());
+                dto.setSex(jobUser.getSex());
+
+                if(StringUtils.isNotEmpty(jobUser.getIdCard())){
+                    int age = IdcardUtil.getAgeByIdCard(jobUser.getIdCard());
+                    dto.setAge(age);
+                }
+
+                Resume resume = resumeService.findByUserId(jobUser.getId());
+
+                String workExpName="";
+                String positionCategoryName="";
+                String dreamMoneyName="";
+                String dreamAdd="";
+                String introduction="";
+                String educationName="";
+
+                List<ResumeWorkExperience> resumeWorkExperienceList = new ArrayList<>();
+
+                if(resume!=null){
+                    DataDictionary dataDictionary = dataDictionaryService.get(resume.getWorkExp());
+
+                    if(dataDictionary!=null){
+                        workExpName = dataDictionary.getName();
+                    }
+
+
+                    WorkCategory workCategory = workCategoryService.get(resume.getPositionCategoryId());
+                    if(workCategory!=null){
+                        positionCategoryName = workCategory.getName();
+                    }
+
+
+                    DataDictionary dataDictionary1 = dataDictionaryService.get(resume.getDreamMoney());
+                    if(dataDictionary1!=null){
+                        dreamMoneyName = dataDictionary1.getName();
+                    }
+
+                    DataDictionary dataDictionary2 = dataDictionaryService.get(resume.getEducation());
+
+                    if(dataDictionary2!=null){
+                        educationName = dataDictionary2.getName();
+                    }
+
+
+                    dreamAdd = resume.getDreamAdd();
+                    introduction = resume.getIntroduction();
+
+
+                    resumeWorkExperienceList = resumeWorkExperienceService.findByResumeId(resume.getId());
+
+
+                }
+
+                dto.setWorkExpName(workExpName);
+                dto.setEducationName(educationName);
+                dto.setPositionCategoryName(positionCategoryName);
+                dto.setDreamMoneyName(dreamMoneyName);
+                dto.setJobStatus(jobUser.getJobStatus());
+                dto.setDreamAdd(dreamAdd);
+                dto.setIntroduction(introduction);
+                dto.setResumeWorkExperienceList(resumeWorkExperienceList);
+
+
+
+                msgResult.setResult(true);
+                msgResult.setData(dto);
+            } else {
+                msgResult.setResult(false);
+                msgResult.setMessage("数据库不存在该记录!");
+            }
+        }
+        catch(Exception ex){
+            logger.error(ex.getMessage(),ex);
+
+            msgResult.setResult(false);
+            msgResult.setMessage(ex.getMessage());
+        }
+
+        return msgResult;
+    }
+
 }

+ 61 - 1
web/src/main/java/com/jpsoft/employment/modules/job/controller/RecruitmentController.java

@@ -9,7 +9,9 @@ import com.jpsoft.employment.modules.common.dto.MessageResult;
 import com.jpsoft.employment.modules.job.entity.Recruitment;
 import com.jpsoft.employment.modules.job.service.RecruitmentService;
 import com.jpsoft.employment.modules.sys.entity.DataDictionary;
+import com.jpsoft.employment.modules.sys.entity.User;
 import com.jpsoft.employment.modules.sys.service.DataDictionaryService;
+import com.jpsoft.employment.modules.sys.service.UserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -34,6 +36,8 @@ public class RecruitmentController {
     private CompanyService companyService;
     @Autowired
     private DataDictionaryService dataDictionaryService;
+    @Autowired
+    private UserService userService;
 
     @ApiOperation(value="创建空记录")
     @GetMapping("create")
@@ -41,6 +45,9 @@ public class RecruitmentController {
         MessageResult<Recruitment> msgResult = new MessageResult<>();
 
         Recruitment recruitment = new Recruitment();
+        recruitment.setEducation("-1");
+        recruitment.setWorkYear("-1");
+
 
         msgResult.setData(recruitment);
         msgResult.setResult(true);
@@ -54,11 +61,20 @@ public class RecruitmentController {
         MessageResult<Recruitment> msgResult = new MessageResult<>();
 
         try {
+            User user = userService.get(subject);
+
+            if(user==null){
+                throw new Exception("用户未登录,请先登录!");
+            }
+
             recruitment.setId(UUID.randomUUID().toString());
             recruitment.setDelFlag(false);
             recruitment.setCreateBy(subject);
             recruitment.setCreateTime(new Date());
-            
+            recruitment.setCompanyId(user.getCompanyId());
+
+
+
             int affectCount = recruitmentService.insert(recruitment);
 
             if (affectCount > 0) {
@@ -251,6 +267,50 @@ public class RecruitmentController {
         return msgResult;
     }
 
+    @ApiOperation(value="HR招聘岗位列表")
+    @RequestMapping(value = "pageListHR",method = RequestMethod.POST)
+    public MessageResult<Map> pageListHR(
+            String status,String approveStatus,
+            @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
+            @RequestParam(value="pageSize",defaultValue="20") int pageSize,
+            @RequestAttribute String subject){
+
+        //当前用户ID
+        System.out.println(subject);
+
+        MessageResult<Map> msgResult = new MessageResult<>();
+
+        Map<String,Object> searchParams = new HashMap<>();
+
+        List<Sort> sortList = new ArrayList<>();
+        sortList.add(new Sort("create_time","desc"));
+
+        if (StringUtils.isNotEmpty(status)) {
+            searchParams.put("status",status);
+        }
+
+        if (StringUtils.isNotEmpty(approveStatus)) {
+            searchParams.put("approveStatus",approveStatus);
+        }
+
+        Page<Recruitment> page = recruitmentService.pageSearch(searchParams,pageIndex,pageSize,true,sortList);
+
+        for(Recruitment recruitment : page.getResult()){
+            Company company = companyService.get(recruitment.getCompanyId());
+            recruitment.setCompanyName(company.getName());
+
+            recruitment.setWorkYearName(dataDictionaryService.getName(recruitment.getWorkYear()));
+            recruitment.setEducationName(dataDictionaryService.getName(recruitment.getEducation()));
+            recruitment.setWageTypeName(dataDictionaryService.getName(recruitment.getWageType()));
+        }
+
+
+        msgResult.setResult(true);
+        msgResult.setData(PojoUtils.pageWrapper(page));
+
+        return msgResult;
+    }
+
     @ApiOperation(value="下架")
     @PostMapping("offShelf/{id}")
     public MessageResult<Integer> offShelf(@PathVariable("id") String id,@RequestAttribute String subject){