From d45f521ab36d3c4759fc3ac3a6e0d6548c233567 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: Tue, 02 Jun 2026 17:25:59 +0800
Subject: [PATCH] 功能修改

---
 expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java |   45 ++++++++++++++++++----
 expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml                 |   24 ++++++++++++
 expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java           |   11 ++++-
 expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java          |    7 +++
 expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java                  |    8 ++++
 expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java            |    5 ++
 6 files changed, 90 insertions(+), 10 deletions(-)

diff --git a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java
index 44a0ff3..0229813 100644
--- a/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java
+++ b/expert-admin/src/main/java/com/gkhy/web/controller/system/SysDeptController.java
@@ -10,6 +10,7 @@
 import com.gkhy.common.enums.BusinessType;
 import com.gkhy.common.utils.StringUtils;
 import com.gkhy.system.service.ISysDeptService;
+import com.gkhy.system.service.SysExpertClassifyService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -34,6 +35,9 @@
 {
     @Autowired
     private ISysDeptService deptService;
+
+    @Autowired
+    private SysExpertClassifyService expertClassifyService;
 
     /**
      * 获取部门列表
@@ -144,11 +148,14 @@
     {
         if (deptService.hasChildByDeptId(deptId))
         {
-            return warn("存在下级部门,不允许删除");
+            return warn("存在下级处室,不允许删除");
         }
         if (deptService.checkDeptExistUser(deptId))
         {
-            return warn("部门存在用户,不允许删除");
+            return warn("处室存在用户,不允许删除");
+        }
+        if (expertClassifyService.countByDeptId(deptId) > 0){
+            return warn("处室存在专业领域,不允许删除,请先专业领域删除对应处室绑定");
         }
         //todo  校验专家是否申请复用
         deptService.checkDeptDataScope(deptId);
diff --git a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java
index dec36d2..e213203 100644
--- a/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java
+++ b/expert-system/src/main/java/com/gkhy/system/domain/SysExpertClassify.java
@@ -52,6 +52,14 @@
     @TableField("version")
     private Integer version;
 
+    @ApiModelProperty("部门id")
+    @TableField("dept_id")
+    private Long deptId;
+
+    @ApiModelProperty("部门名称")
+    @TableField(exist = false)
+    private String deptName;
+
     @ApiModelProperty("子分类")
     @TableField(exist = false)
     private List<SysExpertClassify> children;
diff --git a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java
index ea1326a..c6b7078 100644
--- a/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java
+++ b/expert-system/src/main/java/com/gkhy/system/mapper/SysExpertClassifyMapper.java
@@ -4,6 +4,8 @@
 import com.gkhy.system.domain.SysExpertClassify;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * <p>
  * 系统专家分类表 Mapper 接口
@@ -15,4 +17,7 @@
 @Mapper
 public interface SysExpertClassifyMapper extends BaseMapper<SysExpertClassify> {
 
+
+    List<SysExpertClassify> classifyList(SysExpertClassify expertClassify);
+
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java b/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java
index 391871a..9f8eb32 100644
--- a/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java
+++ b/expert-system/src/main/java/com/gkhy/system/service/SysExpertClassifyService.java
@@ -41,4 +41,11 @@
      * @return
      */
     int addClassify(SysExpertClassify expertClassify);
+
+    /**
+     * 根据部门id查询
+     * @param deptId
+     * @return
+     */
+    long countByDeptId(Long deptId);
 }
diff --git a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java
index 0b342f8..ef58bff 100644
--- a/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java
+++ b/expert-system/src/main/java/com/gkhy/system/service/impl/SysExpertClassifyServiceImpl.java
@@ -1,15 +1,15 @@
 package com.gkhy.system.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.gkhy.common.enums.DeleteFlagEnum;
 import com.gkhy.common.exception.ServiceException;
 import com.gkhy.common.utils.SecurityUtils;
-import com.gkhy.common.utils.StringUtils;
 import com.gkhy.system.domain.SysExpertClassify;
 import com.gkhy.system.mapper.SysExpertClassifyMapper;
 import com.gkhy.system.service.SysExpertClassifyService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -27,14 +27,17 @@
 @Service
 public class SysExpertClassifyServiceImpl extends ServiceImpl<SysExpertClassifyMapper, SysExpertClassify> implements SysExpertClassifyService {
 
+    @Autowired
+    private SysExpertClassifyMapper sysExpertClassifyMapper;
     @Override
     public List<SysExpertClassify> classifyTree(SysExpertClassify expertClassify) {
-        LambdaQueryWrapper<SysExpertClassify> lambdaQueryWrapper = Wrappers.<SysExpertClassify>lambdaQuery();
-        if(StringUtils.isNotBlank(expertClassify.getClassifyName())){
-            lambdaQueryWrapper.like(SysExpertClassify::getClassifyName,expertClassify.getClassifyName());
-        }
-        lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode());
-        List<SysExpertClassify> classifies= list(lambdaQueryWrapper);
+//        LambdaQueryWrapper<SysExpertClassify> lambdaQueryWrapper = Wrappers.<SysExpertClassify>lambdaQuery();
+//        if(StringUtils.isNotBlank(expertClassify.getClassifyName())){
+//            lambdaQueryWrapper.like(SysExpertClassify::getClassifyName,expertClassify.getClassifyName());
+//        }
+//        lambdaQueryWrapper.eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode());
+//        List<SysExpertClassify> classifies= list(lambdaQueryWrapper);
+        List<SysExpertClassify> classifies = sysExpertClassifyMapper.classifyList(expertClassify);
         //筛选出所有一级标签
         return classifies.stream()
                 .filter(classifyEntity -> classifyEntity.getParentId()==0L)
@@ -53,6 +56,7 @@
 
     @Override
     public int modClassify(SysExpertClassify expertClassify) {
+        //checkParams(expertClassify);
         expertClassify.setUpdateBy(SecurityUtils.getUsername());
         boolean b=updateById(expertClassify);
         if(!b){
@@ -76,6 +80,7 @@
 
     @Override
     public int addClassify(SysExpertClassify expertClassify) {
+        //checkParams(expertClassify);
         expertClassify.setCreateBy(SecurityUtils.getUsername());
         boolean b=save(expertClassify);
         if(!b){
@@ -83,4 +88,28 @@
         }
         return 1;
     }
+
+    @Override
+    public long countByDeptId(Long deptId) {
+        LambdaQueryWrapper<SysExpertClassify> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(SysExpertClassify::getDeptId,deptId).eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode());
+        return baseMapper.selectCount(queryWrapper);
+    }
+
+    private void checkParams(SysExpertClassify expertClassify){
+        if(expertClassify==null){
+            throw new ServiceException("参数错误");
+        }
+        if(expertClassify.getDeptId() != null){
+           LambdaQueryWrapper<SysExpertClassify> queryWrapper = new LambdaQueryWrapper<>();
+           queryWrapper.eq(SysExpertClassify::getDeptId,expertClassify.getDeptId()).eq(SysExpertClassify::getDelFlag, DeleteFlagEnum.UN_DELETE.getCode());
+           if (expertClassify.getId() != null){
+               queryWrapper.ne(SysExpertClassify::getId,expertClassify.getId());
+           }
+            List<SysExpertClassify> sysExpertClassifies = baseMapper.selectList(queryWrapper);
+            if(ObjectUtil.isNotEmpty(sysExpertClassifies)){
+               throw new ServiceException("该处室已被"+sysExpertClassifies.get(0).getClassifyName()+"专业领域选中,请修改或者重新选择!");
+           }
+        }
+    }
 }
diff --git a/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml b/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml
index 268f3b8..a032c13 100644
--- a/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml
+++ b/expert-system/src/main/resources/mapper/system/SysExpertClassifyMapper.xml
@@ -2,4 +2,28 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.gkhy.system.mapper.SysExpertClassifyMapper">
 
+    <resultMap id="BaseResultMap" type="com.gkhy.system.domain.SysExpertClassify">
+        <id column="id" jdbcType="BIGINT" property="id" />
+        <result column="classify_name" jdbcType="VARCHAR" property="classifyName" />
+        <result column="parent_id" jdbcType="BIGINT" property="parentId" />
+        <result column="del_flag" jdbcType="INTEGER" property="delFlag" />
+        <result column="version" jdbcType="INTEGER" property="version" />
+        <result column="dept_id" jdbcType="BIGINT" property="deptId" />
+        <result column="create_by" jdbcType="VARCHAR" property="createBy" />
+        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+        <result column="update_by" jdbcType="VARCHAR" property="updateBy" />
+        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+        <result column="remark" jdbcType="VARCHAR" property="remark" />
+        <result column="dept_name" jdbcType="VARCHAR" property="deptName" />
+    </resultMap>
+
+
+    <select id="classifyList" parameterType="com.gkhy.system.domain.SysExpertClassify"  resultMap="BaseResultMap">
+        select a.*,b.dept_name from sys_expert_classify a
+            left join sys_dept b on a.dept_id = b.dept_id
+        where a.del_flag = 0
+        <if test="classifyName != null and classifyName != ''">
+            and a.classify_name like concat('%',#{classifyName},'%')
+        </if>
+    </select>
 </mapper>

--
Gitblit v1.9.2