Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 3 years ago
parent
commit
ddd88d10c8
  1. 37
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  2. 67
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java
  3. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml
  4. 35
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java
  5. 16
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java
  6. 33
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml
  7. 27
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java

37
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java

@ -13,6 +13,7 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -94,20 +95,40 @@ public class SysOrganizationRest implements SysOrganizationFeign {
}
@Override
@Transactional(rollbackFor = Exception.class)
public ResultBean update(SysOrganizationDto dto, String sid) {
ResultBean rb = ResultBean.fireFail();
SysOrganization entity = new SysOrganization();
dto.fillEntity(entity);
entity.setSid(sid);
//根据组织sid查询组织信息
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(sid);
if (sysOrganization == null) {
return rb.setMsg("该组织机构不存在");
}
BeanUtil.copyProperties(dto, sysOrganization, "sid");
//主管人员的sid
String zgStaffSid = dto.getZgStaffSid();
//分管人员的sid
String fgStaffSid = dto.getFgStaffSid();
//查询分管人员中是否包含主管人员
if (StringUtils.isNotBlank(fgStaffSid)) {
if (StringUtils.isNotBlank(zgStaffSid)) {
if (fgStaffSid.contains(zgStaffSid)) {
return rb.setMsg("同一个组织机构中主管分管的人员不能重复");
}
}
}
//删除关联关系中的所有主管与分管的人员关系
sysStaffOrgService.delZGAndFGByOrgSid(sid);
// sysStaffOrgService.delByOrgSid(sid);//?为啥要删掉???暂时注释
if (org.apache.commons.lang3.StringUtils.isNotBlank(zgStaffSid)) {
sysOrganizationService.addSysStaffOrg(zgStaffSid, "1", entity);
if (StringUtils.isNotBlank(zgStaffSid)) {
ResultBean resultBean = sysOrganizationService.addSysStaffOrg(zgStaffSid, "1", sysOrganization);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(fgStaffSid)) {
sysOrganizationService.addSysStaffOrg(fgStaffSid, "2", entity);
if (StringUtils.isNotBlank(fgStaffSid)) {
ResultBean resultBean = sysOrganizationService.addSysStaffOrg(fgStaffSid, "2", sysOrganization);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
}
sysOrganizationService.updateBySid(dto.toMap(), sid);
return rb.success();

67
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java

@ -8,8 +8,10 @@ import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandSelectQuery;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrandSelectVo;
import com.yxt.anrui.portal.api.sysorganization.*;
import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.biz.sysstaffinfo.SysStaffinfoService;
import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.anrui.portal.biz.sysuser.SysUserService;
import com.yxt.common.base.config.component.FileUploadComponent;
@ -21,6 +23,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
@ -47,6 +50,8 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
private FileUploadComponent fileUploadComponent;
@Autowired
private BaseVehicleBrandFeign baseVehicleBrandFeign;
@Autowired
private SysStaffinfoService sysStaffInfoService;
public PagerVo<SysOrganization> listPage(PagerQuery<SysOrganizationQuery> pq) {
SysOrganizationQuery query = pq.getParams();
@ -148,36 +153,48 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
return baseMapper.selectChildrenListByPsid(sid);
}
/* private void getChildrens(SysOrganizationVo s) {
String sid = s.getSid();
QueryWrapper<SysOrganization> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(sid)) {
qw.eq("psid", sid);
}
qw.orderByAsc("sort");
List<SysOrganizationVo> sysOrganizationVos = baseMapper.selectListAllVo(qw);
if (!sysOrganizationVos.isEmpty()) {
for (SysOrganizationVo sfv : sysOrganizationVos) {
getChildrens(sfv);
}
}
s.setChildren(sysOrganizationVos);
}*/
public void addSysStaffOrg(String sids, String manageType, SysOrganization entity) {
@Transactional(rollbackFor = Exception.class)
public ResultBean addSysStaffOrg(String sids, String manageType, SysOrganization entity) {
ResultBean rb = ResultBean.fireFail();
String[] sidArr = sids.split(",");
String name = "";
for (String sid : sidArr) {
//查询组织关系中是否已经包含分管的人员
String orgSid = getOrgSid(entity.getSid());
if ("1".equals(manageType)) {
int count = sysStaffOrgService.selectByStaffAndOrg(orgSid, sid, "2");
int count1 = sysStaffOrgService.selectByStaffAndType(orgSid, sid, "3");
int count2 = sysStaffOrgService.selectByStaffAndOrg(orgSid, sid, "1");
if (count > 0 || count2 > 0) {
SysStaffinfo sysStaffinfo = sysStaffInfoService.fetchBySid(sid);
name = sysStaffinfo.getName();
return rb.setMsg("该组织机构中已包含" + name + ",请勿重复操作");
}
if (count1 > 0) {
SysStaffinfo sysStaffinfo = sysStaffInfoService.fetchBySid(sid);
name = sysStaffinfo.getName();
return rb.setMsg(name + "已是其他机构组织的主管");
}
//查询是否有员工信息,如果有的话,删除关联关系
sysStaffOrgService.deleteByStaffSidAndType(orgSid, sid, "3");
} else {//分管操作
int count = sysStaffOrgService.selectByStaffAndOrg(orgSid, sid, "1");
int count1 = sysStaffOrgService.selectByStaffAndOrg(orgSid, sid, "3");
if (count > 0 || count1 > 0) {
SysStaffinfo sysStaffinfo = sysStaffInfoService.fetchBySid(sid);
name = sysStaffinfo.getName();
return rb.setMsg("该组织机构中已包含" + name + ",请勿重复操作");
}
}
//添加员工与组织的关联关系
SysStaffOrg sysStaffOrg = new SysStaffOrg();
sysStaffOrg.setManageType(manageType);
sysStaffOrg.setOrgSid(entity.getSid());
sysStaffOrg.setOrgName(entity.getName());
sysStaffOrg.setStaffSid(sid);
// entity = fetchBySid(entity.getSid());
String orgSidPath = entity.getOrgSidPath();// sysOrganization.getOrgSidPath();
String orgSidPath = entity.getOrgSidPath();
if (StringUtils.isNotBlank(orgSidPath)) {
sysStaffOrg.setOrgSidPath(orgSidPath + "/" + entity.getSid());
sysStaffOrg.setOrgSidPath(orgSidPath);
} else {
sysStaffOrg.setOrgSidPath(entity.getSid());
}
@ -192,6 +209,7 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
}
sysStaffOrgService.save(sysStaffOrg);
}
return rb.success();
}
public void saveOrUpdateDto(SysOrganizationDto dto) {
@ -421,13 +439,14 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
public String getOrgSid(String sid) {
SysOrganization sysOrganization = fetchBySid(sid);
String orgSid = "";
if ("0".equals(sysOrganization.getPsid())) {
if ("0".equals(sysOrganization.getPsid())) {//总公司
orgSid = sysOrganization.getSid();
return orgSid;
}
if ("1".equals(sysOrganization.getIsDept())) {
if (sysOrganization.getIsDept() == 0) {//是独立法人的
return sysOrganization.getSid();
}
sid = sysOrganization.getPsid();
return getOrgSid(sid);
}
}

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoMapper.xml

@ -91,7 +91,7 @@
</select>
<!--员工管理分页列表-->
<select id="pagerList" resultType="com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoVo">
select si.sid,
select DISTINCT si.sid,
<!--员工编号-->
si.jobNumber,
<!--员工姓名-->

35
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysorganization.AppContactSysOrganizationVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysrole.SysRole;
import com.yxt.anrui.portal.api.sysrole.SysRoleVo;
import com.yxt.anrui.portal.api.sysstaffinfo.*;
import com.yxt.anrui.portal.api.sysstaffinfo.app.AppSysStaffQuery;
@ -39,7 +38,6 @@ import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui_portal(门户建设) <br/>
@ -499,9 +497,16 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
//更新用户信息
sysUserService.updateByStaffSid(dto.getJobNumber(), sysStaffinfo.getMobile(), sid);
//更新员工的关联的部门信息
SysStaffOrg sysStaffOrg = sysStaffOrgService.getOrgByStaffSid(sid);
SysStaffOrgDto sysStaffOrgDto = dto.getSysStaffOrg();
sysStaffOrgService.updateBySid(sysStaffOrgDto, sysStaffOrg.getSid());
String orgSid = sysOrganizationService.getOrgSid(sysStaffOrgDto.getOrgSid());
int count = sysStaffOrgService.selectByStaffAndOrg(orgSid, sid, "2");
if (count > 0) {
return rb.setMsg("该组织机构下已存在该员工");
}
SysStaffOrg sysStaffOrg = sysStaffOrgService.getOrgByStaffSid(sid);
BeanUtil.copyProperties(sysStaffOrgDto,sysStaffOrg);
sysStaffOrg.setManageType("3");
sysStaffOrgService.updateById(sysStaffOrg);
//更新员工的关联的岗位信息
SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(sid);
SysStaffPost sysStaffPost = sysStaffPostService.selectByStaffSid(sid, staffPostDetailsVo.getPostSid());
@ -524,13 +529,29 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
String path = fileUploadComponent.getUrlPrefix();
SysStaffinfoDetailsVo sysStaffinfoDetailsVo = baseMapper.selectDetailsBySid(sid, path);
if (sysStaffinfoDetailsVo != null) {
SysStaffOrg sysStaffOrg = sysStaffOrgService.getOrgByStaffSid(sid);
//更新员工的关联的岗位信息
List<SysStaffOrg> sysStaffOrgList = sysStaffOrgService.getOrgByStaffSidList(sid);
String orgSid = "";
String type = "";
for (SysStaffOrg s : sysStaffOrgList) {
if ("3".equals(s.getManageType())) {
orgSid = s.getOrgSid();
type = s.getManageType();
break;
} else if ("1".equals(s.getManageType())) {
orgSid = s.getOrgSid();
type = s.getManageType();
break;
} else {
orgSid = s.getOrgSid();
type = s.getManageType();
}
}
SysStaffPostDetailsVo staffPostDetailsVo = sysStaffPostService.getPostByStaffSid(sid);
SysStaffOrgDetailsVo sysStaffOrgDetailsVo = sysStaffOrgService.selectByStaff(sid, sysStaffOrg.getOrgSid());
SysStaffOrgDetailsVo sysStaffOrgDetailsVo = sysStaffOrgService.selectByStaffByType(sid, orgSid, type);
SysStaffPostDetailsVo sysStaffPostDetailsVo = sysStaffPostService.selectByStaff(sid, staffPostDetailsVo.getPostSid());
sysStaffinfoDetailsVo.setSysStaffOrg(sysStaffOrgDetailsVo);
sysStaffinfoDetailsVo.setSysStaffPost(sysStaffPostDetailsVo);
}
return sysStaffinfoDetailsVo;
}

16
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java

@ -2,17 +2,16 @@ package com.yxt.anrui.portal.biz.sysstafforg;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgDetailsVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import java.util.List;
@ -70,6 +69,7 @@ public interface SysStaffOrgMapper extends BaseMapper<SysStaffOrg> {
* @return
*/
SysStaffOrgDetailsVo selectByStaff(@Param("sid") String sid, @Param("orgSid") String orgSid);
SysStaffOrgDetailsVo selectByStaffByType(@Param("sid") String sid, @Param("orgSid") String orgSid,@Param("type")String type);
@Select("SELECT GROUP_CONCAT(DISTINCT(orgSid)) FROM sys_staff_org WHERE staffSid=#{staffSid}")
String getSysStaffOrgSidListByStaffSid(@Param("staffSid") String staffSid);
@ -82,6 +82,14 @@ public interface SysStaffOrgMapper extends BaseMapper<SysStaffOrg> {
@Select("select * from sys_staff_org where staffSid=#{sid}")
SysStaffOrg getOrgByStaffSid(String sid);
@Select("select * from sys_staff_org where staffSid=#{sid}")
List<SysStaffOrg> getOrgByStaffSidList(String sid);
@Delete("delete from sys_staff_org where orgSid=#{sid} and (manageType = 1 or manageType = 2)")
void delZGAndFGByOrgSid(String sid);
int selectByStaffAndOrg(@Param("sid") String sid, @Param("staffSid") String zgStaffSid, @Param("type") String type);
int selectByStaffAndType(@Param("sid") String sid, @Param("staffSid") String zgStaffSid, @Param("type") String type);
int deleteByStaffSidAndType(@Param("sid") String sid, @Param("staffSid") String zgStaffSid, @Param("type") String type);
}

33
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml

@ -43,6 +43,15 @@
and sso.orgSid = #{orgSid}
</select>
<select id="selectByStaffByType" resultType="com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgDetailsVo">
select sso.orgSid, sso.orgName, sso.orgNamePath, sso.manageType, so.orgCode, sso.orgSidPath
from sys_staff_org sso
left join sys_organization so on sso.orgSid = so.sid
where sso.staffSid = #{sid}
and sso.orgSid = #{orgSid}
and sso.manageType = #{type}
</select>
<!-- <select id="selectBySidPathByStaffSid" resultType="java.lang.String">
select orgSidPath
from anrui_portal.sys_staff_org
@ -57,4 +66,28 @@
order by id desc
limit 1
</select>
<select id="selectByStaffAndOrg" resultType="int">
select count(*)
from sys_staff_org sso
where sso.staffSid = #{staffSid}
and sso.manageType = #{type}
and find_in_set(#{sid}, replace(sso.orgSidPath, '/', ','))
</select>
<select id="selectByStaffAndType" resultType="int">
select count(*)
from sys_staff_org sso
where sso.staffSid = #{staffSid}
and sso.manageType = #{type}
and not find_in_set(#{sid}, replace(sso.orgSidPath, '/', ','))
</select>
<delete id="deleteByStaffSidAndType">
delete
from sys_staff_org
where staffSid = #{staffSid}
and manageType = #{type}
and find_in_set(#{sid}, replace(orgSidPath, '/', ','))
</delete>
</mapper>

27
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java

@ -156,6 +156,10 @@ public class SysStaffOrgService extends MybatisBaseService<SysStaffOrgMapper, Sy
return baseMapper.selectByStaff(sid, orgSid);
}
public SysStaffOrgDetailsVo selectByStaffByType(String sid, String orgSid,String type) {
return baseMapper.selectByStaffByType(sid, orgSid,type);
}
public List<SysStaffOrgVo> getSysStaffOrgListByStaffSid(String staffSid) {
return baseMapper.getSysStaffOrgListByStaffSid(staffSid);
}
@ -211,6 +215,10 @@ public class SysStaffOrgService extends MybatisBaseService<SysStaffOrgMapper, Sy
return baseMapper.getOrgByStaffSid(sid);
}
public List<SysStaffOrg> getOrgByStaffSidList(String sid) {
return baseMapper.getOrgByStaffSidList(sid);
}
/**
* 根据用户sid获取分公司sid
*
@ -242,4 +250,23 @@ public class SysStaffOrgService extends MybatisBaseService<SysStaffOrgMapper, Sy
public void delZGAndFGByOrgSid(String sid) {
baseMapper.delZGAndFGByOrgSid(sid);
}
/**
* 查询该组织中是否存在该人员的该种类型关系
* @param sid 组织机构sid
* @param zgStaffSid 人员sid
* @param type 主管分管员工
* @return
*/
public int selectByStaffAndOrg(String sid, String zgStaffSid, String type) {
return baseMapper.selectByStaffAndOrg(sid,zgStaffSid,type);
}
public int selectByStaffAndType(String sid, String zgStaffSid, String type) {
return baseMapper.selectByStaffAndType(sid,zgStaffSid,type);
}
public int deleteByStaffSidAndType(String orgSid, String zgStaffSid, String type) {
return baseMapper.deleteByStaffSidAndType(orgSid,zgStaffSid,type);
}
}
Loading…
Cancel
Save