package org.jeecg.modules.eam.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import org.jeecg.common.constant.CommonConstant;
|
import org.jeecg.common.exception.JeecgBootException;
|
import org.jeecg.modules.eam.constant.HfTemplateCategoryEnum;
|
import org.jeecg.modules.eam.entity.EamBaseHFCode;
|
import org.jeecg.modules.eam.entity.EamEquipment;
|
import org.jeecg.modules.eam.entity.EamThirdMaintenanceWorkPlanSheet;
|
import org.jeecg.modules.eam.mapper.EamThirdMaintenanceWorkPlanSheetMapper;
|
import org.jeecg.modules.eam.service.IEamBaseHFCodeService;
|
import org.jeecg.modules.eam.service.IEamThirdMaintenanceWorkPlanSheetService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @Description: “三级保养工作计划单
|
* @Author: jeecg-boot
|
* @Date: 2025-09-02
|
* @Version: V1.0
|
*/
|
@Service
|
public class EamThirdMaintenanceWorkPlanSheetServiceImpl extends ServiceImpl<EamThirdMaintenanceWorkPlanSheetMapper, EamThirdMaintenanceWorkPlanSheet> implements IEamThirdMaintenanceWorkPlanSheetService {
|
|
@Autowired
|
private IEamBaseHFCodeService hfCodeService;
|
|
/**
|
* 通过设备编号,保养日期查询
|
* @param equipmentCode,maintenanceDate
|
* @return
|
*/
|
@Override
|
public EamThirdMaintenanceWorkPlanSheet getByEquipmentCodeAndMaintenanceDate(String equipmentCode, java.util.Date maintenanceDate){
|
List<EamThirdMaintenanceWorkPlanSheet> list = this.baseMapper.selectList(new QueryWrapper<EamThirdMaintenanceWorkPlanSheet>()
|
.eq("equipment_code",equipmentCode).eq("maintenance_date",maintenanceDate));
|
if(list == null || list.isEmpty()) {
|
return null;
|
}else {
|
return list.get(0);
|
}
|
}
|
/**
|
* 新增
|
* @param eamThirdMaintenanceWorkPlanSheet
|
* @return
|
*/
|
@Override
|
public boolean add(EamThirdMaintenanceWorkPlanSheet eamThirdMaintenanceWorkPlanSheet){
|
//三级保养工作计划单
|
EamBaseHFCode eamBaseHFCode = hfCodeService.selectByCategory(HfTemplateCategoryEnum.THIRD_MAINTENANCE_WORK_PLAN_SHEET.name());
|
if(eamBaseHFCode == null) {
|
throw new JeecgBootException("未配置三级保养工作计划单的HF编码,添加失败!");
|
}
|
eamThirdMaintenanceWorkPlanSheet.setHfCode(eamBaseHFCode.getHfCode());
|
eamThirdMaintenanceWorkPlanSheet.setDelFlag(0);
|
return super.save(eamThirdMaintenanceWorkPlanSheet);
|
}
|
|
/**
|
* existsByEquipmentAndDate
|
* @param equipmentCode
|
* @param maintenanceDate
|
* @return
|
*/
|
@Override
|
public boolean existsByEquipmentAndDate(String equipmentCode, Date maintenanceDate){
|
List<EamThirdMaintenanceWorkPlanSheet> list = this.baseMapper.selectList(new QueryWrapper<EamThirdMaintenanceWorkPlanSheet>()
|
.eq("equipment_code",equipmentCode).eq("maintenance_date",maintenanceDate));
|
return list != null && !list.isEmpty();
|
}
|
|
/**
|
* 处理保养日期变更(增删改查)
|
*/
|
@Override
|
public void processMaintenanceDateChange(EamEquipment equipment, Date oldDate, Date newDate) {
|
String equipmentCode = equipment.getEquipmentCode();
|
//日期从有值变为null → 删除计划
|
if (oldDate != null && newDate == null) {
|
deleteMaintenancePlan(equipmentCode, oldDate);
|
}
|
//日期从null变为有值 → 新增计划
|
else if (oldDate == null && newDate != null) {
|
createMaintenancePlan(equipment, newDate);
|
}
|
//日期值发生变化 → 更新计划日期
|
else if (oldDate != null && !oldDate.equals(newDate)) {
|
updateMaintenancePlanDate(equipmentCode, oldDate, newDate,equipment);
|
}
|
}
|
|
/**
|
* 创建保养计划
|
*/
|
@Override
|
public void createMaintenancePlan(EamEquipment equipment, Date maintenanceDate) {
|
if (maintenanceDate == null) return;
|
// 避免重复创建
|
if (this.existsByEquipmentAndDate(
|
equipment.getEquipmentCode(), maintenanceDate)) {
|
return;
|
}
|
EamThirdMaintenanceWorkPlanSheet plan = new EamThirdMaintenanceWorkPlanSheet();
|
plan.setEquipmentCode(equipment.getEquipmentCode());
|
plan.setEquipmentName(equipment.getEquipmentName());
|
plan.setFactoryOrgCode(equipment.getFactoryOrgCode());
|
plan.setEquipmentModel(equipment.getEquipmentModel());
|
plan.setMaintenanceDate(maintenanceDate);
|
this.add(plan);
|
}
|
|
/**
|
* 更新保养计划日期
|
*/
|
private void updateMaintenancePlanDate(String equipmentCode, Date oldDate, Date newDate,EamEquipment equipment) {
|
EamThirdMaintenanceWorkPlanSheet plan = this
|
.getByEquipmentCodeAndMaintenanceDate(equipmentCode, oldDate);
|
|
if (plan != null) {
|
plan.setMaintenanceDate(newDate);
|
this.updateById(plan);
|
}else {
|
createMaintenancePlan(equipment, newDate);
|
}
|
}
|
|
/**
|
* 删除保养计划
|
*/
|
private void deleteMaintenancePlan(String equipmentCode, Date date) {
|
EamThirdMaintenanceWorkPlanSheet plan = this
|
.getByEquipmentCodeAndMaintenanceDate(equipmentCode, date);
|
|
if (plan != null) {
|
this.removeById(plan.getId());
|
}
|
}
|
}
|