提交修改
This commit is contained in:
commit
547ad3b9f8
@ -98,10 +98,10 @@ public class DingTalkUtil {
|
|||||||
* @param accessToken
|
* @param accessToken
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public List<DepartmentInfosBo> getDepartmentDetails(String accessToken, String departmentIds) {
|
public Map<String, DepartmentInfosBo> getDepartmentDetails(String accessToken, String departmentIds) {
|
||||||
try {
|
try {
|
||||||
//下面获取所有部门的i就按单信息
|
//下面获取所有部门的i就按单信息
|
||||||
List<DepartmentInfosBo> list = new ArrayList<>();
|
Map<String, DepartmentInfosBo> list = new HashMap<>();
|
||||||
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
|
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/department/list");
|
||||||
OapiDepartmentListRequest req = new OapiDepartmentListRequest();
|
OapiDepartmentListRequest req = new OapiDepartmentListRequest();
|
||||||
req.setFetchChild(true);
|
req.setFetchChild(true);
|
||||||
@ -130,7 +130,7 @@ public class DingTalkUtil {
|
|||||||
departmentInfosBo.setStatus(1);
|
departmentInfosBo.setStatus(1);
|
||||||
departmentInfosBo.setOrder(json.getInteger("order"));
|
departmentInfosBo.setOrder(json.getInteger("order"));
|
||||||
|
|
||||||
list.add(departmentInfosBo);
|
list.put(departmentInfosBo.getId(), departmentInfosBo);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
logger.info("获取部门详情异常{}", rsp.getBody());
|
logger.info("获取部门详情异常{}", rsp.getBody());
|
||||||
|
|||||||
@ -37,4 +37,6 @@ public interface DepartmentsDao extends BaseMapper<DepartmentsEntity> {
|
|||||||
DepartmentsEntity selectByDepartmentId(@Param("departmentId") String departmentId);
|
DepartmentsEntity selectByDepartmentId(@Param("departmentId") String departmentId);
|
||||||
|
|
||||||
StaffDepartmentDto selectStaffAllDepartments(@Param("departmentId") String departmentId);
|
StaffDepartmentDto selectStaffAllDepartments(@Param("departmentId") String departmentId);
|
||||||
|
|
||||||
|
int addDepartment(@Param("departments") DepartmentsEntity departments);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,6 +25,8 @@ public interface DepartmentsService extends IService<DepartmentsEntity> {
|
|||||||
|
|
||||||
void updateDepartmentInfos(List<DepartmentInfosBo> departmentInfosBos);
|
void updateDepartmentInfos(List<DepartmentInfosBo> departmentInfosBos);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
List<DepartmentsDto> getDepartmentTree();
|
List<DepartmentsDto> getDepartmentTree();
|
||||||
|
|
||||||
List<DepartmentsDto> selectByParentDepartmentId(String deparentId);
|
List<DepartmentsDto> selectByParentDepartmentId(String deparentId);
|
||||||
@ -34,5 +36,7 @@ public interface DepartmentsService extends IService<DepartmentsEntity> {
|
|||||||
DepartmentsEntity selectByDepartmentId(String departmentId);
|
DepartmentsEntity selectByDepartmentId(String departmentId);
|
||||||
|
|
||||||
StaffDepartmentDto selectStaffAllDepartments(String departmentId);
|
StaffDepartmentDto selectStaffAllDepartments(String departmentId);
|
||||||
|
|
||||||
|
void updateDepartmentInfo(DepartmentInfosBo departmentInfosBo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -55,7 +55,7 @@ public class DepartmentsServiceImpl extends ServiceImpl<DepartmentsDao, Departme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DepartmentsDto> getDepartmentTree() {
|
public List<DepartmentsDto> getDepartmentTree() {
|
||||||
List<DepartmentsDto> departmentsParentsList = departmentsDao.getDepartmentsByparentId("0");
|
List<DepartmentsDto> departmentsParentsList = departmentsDao.getDepartmentsByparentId("1");
|
||||||
getDepartmentTreeList(departmentsParentsList);
|
getDepartmentTreeList(departmentsParentsList);
|
||||||
return departmentsParentsList;
|
return departmentsParentsList;
|
||||||
}
|
}
|
||||||
@ -125,6 +125,22 @@ public class DepartmentsServiceImpl extends ServiceImpl<DepartmentsDao, Departme
|
|||||||
departmentsEntity.setStatus(departmentInfosBo.getStatus()); //部门状态【0 无效,1 有效】
|
departmentsEntity.setStatus(departmentInfosBo.getStatus()); //部门状态【0 无效,1 有效】
|
||||||
return departmentsEntity;
|
return departmentsEntity;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void updateDepartmentInfo(DepartmentInfosBo departmentInfosBo) {
|
||||||
|
try {
|
||||||
|
departmentsDao.updateDepartmentStatus();
|
||||||
|
DepartmentsEntity departmentsEntity = convertDepartmentEntity(departmentInfosBo);
|
||||||
|
DepartmentsEntity departmentBo = departmentsDao.getDepartmentByDepartmentId(departmentInfosBo.getId());
|
||||||
|
if (departmentBo != null) {
|
||||||
|
departmentsEntity.setId(departmentBo.getId());
|
||||||
|
departmentsDao.updateDepartment(departmentsEntity);
|
||||||
|
}else{
|
||||||
|
departmentsDao.addDepartment(departmentsEntity);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.info("updateDepartmentInfos error : " + e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,7 +23,9 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author fumeiai
|
* @author fumeiai
|
||||||
@ -86,21 +88,39 @@ public class DingtalkBusiness {
|
|||||||
//获取Token
|
//获取Token
|
||||||
String token = dingTalkUtil.getAccessToken(appid);
|
String token = dingTalkUtil.getAccessToken(appid);
|
||||||
if(token != null && token.length() > 0){
|
if(token != null && token.length() > 0){
|
||||||
|
|
||||||
//获取所有的部门详情
|
//获取所有的部门详情
|
||||||
List<DepartmentInfosBo> departmentInfosBos = dingTalkUtil.getDepartmentDetails(token, "1");
|
Map<String, DepartmentInfosBo> departmentInfosBos = dingTalkUtil.getDepartmentDetails(token, "1");
|
||||||
if(departmentInfosBos.size() > 0){
|
if(departmentInfosBos.size() > 0){
|
||||||
//更新数据库中的部门相关信息
|
//更新数据库中的部门相关信息
|
||||||
departmentsService.updateDepartmentInfos(departmentInfosBos);
|
//departmentsService.updateDepartmentInfos(departmentInfosBos);
|
||||||
//删除原有的对应关系下面在更新
|
//删除原有的对应关系下面在更新
|
||||||
departmentsStaffRelateService.deleteAllRelates();
|
departmentsStaffRelateService.deleteAllRelates();
|
||||||
//未在飞书组织架构里的成员,置为离职(全部置为离职,再把在职的恢复)
|
//未在飞书组织架构里的成员,置为离职(全部置为离职,再把在职的恢复)
|
||||||
staffOccupationService.updateAllOccupation();
|
staffOccupationService.updateAllOccupation();
|
||||||
//获取飞书部门对应的用户详情
|
//获取飞书部门对应的用户详情
|
||||||
for (DepartmentInfosBo departmentInfo : departmentInfosBos) {
|
for (String key : departmentInfosBos.keySet()) {
|
||||||
|
DepartmentInfosBo departmentInfo = departmentInfosBos.get(key);
|
||||||
//获取部门用户详情
|
//获取部门用户详情
|
||||||
List<DepartmentStaffBo> staffs = dingTalkUtil.getDepartmentStaffDetails(token, departmentInfo.getId());
|
List<DepartmentStaffBo> staffs = dingTalkUtil.getDepartmentStaffDetails(token, departmentInfo.getId());
|
||||||
logger.info("=============================" + departmentInfo.getName() + "================================");
|
logger.info("=============================" + departmentInfo.getName() + "================================");
|
||||||
|
|
||||||
|
//departmentInfo.setMemberCount(staffs.size());//设置部门人数,钉钉没有返回部门人数,只能这样设置
|
||||||
|
//计算父类的
|
||||||
|
DepartmentInfosBo integer = departmentInfo;
|
||||||
|
while(!integer.getParentId().equals("1")){
|
||||||
|
integer = departmentInfosBos.get(integer.getParentId());
|
||||||
|
if(integer.getMemberCount() == null){
|
||||||
|
integer.setMemberCount(0);
|
||||||
|
}
|
||||||
|
integer.setMemberCount(integer.getMemberCount() + staffs.size());
|
||||||
|
|
||||||
|
}
|
||||||
|
//获取自己的
|
||||||
|
if(departmentInfo.getMemberCount() == null){
|
||||||
|
departmentInfo.setMemberCount(0);
|
||||||
|
}
|
||||||
|
departmentInfo.setMemberCount(departmentInfo.getMemberCount() + staffs.size());
|
||||||
|
|
||||||
if(staffs.size() > 0){
|
if(staffs.size() > 0){
|
||||||
//循环录入到员工信息表中
|
//循环录入到员工信息表中
|
||||||
List<StaffEntity> staffIds = staffService.updateStaffsInfo(staffs);
|
List<StaffEntity> staffIds = staffService.updateStaffsInfo(staffs);
|
||||||
@ -111,6 +131,11 @@ public class DingtalkBusiness {
|
|||||||
enterStaffOccupationInfos(staffs);
|
enterStaffOccupationInfos(staffs);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (String key : departmentInfosBos.keySet()) {
|
||||||
|
DepartmentInfosBo departmentInfo = departmentInfosBos.get(key);
|
||||||
|
departmentsService.updateDepartmentInfo(departmentInfo);
|
||||||
|
}
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
logger.info("部门信息为空");
|
logger.info("部门信息为空");
|
||||||
}
|
}
|
||||||
|
|||||||
@ -91,5 +91,13 @@
|
|||||||
where a.department_id = #{departmentId}
|
where a.department_id = #{departmentId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<insert id="addDepartment" useGeneratedKeys="true" keyProperty="id">
|
||||||
|
INSERT INTO
|
||||||
|
lz_departments(department_id,department_parent_id,member_count,department_name,chat_id,leader_employee_id,leader_open_id,status)
|
||||||
|
VALUES
|
||||||
|
(#{department.departmentId},#{department.departmentParentId},#{department.memberCount},#{department.departmentName},#{department.chatId},#{department.leaderEmployeeId},#{department.leaderOpenId},#{department.status})
|
||||||
|
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user