From e9963d542833ee28cb5cfa31ee8650a77682dee3 Mon Sep 17 00:00:00 2001 From: 15004070936 <1097449274@qq.com> Date: Fri, 13 Mar 2026 15:24:48 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=AE=A1=E7=90=86=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=95=B0=E6=8D=AE=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessSysReceiptAccountService.java | 15 +++++- .../salary/ScCommissionPlansController.java | 13 ++++- .../controller/system/SysDeptController.java | 24 ++++++---- .../common/core/domain/entity/SysDept.java | 24 ++++++++++ .../service/BusinessClaTimeService.java | 2 +- .../salary/domain/ScCommissionPlans.java | 1 + .../service/ScCommissionPlansService.java | 16 ++++++- .../ruoyi/system/service/ISysDeptService.java | 3 ++ .../service/impl/BusinessSysDeptService.java | 1 + .../service/impl/SysDeptServiceImpl.java | 47 +++++++++++++++++++ .../resources/mapper/system/SysDeptMapper.xml | 3 ++ 11 files changed, 134 insertions(+), 15 deletions(-) diff --git a/ruoyi-admin/src/main/java/cn/xluobo/business/sys/receipt/service/BusinessSysReceiptAccountService.java b/ruoyi-admin/src/main/java/cn/xluobo/business/sys/receipt/service/BusinessSysReceiptAccountService.java index 6b13b53..36a4110 100644 --- a/ruoyi-admin/src/main/java/cn/xluobo/business/sys/receipt/service/BusinessSysReceiptAccountService.java +++ b/ruoyi-admin/src/main/java/cn/xluobo/business/sys/receipt/service/BusinessSysReceiptAccountService.java @@ -8,6 +8,8 @@ import cn.xluobo.core.page.RespPage; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.school.order.domain.ScOrder; +import com.ruoyi.school.order.service.IScOrderService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -28,6 +30,9 @@ public class BusinessSysReceiptAccountService { @Autowired private ISysReceiptAccountService sysReceiptAccountService; + @Autowired + private IScOrderService scOrderService; + /** * 查询 * @@ -112,6 +117,11 @@ public class BusinessSysReceiptAccountService { } } + public boolean isUsed(Long[] accountIds){ + //校验是否已经使用 + int i= scOrderService.count(new QueryWrapper().in("account_id",Arrays.asList(accountIds))); + return i>0?true:false; + } /** * 删除 * @@ -119,9 +129,12 @@ public class BusinessSysReceiptAccountService { * @return */ public APIResponse deleteById(Long[] accountIds) { - if (null == accountIds || accountIds.length == 0) { + if (null == accountIds || accountIds.length == 0 ) { return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); } + if (isUsed(accountIds)){ + return APIResponse.toExceptionResponse("账户已经被使用,无法删除"); + } boolean deleteSysReceiptAccount = sysReceiptAccountService.removeByIds(Arrays.asList(accountIds)); if (deleteSysReceiptAccount) { return APIResponse.toOkResponse(); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/salary/ScCommissionPlansController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/salary/ScCommissionPlansController.java index 4a523a0..b10772a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/salary/ScCommissionPlansController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/salary/ScCommissionPlansController.java @@ -2,13 +2,13 @@ package com.ruoyi.web.controller.school.salary; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; -import com.ruoyi.school.salary.domain.ScCommissionPlans; -import com.ruoyi.school.salary.service.ScCommissionPlansService; import cn.xluobo.core.page.RespPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.school.salary.domain.ScCommissionPlans; +import com.ruoyi.school.salary.service.ScCommissionPlansService; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @@ -22,6 +22,7 @@ public class ScCommissionPlansController { private final ScCommissionPlansService service; + @PostMapping("list") public AjaxResult list(@RequestBody Map params){ RespPage page = new RespPage<>((Integer) params.get("pageNum"), (Integer) params.get("pageSize")); @@ -47,12 +48,20 @@ public class ScCommissionPlansController { public AjaxResult saveOrEdit(@RequestBody ScCommissionPlans salaryBase){ LoginUser loginUser = SecurityUtils.getLoginUser(); salaryBase.setTenantId(loginUser.getNowTenantId()); + if (salaryBase.getIsActive().equals("0")){ + if (ObjectUtil.isNotEmpty(salaryBase.getId())){ + salaryBase.setIsActive(new Byte("1")); + } + } service.saveOrUpdate(salaryBase); return AjaxResult.success(); } @PostMapping("remove") public AjaxResult remove(Integer id){ + if (service.isUsed(id)){ + return AjaxResult.error("方案已经被使用,无法删除"); + } service.removeById(id); return AjaxResult.success(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java index 469caca..cf6adaa 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java @@ -131,10 +131,14 @@ public class SysDeptController extends BaseController { return AjaxResult.error("该部门包含未停用的子部门!"); } + + dept.setUpdateBy(getUserId()); return toAjax(deptService.updateDept(dept)); } + + /** * 删除部门 */ @@ -145,19 +149,21 @@ public class SysDeptController extends BaseController { if (deptService.hasChildByDeptId(deptId)) { - return AjaxResult.error("存在下级部门,不允许删除"); + return AjaxResult.error("存在下级部门,请先移出下级部门后,再进行删除"); } if (deptService.checkDeptExistUser(deptId)) { - return AjaxResult.error("部门存在用户,不允许删除"); + return AjaxResult.error("部门存在员工,请先移出员工后,再进行删除"); } - // 如果已报读 不允许删除 -// QueryWrapper qwSc = new QueryWrapper<>(); -// qwSc.eq("dept_id", deptId); -// int studentCourseCount = studentCourseService.count(qwSc); -// if (studentCourseCount != 0) { -// return AjaxResult.error("该校区已有报读学员,无法删除"); -// } + + if (deptService.haveRoom(deptId)) + { + return AjaxResult.error("本校区的教室或被使用,请先删除教室后,再删除本校区"); + } + + if (deptService.haveCourse(deptId)){ + return AjaxResult.error("校区存在课程或班级,请先删除课程或班级后,再删除本校区"); + } return toAjax(deptService.deleteDeptById(deptId)); } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 767ac84..a7a997f 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -70,6 +70,30 @@ public class SysDept extends BaseEntity @TableField(exist = false) private List children = new ArrayList(); + public Long getLeaderId() { + return leaderId; + } + + public void setLeaderId(Long leaderId) { + this.leaderId = leaderId; + } + + public String getTenantId() { + return tenantId; + } + + public void setTenantId(String tenantId) { + this.tenantId = tenantId; + } + + public String getDeptType() { + return deptType; + } + + public void setDeptType(String deptType) { + this.deptType = deptType; + } + public Long getDeptId() { return deptId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java index e97d3d2..8a71cc0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java @@ -209,7 +209,7 @@ public class BusinessClaTimeService { } } if (courseIds.isEmpty()){ - throw new RuntimeException("学员名下无课程"); + return APIResponse.toExceptionResponse("学员名下无课程"); } reqSearchClaTime.setCourseIds(courseIds); return searchListForCalendar(reqSearchClaTime); diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/salary/domain/ScCommissionPlans.java b/ruoyi-system/src/main/java/com/ruoyi/school/salary/domain/ScCommissionPlans.java index 1b11f6f..897d92c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/salary/domain/ScCommissionPlans.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/salary/domain/ScCommissionPlans.java @@ -53,4 +53,5 @@ public class ScCommissionPlans { public String getTenantId(){ return SecurityUtils.getLoginUser().getNowTenantId(); } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/salary/service/ScCommissionPlansService.java b/ruoyi-system/src/main/java/com/ruoyi/school/salary/service/ScCommissionPlansService.java index b3366af..051c2ea 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/salary/service/ScCommissionPlansService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/salary/service/ScCommissionPlansService.java @@ -1,10 +1,22 @@ package com.ruoyi.school.salary.service; -import com.ruoyi.school.salary.mapper.ScCommissionPlansMapper; -import com.ruoyi.school.salary.domain.ScCommissionPlans; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.school.order.domain.ScOrder; +import com.ruoyi.school.order.service.IScOrderService; +import com.ruoyi.school.salary.domain.ScCommissionPlans; +import com.ruoyi.school.salary.mapper.ScCommissionPlansMapper; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class ScCommissionPlansService extends ServiceImpl { + + @Autowired + private IScOrderService scOrderService;; + public boolean isUsed(Integer id){ + //校验是否已经使用 + int i= scOrderService.count(new QueryWrapper().eq("commission_plans_id",id)); + return i>0?true:false; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java index 6a591c4..6081163 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDeptService.java @@ -14,6 +14,9 @@ import java.util.List; public interface ISysDeptService extends IService { + + Boolean haveCourse(Long deptId); + Boolean haveRoom(Long deptId); /** * 查询部门管理数据 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BusinessSysDeptService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BusinessSysDeptService.java index c085a58..23dfc27 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BusinessSysDeptService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/BusinessSysDeptService.java @@ -102,6 +102,7 @@ public class BusinessSysDeptService { SysDept sysDept = new SysDept(); LoginUser loginUser = SecurityUtils.getLoginUser(); sysDept.setTenantId(loginUser.getNowTenantId()); + sysDept.setDeptType("2"); List list = deptMapper.selectDeptList(sysDept); return list.stream().map(RespTreeSelect::new).collect(Collectors.toList()); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 82e34e7..be4a8cd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.UserConstants; @@ -12,6 +13,12 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.school.course.domain.ScCourse; +import com.ruoyi.school.course.domain.ScCourseCla; +import com.ruoyi.school.course.service.IScCourseClaService; +import com.ruoyi.school.course.service.IScCourseService; +import com.ruoyi.school.room.domain.ScRoom; +import com.ruoyi.school.room.service.IScRoomService; import com.ruoyi.system.domain.columns.YjStore; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleMapper; @@ -43,6 +50,38 @@ public class SysDeptServiceImpl extends ServiceImpl imp @Autowired private YjStoreMapper storeMapper; + @Autowired + private IScCourseService courseService; + @Autowired + private IScCourseClaService claService; + @Autowired + private IScRoomService roomService; + + @Override + public Boolean haveCourse(Long deptId){ + // 如果已有课程或班级 不允许删除 + int courseCount= courseService.count(new QueryWrapper() + .last(" and JSON_CONTAINS(depart_id, CAST("+deptId+" AS JSON))")); + if (courseCount>0){ + return true; + } + int claCount= claService.count(new QueryWrapper() + .eq("depart_id",deptId)); + if (claCount>0){ + return true; + } + return false; + } + + @Override + public Boolean haveRoom(Long deptId){ + int romCount= roomService.count(new QueryWrapper() + .eq("dept_id",deptId)); + if (romCount>0){ + return true; + } + return false; + } /** * 查询部门管理数据 @@ -258,6 +297,7 @@ public class SysDeptServiceImpl extends ServiceImpl imp updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); } int result = deptMapper.updateDept(dept); + if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) && !StringUtils.equals("0", dept.getAncestors())) { @@ -275,6 +315,13 @@ public class SysDeptServiceImpl extends ServiceImpl imp } if (oldDept.getDeptType().equals("2")&&dept.getDeptType().equals("1")){ //校区 to 部门 + if (haveCourse(dept.getDeptId())){ + throw new RuntimeException("本校区存在课程或班级,请先删除课程或班级后,再做修改"); + } + if (haveRoom(dept.getDeptId())) + { + throw new RuntimeException("本校区的教室或被使用,请先删除教室后,再做修改"); + } storeMapper.deleteYjStoreByDeptId(dept.getDeptId()); } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index ba31dd2..4e948c8 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -47,6 +47,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND status = #{status} + + AND dept_type = #{deptType} + AND tenant_id = #{tenantId}