员工入职机构
This commit is contained in:
parent
d1acb58d7e
commit
44accb2336
|
|
@ -8,7 +8,7 @@ import java.util.List;
|
|||
public interface EmployeesOrgLocalApi {
|
||||
|
||||
String apply(EmployeesApplyEntity dto);
|
||||
List<EmployeesOrgApiEntity> queryAll(String orgCodes);
|
||||
List<EmployeesOrgApiEntity> queryAll(String orgCodes,String openId);
|
||||
|
||||
String canApply(String employeeId, String orgCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,4 +49,6 @@ public class EmployeesOrgApiEntity implements Serializable {
|
|||
private String status;
|
||||
/**审核备注*/
|
||||
private String auditContent;
|
||||
/**是否为被邀请 0被邀请 1主动申请*/
|
||||
private java.lang.String isInvited;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,4 +14,6 @@ public class EmployeesApiEntity {
|
|||
private java.lang.String izOnline;
|
||||
/**冻结状态 0未冻结 1冻结*/
|
||||
private java.lang.String izFreeze;
|
||||
/**是否为被邀请 0被邀请 1主动申请*/
|
||||
private java.lang.String isInvited;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -178,6 +178,8 @@ public class OrgAllInfoApiEntity implements Serializable {
|
|||
private String izOnline;
|
||||
/** 是否冻结 0是1否*/
|
||||
private String izFreeze;
|
||||
/**是否为被邀请 0被邀请 1主动申请*/
|
||||
private java.lang.String isInvited;
|
||||
/** 入职时间*/
|
||||
private String entryTime;
|
||||
/**申请日期*/
|
||||
|
|
|
|||
|
|
@ -88,4 +88,12 @@ public class EmployeesOrg implements Serializable {
|
|||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@ApiModelProperty(value = "入职时间")
|
||||
private java.util.Date entryTime;
|
||||
/**是否历史数据 0历史 1非历史*/
|
||||
@Excel(name = "是否历史数据", width = 15)
|
||||
@ApiModelProperty(value = "是否历史数据")
|
||||
private java.lang.String izHistory;
|
||||
/**是否为被邀请 0被邀请 1主动申请*/
|
||||
@Excel(name = "是否为被邀请", width = 15)
|
||||
@ApiModelProperty(value = "是否为被邀请")
|
||||
private java.lang.String isInvited;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ package com.nu.modules.employees.service.impl;
|
|||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.nu.entity.EmployeesApplyEntity;
|
||||
import com.nu.modules.EmployessInfo.api.EmployeesOrgLocalApi;
|
||||
import com.nu.modules.EmployessInfo.entity.EmployeesOrgApiEntity;
|
||||
|
|
@ -25,6 +26,14 @@ public class EmployeesOrgServiceImpl extends ServiceImpl<EmployeesOrgMapper, Emp
|
|||
|
||||
@Override
|
||||
public String apply(EmployeesApplyEntity dto) {
|
||||
//先将旧数据置为历史状态
|
||||
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id",dto.getEmployeeId());
|
||||
uw.eq("org_code",dto.getOrgCode());
|
||||
EmployeesOrg udto = new EmployeesOrg();
|
||||
udto.setIzHistory("0");
|
||||
baseMapper.update(udto,uw);
|
||||
|
||||
EmployeesOrg employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setOpenId(dto.getOpenId());
|
||||
employeesOrg.setEmployeesId(dto.getEmployeeId());
|
||||
|
|
@ -32,14 +41,17 @@ public class EmployeesOrgServiceImpl extends ServiceImpl<EmployeesOrgMapper, Emp
|
|||
employeesOrg.setStatus("1");
|
||||
employeesOrg.setIzOnline("1");
|
||||
employeesOrg.setIzFreeze("0");
|
||||
employeesOrg.setIsInvited("1");
|
||||
baseMapper.insert(employeesOrg);
|
||||
return employeesOrg.getId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EmployeesOrgApiEntity> queryAll(String orgCodes) {
|
||||
public List<EmployeesOrgApiEntity> queryAll(String orgCodes,String openId) {
|
||||
QueryWrapper<EmployeesOrg> qw = new QueryWrapper<>();
|
||||
qw.in("org_code", orgCodes.split(","));
|
||||
qw.eq("open_id",openId);
|
||||
qw.eq("iz_history","1");
|
||||
List<EmployeesOrg> list = baseMapper.selectList(qw);
|
||||
List<EmployeesOrgApiEntity> result = BeanUtil.copyToList(list, EmployeesOrgApiEntity.class);
|
||||
return result;
|
||||
|
|
@ -50,6 +62,7 @@ public class EmployeesOrgServiceImpl extends ServiceImpl<EmployeesOrgMapper, Emp
|
|||
QueryWrapper<EmployeesOrg> qw = new QueryWrapper<>();
|
||||
qw.eq("employees_id", employeeId);
|
||||
qw.eq("org_code",orgCode);
|
||||
qw.eq("iz_history","1");
|
||||
EmployeesOrg employeesOrg = baseMapper.selectOne(qw);
|
||||
if(employeesOrg != null ){
|
||||
if("1".equals(employeesOrg.getStatus())){
|
||||
|
|
|
|||
|
|
@ -177,6 +177,8 @@ public class OrgAllInfo implements Serializable {
|
|||
private String izOnline;
|
||||
/** 是否冻结 0是1否*/
|
||||
private String izFreeze;
|
||||
/**是否为被邀请 0被邀请 1主动申请*/
|
||||
private java.lang.String isInvited;
|
||||
/** 入职时间*/
|
||||
private String entryTime;
|
||||
/**申请日期*/
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@
|
|||
eo.status AS applyStatus,
|
||||
eo.iz_online,
|
||||
eo.iz_freeze,
|
||||
eo.iz_invited,
|
||||
eo.entry_time,
|
||||
eo.create_time AS apply_time,
|
||||
eo.update_time AS audit_time
|
||||
|
|
@ -93,8 +94,12 @@
|
|||
o.status = '2'
|
||||
and d.del_flag = '0'
|
||||
AND eo.open_id = #{openId}
|
||||
AND eo.iz_history = '1'
|
||||
<if test="status != null and status != ''">
|
||||
and eo.status = #{status}
|
||||
and eo.status in
|
||||
<foreach collection="status.split(',')" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
<choose>
|
||||
|
|
@ -102,7 +107,14 @@
|
|||
ORDER BY (d.org_code + 0) ASC
|
||||
</when>
|
||||
<otherwise>
|
||||
ORDER BY eo.create_time DESC
|
||||
ORDER BY
|
||||
CASE eo.status
|
||||
WHEN '2' THEN 1
|
||||
WHEN '1' THEN 2
|
||||
WHEN '3' THEN 3
|
||||
ELSE 4
|
||||
END,
|
||||
eo.create_time DESC
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,21 @@
|
|||
package com.nu.mq.employees.listener;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.nu.dto.EmployeesApplyMQDto;
|
||||
import com.nu.dto.EmployeesStatusMQDto;
|
||||
import com.nu.modules.employees.entity.EmployeesOrg;
|
||||
import com.nu.modules.employees.entity.NuEmployeesAdvisoryInfo;
|
||||
import com.nu.modules.employees.service.IEmployeesOrgService;
|
||||
import com.nu.modules.employees.service.INuEmployeesAdvisoryInfoService;
|
||||
import com.nu.utils.RabbitMQUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.amqp.core.ExchangeTypes;
|
||||
import org.springframework.amqp.rabbit.annotation.Exchange;
|
||||
import org.springframework.amqp.rabbit.annotation.Queue;
|
||||
import org.springframework.amqp.rabbit.annotation.QueueBinding;
|
||||
import org.springframework.amqp.rabbit.annotation.RabbitListener;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
|
@ -23,10 +27,13 @@ public class EmployeesMQListener {
|
|||
private IEmployeesOrgService employeesOrgService;
|
||||
@Autowired
|
||||
private INuEmployeesAdvisoryInfoService employeesAdvisoryInfoService;
|
||||
@Autowired
|
||||
private RabbitMQUtil rabbitMQUtil;
|
||||
|
||||
/**
|
||||
* 员工-机构关系状态调整
|
||||
* 只修改审核状态、审核备注
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.auditstatus.sync", durable = "true"),
|
||||
|
|
@ -36,7 +43,7 @@ public class EmployeesMQListener {
|
|||
EmployeesOrg employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setStatus(dto.getAuditStatus());
|
||||
employeesOrg.setAuditContent(dto.getAuditContent());
|
||||
if("2".equals(dto.getAuditStatus())){
|
||||
if ("2".equals(dto.getAuditStatus())) {
|
||||
employeesOrg.setEntryTime(dto.getEntryTime());//审批通过的话将入职时间设置进去
|
||||
//修改员工注册表的入驻状态
|
||||
NuEmployeesAdvisoryInfo employeesAd = new NuEmployeesAdvisoryInfo();
|
||||
|
|
@ -45,14 +52,16 @@ public class EmployeesMQListener {
|
|||
employeesAdvisoryInfoService.updateById(employeesAd);
|
||||
}
|
||||
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id",dto.getEmployeeId());
|
||||
uw.eq("org_code",dto.getOrgCode());
|
||||
employeesOrgService.update(employeesOrg,uw);
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("org_code", dto.getOrgCode());
|
||||
uw.eq("iz_history", "1");
|
||||
employeesOrgService.update(employeesOrg, uw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 员工-机构关系状态调整
|
||||
* 只修改在线状态
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.onlinestatus.sync", durable = "true"),
|
||||
|
|
@ -62,14 +71,16 @@ public class EmployeesMQListener {
|
|||
EmployeesOrg employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setIzOnline(dto.getIzOnline());
|
||||
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id",dto.getEmployeeId());
|
||||
uw.eq("org_code",dto.getOrgCode());
|
||||
employeesOrgService.update(employeesOrg,uw);
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("org_code", dto.getOrgCode());
|
||||
uw.eq("iz_history", "1");
|
||||
employeesOrgService.update(employeesOrg, uw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 员工-机构关系状态调整
|
||||
* 只修改冻结状态
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employeesorg.freezestatus.sync", durable = "true"),
|
||||
|
|
@ -79,9 +90,49 @@ public class EmployeesMQListener {
|
|||
EmployeesOrg employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setIzFreeze(dto.getIzFreeze());
|
||||
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id",dto.getEmployeeId());
|
||||
uw.eq("org_code",dto.getOrgCode());
|
||||
employeesOrgService.update(employeesOrg,uw);
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("org_code", dto.getOrgCode());
|
||||
uw.eq("iz_history", "1");
|
||||
employeesOrgService.update(employeesOrg, uw);
|
||||
}
|
||||
|
||||
/**
|
||||
* 机构邀请员工
|
||||
*
|
||||
* @param dto
|
||||
*/
|
||||
@RabbitListener(bindings = @QueueBinding(value = @Queue(name = "hldy.employees.invide", durable = "true"),
|
||||
exchange = @Exchange(name = "hldy.employees", type = ExchangeTypes.DIRECT),
|
||||
key = "hldy.employees.invide"), errorHandler = "employeesMQErrorHandler")
|
||||
public void handleInvided(EmployeesApplyMQDto dto) {
|
||||
//先查询此人是否已经提交了申请信息 出现问题概率可能在1-2秒内(同时申请与邀请) 如果网络不好则大幅增加时长
|
||||
QueryWrapper<EmployeesOrg> qw = new QueryWrapper<>();
|
||||
qw.eq("employees_id", dto.getEmployeeId());
|
||||
qw.eq("org_code", dto.getOrgCode());
|
||||
qw.eq("iz_history", "1");
|
||||
EmployeesOrg one = employeesOrgService.getOne(qw);
|
||||
if (one != null) {
|
||||
rabbitMQUtil.sendToExchange("hldy.employees", dto.getOrgCode()+ "employees.cannotinvided", dto);
|
||||
return;
|
||||
}
|
||||
|
||||
//先把之前的数据都改为历史数据
|
||||
UpdateWrapper<EmployeesOrg> uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("org_code", dto.getOrgCode());
|
||||
EmployeesOrg udto = new EmployeesOrg();
|
||||
udto.setIzHistory("0");
|
||||
employeesOrgService.update(udto, uw);
|
||||
|
||||
//向员工-机构关系表插数据
|
||||
EmployeesOrg employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setOpenId(dto.getOpenId());
|
||||
employeesOrg.setEmployeesId(dto.getEmployeeId());
|
||||
employeesOrg.setOrgCode(dto.getOrgCode());
|
||||
employeesOrg.setStatus("1");
|
||||
employeesOrg.setIzOnline("1");
|
||||
employeesOrg.setIzFreeze("0");
|
||||
employeesOrg.setIsInvited("0");
|
||||
employeesOrgService.save(employeesOrg);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.nu.modules.wechat.employess.api;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.nu.dto.EmployeesApplyMQDto;
|
||||
import com.nu.entity.EmployeesApplyEntity;
|
||||
|
|
@ -70,7 +69,8 @@ public class EmployessApplyApi {
|
|||
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", defaultValue = "8") Integer pageSize,
|
||||
@RequestParam(value = "orgCode", defaultValue = "", required = false) String orgCode,
|
||||
@RequestParam(value = "title", defaultValue = "", required = false) String title) {
|
||||
@RequestParam(value = "title", defaultValue = "", required = false) String title,
|
||||
@RequestParam(value = "openId") String openId) {
|
||||
IPage<OrgAllInfoApiEntity> result = orgApplyInfoApi.queryOrgAllInfo(pageNo, pageSize, orgCode, title);
|
||||
List<OrgAllInfoApiEntity> sourceRecords = result.getRecords();
|
||||
if (sourceRecords == null || sourceRecords.size() <= 0) {
|
||||
|
|
@ -85,7 +85,7 @@ public class EmployessApplyApi {
|
|||
if (orgCodes.endsWith(",")) {
|
||||
orgCodes.substring(0, orgCodes.length() - 2);
|
||||
}
|
||||
List<EmployeesOrgApiEntity> employeesOrgList = employeesOrgLocalApi.queryAll(orgCodes);
|
||||
List<EmployeesOrgApiEntity> employeesOrgList = employeesOrgLocalApi.queryAll(orgCodes,openId);
|
||||
if (employeesOrgList != null && employeesOrgList.size() > 0) {
|
||||
employeesOrgList.stream().forEach(eo -> {
|
||||
EmployeesApiEntity en = new EmployeesApiEntity();
|
||||
|
|
@ -93,6 +93,7 @@ public class EmployessApplyApi {
|
|||
en.setAuditContent(eo.getAuditContent());
|
||||
en.setIzOnline(eo.getIzOnline());
|
||||
en.setIzFreeze(eo.getIzFreeze());
|
||||
en.setIsInvited(eo.getIsInvited());
|
||||
sourceRecords.get(indexMap.get(eo.getOrgCode())).setEmployeesApiEntity(en);
|
||||
});
|
||||
result.setRecords(sourceRecords);
|
||||
|
|
|
|||
|
|
@ -29,4 +29,6 @@ public class EmployeesStatusMQDto implements Serializable {
|
|||
private String orgCode;
|
||||
/**入职时间*/
|
||||
private Date entryTime;
|
||||
/**openId*/
|
||||
private Date openId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
package com.nu.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
|
@ -32,6 +34,8 @@ public class EmployeesApplyEntity implements Serializable {
|
|||
/**联系电话*/
|
||||
private String tel;
|
||||
/**出生日期*/
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy年MM月dd日")
|
||||
@DateTimeFormat(pattern = "yyyy年MM月dd日")
|
||||
private Date dateOfBirth;
|
||||
/**婚否*/
|
||||
private String marriedOrNot;
|
||||
|
|
|
|||
Loading…
Reference in New Issue