Procházet zdrojové kódy

分页查询可删除的公司列表,批量删除过期公司,以及公司相关的信息

yusm před 2 měsíci
rodič
revize
03bf9e5e76

+ 108 - 1
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/controller/CompanyController.java

@@ -8,8 +8,9 @@ import com.management.platform.entity.*;
 import com.management.platform.entity.vo.FeiShuInfoVO;
 import com.management.platform.mapper.*;
 import com.management.platform.service.CompanyService;
+import com.management.platform.service.FeishuInfoService;
 import com.management.platform.util.HttpRespMsg;
-import com.sun.org.apache.regexp.internal.RE;
+import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpHeaders;
@@ -28,6 +29,8 @@ 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.stream.Collectors;
@@ -42,6 +45,7 @@ import java.util.stream.Collectors;
  */
 @RestController
 @RequestMapping("/company")
+@RequiredArgsConstructor
 public class CompanyController {
     @Value("${syncDDMembUrl}")
     private String syncDDMembUrl;
@@ -62,6 +66,56 @@ public class CompanyController {
     @Resource
     FeishuInfoMapper feishuInfoMapper;
 
+    @Resource
+    private CompanySigningMapper companySigningMapper;
+
+    @Resource
+    private AuditWorkflowTimeSettingMapper auditWorkflowTimeSettingMapper;
+
+    @Resource
+    private CompanyCustomerContactMapper companyCustomerContactMapper;
+
+    @Resource
+    private CompanyReportMapper companyReportMapper;
+    @Resource
+    private CustomerInfoMapper customerInfoMapper;
+
+    @Resource
+    private DepartmentMapper departmentMapper;
+    @Resource
+    private FeishuInfoService feishuInfoService;
+
+    @Resource
+    private OperationRecordMapper operationRecordMapper;
+    @Resource
+    private ProjectMapper projectMapper;
+    @Resource
+    private ProjectCategoryMapper projectCategoryMapper;
+
+    @Resource
+    private SysRoleMapper sysRoleMapper;
+
+    @Resource
+    private SysRoleModuleMapper sysRoleModuleMapper;
+
+    @Resource
+    private SysRoleFunctionMapper sysRoleFunctionMapper;
+
+    @Resource
+    private TaskMapper taskMapper;
+
+    @Resource
+    private TimeTypeMapper timeTypeMapper;
+
+    @Resource
+    private UserCorpwxTimeMapper userCorpwxTimeMapper;
+
+
+
+
+
+
+
     public static LocalDateTime lastSyncDDTime;
 
     /**
@@ -238,5 +292,58 @@ public class CompanyController {
     public HttpRespMsg getSuperManagerId(Integer companyId){
         return companyService.getSuperManagerId(companyId);
     }
+
+    @RequestMapping("/getNeedDelList")
+    public HttpRespMsg getNeedDelList(Integer pageIndex, Integer pageSize){
+        QueryWrapper<Company> queryWrapper = new QueryWrapper<Company>();
+        HttpRespMsg msg = new HttpRespMsg();
+        LocalDateTime localDateTime = LocalDateTime.now().plusYears(-2L);
+        queryWrapper.eq("set_meal",0).le("expiration_date",localDateTime).orderByAsc("expiration_date");
+        IPage<Company> result = companyMapper.selectPage(new Page<>(pageIndex, pageSize), queryWrapper);
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("record",result.getRecords());
+        map.put("total",result.getTotal());
+        msg.setData(map);
+        return msg;
+    }
+
+    @RequestMapping("/delNeedDelList")
+    public HttpRespMsg delNeedDelList(String companyIds){
+        HttpRespMsg msg = new HttpRespMsg();
+        if (org.apache.commons.lang3.StringUtils.isEmpty(companyIds)){
+            msg.setError("请传递公司的关键信息");
+            return msg;
+        }
+        QueryWrapper<Company> queryWrapper = new QueryWrapper<Company>();
+        String[] strings = companyIds.split(",");
+        List<String> companyIdList = Arrays.asList(strings);
+        queryWrapper.in("id",companyIdList);
+        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));
+        return msg;
+    }
 }
 

+ 4 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/SysRoleFunctionMapper.java

@@ -2,6 +2,7 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.SysRoleFunction;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -15,4 +16,7 @@ import java.util.List;
  */
 public interface SysRoleFunctionMapper extends BaseMapper<SysRoleFunction> {
     List<SysRoleFunction> getRoleFunctionNames(Integer roleId);
+
+    void deleteNeedToDel(@Param("list") List<Integer> list);
+
 }

+ 4 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/java/com/management/platform/mapper/SysRoleModuleMapper.java

@@ -2,6 +2,9 @@ package com.management.platform.mapper;
 
 import com.management.platform.entity.SysRoleModule;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,4 +16,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface SysRoleModuleMapper extends BaseMapper<SysRoleModule> {
 
+    void deleteNeedToDel(@Param("list") List<Integer> list);
 }

+ 10 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/SysRoleFunctionMapper.xml

@@ -17,6 +17,16 @@
     <sql id="Base_Column_List">
         role_id, function_id
     </sql>
+    <delete id="deleteNeedToDel">
+        DELETE FROM sys_role_function
+        WHERE role_id IN (
+        SELECT sr.id FROM sys_role sr
+        WHERE sr.company_id IN
+        <foreach collection="list" item="item" open="(" close=")" separator=",">
+            #{item}
+        </foreach>
+        )
+    </delete>
 
     <select id="getRoleFunctionNames" resultMap="BaseResultMap1">
         select role_id, function_id, sys_function.name as function_name from sys_role_function

+ 10 - 0
fhKeeper/formulahousekeeper/ops-platform/src/main/resources/mapper/SysRoleModuleMapper.xml

@@ -12,5 +12,15 @@
     <sql id="Base_Column_List">
         role_id, module_id
     </sql>
+    <delete id="deleteNeedToDel">
+        DELETE FROM sys_role_module
+            WHERE role_id IN (
+                SELECT sr.id FROM sys_role sr
+                WHERE sr.company_id IN
+                    <foreach collection="list" item="item" open="(" close=")" separator=",">
+                        #{item}
+                    </foreach>
+                )
+    </delete>
 
 </mapper>