lyh
14 小时以前 1182b8b80bf3859cd962384ee4f01a43b1ecd139
设备管理首页新增车间级控制权限
已修改16个文件
474 ■■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportThreeNoSpareDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamFactorySecondMaintPlanService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamFactorySecondMaintPlanServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamHomeController.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java 121 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/BaseFactoryMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/BaseFactoryMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IBaseFactoryService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/dto/EamReportThreeNoSpareDto.java
@@ -10,6 +10,7 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecg.modules.flowable.domain.vo.FlowTaskVo;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
@@ -91,6 +92,7 @@
    /**培训人*/
    @Excel(name = "培训人", width = 15)
    @ApiModelProperty(value = "培训人")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String trainingUser;
    /**培训时间*/
    @Excel(name = "培训时间", width = 15, format = "yyyy-MM-dd")
@@ -105,6 +107,7 @@
    /**单位领导*/
    @Excel(name = "单位领导", width = 15)
    @ApiModelProperty(value = "单位领导")
    @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname")
    private String unitLeader;
    /**领导意见*/
    @Excel(name = "领导意见", width = 15)
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/mapper/xml/EamEquipmentMapper.xml
@@ -96,7 +96,7 @@
        tc.total_count AS "total"
        FROM sys_dict c
        LEFT JOIN sys_dict_item item ON c.id = item.dict_id
        LEFT JOIN eam_equipment_extend t ON t.technology_status = item.item_value COLLATE Chinese_PRC_CI_AS
        LEFT JOIN eam_equipment_extend t ON t.technology_status = item.item_value
        <if test="ids != null and ids != ''">
            AND t.id IN
            <foreach collection="ids" item="id" index="index" open="(" close=")" separator=",">
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
@@ -19,4 +19,5 @@
    private String repairDepartOrgCode;
    private String column;
    private String order;
    private String productionCode;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamEquipmentService.java
@@ -91,5 +91,5 @@
     * 设备管理首页-技术状态
     * @return
     */
    List<EchartsDto> echartsList();
    List<EchartsDto> echartsList(String factoryCode);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamFactorySecondMaintPlanService.java
@@ -17,7 +17,7 @@
     * 设备管理首页-车间二保计划列表
     * @return
     */
    public List<EamFactorySecondMaintPlan> queryAllList();
    public List<EamFactorySecondMaintPlan> queryAllList(String productionCode);
    /**
     * 新增首页车间二保计划
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/IEamReportRepairService.java
@@ -73,7 +73,7 @@
     * 设备管理首页-设备报修故障情况
     * @return
     */
    List<EchartsDto> reportRepairList();
    List<EchartsDto> reportRepairList(String productionCode);
    /**
     * 设备管理首页-设备报修故障情况列表
@@ -81,5 +81,5 @@
     * @param page
     * @return
     */
    IPage<EamReportRepairDto> reportRepairList(String code, Page<EamReportRepairDto> page);
    IPage<EamReportRepairDto> reportRepairList(String code,String productionCode,Page<EamReportRepairDto> page);
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -1,6 +1,7 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -159,21 +160,37 @@
        if (sysUser == null) {
            return page;
        }
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            }else {
        if (StrUtil.isEmpty(eamEquipment.getProductionCode())){
            if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
                //选择了设备,根据设备id过滤设备
                List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
                queryWrapper.in("e.equipment_code", equipArr);
            } else {
                //没有选择设备,根据中心过滤设备
                List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                        list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
                if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                    Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                    Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                    queryWrapper.in("e.factory_org_code", factoryCode);
                }else {
                    return page;
                }
            }
        }else {
            //通过选择的车间过滤对应中心
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, eamEquipment.getProductionCode()).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return page;
            }
            //组装EAM数据
            Set<String> factoryCodes= new HashSet<>();
            baseFactoryList.forEach(baseFactory -> {
                List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId());
                factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()));
            });
            queryWrapper.in("e.factory_org_code", factoryCodes);
        }
        //查询条件过滤
        if (eamEquipment != null) {
@@ -436,47 +453,67 @@
     * @return
     */
    @Override
    public List<EchartsDto> echartsList(){
    public List<EchartsDto> echartsList(String productionCode){
        List<EchartsDto> echartsDtoList = new ArrayList<>();
        QueryWrapper<EamEquipment> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("e.del_flag", CommonConstant.DEL_FLAG_0);
        //用户数据权限
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return echartsDtoList;
        }
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            //选择了设备,根据设备id过滤设备
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            //没有选择设备,根据中心过滤设备
            List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                    list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
            if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCode= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCode);
            }else {
        if (StrUtil.isEmpty(productionCode)) {
            //用户数据权限
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            if (sysUser == null) {
                return echartsDtoList;
            }
            if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
                //选择了设备,根据设备id过滤设备
                List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
                queryWrapper.in("e.equipment_code", equipArr);
            } else {
                //没有选择设备,根据中心过滤设备
                List<BaseFactoryUser> baseFactoryUserList=baseFactoryUserService.
                        list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId,sysUser.getId()));
                if(!CollectionUtils.isEmpty(baseFactoryUserList)){
                    Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                    Set<String> factoryCodes= baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                    queryWrapper.in("e.factory_org_code", factoryCodes);
                }else {
                    return echartsDtoList;
                }
            }
        }else {
            //通过选择的车间过滤对应中心
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return echartsDtoList;
            }
            //组装EAM数据
            Set<String> factoryCodes= new HashSet<>();
            baseFactoryList.forEach(baseFactory -> {
                List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId());
                factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()));
            });
            queryWrapper.in("e.factory_org_code", factoryCodes);
        }
        List<String> ids=this.baseMapper.queryList(queryWrapper).stream().map(EamEquipment::getId).collect(Collectors.toList());
        if (ids.isEmpty()) {
            return echartsDtoList;
        }
        echartsDtoList= this.baseMapper.echartsList(ids);
        // 直接使用for循环处理数据
        for (EchartsDto dto : echartsDtoList) {
            if (dto.getTotal() != null && !"0".equals(dto.getTotal())) {
                try {
                    int value = Integer.parseInt(dto.getValue());
                    int total = Integer.parseInt(dto.getTotal());
                    double percentage = (value * 100.0) / total;
                    DecimalFormat df = new DecimalFormat("0.00");
                    dto.setPercentage(df.format(percentage) + "%");
                } catch (NumberFormatException e) {
        if (!echartsDtoList.isEmpty()) {
            for (EchartsDto dto : echartsDtoList) {
                if (dto.getTotal() != null && !"0".equals(dto.getTotal())) {
                    try {
                        int value = Integer.parseInt(dto.getValue());
                        int total = Integer.parseInt(dto.getTotal());
                        double percentage = (value * 100.0) / total;
                        DecimalFormat df = new DecimalFormat("0.00");
                        dto.setPercentage(df.format(percentage) + "%");
                    } catch (NumberFormatException e) {
                        dto.setPercentage("0.00%");
                    }
                } else {
                    dto.setPercentage("0.00%");
                }
            } else {
                dto.setPercentage("0.00%");
            }
        }
        return echartsDtoList;
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamFactorySecondMaintPlanServiceImpl.java
@@ -1,7 +1,11 @@
package org.jeecg.modules.eam.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.modules.eam.entity.EamEquipment;
import org.jeecg.modules.eam.entity.EamFactorySecondMaintPlan;
import org.jeecg.modules.eam.mapper.EamFactorySecondMaintPlanMapper;
@@ -9,6 +13,7 @@
import org.jeecg.modules.eam.service.IEamFactorySecondMaintPlanService;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IMdcProductionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
@@ -16,7 +21,11 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
 * @Description: “首页车间二保计划
@@ -37,8 +46,18 @@
     * @return
     */
    @Override
    public List<EamFactorySecondMaintPlan> queryAllList(){
//        return this.baseMapper.queryAllList();
    public List<EamFactorySecondMaintPlan> queryAllList(String productionCode){
        if (!StrUtil.isEmpty(productionCode)){
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return new ArrayList<>();
            }
            List<String> factoryNames=baseFactoryList.stream().map(BaseFactory::getFactoryName).collect(Collectors.toList());
            return this.list(new  LambdaQueryWrapper<EamFactorySecondMaintPlan>()
                    .eq(EamFactorySecondMaintPlan::getDelFlag, CommonConstant.DEL_FLAG_0.toString())
                    .in(EamFactorySecondMaintPlan::getFactoryName, factoryNames));
        }
        return this.list();
    }
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamReportRepairServiceImpl.java
@@ -359,45 +359,49 @@
    }
    @Override
    public List<EchartsDto> reportRepairList() {
    public List<EchartsDto> reportRepairList(String productionCode) {
        List<EchartsDto> echartsDtoList = new ArrayList<>();
        // 用户数据权限检查
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return echartsDtoList; // 返回空列表而非null
        }
        QueryWrapper<EamReportRepairDto> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
        // 设备过滤逻辑
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService
                    .list(new LambdaQueryWrapper<BaseFactoryUser>()
                            .eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (CollectionUtils.isEmpty(baseFactoryUserList)) {
        if (StrUtil.isEmpty(productionCode)) {
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            if (sysUser == null) {
                return echartsDtoList; // 返回空列表而非null
            }
            Set<String> factoryIds = baseFactoryUserList.stream()
                    .map(BaseFactoryUser::getFactoryId)
                    .collect(Collectors.toSet());
            Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds)
                    .stream()
                    .map(BaseFactory::getOrgCode)
                    .collect(Collectors.toSet());
            // 设备过滤逻辑
            if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
                List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
                queryWrapper.in("e.equipment_code", equipArr);
            } else {
                List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>()
                                .eq(BaseFactoryUser::getUserId, sysUser.getId()));
                if (CollectionUtils.isEmpty(baseFactoryUserList)) {
                    return echartsDtoList; // 返回空列表而非null
                }
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCodes);
            }
        }else {
            //通过选择的车间过滤对应中心
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return echartsDtoList;
            }
            //组装EAM数据
            Set<String> factoryCodes= new HashSet<>();
            baseFactoryList.forEach(baseFactory -> {
                List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId());
                factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()));
            });
            queryWrapper.in("e.factory_org_code", factoryCodes);
        }
        // 获取基础数据
        List<EamReportRepairDto> baseList = this.baseMapper.queryList(queryWrapper);
        if (baseList == null || baseList.isEmpty()) {
            return echartsDtoList;
        }
        int totalCount = baseList.size();
        // 获取停机数量
@@ -465,39 +469,42 @@
     * @return
     */
    @Override
    public IPage<EamReportRepairDto> reportRepairList(String code, Page<EamReportRepairDto> page){
    public IPage<EamReportRepairDto> reportRepairList(String code, String productionCode, Page<EamReportRepairDto> page){
        IPage<EamReportRepairDto> eamReportRepairDtoIPage=new Page<>();
        // 用户数据权限检查
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return null;
        }
        QueryWrapper<EamReportRepairDto> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("wmo.del_flag", CommonConstant.DEL_FLAG_0);
        // 设备过滤逻辑
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService
                    .list(new LambdaQueryWrapper<BaseFactoryUser>()
                            .eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (CollectionUtils.isEmpty(baseFactoryUserList)) {
                return null;
        if (StrUtil.isEmpty(productionCode)) {
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            if (sysUser == null) {
                return eamReportRepairDtoIPage; // 返回空列表而非null
            }
            Set<String> factoryIds = baseFactoryUserList.stream()
                    .map(BaseFactoryUser::getFactoryId)
                    .collect(Collectors.toSet());
            Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds)
                    .stream()
                    .map(BaseFactory::getOrgCode)
                    .collect(Collectors.toSet());
            // 设备过滤逻辑
            if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
                List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
                queryWrapper.in("e.equipment_code", equipArr);
            } else {
                List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>()
                        .eq(BaseFactoryUser::getUserId, sysUser.getId()));
                if (CollectionUtils.isEmpty(baseFactoryUserList)) {
                    return eamReportRepairDtoIPage; // 返回空列表而非null
                }
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCodes);
            }
        }else {
            //通过选择的车间过滤对应中心
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return eamReportRepairDtoIPage;
            }
            //组装EAM数据
            Set<String> factoryCodes= new HashSet<>();
            baseFactoryList.forEach(baseFactory -> {
                List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId());
                factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()));
            });
            queryWrapper.in("e.factory_org_code", factoryCodes);
        }
        queryWrapper.orderByDesc("wmo.create_time");
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamHomeController.java
@@ -54,11 +54,11 @@
     */
    @ApiOperation(value = "设备管理首页-技术状态与设备报修故障情况", notes = "设备管理首页-技术状态与设备报修故障情况")
    @GetMapping(value = "/techornology")
    public Result<?> techOrNology() {
    public Result<?> techOrNology(String productionCode) {
        //技术状态
        List<EchartsDto> echartsDtoList=iEamEquipmentService.echartsList();
        List<EchartsDto> echartsDtoList=iEamEquipmentService.echartsList(productionCode);
        //设备报修故障情况
        List<EchartsDto> echartsDtoList1=iEamReportRepairService.reportRepairList();
        List<EchartsDto> echartsDtoList1=iEamReportRepairService.reportRepairList(productionCode);
        Map<String,Object> map=new HashMap<>();
        map.put("jszt",echartsDtoList);
        map.put("bxqk",echartsDtoList1);
@@ -72,9 +72,9 @@
     */
    @ApiOperation(value = "设备管理首页-三级保养", notes = "设备管理首页-三级保养")
    @GetMapping(value = "/maintenance")
    public Result<?> maintenance() {
    public Result<?> maintenance(String productionCode) {
        //三级保养
        List<EchartsDto> echartsDtoList = iEamThirdMaintenanceOrderService.selectList();
        List<EchartsDto> echartsDtoList = iEamThirdMaintenanceOrderService.selectList(productionCode);
        return Result.ok(echartsDtoList);
    }
@@ -84,8 +84,8 @@
     */
    @ApiOperation(value = "设备管理首页-二保列表", notes = "设备管理首页-二保列表")
    @GetMapping(value = "/secondmaintenance")
    public Result<?> secondmaintenance() {
        List<EamFactorySecondMaintPlan> echartsDtoList = iEamFactorySecondMaintPlanService.queryAllList();
    public Result<?> secondmaintenance(String productionCode) {
        List<EamFactorySecondMaintPlan> echartsDtoList = iEamFactorySecondMaintPlanService.queryAllList(productionCode);
        return Result.ok(echartsDtoList);
    }
@@ -100,9 +100,10 @@
    @GetMapping(value = "/repairList")
    public Result<?> repair(@RequestParam(name = "code", required = false) String code,
                            @RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
                            @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
                            @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
                            String productionCode) {
        Page<EamReportRepairDto> page = new Page<>(pageNo, pageSize);
        IPage<EamReportRepairDto> iPage = iEamReportRepairService.reportRepairList(code,page);
        IPage<EamReportRepairDto> iPage = iEamReportRepairService.reportRepairList(code,productionCode,page);
        return Result.ok(iPage);
    }
@@ -117,9 +118,10 @@
    @GetMapping(value = "/maintenanceList")
    public Result<?> maintenanceList(@RequestParam(name = "code", required = false) String code,
                                     @RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
                                     @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
                                     @RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
                                     String productionCode) {
        Page<EamThirdMaintenanceOrder> page = new Page<>(pageNo, pageSize);
        IPage<EamThirdMaintenanceOrder> iPage = iEamThirdMaintenanceOrderService.maintenanceList(code, page);
        IPage<EamThirdMaintenanceOrder> iPage = iEamThirdMaintenanceOrderService.maintenanceList(code,productionCode,page);
        return Result.ok(iPage);
    }
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamThirdMaintenanceOrderService.java
@@ -108,7 +108,7 @@
     * 设备管理首页-三保计划
     * @return
     */
    List<EchartsDto> selectList();
    List<EchartsDto> selectList(String productionCode);
    /**
     * 设备管理首页-三保计划列表
@@ -116,5 +116,5 @@
     * @param page
     * @return
     */
    IPage<EamThirdMaintenanceOrder> maintenanceList(String code, Page<EamThirdMaintenanceOrder> page);
    IPage<EamThirdMaintenanceOrder> maintenanceList(String code,String productionCode, Page<EamThirdMaintenanceOrder> page);
}
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamThirdMaintenanceOrderServiceImpl.java
@@ -707,39 +707,41 @@
     * @return
     * */
    @Override
    public List<EchartsDto> selectList() {
    public List<EchartsDto> selectList(String productionCode) {
        List<EchartsDto> echartsDtos = new ArrayList<>();
        // 用户数据权限检查
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return echartsDtos; // 返回空列表而非null
        }
        QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>();
        // 设备过滤逻辑
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService
                    .list(new LambdaQueryWrapper<BaseFactoryUser>()
                            .eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (CollectionUtils.isEmpty(baseFactoryUserList)) {
        if (StrUtil.isEmpty(productionCode)) {
            // 用户数据权限检查
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            if (sysUser == null) {
                return echartsDtos; // 返回空列表而非null
            }
            Set<String> factoryIds = baseFactoryUserList.stream()
                    .map(BaseFactoryUser::getFactoryId)
                    .collect(Collectors.toSet());
            Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds)
                    .stream()
                    .map(BaseFactory::getOrgCode)
                    .collect(Collectors.toSet());
            // 设备过滤逻辑
            if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
                List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
                queryWrapper.in("e.equipment_code", equipArr);
            } else {
                List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
                if (CollectionUtils.isEmpty(baseFactoryUserList)) {
                    return echartsDtos; // 返回空列表而非null
                }
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCodes);
            }
        }else {
            //通过选择的车间过滤对应中心
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return echartsDtos;
            }
            //组装EAM数据
            Set<String> factoryCodes= new HashSet<>();
            baseFactoryList.forEach(baseFactory -> {
                List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId());
                factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()));
            });
            queryWrapper.in("e.factory_org_code", factoryCodes);
        }
@@ -813,38 +815,41 @@
     * @return
     */
    @Override
    public IPage<EamThirdMaintenanceOrder> maintenanceList(String code, Page<EamThirdMaintenanceOrder> page){
    public IPage<EamThirdMaintenanceOrder> maintenanceList(String code,String productionCode, Page<EamThirdMaintenanceOrder> page){
        IPage<EamThirdMaintenanceOrder> eamThirdMaintenanceOrderIPage=new Page<>();
        // 用户数据权限检查
        LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
        if (sysUser == null) {
            return null;
        }
        QueryWrapper<EamThirdMaintenanceOrder> queryWrapper = new QueryWrapper<>();
        // 设备过滤逻辑
        if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
            List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
            queryWrapper.in("e.equipment_code", equipArr);
        } else {
            List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService
                    .list(new LambdaQueryWrapper<BaseFactoryUser>()
                            .eq(BaseFactoryUser::getUserId, sysUser.getId()));
            if (CollectionUtils.isEmpty(baseFactoryUserList)) {
                return null;
        if (StrUtil.isEmpty(productionCode)) {
            // 用户数据权限检查
            LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
            if (sysUser == null) {
                return eamThirdMaintenanceOrderIPage; // 返回空列表而非null
            }
            Set<String> factoryIds = baseFactoryUserList.stream()
                    .map(BaseFactoryUser::getFactoryId)
                    .collect(Collectors.toSet());
            Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds)
                    .stream()
                    .map(BaseFactory::getOrgCode)
                    .collect(Collectors.toSet());
            // 设备过滤逻辑
            if (StringUtils.isNotBlank(sysUser.getEamEquipmentIds())) {
                List<String> equipArr = Arrays.asList(sysUser.getEamEquipmentIds().split(","));
                queryWrapper.in("e.equipment_code", equipArr);
            } else {
                List<BaseFactoryUser> baseFactoryUserList = baseFactoryUserService.list(new LambdaQueryWrapper<BaseFactoryUser>().eq(BaseFactoryUser::getUserId, sysUser.getId()));
                if (CollectionUtils.isEmpty(baseFactoryUserList)) {
                    return eamThirdMaintenanceOrderIPage; // 返回空列表而非null
                }
                Set<String> factoryIds = baseFactoryUserList.stream().map(BaseFactoryUser::getFactoryId).collect(Collectors.toSet());
                Set<String> factoryCodes = baseFactoryService.listByIds(factoryIds).stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet());
                queryWrapper.in("e.factory_org_code", factoryCodes);
            }
        }else {
            //通过选择的车间过滤对应中心
            List<BaseFactory> baseFactoryList = baseFactoryService.list(new LambdaQueryWrapper<BaseFactory>()
                    .like(BaseFactory::getRemark, productionCode).eq(BaseFactory::getDelFlag, CommonConstant.DEL_FLAG_0.toString()));
            if (CollectionUtils.isEmpty(baseFactoryList)) {
                return eamThirdMaintenanceOrderIPage;
            }
            //组装EAM数据
            Set<String> factoryCodes= new HashSet<>();
            baseFactoryList.forEach(baseFactory -> {
                List<BaseFactory> factoryList=baseFactoryService.queryFactoryByPid(baseFactory.getId());
                factoryCodes.addAll(factoryList.stream().map(BaseFactory::getOrgCode).collect(Collectors.toSet()));
            });
            queryWrapper.in("e.factory_org_code", factoryCodes);
        }
        queryWrapper.orderByDesc("wmo.create_time");
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/BaseFactoryMapper.java
@@ -1,7 +1,10 @@
package org.jeecg.modules.system.mapper;
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.system.entity.BaseFactory;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
 * @Description: 设备车间管理
@@ -11,4 +14,9 @@
 */
public interface BaseFactoryMapper extends BaseMapper<BaseFactory> {
    /**
     * 递归查询所有子节点
     */
    List<String> queryFactoryByPid(@Param("pid") String pid);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/xml/BaseFactoryMapper.xml
@@ -2,4 +2,17 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.jeecg.modules.system.mapper.BaseFactoryMapper">
    <select id="queryFactoryByPid" resultType="java.lang.String">
        WITH temp (id) AS (
            SELECT id
            FROM eam_base_factory
            WHERE id = #{pid}
            UNION ALL
            SELECT a.id
            FROM eam_base_factory a
                     INNER JOIN temp
                                ON a.parent_id = temp.id COLLATE Chinese_PRC_CI_AS -- 统一为原表的规则
        )
        SELECT * FROM temp
    </select>
</mapper>
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IBaseFactoryService.java
@@ -81,4 +81,9 @@
     * @return
     */
    List<String> queryFactoryIdsByOrgCode(String orgCode);
    /**
     * 递归查询所有子节点id
     */
    List<BaseFactory> queryFactoryByPid(String pid);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -350,4 +350,16 @@
        }
        return new ArrayList<>(collect);
    }
    /**
     * 递归查询所有子节点id
     */
    @Override
    public List<BaseFactory> queryFactoryByPid(String pid){
        List<String> ids=this.baseMapper.queryFactoryByPid(pid);
        if (CollectionUtil.isEmpty(ids)){
            return Collections.emptyList();
        }
        return this.baseMapper.selectBatchIds(ids);
    }
}