Browse Source

组织机构部门修改时,将该部门下的员工的关联表中的部门名称以及部门名称全路径和部门全路径更新

master
dimengzhe 2 years ago
parent
commit
1ccdab3428
  1. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java
  2. 23
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml
  3. 9
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  4. 40
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java
  5. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.java
  6. 4
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgMapper.xml
  7. 4
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstafforg/SysStaffOrgService.java

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java

@ -120,4 +120,6 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
List<SysOrgVo> getListDeptByOrgSid(String orgSid);
List<SysOrganizationVo> selectOrgByPSid(String psid);
int updateOrgBySid(@Param("orgSid") String sid, @Param("orgName") String orgName, @Param("orgSidPath") String orgSidPath, @Param("orgNamePath") String orgNamePath);
}

23
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml

@ -188,11 +188,12 @@
</select>
<select id="selectByOrgDeptSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgStaffVo">
select distinct si.name staffName, si.sid staffSid,su.sid userSid
select distinct si.name staffName, si.sid staffSid, su.sid userSid
from sys_staff_org so
left join sys_staffinfo si on so.staffSid = si.sid
left join sys_user su on su.staffSid = si.sid
where so.orgSid = #{orgDeptSid} and si.personTypeKey != '01'
left join sys_user su on su.staffSid = si.sid
where so.orgSid = #{orgDeptSid}
and si.personTypeKey != '01'
</select>
<select id="selectByPSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
@ -203,7 +204,9 @@
</select>
<select id="selectOrgSidList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
select sid,name,orgCode from sys_organization so where so.isDept = 0
select sid, name, orgCode
from sys_organization so
where so.isDept = 0
</select>
<select id="getListDeptByOrgSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgVo">
@ -216,6 +219,16 @@
<select id="selectOrgByPSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath
FROM sys_organization so
WHERE isDept = 0 AND so.psid = #{psid}
WHERE isDept = 0
AND so.psid = #{psid}
</select>
<update id="updateOrgBySid">
update sys_staff_org
set orgName = #{orgName},
orgSidPath = #{orgSidPath},
orgNamePath = #{orgNamePath}
where orgSid = #{orgSid}
and manageType = '3'
</update>
</mapper>

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

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
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.api.sysuser.SysUser;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
@ -138,6 +139,14 @@ public class SysOrganizationRest implements SysOrganizationFeign {
return rb.setMsg(resultBean.getMsg());
}
}
//查询所有该orgSid的staffSid的类型为员工的
List<SysStaffOrg> staffList = sysStaffOrgService.selectStaffByOrgSid(sid,"3");
staffList.removeAll(Collections.singleton(null));
if(!staffList.isEmpty()){
//更新关联表中的orgName和orgNamePath以及orgSidPath
//查询该部门的全部信息
ResultBean resultBean = sysOrganizationService.updateStaffList(sysOrganization);
}
sysOrganizationService.updateById(sysOrganization);
//修改金蝶组织信息
/*List<OrgOrganizations> orgOrganizationsList = new ArrayList<>();

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

@ -227,15 +227,6 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
}
sysStaffOrg.setOrgNamePath(orgName.toString());
}
/*String psid = entity.getPsid();
if (StringUtils.isNotBlank(psid)) {
SysOrganization sysOrganization = this.fetchBySid(psid);
if (sysOrganization != null) {
sysStaffOrg.setOrgNamePath(sysOrganization.getName() + "/" + entity.getName());
} else {
sysStaffOrg.setOrgNamePath(entity.getName());
}
}*/
sysStaffOrgService.save(sysStaffOrg);
//==========================添加清空变化的用户的token
List<SysStaffOrgVo> sysStaffOrgVos1 = sysStaffOrgService.selectByStaffS(sid);
@ -633,4 +624,35 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
List<SysOrganizationVo> sysOrganizationVos = baseMapper.selectOrgByPSid(psid);
return rb.success().setData(sysOrganizationVos);
}
public ResultBean updateStaffList(SysOrganization entity) {
ResultBean rb = ResultBean.fireFail();
//部门名称
String orgName = entity.getName();
//部门sid全路径
String orgSidPath = entity.getOrgSidPath();
//部门名称全路径
String orgNamePath = "";
if(StringUtils.isNotBlank(orgSidPath)){
StringBuilder orgNamePath1 = new StringBuilder();
List<String> split = Arrays.asList(orgSidPath.split("/"));
if(split.size()>1){
for(int i = 0;i<split.size();i++){
SysOrganization sysOrganization = fetchBySid(split.get(i));
if(i == 0){
orgNamePath1 = orgNamePath1.append(sysOrganization.getName());
}else{
orgNamePath1 = orgNamePath1.append("/").append(sysOrganization.getName());
}
}
}else{
SysOrganization sysOrganization = fetchBySid(split.get(0));
orgNamePath1 = orgNamePath1.append(sysOrganization.getName());
}
orgNamePath = orgNamePath1.toString();
}
//更新关联该部门的所有员工的关联表中的部门名称、部门全路径以及名称全路径
baseMapper.updateOrgBySid(entity.getSid(),orgName,orgSidPath,orgNamePath);
return rb.success();
}
}

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

@ -109,4 +109,6 @@ public interface SysStaffOrgMapper extends BaseMapper<SysStaffOrg> {
List<SysStaffOrg> selectOrgBySid(@Param("orgPath") String orgPath, @Param("staffSid") String staffSid);
List<SysOrgPathList> getList(String staffSid);
List<SysStaffOrg> selectStaffByOrgSid(@Param("orgSid") String sid, @Param("type") String type);
}

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

@ -112,4 +112,8 @@
<select id="getList" resultType="com.yxt.anrui.portal.api.sysuserdefaultorg.SysOrgPathList">
select sid as staffOrgSid,orgSidPath,orgNamePath from sys_staff_org where staffSid = #{staffSid}
</select>
<select id="selectStaffByOrgSid" resultType="com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg">
select * from sys_staff_org where orgSid = #{orgSid} and manageType = #{type}
</select>
</mapper>

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

@ -308,4 +308,8 @@ public class SysStaffOrgService extends MybatisBaseService<SysStaffOrgMapper, Sy
public List<SysOrgPathList> getList(String staffSid) {
return baseMapper.getList(staffSid);
}
public List<SysStaffOrg> selectStaffByOrgSid(String sid, String type) {
return baseMapper.selectStaffByOrgSid(sid,type);
}
}
Loading…
Cancel
Save