feat(flow): 添加设备维保功能模块

- 创建维修计划主对象 EqpMaintenancePlan 及其 BO、VO、Mapper、Service 和 Controller
- 实现维修计划明细对象 EqpMaintenancePlanDetail 的完整 CRUD 操作功能
- 开发维修计划-异常记录关联对象 EqpMaintenancePlanAbnormal 的业务逻辑
- 集成分页查询、导出、新增、修改、删除等标准业务操作接口
- 配置 MyBatis-Plus 映射文件和数据校验规则
- 实现 Excel 导入导出功能和数据字典转换处理
This commit is contained in:
2026-06-23 11:26:42 +08:00
parent a8435a3716
commit 41557c606b
24 changed files with 1690 additions and 0 deletions

View File

@@ -0,0 +1,49 @@
package com.klp.flow.service;
import com.klp.flow.domain.EqpMaintenancePlanAbnormal;
import com.klp.flow.domain.vo.EqpMaintenancePlanAbnormalVo;
import com.klp.flow.domain.bo.EqpMaintenancePlanAbnormalBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 维修计划-异常记录关联Service接口
*
* @author klp
* @date 2026-06-23
*/
public interface IEqpMaintenancePlanAbnormalService {
/**
* 查询维修计划-异常记录关联
*/
EqpMaintenancePlanAbnormalVo queryById(Long relId);
/**
* 查询维修计划-异常记录关联列表
*/
TableDataInfo<EqpMaintenancePlanAbnormalVo> queryPageList(EqpMaintenancePlanAbnormalBo bo, PageQuery pageQuery);
/**
* 查询维修计划-异常记录关联列表
*/
List<EqpMaintenancePlanAbnormalVo> queryList(EqpMaintenancePlanAbnormalBo bo);
/**
* 新增维修计划-异常记录关联
*/
Boolean insertByBo(EqpMaintenancePlanAbnormalBo bo);
/**
* 修改维修计划-异常记录关联
*/
Boolean updateByBo(EqpMaintenancePlanAbnormalBo bo);
/**
* 校验并批量删除维修计划-异常记录关联信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.flow.service;
import com.klp.flow.domain.EqpMaintenancePlanDetail;
import com.klp.flow.domain.vo.EqpMaintenancePlanDetailVo;
import com.klp.flow.domain.bo.EqpMaintenancePlanDetailBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 维修计划明细Service接口
*
* @author klp
* @date 2026-06-23
*/
public interface IEqpMaintenancePlanDetailService {
/**
* 查询维修计划明细
*/
EqpMaintenancePlanDetailVo queryById(Long detailId);
/**
* 查询维修计划明细列表
*/
TableDataInfo<EqpMaintenancePlanDetailVo> queryPageList(EqpMaintenancePlanDetailBo bo, PageQuery pageQuery);
/**
* 查询维修计划明细列表
*/
List<EqpMaintenancePlanDetailVo> queryList(EqpMaintenancePlanDetailBo bo);
/**
* 新增维修计划明细
*/
Boolean insertByBo(EqpMaintenancePlanDetailBo bo);
/**
* 修改维修计划明细
*/
Boolean updateByBo(EqpMaintenancePlanDetailBo bo);
/**
* 校验并批量删除维修计划明细信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,49 @@
package com.klp.flow.service;
import com.klp.flow.domain.EqpMaintenancePlan;
import com.klp.flow.domain.vo.EqpMaintenancePlanVo;
import com.klp.flow.domain.bo.EqpMaintenancePlanBo;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 维修计划主Service接口
*
* @author klp
* @date 2026-06-23
*/
public interface IEqpMaintenancePlanService {
/**
* 查询维修计划主
*/
EqpMaintenancePlanVo queryById(Long planId);
/**
* 查询维修计划主列表
*/
TableDataInfo<EqpMaintenancePlanVo> queryPageList(EqpMaintenancePlanBo bo, PageQuery pageQuery);
/**
* 查询维修计划主列表
*/
List<EqpMaintenancePlanVo> queryList(EqpMaintenancePlanBo bo);
/**
* 新增维修计划主
*/
Boolean insertByBo(EqpMaintenancePlanBo bo);
/**
* 修改维修计划主
*/
Boolean updateByBo(EqpMaintenancePlanBo bo);
/**
* 校验并批量删除维修计划主信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -0,0 +1,109 @@
package com.klp.flow.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.flow.domain.bo.EqpMaintenancePlanAbnormalBo;
import com.klp.flow.domain.vo.EqpMaintenancePlanAbnormalVo;
import com.klp.flow.domain.EqpMaintenancePlanAbnormal;
import com.klp.flow.mapper.EqpMaintenancePlanAbnormalMapper;
import com.klp.flow.service.IEqpMaintenancePlanAbnormalService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 维修计划-异常记录关联Service业务层处理
*
* @author klp
* @date 2026-06-23
*/
@RequiredArgsConstructor
@Service
public class EqpMaintenancePlanAbnormalServiceImpl implements IEqpMaintenancePlanAbnormalService {
private final EqpMaintenancePlanAbnormalMapper baseMapper;
/**
* 查询维修计划-异常记录关联
*/
@Override
public EqpMaintenancePlanAbnormalVo queryById(Long relId){
return baseMapper.selectVoById(relId);
}
/**
* 查询维修计划-异常记录关联列表
*/
@Override
public TableDataInfo<EqpMaintenancePlanAbnormalVo> queryPageList(EqpMaintenancePlanAbnormalBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EqpMaintenancePlanAbnormal> lqw = buildQueryWrapper(bo);
Page<EqpMaintenancePlanAbnormalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询维修计划-异常记录关联列表
*/
@Override
public List<EqpMaintenancePlanAbnormalVo> queryList(EqpMaintenancePlanAbnormalBo bo) {
LambdaQueryWrapper<EqpMaintenancePlanAbnormal> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EqpMaintenancePlanAbnormal> buildQueryWrapper(EqpMaintenancePlanAbnormalBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EqpMaintenancePlanAbnormal> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPlanId() != null, EqpMaintenancePlanAbnormal::getPlanId, bo.getPlanId());
lqw.eq(bo.getRecordId() != null, EqpMaintenancePlanAbnormal::getRecordId, bo.getRecordId());
return lqw;
}
/**
* 新增维修计划-异常记录关联
*/
@Override
public Boolean insertByBo(EqpMaintenancePlanAbnormalBo bo) {
EqpMaintenancePlanAbnormal add = BeanUtil.toBean(bo, EqpMaintenancePlanAbnormal.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setRelId(add.getRelId());
}
return flag;
}
/**
* 修改维修计划-异常记录关联
*/
@Override
public Boolean updateByBo(EqpMaintenancePlanAbnormalBo bo) {
EqpMaintenancePlanAbnormal update = BeanUtil.toBean(bo, EqpMaintenancePlanAbnormal.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EqpMaintenancePlanAbnormal entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除维修计划-异常记录关联
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,122 @@
package com.klp.flow.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.flow.domain.bo.EqpMaintenancePlanDetailBo;
import com.klp.flow.domain.vo.EqpMaintenancePlanDetailVo;
import com.klp.flow.domain.EqpMaintenancePlanDetail;
import com.klp.flow.mapper.EqpMaintenancePlanDetailMapper;
import com.klp.flow.service.IEqpMaintenancePlanDetailService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 维修计划明细Service业务层处理
*
* @author klp
* @date 2026-06-23
*/
@RequiredArgsConstructor
@Service
public class EqpMaintenancePlanDetailServiceImpl implements IEqpMaintenancePlanDetailService {
private final EqpMaintenancePlanDetailMapper baseMapper;
/**
* 查询维修计划明细
*/
@Override
public EqpMaintenancePlanDetailVo queryById(Long detailId){
return baseMapper.selectVoById(detailId);
}
/**
* 查询维修计划明细列表
*/
@Override
public TableDataInfo<EqpMaintenancePlanDetailVo> queryPageList(EqpMaintenancePlanDetailBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EqpMaintenancePlanDetail> lqw = buildQueryWrapper(bo);
Page<EqpMaintenancePlanDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询维修计划明细列表
*/
@Override
public List<EqpMaintenancePlanDetailVo> queryList(EqpMaintenancePlanDetailBo bo) {
LambdaQueryWrapper<EqpMaintenancePlanDetail> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EqpMaintenancePlanDetail> buildQueryWrapper(EqpMaintenancePlanDetailBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EqpMaintenancePlanDetail> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getPlanId() != null, EqpMaintenancePlanDetail::getPlanId, bo.getPlanId());
lqw.eq(bo.getRecordId() != null, EqpMaintenancePlanDetail::getRecordId, bo.getRecordId());
lqw.eq(bo.getEquipmentId() != null, EqpMaintenancePlanDetail::getEquipmentId, bo.getEquipmentId());
lqw.eq(StringUtils.isNotBlank(bo.getProductionLine()), EqpMaintenancePlanDetail::getProductionLine, bo.getProductionLine());
lqw.like(StringUtils.isNotBlank(bo.getComponentName()), EqpMaintenancePlanDetail::getComponentName, bo.getComponentName());
lqw.eq(bo.getItemPlanDate() != null, EqpMaintenancePlanDetail::getItemPlanDate, bo.getItemPlanDate());
lqw.eq(bo.getMaintenanceCategory() != null, EqpMaintenancePlanDetail::getMaintenanceCategory, bo.getMaintenanceCategory());
lqw.eq(bo.getDetailStatus() != null, EqpMaintenancePlanDetail::getDetailStatus, bo.getDetailStatus());
lqw.eq(StringUtils.isNotBlank(bo.getRepairContent()), EqpMaintenancePlanDetail::getRepairContent, bo.getRepairContent());
lqw.eq(StringUtils.isNotBlank(bo.getRepairUser()), EqpMaintenancePlanDetail::getRepairUser, bo.getRepairUser());
lqw.eq(bo.getCompleteTime() != null, EqpMaintenancePlanDetail::getCompleteTime, bo.getCompleteTime());
lqw.eq(bo.getActualCost() != null, EqpMaintenancePlanDetail::getActualCost, bo.getActualCost());
lqw.eq(bo.getProgressRate() != null, EqpMaintenancePlanDetail::getProgressRate, bo.getProgressRate());
lqw.eq(StringUtils.isNotBlank(bo.getTargetManufacturer()), EqpMaintenancePlanDetail::getTargetManufacturer, bo.getTargetManufacturer());
return lqw;
}
/**
* 新增维修计划明细
*/
@Override
public Boolean insertByBo(EqpMaintenancePlanDetailBo bo) {
EqpMaintenancePlanDetail add = BeanUtil.toBean(bo, EqpMaintenancePlanDetail.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setDetailId(add.getDetailId());
}
return flag;
}
/**
* 修改维修计划明细
*/
@Override
public Boolean updateByBo(EqpMaintenancePlanDetailBo bo) {
EqpMaintenancePlanDetail update = BeanUtil.toBean(bo, EqpMaintenancePlanDetail.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EqpMaintenancePlanDetail entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除维修计划明细
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -0,0 +1,121 @@
package com.klp.flow.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.klp.common.core.page.TableDataInfo;
import com.klp.common.core.domain.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.klp.common.utils.StringUtils;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import com.klp.flow.domain.bo.EqpMaintenancePlanBo;
import com.klp.flow.domain.vo.EqpMaintenancePlanVo;
import com.klp.flow.domain.EqpMaintenancePlan;
import com.klp.flow.mapper.EqpMaintenancePlanMapper;
import com.klp.flow.service.IEqpMaintenancePlanService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 维修计划主Service业务层处理
*
* @author klp
* @date 2026-06-23
*/
@RequiredArgsConstructor
@Service
public class EqpMaintenancePlanServiceImpl implements IEqpMaintenancePlanService {
private final EqpMaintenancePlanMapper baseMapper;
/**
* 查询维修计划主
*/
@Override
public EqpMaintenancePlanVo queryById(Long planId){
return baseMapper.selectVoById(planId);
}
/**
* 查询维修计划主列表
*/
@Override
public TableDataInfo<EqpMaintenancePlanVo> queryPageList(EqpMaintenancePlanBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<EqpMaintenancePlan> lqw = buildQueryWrapper(bo);
Page<EqpMaintenancePlanVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询维修计划主列表
*/
@Override
public List<EqpMaintenancePlanVo> queryList(EqpMaintenancePlanBo bo) {
LambdaQueryWrapper<EqpMaintenancePlan> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<EqpMaintenancePlan> buildQueryWrapper(EqpMaintenancePlanBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<EqpMaintenancePlan> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getPlanNo()), EqpMaintenancePlan::getPlanNo, bo.getPlanNo());
lqw.like(StringUtils.isNotBlank(bo.getPlanName()), EqpMaintenancePlan::getPlanName, bo.getPlanName());
lqw.eq(bo.getRepairType() != null, EqpMaintenancePlan::getRepairType, bo.getRepairType());
lqw.eq(bo.getPriorityLevel() != null, EqpMaintenancePlan::getPriorityLevel, bo.getPriorityLevel());
lqw.eq(bo.getPlanStatus() != null, EqpMaintenancePlan::getPlanStatus, bo.getPlanStatus());
lqw.eq(bo.getApprovalStatus() != null, EqpMaintenancePlan::getApprovalStatus, bo.getApprovalStatus());
lqw.eq(bo.getPlannedStartTime() != null, EqpMaintenancePlan::getPlannedStartTime, bo.getPlannedStartTime());
lqw.eq(bo.getPlannedEndTime() != null, EqpMaintenancePlan::getPlannedEndTime, bo.getPlannedEndTime());
lqw.eq(StringUtils.isNotBlank(bo.getDutyDept()), EqpMaintenancePlan::getDutyDept, bo.getDutyDept());
lqw.eq(StringUtils.isNotBlank(bo.getPlanOwner()), EqpMaintenancePlan::getPlanOwner, bo.getPlanOwner());
lqw.eq(bo.getBudgetAmount() != null, EqpMaintenancePlan::getBudgetAmount, bo.getBudgetAmount());
lqw.eq(StringUtils.isNotBlank(bo.getPlanDescription()), EqpMaintenancePlan::getPlanDescription, bo.getPlanDescription());
lqw.eq(bo.getActualCompleteTime() != null, EqpMaintenancePlan::getActualCompleteTime, bo.getActualCompleteTime());
return lqw;
}
/**
* 新增维修计划主
*/
@Override
public Boolean insertByBo(EqpMaintenancePlanBo bo) {
EqpMaintenancePlan add = BeanUtil.toBean(bo, EqpMaintenancePlan.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setPlanId(add.getPlanId());
}
return flag;
}
/**
* 修改维修计划主
*/
@Override
public Boolean updateByBo(EqpMaintenancePlanBo bo) {
EqpMaintenancePlan update = BeanUtil.toBean(bo, EqpMaintenancePlan.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(EqpMaintenancePlan entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 批量删除维修计划主
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids) > 0;
}
}