|
@@ -29,10 +29,7 @@ import java.time.Duration;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.LocalTime;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
@@ -110,6 +107,52 @@ public class CompanyController {
|
|
|
@Resource
|
|
|
private UserCorpwxTimeMapper userCorpwxTimeMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private ProjectAuditorMapper projectAuditorMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectBasecostMapper projectBasecostMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectBasecostSettingMapper projectBasecostSettingMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectDocfolderMapper projectDocfolderMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectDocumentMapper projectDocumentMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectNotifyUserMapper projectNotifyUserMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectPercentageMapper projectPercentageMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectProfessionMapper projectProfessionMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectTimerMapper projectTimerMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ProjectUserSalaryMapper projectUserSalaryMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private SubProjectMapper subProjectMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ReportAuditLogMapper reportAuditLogMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ReportExtraDegreeMapper reportExtraDegreeMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ReportImportLogMapper reportImportLogMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private ReportProfessionProgressMapper reportProfessionProgressMapper;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -315,34 +358,76 @@ public class CompanyController {
|
|
|
return msg;
|
|
|
}
|
|
|
QueryWrapper<Company> queryWrapper = new QueryWrapper<Company>();
|
|
|
- String[] strings = companyIds.split(",");
|
|
|
- List<String> companyIdList = Arrays.asList(strings);
|
|
|
- queryWrapper.in("id",companyIdList);
|
|
|
+ LocalDateTime localDateTime = LocalDateTime.now().plusYears(-2L);
|
|
|
+ queryWrapper.eq("set_meal",0).le("expiration_date",localDateTime).orderByAsc("expiration_date");
|
|
|
List<Company> companyList = companyMapper.selectList(queryWrapper);
|
|
|
- List<Integer> companyIdCollect = companyList.stream().map(Company::getId).collect(Collectors.toList());
|
|
|
- companySigningMapper.delete(new QueryWrapper<CompanySigning>().in("company_id",companyIdCollect));
|
|
|
- auditWorkflowTimeSettingMapper.delete(new QueryWrapper<AuditWorkflowTimeSetting>().in("company_id",companyIdCollect));
|
|
|
- companyCustomerContactMapper.delete(new QueryWrapper<CompanyCustomerContact>().in("company_id",companyIdCollect));
|
|
|
- companyDingdingMapper.delete(new QueryWrapper<CompanyDingding>().in("company_id",companyIdCollect));
|
|
|
- companyReportMapper.delete(new QueryWrapper<CompanyReport>().in("company_id",companyIdCollect));
|
|
|
- customerInfoMapper.delete(new QueryWrapper<CustomerInfo>().in("company_id",companyIdCollect));
|
|
|
- departmentMapper.delete(new QueryWrapper<Department>().in("company_id",companyIdCollect));
|
|
|
- operationRecordMapper.delete(new QueryWrapper<OperationRecord>().in("company_id",companyIdCollect));
|
|
|
- projectMapper.delete(new QueryWrapper<Project>().in("company_id",companyIdCollect));
|
|
|
- projectCategoryMapper.delete(new QueryWrapper<ProjectCategory>().in("company_id",companyIdCollect));
|
|
|
- reportMapper.delete(new QueryWrapper<Report>().in("company_id",companyIdCollect));
|
|
|
-
|
|
|
- sysRoleModuleMapper.deleteNeedToDel(companyIdCollect);
|
|
|
- sysRoleFunctionMapper.deleteNeedToDel(companyIdCollect);
|
|
|
- sysRoleMapper.delete(new QueryWrapper<SysRole>().in("company_id",companyIdCollect));
|
|
|
-
|
|
|
- taskMapper.delete(new QueryWrapper<Task>().in("company_id",companyIdCollect));
|
|
|
- timeTypeMapper.delete(new QueryWrapper<TimeType>().in("company_id",companyIdCollect));
|
|
|
- userMapper.delete(new QueryWrapper<User>().in("company_id",companyIdCollect));
|
|
|
- userCorpwxTimeMapper.delete(new QueryWrapper<UserCorpwxTime>().in("company_id",companyIdCollect));
|
|
|
- wxCorpInfoMapper.delete(new QueryWrapper<WxCorpInfo>().in("company_id",companyIdCollect));
|
|
|
-
|
|
|
- feishuInfoService.remove(new QueryWrapper<FeishuInfo>().in("company_id",companyIdCollect));
|
|
|
+ List<Integer> eligibleCompanyIds = companyList.stream().map(Company::getId).collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 解析传入的公司ID
|
|
|
+ String[] strings = companyIds.split(",");
|
|
|
+ List<String> companyIdCollect = Arrays.asList(strings);
|
|
|
+ List<Integer> companyIdsToDelete = new ArrayList<>();
|
|
|
+
|
|
|
+ // 校验传入的公司ID是否都在符合条件的公司列表中
|
|
|
+ for (String idStr : companyIdCollect) {
|
|
|
+ try {
|
|
|
+ Integer id = Integer.parseInt(idStr);
|
|
|
+ if (!eligibleCompanyIds.contains(id)) {
|
|
|
+ msg.setError("公司ID " + id + " 不符合删除条件(套餐为0且过期时间超过2年)");
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ companyIdsToDelete.add(id);
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
+ msg.setError("公司ID格式不正确: " + idStr);
|
|
|
+ return msg;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ companySigningMapper.delete(new QueryWrapper<CompanySigning>().in("company_id",companyIdsToDelete));
|
|
|
+ auditWorkflowTimeSettingMapper.delete(new QueryWrapper<AuditWorkflowTimeSetting>().in("company_id",companyIdsToDelete));
|
|
|
+ companyCustomerContactMapper.delete(new QueryWrapper<CompanyCustomerContact>().in("company_id",companyIdsToDelete));
|
|
|
+ companyDingdingMapper.delete(new QueryWrapper<CompanyDingding>().in("company_id",companyIdsToDelete));
|
|
|
+ companyReportMapper.delete(new QueryWrapper<CompanyReport>().in("company_id",companyIdsToDelete));
|
|
|
+ customerInfoMapper.delete(new QueryWrapper<CustomerInfo>().in("company_id",companyIdsToDelete));
|
|
|
+ departmentMapper.delete(new QueryWrapper<Department>().in("company_id",companyIdsToDelete));
|
|
|
+ operationRecordMapper.delete(new QueryWrapper<OperationRecord>().in("company_id",companyIdsToDelete));
|
|
|
+
|
|
|
+ List<Project> projectList = projectMapper.selectList(new QueryWrapper<Project>().in("company_id", companyIdsToDelete));
|
|
|
+ if (!projectList.isEmpty()){
|
|
|
+ List<Integer> projectIdList = projectList.stream().distinct().map(Project::getId).collect(Collectors.toList());
|
|
|
+ projectAuditorMapper.delete(new QueryWrapper<ProjectAuditor>().in("project_id", projectIdList));
|
|
|
+ projectBasecostMapper.delete(new QueryWrapper<ProjectBasecost>().in("project_id", projectIdList));
|
|
|
+ projectDocfolderMapper.delete(new QueryWrapper<ProjectDocfolder>().in("project_id", projectIdList));
|
|
|
+ projectDocumentMapper.delete(new QueryWrapper<ProjectDocument>().in("project_id", projectIdList));
|
|
|
+ projectNotifyUserMapper.delete(new QueryWrapper<ProjectNotifyUser>().in("project_id", projectIdList));
|
|
|
+ projectProfessionMapper.delete(new QueryWrapper<ProjectProfession>().in("project_id", projectIdList));
|
|
|
+ projectTimerMapper.delete(new QueryWrapper<ProjectTimer>().in("project_id", projectIdList));
|
|
|
+ projectUserSalaryMapper.delete(new QueryWrapper<ProjectUserSalary>().in("project_id", projectIdList));
|
|
|
+ reportProfessionProgressMapper.delete(new QueryWrapper<ReportProfessionProgress>().in("project_id", projectIdList));
|
|
|
+ }
|
|
|
+ projectMapper.delete(new QueryWrapper<Project>().in("company_id",companyIdsToDelete));
|
|
|
+ projectBasecostSettingMapper.delete(new QueryWrapper<ProjectBasecostSetting>().in("company_id",companyIdsToDelete));
|
|
|
+ projectPercentageMapper.delete(new QueryWrapper<ProjectPercentage>().in("company_id",companyIdsToDelete));
|
|
|
+ subProjectMapper.delete(new QueryWrapper<SubProject>().in("company_id",companyIdsToDelete));
|
|
|
+ projectCategoryMapper.delete(new QueryWrapper<ProjectCategory>().in("company_id",companyIdsToDelete));
|
|
|
+
|
|
|
+ reportMapper.delete(new QueryWrapper<Report>().in("company_id",companyIdsToDelete));
|
|
|
+ reportAuditLogMapper.delete(new QueryWrapper<ReportAuditLog>().in("company_id",companyIdsToDelete));
|
|
|
+ reportExtraDegreeMapper.delete(new QueryWrapper<ReportExtraDegree>().in("company_id",companyIdsToDelete));
|
|
|
+ reportImportLogMapper.delete(new QueryWrapper<ReportImportLog>().in("company_id",companyIdsToDelete));
|
|
|
+
|
|
|
+ sysRoleModuleMapper.deleteNeedToDel(companyIdsToDelete);
|
|
|
+ sysRoleFunctionMapper.deleteNeedToDel(companyIdsToDelete);
|
|
|
+ sysRoleMapper.delete(new QueryWrapper<SysRole>().in("company_id",companyIdsToDelete));
|
|
|
+
|
|
|
+ taskMapper.delete(new QueryWrapper<Task>().in("company_id",companyIdsToDelete));
|
|
|
+ timeTypeMapper.delete(new QueryWrapper<TimeType>().in("company_id",companyIdsToDelete));
|
|
|
+ userMapper.delete(new QueryWrapper<User>().in("company_id",companyIdsToDelete));
|
|
|
+ userCorpwxTimeMapper.delete(new QueryWrapper<UserCorpwxTime>().in("company_id",companyIdsToDelete));
|
|
|
+ wxCorpInfoMapper.delete(new QueryWrapper<WxCorpInfo>().in("company_id",companyIdsToDelete));
|
|
|
+
|
|
|
+ feishuInfoService.remove(new QueryWrapper<FeishuInfo>().in("company_id",companyIdsToDelete));
|
|
|
+
|
|
|
+ companyMapper.delete(new QueryWrapper<Company>().in("id",companyIdsToDelete));
|
|
|
return msg;
|
|
|
}
|
|
|
}
|