zhangherong
2025-07-10 d2119be0539292e0885ca0670e791fd69ba1f875
Merge remote-tracking branch 'origin/master'
已修改9个文件
167 ■■■■ 文件已修改
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/entity/EamEquipment.java
@@ -162,7 +162,7 @@
    /**
     * 维修班组
     */
    @Excel(name = "维修班组", width = 15, orderNum = "10",dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
    @Excel(name = "维修班组", width = 15, orderNum = "10")
    @ApiModelProperty(value = "维修班组")
    @Dict(dictTable = "eam_base_repair_depart",dicText = "depart_name",dicCode = "org_code")
    private String repairDepartOrgCode;
@@ -185,8 +185,9 @@
    /**
     * 灭火器
     */
    @Excel(name = "灭火器", width = 15, orderNum = "16")
    @Excel(name = "灭火器", width = 15, orderNum = "16",dicCode = "yn")
    @ApiModelProperty(value = "灭火器")
    @Dict(dicCode = "yn")
    private String fireExtinguisher;
    /**
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/request/EamEquipmentQuery.java
@@ -1,6 +1,8 @@
package org.jeecg.modules.eam.request;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.jeecgframework.poi.excel.annotation.Excel;
@Data
public class EamEquipmentQuery {
@@ -13,7 +15,8 @@
    private String operationSystem;
    private String orgId;
    private String equipmentCategory;
    private String factoryOrgCode;
    private String repairDepartOrgCode;
    private String column;
    private String order;
}
lxzn-module-eam-common/src/main/java/org/jeecg/modules/eam/service/impl/EamEquipmentServiceImpl.java
@@ -205,6 +205,12 @@
            if (StringUtils.isNotBlank(eamEquipment.getEquipmentCategory())) {
                queryWrapper.like("e.equipment_category", eamEquipment.getEquipmentCategory());
            }
            if (StringUtils.isNotBlank(eamEquipment.getFactoryOrgCode())) {
                queryWrapper.like("e.factory_org_code", eamEquipment.getFactoryOrgCode());
            }
            if (StringUtils.isNotBlank(eamEquipment.getRepairDepartOrgCode())) {
                queryWrapper.like("e.repair_depart_org_code", eamEquipment.getRepairDepartOrgCode());
            }
            if (StringUtils.isNotBlank(eamEquipment.getId())) {
                queryWrapper.eq("e.id", eamEquipment.getId());
            }
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/EamEquipmentController.java
@@ -29,7 +29,9 @@
//import org.jeecg.modules.mdc.entity.MdcEquipment;
//import org.jeecg.modules.mdc.service.IMdcEquipmentService;
import org.jeecg.modules.system.entity.BaseFactory;
import org.jeecg.modules.system.entity.EamBaseRepairDepart;
import org.jeecg.modules.system.service.IBaseFactoryService;
import org.jeecg.modules.system.service.IEamBaseRepairDepartService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -77,7 +79,8 @@
    private TranslateDictTextUtils translateDictTextUtils;
    @Autowired
    private IBaseFactoryService baseFactoryService;
    @Autowired
    private IEamBaseRepairDepartService eamBaseRepairDepartService;
    /**
     * 分页列表查询
     *
@@ -287,6 +290,13 @@
                    }else {
                        eamEquipment.setFactoryOrgCode(baseFactory.getOrgCode());
                    }
                    EamBaseRepairDepart eamBaseRepairDepart=eamBaseRepairDepartService.searchCenterByKeyWord(eamEquipment.getRepairDepartOrgCode());
                    if(eamBaseRepairDepart==null){
                        sb.append(String.format("维修班组信息[%s]不存在,无法导入\n\r", eamEquipment.getRepairDepartOrgCode()));
                        continue;
                    }else {
                        eamEquipment.setRepairDepartOrgCode(eamBaseRepairDepart.getOrgCode());
                    }
                    EamEquipment equipment = eamEquipmentService.saveEquipment(eamEquipment);
                    if (equipment == null) {
                        //保存失败,跳过本次循环
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/IEamMaintenanceStandardService.java
@@ -87,7 +87,7 @@
    /**
     * 点检表导入入口
     */
    public Result<?> importPointInspectionExcel(MultipartFile file);
    Result<?> importPointInspectionExcel(MultipartFile file);
    Result<?> importMaintenanceStandard(MultipartFile file, String type);
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/service/impl/EamMaintenanceStandardServiceImpl.java
@@ -762,6 +762,7 @@
            // 创建项目详情
            EamMaintenanceStandardDetail detail = new EamMaintenanceStandardDetail();
            detail.setStandardId(standard.getId());
            detail.setItemCode(Integer.parseInt(getCellStringValue(row.getCell(0))));
            detail.setItemName(getCellStringValue(row.getCell(1)));
            detail.setItemCategory(itemCategory);
@@ -1044,15 +1045,17 @@
            if (!items.isEmpty()) {
                items.remove(0);
            }
            // 2. 为缺失部位的数据填充前一条的保养部位
            String lastPart = "";
            int i =1;
            for (EamMaintenanceStandardDetail item : items) {
                item.setItemCode(i);
                if (item.getItemPart() != null && !item.getItemPart().isEmpty()) {
                    lastPart = item.getItemPart();
                } else if (!lastPart.isEmpty()) {
                    item.setItemPart(lastPart);
                }
                i++;
            }
        }
    }
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IEamBaseRepairDepartService.java
@@ -63,6 +63,12 @@
     * 根据用户id获取产线下拉树选项
     */
    List<RepairDepartIdModel> loadMaintainDepartTreeOptions(String userId);
    /**
     * 根据关键字获取中心数据
     */
    EamBaseRepairDepart searchCenterByKeyWord(String keyWord);
//
//    /**
//     * 递归查询所有子节点
@@ -89,5 +95,5 @@
//     * @return
//     */
//    EamBaseRepairDepart findMaintainDepartList(String equipmentId);
}
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/BaseFactoryServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.constant.FillRuleConstant;
@@ -110,7 +111,7 @@
        if (keyWord.contains("/")) {
            return searchByHierarchy(keyWord);
        } else {
            return searchByCode(keyWord);
            return searchByCodeOrName(keyWord);
        }
    }
@@ -118,27 +119,85 @@
        String[] levels = path.split("/");
        int depth = levels.length;
        // 检查层级深度
        // 支持多种格式:中心/工区、中心/工段、中心/工区/工段
        if (depth < 2 || depth > 3) {
            return null; // 无效的层级深度
            return null;
        }
        // 查询第一级中心
        BaseFactory center = findFactory(levels[0], 1, null);
        if (center == null) return null;
        // 从底层开始查询:最后一级可能是工区或工段
        String lastName = levels[depth - 1];
        BaseFactory lastLevel = searchForLastLevel(lastName);
        if (lastLevel == null) return null;
        // 查询第二级工区
        BaseFactory workArea = findFactory(levels[1], null, center.getId());
        if (workArea == null || depth == 2) return workArea;
        // 查询第三级工段
        return findFactory(levels[2], null, workArea.getId());
        return validatePath(levels, lastLevel);
    }
    private BaseFactory searchByCode(String code) {
    private BaseFactory validatePath(String[] levels, BaseFactory lastLevel) {
        if (levels.length == 2) {
            // 中心/工区 或 中心/工段
            BaseFactory center = findParentCenter(lastLevel);
            if (center != null &&
                    center.getFactoryName().equals(levels[0]) &&
                    ("1").equals(center.getFactoryCategory())) {
                return lastLevel;
            }
        } else {
            // 中心/工区/工段
            if (!("3").equals(lastLevel.getFactoryCategory())) return null;
            BaseFactory workArea = getById(lastLevel.getParentId());
            if (workArea == null ||
                    !("2").equals(workArea.getFactoryCategory())) return null;
            BaseFactory center = getById(workArea.getParentId());
            if (center == null ||
                    !("1").equals(center.getFactoryCategory())) return null;
            if (workArea.getFactoryName().equals(levels[1]) &&
                    center.getFactoryName().equals(levels[0])) {
                return lastLevel;
            }
        }
        return null;
    }
    private BaseFactory searchForLastLevel(String name) {
        // 先尝试查询工段(类别3)
        BaseFactory workshop = findFactory(name, 3, null);
        if (workshop != null) return workshop;
        // 如果没有找到工段,尝试查询工区(类别2)
        return findFactory(name, 2, null);
    }
    private BaseFactory findParentCenter(BaseFactory entity) {
        if (("1").equals(entity.getFactoryCategory())) {
            return entity; // 本身就是中心
        }
        BaseFactory parent = getById(entity.getParentId());
        if (parent == null) return null;
        if (("1").equals(parent.getFactoryCategory())) {
            return parent; // 直接父级是中心
        }
        // 如果父级不是中心,尝试找父级的父级
        return getById(parent.getParentId());
    }
    private BaseFactory searchByCodeOrName(String keyword) {
        // 使用分页方式兼容SQL Server
        LambdaQueryWrapper<BaseFactory> query = new LambdaQueryWrapper<>();
        query.like(BaseFactory::getFactoryCode, code);
        return this.baseMapper.selectOne(query); // 使用selectOne避免多个结果
        query.and(q -> q.eq(BaseFactory::getFactoryName, keyword)
                .or()
                .like(BaseFactory::getFactoryCode, keyword));
        // 使用分页查询获取第一条记录
        Page<BaseFactory> page = new Page<>(1, 1);
        Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
        return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
    }
    private BaseFactory findFactory(String name, Integer category, String parentId) {
@@ -148,7 +207,16 @@
        if (category != null) query.eq(BaseFactory::getFactoryCategory, category);
        if (parentId != null) query.eq(BaseFactory::getParentId, parentId);
        return this.baseMapper.selectOne(query);
        // 使用分页方式兼容SQL Server
        Page<BaseFactory> page = new Page<>(1, 1);
        Page<BaseFactory> resultPage = baseMapper.selectPage(page, query);
        return resultPage.getRecords().isEmpty() ? null : resultPage.getRecords().get(0);
    }
    private BaseFactory getById(String id) {
        if (StringUtils.isBlank(id)) return null;
        return baseMapper.selectById(id);
    }
    /**
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/EamBaseRepairDepartImpl.java
@@ -309,4 +309,28 @@
        }
    }
    /**
     * 根据关键字获取中心数据
     */
    @Override
    public EamBaseRepairDepart searchCenterByKeyWord(String keyWord) {
        if (StringUtils.isBlank(keyWord)) {
            return null;
        }
        // 先按名称查询
        LambdaQueryWrapper<EamBaseRepairDepart> query = new LambdaQueryWrapper<>();
        query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        query.eq(EamBaseRepairDepart::getDepartName, keyWord);
        EamBaseRepairDepart result = this.baseMapper.selectOne(query);
        if (result != null) {
            return result;
        }
        // 再按编码查询
        query = new LambdaQueryWrapper<>();
        query.eq(EamBaseRepairDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString());
        query.eq(EamBaseRepairDepart::getDepartCode, keyWord);
        return this.baseMapper.selectOne(query);
    }
}