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); } }