package org.jeecg.modules.eam.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.eam.entity.RepairWarehouse; import org.jeecg.modules.eam.mapper.RepairWarehouseMapper; import org.jeecg.modules.eam.service.IRepairWarehouseService; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.List; import java.util.Objects; /** * @Description: eam_repair_warehouse * @Author: jeecg-boot * @Date: 2025-09-05 * @Version: V1.0 */ @Service @Slf4j public class RepairWarehouseServiceImpl extends ServiceImpl implements IRepairWarehouseService { // 定义合法的字段名白名单 private static final List ALLOWED_COLUMNS = Arrays.asList( "fault_part", "fault_child_part", "repair_description" ); /** * 保存数据 * @param repairWarehouse */ @Override public void add(RepairWarehouse repairWarehouse) { checkData(repairWarehouse); this.save(repairWarehouse); } @Override public void saveData(RepairWarehouse repairWarehouse) { RepairWarehouse warehouse = this.getOne(new LambdaQueryWrapper() .eq(RepairWarehouse::getFaultType, repairWarehouse.getFaultType()) .eq(RepairWarehouse::getFaultPart, repairWarehouse.getFaultPart()) .eq(RepairWarehouse::getFaultChildPart, repairWarehouse.getFaultChildPart()) .eq(RepairWarehouse::getRepairDescription, repairWarehouse.getRepairDescription()) ); if(Objects.isNull(warehouse)) { this.save(repairWarehouse); } } @Override public void edit(RepairWarehouse repairWarehouse) { checkData(repairWarehouse); this.updateById(repairWarehouse); } @Override public List getColumnDateList(RepairWarehouse repairWarehouse) { if (StringUtils.isBlank(repairWarehouse.getColumn()) || !ALLOWED_COLUMNS.contains(repairWarehouse.getColumn())) { throw new JeecgBootException("所需查询字段值无效"); } return this.baseMapper.getColumnDateList(repairWarehouse); } private void checkData(RepairWarehouse repairWarehouse) { if(Objects.isNull(repairWarehouse)) { throw new JeecgBootException("数据不能为空"); } if (StringUtils.isBlank(repairWarehouse.getFaultType())) { throw new JeecgBootException("故障类型不能为空"); } if (StringUtils.isBlank(repairWarehouse.getFaultPart())) { throw new JeecgBootException("故障部位不能为空"); } if (StringUtils.isBlank(repairWarehouse.getFaultChildPart())) { throw new JeecgBootException("故障子部位不能为空"); } if (StringUtils.isBlank(repairWarehouse.getRepairDescription())) { throw new JeecgBootException("维修描述不能为空"); } RepairWarehouse warehouse = this.getOne(new LambdaQueryWrapper() .eq(RepairWarehouse::getFaultType, repairWarehouse.getFaultType()) .eq(RepairWarehouse::getFaultPart, repairWarehouse.getFaultPart()) .eq(RepairWarehouse::getFaultChildPart, repairWarehouse.getFaultChildPart()) .eq(RepairWarehouse::getRepairDescription, repairWarehouse.getRepairDescription()) .le(StringUtils.isNotEmpty(repairWarehouse.getId()), RepairWarehouse::getId, repairWarehouse.getId()) ); if(Objects.nonNull(warehouse)) { throw new JeecgBootException("已存在该知识库"); } } }