租户数据彻底清理接口

master 54
hshansha 6 months ago
parent 1f6a10abc9
commit a628585597

@ -0,0 +1,195 @@
package com.ruoyi.web.controller.system;
import cn.dev33.satoken.annotation.SaCheckPermission;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.service.DictService;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.pay.domain.PayAttendance;
import com.ruoyi.pay.domain.PayButie;
import com.ruoyi.pay.domain.PayEmployeeInfo;
import com.ruoyi.pay.domain.bo.*;
import com.ruoyi.pay.domain.vo.*;
import com.ruoyi.pay.mapper.*;
import com.ruoyi.pay.service.IPayEmployeeInfoService;
import com.ruoyi.pay.service.impl.*;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.impl.SysRoleServiceImpl;
import com.ruoyi.system.service.impl.SysUserServiceImpl;
import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
*
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/clean")
public class SysCompanyDataCleanController extends BaseController {
private final PaySalaryReportMapper salaryReportMapper;
private final PaySalaryReportServiceImpl salaryReportService;
private final PayEmployeeInfoServiceImpl payEmployeeInfoService;
private final PayButieEmplyeeServiceImpl payButieEmplyeeService;
private final PayButieServiceImpl butieService;
private final PayRequireAttendanceReportServiceImpl payRequireAttendanceReportService;
private final PayDayWorkHoursServiceImpl payDayWorkHoursService;
private final PayWorkOrderBaohuoServiceImpl payWorkOrderBaohuoService;
private final PayProductsServiceImpl payProductsService;
private final PayMaterialServiceImpl payMaterialService;
private final PayTenantServiceImpl payTenantService;
private final SysUserServiceImpl userService;
private final SysRoleServiceImpl roleService;
private final PayAttendanceServiceImpl payAttendanceService;
private final ISysDeptService deptService;
private final PaySubInfoServiceImpl subInfoService;
/**
*
* @param ids
* @return
* @throws Exception
*/
@SaCheckPermission("pay:company:clean")
@Log(title = "公司数据清理", businessType = BusinessType.DELETE)
@Transactional
@DeleteMapping("/tenant/{ids}")
public R<Void> delete(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) throws Exception {
for(Long id:ids){
//删除公司下面的数据信息
//工资总表
PaySalaryReportBo salaryReportBo = new PaySalaryReportBo();
salaryReportBo.setTenantId(id);
List<PaySalaryReportVo> asWorkOrderVos = salaryReportService.queryList(salaryReportBo);
List<Long> salaryids = asWorkOrderVos.stream().map(PaySalaryReportVo::getId).collect(Collectors.toList());
if(salaryids!=null&&salaryids.size()>0){
salaryReportService.deleteWithValidByIds(salaryids,true);
}
//日工工时
PayDayWorkHoursBo riBo = new PayDayWorkHoursBo();
riBo.setTenantId(id);
List<PayDayWorkHoursVo> riVos = payDayWorkHoursService.queryList(riBo);
List<Long> riids = riVos.stream().map(PayDayWorkHoursVo::getId).collect(Collectors.toList());
if(riids!=null&&riids.size()>0) {
payDayWorkHoursService.deleteWithValidByIds(riids, true);
}
//包活工单
PayWorkOrderBaohuoBo wBo = new PayWorkOrderBaohuoBo();
wBo.setTenantId(id);
List<PayWorkOrderBaohuoVo> rlVos = payWorkOrderBaohuoService.queryList(wBo);
List<Long> wids = rlVos.stream().map(PayWorkOrderBaohuoVo::getId).collect(Collectors.toList());
if(wids!=null&&wids.size()>0) {
payWorkOrderBaohuoService.deleteWithValidByIds(wids,true);
}
//产品
PayProductsBo pBo = new PayProductsBo();
pBo.setTenantId(id);
List<PayProductsVo> xjVos = payProductsService.queryList(pBo);
List<Long> xjids = xjVos.stream().map(PayProductsVo::getId).collect(Collectors.toList());
if(xjids!=null&&xjids.size()>0) {
payProductsService.deleteWithValidByIds(xjids, true);
}
//毛料
PayMaterialBo materialBo = new PayMaterialBo();
materialBo.setTenantId(id);
List<PayMaterialVo> asEventVos = payMaterialService.queryList(materialBo);
List<Long> eids = asEventVos.stream().map( PayMaterialVo::getId).collect(Collectors.toList());
if(eids!=null&&eids.size()>0) {
payMaterialService.deleteWithValidByIds(eids, true);
}
//员工扣补
PayButieEmplyeeBo ebBo = new PayButieEmplyeeBo();
ebBo.setTenantId(id);
List<PayButieEmplyeeVo> ebVos = payButieEmplyeeService.queryList(ebBo);
List<Long> ebids = ebVos.stream().map(PayButieEmplyeeVo::getId).collect(Collectors.toList());
if(ebids!=null&&ebids.size()>0) {
payButieEmplyeeService.deleteWithValidByIds(ebids, true);
}
//补贴
PayButieBo btBo = new PayButieBo();
btBo.setTenantId(id);
List<PayButieVo> sxtVos = butieService.queryList(btBo);
List<Long> sxtids = sxtVos.stream().map(PayButieVo::getId).collect(Collectors.toList());
if(sxtids!=null&&sxtids.size()>0) {
butieService.deleteWithValidByIds(sxtids, true);
}
//应出勤
PayRequireAttendanceReportBo acBo = new PayRequireAttendanceReportBo();
acBo.setTenantId(id);
List<PayRequireAttendanceReportVo> acVos = payRequireAttendanceReportService.queryList(acBo);
List<Long> acids = acVos.stream().map(PayRequireAttendanceReportVo::getId).collect(Collectors.toList());
if(acids!=null&&acids.size()>0) {
payRequireAttendanceReportService.deleteWithValidByIds(acids, true);
}
//考勤
PayAttendanceBo aBo = new PayAttendanceBo();
aBo.setTenantId(id);
List<PayAttendanceVo> aVos = payAttendanceService.queryList(aBo);
List<Long> aids = aVos.stream().map(PayAttendanceVo::getId).collect(Collectors.toList());
if(aids!=null&&aids.size()>0) {
payAttendanceService.deleteWithValidByIds(aids, true);
}
//员工
PayEmployeeInfoBo empBo = new PayEmployeeInfoBo();
empBo.setTenantId(id);
List<PayEmployeeInfoVo> empVos = payEmployeeInfoService.queryList(empBo);
List<Long> empids = empVos.stream().map(PayEmployeeInfoVo::getId).collect(Collectors.toList());
if(empids!=null&&empids.size()>0) {
payEmployeeInfoService.deleteWithValidByIds(empids, true);
}
//部门
SysDept bmBo = new SysDept();
bmBo.setTenantId(id);
List<SysDept> pjVos = deptService.selectDeptList(bmBo);
List<Long> bmids = pjVos.stream().map(SysDept::getDeptId).collect(Collectors.toList());
if(bmids!=null&&bmids.size()>0) {
for(Long bmid:bmids){
deptService.deleteDeptById(bmid);
}
}
//------------------------------------------------------------------------------------------------------
//删除公司订阅信息
PaySubInfoBo subInfo=new PaySubInfoBo();
subInfo.setTenantId(id);
List<PaySubInfoVo> infoVos = subInfoService.queryList(subInfo);
List<Long> sids = infoVos.stream().map(PaySubInfoVo::getId).collect(Collectors.toList());
if(sids!=null&&sids.size()>0){
subInfoService.deleteWithValidByIds(sids,true);
}
//删除公司下所有用户
SysUser user = new SysUser();
user.setTenantId(id);
List<SysUser> users = userService.selectUserList(user);
if(users!=null&&users.size()>0){
List<Long> uids = users.stream().map(SysUser::getUserId).collect(Collectors.toList());
userService.deleteUserByIds(uids.toArray(uids.toArray(new Long[uids.size()])));
}
//删除公司下的所有角色
SysRole role = new SysRole();
role.setTenantId(id);
List<SysRole> roles = roleService.selectRoleList(role);
if(roles!=null&&roles.size()>0){
List<Long> rids = roles.stream().map(SysRole::getRoleId).collect(Collectors.toList());
roleService.deleteRoleByIds(rids.toArray(rids.toArray(new Long[rids.size()])));
}
}
return toAjax(payTenantService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}
Loading…
Cancel
Save