From 2c47896f3eeb5853f1ec44306a7834352c867ad9 Mon Sep 17 00:00:00 2001 From: wulin Date: Wed, 25 Nov 2020 09:31:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=92=89=E9=92=89=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=97=B6=E6=B2=A1=E6=9C=89=E5=88=A0=E9=99=A4=E5=B7=B2?= =?UTF-8?q?=E7=BB=8F=E5=8E=BB=E6=8E=89=E7=9A=84=E9=83=A8=E9=97=A8=EF=BC=8C?= =?UTF-8?q?=E5=90=8C=E6=97=B6=E8=8E=B7=E5=8F=96=E9=83=A8=E9=97=A8=E5=B1=9E?= =?UTF-8?q?=E6=80=A7=E5=88=97=E8=A1=A8=E6=97=B6=E6=B2=A1=E6=9C=89=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=88=A0=E9=99=A4=E7=9A=84=E9=83=A8=E9=97=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/dao/DepartmentsDao.java | 2 ++ .../modules/app/service/DepartmentsService.java | 4 ++++ .../app/service/impl/DepartmentsServiceImpl.java | 10 ++++++++++ .../lz/modules/job/business/DingtalkBusiness.java | 15 +++++++++++++++ .../resources/mapper/generator/DepartmentsDao.xml | 10 +++++++++- 5 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java index 7fa7d9d9..b93b93a4 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsDao.java @@ -57,4 +57,6 @@ public interface DepartmentsDao extends BaseMapper { List selectEntityByParentDepartmentIds(@Param("dIds") List dIds); DepartmentsEntity selectParentDepartmentByDepartmentId(String departmentId); + + int delDepartments(@Param("list") List departmentsEntities); } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsService.java b/src/main/java/com/lz/modules/app/service/DepartmentsService.java index 78d42872..41c6bf54 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsService.java @@ -57,5 +57,9 @@ public interface DepartmentsService extends IService { //查找父级部门 DepartmentsEntity selectParentDepartmentByDepartmentId(String departmentId); + + List selectAll(); + + int delDepartments(List departmentsEntities); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java index ea3648da..e19201d8 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsServiceImpl.java @@ -295,5 +295,15 @@ public class DepartmentsServiceImpl extends ServiceImpl selectAll(){ + return departmentsDao.selectAll(); + } + + @Override + public int delDepartments(List departmentsEntities){ + return departmentsDao.delDepartments(departmentsEntities); + } } diff --git a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java index f859f94f..235da916 100644 --- a/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java +++ b/src/main/java/com/lz/modules/job/business/DingtalkBusiness.java @@ -6,6 +6,7 @@ import com.lz.common.utils.DateUtils; import com.lz.common.utils.DingTalkUtil; import com.lz.common.utils.R; import com.lz.modules.app.dao.StaffDao; +import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.entity.StaffOccupationEntity; import com.lz.modules.app.entity.StaffSimpleInfo; @@ -30,6 +31,7 @@ import com.lz.modules.third.entity.ThirdMsgSendRecord; import com.lz.modules.third.entity.WorkMsg; import com.lz.modules.third.service.ThirdAppConfigService; import com.lz.modules.third.service.ThirdMsgSendRecordService; +import org.apache.commons.collections.map.CompositeMap; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -131,7 +133,12 @@ public class DingtalkBusiness { if(token != null && token.length() > 0){ //获取所有的部门详情 Map departmentInfosBos = dingTalkUtil.getDepartmentDetails(token, "1"); + if(departmentInfosBos.size() > 0){ + //获取所有部门信息 + List departmentsEntities = departmentsService.selectAll(); + Map mapDeparts = + departmentsEntities.stream().collect(Collectors.toMap(DepartmentsEntity::getDepartmentId, Function.identity(), (e, r) -> e)); //更新数据库中的部门相关信息 //departmentsService.updateDepartmentInfos(departmentInfosBos); //删除原有的对应关系下面在更新 @@ -140,6 +147,10 @@ public class DingtalkBusiness { staffOccupationService.updateAllOccupation(); //获取飞书部门对应的用户详情 for (String key : departmentInfosBos.keySet()) { + if(mapDeparts.containsKey(key)){ + //部门存在 + mapDeparts.remove(key); + } DepartmentInfosBo departmentInfo = departmentInfosBos.get(key); //获取部门用户详情 List staffs = dingTalkUtil.getDepartmentStaffDetails(token, departmentInfo.getId()); @@ -178,6 +189,10 @@ public class DingtalkBusiness { DepartmentInfosBo departmentInfo = departmentInfosBos.get(key); departmentsService.updateDepartmentInfo(departmentInfo); } + if(mapDeparts.size() > 0){//有需要删除的部门信息 + departmentsEntities = mapDeparts.values().stream().collect(Collectors.toList()); + departmentsService.delDepartments(departmentsEntities); + } }else{ logger.info("部门信息为空"); diff --git a/src/main/resources/mapper/generator/DepartmentsDao.xml b/src/main/resources/mapper/generator/DepartmentsDao.xml index 6ce1c363..ba3c028f 100644 --- a/src/main/resources/mapper/generator/DepartmentsDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsDao.xml @@ -25,7 +25,7 @@ @@ -179,5 +179,13 @@ and is_delete=0 limit 1 + + UPDATE lz_departments set is_delete = 1 WHERE id in( + + #{item.id} + + ) + +