Browse Source

添加协同办公oa获取组织机构的树形

master
dimengzhe 3 months ago
parent
commit
b3870144f5
  1. 3
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  2. 26
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OaSysOrganizationVo.java
  3. 6
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
  4. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
  5. 4
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java
  6. 24
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml
  7. 16
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  8. 44
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java

3
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -400,6 +400,9 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask1.setCreateTime(comment.getTime());
flowTask1.setTaskUserInfos(ll);
flowTask1.setComment(build);
flowTask1.setProcDefId(flowTask.getProcDefId());
flowTask1.setProcVars(flowTask.getProcVars());
flowTask1.setTaskDefKey(histIns.getActivityId());
hisFlowList.add(flowTask1);
} else {
flowTask.setComment(build);

26
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/OaSysOrganizationVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.portal.api.sysorganization;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/1/15
**/
@Data
public class OaSysOrganizationVo {
@ApiModelProperty("部门/组织sid")
private String sid;
@ApiModelProperty("部门/组织名称|员工姓名")
private String name;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("部门所在路径(机构名称,不包含集团,取第一个/后的所有)")
private String orgNamePath;
}

6
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java

@ -105,6 +105,12 @@ public interface SysOrganizationFeign {
@GetMapping("/selectAppOrganization")
public ResultBean<Map<String, Object>> selectAppOrganization(@RequestParam(value = "sid", required = false) String sid);
@ApiOperation("手机OA获取组织架构")
@ResponseBody
@GetMapping("/selectAppOrganization2")
public ResultBean<Map<String, Object>> selectAppOrganization2(@RequestParam(value = "sid", required = false) String sid);
@ApiOperation("组织架构")
@ResponseBody
@GetMapping("/selectListOrg")

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java

@ -117,6 +117,11 @@ public class SysOrganizationFeignFallback implements SysOrganizationFeign {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/selectAppOrganization无法访问");
}
@Override
public ResultBean<Map<String, Object>> selectAppOrganization2(String sid) {
return null;
}
@Override
public ResultBean<List<SysOrgVo>> selectListOrg() {
return null;

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

@ -50,8 +50,12 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
List<AppContactSysOrganizationVo> selectAppOrganization();
List<OaSysOrganizationVo> selectAppOrganization2();
List<AppContactSysOrganizationVo> selectAppOrganizationByPsid(@Param("psid") String psid);
List<OaSysOrganizationVo> selectAppOrganizationByPsid2(@Param("psid") String psid);
List<SysOrgVo> treeList(String psid);
SysOrganization selectOrgCode();

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

@ -77,6 +77,15 @@
WHERE org.psid = (SELECT sid FROM sys_organization WHERE psid = '0')
</select>
<select id="selectAppOrganization2"
resultType="com.yxt.anrui.portal.api.sysorganization.OaSysOrganizationVo">
SELECT sid,
name,
IF((SELECT count(1) FROM sys_organization WHERE psid = org.sid) = 0, org.orgSidPath, '') orgSidPath
FROM sys_organization org
WHERE org.psid = (SELECT sid FROM sys_organization WHERE psid = '0')
</select>
<select id="selectAppOrganizationByPsid"
resultType="com.yxt.anrui.portal.api.sysorganization.AppContactSysOrganizationVo">
SELECT org.sid,
@ -87,6 +96,15 @@
WHERE org.psid = #{psid}
</select>
<select id="selectAppOrganizationByPsid2"
resultType="com.yxt.anrui.portal.api.sysorganization.OaSysOrganizationVo">
SELECT org.sid,
org.name,
IF((SELECT count(1) FROM sys_organization WHERE psid = org.sid) = 0, org.orgSidPath, '') orgSidPath
FROM sys_organization org
WHERE org.psid = #{psid}
</select>
<select id="treeList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
@ -108,7 +126,8 @@
<select id="selectOrgCodeByPsid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganization">
SELECT *
FROM sys_organization LIMIT 0,1
FROM sys_organization
LIMIT 0,1
</select>
<select id="selectTreeList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgListVo">
@ -316,8 +335,7 @@
AND psid = #{sid}
</select>
<select id="selectStaffListByUseOrgSid" resultType="com.yxt.anrui.portal.api.sysorganization.SysFinanceVo">
SELECT DISTINCT
u.sid userSid,
SELECT DISTINCT u.sid userSid,
s.`name`
FROM sys_user as u
LEFT JOIN sys_user_role as ur ON u.sid = ur.userSid

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

@ -319,6 +319,22 @@ public class SysOrganizationRest implements SysOrganizationFeign {
return new ResultBean<Map<String, Object>>().success().setData(map);
}
@Override
public ResultBean<Map<String, Object>> selectAppOrganization2(String sid) {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> nameList = sysOrganizationService.selectOrgNameList(sid);
List<OaSysOrganizationVo> list = null;
if (StringUtils.isBlank(sid)) { // 组织架构
list = sysOrganizationService.selectAppOrganization2();
} else { // 组织架构子集
list = sysOrganizationService.selectAppOrganizationSub2(sid);
}
map.put("nameList", nameList);
map.put("list", list);
return new ResultBean<Map<String, Object>>().success().setData(map);
}
@Override
public ResultBean<List<SysOrgVo>> selectListOrg() {
ResultBean<List<SysOrgVo>> rb = ResultBean.fireFail();

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

@ -31,6 +31,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import static java.util.stream.Collectors.toList;
@ -347,6 +348,26 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
return list;
}
public List<OaSysOrganizationVo> selectAppOrganization2() {
List<OaSysOrganizationVo> list = baseMapper.selectAppOrganization2();
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getOrgSidPath())) {
String orgNamePath = "";
String result = vo.getOrgSidPath().split("/", 2)[1];
List<String> orgList = Arrays.asList(result.split("/"));
for (int i = 0; i < orgList.size(); i++) {
String name = fetchBySid(orgList.get(i)).getName();
orgNamePath = orgNamePath + name;
if (i != orgList.size() - 1) {
orgNamePath = orgNamePath + "/";
}
}
vo.setOrgNamePath(orgNamePath);
}
});
return list;
}
public List<AppContactSysOrganizationVo> selectAppOrganizationSub(String psid) {
List<AppContactSysOrganizationVo> list = baseMapper.selectAppOrganizationByPsid(psid);
list.stream().forEach(vo -> {
@ -357,6 +378,29 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
return list;
}
public List<OaSysOrganizationVo> selectAppOrganizationSub2(String psid) {
List<OaSysOrganizationVo> list = baseMapper.selectAppOrganizationByPsid2(psid);
list.stream().forEach(vo -> {
if (StringUtils.isNotBlank(vo.getOrgSidPath())) {
// 使用 StringBuilder 进行字符串拼接
StringBuilder orgNamePath = new StringBuilder();
String result = vo.getOrgSidPath().split("/", 2)[1];
List<String> orgList = Arrays.asList(result.split("/"));
// 遍历组织ID列表,拼接名称路径
for (int i = 0; i < orgList.size(); i++) {
String name = fetchBySid(orgList.get(i)).getName();
orgNamePath.append(name);
if (i != orgList.size() - 1) {
orgNamePath.append("/");
}
}
// 设置生成的组织名称路径
vo.setOrgNamePath(orgNamePath.toString());
}
});
return list;
}
/**
* @param
* @description: 获取组织架构即使用组织下拉框

Loading…
Cancel
Save