diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c61fac52..466096f2 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -3,10 +3,25 @@
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
@@ -154,7 +169,7 @@
-
+
@@ -212,6 +227,16 @@
79
+
+ file://$PROJECT_DIR$/src/test/java/com/lz/FumeiaiTest.java
+ 42
+
+
+
+ file://$PROJECT_DIR$/src/main/java/com/lz/modules/job/business/FeishuBusiness.java
+ 80
+
+
diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java
index 80730388..0c6e86ff 100644
--- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java
+++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java
@@ -32,10 +32,15 @@ public interface DepartmentsStaffRelateDao extends BaseMapper {
StaffOccupationInfoDto getOccupationByStaffId(@Param("staffId") Long staffId);
+ void updateAllOccupation();
}
diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java
index a8e6a430..64dfbbdf 100644
--- a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java
+++ b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java
@@ -24,5 +24,8 @@ public interface DepartmentsStaffRelateService extends IService staffIds);
+ void deleteAllRelates();
+
+
}
diff --git a/src/main/java/com/lz/modules/app/service/StaffOccupationService.java b/src/main/java/com/lz/modules/app/service/StaffOccupationService.java
index 61082eca..674e5d8c 100644
--- a/src/main/java/com/lz/modules/app/service/StaffOccupationService.java
+++ b/src/main/java/com/lz/modules/app/service/StaffOccupationService.java
@@ -26,5 +26,7 @@ public interface StaffOccupationService extends IService
int addStaffOccupationBatch(List staffs);
StaffOccupationInfoDto getOccupationByStaffId(Long id);
+
+ void updateAllOccupation();
}
diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java
index 15ee2596..45152e30 100644
--- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java
+++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java
@@ -39,7 +39,7 @@ public class DepartmentsStaffRelateServiceImpl extends ServiceImpl staffIds) {
List departStaffRelateList = Lists.newArrayList();
for (Long staffId : staffIds) {
- String departId = departmentsStaffRelateDao.getRelateInfoByStaffId(staffId);
+ String departId = departmentsStaffRelateDao.getRelateByStaffIdAndDepartmentId(staffId, departmentId);
if (StringUtil.isEmpty(departId)) {
DepartmentsStaffRelateEntity departmentsStaffRelateBo = new DepartmentsStaffRelateEntity();
departmentsStaffRelateBo.setDepartmentId(departmentId);
@@ -53,5 +53,10 @@ public class DepartmentsStaffRelateServiceImpl extends ServiceImpl departmentInfosBos = feishuUtil.getDepartmentDetails(token, topDepartmentIds);
//更新数据库中的部门相关信息
departmentsService.updateDepartmentInfos(departmentInfosBos);
+ departmentsStaffRelateService.deleteAllRelates();
+ //未在飞书组织架构里的成员,置为离职(全部置为离职,再把在职的恢复)
+ staffOccupationService.updateAllOccupation();
//获取飞书部门对应的用户详情
for (DepartmentInfosBo departmentInfo : departmentInfosBos) {
//获取部门用户详情
List staffs = feishuUtil.getDepartmentStaffDetails(token, departmentInfo.getId());
-
+ System.out.println("=============================" + departmentInfo.getName() + "================================");
for (DepartmentStaffBo staff : staffs)
System.out.println(staff.getName());
//循环录入到员工信息表中
@@ -88,8 +92,6 @@ public class FeishuBusiness {
//录入员工职业信息表
enterStaffOccupationInfos(staffs);
- //未在飞书组织架构里的成员,置为离职
-
}
System.out.println(departmentInfosBos.size());
@@ -108,8 +110,9 @@ public class FeishuBusiness {
staffOccupation.setEmployeeNo(departmentStaffBo.getEmployeeNo());
staffOccupation.setStaffType(departmentStaffBo.getEmployeeType());
staffOccupation.setStaffStatus(departmentStaffBo.getStatus());
+ staffOccupation.setEntryTime(DateUtils.getCurrentDate());
StaffOccupations.add(staffOccupation);
- } else if (staffOccupationEntity.getStaffStatus().intValue() != departmentStaffBo.getStatus().intValue()) {
+ } else {
staffOccupationService.updateStatusByStaffId(staffId, departmentStaffBo.getStatus());
}
}
diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml
index dcfbae40..5fb0aadb 100644
--- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml
+++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml
@@ -21,12 +21,20 @@
+
+ update lz_departments_staff_relate set is_delete=1
+
+
+
+
- update lz_departments_staff_relate set update_time=now(), department_id=#{departmentId} where is_delete=0 and staff_id = #{staffId}
+ update lz_departments_staff_relate set is_delete=0 and update_time=now(), department_id=#{departmentId} where is_delete=0 and staff_id = #{staffId}
diff --git a/src/main/resources/mapper/generator/StaffOccupationDao.xml b/src/main/resources/mapper/generator/StaffOccupationDao.xml
index 3b5ff56c..39209b41 100644
--- a/src/main/resources/mapper/generator/StaffOccupationDao.xml
+++ b/src/main/resources/mapper/generator/StaffOccupationDao.xml
@@ -37,7 +37,11 @@
- update lz_staff_occupation set status=#{status} where is_delete=0 and staff_id = #{staffId}
+ update lz_staff_occupation set staff_status=#{status},resignation_time=null where is_delete=0 and staff_id = #{staffId}
+
+
+
+ update lz_staff_occupation set staff_status=1,resignation_time=now() where is_delete=0 and staff_status=0
diff --git a/target/classes/com/lz/modules/app/dao/DepartmentsStaffRelateDao.class b/target/classes/com/lz/modules/app/dao/DepartmentsStaffRelateDao.class
index f24b88af..bfe9e4c2 100644
Binary files a/target/classes/com/lz/modules/app/dao/DepartmentsStaffRelateDao.class and b/target/classes/com/lz/modules/app/dao/DepartmentsStaffRelateDao.class differ
diff --git a/target/classes/com/lz/modules/app/dao/StaffOccupationDao.class b/target/classes/com/lz/modules/app/dao/StaffOccupationDao.class
index 2efd6981..3d01e38a 100644
Binary files a/target/classes/com/lz/modules/app/dao/StaffOccupationDao.class and b/target/classes/com/lz/modules/app/dao/StaffOccupationDao.class differ
diff --git a/target/classes/com/lz/modules/app/service/DepartmentsStaffRelateService.class b/target/classes/com/lz/modules/app/service/DepartmentsStaffRelateService.class
index 4d479181..a3bbe81b 100644
Binary files a/target/classes/com/lz/modules/app/service/DepartmentsStaffRelateService.class and b/target/classes/com/lz/modules/app/service/DepartmentsStaffRelateService.class differ
diff --git a/target/classes/com/lz/modules/app/service/StaffOccupationService.class b/target/classes/com/lz/modules/app/service/StaffOccupationService.class
index 49721262..9f53667c 100644
Binary files a/target/classes/com/lz/modules/app/service/StaffOccupationService.class and b/target/classes/com/lz/modules/app/service/StaffOccupationService.class differ
diff --git a/target/classes/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.class b/target/classes/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.class
index c72109d1..fe383147 100644
Binary files a/target/classes/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.class and b/target/classes/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.class differ
diff --git a/target/classes/com/lz/modules/app/service/impl/StaffOccupationServiceImpl.class b/target/classes/com/lz/modules/app/service/impl/StaffOccupationServiceImpl.class
index b62b6344..a4f3fa1c 100644
Binary files a/target/classes/com/lz/modules/app/service/impl/StaffOccupationServiceImpl.class and b/target/classes/com/lz/modules/app/service/impl/StaffOccupationServiceImpl.class differ
diff --git a/target/classes/com/lz/modules/job/business/FeishuBusiness.class b/target/classes/com/lz/modules/job/business/FeishuBusiness.class
index 7ae170e3..b0480276 100644
Binary files a/target/classes/com/lz/modules/job/business/FeishuBusiness.class and b/target/classes/com/lz/modules/job/business/FeishuBusiness.class differ
diff --git a/target/classes/mapper/generator/DepartmentsStaffRelateDao.xml b/target/classes/mapper/generator/DepartmentsStaffRelateDao.xml
index dcfbae40..5fb0aadb 100644
--- a/target/classes/mapper/generator/DepartmentsStaffRelateDao.xml
+++ b/target/classes/mapper/generator/DepartmentsStaffRelateDao.xml
@@ -21,12 +21,20 @@
+
+ update lz_departments_staff_relate set is_delete=1
+
+
+
+
- update lz_departments_staff_relate set update_time=now(), department_id=#{departmentId} where is_delete=0 and staff_id = #{staffId}
+ update lz_departments_staff_relate set is_delete=0 and update_time=now(), department_id=#{departmentId} where is_delete=0 and staff_id = #{staffId}
diff --git a/target/classes/mapper/generator/StaffOccupationDao.xml b/target/classes/mapper/generator/StaffOccupationDao.xml
index 3b5ff56c..39209b41 100644
--- a/target/classes/mapper/generator/StaffOccupationDao.xml
+++ b/target/classes/mapper/generator/StaffOccupationDao.xml
@@ -37,7 +37,11 @@
- update lz_staff_occupation set status=#{status} where is_delete=0 and staff_id = #{staffId}
+ update lz_staff_occupation set staff_status=#{status},resignation_time=null where is_delete=0 and staff_id = #{staffId}
+
+
+
+ update lz_staff_occupation set staff_status=1,resignation_time=now() where is_delete=0 and staff_status=0