Lius
2025-07-03 4e0eb5fa436dcfe7cc69d9aa37c9e8d2e286ed80
维修部门班组调整
已添加2个文件
已修改4个文件
236 ■■■■■ 文件已修改
db/430设备管理数据库设计.pdma.json 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java 155 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/430É豸¹ÜÀíÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -23772,6 +23772,17 @@
        "username": "sa",
        "customer_driver": ""
      }
    },
    {
      "defKey": "B26888BB-593E-4718-9B9C-4D842B06FAFE",
      "defName": "430new",
      "type": "BFC87171-C74F-494A-B7C2-76B9C55FACC9",
      "properties": {
        "driver_class_name": "com.microsoft.sqlserver.jdbc.SQLServerDriver",
        "url": "jdbc:sqlserver://localhost:1433;DatabaseName=LXZN_TEST_430_NEW",
        "password": "123",
        "username": "sa"
      }
    }
  ],
  "logicEntities": [],
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/controller/EamBaseRepairDepartController.java
@@ -87,22 +87,22 @@
        return result;
    }
//    @AutoLog(value = "维修部门班组-根据用户id获取产线下拉树选项")
//    @ApiOperation(value = "维修部门班组-根据用户id获取产线下拉树选项", notes = "维修部门班组-根据用户id获取产线下拉树选项")
//    @GetMapping(value = "/loadMaintainDepartTreeOptions")
//    public Result<List<RepairDepartIdModel>> loadMaintainDepartTreeOptions() {
//        Result<List<RepairDepartIdModel>> result = new Result<>();
//        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//        String userId = user.getId();
//        try {
//            List<RepairDepartIdModel> list = eamBaseRepairDepartService.loadMaintainDepartTreeOptions(userId);
//            result.setSuccess(true);
//            result.setResult(list);
//        } catch (Exception e) {
//            log.error(e.getMessage(), e);
//        }
//        return result;
//    }
    @AutoLog(value = "维修部门班组-根据用户id获取产线下拉树选项")
    @ApiOperation(value = "维修部门班组-根据用户id获取产线下拉树选项", notes = "维修部门班组-根据用户id获取产线下拉树选项")
    @GetMapping(value = "/loadMaintainDepartTreeOptions")
    public Result<List<RepairDepartIdModel>> loadMaintainDepartTreeOptions() {
        Result<List<RepairDepartIdModel>> result = new Result<>();
        LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        String userId = user.getId();
        try {
            List<RepairDepartIdModel> list = eamBaseRepairDepartService.loadMaintainDepartTreeOptions(userId);
            result.setSuccess(true);
            result.setResult(list);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        return result;
    }
    @AutoLog(value = "维修部门班组-id集合")
    @ApiOperation(value = "维修部门班组-id集合", notes = "维修部门班组-id集合")
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/EamBaseRepairDepartUserMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package org.jeecg.modules.eam.base.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser;
import java.util.List;
/**
 * @Author: Lius
 * @CreateTime: 2025-07-01
 * @Description:
 */
public interface EamBaseRepairDepartUserMapper extends BaseMapper<EamBaseRepairDepartUser> {
    /**
     * æ ¹æ®æŒ‡å®šç”¨æˆ·id查询维修部门班组id集合
     */
    List<String> queryRepairDepartIdsByUserId(@Param("userId") String userId);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/mapper/xml/EamBaseRepairDepartUserMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper">
    <!--根据指定用户id查询产线id集合-->
    <select id="queryRepairDepartIdsByUserId" resultType="java.lang.String">
        SELECT depart_id FROM eam_base_repair_depart_user WHERE user_id = #{userId}
    </select>
</mapper>
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/IEamBaseRepairDepartService.java
@@ -59,10 +59,10 @@
//     */
//    List<EamBaseRepairDepart> queryRepDepByPid(String pid);
//
//    /**
//     * æ ¹æ®ç”¨æˆ·id获取产线下拉树选项
//     */
//    List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
    /**
     * æ ¹æ®ç”¨æˆ·id获取产线下拉树选项
     */
    List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
//
//    /**
//     * é€’归查询所有子节点
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/base/service/impl/EamBaseRepairDepartImpl.java
@@ -10,11 +10,14 @@
import org.jeecg.common.util.FillRuleUtil;
import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.eam.base.entity.EamBaseRepairDepart;
import org.jeecg.modules.eam.base.entity.EamBaseRepairDepartUser;
import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartUserMapper;
import org.jeecg.modules.eam.base.service.IEamBaseRepairDepartService;
import org.jeecg.modules.eam.base.mapper.EamBaseRepairDepartMapper;
import org.jeecg.modules.eam.base.model.EamBaseRepairDepartTreeModel;
import org.jeecg.modules.eam.base.model.RepairDepartIdModel;
import org.jeecg.modules.eam.base.util.FindsRepairDepartsChildrenUtil;
import org.jeecg.modules.system.entity.SysUser;
import org.jeecg.modules.system.mapper.SysUserMapper;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@@ -22,6 +25,7 @@
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
 * @Author: Lius
@@ -34,6 +38,9 @@
    @Resource
    private SysUserMapper sysUserMapper;
    @Resource
    private EamBaseRepairDepartUserMapper repairDepartUserMapper;
    /**
     * queryTreeList å¯¹åº” queryTreeList æŸ¥è¯¢æ‰€æœ‰çš„维修部门班组数据,以树结构形式响应给前端
     */
@@ -45,7 +52,7 @@
        query.orderByAsc(EamBaseRepairDepart::getDepartOrder);
        List<EamBaseRepairDepart> list = this.list(query);
        //设置用户id,让前台显示
//        this.setUserIdsByProList(list);
        this.setUserIdsByProList(list);
        //调用wrapTreeDataToTreeList方法生成树状数据
        return FindsRepairDepartsChildrenUtil.wrapTreeDataToTreeList(list);
    }
@@ -150,7 +157,7 @@
        this.checkChildrenExists(id, idList);
        boolean result = this.removeByIds(idList);
        //根据维修部门班组id删除用户与维修部门班组关系
//        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
        //根据维修部门班组id删除维修部门班组与设备关系
//        repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList));
        return result;
@@ -169,7 +176,7 @@
        }
        this.removeByIds(idList);
        //根据维修部门班组id删除用户与维修部门班组关系
//        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
        repairDepartUserMapper.delete(new LambdaQueryWrapper<EamBaseRepairDepartUser>().in(EamBaseRepairDepartUser::getDepartId, idList));
        //根据维修部门班组id删除维修部门班组与设备关系
//        repairDepartEquipmentMapper.delete(new LambdaQueryWrapper<SysMaintainDepartEquipment>().in(SysMaintainDepartEquipment::getMaintainDepartId, idList));
    }
@@ -182,26 +189,26 @@
//        return this.baseMapper.queryRepDepByPid(pid);
//    }
//
//    /**
//     * æ ¹æ®ç”¨æˆ·id获取维修部门班组下拉树选项
//     */
//    @Override
//    public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) {
//        //获取所有维修部门班组数据
//        List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder));
//        //根据用户id获取拥有的维修部门班组信息集合
//        List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId);
//        List<String> allMaintainDepartIds = new ArrayList<>();
//        //找到所有维修部门班组id的上级id
//        if (repairDepartIds != null && !repairDepartIds.isEmpty()) {
//            for (String repairDepartId : repairDepartIds) {
//                this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds);
//            }
//        }
//        //过滤维修部门班组数据
//        List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList());
//        return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list);
//    }
    /**
     * æ ¹æ®ç”¨æˆ·id获取维修部门班组下拉树选项
     */
    @Override
    public List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId) {
        //获取所有维修部门班组数据
        List<EamBaseRepairDepart> repairDepartList = this.baseMapper.selectList(new LambdaQueryWrapper<EamBaseRepairDepart>().eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(EamBaseRepairDepart::getDepartOrder));
        //根据用户id获取拥有的维修部门班组信息集合
        List<String> repairDepartIds = repairDepartUserMapper.queryRepairDepartIdsByUserId(userId);
        List<String> allMaintainDepartIds = new ArrayList<>();
        //找到所有维修部门班组id的上级id
        if (repairDepartIds != null && !repairDepartIds.isEmpty()) {
            for (String repairDepartId : repairDepartIds) {
                this.getAllMaintainDepartIds(repairDepartList, repairDepartId, allMaintainDepartIds);
            }
        }
        //过滤维修部门班组数据
        List<EamBaseRepairDepart> list = repairDepartList.stream().filter((EamBaseRepairDepart eamBaseRepairDepart) -> allMaintainDepartIds.contains(eamBaseRepairDepart.getId())).collect(Collectors.toList());
        return FindsRepairDepartsChildrenUtil.wrapTreeDataToMaintainDepartIdTreeList(list);
    }
//
//    /**
//     * é€’归查询所有子节点id
@@ -250,56 +257,56 @@
        }
    }
//    /**
//     * èŽ·å–æ‰€æœ‰çš„ç»´ä¿®éƒ¨é—¨ç­ç»„id(包含所有上级)
//     */
//    private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) {
//        if (!allMaintainDepartIds.contains(repairDepartId)) {
//            allMaintainDepartIds.add(repairDepartId);
//        }
//        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
//            if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) {
//                continue;
//            }
//            if (repairDepartId.equals(eamBaseRepairDepart.getId())) {
//                if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) {
//                    allMaintainDepartIds.add(eamBaseRepairDepart.getParentId());
//                    getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds);
//                }
//            }
//        }
//    }
//
//    /**
//     * é€šè¿‡ç»´ä¿®éƒ¨é—¨ç­ç»„集合为维修部门班组设置用户id,用于前台展示
//     */
//    private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) {
//        //查询负责部门不为空的情况
//        LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>();
//        query.isNotNull(SysUser::getDepartIds);
//        List<SysUser> users = sysUserMapper.selectList(query);
//        Map<String, Object> map = new HashMap(5);
//        //先循环一遍找到不同的负责维修部门班组id
//        for (SysUser user : users) {
//            String repairDepartIds = user.getRepairDepartIds();
//            if (StringUtils.isNotBlank(repairDepartIds)) {
//                String[] repairDepartIdArray = repairDepartIds.split(",");
//                for (String repairDepartId : repairDepartIdArray) {
//                    if (map.containsKey(repairDepartId)) {
//                        String userIds = map.get(repairDepartId) + "," + user.getId();
//                        map.put(repairDepartId, userIds);
//                    } else {
//                        map.put(repairDepartId, user.getId());
//                    }
//                }
//            }
//        }
//        //循环维修部门班组集合找到维修部门班组id对应的负责用户
//        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
//            if (map.containsKey(eamBaseRepairDepart.getId())) {
//                eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString());
//            }
//        }
//    }
    /**
     * èŽ·å–æ‰€æœ‰çš„ç»´ä¿®éƒ¨é—¨ç­ç»„id(包含所有上级)
     */
    private void getAllMaintainDepartIds(List<EamBaseRepairDepart> repairDepartList, String repairDepartId, List<String> allMaintainDepartIds) {
        if (!allMaintainDepartIds.contains(repairDepartId)) {
            allMaintainDepartIds.add(repairDepartId);
        }
        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
            if (StringUtils.isEmpty(eamBaseRepairDepart.getParentId())) {
                continue;
            }
            if (repairDepartId.equals(eamBaseRepairDepart.getId())) {
                if (!allMaintainDepartIds.contains(eamBaseRepairDepart.getParentId())) {
                    allMaintainDepartIds.add(eamBaseRepairDepart.getParentId());
                    getAllMaintainDepartIds(repairDepartList, eamBaseRepairDepart.getParentId(), allMaintainDepartIds);
                }
            }
        }
    }
    /**
     * é€šè¿‡ç»´ä¿®éƒ¨é—¨ç­ç»„集合为维修部门班组设置用户id,用于前台展示
     */
    private void setUserIdsByProList(List<EamBaseRepairDepart> repairDepartList) {
        //查询负责部门不为空的情况
        LambdaQueryWrapper<SysUser> query = new LambdaQueryWrapper<>();
        query.isNotNull(SysUser::getDepartIds);
        List<SysUser> users = sysUserMapper.selectList(query);
        Map<String, Object> map = new HashMap(5);
        //先循环一遍找到不同的负责维修部门班组id
        for (SysUser user : users) {
            String repairDepartIds = user.getRepairDepartIds();
            if (StringUtils.isNotBlank(repairDepartIds)) {
                String[] repairDepartIdArray = repairDepartIds.split(",");
                for (String repairDepartId : repairDepartIdArray) {
                    if (map.containsKey(repairDepartId)) {
                        String userIds = map.get(repairDepartId) + "," + user.getId();
                        map.put(repairDepartId, userIds);
                    } else {
                        map.put(repairDepartId, user.getId());
                    }
                }
            }
        }
        //循环维修部门班组集合找到维修部门班组id对应的负责用户
        for (EamBaseRepairDepart eamBaseRepairDepart : repairDepartList) {
            if (map.containsKey(eamBaseRepairDepart.getId())) {
                eamBaseRepairDepart.setDirectorUserIds(map.get(eamBaseRepairDepart.getId()).toString());
            }
        }
    }
}